FPGA基础知识及其工作原理(多图)

时间:2019-07-15 来源: 专栏
88必发网页版登录

高端设计工具为工程师和科学家提供现场可编程门阵列(FPGA),几乎没有硬件设计技术。无论您使用的是图形设计程序,ANSI C还是VHDL,这种复杂的综合过程都会让人联想到FPGA的实际运行。该芯片中的程序如何在这些可设置的硅芯片之间工作。本文将使非数字设计人员了解FPGA(现场可编程门阵列)的基础知识及其工作原理。在使用高端设计工具时,此信息也非常有用,并希望为理解这一特定技术提供一些线索。

1. FPGA现场可编程门阵列

每个FPGA芯片由有限数量的预定义源组成,具有可编程连接以实现可重新配置的数字电路。

609a4f35c5344ffcb2c5f423ee898209

图1. FPGA的不同组件

FPGA芯片规范包括可编程逻辑块的数量,固定功能逻辑模块的数量(例如乘法器)以及存储器资源的大小(例如嵌入式RAM)。 FPGA芯片中还有许多其他部分,但在为特定应用选择和比较FPGA时,上述指标通常是最重要的参考。

在最低级别,可配置逻辑模块(例如切片或逻辑单元)具有两个最基本的组件:触发器和查找表(LUT)。这很重要,因为各种FPGA系列是不同的,因为触发器和查找表的组合方式不同。例如,Virtex-II系列FPGA有两个查找表和两个触发器,而Virtex-5 FPGA有四个查找表和四个触发器。查找表本身的结构也可能不同(4个输入或6个输入)。有关查找表如何工作的更多信息将在以下部分中给出。

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

7ff5266d95524d99ad1153da1ff90948

表1.不同系列的FPGA源规范

为了更好地理解这些规范的含义,编码被认为是复合数字电路模式。对于任何合成代码,或图形或文本形式,都有相应的电路图,反映逻辑组件应如何连线。通过简单的布尔逻辑电路理解相应的示意图。图2显示了一个功能组,它传递5个布尔信号,并可以图形方式计算得到的二进制值。

df68a006c04a480598089ee4e1ce30af

图2.用于加载5个信号的简单布尔逻辑

在正常情况下(LabVIEW SCTL外部 - 单周期定时环路),图2所示的相应电路图类似于图3所示。

cc4ac04e5500485a9f152631081da16a

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

逻辑链是确保执行数据流。该电路图总共需要12个触发器和12个查找表以进行正常操作。上部分支和每个组件将在后面的章节中进行分析。

2.触发

f0c7cf3c03164157b13680ae89568e91

图4.触发符号

触发器是二进制移位寄存器,用于在时钟(脉冲)周期期间同步逻辑并保存逻辑状态。在每个时间(脉冲)边沿,触发器在输入上锁定1(真)或0(假)值并保存该值直到下一个时钟(脉冲)边沿。在正常情况下,LabVIEW FPGA在每个操作之间设置一个触发器,以确保有足够的时间执行每一步。只有在SCTL结构中编写代码时才会出现此法例外。在这个特定的循环结构中,触发器仅放置在闭环迭代的开始和结束处,并且程序员考虑定时因子来确定如何放置它。有关如何同步SCTL中的代码的更多信息将在后面的章节中讨论。图5显示了图3的上部分支,触发器以红色突出显示。

f1c757c1db2f4bc8837e2fe710e1c242

图5.绘制以红色突出显示触发器突出显示的电路图

3.查找表

d5b21a0827f54da0a1ad7ff0b51eba57

图6.双四输入查找表

通过使用少量查找表形式的随机存取存储器来实现图6所示的示意图中的其他逻辑电路。我们可以简单地假设FPGA中系统门的数量可以指NAND门(NAND)和NOR门的数量,但实际上,所有组合逻辑(AND门,OR门,NAND门,XOR)门等。)都是通过在表格内存中查找真值表来实现的。真值表是一个预定义的表,它输出每个输入值的组合(卡诺图的重要性可能在你的脑海中消失)。以下是数字逻辑电路课程的快速回顾:例如,图7是布尔逻辑和门操作过程。

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

例如,图4中示出了布尔AND运算。

a66c18552ea74fe69b8e6f69e85a0449

图7.布尔AND操作

5e59a7845fe9440bb367774f5270e6a8

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

您可以将输入值视为所有输出值的数字索引,如表3所示。

4192869a6b784727be93f3ad09f65908

表3.布尔和门擦除操作的现实查找表实现

Virtex-II和Spartan-3系列FPGA芯片具有4输入查找表,可实现16种真正的4输入信号组合。图8是四输入电路实现的示例。

0dc67d5370354038823f06ef9235ebe4

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

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

828c17cc29804ff18a420e0a2228a7a6

表4.图8中所示的对应真值表

Virtex-5系列FPGA使用双六输入查找表,该表实现了具有64种六种不同输入信号组合的真值表。由于触发器之间的组合逻辑很复杂,因此在LabVIEW FPGA中使用SCTL变得越来越重要。下一节将介绍SCTL如何在LabVIEW中优化FPGA源的使用。

4. SCTL

前面部分中使用的代码示例假定代码设置在SCTL之外,并且同步附加电路以确保执行同步数据量。 SCTL是LabVIEW FPGA中的一种特殊结构,可生成更优化的电路图,希望在一个时钟(脉冲)周期内执行所有逻辑分支。例如,如果SCTL设置为以40 MHz运行,则所有逻辑分支将在25 ns内执行。

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

cdad03d9c0e047dd9caa75cf418b0a48

图9.带STCL的简单布尔逻辑

f7d42cf173b64074b85632b02770c1d3

图10.图9中所示的布尔逻辑的对应电路图。

显然,这种实现更简单。在Virtex-II或Spartan-3系列FPGA中,触发器之间的逻辑需要至少两个4输入查找表,如图11所示。

420390f1429b4972ba7b8e99ec38e839

图11.图10中电路图的双四输入查找表实现。

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

d62fd87f3abf48f0bd1ada49c70cbda6

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

本例中使用的SCTL(如图9所示)设置为以40 MHz运行,这意味着必须在任何触发器之间的25 ns内执行逻辑。电子在电路中行进的速度决定了代码执行的最大速度。关键路由是具有最长传播延迟的逻辑电路的分支,其确定该部分电路中的理论最大时钟速率。 Virtex-5 FPGA上的双六输入查找表不仅减少了实现给定逻辑电路所需的查找表总数,还减少了电子通过逻辑的传播延迟(时间)。 Virtex-5系列FPGA中的6输入查找表不仅减少了实现特定逻辑所需的查找表的数量,还减少了逻辑中电流的传播延迟。这意味着您只需选择基于Virtex-5的硬件指标来设置相同的SCTL,即可设置更快的时间速度。

5.乘法器和DSP芯片

ba938c0e3b604bf09f154df92c1c34d8

图13.乘数函数

看似简单的两位乘法运算在数字电路中实现起来非常复杂,而且资源非常密集。为了提供相关参考,图14是使用组合逻辑电路实现的4×4字节乘法器的示意图。

bc716e914deb42b3afc163ad17583aeb

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

想象一下,将两个32字节数相乘,得到的结果超过2000步。因此,FPGA预设乘法器电路并将其保存用于数学和信号处理应用中的查找表和触发器。 Virtex-II和Spartan-3 FPGA具有18×18位乘法器,因此乘以两个32字节数的运算需要三个乘法器。许多信号处理算法包括乘以运算结果的能力。因此,Virtex-5等高性能FPGA预置了称为DSP芯片的乘法累加器电路。这些预置处理组件(也称为DSP48)包括25 x 18位乘法器和加法器电路,但您可以单独使用乘法器功能。表5显示了不同FPGA系列的DSP决策。

ee3a89c585b34027947d85ab97314a31

表5.不同FPGA的DSP源

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

选择FPGA时,内存源是另一个需要考虑的关键因素。嵌入在FPGA芯片中的用户定义的随机存取存储器(RAM)对于存储数据设置或在并行循环之间传输值非常有用。基于FPGA系列,您可以使用16或36kb组件设置板载RAM,或使用触发器在阵列中执行数据设置;然而,对于FPGA逻辑源,大型阵列很快变得“奢侈”。 Virtex-II 1000 FPGA中超过30%的触发器可被100个32字节元素阵列消耗,或者不到嵌入式块RAM的1%。 DSP算法通常需要跟踪整个数据块或复杂方程的系数,并且在没有板载存储器的情况下,许多处理功能不适用于FPGA芯片的硬件逻辑。图16显示了使用Block RAM读写存储器的图形功能。

be373752080d453f8aec234a668559d5

图15.用于读写内存的Block RAM功能

类似地,您可以使用存储器块将完整周期存储为值序列和索引,存储板载信号发生器的周期性波形数据。输出信号的最终频率由检索值的速度决定,因此您可以使用此方法动态更改输出频率,而无需输入波形的急剧变化。

4944494f7f6c40438131e1d6721325d5

图17. FIFO缓冲区的Block RAM功能

FPGA的固有并行性要求在没有时间脉冲的情况下驱动逻辑电路独立元件。以不同的操作速度在逻辑电路之间传递数据是棘手的。使用先进先出(FIFO)缓冲区时,板载内存可用于使传输更平滑。如图16所示,用户可以将FIFO缓冲区配置为不同的大小,以确保FPGA芯片的异步组件之间的数据不会丢失。表6显示了嵌入在不同FPGA系列中的用户可设置快速RAM。

47a456a79e4e499da4159223e1b95382

表6.不同FPGA的存储器源

7.总结

随着高端技术的发展和新概念的深入总结,FPGA技术的采用将不断增加。然而,探索FPGA的奥秘,感叹这个硅芯片中的框图中编译的变化也非常重要。在开发阶段,如果您知道如何使用和优化资源,那么比较和选择硬件指标(如触发器,查找表,乘数和块RAM)会很有帮助。这些基本功能块不是所有资源的完整列表,本白皮书不包含所有FPGA组件的讨论。

网络整理,如果涉及版权问题,请及时联系并删除。
频道热点
新闻排行
  1. 这10个坏习惯不用改,越活越年轻!  好习惯固然可贵,但是你知道吗?有些坏习惯不仅无伤大雅,反而对身体

    这10个坏习惯不用改,越活越年轻!  好习惯固然可贵,但是你知道吗?有些坏习惯不仅无伤大雅,反而对身体...

  2. “走出单身”火锅振动赞美百万,专家提醒:模仿门槛很容易“一阵风”“只要你打开桌子上的风琴并且前挡板掉

    “走出单身”火锅振动赞美百万,专家提醒:模仿门槛很容易“一阵风”“只要你打开桌子上的风琴并且前挡板掉...

  3. 这10个坏习惯不用改,越活越年轻!  好习惯固然可贵,但是你知道吗?有些坏习惯不仅无伤大雅,反而对身体

    这10个坏习惯不用改,越活越年轻!  好习惯固然可贵,但是你知道吗?有些坏习惯不仅无伤大雅,反而对身体...

  4. 在仲夏公园,荷花池充满了宁静,吸引了许多来这里降温的人..(玉泉湖公园)(玉泉湖公园,阿迪李娜儿,摄影

    在仲夏公园,荷花池充满了宁静,吸引了许多来这里降温的人..(玉泉湖公园)(玉泉湖公园,阿迪李娜儿,摄影...

  5. 在仲夏公园,荷花池充满了宁静,吸引了许多来这里降温的人..(玉泉湖公园)(玉泉湖公园,阿迪李娜儿,摄影

    在仲夏公园,荷花池充满了宁静,吸引了许多来这里降温的人..(玉泉湖公园)(玉泉湖公园,阿迪李娜儿,摄影...

  6. 据贵州公安微博消息,6月27日,在天津市公安局的支持下,贵州公安机关在互联网上刊登了赵碧某,“毕节,凯?

    据贵州公安微博消息,6月27日,在天津市公安局的支持下,贵州公安机关在互联网上刊登了赵碧某,“毕节,凯?...

  7. 6大“韦小宝”版本,周星驰版的特搞笑,最后一位实在太经典!  05/2411:56像说话一样唱歌    图1是韩

    6大“韦小宝”版本,周星驰版的特搞笑,最后一位实在太经典!  05/2411:56像说话一样唱歌    图1是韩...

  8. 在仲夏公园,荷花池充满了宁静,吸引了许多来这里降温的人..(玉泉湖公园)(玉泉湖公园,阿迪李娜儿,摄影

    在仲夏公园,荷花池充满了宁静,吸引了许多来这里降温的人..(玉泉湖公园)(玉泉湖公园,阿迪李娜儿,摄影...

  9. 据贵州公安微博消息,6月27日,在天津市公安局的支持下,贵州公安机关在互联网上刊登了赵碧某,“毕节,凯?

    据贵州公安微博消息,6月27日,在天津市公安局的支持下,贵州公安机关在互联网上刊登了赵碧某,“毕节,凯?...

  10. 这10个坏习惯不用改,越活越年轻!  好习惯固然可贵,但是你知道吗?有些坏习惯不仅无伤大雅,反而对身体

    这10个坏习惯不用改,越活越年轻!  好习惯固然可贵,但是你知道吗?有些坏习惯不仅无伤大雅,反而对身体...

日期归档
友情链接