近年来,fpga器件的应用领域在不断扩大。由于这种极其灵活的器件提供的通用平台能够针对特定的应用进行快速编程,并且可以在设计迭代中进行重复编程,因此它们迅速成为电子系统设计领域的中流砥柱。
但是,fpga在量产类产品中仍未得到广泛应用。当工程师们准备将设计用于产品量产时,他们通常会选择基于标准单元的asic方式。
asic与fpga的比较
在产品量产时,asic具有单位成本低、性能高、功耗低等显著优势。但是,随着asic厂家采用昂贵的深亚微米工艺技术,nre(non-recurring expenses,不可逆费用)迅速增大,asic的传统成本优势开始逐渐减弱。
今天,通过采用最新的半导体工艺和新式架构,fpga不仅在单位成本上与传统asic芯片相当,而且在功耗、安全性、可靠性、加电有效性、单片集成度、尺寸、易用性和性能等asic的传统优势领域具有同等的甚至更好的表现。随着这些新型器件的出现,一个以价格为基础的fpga市场正在逐步形成,并大有取代asic之势,尤其是在消费电子、汽车电子等对价格敏感的应用领域。
许多fpga厂商都试图以低成本器件在这个充满商机的市场中一试高下。但是我们必须注意到:某些fpga技术并不具备上述各种类似asic的性能,甚至会产生额外的成本。这些额外的成本必须纳入系统的总成本之中。
两种技术方案的对比
在这场“价格”大战中,fpga厂商可以提供两种主要的fpga技术:flash和sram。表面上看来,这两种fpga技术具有相似的特性和性能:都可以进行在系统编程,都具有较高的性能,系统门的密度都可达1m以上。但实际上,这两种技术具有很大的差异。
相比基于sram的器件而言,基于flash的可重编程器件的主要优势在于其具有非易失性的特性。基于flash的fpga采用flash编程单元来控制fpga内部的开关逻辑门。
基于flash的fpga编程单元是单管结构,而基于sram的fpga采用六管sram单元进行开关控制,并且其开关本身还要占用一个传输门。在系统每次加电时,我们必须从某个外部器件中加载sram fpga的配置信息。而基于flash的fpga是单芯片结构,在加电之前其配置就是有效的,从而大大节约了成本。
从系统安全的角度来看,基于flash的fpga具有更高的安全性,硬件出错的几率更小,并能够通过公共网络实现安全性远程升级,经过现场处理即可实现产品的升级换代。这种性能减少了现场解决问题所需的昂贵开销。
在flash器件中集成小型的nvm(nonvolatile memory,非易失性存储器)模块可以在某些消费电子和汽车电子应用中实现授权技术。这种nvm可以存储安全通信所需的密钥,或者针对基于广播的系统实现机顶盒设备的串行化。
可重编程的nvm模块在90nm逻辑sram工艺下是无法实现的,并且所有的sram fpga厂商也不提供这种模块。将单独的nvm模块集成到sram阵列中是可行的,但是将其他工艺下的nvm模块集成到90nm sram工艺中却极具挑战性。
此外,可重编程的nvm在编程时需要一定的电压,因此sram用户必须从外部提供这种电压。基于flash的fpga(例如actel的proasic3)采用内部电荷泵进行编程,不需要集成nvm模块,而基于sram的fpga通常缺乏这种功能。
actel公司推出的 proasic3/e fpga工作频率可达350mhz,小规模器件(30 000门)的起价仅为1.50美元(250 000个)。
flash器件(例如actel的proasic3/e)的工作频率可达350mhz,利用率超过95%,而sram fpga一般能够达到的利用率仅为70%到75%。flash fpga在加电时没有像sram fpga那样大的瞬间高峰电流,并且sram fpga通常具有较高的静态功耗和动态功耗。
例如,一块40万门的基于flash的fpga需要20ma的静态电流,然而同等规模的基于sram的fpga所需的电流达5倍之多。sram fpga的功耗问题往往迫使系统设计者不得不增大系统供电电流,并使得整个设计变得更加复杂。flash fpga的功耗特性与asic和assp十分类似,减少了对电源供电的需求。