Chinaunix首页 | 论坛 | 博客
  • 博客访问: 287099
  • 博文数量: 74
  • 博客积分: 2811
  • 博客等级: 少校
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-02 21:14
文章分类

全部博文(74)

文章存档

2011年(1)

2010年(24)

2009年(49)

我的朋友

分类:

2010-03-31 19:54:29

第一篇:芯片选型
    1.考虑器件的资源,包括LE,ram资源,硬件乘法器,PLL,全局时钟网络等。
总体来说,对于FPGA设计,资源一定要留有余量,否则最后的时序收敛会比较困难。我认为使用80%左右是比较合适的。对于资源使用量在95%以上的设计,除了时序收敛,可能还会遇到一些你想不到的问题。
   A. LE是5K到120K。要对设计需要的资源做一个估算,120K,对于大部分的应用,应该是一个很大的数字了。
  B.ram资源为400K-3888Kbit.注意ram块的大小都是9Kbit,有些模块,比如fifo,实际上用不到9K的资源。但不管你用多少,都得占用一个ram(有些情况下占用0.5个ram)。所以ram的数量是否足够也得考虑。
  C.乘法器的数量 23-288个。注意是18*18bit的乘法器。实际使用时,要看应用需要的乘法器精度是多少。
D.PLL的数量为2-4个。每个PLL可以输出5个时钟,一般的设计够用了。如果设计中的时钟很多,就得仔细考虑了。
E.全局时钟网络为10-20个。一般够用,如果设计中有很多时钟或者很多扇出(fan-out)很大的信号,比如复位信号,也得仔细考虑。
2.考虑引脚,封装和迁移
A.引脚数量。设计前,就要考虑需要多少普通IO(LVTTL),这个应该是比较好计算的。电平有几种,因为一个bank只能1个IO电平。需要多少LVDS管脚,一些小封装器件的LVDS管脚很少。
B.封装。封装影响到引脚数量。还影响到焊接的难度。EQFP和PQFP当然好焊接也好拆卸,如果是BGA的,一般需要找专人焊接(需要专门的工具),价格也贵。布线难度:用BGA,还得出注意ball pitch(焊接球的间距)。1.0mm的当然比0.8mm的好布线。F780比F484的外圈引脚数量多,当然也好布线一些。体积:也就是芯片的大小了,比如用于移动和手持应用,就得考虑大小了。不过体积小,布线就难,所以这时pcb的层数往往从6层起,上不封顶。
C.器件迁移。也就是相同封装,资源不同的器件可以直接替换使用。当然都得是CycloneIII的器件。这样的好处在于,初期设计时可以用大规模的器件,设计成功后,根据实际的资源使用情况,更换更经济的器件来量产。具体的型号替换,文档上说得很清楚,这里就不说了。如果考虑型号替换设计,要仔细核对每个芯片的引脚文档,最后决定出画原理图时芯片的引脚定义。这里说一个技巧,那就是规模最大的芯片的引脚定义,一般是最接近的,但也会有修改。
3.考虑器件速度
      速度分为-6,-7,-8。-6是最快的,也是最贵的。每一档次速度相差20%,包括内部工作频率和IO速度。FPGA的实际最高工作频率和这些数字无关,和具体的设计相关。我的经验是,对于很多代码,-8的器件能跑到130MHz左右。以前用CycloneII的-8器件,只能跑到110MHz左右。说明CycloneIII比II还是有进步的。
  额外说一点,器件还分商业级,工业级和汽车三种类型。我们一般采购的都是商业级器件。差别在于温度范围和稳定性。如果产品的工作温度在在0-70度之间,稳定性要求也不是太高,用商业级就可以了。要求高,那就多出钱吧。
1.早期功耗估计
  需要提早就估算好芯片的功耗是多少,才能做好供电设计和散热设计。
下面是Altera对于Cyclone III器件的功耗估计excel表格:
http://www.altera.com.cn/support/devices/estimator/cy3-estimator/cycloneiii_epe_72sp1.xls
如果设计已经基本完成,QuartusII软件也可以根据实际设计估算功耗。

2.I/O支持
   A. 三类I/O标准,包括Single-ended(单端),Voltage-referenced(参考电压),Differential(差分)。三者各有优缺点。不过在实际应用中,使用哪种标准,往往由FPGA连接的芯片决定。
B.灵活的I/O bank。8个bank的I/O电压和Vref参考电压可以不一样,但在每个bank内部必须一致。在I/O电压确定的情况下,还可以有一定的兼容性。比如2.5V和3.3V的兼容性。
C.外部内存接口。支持ddr,ddr2,qdrII,需要专门的管脚。以前的sdram和sram当然也支持,不需要专门的管脚(把时钟脚小心处理更好)。使用top和bottom的bank速度更快,最快支持200MHz。这里简单介绍,做高速设计,得多查文档。
D.Pin-Out文件。QuartusII工程编译后会生成该文件,里面对引脚的描述就是该引脚最终确定的功能。对这个文件的检查,可以帮助我们明确问题。一些多功能引脚,需要小心处理。
3.选择FPGA配置方案
下面是原文中的配置方案的表格,说得很清楚。

 

  配置方案很多,包括
Active serial (AS):
单芯片,使用Altera的EPCS系列芯片,配置速度第3。芯片价格较贵。
Active parallel (AP):
单芯片,使用特定型号的FLASH(INTEL P30,P33),配置速度第1。芯片价格便宜。但需要占用FPGA 40个管脚(16data+24addr)。
Passive serial (PS):
被动方式,需要额外的控制器参与。配置速度第4.
Fast passive parallel (FPP):
被动方式,需要额外的控制器和flash芯片。配置速度第2。flash芯片价格便宜。需要占用FPGA 8个管脚(8data)。
Joint Test Action Group (JTAG)——调试使用

配置方案的选择,由MSEL pin控制。
选择考虑:是否需要fast power-on reset (POR) time ,达到快速上电工作的目的。
封装不同,支持的配置方案也不同。
配置方案的选择,需要考虑配置时间的要求。
AS和AP模式,FPGA的DCLK为输出,最大速度40MHz。PS和FPP模式,FPGA的DCLK为输入,上升沿采样。最大速度为100MHz。

下载电缆包括:
USB-Blaster,目前最常用的。价格中等,下载配置文件到FPGA的速度快。不想购买的话,可以从网上下载pcb,采购器件自己做。
ByteBlaster II,常见,最便宜,但是下载速度慢。同样可以自己做。器件规模大了用这个会慢得很痛苦。
EthernetBlaster,不常见,价格贵,下载速度快。
目前,强烈建议使用USB-Blaster,除非对价格太敏感。

可以通过FPGA的JTAG接口,烧写EPCS配置芯片。需要用到Serial Flash Loader这个Altera提供的IP核。
使用MAX II芯片,PS或者FPP模式,也有MAX II Parallel Flash Loader这个IP核,来通过MAX II芯片JTAG烧写FLASH。
AP模式,有FPGA-Based Parallel Flash Loader这个IP核,通过FPGA的JTAG烧写FLASH。

4.配置特性

      AS和PS模式,配置文件可以选择压缩模式,能减少配置文件的大小。
     远程系统升级,不熟悉,待补充

5.PLL锁相环

      强大的PLL功能,包括时钟倍频,分频,相移,可编程占空比,输入时钟切换,PLL级联,PLL动态重配,动态相移,扩展频谱时钟,外部时钟输出和控制信号。
   相对于Cyclone和Cyclone II,现在Cyclone III增加了PLL的动态重配功能。
  PLL的时钟输入,必须使用FPGA的专用时钟输入脚(dedicated clock
input pins)或者另一个PLL的时钟输出。也就是说,PLL可以级联。
  输入时钟切换:可以给PLL输入双时钟,当使用的输入时钟失效时,可以自动或者手动切换使用另一个备用输入时钟。
PLL有5个输出。如果要输出到专用外部时钟输出脚,建议用C0输出,这样jitter最小。当然也是可以使用其它的输出的。
如果对输入时钟和PLL的输出时钟,有相位上的要求,就得了解PLL的相位补偿模式的设置。

6.芯片内部调试方法
A.SignalProbe Incremental Routing   不改变目前的布线,引出内部信号到一个没使用的I/O上。
B.SignalTap II Embedded Logic Analyzer 嵌入式逻辑分析仪,可以捕捉实时的内部信号。是最常用的调试工具。需要消耗一定的LE和M9K资源。使用时,如果想减少对原设计的影响和编译时间,可以反标原设计,使用增量编译模式。
C.Logic Analyzer Interface  等效于多路选择器,把多个内部信号通过少量的管脚输出。可以切换输出哪些信号而不用重新编译。适合于把信号引出给外部的逻辑分析仪。
D.In-System Memory Content Editor  在线修改内存或者常量的值。
E.In-System Sources and Probes  能对内部节点给一个简单的激励信号,然后捕获输出。
F.Virtual JTAG Megafunction  能对内部节点给一个简单的激励信号,然后捕获输出。和上面的方式有不同的地方。

1.I/O方面的考虑

        A.3.3/3.0/2.5V的普通I/O接口,如果接的外部信号是相同电压,就不用考虑太多。如果电压不同,就得仔细计算有没有问题。

       B.引脚设置考虑。单端和差分信号的引脚必须保持一定的间隔。如果使用了参考电压的单端信号,也会有间隔上的要求。这是为了减少信号之间的干扰。QuartusII软件会检查引脚分配是否符合规则,如果不符合,设计是无法编译的。
       如果实际信号是稳定的,没有翻转的(比如一直保持高或者低),可以通过assignments设置,避开规则检查。对某个单端引脚设置Toggle Rate assignments,可以去掉这个引脚和差分信号的间隔要求。Output Enable Group assignment这个设置,可以解决电压参考信号的间隔要求。

    C.减少同时开关噪声(SSN)。方法:
          1).把同时翻转的引脚分隔得远一些,放在2个不同的bank中更好
         2)高速引脚,要远离VCC和GND,把静态和未使用的引脚靠近VCC和GND
         3)对高速引脚设置slow slew rate和lower drive strength
         4)做好匹配(termination,或者叫端接)
       更详细的说明参考AN 508: Cyclone III Simultaneous Switching Noise (SSN) Design Guidelines.

     D.未使用管脚的设置 。最好设置为输入。设置为输出,又接了外部电路,可能会导致芯片管脚损坏。

     E.匹配方案。通常,信号的发送端使用串行匹配,接收端使用并行匹配。匹配电阻要符合传输阻抗。如果有可能,最好做板级的模拟来选择匹配电阻的大小。Cyclone III芯片有部分管脚可以设置片内串行匹配电阻OCT。

      F.板级模拟。Altera提供芯片的IBIS和HSPICE模型,可以用来仿真。

2.供电考虑

A.供电电压包括
     Vccint  内核电压,1.2V
      Vccio     I/O电压 ,每个bank可以不一样 。3.3V最常用。
       Vcca    PLL的模拟供电电压,2.5V  比Cyclone II芯片高
       Vccd_pll  PLL的数字供电电压,1.2V
      Vref      电压参考信号的参考电压
建议使用linear regulator给Vcca供电,对其它数字电压,使用linear 或者 switching regulators。用linear regulator的噪声会好一些。
电源芯片和FPGA之间,需要串联磁珠(ferrite bead),电容一端接电源,一端接地。去耦的电路根据具体的设计要求决定。有钱就用钽电容(tantalumcapacitors)。
pcb设计,最好有专门的电源层。

B.PLL的供电。PLL包含模拟器件,因此有更严格的供电的要求。
        1)到Vcca的电源走线要宽,20mil
        2)Vccd的电源要干净
       3)所有的pll供电脚都要连好,无论是否使用这个pll
       4)使用独立的linear regulator对PLL供电
        5)每个Vcca和Vccd都要去耦电路,Altera有参考设计
        6)Gnda要连接到隔离的模拟地上。

3.器件上电

      Cyclone III芯片支持热切换和上电复位,不需要额外的复位芯片。
下面是上电过程:

 

Cyclone III对于Vccint,Vccio等电压的上电顺序没有要求,只要是单调上升的就可以了。对上电时间,如果是正常的POR,<50ms即可。如果设置为快速POR,那么上电时间<3ms。
如果需要支持热插拔,需要考虑更多。
芯片的POR电路,会检测Vccint和Vcca的电压,如果低于阀值,会复位芯片。但不会检测Vccio电压。
总结一句,Cyclone III芯片的电源管理很好,省了很多外部芯片。

4.配置管脚连接

具体的配置电路,有参考设计。注意和Cyclone II有所不同,最好不要沿用老电路(似乎用老电路也可以跑^_^)。

 

这是常用的配置方式。其它配置方式的参考电路也都有,注意任何方式都得要按照参考电路来,不能想当然的连接。

5.配置的相关细节

用AS配置模式,bank1的Vccio必须为3.3V。
Cyclone III的DCLK为40MHz,EPCS器件中,EPCS16和EPCS64都能支持。但EPCS4器件有0.18和0.15两种工艺批次。前者只能支持20MHz,因此不能配合Cyclone III使用。
使用AP模式,需要P30和P33的flash。同样的,flash需要支持40MHz的DCLK。注意TSOP封装不支持这个速度,FBGA封装支持。
阅读(3973) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~