工作了一些年头了,很少有机会分享一些FPGA的心得,借此机会来一起分享一下。。
1,FPGA的配置烧录模式一般有:AS,PS,JTAG,
PS:则由外部计算机或控制器控制配置过程。通过加强型配置器件(EPC16,EPC8,EPC4)等配置器件来完成,在PS配置期间,配置数据从外部储存部件,通过DATA0引脚送入FPGA。
AS:由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列.如EPCS1,EPCS4配置器件专供AS模式,目前只支持 Cyclone系列。使用Altera串行配置器件来完成。Cyclone期间处于主动地 位,配置期间处于从属地位。配置数据通过DATA0引脚送入 FPGA。配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。这种主要是固化到外部的存储器一般是flash,比如25q16等。掉电后不会消 失,用于生产。
JTAG:直接烧到FPGA里面的,由于是SRAM,断电后要重烧;这种类似于调试模式。
2,供电方式。
一般都分为核心电压,PLL电压和IO电压。
VCCINT:一般表示内核电压,一般1.0V,1.2V。
VCCA:PLL模拟电压,2.5V,需要注意的是即使FPGA设计中未使用PLL仍要提供VCCA。
VCCD_PLL:PLL数字电压,1.0V/1.2V,一般接1.2V。一般可以与内核电压相连。
VCCIO:I/O电压,1.2V/1.5V/1.8V/2.5V/3.0V/3.3V,可以分别配置8个BANK的I/O电压,电压值根据IO连接的外设而定。
IO电压还可以分为Bank电压,以及不同的功能模块所在bank的要求而导致各个bank之间的电压不一样,比如支持DDR2通信接口的bank电压一般为1.8V,普通的IO模块电压一般设置为3.3V等具体的模块电压设置一般在数据手册上会有推荐。
3,时钟问题
PFGA的时钟网络一般分为三种:全局时钟网络(GCLK)、区域时钟网络和IO时钟网络。
全局时钟资源是专用布线资源,存在于全铜布线层上,用户使用全局时钟资源并不会影响芯片的其他布线资源美因茨在可能使用全局时钟资源的场合尽可能使用该资源,如果模块的管脚分配没办法的时候需要进行分配到不同的bank之间,那么最好使用GCLK全局时钟,这样时钟的延时都是相同的,而且延时最小,也最稳定。。特别注意在高速的模块中最好不要自己软件生成时钟,尽量使用系统的PLL和GCLK这样会让你的设计更加稳定和少走不必要的约束条件。
4,IO的分配
一般而言,相同模块的IO一般尽量分配在相同的bank内,如果因为走线或者数量不足而必须分配在不同的bank,最好使用结构对称(在BGA中最明显相对于中心对称的Bank,因为芯片封装的时候会考虑对称的因素),而此时的时钟必须使用GCLK。一些高速的信号尽量安排在最外层,这样走线最短,也容易进行差分布线。。
|