Fork me on GitHub

FPGA系统设计实战经验和选型技巧

个人曾今收集的几篇关于FPGA设计经验和选型的文章,与君分享~

更多精彩请直接访问SkySeraph个人站点www.skyseraph.com 

 

FPGA系统设计实战经验分享-硬件篇

这个帖子主要和大家介绍一些我们在FPGA硬件系统设计过程中遇到的问题和解决的方法。也欢迎大家一起参与讨论。主要涉及以下几个方面:
1。芯片的选型
  包括FPGA芯片的选型原则,外围芯片,比如存储器,电源,接口芯片等等选择的依据。我们会给大家推荐一些性能好,价格便宜而且好买到的芯片,节省你查询芯片的时间。
2。原理图设计技巧
  包括如果兼容不同型号的FPGA,保证系统设计的升级空间等。
3。PCB的设计基本原则
  对于一般的FPGA系统,只要保证这些基本原则,不必学习那些复杂的仿真软件和高速PCB设计知识,一样可以设计出稳定可靠的硬件电路板。
4。电路调试技巧
 如何调试一块刚刚焊接好的电路板,特别是对于第一次调试电路板的朋友一定会有所帮助的。  

===========
第一部分:Red&nbspLogic关于芯片选型的建议
===========
    在网上经常看到朋友问类似的问题,比如选Altera还是Xilinx芯片,选择Altera公司的什么型号芯片,电源芯片选什么,SRAM选那个公司的等类似的关于芯片选型的问题。Red&nbspLogic在这里就给大家介绍一些关于芯片选择的一些基本原则和建议,也欢迎大家参与讨论!。

一 FPGA芯片的选择依据

      & nbsp1。选择FPGA芯片厂商。这一点比较容易,可以根据以往的经验实际条件,比如公司一直用那个公司的www.google.com http:>产品,或者实验室的师兄们都用那个公司的产品多一些等等。如果自己对那个公司的产品比较熟悉,还是不要轻易更换。因为学习软件和了解芯片结构还是需要一些时间的,而且也会引入一些设计风险。人一般会有惯性的思维的,往往会把一些经验带到新的项目中,而实际上不同厂商的芯片在设计细节方面还是有些不同的,对这个公司的芯片适合,不一定对另外公司的芯片适合。
       如果是在新产品设计的适合选择FPGA芯片厂商,那么可以参考以下的几个原则:
A. 如果需要尽快上市,抢占市场,一般选择开发简单的Altera或者Xilinx产品
B.  如果产品已经稳定,需要提高保密性能和稳定性能,可以考虑Lattice,QuickLogic或者Actel公司的反融丝类型或者Flash类型的FPGA
C. 如果需要很强的抗干扰性能,工作环境十分恶劣,如果航空航天,一般选Actel公司的产品
几个厂商的FPGA简介
      & nbspAltera的芯片在国内的高校用的比较多,就像在高校里面用VHDL的人比较多一样。Altera的芯片产品比较全,目前主要的就是 Flex10K系列,ACEX1k系列,Cyclone系列等应用的比较广泛,Stratix系列一般在通信等高端领域应用比较多一些。
      &nbspFlex10K是比较老的系列了,价格也很高,是5V的器件,主要应用在5V的信号环境,抗干扰性能好一些,但是功耗和体积都比较大,规模也有限制。
       &nbspACEX1K是一个比较成功的系列,兼容5V和3.3V,如果系统是 3.3V是5V的混合信号系统,而且中5V信号比较多,建议采用ACEX1K系列,价格也不错。只是最大的规模是10万门,升级空间小。
       &nbspCyclone系列目前Altera公司成本最低的FPGA,但是只能支持3.3V,不兼容5V信号。如果系统中只有3.3V或者5V信号不多,那么Red&nbspLogic还是推荐您选择cyclone系列的 FPGA。
  &nbspXilinx的公司的产品更多的被企业采用。相对于altera,Xilinx的历史更悠久一些,客户更多。Xilinx公司对芯片提供的参考设计较Altera公司提供的涉及的领域更宽,品种更多。免费使用的IP核也更多一些。
      &nbspXilinx的高端FPGA在市场上占有一定的优势,如VirtexII系列就是非常成功的。
      &nbspActel公司的FPGA以反融丝类型的为主,应用与一些特定的领域;
      & nbspQuickLogic公司的CPLD也是以反融丝为主推,一般用于产品的加密,目前还很难破解。其出品的集成了PCI硬核的FPGA是比较有特色的产品,较FPGA+PCI接口芯片的方案成本更低,较FPGA实现PCI软核的方案稳定性更好。
      &nbspLattice公司目前也开始推广低成本的应用的FPGA产品,在本论坛的Lattice版面有更详细的介绍。
   &nbsp2.

选择FPGA型号
        首先选择好了某个系列的FPGA,接下来就要选择一个具体的型号了。需要考虑的因素主要有以下几点:
A. 封装
主要在于选择管脚的数目,如果管脚够用,尽量选择表贴封装,如TQFP或者QFP。Red&nbspLogic不推荐选择BGA的原因是:
1) 会带来的焊接成本提高;
2) 增加了布线难度,可能不得不增加PCB的层数;
3) 降低了测试性,增加了测试成本。
           当然,如果项目需要,必须选择BGA封装的,那么尽量选择管脚间距大一些的,比如1mm或者0.8mm
例如,对于Cyclone系列的FPGA,EP1C12就有F324和Q240两种封装,前者是BGA的,后者是PQFP的。如果150个用户IO对您的设计已经足够了,那么最好选择后者,两层板就可以做下来,而F324封装的最少要4层板才行。
B. 资源
一般在设计的开始阶段,无法估计规模大小。所有一般需要根据经验来选择。一般都要选择你确定的封装里面规模最大的型号。一般来说,相同的封装会有不同的容量,比如Cyclone系列的PQFP240封装,就有1C6和1C12两个型号,资源相差一倍以上。那么实验阶段就可以先用1c12做实验,将来再改用 1c6的,PCB不用重新设计。
资源包括了逻辑资源(如LE或者Slice)和存储资源(如M4K或Block&nbspRAM)。
选择芯片的时候不仅要考虑逻辑资源够用,还要保证存储资源够用。假如您的设计用了1000个LE,200Kbit的存储器,如果从逻辑资源考虑,EP1C6就足够了,有接近6000个LE,但是M4K的容量确不能满足要求。如果不想更改设计,您就必须选择EP1C12了。
C. 升级性
为了以后增加功能或者升级性能,您的FPGA设计好后,必须有一定的升级空间。比如您目前的设计用了70%的芯片资源,那么您就必须考虑是否能够满足将来的需要了。  
Xilinx和Altera的FPGA产品都是基于SRAM的,上电后需要外部cpu或者储存器进行配置才能工作
配置过程中,如果出现干扰,就会产生配置错误。
Actel公司的反融丝型FPGA与ASIC一样,是固化在芯片内部的,上电就开始工作的,所以说更抗干扰性能更强一些。但是只能烧写一次,开发起来成本比较高,周期也长一些。必须充分仿真,否则差一点点就要费一个片子啊。
可以采用Altera的芯片做原型的验证和样机。经过测试,如果不能满足要求,在更换Actel的芯片,这样可以保证逻辑部分是没有问题的。Altera的芯片目前也采用了一些措施,比如差错重新配置等,也可以用外部的cpu来配置FPGA,上电后对fpga进行简单的测试,如果有问题,再重新配置。
如果逻辑规模不大,可以采用MAXII系列的CPLD,由于采用了Flash结构,不需要外部配置,可靠性要高很多。)

二。FPGA主要的外设芯片选择
      &nbspRed&nbspLogic根据以往的经验,推荐您一些芯片,供您参考。其他应用的芯片,您可以到我们的网站上咨询。
1. 电源芯片
如果电流较小,可以选用AS1117系列, 表贴型封装;
如果电流较大,可以选用AS28xx系列, 表贴型封装;
2. 存储芯片
尽量选择升级空间大,管脚兼容的系列;
SDRAM一般选择SAMSUNG的K4S系列,或者现代的HY57V系列;
ASRAM一般选择ISSI的61LV系列;
NOR &nbspFLASH一般选择AMD的29LV系列或者SST的芯片;
NAND&nbspFLASH一般选择SAMSUNG的K9S系列;
3. 其他芯片
VIDEO&nbspEncoder/Decoder   –&nbspPHILIPS;
VGA &nbspADC/DAC        -ADI;
ADC/DAC                  -ADI,&nbspTI ,&nbspBB;
USB                          -CYCPRESS;
PCI                           -PLX;
连接器              -AMP,SEMITEC;

FPGA器件选型

1

  现场可编程门阵列FPGA有集成度高、体积小、灵活可重配置、实验风险小等优点,在复杂数字系统中得到了越来越广泛的应用。

  随着FPGA技术的成熟和不断飞速发展,数字电路的设计只需一片FPGA器件、一些存储设备和一些电气接口匹配电路的解决方案已成为主流选择方案。根据多年的应用经验,相关数字系统中,FPGA器件的选型非常重要,不合理的选型会导致一系列的后续设计问题,有时甚至会使设计失败;合理的选型不光可以避免设计问题,而且可以提高系统的性价比,延长产品的生命周期,获得预想不到的经济效果。

  经过深入研究,总结了以下选型问题:器件的供货渠道和开发工具的支持;器件的硬件资源;器件的电气接口标准;器件的速度等级;器件的温度等级;器件的封装;器件的价格。

2 FPGA器件选型应该考虑的问题

  2.1 器件的供货渠道和开发工具的支持

  目前,主要的FPGA供应商有Xllinx公司、Altera公司、Lattic公司和Actel公司[1],其中Xllinx公司和Altera公司的规模最大,能提供器件的种类非常丰富[2,3]。FPGA的发展速度非常快,很多型号的FPGA器件已不是主流产品,为了提高产品的生命周期,最好在货源比较足的主流器件中选型。目前,Altera公司的主流器件有Cyclone,Cyclone,Statix,StatixⅡGX,Statix和StatixⅢGX等系列,其中CycloneⅡ和CycloneⅢ系列主要应用于逻辑设计和简单的数字信号处理,StatixⅡ和StatixⅢ系列主要应用于高速复杂数字信号处理和高速逻辑设计,StatixⅡGX和StatixⅢGX系列主要应用于通讯领域[1];Xllinx公司的主流器件有Spartan-3E,Spartan-3A,Virtex-4LX,Virtex-4 SX,Virtex-4 FX,Virtex-5 LX,Virtex-5SX和Virtex-5 FX等系列,其中Spartan-3E和Spartan-3A系列主要应用于逻辑设计和简单数字信号处理,Vir-tex-4 LX和Virtex-5 LX系列主要应用于高速逻辑设计,Virtex-4 SX和Virtex-5 SX系列主要应用于高速复杂数字信号处理,Virtex-4 FX和Virtex-5 FX系列主要应用于嵌入式系统[3]。

  两家公司都提供了优秀的开发工具。Xllinx公司有集成开发环境ISE,Altera公司有集成开发环境QuartusⅡ,两个集成开发环境支持本公司所有器件的设计和开发[2,3]。该集成开发环境不仅功能强大、界面友好,而且有很多第三方合作伙伴提供相应的技术支持,能使器件获得更高的性能。因此,如果没有特殊应用要求,建议最好在这两家公司进行器件选型。

  2.2器件的硬件资源

  硬件资源是器件选型的重要标准。硬件资源包括逻辑资源、I/O资源、布线资源、DSP资源、存储器资源、锁相环资源、串行收发器资源和硬核微处理器资源等。

  逻辑资源和I/O资源的需求是每位设计人员最关心的问题,一般都会考虑到,可是,过度消耗I/O资源和布线资源可能产生的问题却很容易被忽视。主流FPGA器件中,逻辑资源都比较丰富,一般可以满足应用需求。可是,在比较复杂的数字系统中,过度I/O资源的消耗可能会导致2个问题[2,3]:FPGA负荷过重,器件发热严重,严重影响器件的速度性能、工作稳定性和寿命,设计中要考虑器件的散热问题;局部布线资源不足,电路的运行速度明显降低,有时甚至使设计不能适配器件,设计失败。根据本人的应用经验:

  (1)在做复杂数字信号处理时,位数比较高的乘法器和除法器对全局布线资源的消耗量比较大;

  (2)在做逻辑设计时,双向I/O口对局部布线资源的消耗量比较大;

  (3)在利用存储器资源设计滤波器的应用场合,局部布线资源的消耗量比较大;

  (4)在电气接口标准比较多,而逻辑比较复杂的应用场合,局部布线资源的消耗量比较大。Altera公司推荐,设计中最好能预留30%以上的逻辑资源、20%以上的I/O资源和30%以上的布线资源[1]。而且,从两家公司器件的结构看,Xllinx公司器件的可编程逻辑块相对于Al-tera公司要复杂一些,使用起来要灵活一些。在一些复杂的、控制信号比较多的设计中,适合选用Xllinx公司的产品。不过Xllinx公司器件布线资源是分段的,器件延时的可预测性要差一些。在这些应用场合,最好首先做设计仿真,对设计?肖耗的布线资源,尤其是很容易被忽视的局部布线资源,要有一个比较充分的了解,然后在考虑器件选型,是比较理想的。

  在做乘法运算比较多而且对速度性能要求比较高的应用场合,最好能选用带DSP资源比较多的器件,例如,Altera公司的StatixⅡ和StatixⅢ系列[2],Xllinx公司的Virtex-4 SX和Virtex-5 SX系列等[3]。 

  器件中的存储器资源主要有2种用途[2,3]:作高性能滤波器;实现小容量高速数据缓存。这是一种比较宝贵的硬件资源,一般器件中的存储器资源都不太多,存储器资源较多的器件逻辑容量也非常大,用得也比较少,供货渠道也不多,器件价格也非常高。因此,在器件选型时,最好不要片面追求设计的集成度而选用这种器件,可以考虑选用低端器件+外扩存储器的设计方案
 目前,主流FPGA中都集成了锁相环,利用锁相环对时钟进行相位锁定,可以使电路获得更稳定的性能。Xllinx公司提供的是数字锁相环,其优点是能获得更精确的相位控制,其缺点是下限工作频率较高,一般在24 MHz以上;Altera公司提供的是模拟锁相环,其优点是下限工作频率较低,一般在16 MHz以上,其主流器件StatixⅡ和StatixⅢ系列中的增强型锁相环工作频率只要求在4 MHz以上,其缺点是对时钟相位的控制精度相对较差。

  在通讯领域里,用光纤传输高速数据是一个比较常用的解决方案。A1tera公司的StatixⅡGX和StatixⅢGX系列[1],Xllinx公司的Virtex-4 FX和Virtex-5 FX系列[2]都集成了高速串行收发器,这种器件价格一般都比较高。目前,National和Maxim等公司提供的高性能专用串行收发芯片价格都不高[4,5],因此,如果只是进行光纤数据传输没计,大可不必选用这种器件;如果是光纤数据传输+逻辑或算法比较复杂的应用场合,最好是将两种方案进行比较,然后考虑是否选用该器件。

  利用集成硬核微处理器的FPGA器件进行嵌入式开发,代表嵌入式应用的一个方向。Altera公司提供集成ARM[2]的APEX系列器件,Xllinx公司提供集成Power-Pc[3]的Virtex-4 FX和virtex-5 FX系列器件。随着器件价格不断下降,在很多应用场合,在不增加成本的情况下,选用该器件和传统FPGA+MCU的应用方案相比,能大幅度提高系统性能和降低硬件设计复杂程度。此时,选用该器件是比较理想的。

  2.3 电气接口标准

  目前,数字电路的电气接口标准非常多。在复杂数字系统中,经常会出现多种电气接口标准。目前,主流FP-GA器件支持的电气接口标准有[1,2]:1.5 V,1.5-V

 

等,可以满足绝大部分应用设计需求。

  可是,FPGA器件的每一个I/O并不支持所有的电气接口标准,以Altera公司的FPGA为例,只有部分1/O支持SSTL-2 ClassⅡ电气接口标准,在对DDR进行设计时,会导致PCB布线相当复杂,器件的I/O管脚利用率相当低。而Xllinx公司的FPGA几乎所有的管脚都支持SSTL-2 ClassⅡ电气接口标准,此时选用Xllinx公司的FPGA是比较理想的。

  2.4 器件的速度等级

  关于器件速度等级的选型,一个基本的原则是:在满足应用需求的情况下,尽量选用速度等级低的器件。该选型原则有如下好处[2,3]:

  (1)由于传输线效应,速度等级高的器件更容易产生信号反射,设计要在信号的完整性上花更多的精力; (2)速度等级高的器件一般用得比较少,价格经常是成倍增加,而且高速器件的供货渠道一般比较少,器件的订货周期一般都比较长,经常会延误产品的研发周期,降低产品的上市率。

  2.5 器件的温度等级

  某些应用场合,对器件的环境温度适应能力提出了很高的要求,此时,就应该在有工业级甚至是军品级或宇航级的器件中进行选型。据调研,Altera公司每种型号的FPGA都有工业级产品;Xllinx公司每种型号的FPGA都有工业级产品,部分型号的FPGA提供军品级和宇航级产品。如果设计主要面向军用或航天应用,最好选用Actel公司的器件,该公司的器件主要面向这些用户。

  2.6 器件的封装

目前,主流器件的封装形式有[2,3]:QFP,BGA和FB-GA,BGA和FBGA封装器件的管脚密度非常高,设计中必须使用多层板,PCB布线相当复杂,设计成本比较高,器件焊接成本比较高,因此,设计中能不用尽量不用不过,在密度非常高,集成度非常高和对PCB板体积要求比较高的应用场合,尽量选用BGA和FBGA封装器件。还有一种情况,在电路速度非常高的应用场合,最好选用BGA和FBGA封装器件,这2种封装器件由于器件管脚引线电感和分布电容比较小,有利于高速电路的设计。

2.7 器件的价格

  器件集成度不断提高,性能不断上升,而价位不断下降是FPGA器件发展的普遍趋势,因此,在不断推出的新型器件中选型是一个基本规律[2,3]。以Xllinx公司刚推出的Virtex-5为例,性能比Virtex-4提高30%,而相对价位却降低35%。 

  3 结 语

  本文是笔者多年从事FPGA器件应用开发和对FP-GA技术不断跟踪的结晶。文中不仅结合部分应用实例对FPGA器件的选型进行了深入的总结,而且提供了大量的最新器件信息。这些内容对从事FPGA应用设计的人员有很大的参考价值。

 

 

来源:网络

整理:

SkySeraph     Apr.17th,2010 HQU XiaMen China

Email:zgzhaobo@gmail.com  QQ:452728574 

Blog:http://www.cnblogs.com/skyseraph/

 

posted @ 2010-10-07 15:26  SkySeraph  阅读(1663)  评论(0编辑  收藏  举报