FPGA器件的选用同其它通用逻辑器件不同,除考虑器件本身的性能外,软件下具也很重要。目前市场上已有的FPGA器件生产厂家有20多个,而设计软件除生产厂家自行研制的软件外还有50多种。FPGA器件的价格已经不菲,更不用说设计软件的价格,所以如何选用合适的FPGA器件,不只是一件一次性的工作,还涉及到设计软件的选用以及今后进一步下作的开展。
首先,用户应该根据自身的技术环境、技术条件、使用习惯等选择一种合适的软件工具,同时要兼顾EDA技术的发展。占据优势的软件供应商同人多数芯片制造商建立了良好的合作伙伴关系,所以,拥有一种设计软件,再进一步选择不同的工具库,或增加部分配置,即可对不同厂家的不同种类的FPGA产品进行设计。
其次,用户可根据设计的需要确定选择哪一类FPGA器件。如果用于航天、军事领域,反熔丝技术的一次编程型FPGA是首选;如果要完成多种算术运算,或是要求在较高速度下,FPGA/CPLD是较好的选择;而对于功能复杂的时序逻辑电路而言,标准门阵列单元型的FPGA具有集成度高、保持灵活和功耗低的优点。当然,这只是通用准则,关键是所选择的器件能满足设计要求的所有功能,在此基础上,再利用上述准则确定具体的一种器件。
第三,选定某一厂家的产品,生产同类器件的厂家很多,一般依据以下准则进行选择。
(1) 选择有设计软件支持的厂家的芯片,这样可减少资本投入,降低成本。
(2) 选择产品设计性能改进有余量的。如果所选择的芯片是某一厂家产品中容量:最大,或是速度最高的,那么,一但设计需要改进,则有可能在该厂家的芯片中再选不出合适的来了。
(3) 设计应用的延续性和可扩展性。如果所选厂家的产品具有很大的局限性,则有可能仅仅适用于很少一部分设计,从而造成设计软件投入上的浪费。
(4) 选择性能价格比最优的。尽管象Xilinx 、Altera这样的器件生产厂家都在通过降价来作市场宣传,大多数FPGA芯片的价格还是比较高的,所有在满足上述准则的情况下适当考虑价格也是有必要的。
FPGA器件的发展非常快,上面的统计是从市场的角度出发对市场份额较大、行业内目前处于领先地位的部分厂家进行的,具有一定的代表性,但不是十分全面。只有不断跟踪这一领域的技术发展和市场动态才能对FPGA产品有更加全面、不断更新的认识,在今后的设计中更好地利用FPGA,以提高产品的设计水平。
由于FPGA具备设计灵活、可以重复编程的优点,因此在电子产品设计领域得到了越来越广泛的应用。在工程项目或者产品设计中,选择FPGA芯片可以参考以下的几点策略和原则。
尽量选择成熟的产品系列
FPGA芯片的工艺一直走在芯片设计领域的前列,产品更新换代速度非常快。稳定性和可靠性是产品设计需要考虑的关键因素。厂家最新推出的FPGA系列产品一般都没有经过大批量应用的验证。选择这样的芯片会增加设计的风险。而且,最新推出的FPGA芯片因为产量比较小,一般供货情况都不会很理想,价格也会偏高一些。如果成熟的产品能满足设计指标要求,那么最好选这样的芯片来完成设计。例如,要用FPGA设计一块数据采集卡。采用Altera公司的Cyclone、CyloneII和CycloneIII等3个系列的芯片都可以完成这个功能。考虑到Cyclone和CyloneII是成熟产品,同时CyloneII又是Cyclone的升级产品,因此选择CyloneII是比较理想的方案。
尽量选择兼容性好的封装
FPGA系统设计一般采用硬件描述语言(HDL)来完成设计。这与基于CPU的软件开发又有很大不同。特别是算法实现的时候,在设计之前,很难估算这个算法需要占多少FPGA的逻辑资源。作为代码设计者,希望算法实现之后再选择FPGA的型号。但是,现在的设计流程一般都是软件和硬件并行开始设计。也就是说,在HDL代码设计之前,就开始硬件板卡的设计。这就要求硬件板卡具备一定的兼容性,可以兼容不同规模的FPGA芯片。幸运的是,FPGA芯片厂家考虑到了这一点。目前,同系列的FPGA芯片一般可以做到相同物理封装兼容不同规模的器件。例如,Xilinx的Spartan3系列FPGA,在BGA456封装下,可以选择3S200、2S400、3S1000、3S1500这4种型号的FPGA。正是因为这一点,将来的产品就具备非常好的扩展性,可以不断地增加新的功能或者提高性能,而不需要修改电路板的设计文件。
尽量选择一个公司的产品
如果在整个电子系统中需要多个FPGA器件,那么尽量选择一个公司的产品。这样的好处不仅可以降低成本,而且降低开发难度。因为开发环境和工具是一致的,芯片接口电平和特性也一致,便于互联互通。
很多第一次接触FPGA的设计师在芯片选型的时候都有过这个疑问。其实这两个最大的FPGA厂家位于美国的同一座城市,人员和技术交流都很频繁,因此产品各有的优势和特色,很难说清楚谁好谁坏。
在全球不同的地区,这两家公司的FPGA芯片产品的市场表现会有所差别。在中国市场,两家公司可以说是平分秋色,在高校里面Altera的客户会略多一些。针对特定的应用,两个厂家的产品目录里面都可以找到适合的系列或者型号。
比如,针对低成本应用,Altera公司的Cyclone系列和Xilinx公司的Spartan3系列是对应的。针对高性能应用,Altera公司的StraTIx系列和Xilinx公司的Virtex系列是对应的。所以,最终选择那个公司的产品还是看开发者的使用习惯。
选择芯片时千万注意芯片实际的工作温度
最近项目完成的仪器在测试时总是出现数据不准的情况,而在以前从没有出现类似情况,而且在室内测试时所有指标均满足要求,不过一到室外测试(仪器应用场合在室外开阔场地),测试数据就会不准,百思不得其解,最后我们判断是实际环境的温度超出了芯片的正常工作温度范围。在这个时候北京室外的温度经常低于0度,而我采用的FPGA芯片为商业级的,其工作温度范围在0°~70°,因此很有可能问题出在这里,对设备加上保暖措施后,测试效果有明显改进。
顺便说一下各种等级芯片的工作温度范围
商业级:0°~70°
工业级:-40°~85°
军用级:-55°~125°
Altera的FPGA型号命名中也能看出其性质。比如我用的FPGA是EP2C8Q208C8
2C:代表是Cyclone II系列
8:逻辑单元的数量,8表示有8000个左右的逻辑单元
Q:表示封装,Q代表QFP封装
208:代表引脚数,有208只引脚
C:代表是商业级,I代表工业级
8:表示芯片速度,一般有6,7,8三种,6最高,8最慢