一、FPGA通过加载特定bitstream进行配置:
有主从两种模式:
1)FPGA可以自己从外部的非易失存储器件加载
2)外部控制器(包括微处理器,DSP控制器,PC等)配置FPGA。
按配置路径分为两种:
1)串行数据路径serial datapath
2)8或16bit datapath
二、配置数据生命周期
由于FPGA配置数据存储在CMOS configuration latches(CLLs),掉电之后,无法保存配置,所以需要重新配置。
三、配置的不同模式
spartan 6 FPGA有以下几种配置模式,可以通过模式输入pin M[1:0]进行配置,这两个pin设置为固定的电压,比如直接接地或VCCO_2。在配置之前或配置中这些模式pin不运行翻转,在配置完成之后可以翻转。(主从模式是参考的配置时钟CCLK的方向,主模式为FPGA驱动CCLK,从模式CCLK对于FPGA是输入)
1) JTAG配置模式
2)主串行或SPI配置模式(x1,x2,和x4)
3)从串行配置模式
4)主 SelectMAP/BPI 配置模式(x8 和 x16)
5)从SelectMAP 配置模式(x8 和 x16)
无论mode pin的设置成怎样,JTAG/boundary -scan 配置接口一直可用。
四、主模式下CCLK速率
FPGA主配置模式默认从内部的时钟或可选外部主时钟源GCLK0/USERCCLK来驱动CCLK。为了选择期望的频率,内部振荡器可以使用BitGen -g ConfigRate选项进行选择。默认为2MHz。CCLK时钟会随着处理器,电压以及温度变化,数据手册中Fmccktol说明定义了频率的容限。一个50%容限意味了ConfigRate设置为10时,CCLK的速率可能会在5~15MHz之间,详细的BitGen部分可以参考UG'628 Command Line User Guide。
在配置之后,除非满足一下条件中的1个,振荡器会关闭。
SEU检测被使用。 2.CFGMCLK在STARTUP时被连接。? 3.在SUSPEND模式下,选择了内部时钟源(振荡器只能被用在WAKEUP阶段)。 4.加密被使能了。
CCLK是一个双重功能的pin。在配置前,没有片上上拉。在配置之后,这个一个用户pin,除非RERSIST(持久性)被使用。
五、配置接口
1) 串行配置接口
在串行配置模式,FPGA通过每一个CCLK周期load一个配置bit来进行配置。在主串行模式下,CCLK是输出;在从串行模式下,CCLK是输入。UG626有说明可用的串行配置模拟模型。
串行配置接口如下:M【1:0】,DIN,INIT_B,PROGRAM_B,CCLK,DOUT,DONE。
接口含义:
M【1:0】输入信号,双重功能pin,用于决定配置模式。
CCLK 输入或输出信号,双重功能pin,除了JTAG之外的所有配置模式的配置时钟源。
DIN 输入信号,双重功能pin,同步CCLK的上升沿,是串行配置数据输入。
DOUT 输出信号,双重功能pin,串行输出数据用于downstream daisy-chained设备,数据在CCLK的下降沿产生。
DONE 双向开漏或Active,专用pin,高有效表示配置完成。0表示FPGA没有配置完成,1表示配置完成。
INIT_B 输入或输出,开漏, 双重功能pin,在mode pin采样之前,INIT_B是一个输入,能保持低电平来延迟配置。在mode pin采样之后,INIT_B是一个开漏低电平有效输出指示在配置的过程中是否有CRC错误产生。 0表示CRC错误,1表示没有CRC错误。当SEU检测功能使能,INIT_B被保留不能作为用户IO使用。
PROGRAM_B 输入 双重功能pin 地有效时,整个芯片异步复位。
有4种串行配置FPGA的方法:
A. 主串行配置,一般包括一个如平台flash XCFxxS的存储器。 B. 从串行模式,一般由处理器提供数据和时钟组成。 C.串行daisy-chain配置,多个FPGA串行从一个存储器或处理器配置不同的image。 D.Ganged 串行配置,多个FPGA配置并行配置成同一个image。
以从串行配置模式为例:
时序如下:
推荐电路如下:
电路说明:
内部pin的终端电阻和pin会被HSWAPEN影响。
在daisy-chain模式下,DOUT应该连接到下游FPGA的DIN。
CCLK网络需要Thevenin并联终结。
DONE默认是开漏输出且有内部上拉,推荐额外的一个外部上拉。DONE光脚是一个可编程主动驱动器的,通过BitGen option -g DriverDone来使能。
INIT_B是一个双向,开漏pin。推荐外部增加一个上拉电阻。
SPI控制pin,CSO_B和MOSI,串行配置器件会翻转
Vfs存在于6SLX75/T,100/T和150/T器件。可以使用eFUSE编程。
Vbatt存在于6SLX75/T,100/T和150/T器件。是AES关键存储器的电源。如果AES加密不使用,Vbbat可以连接到VCCAUX或地或不连接。
如果VCCO_2是1.8V,VCCAUX必须是2.5V。如果VCCO_2是2.5或3.3V,VCCAUX可能是2.5或3.3.V。
在上电和配置期间,SUSPEND pin应该拉低,如果suspend特性不使用,SUSPEND pin必须拉低到地。
参考文档:
Spartan-6 FPGA Configuration
联系客服