diseño de semáforo vhdl
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;