新型Virtex-5系列中指定逻辑门数量(组图)

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

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

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

图1.FPGA不同组成

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

在最低级别,可配置逻辑模块(例如切片或逻辑单元)具有两个基本组件:触发器和查找表 (LUT)。这一点很重要,因为 FPGA 系列因触发器和查找表的组合方式而有所不同。例如,Virtex-II 系列 FPGA 具有带两个查找表和两个触发器的 slice,而 Virtex-5 FPGA 具有带 4 个查找表和 4 个触发器的 slice。查找表本身的结构也可能不同(4 或 6 个输入)。有关查找表如何工作的更多信息将在后面的章节中提供。

表 1 列出了 NI LabVIEW FPGA 硬件目标中使用的 FPGA 的指标。逻辑门的数量是比较 FPGA 芯片与 ASIC 技术的传统方式,但它并不能真正表示 FPGA 内单个单元的数量。这也是赛灵思未指定新 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中系统门的数量可以指与非门和或非门(NOR)的数量,但实际上所有的组合逻辑(AND、OR、NAND、XOR)门等)都是通过查找表存储器中的真值表实现。真值表是与输入值的每个组合相对应的预定义输出表(卡诺图的重要性现在可能在您的脑海中消失)。下面是数字逻辑电路课程的快速回顾:例如,图 7 显示了布尔逻辑与门操作。

以下是数字逻辑课程的快速回顾:

例如,布尔 AND 运算如图 7 所示。

图 7. 布尔与运算

布尔与门运算的表2. 真值表

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

Table3. 布尔与门擦除操作的真值查找表实现

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

图片[1]-新型Virtex-5系列中指定逻辑门数量(组图)-老王博客

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

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

Table4.对应的真值表如图8所示

Virtex-5 系列 FPGA 使用双 6 输入查找表,可实现具有 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 中,触发器之间的逻辑至少需要两个 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×18 位乘法器,所以两个 32 字节数相乘的操作需要三个乘法器来实现。许多信号处理算法包括将运算结果相乘的能力,因此 Virtex-5 等高性能 FPGA 具有预设的乘法累加电路,称为 DSP slice。这些预设处理组件,也称为 DSP48 片,包括 25×18 位乘法器和加法器电路,尽管您可以单独使用乘法器功能。表 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 芯片的硬件逻辑中是不可用的。

图 15.Block RAM 读写内存函数

同样,您可以使用内存块将整个周期存储为值和索引的有序列表,以存储板载信号发生器的周期性波形数据。输出信号的最终频率取决于检索值的速度,因此您可以使用此方法动态改变输出频率有关触发器寄存器的诗,而无需输入波形发生急剧变化。

图 17.FIFO 缓冲区的 Block RAM 函数

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

表6.不同FPGA的内存源

7. 总结

随着高端技术的发展和新概念的深入推广,FPGA 技术的采用将继续增加。但是,探索FPGA的奥秘,感叹这块硅芯片中的框图之间编译的变化也很重要。在开发阶段,如果您知道如何利用和优化资源,比较和选择触发器、查找表、乘法器和块 RAM 等硬件指标会非常有用。这些基本功能块并不是所有资源的完整列表,本白皮书也不包含对所有 FPGA 部件的讨论。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论