verilog 用逻辑门实现四选一数据选择器

首先看看用逻辑功能直接实现的四选一数据选择器

语句如下:

module sxy(
	a,b,c,d,s1,s0,y
	);
	input	a	;
	input	b	;
	input	c	;
	input	d	;
	input	s1	;
	input	s0	;
	output	y	;
	reg		y	;


always @(*)begin
	case ({s1,s0})
		2'b00: 	y <= a;
		2'b01: 	y <= b;
		2'b10:	y <= c;
		2'b11:	y <= d;
	endcase
end

endmodule

测试结果如下: 

 

 今天的主要目的是用逻辑门实现四选一是数据选择器

四选一数据选择器的真值表如下:

 根据真值表可以用四个三输入与门和一个四输入或门来实现我们需要的四选一数据选择器

语句如下:

module sxy(
	a,b,c,d,s1,s0,y
	);
	input	a	;
	input	b	;
	input	c	;
	input	d	;
	input	s1	;
	input	s0	;
	output	y	;
	wire	y	;
	wire	a1	;
	wire	b1	;
	wire	c1	;
	wire	d1	;
	
	and	 (a1,a,~s1,~s0);
	and  (b1,b,~s1,s0);
	and  (c1,c,s1,~s0);
	and  (d1,d,s1,s0);
	or 	 (y,a1,b1,c1,d1);
endmodule

测试结果如下:

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值