这里描述一个2选1的数据选择器
Verilog HDL数据流设计2选1的数据选择器
module mux_2to1_fan(s0,in0,in1,out);
input [1:0] s0,in0,in1;
output [1:0] out;
wire [1:0] in0_temp;
wire [1:0] in1_temp;
assign in0_temp= in0/2;
assign in1_temp= in1%2;
assign out=s0?in1_temp:in0_temp;
endmodule
用Verilog HDL语言编写的测试程序代码如下
module mux_2to1_fan_tb;
reg [1:0] s0,in0,in1;
wire [1:0] out;
mux_2to1_fan inst (
.s0 (s0),
.in0 (in0),
.in1 (in1),
.out (out)
);
initial begin
repeat (5) begin
#0 s0=2'b00;
#100 s0=2'b10;
#50 s0=2'b01;
#100 s0=2'b11;
#100;
end
$finish();
end
initial begin
in0=1'b0;
forever begin
#5;
in0=~in0;
end
end
initial begin
in1=1'b0;
forever begin
#10;
in1=~in1;
end
end
initial begin
$fsdbDumpfile("mux_2to1_fan");
$fsdbDumpvars;
$vcdpluson;
end
endmodule
用Verdi软件打开电路图分别为:


用DVE软件打开电路图分别为:

这篇博客介绍了如何使用VerilogHDL语言设计一个2选1的数据选择器,并提供了相应的测试程序代码。通过模块mux_2to1_fan的定义,实现了根据输入信号s0选择in0或in1作为输出的功能。测试程序使用了Verilog的初始块来改变s0的值,以及两个无限循环来切换in0和in1的状态,以便观察数据选择器的工作情况。
1万+

被折叠的 条评论
为什么被折叠?



