配置是连接FPGA软件设计到硬件功能实现的桥梁,配置电路部分有误,配置文件无法下载到配置器件中,对FPGA编程,则再好的设计都是浮云。
上电后,配置数据保存在配置RAM中,将配置数据载入配置RAM即是对FPGA编程。
配置方式有很多种,主要区别为FPGA所处的地位和打入数据的方式不同,其基本时序基本相同。基本时序波形如下:
配置过程主要由nCONFIG、nSTATUS、CONF_DONE以及可选的INIT_DONE四个状态信号控制。
一个器件完整的配置过程包括上电复位、配置、初始化三个阶段。正常上电后,nCONFIG管脚被拉低,器件复位,此时配置RAM的所有内容被清空,所有I/O处于高阻态,其余三个状态信号亦均被拉低,复位结束后,FPGA释放nCONFIG管脚,使其被外部上拉电阻拉高,FPGA在nCONFIG检测到由低到高的跳变沿,配置开始,同时FPGA采样MSEL的信号状态,决定接受何种配置模式。随后,FPGA释放nSTATUS管脚,外不上拉电阻将其拉高,FPGA在nSTATUS管脚检测到由低到高的跳变沿,表示FPGA开始接受数据。配置数据由DATA管脚打入,配置时钟经DCLK管脚送入(被动方式下,主动方式DCLK由FPGA提供),配置数据在上升沿锁存至FPGA中,配置数据全部打入到FPGA后,FPGA释放CONF_DONE管脚,使其由外部上拉电阻拉高,说明配置结束,进入初始化过程。INIT_DONE是一个可选的指示初始化完成的信号(Device-Pin&Options-general),INIT_DONE在nCONFIG信号为低或配置的初期时为高电平,而当使能INIT_DONE的比特位(在配置数据的第一帧中)被配置进FPGA后,INIT_DONE信号变低,因此INIT_DONE信号由高到低的跳变表示FPGA配置真正开始,开始接收配置数据,如果INIT_DONE一直保持为高,说明FPGA没有接收到正确配置数据的文件头。当初始化结束后,FPGA释放它,使其由外部上拉电阻拉高。