Red de conocimiento informático - Problemas con los teléfonos móviles - diseño de semáforo vhdl

diseño de semáforo vhdl

Objetivo del experimento

1. Comprender las reglas de cambio de semáforos.

2. Comprender el principio de funcionamiento del controlador de semáforo.

3. Familiarizarse con la programación en lenguaje VHDL y comprender las soluciones de optimización en el diseño real.

II Requisitos de Hardware

1. Una caja de experimentos EDA/SOPC.

3. Principio experimental

Hay muchas formas de mostrar semáforos, como intersecciones, intersecciones, etc., y existen muchos requisitos de visualización diferentes para la misma intersección, como En las intersecciones, es muy sencillo para los automóviles pasar en dirección este-oeste y norte-sur, pero si el automóvil puede girar a la izquierda y a la derecha, será más complicado. Este experimento solo se centra en las direcciones más simples de norte a sur y de este. Situaciones de conducción en línea recta hacia el oeste.

R1<='0';

G1<='0';

R2<='1';

G2 <='0';

más

R1<='1';

G1<='0';

R2 <='0';

G2<='0';

terminar si;

terminar si;

terminar si;

finalizar proceso;

proceso(Clk1Hz)

comenzar

si(SEC10 >0 o SEC1>3) entonces

Y1<='0';

Y2<='0';

elsif(Dir_Flag='0') entonces

Y1< =Clk1Hz;

Y2<='0'

más

Y1<='0';

Y2<=Clk1Hz ;

finalizar si;

finalizar el proceso;

proceso(Dir_Flag)

comenzar

si(Dir_ Bandera='0') luego --horizontal

Dirección<=10;

en caso contrario --vertical

Dirección<=11;

finalizar si;

finalizar proceso;

proceso(SEG_ SEL)

comenzar

caso (SEG_SEL+1) es

cuando "000"=>Disp_Temp<=Dirección

cuando "101" =>Disp_Temp<=Dirección;

cuando "110" =>Disp_Temp <=SEC10;

cuando "111" =>Disp_Temp<=SEC1;

finalizar caso;

finalizar proceso;

proceso (Clk)

comenzar

if(Clk'event and Clk='1') then --Acumulación de escaneo

SEG_SEL<=SEG_SEL+1; /p>

Mostrar<=Disp_Decode;

finalizar si;

finalizar el proceso;

proceso(Disp_Temp) --Mostrar conversión

comenzar

caso Disp_Temp es

cuando 0=>Disp_Decode<="00111111" --'0'

cuando 1=>Disp_Decode< ="00000110"; --'1'

cuando 2=>Disp_Decode<=" 01011011"; --'2'

cuando 3=>Disp_Decode<="01001111" ; --'3'

cuando 4=>Disp_Decode<="01100110";

--'4'

cuando 5=>.Disp_Decode<="01101101"; --'5'

cuando 6=>Disp_Decode<="01111101"; 6'

cuando 7=>Disp_Decode<="00000111"; --'7'

cuando 8=>Disp_Decode<="01111111"; >

cuando 9=>Disp_Decode<="01101111"; --'9'

cuando 10=>Disp_Decode<="01001000" --'='

cuando 11=>Disp_Decode<="00010100"; --'||'

cuando otros=>Disp_Decode<="00000000" --'Todo fuera'

fin del caso ;

finalizar el proceso;

finalizar el comportamiento;