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
    +关注

    关注

    1655

    文章

    22281

    浏览量

    630051
  • 电路
    +关注

    关注

    173

    文章

    6063

    浏览量

    177443
  • 结构
    +关注

    关注

    1

    文章

    119

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于瑞芯微 RK3588 的 ARM 与 FPGA 交互通信实战指南

    本文围绕创龙科技研发的 TL3588-EVM 评估板,详解瑞芯微 RK3588 与 FPGA 基于 PCIe 总线的通信案例,包括 DMA 与非 DMA 两种方式。涵盖案例功能、测试流程、编译步骤
    的头像 发表于 11-04 16:09 251次阅读
    基于瑞芯微 RK3588 的 ARM 与 <b class='flag-5'>FPGA</b> 交互通信实战指南

    大电流(电机)电流采样电路分享与详解

    一、电路分享二、电路详解电路中电流采样主要通过电阻R1和芯片LTC6102进行1、LTC6102简介LTC6102/LTC6102HV是多功能、高压、高边电流检测放大器。高电源电压额定
    的头像 发表于 06-09 19:35 1246次阅读
    大电流(电机)电流采样<b class='flag-5'>电路</b>分享与<b class='flag-5'>详解</b>

    FPGA的定义和基本结构

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

    FPGA芯片的概念和结构

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

    电子电路设计中常用的接地方式详解

    在电子电路设计中,接地方式的选择至关重要,它直接影响到电路的稳定性、抗干扰能力和安全性。以下是电子电路设计中常用的几种接地方式的详解: 一、浮地 1. 定义:浮地是指
    的头像 发表于 04-17 16:24 1330次阅读
    电子<b class='flag-5'>电路</b>设计中常用的接地方式<b class='flag-5'>详解</b>

    放大器电路原理及放大器电路图内容详解

    该文档为放大器电路原理及放大器电路图内容详解资料,讲解的还不错,感兴趣的可以下载看看~ (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 03-20 11:55

    开关电源各部电路详解

    开关电源原理及各功能电路详解 一、 开关电源的电路组成:: 开关电源的主要电路是由输入电磁干扰滤波器(EMI)、整流滤波电路、功率变换
    发表于 03-10 16:51

    【国产FPGA入学必备】国产FPGA权威设计指南+配套FPGA图像视频教程

    大量内容。阵容强大,精钻深研,力求为读者呈现紫光同创FPGA开发最全详解。 02 深入浅出 全面详解 本书以紫光同创Logos2系列FPGA为例,从多维度介绍紫光同创
    发表于 02-20 15:08

    采用AFE0064和ADS8363加fpga结构,如何进行控制?

    采用AFE0064和ADS8363加fpga结构,详问如何进行控制?
    发表于 02-05 06:10

    fpga和cpu的区别 芯片是gpu还是CPU

    型的芯片,它们在结构、功能、应用场景等方面存在显著差异。 结构与灵活性 FPGAFPGA是一种可编程逻辑器件,其内部由大量的可编程逻辑单元(CLB)、输入/输出模块(IOB)、可编
    的头像 发表于 02-01 14:57 2977次阅读

    CPLD 与 FPGA 的区别

    在数字电路设计领域,CPLD和FPGA是两种常用的可编程逻辑器件。它们都允许工程师根据需要设计和重新配置数字电路,但它们在结构、性能和应用上存在显著差异。 CPLD和
    的头像 发表于 01-23 09:46 2450次阅读

    I2C总线数据包结构详解

    。以下是I2C总线数据包结构详解: 一、I2C总线数据包的基本组成 I2C总线上的数据传输以数据包为单位进行,每个数据包包含起始信号、设备地址、数据传输方向位、数据字节以及应答信号(ACK/NACK)等部分。 起始信号(S) : 起始信号标志着数据传输的开始。当SCL为
    的头像 发表于 01-17 15:46 1385次阅读

    5KP18A瞬态抑制二极管规格书详解 保障电路安全

    5KP18A瞬态抑制二极管规格书详解 保障电路安全
    的头像 发表于 01-14 14:52 917次阅读
    5KP18A瞬态抑制二极管规格书<b class='flag-5'>详解</b> 保障<b class='flag-5'>电路</b>安全

    大多数FPGA的程序存储器(FLASH)为什么都放在外面呢?FPGA的主要应用

    电子产品市场几乎难以看到FPGA的使用,几乎全是专用集成电路(ASIC)芯片,就是我们常说的定制芯片,为什么FPGA的应用会这么的少,因为专用集成电路(ASIC)芯片速度要比
    的头像 发表于 12-24 11:04 1836次阅读
    大多数<b class='flag-5'>FPGA</b>的程序存储器(FLASH)为什么都放在外面呢?<b class='flag-5'>FPGA</b>的主要应用

    采用AFE0064和ADS8363加fpga结构,如何进行控制?

    方案目前采用AFE0064和ADS8363加fpga结构,详问如何进行控制? 目前是用一块板有2个的AFE0064芯片,分高能与低能。十几块板与1个ADS8363连接;由fpga统一控制。问VDD
    发表于 12-10 08:00