FPGA如何改变嵌入设计格局
扫描二维码
随时随地手机看文章
由于经济下滑损及开发预算减少,嵌入系统设计者正在转向FPGA(现场可编程门阵列)技术,以缩减开发周期、对抗设备老化以及简化产品升级。通过采用数量庞大且不断增加的FPGA开发工具、可重用逻辑单元以及市售商用模块,设计者可以构思出高性能嵌入系统,并且能够根据需求变化作重新配置,从而尽量减少对工程和制造的影响。过去,电路板设计者使用这些器件作系统元件之间的互连,但最新的高密度产品也可以替代一个典型嵌入项目中的处理器、内存、定制逻辑及很多外设。尽管它有能力改变嵌入架构,设计者仍应分析性能、功率和成本局限,以确定FPGA技术最适用的地方。
自20世纪70年代可编程逻辑阵列出现以来,FPGA技术已发展成为一个兴旺的市场。尽管每家供应商FPGA的精确结构不同,但基本FPGA架构都包含了有电可编程互连的逻辑块阵列,用户或设计者可以在制造以后作配置。早期的器件有数千个等效门,但今天这一数量已增长到数百万。这种互连灵活性使设计者能够建立准确匹配于特定嵌入应用需求的硬件功能。除了逻辑块以外,最新器件还在硅片中嵌入专用处理器,使设计者能够作出软硬件权衡,满足性能的需求。
在相符合的嵌入应用中,FPGA技术为开发人员提供了多种针对分立实现或定制逻辑实现的优势。很多有经验的设计者在说到自己采用FPGA的主要原因时,都会提到较短的开发日程、更低的非重复成本以及量产后合并改动的能力。在高性能应用中,设计者可以建立多个并行的计算结构,其性能超过专用处理器。FPGA有一个经常被提及的缺点,那就是与通用处理器或定制ASIC相比需要更多的功耗。同样,由于存在多个导通晶体管和连接路径的电阻,采用FPGA的产品也慢于相比的普通设计。虽然没有考虑其他方案的开发时间,但FPGA技术的重复成本高于普通电路或定制电路。
FPGA采用多种技术作互连和逻辑块的编程。例如,反熔丝硅结构(antifuse-silicon)在其两端施加一个高电压时,会建立一个低电阻的链接。其优点包括低串联电阻和低寄生电容,但主要缺点是采用反熔丝的FPGA是一次写入器件,因此无法重新配置。最常见的编程技术是静态RAM单元,通过使能和禁止导通晶体管而对FPGA结构编程。虽然要多个晶体管才能实现一个存储单元,但SRAM有快速的可重编程能力,并且可以用常规的硅CMOS技术来实现。基于SRAM的FPGA还需要一个外部引导器件,在上电时设定存储器。另外也可以用EPROM、EEPROM和闪存技术作FPGA编程,优点也是可重复编程能力,而无需外接引导器件。
制造商也创造出多种对FPGA电路作描述和编程的方法。最常见的方法是采用一种HDL(硬件描述语言),如Verilog或VHDL(超高速集成电路HDL),描述一个设计的功能和结构。一旦定义了架构,就可以用另外的工具在一款规定的FPGA上实现这个结构。这个过程包括了电源与结构优化,然后是硬件分区、布局以及互连的布线。最后阶段是将设计装入目标FPGA,在真实的硬件环境中作测试。
图1 National Instruments公司的嵌入软件评估工具套件使用户能够从一个图形化的框图,创建、编译和运行FPGA应用
随着FPGA功能伴随复杂性和密度而增长,设计者发明了各种方式来交换HDL代码的模块化块,这样其他人就可以整合到自己产品中。这些功能块一般叫做IP(知识产权)核心,它使制造商能够重新使用以前设计中的电路部件,或只要简单地从外部购买功能。IP核心的实例包括UART、以太网接口、编解码器和微控制器等。制造商直接在一个FPGA硅片上物理地实现硬IP核心,并以HDL代码形式提供软核心,它可以跨多种器件作移植。IP核心可从FPGA供应商和第三方供应商处直接获得,或从Open Cores等来源的免费开源HDL代码获得。商用IP通常要付费,并包括有文档、验证工具和支持。
对一些FPGA开发者来说,设计安全性与IP损失可能是一个主要考虑因素。在有些情况下,尤其是那些在外部保存配置数据,并在上电时将其传送给FPGA的SRAM型设计,IP信息比较脆弱。为防止IP损失,FPGA供应商采用非易失性编程技术以及嵌入序列号来跟踪伪造产品。
所有FPGA供应商都提供一个工具集,包括编程工具和与器件配套的IP。例如,Xilinx公司的Virtex-5 FX70T版EDK(嵌入开发套件),提供了一个ML507开发板、Platform Studio嵌入工具组件以及ISE(集成软件环境),支持PowerPC 440硬处理器和MicroBlaze软处理器(图1)。该套件具有一个集成开发环境、多种软件工具、配置向导,以及IP目标的嵌入设计。用户可以在逻辑图编辑器中输入一个电路,对电路时序性能作仿真,对Virtex-5 FPGA作编译,然后在ML507原型板上测试设计。Virtex-5 FX70T EDK可以在线购买,价格为2595美元。
图形设计
FPGA开发工具也可以从第三方供应商和嵌入板制造商处获得。例如,National Instruments公司最近推出了一款采用FPGA的单板RIO(可配置I /O)模块,适用于嵌入应用,同时还有一个评估套件,用其LabView图形设计软件演示编程技术。新模块在一块8.2英寸×5.6英寸 PCB(印制电路板)上包括了一个实时嵌入处理器和一个可配置FPGA, 另外还有模拟与数字I /O。该模块采用一只266 MHz或400 MHz飞思卡尔MPC5200处理器、Wi n d Ri v e r 公司的VxWorks实时操作系统,以及一片Xilinx Spartan-3 FPGA。板上的模拟与数字I/O直接连接到FPGA上,提供对时序和I/O信号处理的低层定制。单板RIO器件的起价为1000美元(100件以上)。
为支持单板RIO,Na t i o n a l Instruments公司还推出了嵌入软件评估工具套件, 为嵌入应用评估LabView Real-Time和LabView FPGA的编程经验。该套件包括扩展的评估软件、一个NI单板RIO评估器件、一个用于I /O接口的子板、一个电源、电缆、一个分步教程,以及多个可在LabView中立即运行的普通嵌入任务实例(图2)。该套件包括多个练习,通过在LabView中构建和微调图形化块图,学习创建、编译和运行FPGA应用。LabView嵌入平台评估套件的90天版本价格为999美元。
越来越多的商用电路板制造公司正在采用FPGA技术满足复杂的设计需求,并允许作未来的修改。
例如,Quantum3D承诺在安全与保密关键应用中提供不过时的硬件,如主要的飞行仪表和MLS(多层安全)系统,它采用的是新型Sentiris AV1 PCI XMC(express mezzanine card)(图3)。供应商采用了一个基于FPGA视频与图像处理核心的组合,而不是传统的专用GPU(图形处理单元)。虽然Sentiris AV1最初设计用于飞行认证的图像生成应用,但它也适用于其他用途,如医疗应用中的实时图像。该产品有模拟与HD-SDI(高清晰串行数字接口)视频输出,其视频与图形处理能力可实现驾驶室和关键任务应用中的3D图像。Sentiris AV1提供512MB的ECC保护DDR2内存、双HD-SDI输出,以及八通路的PCIe(外设部件快速互连)。Sentiris AV1的起价为9980美元。
图2 Quantum3D公司的Sentiris AV1 PCIexpress中间卡集成了一个FPGA视频与图形处理核心,以应对设备更新问题
FPGA技术有出色的并行处理能力,因此很适合于高性能、多通道应用,如软件无线电、数据采集和数字信号处理。例如,Pentek最近推出了Model 7151高分辨率软件无线电模块,用于GSM(全球移动系统)通信手机监控以及信号智能应用(图4)。四个200MHz、16 bit ADC馈给一个专有的FPGA IP核心,它提供256个DDC通道(数字下变频)。你可以将每组64个 DDC通道配置给一个特殊的输出信号带宽,以适合需要混合信号类型或多种调制方法的应用。可以从任何四个ADC中独立获得每个DDC组,一般分配给特定的天线。Model 7151使用户能够同时捕捉覆盖一系列调制方式、信号带宽和天线来源的数百个信号。Pentek提供ReadyFlow电路板支持包,为开发人员提供一个完备的硬件初始化、控制和应用函数库,用于Linux、Windows或VxWorks操作系统。Model 7151 PMC(PCI中间卡)模块版的价格为14500美元。
图3 Pentek公司的Model 7151软件射频模块采用了一个专利的FPGA-IP核心,提供256通道的数字下变频
嵌入标准
嵌入系统的标准化组织也正在采用一种基于FPGA硬件的新设计规范。例如,最近被批准的VITA(VMEbus国际贸易协会) 57.1 FMC(FPGA中间卡)标准使开发人员便于将FPGA集成到嵌入系统设计中。该规范定义了在工业标准中间卡上的I/O设备,你可以将它们连接到基板上的FPGA上。FPGA直接控制这些设备。FMC方案使你可以在多个项目上重用一个FPGA设计,只需要简单地替换I/O部分。一个FMC模块大约是标准PMC模块尺寸的一半。Curtiss-Wright公司的下属企业Vmetro推出了基于FMC标准的第一款I/O模块。ADC510现有采用风冷和传导冷却的坚固版,集成了两个12 bit、500 MHz ADC芯片,用于数字信号处理应用,如雷达、信号智能和电子对抗。
低成本的市售商用嵌入模块也采用FPGA技术,为定制应用的设计者提供了灵活性。例如,Technologic Systems公司的TS-7370是一种PC/104外形、可接LCD的单板机,该公司采用了Cirrus公司的EP9302 200 MHz ARM9 CPU和一个用户编程的Lattice XP2 FPGA(图5)。该公司产品可接LCD,因为FPGA连接到了一个专用的RAM帧缓冲,使用户能够在FPGA上建立一个定制视频核心,为大多数彩色TFT(薄膜晶体管)LCD面板提供接口。TS-7370支持多种嵌入系统应用,其外设接口包括板载RAM、10/100 Mbps以太网、USB 2.0主机、串行口、一个SD(数字安全)卡槽、ADC通道、数字I/O线、温度传感器,以及一个实时时钟。TS-7370开创性地运行Linux 2.6,价格为149美元(100件)。
当设计团队努力适应降低的预算和增加的系统复杂度时,FPGA器件与开发工具也成为新的嵌入设计中的主要考虑因素。FPGA提供用单一硬件设计建立多种系统配置的方式。可重配置器件对于高速、多通道系统有特殊的价值,它的性能需求很难用传统的微处理器架构满足。虽然FPGA增加的重复成本和功耗要求限制了它们的应用,但中低批量的项目可以受益于减少的风险、缩短的设计周期以及最低的非重复工程,因此FPGA是一种很好的选择。