Paso 4: Selector de carril
Ahora que tenemos la habilidad de crear obstáculos para aparecer en la pantalla, tenemos que decirles dónde ir. Primero establecemos salidas en la entidad llamada pick_a_lane. Estas salidas son obst_to_lane_1, obst_to_lane_2, obst_to_lane_3 y obst_to_lane_4. Hemos creado dos señales, lfsr y lfsr_next, que son números binarios de 16 bits con tres arbitrariamente unos. Después de estas señales se crean hicimos un proceso llamado lfsr_seq con solo game_clock en la lista de sensibilidad. El lfsr que obtenga lfsr_next sólo en el flanco ascendente de reloj. A continuación tenemos un gran if/else instrucción que elige uno de los carriles para los obstáculos basados en el valor decimal del lfsr. Si no obst_in de la obst_generator LFSR es uno, no se generan obstáculos. Después si la declaración, una vez más tenemos un proceso llamado lfsr_comb con una instrucción XOR a pseudo-aleatorizar la secuencia.