Advertisement

基于FPGA的数字信号处理【1.0】

阅读量:

第1章 现场可编程门阵列技术分析

始于二十世纪八十年代的现场可编程门阵列(Field Programmable Gate Array Array),近年来经历了长足的发展。如今不仅仅是一个代名词而已,并已发展成为一门与数字信号处理密切相关的专业学科。FPGA的出现和应用不仅极大地推动了微电子技术的发展,并显著提升了数字系统的性能,并对未来电路系统的构成与设计方法产生了深远的影响。

1.1 FPGA内部结构分析

1.1.1 FPGA在大规模集成电路中的定位

专用集成电路(Application Specific Integrated Circuit, ASIC)主要分为数字型专用集成电路和模拟型专用集成电路两大类。在数字型专用集成电路领域中,则根据其掩模是否需要重新制造而将其划分为三种类型:全定制型ASIC、半定制型 ASIC 和可编程型 ASIC 。其中可编程型 ASIC 是一种经过预先制造完成并可在市场中买到的芯片类型,在这种架构下用户只需对其进行简单的逻辑配置即可实现所需的功能结构。其中FPGA就是此类可编程型ASIC 的典型代表之一

FPGA是20世纪80年代中期提出的新兴技术概念之一,并逐渐成为现代数字系统设计工程师的重要工具。作为一种新兴的数字系统设计积木块,FPGA以其灵活性和可扩展性赢得了工程界的广泛推崇。工程技术人员可采用原理图输入法或硬件描述语言(如VHDL、Verilog或SystemVerilog)灵活配置,在同一芯片上构建所需的数字系统架构。随着半导体制造技术的飞速发展,数字系统的应用经历了从单个分立元件到小规模集成SSI电路、中规模集成MSI电路直至大规模集成LSI和超大规模集成VLSI的发展阶段。相应的功能特性逐步从通用集成电路转向特定于设计者的专用集成电路方案。

传统的数字电路设计主要通过将不同规格的独立元件拼装组合而成,在实际应用中通常遵循以下步骤:首先设计出完整的电路原理图;随后按照该原理图制作印刷电路板;最后完成安装调试阶段。这一完整流程不仅存在效率低下及易错风险(尤其是针对大型复杂系统),而且所实现的功能规模往往较大却难以达到高可靠性要求(尤其是针对高精度应用)。相比之下,在现代半导体领域中采用部分可编程门阵列(Semi-Custom)架构能够显著提升系统的集成度与可靠性优势:一方面它能有效降低功耗并提高系统的稳定性能;另一方面则能在一定程度上减少硬件开发成本与周期时间(尽管这种架构仍无法满足某些高端需求)。20世纪90年代末期出现的可编程逻辑器件(Programmable Logic Device, PLD)在一定程度上为数字系统的设计提供了更加灵活的选择:它不仅能够实现一系列功能强大、运行速度快且具有高度灵活性的应用系统(如通用型处理器或通信控制器芯片),而且还能通过快速迭代实现多种功能配置方案的设计目标(如现场可编程逻辑)。然而随着现代数字系统对高性能、高可靠性和大规模定制化需求的不断增长,在集成功能、功耗消耗以及运算速度等多个关键指标上均无法满足现代芯片设计的基本要求:这种状况实质上反映了现有技术手段与未来发展趋势之间的巨大差距

特征尺寸(Feature Size)是衡量ASIC性能的重要指标之一:它是某一工艺过程中所能制造出的最小几何尺寸单位(通常指栅极所决定的沟道长度),也是整个芯片设计中必须遵循的基本参数基准值之一

在CMOS工艺不断向纳米级尺度发展的同时

Xilinx公司于1985年首次推出商业化FPGA产品系列

随着时间技术的进步

其中最引人注目的莫过于基于28nm先进工艺开发而来的Virtex系列FPGA产品族

28nm工艺型FPGA不仅具备高性能与低功耗的特点

而且采用了统一面向应用开发的应用级模块化架构体系

此外在该系列芯片中Xilinx还首次实现了堆叠互连技术的实际应用

这一创新性解决方案不仅进一步提升了整体设备容量水平

而且实现了硬件资源利用率的最大优化利用效果

1.1.2 传统的FPGA内部结构分析

传统 FPGA 设计架构主要由三大核心模块构成:计算资源、传输介质以及输入输出接口等基本功能模块。这些核心模块的合理配置与优化直接决定了 FPGA 的运行效能与适用性。其中,在 FPGA 电路实现中占据重要地位的核心模块包括:计算资源模块(负责完成基本的算术运算)、存储介质专用块(用于数据缓存与快速访问)以及高速收发接口模块(支持不同信号总线之间的高效通信)。

图1.4中,在每个CLB中都包含了两个Slice,并且每个Slice的结构如图1.5所示。具体来说,在每个Slice中都包括四个6输入查找表、数据选择器和进位链。

Xilinx 7系列FPGA Artix-7、Kintex-7和Virtex-7性能对比如表1.1所示。表中逻辑单元规模以Logic Cells来衡量。Logic Cells并不是FPGA内部存在的物理实体,而是指Slice中的查找表、数据选择器和进位链的逻辑运算能力与4输入查找表的等效个数。对于Virtex-4及之前的Virtex芯片,FPGA内部为4输入查找表,Logic Cells与4输入查找表个数NUMLUT4 的关系可表示为:

Xilinx Virtex-5、Virtex-6以及7系列FPGA内部均配置有6输入查找表,在这种架构下,LogicCells的数量与每4输入查找表的单元数量之间的关系可通过以下公式表示:

例如,在XC7A15T中,它内部共有2600个Slices每个Slices包含四个6输入查找表由此可知Logic Cells的数量为

在表1.1中,DSP性能通过GMACS这一指标来衡量。其中GMACS这一指标则具体反映了DSP48每秒所能完成的乘加运算数量。若DSP48系统中未配置预加器模块,则...

在公式中,
F_{\text{max}} 表示 DSP48 的峰值频率,
即在全流水模式下可实现的最大工作频率;
其中 NUM_DSP 代表 DSP48 的数量。
当 DSP48 包含预加器时,
则针对具有对称系数的 FIR 滤波器而言。

以XC7A200T为例,其内部包含740个DSP48E1,Fmax 为628MHz,因此

与前两代 Virtex 系列芯片(Virtex-5 和 Virtex-6)相比,在规模和性能方面均实现了显著的提升。逻辑容量对比结果如图 1.6 所示;Block RAM 容量对比结果如图 1.7 所示;DSP48 性能对比结果如图 1.8 所示;在外部存储器接口性能对比中指出:Virtex-5 使用的外部存储器类型为 DDR2 SDRAM;而采用 DDR3 SDRAM 作为外部存储器的是 Virtex-6 和 Virtex-7 系列。DDR LVDS 接口性能对比结果如图 1.10 所示;高速收发器性能对比结果如图 1.11 所示。

FPGA在容量与性能上的增强显著提升了其功能水平,在数字系统中逐渐发展成为不同领域应用需求的优化型处理平台。

1.1.3 SoC FPGA内部结构分析

Xilinx公司在28纳米平台上发布了新一代SoC FPGA(System on Chip),即Zynq芯片。与传统FPGA相比,Zynq架构发生了显著变化,其内部集成了一颗双核ARM Cortex-A9处理器,从而实现了硬件层面的全面可编程功能,包括软件可编程、硬件可编程以及I/O端口可编程等特性。该架构由处理器部分(Processing System, PS)与可编程逻辑部分(Programmable Logic, PL)组成,其中PL部分包含传统的FPGA功能模块,如Configurable Logic Blocks(CLB)、Dynamic Logic Expanders(DSP48E1)、Block RAM、高速收发器等基础组件。值得注意的是,PS中的双核ARM Cortex-A9处理器不仅提升了计算性能,还提供了丰富的外部接口资源:包括2个SPI总线接口、2个I2C总线接口、2个CAN v2.0总线接口、2个USB v2.0总线接口、支持最高1Mbit/s数据传输速率的2个UART接口、1个GPIO通用输入/输出端口以及2组SD/SDIO v2.0接口和两组以太网MAC地址接口(最高可达10/100/1000 Mbit/s)。通过配置MIO和EMIO引脚,系统能够灵活实现对不同总线的输入/输出功能配置

存储器性能对整个系统的性能有着很大的影响。Zynq平台PS部分既有片内256KB的SRAM,又提供了丰富的硬核外部存储器接口控制器,包括动态RAM接口控制器,可支持16/32位DDR3、DDR3L、DDR2和LPDDR2SDRAM,其中DDR3接口速率为1066Mb/s,最高可达1333Mb/s;DDR2最高速率可达800Mb/s;静态RAM接口控制器,可支持8位SRAM、NOR/NANDFlash和SPI Flash。除此之外,PL部分可生成软核外部存储器接口控制器,同样可支持DDR3、DDR3L、DDR2和LPDDR2 SDRAM,最高速率可达1866Mb/s。
PS和PL两者不是孤立的,而是通过AXI互联实现数据通信,共有9个通信接口。其中包括4个32/64位高性能AXI从接口、2个通用32位AXI主接口、2个通用32位AXI从接口和1个64位AXI ACP(AcceleratorCoherency Port)接口。除此之外,PS还可以通过EMIO将数据传送给PL部分进行处理。 PL 部 分, Z-7010 、 Z-7015和 Z-7020 的 性 能与 Artix-7 一 致 ;Z-7030、Z-7035、Z-7045和Z-7100的性能与Kintex-7一致。此处不再赘述。
Zynq作为新一代SoC FPGA,与之前的嵌入PowerPC的FPGA以及可生成软核MicroBlaze的FPGA相比,性能有了很大的提升,功能有了很大的扩展。从系统角度看,Zynq的PL部分可看作是PS的外部设备,起到协处理器或者预处理器的作用,用于处理高速的数据密集型算法,以
实现算法的硬件加速;PS部分可看作是系统的核心,用于对系统进行管理和调度。SoC FPGA将硬件与软件整合在一起,提供了一种单芯片系统解决方案。

1.2 FPGA设计流程分析

1.2.1 传统的FPGA设计流程

Xilinx为7系列FPGA、Zynq-7000 SoC FPGA以及UltraScale芯片推出了一款全新开发工具Vivado。作为一个综合性的开发平台,Vivado替代了之前的ISE [2] 。所有功能均整合到该平台中:功能包括工程导航器(Project Navigator)、综合功能(XST)、实现能力(Implementation)、IP管理功能(Core Generator Tool)、时序约束编辑器(Timing Constraints Editor)、仿真支持(ISim, ISESimulator)、嵌入式逻辑分析仪(ChipScope Analyzer)、功耗分析工具(Xilinx Power Analyzer)、FPGA编辑界面(FPGA Editor)以及辅助设计工具PlanAhead和SmartXplore等。值得注意的是,在使用Vivado与传统ISE方案进行FPGA设计时,整体流程在本质上保持一致。

在设计输入阶段中,在接受传统HDL代码的同时(即不仅限于),Vivado还支持Vivado HLS生成的HDL代码、System Generator模型输出文件以及IPIntegrator模型等多种形式的输入格式,并能够接收独立指定的IP资源文件(如IP)。通过IP Packager工具将用户的HDL代码打包成独立IP并存入IP Catalog数据库中以实现高效的开发管理与资源复用功能(这也是ISE所不具备的关键能力)。图1.13直观地展示了在Vivado环境下设计输入时体现的核心设计理念。与ISE不同,在完成综合之前(即综合时),Vivado对约束条件采用了一种更为便捷的方式——XDC(Xilinx Design Constraints),它是基于Synopsys Design Constraints(SDC)的一种扩展版本,并且相较于ISE下的UCF具有更为直观易懂的操作界面和更高的执行效率。具体而言,在综合过程中(而非Translate阶段),系统会自动导入约束条件以供分析;而使用ISE时则需要先进行Translate操作才能导入约束条件至综合流程中。因此,在完成综合之后生成的设计时序报告同样具有高度的重要性

全部评论 (0)

还没有任何评论哟~