1. FPGA厂家选择
目前进行FPGA选型,主要是在A和X之间进行。只有涉及到要求功耗极低且逻辑较为简单的才会考虑AC的产品。不过随着对成本的要求进一步严格,不排除考虑L的可能。这个和目前几家的FAE聊过,基本都是这个共识。比如在一些资源使用特别少,但又需要定制控制方式的场合,如电梯控制,就会考虑AC的产品,X/A的产品在这个方向基本没有竞争力。他们的销售听说是这个用途,也不会去卖力的推,省得最后上项目了,还碰得一鼻子灰,搞得以后的生意都没法做了。反之,在大规模设计上,AC就稚嫩一些,如果要求高一点的话,还是在A/X之间选好了。
2.FPGA选型一般遵循以下几个步骤。
1.选定目标平台。A和X都有几个不同级别的产品平台可选。像A,有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了。虽然个数少一点,但是一般场合也足够用了。A还有Arria IIGX可以选,它的价格介于Cyclone和Stratix之间,也是个不错的选择。
选择目标平台一般优先考虑自己熟悉的平台。或者以前产品上使用的平台。这样一来上手较快,在设计的前期避免因为过多的困扰影响执行的信心。二来在评估方案可行性和资源的占用情况时会更准确一些。(有一个关于BUG的说法,前期的一个沙子大小的BUG,在项目后期会变得像一座山一样不可逾越。因此前期准备做的需要尽量的充分)。
2. 依据目标平台进行逻辑设计(如果已有类似设计则直接移植过来即可)。这个设计无需达到最终的设计目标。只要占用了与最终设计大致相当的资源即可。但是注意,最终设计对外部接口有什么样的要求,这个设计中一定要有。比如你的设计中要带1个1Gbit的DDR3,1个PCIE,还要有若干对工作在<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1G的LVDS信号。那么在用于评估的逻辑中,一定要把这几个的接口逻辑添加上,并确保它可以运行起来(不能被优化)。这么做是因为,这些接口部分能否正常工作和你选的器件密切相关。一旦器件选定,资源占用量还可以通过修改设计进行一些优化,但是接口部分改动的余地将会很小。
3. 统计设计中消耗的逻辑单元的数目(FF和LUT),RAM块,乘法器,锁相环,时钟分配器,时钟资源,全局资源,IO管脚数目,特殊IO(高速接口,DQS,可用LVDS数,专用时钟输入,输出),然后依据这几个参数在各厂家同等级平台的器件之间进行筛选。一般这些参数筛选下来都会有一两款器件可以匹配的。否则就要考虑换方案了,比如用两片来实现。
筛选的原则是,A的器件已用FF/LUT差不多占全部资源的85%,X的器件FF/LUT差不多占全部资源的80%(A器件的布线资源较X来得丰富一点)。其他资源均不能超过100%。当然最好留一些余量,这样后期的工作会简单一点。一般都是在80%这个界,这样一来,以后想增加点功能,或者做些调试逻辑,也有空间。例外的是,锁相环和时钟分配器只要不到100%,都可以。
4. 筛选出来的器件就可以进行招标,比价等工作了。由于各家厂商芯片的供电要求不同,因此比价的时候要综合考虑电源芯片,PCB面积,配置芯片等价格。
5. 以上都搞定后,芯片选型就完成啦。这个时候就得开始准备详细设计方案,验证方案了。同时也可以开始原理图的设计。一般是先进行整体板卡方案设计,然后是大器件的PCB版图规划,然后开始逻辑顶层设计,再开始各部分的详细设计。
文章评论(0条评论)
登录后参与讨论