vivado设计用 2 选 1 数据选择器通过模块化建模的方式实现 4 选 1 数据选择器,写出源文件和激励文件
时间: 2024-02-15 08:05:21 浏览: 84
以下是基于 Verilog HDL 的 4 选 1 数据选择器的模块化设计代码示例:
```
module mux41(input [3:0] data_in, input [1:0] sel, output reg out);
always @ (sel or data_in) begin
case(sel)
2'b00: out <= data_in[0];
2'b01: out <= data_in[1];
2'b10: out <= data_in[2];
2'b11: out <= data_in[3];
endcase
end
endmodule
```
以上代码使用了 case 语句实现了 4 选 1 的数据选择逻辑。
接下来是一个简单的激励文件示例,用于测试 mux41 模块:
```
module mux41_tb;
reg [3:0] data_in;
reg [1:0] sel;
wire out;
mux41 uut (
.data_in(data_in),
.sel(sel),
.out(out)
);
initial begin
$monitor("sel=%b data_in=%b out=%b", sel, data_in, out);
sel = 2'b00;
data_in = 4'b0000;
#10;
sel = 2'b01;
data_in = 4'b0001;
#10;
sel = 2'b10;
data_in = 4'b0010;
#10;
sel = 2'b11;
data_in = 4'b0100;
#10;
end
endmodule
```
以上代码使用了 $monitor 语句跟踪模块的输出,并在 initial 块中模拟了所有的输入情况。
阅读全文