add fsm_traffic

This commit is contained in:
Jose Luis Montañes Ojados
2026-03-01 05:00:05 +01:00
parent 6df7024707
commit d4ffd9dd46
3 changed files with 105 additions and 1 deletions

View File

@@ -0,0 +1,56 @@
/*
fsm_traffic testbench
*/
`include "fsm_traffic/fsm_traffic.v"
module fsm_traffic_tb;
reg clk, rst;
wire red_led, green_led, yellow_led;
fsm_traffic dut (
.clk(clk),
.rst(rst),
.red_led(red_led),
.green_led(green_led),
.yellow_led(yellow_led)
);
initial clk = 0;
always #5 clk = ~clk;
task show_state;
$display("t=%0t | rst=%b | R=%b G=%b Y=%b",
$time, rst, red_led, green_led, yellow_led);
endtask
initial begin
$dumpfile("fsm_traffic/fsm_traffic.vcd");
$dumpvars(0, fsm_traffic_tb);
// Reset
rst = 1;
@(posedge clk); #1
show_state;
rst = 0;
// Dejar correr varios ciclos para ver todos los estados
repeat(9) begin
@(posedge clk); #1
show_state;
end
// Reset a mitad de secuencia debe volver a RED
rst = 1;
@(posedge clk); #1
show_state;
rst = 0;
repeat(3) begin
@(posedge clk); #1
show_state;
end
$finish;
end
endmodule