四选一数据选择器verilog仿真测试代码
时间: 2023-08-01 20:14:10 浏览: 85
部分verilog代码及仿真测试
以下是一个简单的四选一数据选择器的 Verilog 代码和仿真测试代码:
```
module four_to_one_mux(
input [3:0] data_in,
input [1:0] sel,
output reg [0:3] data_out
);
always @(*) begin
case(sel)
2'b00: data_out = data_in[0];
2'b01: data_out = data_in[1];
2'b10: data_out = data_in[2];
2'b11: data_out = data_in[3];
endcase
end
endmodule
module test_four_to_one_mux;
reg [3:0] data_in;
reg [1:0] sel;
wire [0:3] data_out;
four_to_one_mux dut(
.data_in(data_in),
.sel(sel),
.data_out(data_out)
);
initial begin
data_in = 4'b0000;
sel = 2'b00;
#10;
if(data_out !== 4'b0000) $error("Test failed");
data_in = 4'b1010;
sel = 2'b01;
#10;
if(data_out !== 4'b0001) $error("Test failed");
data_in = 4'b1010;
sel = 2'b10;
#10;
if(data_out !== 4'b0010) $error("Test failed");
data_in = 4'b1010;
sel = 2'b11;
#10;
if(data_out !== 4'b0010) $error("Test failed");
$display("All tests passed");
end
endmodule
```
在仿真测试代码中,我们首先实例化了 `four_to_one_mux` 模块,并将其输入和输出连接到测试模块中的信号。然后我们使用 `initial` 块来设置输入信号和选择信号的值,并检查输出信号是否正确。如果输出信号与预期不符,则会抛出一个错误。如果所有测试都通过,则会显示一条消息表明测试通过。
阅读全文