目录

1. 理论

2. 实操

2.1 硬件资源

2.2 程序设计

2.2.1 模块框图

2.2.2 波形图绘制

2.2.3 rtl代码

2.2.4 验证

3.总结


1. 理论

多路选择器又称数据选择器、多路开关。在选择变量控制下,从多路数据输入中选择某一路数据送至输出端。多路选择器是 FPGA 内部的一个基本资源,主要用于内部信号的选通。

2. 实操

实验目标:  设计并实现 2 选 1 多路选择器,功能是通过选通控制信号 S 确定选通 A 路或 B 路作为信号输出。当选通控制信号 S 为 1 时,信号输出为 A 路信号;当选通控制信号 S 为 0时,信号输出为 B 路信号。

2.1 硬件资源

开发板上的按键和 LED 灯进行 2 选 1 多路选择器的验证,选取 KEY1、KEY2、 KEY3 分别作为信号 A、信号 B 和选通信号 S 的信号输入;以 LED 灯 D5 作为信号输出 ,如下图所示。

按键未按下为高电平、按下为低电平; LED 灯高电平点亮。

2.2 程序设计

2.2.1 模块框图

变量名与硬件电路管脚对应关系:

in1——>key1        in2——>key2       sel——>key3      out——>led

2.2.2 波形图绘制

(规律性很强,当sel为高时,out完全与in1波形相同;当sel为低时,outout完全与in2波形相同)

2.2.3 rtl代码

依据波形图写代码,可选择if...case、if...else、三目运算符三种语句中一种实现该功能。

`timescale  1ns/1nsmodule  mux2_1
(input   wire    in1,    input   wire    in2,    input   wire    sel,    output  reg    out
);                        always@(*)               if(sel == 1'b1)        out = in1;         elseout = in2;  /* always@(*)case(sel)1'b1    : out = in1;1'b0    : out = in2;default : out = in1;    endcase *///assign out = (sel == 1'b1) ? in1 : in2; //注意将端口号中管脚属性的reg改为wireendmodule

2.2.4 验证

仿真验证:

`timescale  1ns/1nsmodule  tb_mux2_1();    reg     in1;
reg     in2;
reg     sel;wire    out;initialbegin   in1 <= 1'b0;in2 <= 1'b0;sel <= 1'b0;end//in1:产生输入随机数,模拟输入端1的输入情况
always #10 in1 <= {$random} % 2;    //取模求余数,产生非负随机数0、1,每隔10ns产生一次随机数//in2:产生输入随机数,模拟输入端2的输入情况
always #10 in2 <= {$random} % 2;//sel:产生输入随机数,模拟选择端的输入情况
always #10 sel <= {$random} % 2;mux2_1  mux2_1_inst
(   .in1(in1),  .in2(in2),  .sel(sel),  .out(out)
);endmodule

 上板验证:

sel为高,led为key1的状态;

sel为高,led为key1的状态(key1被按下);

sel为低,led为key2的状态(key2被按下);

3.总结

1.重点掌握三目运算符的使用和仿真中如何产生随机数。

2. 常见的数据选择器有二选一,四选一、八选一以及十六选一,这里注意区分数据选择器与译码器,虽然可以实现的效果相同,但是实现方式不一样,故他们消耗的资源也不一样。

说明:

本人使用的是野火家Xilinx Spartan6系列开发板及配套教程,以上内容如有疑惑或错误欢迎评论区指出,或者移步B站观看野火家视频教程。

开发软件:ise14.7     仿真:modelsim 10.5

如需上述资料私信或留下邮箱。

04FPGA组合逻辑—多路选择器(二选一)相关推荐

  1. FPGA零基础学习:基于FPGA的多路选择器设计(附代码)

    FPGA零基础学习:基于FPGA的多路选择器设计(附代码) 大侠好,欢迎来到FPGA技术江湖.本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的& ...

  2. (73)多路选择器(二选一)

    (73)多路选择器(二选一) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)多路选择器(二选一) 5)技术交流 6)参考资料 2 FPGA入门与提升课程介绍 1)F ...

  3. 跟着小梅哥初学FPGA ,vivdao开发平台,二选一多路选择器。

    今天正式开始自己的FPGA自学之路,由于导师项目需要,xilinx ZYNQ 7系列的板子,vivado软件平台进行开发,所以自己也直接学习vivado软件开发的板子,我自己学习所用的开发板是xili ...

  4. 硬件 - 数字电路 - 使用反向门、与门、或门搭建二选一的多路选择器

    文章目录 基础知识 分析 这是一个二选一的多路选择器,其由一个反向门 U3,两个二输入与门 U1.U2,以及一个二输入或门 U4 组成: 通过 SELECTION(选择端)可以选择信号的输入源:要么 ...

  5. Verilog门级实现二选一多路选择器

    使用门级电路实现1位二选一多路选择器. 通过真值表设计电路: 使用Verilog门级实现: module MUX2X1(A0,A1,S,Y);//命名 input A0,A1,S;//输入,全部为1位 ...

  6. FPGA _Verilog HDL_8选一多路选择器设计

    一.题目 熟悉QuartusII软件,并设计一个8选1多路选择器,并完成其仿真波形图(贴图). 二.源代码 //-------------------------------------------- ...

  7. 利用Block Design在Vivado实现三位四选一多路选择器

    一.要求:利用Block Design设计一个三位 4 选 1 多路选择器电路 二.实验原理: 真值表: Block Design原理图 三.设计过程 Block Design 将自己编写的与门,非门 ...

  8. 多路选择器(4选1)

    Verilog 多路选择器 实验内容:做一个4选1的mux,并且进行波形仿真 和2选1的mux对比,观察资源消耗的变化 1.MUX4-1 实验代码部分: module mux4_1 (IN0 , // ...

  9. Verilog学习日志(4选一多路选择器)

    初次接触硬件设计相关的东西,对学习过程进行一下记录. 首先根据书上内容设计了一个简单的二选一选择器 Verilog代码如下: module mux2_1 #( parameter DW = 32 // ...

最新文章

  1. 最近工作好忙,自己的软件又得落下很长一段时间了~
  2. linux pti性能影响,Linux修正内核:Intel打补丁性能狂降、AMD不受影响
  3. Codeforces Round #578 (Div. 2)
  4. 将JAVA编译为EXE的几种方法
  5. HDU3247 Resource Archiver(AC自动机+BFS+DP)
  6. python numpy数据类型_python numPy模块 与numpy里的数据类型、数据类型对象dtype
  7. 自动检测技术学习心得体会_国培计划(2020)—学校管理团队信息化领导力提升培训心得体会...
  8. 程序员懂算法玩“淮安掼蛋”是否更有优势?
  9. git .gitignore 忽略的文件还会被提交
  10. python中np没有定义_第六篇:python中numpy.zeros(np.zeros)的使用方法
  11. K8s CKS认证学习全套笔记
  12. echart 中国地图 带effectScatter和lines
  13. java数字时钟代码_Java编程小实例—数字时钟的实现代码示例
  14. 短信发送接口(短信宝)
  15. 读书笔记:《反脆弱》
  16. php服务器环境配置
  17. 帕斯卡计算机结构,帕斯卡计算机: 第一台受专利保护的计算机
  18. python学习笔记--虫师
  19. 软件测试工程师面试题答案分类详解-一家老牌培训机构内部绝密文件!
  20. redis集群搭建参考文档

热门文章

  1. ios 获取沙盒文件名_iOS沙盒机制
  2. 反射内存网与以太网技术比较
  3. banner轮播图以及nav导航栏Jquery
  4. 风色幻想ol服务器文件,开个魔导帖吧,总结下GF52的经验,服务器好像down了,写给新手,顺便问...
  5. 【Android开发】自定义圆角button样式
  6. java ffmpeg 合并视频_android ffmpeg视频剪切与合并
  7. Vue使用iview中menu菜单组件的大坑!
  8. 学习笔记——Linux简介以及ubuntu的安装使用
  9. fedora 非root账户无法登陆图形界面
  10. Apache License Version 2.0, January 2004 英文原文与中文翻译