四选一数据选择器verilog测试代码
时间: 2023-07-24 21:37:15 浏览: 147
以下是一个简单的四选一数据选择器的 Verilog 测试代码示例:
```verilog
module test_mux4to1;
// Inputs
reg [3:0] data_in;
reg [1:0] sel;
// Outputs
wire data_out;
// Instantiate the DUT
mux4to1 dut (
.data_in(data_in),
.sel(sel),
.data_out(data_out)
);
// Initialize inputs
initial begin
data_in = 4'b0000;
sel = 2'b00;
end
// Test case 1
always @* begin
data_in = 4'b0001;
sel = 2'b00;
#5;
if (data_out !== 1'b0) $error("Test case 1 failed");
end
// Test case 2
always @* begin
data_in = 4'b0010;
sel = 2'b01;
#5;
if (data_out !== 1'b0) $error("Test case 2 failed");
end
// Test case 3
always @* begin
data_in = 4'b0100;
sel = 2'b10;
#5;
if (data_out !== 1'b1) $error("Test case 3 failed");
end
// Test case 4
always @* begin
data_in = 4'b1000;
sel = 2'b11;
#5;
if (data_out !== 1'b0) $error("Test case 4 failed");
end
endmodule
```
该测试代码使用 always 块来设置不同的输入和选择值,并检查输出是否符合预期值。每个测试用例之间使用 #5 延迟 5 个时间单位,以确保 DUT 有足够的时间生成输出。如果输出与预期值不匹配,则使用 $error 函数产生一个错误消息。
阅读全文