FPGA的verilog关于多路选择器(2选1)的设计

这篇具有很好参考价值的文章主要介绍了FPGA的verilog关于多路选择器(2选1)的设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​​​​​​​

  • 实验目的

实现一个多路选择器,进行“2选1”。也就是对2个信号进行1个特定条件的筛选,满足这个特定条件的话,其中一个的数值或信息就成为输出信号的数值或信息。不满足此条件的,就输出另一个信号的数值和信息。

  • 实验原理
  1. 理论原理

2个输入信号,选择其中一个作为输出。本项目当中,有输入信号in_1和in_2。当选通信号sel为高电平的时候,输出in_1;当选通信号sel为低电平时,输出in_2。

  1. 硬件原理

硬件使用: 按键3个,led灯1个。

原理设想: 通过硬件设施来具体表现。Key1的按下,代表in_1输入高电平,反之意味着输入低电平。Key2按下,代表in_2输入高电平,反之意味着输入低电平。同理,key3就代表了选通信号sel。按下是高电平,不按是低电平。输出信号就拿LED灯表示,通过亮灭来代表输出信号的情况。

按键:按下导通。

 LED:高电平导通,输入高电平,LED灯亮。

  • 系统架构设计

思路:抓住要实现的的功能,就是判断、筛选。那就只要一个筛选模块。对谁筛选呢?对输入信号当中的两个信号(in_1in_2)进行筛选。那么要进行怎么样(什么条件的筛选呢?),条件就是所谓的选通信号sel。完整的筛选条件,就是“sel为高电平时候,输出in_1的数值或信号;sel为低电平时,输出in_2的数值或信号”。

类比推理:举个例子,选择今天中午做啥饭。Sel这个选通信号,就如同我们的大脑,大脑(sel)告诉我,想吃米了。面前既有米袋子(in_1),又有面袋子(in_2)。那么得出结论(out:今天做米饭(in_1的数值或信号)。反之亦然。

       所以系统架构设计就很简单,三个输入,进入判断模块,一个输出。输入分两大类:两个具体输入信号in_1和in_2,一个选通信号sel。

  • 模块说明
  1. 模块端口信号列表

In_1:输入信号,用按键key1控制,按下为高电平

In_2:输入信号,用按键key2控制,按下为高电平

Sel:选通信号,用按键key3控制,按下为高电平。当然也是输入的信号。
out:输出信号,用LED灯控制,高电平点亮,灭了就是低电平。

  1. 状态转移图verilog多路选择器,fpga开发

 文章来源地址https://www.toymoban.com/news/detail-726493.html

  1. 时序图(箭头是为了对齐,便于观察)verilog多路选择器,fpga开发

三个输入其实都是随机的,也就是说,想啥时候拉高拉低(想啥时候输入,想啥时候输出都无所谓)。但是有个小漏洞:并没有明确限定和说明,一次性同时到底能按几个按键。默认设定是一次最多就按下2个按键(按KEY3选通信号和KEY1;按KEY3和KEY2;单独按KEY1;单独按KEY2)甚至没规定按键一个都不按下的情况时,LED灯的亮灭情形。

对于三个输入信号(in_1/in_2/sel)按键的按下,信号电平拉高。按键松开,电平拉低。明确一点,按下和松开,都是随意的。选择的条件是什么?是sel要是高电电平的大前提下:①输入in_1是高,输出out则高,LED亮;②输入in_2是高,此时输出没做安排,这也是个漏洞。输出无法判断。

Sel要是在低电平的大前提下:输入in_2是高,输出out高,LED亮。

       但是漏洞仍旧存在。

  • 仿真波形图
  • verilog多路选择器,fpga开发

其实波形图目前感觉就是和当初画的时序图对比一下,一样说明咱对了。但是我发现个小技巧,当你看不懂波形图或者波形图太复杂,看看算式,咱们数形结合。方便理解加深印象。

verilog多路选择器,fpga开发注意这个栏目,它可以把波形图和仿真的结果按照算式的方式表达(目前本项目是这样的)然后结合我们当时的设计思路和时序图对比一下,估计就出来了。

verilog多路选择器,fpga开发

  • 代码编写及其思路

 verilog多路选择器,fpga开发

 

仿真:

代码敲完以后,就用Q进行工程操作。新建——C4,256-8—添加代码—点编译。到了这个情况后,准备仿真

verilog多路选择器,fpga开发

仿真:

                仿真必须写仿真代码。点到tb 文件夹里。建立仿真代码的.v文件

verilog多路选择器,fpga开发

对于仿真代码:(仿真文件就是要对我们被仿真的信号进行一个模拟)

                     `timescale  它是关键词时间尺度(英文time是时间,scale是大小、规模、尺度的意思)

                在仿真文件当中,begin-end当中的语句都是顺序执行的。在没有延时的情况下,几乎是没有差别的。在RTL代码当中,begin-end相当于一对{ }的作用。在同一个always块当中,如果给多个变量赋值,要使用begin-end。

此处使用initial语句,是为了给in_1,in_2,sel进行一次初值的赋值操作。

对于要使用的initial语句,他的结构上是:verilog多路选择器,fpga开发

verilog多路选择器,fpga开发然后这里,对于#就是延时的意思,10就是10纳秒

绑定管脚:输入信号in_1,就认为是KEY1,E15

                In_2是KEY2,E16

输出out就是LED1,F16

选通信号sel,应该是KEY3,M16

仿真代码:

verilog多路选择器,fpga开发

verilog多路选择器,fpga开发 

verilog多路选择器,fpga开发 

 

 

到了这里,关于FPGA的verilog关于多路选择器(2选1)的设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【FPGA】Verilog 实践:MUX 多路复用器 | Multiplexer | 实现 4 到 1 线路多路复用器

    0x00 MUX 多路复用器(Multiplexer) 多路复用器 (Multiplexer,简称 MUX) 是一种电路,用于从多个输入中选择一个特定输入。它为  个输入提供一个输出,并有  个 select single,作用是从多个输入中选择一个。 多路复用器有两个主要部分:选择器和数据线。选择器用于选择输入信号中

    2024年02月04日
    浏览(45)
  • FPGA 中的多路选择器综述:实现八选一功能

    FPGA 中的多路选择器综述:实现八选一功能 多路选择器是FPGA中常见的基础电路之一,也叫做数据选择器,用于从多个输入信号中选择一个输出信号。选择器的输入端通常有一个选择控制端,来决定哪一个输入信号会被输出。在本文中,我们将详细介绍FPGA中的多路选择器实现

    2024年02月08日
    浏览(103)
  • FPGA结构:LUT(查找表)和 MUX(多路选择器)介绍

    如果你想学习有关FPGA的专业术语,可以参考这一篇:FPGA专业术语介绍 一句话概括,通过将函数的真值表存放在少量内存单元中来实现组合逻辑电路功能的模块称为LUT。 这里以简单的一个3-LUT(3输入查找表)为例,以下给出其示意图的简化描述: 输入1 ----┐ 输入2 ----┼---

    2024年02月04日
    浏览(51)
  • 密码锁设计Verilog代码Quartus 睿智FPGA开发板

    名称:密码锁设计Verilog代码Quartus  睿智FPGA开发板(文末获取) 软件:Quartus 语言:Verilog 代码功能: 1、设计一个密码锁的控制电路,当输入正确代码时,输岀开锁信号用红灯亮、绿灯 熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁 2、在锁的控制电路中储存一个可以修改的4位代

    2024年01月18日
    浏览(51)
  • 从底层结构开始学习FPGA(4)----MUX多路选择器(Multiplexer)

            系列目录与传送门         一、什么是MUX         二、FPGA内部的MUX         

    2023年04月08日
    浏览(43)
  • FPGA四选一的多路选择器(用三元运算符?:解决)

           ?:符号通常用于条件运算符,表示条件判断。它类似于C语言中的三元运算符,用于根据条件选择不同的操作或值。         例如,在Verilog中,条件运算符?:可以用于if-else语句的简写形式。它的一般语法格式如下:         如果表达式为真,则结果为结果1;否

    2024年01月21日
    浏览(51)
  • Verilog数字系统设计——4 选1 多路选择器

    试分别使用assign、门级原语和always 语句设计4 选1 多路选择器,并写出测试代码进行测试。要求编制测试模块对实现的逻辑功能进行完整的测试; 实验提交Verilog设计文件(.v文件)和仿真波形截图,文件打包,压缩包以自己的学号+姓名命名; 仿真截图 下面展示一些 内联代码

    2024年02月08日
    浏览(45)
  • FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+纯verilog图像缩放+多路视频拼接,提供8套工程源码和技术支持

    FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+纯verilog图像缩放+多路视频拼接,提供8套工程源码和技术支持 目前FPGA实现SDI视频编解码有两种方案:一是使用专用编解码芯片,比如典型的接收器GS2971,发送器GS2972,优点是简单,比如GS2971接收器直接将SDI解码为并行的YCr

    2024年03月18日
    浏览(93)
  • 基于EDA的电烤箱控制器设计Verilog代码Quartus 新起点FPGA开发板

    名称:基于EDA的电烤箱控制器设计Verilog代码Quartus  新起点FPGA开发板(文末获取) 软件:Quartus 语言:Verilog 代码功能: 基于EDA的电烤箱控制器设计 主要研究内容 设计一个电烤箱控制器电路,要求具有三档加热功能,分别表示烧烤加热为低火、中火、高火。具有复位开关、启动

    2024年02月01日
    浏览(45)
  • 【FPGA】Verilog设计入门——时序模块及其Verilog表述

    目录 1.边沿触发型触发器及其Verilog表述 2.电平触发型锁存器及其Verilog表述  3.含异步复位/时钟使能型触发器及其Verilog表述 4.同步复位型触发器及其Verilog表述  5.异步复位型锁存器及其Verilog表述 6.Verilog的时钟过程表述的特点和规律   7.异步时序模块的Verilog表述  8.4位二进制

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包