设计构建模块是一组执行基本逻辑或算术运算的简单电路。这些构建模块通常出现在大型的复杂设计中。为展示Stratix® II 系列的性能和逻辑效率,在下面列出12个实例的基准测试。图1是基于12个构建模块基准测试实例的Stratix和Stratix II器件性能和逻辑利用率比较。Stratix II器件性能和逻辑效率分析白皮书详细分析了Stratix II体系结构的改进及其优势。关于Stratix II和Virtex体系结构的详细分析,请参考Logic Structure Comparison Between Stratix II & Virtex-Based Architectures 白皮书。
图 1. Stratix II与Stratix器件——设计构建模块性能对比

图1注释:
1. LUT = Look-up table 查找表
2. DES = Data encryption standard 数据加密标准
3. FSM = Finite state machine 有限状态机
4. DSP = Digital signal processing 数字信号处理
图 2. Stratix II与Stratix器件——逻辑占用对比

除了构建模块基准测试结果以外,您还可以下载设计源代码(仅对Verilog)。您可以亲自试用这些设计,体验Stratix II FPGA带来的高性能。
加法树
加法树通常用在3G无线基站通道卡的相关器中。加法树以二进制树结构实现——在每个加法级将两个位相加。Stratix II器件在单个实体中将三个位相加,极大的提升了性能,降低了逻辑资源占用。128个数,每个数16位的加法树基准测试结果列于表1中。
| 表 1. 128个数,16位加法树性能和逻辑占用 (注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| 流水线加法树 | 371 | 314 | 1,559 | 2,279 | Download | Download |
| 非流水线加法树 | 109 | 64 | 1,209 | 2,279 | ||
桶形移位寄存器
桶形移位寄存器根据输入控制器信号规定的数值将输入数据进行移位。移位的方向(向上或者向下)同样由一个单独的输入控制信号控制。桶形移位寄存器的基本构成是多路复用器,该复用器由Stratix II器件中宽输入LUT的内在构造高效实现。表2列出了32位桶形移位寄存器的基准测试结果。
| 表 2. 32位桶形移位寄存器性能和逻辑占用 (注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| 桶形移位寄存器 | 322 | 177 | 219 | 284 | 下载 | 下载 |
复杂算术
由于自适应逻辑模块(ALM)在一个步骤中执行逻辑和算术运算,因此,Stratix II器件的算术能力得到了极大的提高。在该复杂算术实例中,输入A 和 B由S选择。根据AddSub信号,所选输入与输入C相加或者相减,输入数据A, B 和 C的宽度为8位。参见表3的复杂算术基准测试结果。
| 表 3. 8位选择加/减性能和逻辑占用 (注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| 选择加/减法 | 686 | 422 | 9 | 16 | 下载 | 下载 |
交叉连接开关
交叉连接开关通常出现在电信设计中,在端口之间交换数据。此处给出的交叉连接例子具有4个数据输入端口和两个数据输出端口。两组输入选择信号(每组2位)用于从一个输入端口向输出端口交换数据。每个数据端口宽度为8位。
每个ALM可配置执行两个6变量函数,与4个共享变量完成同一逻辑运算。因此,4×2交叉连接开关的每一位可以在一个ALM中实现。参见表4的交叉连接开关基准测试结果。
| 表 4. 4×2,8位交叉连接开关性能和逻辑占用 (注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| 交叉连接开关 | 727 | 531 (3) | 16 | 32 | Download | Download |
DIP-4奇偶校验器
对角间插奇偶(DIP)校验器通过将对角线上的数据进行“异或”运算来计算奇偶性。采用Stratix II逻辑结构,每个ALM可最多执行7输入逻辑功能——减少了逻辑等级的数量,极大的提高了器件性能。表5对比了执行一个DIP-4奇偶校验时,Stratix II和Stratix器件的基准测试结果。
| 表 5. DIP-4奇偶校验器性能和逻辑占用(注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| CRC 校验器 | 286 | 194 | 173 | 222 | 下载 | 下载 |
数据加密标准(DES)
DES是采用56位密钥编码普通文本消息的US政府加密标准(注意:此处没有给出DES设计源代码。初始代码由Rudolf Usselmann编写)。DES在算法中采用带有4至6输入的查找表对位进行加扰,对数据加密。Stratix II ALM灵活的逻辑结构可通过配置,准确达到各种大小LUT的要求,实现DES功能。参见表6的Stratix和Stratix II器件DES逻辑占用差别的基准测试。
| 表 6. DES性能和逻辑占用(注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| DES | 316 | 210 | 2,605 | 4,456 | NA | NA |
乘法器(DSP模块)
在有限冲击响应(FIR)和快速傅立叶变换(FFT)滤波器设计中,DSP通常需要较多的乘法运算。Stratix II的18×18乘法器多达384个,工作速率高达420 MHz。表7列出了在一个DSP模块中,实现一个18×18带符号、非流水线乘法器的基准测试结果。
| 表 7. 18×18带符号、非流水线乘法器(DSP模块)性能和逻辑占用(注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| 乘法器(DSP) | 420 | 279 | 0 (4) | 0 (4) | 下载 | 下载 |
乘法器(基于逻辑)
对于消耗大量乘法器的密集DSP应用,Stratix II系列为实现高性能、基于逻辑的乘法器提供高效途径。Stratix II系列中的算术模式可在单个运算中利用部分乘积结果以及部分乘积之和的第一级。而且,ALM中的三重加法树进一步降低了第一级之后的部分乘积之和所需逻辑资源以及逻辑等级数量。表8列出了Stratix和Stratix II器件实现一个基于逻辑的18×18带符号、非流水线乘法器的性能和逻辑占用对比。
| 表 8. 18×18带符号、非流水线乘法器(基于逻辑)性能和逻辑占用(注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| 乘法器(基于逻辑) | 160 | 87 | 312 | 409 | 下载 | 下载 |
乘和累加
Stratix II器件中的DSP模块不仅仅是一个乘法器。除了嵌入式乘法器以外,功能增强的DSP模块还含有一个专用累加器,并具有舍入取整能力。此处给出了一个18位带符号乘和累加(MAC)实例。在乘法和累加之间插入一个流水线级。参见表9的基准测试结果。
| 表 9. 18位MAC(DSP模块)性能和逻辑占用(注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| MAC | 420 | 279 | 0 (4) | 0 (4) | 下载 | 下载 |
多路复用器
多路复用是数字逻辑设计中进行逻辑判决的基本机制。多路复用器通常由FPGA中的级联LUT实现。每加入一个LUT,由于级联LUT产生的逻辑等级和可编程布线延时增加都会对性能造成影响。Stratix II器件系列的宽输入LUT能够极大的降低对级联LUT的需求,因此减少了LUT和可编程布线延时。32总线至1、每总线16位的多路复用器基准测试结果列于表10中。
| 表 10. 32总线至1,每总线16位的多路复用器性能和逻辑占用 (注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| 多路复用器 | 379 | 234 | 249 | 336 | 下载 | 下载 |
通用6输入逻辑函数
在Stratix和Stratix II器件中分别实现了一个通用6输入逻辑函数实例。尽管在Stratix体系结构中实现该函数需要5个LE,而在Stratix II中只需一个ALM,不仅显著降低了逻辑占用,而且性能也得到了提高。方程1显示了已实现的6输入逻辑函数,表11是基准测试结果。
方程1:
| 表 11. 通用6输入逻辑占用(注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| 6输入校验器 | 1010 (3) | 534 (3) | 2 | 4 | 下载 | 下载 |
有限状态机
一个有限状态机(FSM)中会含有用于下一状态逻辑的几千个输入信号。而且,每个下一状态逻辑之间的输入激励(信号)通常相同。利用该基准,一个采用20输入和20输出的通用FSM同时在Stratix和Stratix II FPGA中进行了测试。
Stratix II器件能够在单个ALM中实现任何的6输入逻辑函数,通过减少逻辑等级数量,极大的提高了器件性能。而且,Sratix II FPGA通过将逻辑功能和相同输入封装在一起,降低了对逻辑资源的占用。表12是20输入、20输出FSM的基准测试结果。
| 表 12. Stratix和Stratix II器件20输入、20输出FSM性能和逻辑占用对比(注释1,2) | ||||||
| fMAX (MHz) | 逻辑占用 | 设计下载 | ||||
|---|---|---|---|---|---|---|
| FPGA 系列 | Stratix II | Stratix | Stratix II (ALUT) |
Stratix (LE) |
Stratix II | Stratix |
| FSM | 550 | 459 (3) | 54 | 58 | 下载 | 下载 |
表1至表12的注释:
- 一些面向Stratix II器件的设计含有Quartus II软件的布局约束。在这些情况中,Quartus II软件将已用资源靠近放置,因此可以在平面规划器中方便查看完整的设计。
- 逻辑占用数量不包括输入和输出寄存器占用的资源。
- fmax由关键路径的传播时延得出
- 设计在一个DSP模块中实现
