0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA数字门电路的实现

璟琰乀 来源:硬禾学堂 作者:硬禾学堂 2020-12-18 11:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

学习电子工程的过程中离不开大量的实验和动手练习,就如同开车一样,学习理论数载,如果从来没有打几把方向盘,踩几脚油门然后再被教练紧急刹车几次,仍然不会开车。正所谓,看别人做一百次,不如自己练一次。

1

电路原理

数字电路中,门电路是最基本的构成单位,可以说,任何复杂的数字电路系统都可以通过我们耳熟能详的与门,非门,或门,与非门,异或门等等组合实现。

对于各种门电路的逻辑特征,想必大家都掌握得炉火纯青,脑海里可以毫无压力地随时浮现着各种0和1的组合。

然而,搭建一个门电路实验却并不容易!我们以下面的与非门电路为例。

BJ77Fb.png

图1 与非门电路

表1 与非门真值表

传说中,如果想做一个与非门的数字电路实验,可以通过以下两种方法:

热爱模电的朋友们可以通过MOS管+面包板+电源+跳线以及若干小时的反复调试。

土豪朋友们对此不屑一顾,直接拍几千块买一台数字电路实验仪。

当然,既没有那么热爱模电,也没有那么多软妹纸的朋友门仍然有更合适的办法,那就是通过逻辑芯片。比如大家熟悉的7400系列的逻辑芯片,只需要接上电源,再配上开关,LED等器件,就可以通过实验方式对与非门的逻辑和电气特性进行直观地学习,比如采用7400 Quad2的与非门逻辑芯片。

uqMniu.png

图2 与非门逻辑芯片

因为我们要观察实验现象,因此需要配上开关和LED灯,使得实验可以可视化。当然,作为习惯了课上学习1+1=2,考试见到

的后浪,肯定不能满足于这个简单的实验。现在,在上一个练习的基础上,我们来尝试构建以下门电路组合。

图3 组合门电路

嵌入式专栏

2

门电路实现

以下是某位同学独特的实现方式:

图4

虽然我们还通过软件仿真的方式构建上述电路并观察波形,然而和电路上进行实打实的操作相比终究是有质的差别。毕竟靠着模拟飞车驾龄20年资历上路还是要被警察叔叔带走的。

不难看出,画门电路容易,对门电路进行实验很难,对各式各样奇葩组合的门电路进行实验更是难上加难。然而这一切在FPGA面前都只是谈笑风生。

FPGA,英文全称Field Programmable Gate Array,是一种可以通过某百科或搜索引擎查找到并且看了之后不明觉厉的东西。在此,我们主要介绍一下FPGA的部分特点,以及如何使其与数字电路实验进行结合。

首先问大家一个问题:我们在计算3x7=21或者5x8=40的时候,有谁是通过最原始的乘法原理推导并计算出来的,如果有,请在底部留言并获得所有人的膜拜。相信大部分人都可以在半秒内给出准确答案,为什么?因为我们都背过九九乘法表,只要是在这个范围内的任意乘法我们的大脑都可以瞬间对应出计算结果。相信大家对当年的11²=121,12²=144,13²=169…等等还历历在目。

之所以我们可以在一定范围内进行准确和快速的计算,是因为我们的大脑里储存了一个拥有大量数据的查找表,在一定范围内的输入数据我们都可以迅速在表中找到对应答案。其实,FPGA的运算处理方式就类似于我们的大脑。它拥有一个可以储存大量数据的查找表,只要我们通过程序定义出输入与输出之间的逻辑关系,FPGA就可以按照该逻辑关系自行对其内部结构进行重新定义,直白地说,就是我们可以随时给FPGA进行洗脑,而后者可以永远不计回报,心甘情愿地被洗脑。

接下来我们就快速展示一下如何通过FPGA展示图3所示的门电路。既然要对FPGA进行洗脑,肯定需要语言。在这里我们采用简单通俗的Verilog语言,通过描述门电路的方式,以16行代码轻松在FPGA上搭建上述门电路。

module custblock ( input wire A, //定义输入A input wire B, //定义输入B input wire C, //定义输入C input wire D, //定义输入D output wire Y1, //定义输出Y1 output wire Y2 //定义输出Y2 ); wire s1,s2,s3; //定义中间变量 nand (s1,A,B); //(输出,输入,输入) or (s2,C,D); // 调用基本门电路 xnor (Y1,s1,C); and (s3,C,s2); xor (Y2,C,s3); endmodule

将上述代码导入FPGA之后,就等于在FPGA上构建出了一个模块,输入端分别是A,B,C,D,输出端分别是Y2,Y1,且内部结构和图3中所示的功能完全一样。

图5

不过,对于实验来说,仅仅在FPGA上搭建出该门电路模块还是不够的,我们还需要允许实验者对该电路进行调试并观察现象,因此还需要有相应的可操作/观察元件与FPGA配合使用。接下来就是我们备受欢迎的小脚丫FPGA登场的时候了。

图6 小脚丫FPGA核心板

从示意图中可以看出,小脚丫FPGA带有多个板载外设,如开关,LED和数码管等,可以对绝大部分数字电路进行生动的实验操作。小脚丫配有USB下载器,可以通过一根USB线实现供电和程序下载。板上的36个多功能I/O接口可以进行项目扩展,且封装采用DIP40尺寸,因此可以与面包板完美结合。

以下是通过我们小脚丫FPGA对该电路进行的实验。我们采用板载的4个拨码开关和2个LED(低电平亮)分别作为模块的4路输入和2路输出,并且通过调节输入来观察输出结果。上下两图分别所对应的输入分别为:0001和0101,我们也观察到了在两种情况下的LED状态。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1664

    文章

    22506

    浏览量

    639394
  • 电路
    +关注

    关注

    173

    文章

    6087

    浏览量

    178878
  • 核心板
    +关注

    关注

    6

    文章

    1423

    浏览量

    32145
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于FPGA的磁场定向控制实现方案

    FOC控制算法对传感器采样速率和处理器算力提出了一定的要求,使用 FPGA 实现的 FOC 可以获得更好的实时性,并且更方便进行多路扩展和多路反馈协同。
    的头像 发表于 03-31 15:27 247次阅读
    基于<b class='flag-5'>FPGA</b>的磁场定向控制<b class='flag-5'>实现</b>方案

    FPGA在音频产品上的应用案例

    FPGA(Field-Programmable Gate Array),现场可编程逻辑门阵列,它是一种电子设备,用于执行任何(数字)逻辑功能或数字电路的硬件实现。它是作为专用集成
    的头像 发表于 03-19 10:30 3255次阅读
    <b class='flag-5'>FPGA</b>在音频产品上的应用案例

    74LVC1G97低功耗可配置多功能门电路的深度解析

    74LVC1G97低功耗可配置多功能门电路的深度解析 在电子设计领域,低功耗、高集成度且功能多样的芯片一直是工程师们的心头好。今天,我们就来深入探讨SG Micro Corp推出的74LVC1G97
    的头像 发表于 03-16 11:45 401次阅读

    数字IC/FPGA设计中的时序优化方法

    数字IC/FPGA设计的过程中,对PPA的优化是无处不在的,也是芯片设计工程师的使命所在。此节主要将介绍performance性能的优化,如何对时序路径进行优化,提高工作时钟频率。
    的头像 发表于 12-09 10:33 3563次阅读
    <b class='flag-5'>数字</b>IC/<b class='flag-5'>FPGA</b>设计中的时序优化方法

    探索 onsemi NL7SZ58:多功能门电路的卓越之选

    在电子设计领域,一款性能优异且功能多样的门电路器件往往能为工程师们带来更多的设计灵活性和便利。今天,我们就来深入了解一下 onsemi 公司推出的 NL7SZ58 可配置多功能门电路
    的头像 发表于 12-01 10:19 1053次阅读
    探索 onsemi NL7SZ58:多功能<b class='flag-5'>门电路</b>的卓越之选

    嵌入式与FPGA的区别

    应用。 FPGA的开发是逻辑实现+约束+综合+仿真,嵌入式的开发是编码+编译+调试,如果是对数字电路设计感兴趣,可以考虑FPGA。 ⭕在了解下就业机会哪个多? ✅1、嵌入式的就业机会很
    发表于 11-20 07:12

    嵌入式和FPGA的区别

    ,芯片内部的门电路连接在出厂时就已固定,无法更改,它们的功能是通过软件编程也就是嵌入式软件来实现的。 FPGA(现场可编程门阵列) 则是一种可编程逻辑器件,其硬件结构可以通过编程来配置,实现
    发表于 11-19 06:55

    如何利用Verilog HDL在FPGA实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA实现SRAM读写测试,包括设计SRA
    的头像 发表于 10-22 17:21 4579次阅读
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b>上<b class='flag-5'>实现</b>SRAM的读写测试

    咨询符合国标GB/T 4728.12-2022的逻辑门电路设计软件

    背景 在大学教授《数字逻辑》,总是遇到绘逻辑电路图的问题,想适配国家标准GB/T 4728.12-2022的逻辑门电路,培养学生的家国情怀,但目前的软件好像使用的都是IEEE标准,逻辑门电路
    发表于 09-09 09:46

    基于FPGA和LTC2308模数转换芯片的数字电压表设计

    通过FPGA对模数转换芯片(LTC2308)的采样控制,实现一个简易的数字电压表。
    的头像 发表于 08-16 08:58 5752次阅读
    基于<b class='flag-5'>FPGA</b>和LTC2308模数转换芯片的<b class='flag-5'>数字</b>电压表设计

    基于FPGA的压缩算法加速实现

    本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA实现该算法时,可
    的头像 发表于 07-10 11:09 2600次阅读
    基于<b class='flag-5'>FPGA</b>的压缩算法加速<b class='flag-5'>实现</b>

    中微爱芯推出可配置多功能逻辑门电路AiP74LVC1G99

    中微爱芯推出可配置多功能逻辑门电路AiP74LVC1G99,该电路可配置为多种三态逻辑门,如“与门”、“与非门”、“或门”、“或非门”、“异或门”、“同或门”、“反相器”、“缓冲器”以及“多路复用器”,用法灵活多样。
    的头像 发表于 06-17 10:52 1543次阅读
    中微爱芯推出可配置多功能逻辑<b class='flag-5'>门电路</b>AiP74LVC1G99

    FPGA的定义和基本结构

    专用集成电路( ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 简而言之, FPGA
    的头像 发表于 05-15 16:39 2973次阅读
    <b class='flag-5'>FPGA</b>的定义和基本结构

    实用电子电路设计(全6本)——数字逻辑电路的ASIC设计

    由于资料内存过大,分开上传,有需要的朋友可以去主页搜索下载哦~ 本文以实现高速高可靠性的数字系统设计为目标,以完全同步式电路为基础,从技术实现的角度介绍ASIC逻辑
    发表于 05-15 15:22

    FPGA芯片的概念和结构

    FPGA(Field Programmable Gate Array,现场可编程门阵列),是一种可在出厂后由用户根据实际需求进行编程配置的集成电路。与专用集成电路(如ASIC)不同,FPGA
    的头像 发表于 05-12 09:30 3233次阅读