生成一个testbench
时间: 2023-10-23 11:13:09 浏览: 81
编写高效率的testbench
好的,以下是一个简单的 Verilog testbench 示例:
```
module my_module_tb;
// DUT (design under test)
my_module dut (
.input_a(input_a),
.input_b(input_b),
.output_c(output_c)
);
// Input signals
reg input_a;
reg input_b;
// Output signals
wire output_c;
// Clock
reg clk;
// Initialize inputs
initial begin
input_a = 0;
input_b = 0;
#5 input_a = 1;
#10 input_b = 1;
#10 $finish;
end
// Toggle the clock signal
always #5 clk = ~clk;
// Assign the clock signal to the DUT
assign dut.clk = clk;
// Monitor the output signal
always @(posedge clk) begin
$display("Output C: %b", output_c);
end
endmodule
```
这个 testbench 中包含一个 DUT,输入信号 input_a 和 input_b,输出信号 output_c 和一个时钟信号 clk。在初始化阶段,输入信号会被设置为 0,然后在 5 个时间单位后,input_a 被设置为 1,在 10 个时间单位之后,input_b 被设置为 1。时钟信号会每 5 个时间单位切换一次。在输出时,会打印出 output_c 的值。最后,当运行到 10 个时间单位时,仿真将结束。
阅读全文