请用systemverilog写一个test bench
时间: 2023-09-28 11:04:20 浏览: 173
很高兴为您提供答案。
以下是一个简单的SystemVerilog Test Bench 的代码示例:
```systemverilog
module tb;
// Declare signals and module instance
logic clk, rst;
logic [7:0] a, b, c;
adder dut(a, b, c);
// Define clock generator
always #5 clk = ~clk;
// Reset the module at the beginning of simulation
initial begin
clk = 0;
rst = 1;
#10 rst = 0;
end
// Stimulus generation
initial begin
a = 8'd4;
b = 8'd6;
#10 a = 8'd7;
#10 b = 8'd9;
end
// Capture and display output from DUT
always @(posedge clk) begin
$display("RESULT = %d", c);
end
endmodule
module adder(input logic [7:0] a, b, output logic [7:0] c);
assign c = a + b;
endmodule
```
以上代码定义了一个简单的 Test Bench,它包含了一个时钟信号 `clk` 和复位信号 `rst`,以及一个 8 位加法器 `adder` 的实例。Test Bench 模块会生成时钟信号和复位信号,并对输入信号进行赋值。Test Bench 模块使用 `$display` 函数从 `adder` 模块捕获结果,并将其显示在控制台上。
希望这个示例代码能够对您有所帮助!
阅读全文