今天的设计人员已经在许多不同的领域中选择FPGA作为首选的解决方案。这些FPGA器件早已超越了原本作为原型设计工具的范畴,逐渐用于生产应用中,尤其是消费电子和汽车电子等领域。据GartnerDataquest市场研究公司指出,FPGA器件在汽车应用中的使用规模从2002到2005年增加约七倍。
这个增长在很大程度上是来自于FPGA本身的特点。由于象全球定位系统(GPS)导航装置和DVD播放机之类设备的产品寿命相对较短,因此缩短其开发周期变得非常重要。可编程逻辑便可为设计人员提供所需的灵活性,以加速工作进度来配合紧迫的期限。加上AISC作为这类应用的传统解决方案的掩膜成本飚升,不仅使到成本上涨,而且还增加了风险,迫使设计人员需要寻求别的替代方案。与此同时,消费者开始要求产品能提供更多样化的功能,使到消费和汽车电子的制造商不得不基于可变和可配置的成套硬件上开发他们的产品,以满足不断变化的需求。
此外,也许令人惊讶的是,电子产品的小型化发展从未停过。汽车内的空间非常珍贵,而消费电子的发展主要由便携性所推动。这使得FPGA这类能将许多(多样化的)功能集成在单一芯片上的元件更具吸引力。
FPGA厂家对这类需求作出了响应,使到制造的产品更加适用于生产解决方案,并特别考虑了产品的可靠性。汽车和便携应用在温度范围、防冲击和振动方面有特定的要求,而且还面对以SRAM为基础器件出现软错误问题的挑战。降低成本也是一个需要考虑的问题,如Actel便推出了以价值为基础(value-based)的新产品系列ProASIC3/E,来配合这个市场对于低FPGA单位成本应用的需求。
设计安全性也是人们关注的一个问题,特别在消费和汽车电子市场。在FPGA使用的设计和配置数据代表了整个系统中知识产权的重要部分。或许是太过优柔寡断或其它原因,设计人员一直都没有认真考虑设计盗窃的问题。但事实上,竞争对手的反向工程是一个真实的商业危机,且已存在好一段时间。
如果能够在可编程器件中存取IP核,用户就有可能得到额外的价值。制造商利用单个器件来实现产品多元化会有风险,因为最终用户可能会被诱惑进行廉价的非法升级,只需对其现有产品的部份元件进行重编程便可。
例如,在汽车电子市场,非法复制产品的情况越来越多;这些低质、低成本元件通常针对售后和非厂家授权服务的市场。而未经授权元件的销售渠道非常难以控制(尽管并非不可能)。这些复制的板上系统元件往往都没有最新或经重新校准的设定、测定燃油传输、点火时间及其它控制功能,有可能导致引擎失效和损坏。
FPGA也越来越多地用于能够固有地抵抗外界篡改能力的应用中。为了防止盗窃服务,数字机顶盒和移动电话之类的设备需要有安全功能。如果黑客能侵入以FPGA为基础的卫星无线接收总台,并使用户的认证机制失效,不道德的用户就能够乘机盗用免费的服务!
系统的安全机制一旦被击破,当中的技术通常都会大规模地被散布。只要看一看eBay就可找到各种通过此方法提供的免费服务总台,例如有线电视的****。
即使在产品上市之前,也存在安全/盗窃风险。许多消费和汽车电子厂家都会将一部份的产品制造外判,这就会带来过建的问题,即是代工一方超额制造客户所定购数量的产品,然后销往地下市场。更糟糕的是,第三方器件编程服务的用户必须以未经保护的格式提供其FPGA配置数据,而这些数据很容易被机构内或外部的人盗取。
要防止这类非法活动,设计人员必须从元件层面入手。FPGA的三大技术是反熔丝、Flash和SRAM。其中,反熔丝被公认为固有最安全的技术,因为要非法读取以反熔丝为基础的FPGA状态极之困难;举例说,一个200万门的Actel反熔丝FPGA含有约5300万个反熔丝,而在一般的设计中只有2-5%会被用于编程。因此要找出那些经编程的反熔丝的概率很低,这使到设计的盗取非常困难。
反熔丝FPGA也能抵御过去用于攻击ASIC和成品的反向工程技术。这个技术会对目标芯片进行连续分层剥离,并直接观察敷涂了金属的位置、通路孔和其它特点。经编程的反熔丝几乎与未经编程的反熔丝没有分别,同样由于找出经编程反熔丝的概率很低,使到反向工程的机会几乎不可能出现。
以Flash为基础的FPGA一般也被认为是完全安全的;当对Flash开关编程后,半导体器件层并不会出现物理变化,因此与反熔丝一样,要通过入侵探测来确定经编程或运行中的器件是非常困难的事。
相反,以SRAM为基础的FPGA就需要外部配置器件(通常是板上PROM),在上电时将配置数据码流传送给FPGA。这个码流很容易被黑客截获;又或者说这个PROM能够被复制或直接被人读取其内容。
有些FPGA还包括各种升级功能,有助于保证编程过程中或编程后的安全性。例如,Actel的ProASICFlashFPGA早就包含了名为FlashLock的功能,采用由用户定义的密钥机制。假如没有这个密钥,就不能对器件进行读、写、验证或擦除操作。器件还提供一个永久性的选项,赋予一次性的编程设定,意味着任何方式都不能读取其设计内容。
这类FlashFPGA通过物理解构的方式来防止设计盗窃;Flash的单元位于7层金属之下,几乎不可能从物理层面被解码,因为不能在不干扰已被编程(或已被擦除)的Flash晶体管上的电荷下移除这些金属层。
这些器件同时克服了另一个基本问题;没有包含能回读配置数据的机制。传统的FPGA结构都有一个回读功能,让器件可在编程后进行验证。在ProASIC3/E器件中,由于验证过程属于器件编程的固有部分,因此毋需额外的回读功能。
Actel的ProASIC3/E器件进一步扩充了这些安全功能,引进了AES(先进加密标准)解密核。AES是符合FIPS(联邦信息处理标准)192版的加密算法,该标准由美国政府机关所采用,以保护那些敏感但并未分类的信息。ProASIC3/E器件采用AES的变种算法,称为Rijndael,利用了长度为128位的密钥。由于可能的密钥数目约在1038量级,因此即使是采用最强大的计算技术,这种密钥也是牢不可破。
AES加密核能同时用于FPGA核本身以及独特FlashROM(FROM)内存的加密中。每个FPGA都被分成两部分:FPGA阵列和FlashROM,两者都可独立编程,容许在不改变FPGA核的情况下完成FROM升级。
AES密钥本身存储在专门的片上非挥发性Flash内存中,并不能被读取。这就使设计人员可保护其知识产权,将经AES加密的配置文件提供给代工厂商,只有与拥有正确密钥的器件配合时才能使用,而这个密钥本身可在安全或可信赖的环境中进行编程。
这个功能可让设计人员享有将制造外判的成本优势,同时也为那些想发挥FPGA可编程特点的公司带来更高的安全水平,以便实现后期的设计更改或定制产品配置。
这些设备还可用来实现一个使FPGA制造商引以自豪的功能,即是可执行现场升级。这个可能性在理论上已经存在一段时间:以FPGA为基础的设备可因应标准的改变在现场重新配置,又或如客户决定在订用服务中启动升级功能时。但缺点是从OEM方获取新FPGA配置数据存在安全风险。AES密钥的使用可让ProASIC3器件支持安全的服务内编程(ISP)。
制造商利用这个功能还可在其它方面获益,例如,订用式服务的设备制造商可利用FROM空间来实现终端设备的安全序列化管理,而所有产品的FPGA结构都进行了相同的编程。AES加密还可以保证数据在PCB板上不同元件之间通信的安全性。数据本身可能就是敏感的信息,如在客户的财务系统中或按用量付费服务的接入控制设备中,又或存在数据被利用于反向工程的风险。加密的通信提供物理性保护措施及防篡改技术以外别具成本效益的保护方法。
FPGA提供各种先进的安全功能,可让制造商通过比以前更安全的途径进行设计和保护数据。选择具备固有安全性的FPGA技术,如Flash,并采用目前元件所提供额外的安全功能,设计人员就可安全地充分发挥可编程逻辑的可编程性和现场升级的灵活性优势。