¡Tráfico y semáforos amarillos escritos en Verilog!
Reloj de entrada,
Reinicio de entrada,
Ledout de registro de salida[2:0]//Verde, amarillo y rojo
reg [1:0] estado, nstate
siempre @(reset, state, count)
start
if(reset==1' b1 ) inicio
nstate = 2 ' b0
end
else beign
caso (estado)
2 'b0: inicio
if(cnt==12'd1999)
nstate = 2 ' b 1;
fin
2 'b0: inicio
if(cnt==12'd1999)
nstate = 2 ' b2
fin
2' b0 : inicio
if(cnt==12'd1999)
nstate = 2 ' b0
end
Valor predeterminado: nstate = 2 ' b0
Fin de caso
Fin
Siempre @ (reloj posedge o reinicio de posedge)
Inicio
if(reset==1'b1) inicio
status = 2 ' b0
end
else beign
status lt = nstate
Fin
Fin
reg[11:0]CNT;
Siempre @(reloj posedge o reinicio posedge)
Inicio
if(reset==1'b1)Inicio
cnt lt= 12 ' d0;
Fin
else start
caso(estado)
2'b00: inicio
ledout lt= 3' b 100;
si (cnt==12'd1999) inicio
cnt lt= 12 ' d0;
fin
de lo contrario inicio
cnt lt = CNT 1;
Fin
Fin
2'b01: Inicio
ledout lt= 3 ' b 100;
si(cnt==12'd999) inicio
cnt lt= 12 'd0;
fin
de lo contrario, inicio
cnt lt= CNT 1;
Fin
Fin
2'b10: Inicio
ledout lt= 3 ' b 100 ;
if(cnt==12'd1999) inicio
cnt lt= 12 ' d0;
fin
en caso contrario inicio
p>cnt lt= CNT 1;
Fin
Fin
Fin caso
Fin
Módulo terminal