1.原理
2.代码
2.1 mux2_1.v
module mux2_1
(
input wire in_1, //输入信号1
input wire in_2, //输入信号2
input wire sel , //选通信号
output reg out //输出信号
);
always@(*)
if(sel==1'b1)
begin
out=in_1;
end
else
out=in_2;
endmodule
2.2 tb_mux2_1.v
`timescale 1ns/1ns
module tb_mux2_1();
reg in_1 ;
reg in_2 ;
reg sel ;
wire out ;
initial
begin
in_1 <= 1'b0;
in_2 <=1'b0;
sel <=1'b0;
end
always #10 in_1 <= {$random}%2;
always #10 in_2 <= {$random}%2;
always #10 sel <= {$random}%2;
initial
begin
$timeformat(-9,0,"ns",6);//显示时间的格式,-9表示纳秒,0表示小数点后打印的位数,“ns”,6表示打印的最小数字字符是6个
$monitor("@time %t:in_1=%b in_2=%b sel=%b out=%b",$time,in_1,in_2,sel,out);
end
mux2_1 mux2_1_inst1
(
.in_1 (in_1),
.in_2 (in_2),
.sel (sel),
.out (out)
);
endmodule
实现功能,当选通信号为高电平时,也就是为1时,输出选择in_1,当为低电平时,输出为in_2。