小梅哥ZYNQ FPGA之二选一多路器

一.多路选择器

        多路选择器是数据选择器的别称。在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关

二.二选一多路器

        很简单,二选一多路器就是,两个输入数据,我们定义为in_a、in_b,一个选择数据sel,如sel输入0时,输出为in_a,sel输入1时,输出为in_b。

三.Verilog代码设计

        根据二选一多路器的原理来设计,输入端口有三个,分别是in_a、in_b、sel,输出端口有一个,为out。我们的设计是sel输入0时,输出为in_a,sel输入1时,输出为in_b。

`timescale 1ns / 1ps

module mux2(

    sel,
    in_a,
    in_b,    
    out

    );
    input sel;
    input in_a;
    input in_b;
    output out;
    
    assign out = (sel==0)?in_a:in_b;
    
endmodule

使用此方法所设计的电路图如下:

四.仿真代码以及仿真结果

仿真代码:

`timescale 1ns / 1ps

module mux2_tb();

reg sel;
reg in_a;
reg in_b;    
wire out;
   
mux2 mux2_tb0(
    .in_a(in_a),
    .in_b(in_b),
    .sel(sel),
    .out(out)
);
 
initial begin
    sel=0;in_a=0;in_b=0;
    #20;
    sel=0;in_a=1;in_b=0;
    #20;
    sel=1;in_a=0;in_b=0;
    #20;
    sel=1;in_a=0;in_b=1;
end

仿真结果:

通过整体的代码逻辑和仿真输出来看,仿真波形符合设计的逻辑。

五.引脚约束
 

set_property PACKAGE_PIN AA20 [get_ports sel]
set_property PACKAGE_PIN AB22 [get_ports in_a]
set_property PACKAGE_PIN AB21 [get_ports in_b]
set_property PACKAGE_PIN AB14 [get_ports out]
set_property IOSTANDARD LVCMOS33 [get_ports in_b]
set_property IOSTANDARD LVCMOS33 [get_ports in_a]
set_property IOSTANDARD LVCMOS33 [get_ports out]
set_property IOSTANDARD LVCMOS33 [get_ports sel]

六.上板测试

通过整体的代码逻辑上板测试的输出来看,上板测试的结果符合设计的逻辑。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值