关于FPGA选型的相关说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于FPGA选型的相关说明
一、获取芯片资料
要做芯片的选型,首先就是要对有可能要面对的芯片有整体的了解,也就是说要尽可能多的先获取芯片的资料。
主流FPGA有4个生产厂家,Altera、Xilinx、Lattice和Actel。
获取资料最便捷的途径就是这些生产厂家的官方网站,一般情况下,官方网站都会按照产品系列或应用场合列出所有的产品,直观的告诉你某个系列产品的应用场合。
比如在Altera的网站,就会明确标明它的三大类的FPGA 产品,高端的Stratix系列,中端的Arria系列和低成本的Cyclone系列。
许多公司网站上还提供评估工具,经常逛一逛这些厂家的官方网站,看一些概述类的文档,当对各FPGA厂家的产品系列有比较广泛的了解以后,选型就不会成为太大的问题。
确定要做的方向之前,如果能够找到类似的产品,可以研究下这些产品所采用的方案,如果找不到,可以通过检索知网等数据库,也可以看看其他人做类似的方向所采用的方案,这也是非常好的一个参考,需要注意的是很多学术研究型的方案并不是经过产品验证的,有些方案还是比较滞后的,总之需要做一个综合的评估。
二、厂家的选择
如上所述,生产FPGA厂家主要有Altera、Xilinx、Lattice和Actel。
要满足项目特殊的需求。
比如说你要选择4mm*4mm封装的小体积同时又不需要配置芯片的FPGA,那么可能Actel就是你唯一的选择。
如果你需要一个带ADC的FPGA芯片,那么可能你只能选择Xilinx和Actel的某些带ADC的FPGA。
每个厂家的产品都有各自的特色和适用领域。
选择厂家要综合考虑后面几个因素。
1、看供货,好的供货渠道对于产品的量产会有比较好的保证,如果没有特殊渠道还是选择那些比较好买并且广泛使用的型号。
2、看价格,较低的价格会有效的提高产品的竞争力。
3、看该芯片的成熟度,是不是有较好的开发软件平台,是不是有较好的技术支持,是不是有大批量的应用,是否可以比较容易的获取到资源等等。
4、考虑技术人员对所有符合要求的厂家的产品的熟悉程度。
使用最熟悉的产品,可以有效的缩短开发的难度,减少开发时间,提高产品上市时间。
三、芯片系列的选择
每个FPGA的生产厂家都有多个系列的产品,来满足不同应用场合对性能和价格的不同需求。
例如对于Altera公司的FPGA产品,主要分为三个系列,分别
是高端的Stratix,中端的Arria和低端的Cyclone。
每一个系列FPGA具体的性能特点也都可以在Altera的官方网站上找到相应的文档。
在选择的时候,要根据实际的项目需求,来选择合适的系列。
比如说,如果需要实现一个比较简单的控制功能,对资源的要求比较低,且成本控制要求比较高,那么就需要从Cyclone系列的FPGA入手,评估这一系列的FPGA是否可以满足要求。
但如果要做比较大型的ASIC芯片的validation,对FPGA的逻辑资源,带宽以及运行频率的要求都比较高,那么就要去评估Stratix系列的FPGA。
有一个基本的原则是需要注意的,可以用低端的芯片完成的工作,就不要采用高端的芯片,目标是达到性能和成本的最佳平衡点。
每一个系列的FPGA芯片,可能又分为好几代的产品,比如Altera的Cyclone 系列,到现在已经发展了Cyclone,CycloneII,CycloneIII和CycloneIV等。
这种产品的升级换代很大程度上都是由于半导体工艺的升级换代引起的。
随着半导体工艺的升级换代,FPGA芯片也在升级换代的过程中,提供了更强大的功能,更低的功耗和更好的性价比。
那么在确定一个系列的FPGA后,在价格和供货都没有问题的情况下,选择越新的产品越好。
一定不能选择厂家已经或者即将停产的芯片。
任何产品都是有生命周期的,目标就是尽量保证在产品的生命周期里,所用到的芯片的生命周期还没有结束。
在产品初期规划时做芯片选型,要尽可能选用厂家刚量产或者量产不久的产品,甚至在有确切的供货渠道的情况下,可以选择厂家即将量产的芯片。
四、芯片的选择
对于虚实结合项目中FPGA芯片主要用来进行逻辑设计和简单的数字信号处理,因此本部分以Altera公司的CycloneIII系列芯片为例来说明芯片的选择。
在CycloneIII这个系列的FPGA中,又分为两个不同的子系列,普通的CycloneIII 和CycloneIII LS。
在每个子系列里,根据片内资源的不同又分为更多的型号,比如普通的CycloneIII子系列,就包含了EP3C5,EP3C10,EP3C16,EP3C25,EP3C40,EP3C55,EP3C80和EP3C120等8种型号的芯片。
每个型号的芯片又根据通用I/O口数量和封装区分出不同的芯片。
比如,EP3C5的芯片又有EP3C5E144,EP3C5M164,EP3C5F256和EP3C5U256这四种不同的芯片。
而每一种芯片,又有不同的速度等级,比如说EP3C5E144就有C7,C8,I7和A7四个速度等级。
下面的表格从不同的角度列出了普通CycloneIII系列的FPGA的参数,这些
表格都源自于CycloneIII芯片的官方文档:
1、各型号芯片的片内资源表如表1所示,这个表格中给出了每个型号芯片的片内资源。
表 1 CycloneIII系列芯片的片内资源
参数说明
LEs(K):逻辑单元,逻辑单元在FPGA内部是用于完成用户逻辑的最小单元,每一个逻辑阵列包含16个逻辑单元以及一些其他资源。
一个逻辑单元主要由以下部件组成,一个四输入的查询表,一个可编程的寄存器,一条进位链,一条寄存器级连链。
M9K memory blocks:嵌入式存储器模块,M9K指此存储器模块大小为9K。
Embedded memory(Kb):RAM总容量。
18*18 multipliers:18*18乘法器。
Global clock networks:全局时钟网络。
PLLs:锁相环,利用外部输入的参考信号控制环路内部振荡信号的频率和相位。
因锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。
锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住。
Configuration file size(Mb):配置文件大小。
Design security:设计安全性。
I/O voltage levels supported(V):I/O口支持的电压水平。
I/O standards supported:I/O口支持标准。
Emulated LVDS channels 840 Mbps:模拟差分通道。
OCT:提供I/O阻抗匹配和终端能力。
OCT帮助防止反射和保持信号的完整
性,同时最大限度地减少外部电阻高管脚的球栅阵列(BGA)封装的需求。
Memory device supported:存储支持设备。
2、下面的表2给出了各型号芯片的封装信息,以及该封装下,芯片所具有的可用I/O的数量和查分信号通道的数量。
表 2 CycloneIII系列芯片的封装和最大用户I/O口数量封装工艺类型
EQFP:增强薄型四方扁平封装。
MBGA:微型球栅阵列封装。
PQFP:塑料四方扁平封装。
FBGA:精细球栅阵列(1mm间距)。
UBGA:超精细球栅阵列(0.8mm间距)。
其他参数说明
144 pin :144引脚。
22*22(mm):芯片尺寸。
0.5-mm pitch:引脚之间间距。
94:最大用户I/O口数量。
3、CycloneIII系列的速度等级如表3所示。
表 3 CycloneIII系列芯片的速度等级
参数说明:
C:Commercial temperature 商业用温度(0℃~85℃)
I:Industrial temperature 工业温度(-40℃~100℃)
A:Automotive temperature 自动化领域温度(-40℃~125℃)
6、7、8:代表速度等级,其中6的速度等级为最高。
根据上面三个表格的说明,在实际的项目应用中选择具体的芯片型号时要根据后面几个方面进行综合考量:
1、器件的价格
芯片选型时候的价格考虑是产品成本控制的核心要素,另外随着器件集成度不断提高,性能不断上升,而价位不断下降是FPGA器件发展的普遍趋势。
2、硬件资源
硬件资源主要依据表1给出的信息。
要根据设计的大小选择合适的片上资源。
这个是比较难确定的一个参数,自己做的设计到底有多大,需要多少片上资源,很难一下子确定下来。
比较推荐的一个方式是先拿之前的设计去综合后映射到某一个芯片上,看看需要占用多少的片内资源,然后评估要做的新的设计跟之前的大小,做换算后得到需要片上资源的数量。
另外的一种方式就是先完成新的设计,直接综合出来映射到不同型号的芯片上,然后评估哪一种芯片合适。
还有
一个需要注意的地方就是,不能选择片上资源刚刚够用的芯片,要留有一定的余
量,以便于后期设计错误的修正和升级。
硬件资源是器件选型的重要标准。
硬件资源包括逻辑资源、I/O资源、布线资源、DSP资源、存储器资源、锁相环资源、串行收发器资源和硬核微处理器资源等。
逻辑资源和I/O资源的需求是每位设计人员最关心的问题,一般都会考虑到,可是,过度消耗I/O资源和布线资源可能产生的问题却很容易被忽视。
主流FPGA 器件中,逻辑资源都比较丰富,一般可以满足应用需求。
可是,在比较复杂的数字系统中,过度I/O资源的消耗可能会导致2个问题:FPGA负荷过重,器件发热严重,尤其考虑器件的散热问题;局部布线资源不足,电路的运行速度明显降低,有时甚至使设计不能适配器件,设计失败。
根据查阅大量相关资料总结:
(1)、在做复杂数字信号处理时,位数比较高的乘法器和除法器对全局布线资源的消耗量比较大;
(2)、在做逻辑设计时,双向I/O口对局部布线资源的消耗量比较大;
(3)、在利用存储器资源设计滤波器的应用场合,局部布线资源的消耗量比较大;
(4)、在电气接口标准比较多,而逻辑比较复杂的应用场合,局部布线资源的消耗量比较大。
另具Altera公司推荐,设计中最好能预留30%以上的逻辑资源、20%以上的I/O资源和30%以上的布线资源。
3、封装工艺
封装工艺主要依据表2给出的信息。
选择封装,主要需要在两个方面考量,第一个就是可用的I/O口的数量。
第二个就是封装的尺寸。
I/O数量是一个必要的条件,先要根据这个条件筛选出可以用的芯片。
然后在筛选出来的芯片中,再根据封装类型,芯片尺寸和引脚间距尺寸选择合适的芯片。
在封装尺寸符合要求的情况下,尽量选择有利于PCB设计和生产的封装。
比如如果有TQFP封装的芯片,尺寸又符合项目的需求,那么就不要选择BGA封装的。
对于BGA封装的芯片,如果有引脚间距为 1.0mm的可以满足要求,就不要选择引脚间距为0.5mm的。
否则会直接影响到PCB设计难度,制造成本和产品合格率。
4、速度等级
速度等级主要依据表3给出的信息。
速度等级是一个相对比较独立的参数。
要根据实际设计所能综合出来的最高运行频率和需求的运行频率做比较,尽量选
用速度等级比较慢的芯片。
当所有的速度等级都不能满足需要的时候,更多的要从优化设计的角度来提高设计本身所能达到的最高运行频率。
5、温度等级
某些应用场合,对器件的环境温度适应能力提出了很高的要求,此时,就应该在有工业级甚至是军品级或宇航级的器件中进行选型。
综上所述,分析虚实结合项目中的实验要求主要为逻辑设计和简单的数字信号处理,再兼顾成本预算,本项目中的FPGA芯片将从Altera公司CycloneIII系列进行选择,本项目中芯片引脚只需要大于100以上即可,因此芯片将选择EP3C5E144I8N。
关于EP3C5E144I8N芯片注释如表4所示。
表 4 EP3C5E144I8N芯片参数解释。