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