四选一数据选择器verilog仿真测试代码
时间: 2023-08-01 22:14:10 浏览: 158
以下是一个简单的四选一数据选择器的 Verilog代码和仿真测试代码:
Verilog 代码:
`
module mux4(input [3:0]_in,
input [1:0] sel,
output reg data_out);
always @ (sel or data_in)
begin
case ()
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 mux4_test;
reg [3:0] data_in;
reg [1:0] sel;
wire data_out;
mux4 dut (.data_in(data_in), .sel(sel), .data_out(data_out));
initial begin
$monitor("sel=%b data_in=%b data_out=%b", sel, data_in, data_out);
// Test case 1: select data_in[0]
sel = 2'b00;
data_in = 4'b0001;
#10;
// Test case 2: select data_in[1]
sel = 2'b01;
data_in = 4'b0010;
#10;
// Test case 3: select data_in[2]
sel = 2'b10;
data_in = 4'b0100;
#10;
// Test case 4: select data_in[3]
sel = 2'b11;
data_in = 4'b1000;
#10;
// Test case 5: select data_in[2]
sel = 2'b10;
data_in = 4'b1111;
#10;
// Test case 6: select data_in[0]
sel = 2'b00;
data_in = 4'b1010;
#10;
$finish;
end
endmodule
```
此代码使用 `case` 语句实现选择逻辑,并且包含了六个测试用例来测试不同的选择情况。在仿真中,每个测试用例都通过改变 `sel` 和 `data_in` 的值来测试 `data_out` 的输出。
阅读全文