8输入与门的testbench
时间: 2023-06-27 09:01:52 浏览: 134
以下是一个简单的输入与门的 testbench 示例:
```verilog
module and_gate_tb;
// Inputs
reg a, b;
// Outputs
wire out;
// Instantiate the unit under test (UUT)
and_gate uut (
.a(a),
.b(b),
.out(out)
);
initial begin
// Initialize inputs
a = 0;
b = 0;
// Wait for 10 ns for global reset to finish
#10;
// Test case 1: a = 0, b = 0
a = 0;
b = 0;
#10;
if (out !== 0) $display("Test case 1 failed");
// Test case 2: a = 0, b = 1
a = 0;
b = 1;
#10;
if (out !== 0) $display("Test case 2 failed");
// Test case 3: a = 1, b = 0
a = 1;
b = 0;
#10;
if (out !== 0) $display("Test case 3 failed");
// Test case 4: a = 1, b = 1
a = 1;
b = 1;
#10;
if (out !== 1) $display("Test case 4 failed");
// End simulation
$finish;
end
endmodule
```
这个测试台包括一个输入端口 `a` 和 `b`,以及一个输出端口 `out`。我们实例化了一个 `and_gate` 模块,并将输入和输出端口连接到该模块的实例中。
在初始化块中,我们初始化了输入端口,并等待 10 ns 让全局重置完成。接下来,我们设置测试用例并检查输出是否符合预期。如果输出与期望值不相等,我们将在控制台上显示失败消息。
这个测试台的工作原理是模拟了输入信号的变化并观察输出信号的变化,以确定 `and_gate` 模块是否按照预期工作。
阅读全文