您的位置 首页 系统

FPGA基础知识及其作业原理

高端设计工具为少有甚是没有硬件设计技术的工程师和科学家提供现场可编程门阵列(FPGA)。无论你使用图形化设计程序,ANSI C语言还是VHDL语言,如此复杂的合成工艺会不禁让人去想FPGA真实的运作

高端规划东西为罕见甚是没有硬件规划技能的工程师和科学家供给现场可编程门阵列(FPGA)。不管你运用图形化规划程序,ANSI C言语仍是VHDL言语,如此杂乱的组成工艺会不由让人去想FPGA实在的运作状况。在这个芯片中的程序在这些可设置硅片间到底是怎么作业的。本文会使非数字化规划人员了解FPGA(现场可编程门阵列)的基础知识及其作业原理。此信息在运用高端规划东西时相同非常有用,希望能够为了解这一特别技能供给一些头绪。

1. FPGA-现场可编程门阵列

每一块FPGA芯片都是由有限多个带有可编程衔接的预界说源组成来完结一种可重构数字电路。

图1.FPGA不同构成

FPGA芯片阐明书中,包括了可编程逻辑模块的数量、固定功用逻辑模块(如乘法器)的数目及存储器资源(如嵌入式RAM)的巨细。FPGA芯片中还有许多其它的部分,可是以上方针一般是为特定运用挑选和比较FPGA时,最重要的参阅方针。

在最底层,可装备逻辑模块(如片或逻辑单元)有着两种最根本的部件:触发器和查找表(LUT)。这很重要,因为各种FPGA宗族之所以各不相同,便是因为触发器和查找表组合的办法不同。例如,Virtex-II 系列的FPGA ,它的片具有两个查找表和两个触发器,而Virtex-5 FPGA的片具有4个查找表和4个触发器。查找表自身的结构也或许各不相同(4输入或6输入)。关于查找表作业原理的更多信息将在后边的章节中给出。

表1中列出了在NI LabVIEW FPGA硬件方针中运用的FPGA的方针。逻辑门的数量是一种将FPGA芯片与AS%&&&&&%技能进行比较的传统办法,可是它并不能实在地表述FPGA内部的独立单元的数量。这便是Xilinx公司没有在新式Virtex-5系列中指定逻辑门数量的原因之一。

表1.不同系列FPGA源标准

为了更好地了解这些标准的含义,将编码考虑为组成的数字电路方式。对任何一段组成代码,或图形化或文本方式,都有相应的电路图反映逻辑组件该怎么连线。经过一段简略布尔逻辑电路了解下相应的暗示图。图2表明的是传递5个布尔信号并且可图形化核算所得的二进制值的功用组。

图2.载入5个信号的简略布尔逻辑

在一般状况下(LabVIEW SCTL—单周期守时环路外),图2所示相应电路图同图3所示附近。

图3.为图2中布尔逻辑的相应电路图

虽然很难了解,可是实际上这儿创建了两个并行分支的电路。最上面的5条黑线被反应到第一个分支,它在每个布尔操作间添加了触发器。最下面的5条黑线构成了第二个逻辑链。其间一支路在每步操作之间添加了同步寄存器,另一条逻辑链是保证履行数据流的。本电路图正常作业时一共需求12个触发器和12个查找表。上端分支和每个元件将在今后章节剖析。

2. 触发器

图4.触发器符号

触发器是二进制移位寄存器,用于同步逻辑以及保存时钟(脉冲)周期内的逻辑状况。在每个时刻(脉冲)边缘,触发器在输入时确定1(真)或0(假)值并且保存此值直到下次时钟(脉冲)边缘。在正常状况下,LabVIEW FPGA在每次操作之间都设置一个触发器,以保证有满足的时刻来履行每步操作。对此律的破例只发生在SCTL结构中写代码的状况。在这个特别的环路结构中,触发器只放置在闭环迭代的始末段,并且由编程者考虑守时因从来决议怎么放置。对SCTL内代码怎么同步的更多内容将在今后章节中评论。图5表明的是图3的上端分支,触发器由赤色高亮表明。

图5.制作由赤色高亮表明出触发器的电路图

3. 查找表

图6.双四输入查找表

图6所示暗示图中的其他逻辑电路经过运用少数查找表方式的随机存取存储器完结。咱们能够简略地假定FPGA中体系门的数量可参阅与非门(NAND)以及或非门(NOR)的数量,但实际上,一切的组合逻辑(与门、或门、与非门、异或门等)都是经过查找表存储器中的真值表来完结。真值表是输出对应于每个输入值组合的预界说表(现在卡诺图的重要性在你的头脑中或许会渐渐淡化)。以下是对数字逻辑电路课程的快速回忆:比方,图7是布尔逻辑与门操作过程。

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

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

图7.布尔型AND操作

表2.布尔与门操作的真值表

你能够以为输入值是一切输出值的数字索引,如表3所示。

表3.布尔与门擦操作的真值查找表完结

Virtex-II和Spartan-3系列FPGA芯片有着4输入查找表来完结真实的4输入信号的16种组合。图8便是一个四输入电路完结的比如。

图8.输入布尔逻辑的四信号电路

表4所示为运用双四输入查找表完结的相应的真值表。

表4.图8中所示相应真值表

Virtex-5系列的FPGA运用双六输入查找表,能够经过6个不同输入信号的64种组合来完结真值表。因为触发器之间的组合逻辑非常杂乱,所以在LabVIEW FPGA中运用SCTL也越来越重要。下一节将叙述SCTL怎么优化运用LabVIEW中的FPGA源。

4. SCTL

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

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

图9.附有STCL的简略布尔逻辑

图10.图9所示布尔逻辑相应的电路图

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

图11.图10中电路图的双四输入查找表完结

因为Virtex-5系列FPGA有着6输入的查找表,用户能够在一个查找表中完结相同数量的逻辑,如图12所示。

图12.图10中双六输入查找表实

本例中运用的SCTL(如图9所示)设置在40MHZ下运转,这意味着在恣意触发器之间逻辑电路必须在25ns内完结履行。电子在电路中传达的速度决议了代码履行的最大速度。要害道路是有最长传达推迟的逻辑电路分支,它决议了该部分电路中理论最大时钟速率。Virtex-5 FPGA上的双六输入查找表不只削减完结给定逻辑电路所需求的查找表总数,并且削减电子经过逻辑电路的传达推迟(时刻)。Virtex-5系列FPGA中的6输入查找表不只能够削减完结特定逻辑而需求的查找表的数量,并且能够下降逻辑中电流的传输延时。这意味着,您可简略地经过挑选一个根据Virtex-5的硬件方针设置相同的SCTL,寻求更快的时刻速度。

5. 乘数器和DSP片

图13.乘数器功用

看起来简略的两数相乘运算在数字电路中完结起来是非常杂乱的,也是极为耗费资源的。为供给相关参阅,图14所示是一种运用组合逻辑电路完结4×4字节乘数器的暗示图。

图14.两个4字节输入相乘的电路图

试想两个32字节的数字相乘要经过2000多步操作才干得到成果。因而,FPGA预设了乘数器电路,在数学和信号处理运用中保存对查找表和触发器运用。Virtex-II和Spartan-3 FPGA具有18×18bit乘法器,所以两个32字节数字相乘的运算需求三个乘法器来完结。许多信号处理算法都包括连乘运算成果的功用,因而Virtex-5等高功用FPGA都预设被称为DSP片的乘数器累加电路.这些预设处理组件,也被称为DSP48片,包括25×18bit乘数器以及加法器电路,虽然您可独自运用乘数器功用。表5所示为不同FPGA系列DSP决议计划。

表5.不同FPGA的DSP源

6. 块随机存取存储器(RAM)

挑选FPGA时,回忆源是另一个需求考虑的要害因素。嵌入FPGA芯片中的用户自界说随机存取存储器(RAM),对贮存数据设置或平行环路之间传送数值很有协助。根据FPGA系列,您可在16或36kb组件中设置板载RAM,或许运用触发器以数组来履行数据设置;但是,关于FPGA逻辑源来说,大型数组很快就变得非常“奢华”。由100个32字节元素数组可耗费Virtex-II 1000 FPGA中超越30%的触发器,或许占用少于1%的嵌入式块RAM。DSP算法一般需求追寻整个数据块或是杂乱等式的系数,而在没有板载存储器状况下,许多处理功用在FPGA芯片的硬件逻辑电路中都不适用。图16所示为运用块RAM读写存储器的图形化功用。

图15.用于读写存储器的块RAM函数

相同,你也能够运用内存块,将一段完好周期存储为数值和索引的次序表,为板载信号发生器存储周期性波形数据。输出信号的终究频率由检索数值的速度决议,这样您就可用此办法动态改动输出频率,而不需求输入波形中的急剧改变。

图17.用于先进先出缓冲器的块RAM功用

FPGA固有的并行履行要求逻辑电路独立元件可在不必时刻脉冲下驱动。在不同运转速度下的逻辑电路之间传递数据是很扎手的。运用先进先出(FIFO)缓冲器时,板载存储器可用来是传输愈加平稳。如图16所示,用户能够将FIFO缓冲器装备成不同巨细以保证数据在FPGA芯片的非同步部件间不会丢掉。表6所示为嵌入不同FPGA系列的用户可设置快RAM。

表6.不同FPGA的回忆源

7. 总结

跟着高端技能的开展以及新概念的深化归纳,FPGA技能地选用将不断添加。但是探求FPGA其间奥妙,感叹这硅片中在方框图间汇编出的改变,也是非常重要的。在开展阶段,如果您懂得怎么运用和优化资源,比较和挑选触发器、查找表、乘数器和块RAM等硬件方针是非常有协助的。 这些根本的功用块并不是包括一切资源的完好清单,并且这篇白皮书并没有包括对一切FPGA部件的评论。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/288218.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部