// counter_tb.v - 计数器测试平台 `timescale 1ns/1ps module counter_tb; // 信号声明 reg clk; reg rst_n; wire [3:0] count; // 实例化被测模块 counter uut ( .clk(clk), .rst_n(rst_n), .count(count) ); // 生成时钟信号 (10ns 周期 = 100MHz) initial begin clk = 0; forever #5 clk = ~clk; end // 测试序列 initial begin // 生成 VCD 波形文件 $dumpfile("output.vcd"); $dumpvars(0, counter_tb); // 初始化信号 rst_n = 0; // 等待 20ns 后释放复位 #20; rst_n = 1; // 运行 200ns 让计数器计数 #200; // 显示最终计数值 $display("Final count value: %d", count); // 结束仿真 $finish; end // 监控输出变化 initial begin $monitor("Time=%0t ns, rst_n=%b, count=%d (0x%h)", $time, rst_n, count, count); end endmodule