【转】FPGA使用经验之如何选型

FPGA使用经验之如何选型

发表时间:2011/3/14 
关键字:EDA FPGA FPGA选型
 
现场可编程逻辑门阵列(FPGA, Field Programmable Gate Array),是一个含有可编辑元件的半导体设备,可供使用者现场程式化的逻辑门阵列元件,也是EDA技术的目标器件。文中作者结合自己的FPGA实际工作经验,写出关于FPGA的选型建议,供大家参考。

    1 FPGA厂家选择

    目前进行FPGA选型,主要是在Altera和Xilinx之间进行。只有涉及到要求功耗极低且逻辑较为简单的才会考虑AC的产品。不过随着对成本的要求进一步严格,不排除考虑Lattice的可能。这个和目前几家的FAE聊过,基本都是这个共识。比如在一些资源使用特别少,但又需要定制控制方式的场合,如电梯控制,就会考虑AC的产品,Xilinx/Altera的产品在这个方向基本没有竞争力。他们的销售听说是这个用途,也不会去卖力的推,省得最后上项目了,还碰得一鼻子灰,搞得以后的生意都没法做了。反之,在大规模设计上,AC就稚嫩一些,如果要求高一点的话,还是在Altera/Xilinx之间选好了。

    2 FPGA选型一般遵循以下几个步骤

    1.选定目标平台。Altera和Xilinx都有几个不同级别的产品平台可选。像Altera,有Cyclone和Stratix还有Arria,而Xilinx有Spartan和Virtex。(一般做FPGA定制设计的,其他几个平台用的就少了)。

    一般如果设计中对运转速度要求不高,就不要使用stratix或者virtex这样的高端平台了。这些高端器件虽然内部资源丰富,在使用起来不容易碰到资源,时序等的棘手问题,但是普遍功耗高,而且对外部电路的要求也高,再加上器件本身的成本,会使整个设计的成本髙上一个数量级。

    使用cyclone或者spartan器件,首先由于资源相对少,所以静态功耗较低,因此整体功耗相对较低,而且价格便宜。如果要使用PCIE等高速总线接口,也没关系,可以使用外部的物理接口芯片(phy),然后使用FPGA上的接口并行控制phy即可,而且由于phy芯片是ASIC流片制成,其对PCIE协议的兼容性,功耗等做得往往比FPGA内嵌的GTP/GXB(这两家公司做在器件内部的高速串行接口,可以理解为内置的phy芯片,不同的平台可能名称不同,但是都是同样的功能)要好很多,而且价格也不贵。当然,现在最新的cyclone iv和spartan6也都带GTP/GXB了。虽然个数少一点,但是一般场合也足够用了。Altera还有Arria IIGX可以选,它的价格介于Cyclone和Stratix之间,也是个不错的选择。

    选择目标平台一般优先考虑自己熟悉的平台。或者以前产品上使用的平台。这样一来上手较快,在设计的前期避免因为过多的困扰影响执行的信心。二来在评估方案可行性和资源的占用情况时会更准确一些。(有一个关于BUG的说法,前期的一个沙子大小的BUG,在项目后期会变得像一座山一样不可逾越。因此前期准备做的需要尽量的充分)。

    2.依据目标平台进行逻辑设计(如果已有类似设计则直接移植过来即可)。这个设计无需达到最终的设计目标。只要占用了与最终设计大致相当的资源即可。但是注意,最终设计对外部接口有什么样的要求,这个设计中一定要有。比如你的设计中要带1个1Gbit的DDR3,1个PCIE,还要有若干对工作在1G的LVDS信号。那么在用于评估的逻辑中,一定要把这几个的接口逻辑添加上,并确保它可以运行起来(不能被优化)。这么做是因为,这些接口部分能否正常工作和你选的器件密切相关。一旦器件选定,资源占用量还可以通过修改设计进行一些优化,但是接口部分改动的余地将会很小。

    3.统计设计中消耗的逻辑单元的数目(FF和LUT),RAM块,乘法器,锁相环,时钟分配器,时钟资源,全局资源,IO管脚数目,特殊IO(高速接口,DQS,可用LVDS数,专用时钟输入,输出),然后依据这几个参数在各厂家同等级平台的器件之间进行筛选。一般这些参数筛选下来都会有一两款器件可以匹配的。否则就要考虑换方案了,比如用两片来实现。

    筛选的原则是,Altera的器件已用FF/LUT差不多占全部资源的85%,Xilinx的器件FF/LUT差不多占全部资源的80%(Altera器件的布线资源较X来得丰富一点)。其他资源均不能超过100%。当然最好留一些余量,这样后期的工作会简单一点。一般都是在80%这个界,这样一来,以后想增加点功能,或者做些调试逻辑,也有空间。例外的是,锁相环和时钟分配器只要不到100%,都可以。

    4.筛选出来的器件就可以进行招标,比价等工作了。由于各家厂商芯片的供电要求不同,因此比价的时候要综合考虑电源芯片,PCB面积,配置芯片等价格。

    5.以上都搞定后,芯片选型就完成啦。这个时候就得开始准备详细设计方案,验证方案了。同时也可以开始原理图的设计。一般是先进行整体板卡方案设计,然后是大器件的PCB版图规划,然后开始逻辑顶层设计,再开始各部分的详细设计。

posted @ 2014-07-13 14:51  luckybag  阅读(468)  评论(0)    收藏  举报