ZYNQ-fpga学习(一)MUX的设计

    一、实验任务 

本节的实验任务是使用 ZYNQ 开发板来设计一个简单的 2 选 1 多路选择器,主要功能是通过选通控制 信号 sel 确定输入信号 in1 和 in2 哪一个信号作为输出。当选通控制信号 sel 为 1 时,输出为 in2 端信 号;当选通控制信号 sel 为 0 时,信号输出为 in1 端信号。

二、Verilog代码

module MUX(
	input in1,
	input in2,
	input sel,
	output out
    );
	
assign out =(sel==1'b1)? in2 : in1;
//always@(*)
//	begin
//		case(sel)
//			1'b1:out<=in2;
//			1'b0:out<=in1;
//			default:;
//		endcase
//	end
endmodule

三、testbench 的编写

module MUX_tb();
	reg in1;
	reg in2;
	reg sel;
	wire out;
	
	initial
		begin
			in1=1'b0;
			in2=1'b0;
			sel=1'b0;
			#100
			in1=1'b0;
			in2=1'b0;
			sel=1'b1;
			#100
			in1=1'b0;
			in2=1'b1;
			sel=1'b0;
			#100
			in1=1'b0;
			in2=1'b1;
			sel=1'b1;
			#100
			in1=1'b1;
			in2=1'b0;
			sel=1'b0;
			#100
			in1=1'b1;
			in2=1'b0;
			sel=1'b1;
			#100
			in1=1'b1;
			in2=1'b1;
			sel=1'b0;
			#100
			in1=1'b1;
			in2=1'b1;
			sel=1'b1;
		end
	MUX MUX2_1(
	.in1(in1),
	.in2(in2),
	.sel(sel),
	.out(out)
	)	;
endmodule

 三、仿真

点击vivado中run simulation ,得到波形图如下:

 若出现错误。可以查看xvlog.log文件,在sim_1\behave\xsim目录下

四、添加引脚约束

根据板子的引脚来配置

set_property -dict {PACKAGE_PIN L14 IOSTANDARD LVCMOS33} [get_ports in1] 
set_property -dict {PACKAGE_PIN K16 IOSTANDARD LVCMOS33} [get_ports in2] 
set_property -dict {PACKAGE_PIN N16 IOSTANDARD LVCMOS33} [get_ports sel] 
set_property -dict {PACKAGE_PIN H15 IOSTANDARD LVCMOS33} [get_ports out] 

五、RTL原理图

可以通过 Vivado 软件查看 RTL 分析原理图,通过原理图可以快速掌握项目设 计的架构图,方便后续对代码进行优化。在左侧导航栏点击 Schematic

(位于 Flow Navigator→RTL ANALYSIS→Open Elaborated Design→Schematic),打开 RTL 原理图设计。

最后就是上板验证了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值