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

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

3天内不再提示

FPGA-现场可编程门阵列

FPGA之家 来源:FPGA之家 2023-01-09 09:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

无论你使用图形化设计程序,ANSIC语言还是VHDL语言,如此复杂的合成工艺会不禁让人去想FPGA真实的运作情况。在这个芯片中的程序在这些可设置硅片间到底是如何工作的。本文会使非数字化设计人员明白FPGA(现场可编程门阵列)的基础知识及其工作原理。此信息在使用高端设计工具时同样十分有用,希望可以为理解这一特别技术提供一些线索。

1FPGA-现场可编程门阵列

每一块FPGA芯片都是由有限多个带有可编程连接的预定义源组成来实现一种可重构数字电路

e7b1046a-8fba-11ed-bfe3-dac502259ad0.png

FPGA芯片说明书中,包含了可编程逻辑模块的数量、固定功能逻辑模块(如乘法器)的数目及存储器资源(如嵌入式RAM)的大小。FPGA芯片中还有很多其它的部分,但是以上指标通常是为特定应用选择和比较FPGA时,最重要的参考指标。

在最底层,可配置逻辑模块(如片或逻辑单元)有着两种最基本的部件:触发器和查找表(LUT)。这很重要,因为各种FPGA家族之所以各不相同,就是因为触发器和查找表组合的方式不同。例如,Virtex-II 系列的FPGA ,它的片具有两个查找表和两个触发器,而Virtex-5 FPGA的片具有4个查找表和4个触发器。查找表本身的结构也可能各不相同(4输入或6输入)。

表1中列出了在NI LabVIEW FPGA硬件目标中使用的FPGA的指标。逻辑门的数量是一种将FPGA芯片与ASIC技术进行比较的传统方法,但是它并不能真实地表述FPGA内部的独立单元的数量。这就是Xilinx公司没有在新型Virtex-5系列中指定逻辑门数量的原因之一。

e7dbd046-8fba-11ed-bfe3-dac502259ad0.png

为了更好地理解这些规格的意义,将编码考虑为合成的数字电路模式。对任何一段合成代码,或图形化或文本形式,都有相应的电路图反映逻辑组件该如何连线。通过一段简单布尔逻辑电路了解下相应的示意图。图2表示的是传递5个布尔信号并且可图形化计算所得的二进制值的功能组。

e7eaae54-8fba-11ed-bfe3-dac502259ad0.png

在通常情况下(除LabVIEW SCTL—单周期定时环路外),图2所示相应电路图同图3所示相近。

e7fb71a8-8fba-11ed-bfe3-dac502259ad0.png

虽然很难明白,但是实际上这里创建了两个并行分支的电路。最上面的5条黑线被反馈到第一个分支,它在每个布尔操作间添加了触发器。最下面的5条黑线构成了第二个逻辑链。其中一支路在每步操作之间增加了同步寄存器,另一条逻辑链是确保执行数据流的。本电路图正常工作时总共需要12个触发器和12个查找表。

2触发器

e80879c0-8fba-11ed-bfe3-dac502259ad0.png

触发器是二进制移位寄存器,用于同步逻辑以及保存时钟(脉冲)周期内的逻辑状态。在每个时间(脉冲)边沿,触发器在输入时锁定1(真)或0(假)值并且保存此值直到下次时钟(脉冲)边沿。在正常情况下,LabVIEW FPGA在每次操作之间都设置一个触发器,以保证有足够的时间来执行每步操作。对此律的例外只发生在SCTL结构中写代码的情况。在这个特殊的环路结构中,触发器只放置在闭环迭代的始末段,并且由编程者考虑定时因素来决定如何放置。图5表示的是图3的上端分支,触发器由红色高亮表示。

e8131dda-8fba-11ed-bfe3-dac502259ad0.png

3查找表

e821fec2-8fba-11ed-bfe3-dac502259ad0.png

图6所示示意图中的其他逻辑电路通过使用少量查找表形式的随机存取存储器实现。我们可以简单地假定FPGA中系统门的数量可参考与非门(NAND)以及或非门(NOR)的数量,但实际上,所有的组合逻辑(与门、或门、与非门、异或门等)都是通过查找表存储器中的真值表来实现。真值表是输出对应于每个输入值组合的预定义表(现在卡诺图的重要性在你的头脑中可能会慢慢淡化)。以下是对数字逻辑电路课程的快速回顾:比如,图7是布尔逻辑与门操作过程。

这是对数字逻辑课程的快速回顾:

例如,图7中显示了布尔型AND操作。

e8337328-8fba-11ed-bfe3-dac502259ad0.png

e8440a62-8fba-11ed-bfe3-dac502259ad0.png

你可以认为输入值是所有输出值的数字索引,如表3所示。

Virtex-II和Spartan-3系列FPGA芯片有着4输入查找表来实现真正的4输入信号的16种组合。图8就是一个四输入电路实现的例子。

e853a2ce-8fba-11ed-bfe3-dac502259ad0.png

表4所示为使用双四输入查找表实现的相应的真值表。

e8832a1c-8fba-11ed-bfe3-dac502259ad0.png

e8914f7a-8fba-11ed-bfe3-dac502259ad0.png

Virtex-5系列的FPGA使用双六输入查找表,可以通过6个不同输入信号的64种组合来实现真值表。因为触发器之间的组合逻辑十分复杂,所以在LabVIEW FPGA中使用SCTL也越来越重要。下一节将讲述SCTL如何优化利用LabVIEW中的FPGA源。

4SCTL

上几节中使用的代码例子假定代码是设置在SCTL外部,并为保证执行同步数据量也同步了附加电路。SCTL是LabVIEW FPGA中一个特殊结构,生成一个更为优化的电路图,以期望达到在一个时钟(脉冲)周期内执行完所有逻辑电路分支。例如,若设置SCTL在40MHZ运行,则所有逻辑电路分支将在25ns内执行完毕。

如果在SCTL中设置前例中同样的布尔逻辑电路(如图9所示),则生成如图10所示的相应电路示意图。

e8aef188-8fba-11ed-bfe3-dac502259ad0.png

e8be192e-8fba-11ed-bfe3-dac502259ad0.png

很明显,这种实现方法简单多了。在Virtex-II或Spartan-3系列FPGA中,触发器间的逻辑需要至少2个4输入查找表,如图11所示。

由于Virtex-5系列FPGA有着6输入的查找表,用户可以在一个查找表中实现相同数量的逻辑,如图12所示。

e8cd1938-8fba-11ed-bfe3-dac502259ad0.png

本例中使用的SCTL(如图9所示)设置在40MHZ下运行,这意味着在任意触发器之间逻辑电路必须在25ns内完成执行。电子在电路中传播的速度决定了代码执行的最大速度。关键路线是有最长传播延迟的逻辑电路分支,它决定了该部分电路中理论最大时钟速率。Virtex-5 FPGA上的双六输入查找表不仅减少实现给定逻辑电路所需要的查找表总数,而且减少电子通过逻辑电路的传播延迟(时间)。Virtex-5系列FPGA中的6输入查找表不仅可以减少实现特定逻辑而需要的查找表的数量,而且可以降低逻辑中电流的传输延时。这意味着,您可简单地通过选择一个基于Virtex-5的硬件指标设置相同的SCTL,追求更快的时间速度。

5乘法器和DSP

e8da040e-8fba-11ed-bfe3-dac502259ad0.png

看起来简单的两数相乘运算在数字电路中实现起来是十分复杂的,也是极为消耗资源的。为提供相关参考,图14所示是一种使用组合逻辑电路实现4×4字节乘数器的示意图。

e8eddace-8fba-11ed-bfe3-dac502259ad0.png

试想两个32字节的数字相乘要通过2000多步操作才能得到结果。因此,FPGA预设了乘数器电路,在数学和信号处理应用中保存对查找表和触发器使用。Virtex-II和Spartan-3 FPGA拥有18×18bit乘法器,所以两个32字节数字相乘的运算需要三个乘法器来实现。许多信号处理算法都包括连乘运算结果的功能,因此Virtex-5等高性能FPGA都预设被称为DSP片的乘数器累加电路.这些预设处理组件,也被称为DSP48片,包括25×18bit乘数器以及加法器电路,尽管您可单独使用乘数器功能。表5所示为不同FPGA系列DSP决策。

e8fcf108-8fba-11ed-bfe3-dac502259ad0.png

6块随机存取存储器

选择FPGA时,记忆源是另一个需要考虑的关键因素。嵌入FPGA芯片中的用户自定义随机存取存储器(RAM),对储存数据设置或平行环路之间传送数值很有帮助。基于FPGA系列,您可在16或36kb组件中设置板载RAM,或者使用触发器以数组来执行数据设置;然而,对于FPGA逻辑源来说,大型数组很快就变得十分“奢侈”。由100个32字节元素数组可消耗Virtex-II 1000 FPGA中超过30%的触发器,或者占用少于1%的嵌入式块RAM。DSP算法通常需要追踪整个数据块或是复杂等式的系数,而在没有板载存储器情况下,许多处理功能在FPGA芯片的硬件逻辑电路中都不适用。图16所示为使用块RAM读写存储器的图形化功能。

e9098472-8fba-11ed-bfe3-dac502259ad0.png

同样,你也可以使用内存块,将一段完整周期存储为数值和索引的顺序表,为板载信号发生器存储周期性波形数据。输出信号的最终频率由检索数值的速度决定,这样您就可用此方法动态改变输出频率,而不需要输入波形中的急剧变化。

e9195c58-8fba-11ed-bfe3-dac502259ad0.png

FPGA固有的并行执行要求逻辑电路独立元件可在不用时间脉冲下驱动。在不同运行速度下的逻辑电路之间传递数据是很棘手的。使用先进先出(FIFO)缓冲器时,板载存储器可用来是传输更加平稳。如图16所示,用户可以将FIFO缓冲器配置成不同大小以确保数据在FPGA芯片的非同步部件间不会丢失。表6所示为嵌入不同FPGA系列的用户可设置快RAM。

e92cede0-8fba-11ed-bfe3-dac502259ad0.png

7总结

随着高端技术的发展以及新概念的深入概括,FPGA技术地采用将不断增加。然而探究FPGA其中奥秘,感叹这硅片中在方框图间汇编出的变化,也是十分重要的。在发展阶段,如果您懂得如何利用和优化资源,比较和选择触发器、查找表、乘数器和块RAM等硬件指标是十分有帮助的。这些基本的功能块并不是包含所有资源的完整清单,而且这篇白皮书并没有包含对所有FPGA部件的讨论。

审核编辑 :李倩

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

    关注

    1655

    文章

    22287

    浏览量

    630314
  • 存储器
    +关注

    关注

    39

    文章

    7715

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    罗彻斯特电子为Lattice产品提供持续供货支持

    罗彻斯特电子为现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)及其它多款Lattice传统产品提供持续供货支持。
    的头像 发表于 11-30 11:52 573次阅读

    思尔芯邀您共聚 FPT 2025,赋能可编程技术新未来

    技术先锋,再启新程!思尔芯将亮相12月2日至5日的2025年国际现场可编程技术大会(FPT),与全球顶尖专家学者及行业伙伴,共同探索可编程技术的前沿发展与应用创新。FPT是亚太地区最具影响力的
    的头像 发表于 11-25 09:57 270次阅读
    思尔芯邀您共聚 FPT 2025,赋能<b class='flag-5'>可编程</b>技术新未来

    MarketsandMarkets FPGA行业报告,2026~2030 FPGA市场洞察

    , Share & Trends(Report Code:SE 3058)。中国第一梯队 FPGA 开发板和解决方案提供商 ALINX 整理内容如下。   FPGA 市场概况 现场可编程
    的头像 发表于 11-20 13:20 126次阅读
    MarketsandMarkets <b class='flag-5'>FPGA</b>行业报告,2026~2030 <b class='flag-5'>FPGA</b>市场洞察

    TPS748A 1.5A可编程软启动低压差线性稳压器技术解析

    对解决方案的设置,使其满足现场可编程门阵列 (FPGA)、数字信号处理器 (DSP) 和其他具有特殊启动要求的应用程序的排序要求。
    的头像 发表于 08-27 14:37 552次阅读
    TPS748A 1.5A<b class='flag-5'>可编程</b>软启动低压差线性稳压器技术解析

    10CX150YF672E5G现场可编程门阵列FPGA)芯片

    资源:≈150 K LE(逻辑单元),≈54.8 K LAB/CLB•存储:≈10.9 Mbit 总 RAM• I/O:236 个可编程 I/O,封装 672-BBGA(FCBGA,27 mm×27
    发表于 08-21 09:15

    FPGA的基础概念和应用场景

    在现代电子科技飞速发展的浪潮中,FPGA(Field Programmable Gate Array,现场可编程门阵列)犹如一颗璀璨的明星,在通信、人工智能、汽车电子等众多领域闪耀着独
    的头像 发表于 06-30 16:13 3963次阅读
    <b class='flag-5'>FPGA</b>的基础概念和应用场景

    5CEBA4F23C8NQS现场可编程门阵列FPGA)芯片

    5CEBA4F23C8NQS现场可编程门阵列FPGA)芯片5CEBA4F23C8NQS是Intel-ALTERA(原 Altera)研发的Cyclone V系列性能卓越、低能耗的
    发表于 06-11 09:01

    Microchip发布PolarFire Core FPGA和SoC产品

    当前市场中,物料清单(BOM)成本持续攀升,开发者需在性能和预算间实现优化。鉴于中端FPGA市场很大一部分无需集成串行收发器,Microchip Technology Inc.(微芯科技公司)正式发布PolarFire Core现场可编
    的头像 发表于 05-23 14:02 1227次阅读

    FPGA的定义和基本结构

    FPGA 的全称为 Field-Programmable Gate Array,即现场可编程门阵列FPGA 是在 PAL、 GAL、 C
    的头像 发表于 05-15 16:39 2280次阅读
    <b class='flag-5'>FPGA</b>的定义和基本结构

    FPGA芯片的概念和结构

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

    数据手册#TPS7A74 具有可编程软启动功能的 1.5A 低压差 (LDO) 线性稳压器

    为许多不同类型的处理器和专用集成电路 (ASIC) 供电。使能输入允许使用外部稳压器轻松排序。这种完全的灵活性允许配置解决方案,以满足现场可编程门阵列FPGA)、数字信号处理器 (
    的头像 发表于 02-27 11:37 887次阅读
    数据手册#TPS7A74 具有<b class='flag-5'>可编程</b>软启动功能的 1.5A 低压差 (LDO) 线性稳压器

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

    一、FPGA与CPU的区别 FPGA(Field-Programmable Gate Array,现场可编程门阵列)和CPU(Central
    的头像 发表于 02-01 14:57 3016次阅读

    Altera正式独立运营:FPGA行业格局将迎来新变局

    2025年初,英特尔旗下的Altera宣布了一个重大决定——正式独立运营,成为一家全新的专注于FPGA现场可编程门阵列)技术的企业。在社交媒体平台上,Altera公司满怀自豪地宣布:
    的头像 发表于 01-23 15:15 1300次阅读

    可编程交流负载标准

    可编程交流负载标准是电力电子测试领域的重要组成部分,它为交流电源、变频器、逆变器等设备的测试提供了标准化的负载条件。这种可编程性使得测试更加灵活和精确,能够满足不同设备和应用场景的需求。 核心在于其
    发表于 01-15 13:53

    FPGA在AI方面有哪些应用

    随着人工智能技术的飞速发展,对计算性能的需求也日益增长。FPGA现场可编程门阵列)作为一种高性能、低功耗、可灵活编程的硬件平台,正逐渐在
    的头像 发表于 01-06 17:37 2107次阅读