二选一多路器的FPGA 实现(Verilog)

二选一多路器的FPGA 实现

实现一个二选一多路器的实现。要求:通过assign语句和always 分别描述编写testbench验证。
二选一多路器的assign的硬件描述:

module  mux_assign
(

		input  [7:0]a1,
		input  [7:0]a2,
		input sel,
		
		output [7:0]y1


);


assign  y1  =   (sel==1'b0)  ? a1 : a2;

endmodule 

二选一多路器的always的硬件描述:

 module  mux_always
(
		input [7:0]a1,
		input [7:0]a2,
		input  sel,
		output reg [7:0] y2

);

always @( *  )

y2=(sel==0) ? a1:a2;



endmodule 

二选一多路器的测试代码:

`timescale 1ns/1ns
module  tetbench;
		
	
		reg  [7:0]a1;
		reg  [7:0]a2;
		reg       sel;
		
		initial begin
			sel=0;
			a1=5;
			a2=9;
			
			
			#7 sel=1;
			a1=9;
			a2=6;
		
		end
		


		wire [7:0]y1;
		wire [7:0] y2;



mux_top mux_top_ins
(
		.a1(a1),
		.a2(a2),
		.sel(sel),

		.y1(y1),
		.y2(y2)

);
endmodule 

二选一多路器的仿真结果:二选一结果图

通过仿真测试结果图可以看出,当 sel 为低电平时,a1被选择输出,当sel为高电平时,a2 被选择输出,且延时 10ns,实现了二选一的功能,符合实验要求。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值