由于经济下滑损及开发预算减少,嵌入系统设计者正在转向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美元。