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

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

3天内不再提示

详解FPGA的基本电路结构

潘文明 来源:明德扬吴老师 作者:明德扬吴老师 2022-03-24 11:22 次阅读

第二章 FPGA知识大串讲02_知识串联

作者:潘文明

本文为明德扬原创文章,转载请注明出处!

在上一篇文章中,我们概括地讲述了FPGA的一些学习误区。本文我们将FPGA的关键知识串联起来,系统地介绍各个知识点所处的层次和位置,为后面几仿篇文章的详细讲解做好铺垫。

第1节 FPGA的基本电路结构

详解FPGA的基本电路结构

首先,我们来讲解一下FPGA的基本电路结构。请看上图中左边红色方框,该方框内包含了组合逻辑电路以及一个D触发器。组合逻辑里可能是加法器、减法器、选择器,甚至是什么都没有,就是连线;组合逻辑的输出将连接到D触发器的输入端;D触发器在时钟的驱动下,将组合逻辑的运算结构,输出到D触发器的输出端。

这就是一个FPGA的基本电路结构,而这个电路结构则与VERILOG中的一个ALWAYS对应,如下面的代码

详解FPGA的基本电路结构

上面代码在综合器的作用下,其综合的FPGA电路结构,也是组合逻辑+D触发器的形式。其中组合逻辑由比较器(cnt==0、cnt==1、cnt==2就是比较器)、选择器(从1、2、3或者保持不变中选择)等组成;D触发器的时钟就是代码中的clk,输入则是组合逻辑的结果,输出则是信号cnt。

有读者可能会对基本电路结构有疑问,难道所有代码都这样结构吗?例如下面代码中的add_cnt0和end_cnt0信号,它是由assign设计的,它们就没有D触发器。

详解FPGA的基本电路结构

单纯只看add_cnt0和end_cnt0的代码,貌似是没有D触发器,但仔细看第5行和第6行,这个两个信号是参与了判断(事实就是选择器),决定了D触发器的输出cnt0。即从add_cnt0到cnt0之间,就是组合逻辑+D触发器的结构。

FPGA代码是由一个又一个ALWAYS代码组成的,这说明FPGA的绝大部分电路,就是由一个又一个“组合逻辑+D触发器”的电路组合起来的,如下图

详解FPGA的基本电路结构

上面这种结构是我们设计的基本单位。这种结构还有一种隐含的意思:组合逻辑决定电路的运算及功能,D触发器就像一个节点,将运算结果保存下来,为下一级运算作准备。FPGA代码设计过程,就像是设计一个功能,保存一下,设计下一个功能,保存一下。文字难以描述,请读者认真体会体会。

还有注意的是,上面推荐的是“组合逻辑+D触发器”结构思维,不要使用“D触发器+组合逻辑”思维,这种思维是不正确的。

详解FPGA的基本电路结构

再看上图,为什么说FPGA代码里,各个ALWAYS是并行的呢?从上图就很容易理解了。图中可以看到,三个D触发器都连接时钟CLK。当时钟CLK的上升沿的时候,这三个D触发器将同时受到此信息,同时将D触发器的输入值给到输出。这些电路都是同时工作的,不存在谁先谁后的。没有所谓说这个电路在工作,另一个不在工作的情况。

这个就是FPGA 的基本电路结构,读者务必做到非常清楚这个电路结构,这是我们后面描述的一个重要基础。

第2节 FPGA的知识点

我们在FPGA基础电路结构图的基础,将FPGA的所有知识点串联起来,然后通过4篇文章,逐一进行详细的讲解。

详解FPGA的基本电路结构

1. 先讲述组合逻辑部分。组合逻辑是由加法器、减法器、比较器、选择器等电路组成的,所以一开始我们要理解组合逻辑的电路有哪些类型;然后据此掌握这些类型的VERILOG代码的写法;接下来讨论这些组合逻辑的时序,引出组合逻辑才有的竞争和冒险现象,最后提出竞争和冒险的解决方法。

详解FPGA的基本电路结构

2. 完成组合逻辑的讲述后,我们将讨论D触发器。首先会讲解D触发器的结构,进而会讲述D触发器的时序,讨论D触发器时序与组合逻辑的异同。从D触发器时序中,有一个非常重要的概念:建立时间和保持时间。如果建立时间和保持时间不满足,就会有一个叫亚稳态的情况。亚稳态有什么危害,亚稳态出现的场合有哪些。在明确了出现的场合后,就要想办法解决亚稳态问题,提出了亚稳态的解决方法。其解决方法分两种:一种是单一信号,也就是一比特信号的解决方法;还有一种是多比特信号的解决方法。

详解FPGA的基本电路结构

3. 讲完了D触发器之后,我们将把组合逻辑和D触发器联合起来。前面已经讲魔神,组合逻辑+D触发器是一个正确的的电路结构。有正确,那么就不正确,根据收集读者的反馈情况,我们列出了一些经常会犯的、不合理的结构。之后将讨论这个基本结构的时序;接下来是讲述如何用VERILOG来实现。实现的话,就有行为描述以及状态机的实现这几种方法了。

详解FPGA的基本电路结构

4. 最后一部分,我们将单独对时钟进行讲解。时钟是FPGA的一个基础,是一个很重要的概念,是FPGA设计的重点和难点。首先我们将讲述时钟的概念;然后是时钟抖动SKEW和时钟频率。经常有被问到:我这个电脑CPU能跑1G,他那个电脑CPU能跑2G,这就是使用频率。那这个频率取决于什么因素,为什么有些跑得快,有些跑得慢?这个问题将引出关键路径的概念。为了提高时钟频率,我们可以怎么做?流水线的设计!!!

以上就是我们FPGA 的所有知识点,将其展示到一张图,方便读者使用。

详解FPGA的基本电路结构

审核编辑:汤梓红

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

    关注

    1624

    文章

    21583

    浏览量

    600858
  • 电路
    +关注

    关注

    172

    文章

    5820

    浏览量

    171657
  • 结构
    +关注

    关注

    1

    文章

    117

    浏览量

    21551
收藏 人收藏

    评论

    相关推荐

    详解FPGA的基本结构

    ZYNQ PL 部分等价于 Xilinx 7 系列 FPGA,因此我们将首先介绍 FPGA 的架构。简化的 FPGA 基本结构由 6 部分组成,分别为可编程输入/输出单元、基本可编程逻
    的头像 发表于 10-25 16:50 312次阅读
    <b class='flag-5'>详解</b><b class='flag-5'>FPGA</b>的基本<b class='flag-5'>结构</b>

    FPGA的时钟电路结构原理

    FPGA 中包含一些全局时钟资源。以AMD公司近年的主流FPGA为例,这些时钟资源由CMT(时钟管理器)产生,包括DCM、PLL和MMCM等。
    发表于 04-25 12:58 1604次阅读
    <b class='flag-5'>FPGA</b>的时钟<b class='flag-5'>电路</b><b class='flag-5'>结构</b>原理

    深入理解 FPGA 的基础结构

    时间对 FPGA 的内部结构产生了一定的兴趣,所以找来了一本书看,这篇博客相当于是对其中相关知识点的梳理与总结, 前置知识是数字电路逻辑 。参考书目写在了下面: FPGA 原理和
    发表于 04-03 17:39

    集成芯片原理图详解

    集成芯片的原理图详解涉及多个方面,包括芯片的结构、功能模块、信号传输以及内部电路连接等。
    的头像 发表于 03-19 16:36 1538次阅读

    FPGA的数字时钟电路解析

    FPGA 在通信领域的应用可以说是无所不能,得益于 FPGA 内部结构的特点,它可以很容易地实现分布式的算法结构,这一点对于实现无线通信中的高速数字信号处理十分有利。
    发表于 01-24 13:46 687次阅读
    <b class='flag-5'>FPGA</b>的数字时钟<b class='flag-5'>电路</b>解析

    什么是fpga和cpld cpld与fpga结构上有何异同

    ,Programmable Logic Device)的一种。它们在数字电路设计中扮演重要的角色,具有高度的可定制性和灵活性。 首先,让我们来了解FPGA和CPLD的基本概念和原理。FPGA是一种集成
    的头像 发表于 01-22 18:05 2470次阅读

    详解FPGA六大应用领域

    FPGA 所能应用的领域大概可以分成六大类,下面听我一一道来。 01 FPGA在通信系统的应用简介 FPGA 在通信领域的应用可以说是无所不能,得益于 FPGA 内部
    发表于 01-17 17:03

    一文带你详解电路

    【科普】详解电路
    的头像 发表于 12-15 10:41 1539次阅读
    一文带你<b class='flag-5'>详解</b>门<b class='flag-5'>电路</b>

    拖动系统基本控制电路详解

    拖动系统基本控制电路详解
    的头像 发表于 12-13 09:19 520次阅读
    拖动系统基本控制<b class='flag-5'>电路</b><b class='flag-5'>详解</b>

    一文详解pcb电路板是怎么制作的

    一文详解pcb电路板是怎么制作的
    的头像 发表于 12-05 11:18 1348次阅读

    详解高密 PCB走线布线的垂直导电结构 (VeCS)

    详解高密 PCB走线布线的垂直导电结构 (VeCS)
    的头像 发表于 11-28 17:00 1421次阅读
    <b class='flag-5'>详解</b>高密 PCB走线布线的垂直导电<b class='flag-5'>结构</b> (VeCS)

    LED电源驱动电路详解

    电子发烧友网站提供《LED电源驱动电路详解.doc》资料免费下载
    发表于 11-15 14:25 18次下载
    LED电源驱动<b class='flag-5'>电路</b>图<b class='flag-5'>详解</b>

    详解pcb电路板的高压安全距离

    详解pcb电路板的高压安全距离
    的头像 发表于 11-09 17:00 3296次阅读

    FPGA | 查找表(Look-Up-Table)的原理与结构(Xilinx Spartan-II)

    APEX的结构与此基本相同,具体请参阅数据手册)。 三、查找表结构FPGA逻辑实现原理 我们还是以这个电路的为例: A,B,C,D由
    发表于 11-03 11:18

    LED驱动电源的恒流电路方案分析详解

    电子发烧友网站提供《LED驱动电源的恒流电路方案分析详解.doc》资料免费下载
    发表于 11-01 10:04 5次下载
    LED驱动电源的恒流<b class='flag-5'>电路</b>方案分析<b class='flag-5'>详解</b>