多路选择器

本文介绍了使用Verilog语言编写的2:1复用器(MUX)模块mux2_1的设计和测试,展示了如何在代码中实现根据选通信号选择输入信号的功能。测试bench模块通过随机化输入信号和选通信号来验证MUX的行为。
摘要由CSDN通过智能技术生成

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值