这里描述一个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软件打开电路图分别为: