Files
hdl-projects/fsm_traffic/fsm_traffic_tb.v
Jose Luis Montañes Ojados d4ffd9dd46 add fsm_traffic
2026-03-01 05:00:05 +01:00

57 lines
1.1 KiB
Verilog

/*
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