原创 FPGA配置过程的一点笔记

2011-9-7 11:45 3318 2 4 分类: FPGA/CPLD
配置是连接FPGA软件设计到硬件功能实现的桥梁,配置电路部分有误,配置文件无法下载到配置器件中,对FPGA编程,则再好的设计都是浮云。
上电后,配置数据保存在配置RAM中,将配置数据载入配置RAM即是对FPGA编程。
配置方式有很多种,主要区别为FPGA所处的地位和打入数据的方式不同,其基本时序基本相同。基本时序波形如下:
20110901161314106.jpg
配置过程主要由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释放它,使其由外部上拉电阻拉高
PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户446166 2014-10-22 17:19

楼主,看到这个有点晚了,现在碰见的问题是上电后nSTATUS一拉高,高电平持续40ms左右就又变低了,此时auto_restart configuration after errors没有使能,当使能时,nSTATUS是低电平持续20us,高电平持续72ms的脉冲,手册上If an error occurs during configuration, the Cyclone II device drives the nSTATUSsignal low to indicate a data frame error, and the CONF_DONE signal stays low. If you enable the Auto-restart configuration after error option in the Quartus II software from the Generaltab of the Device & Pin Optionsdialog box, the Cyclone II device resets the serial configuration device by pulsing nCSO, releases nSTATUSafter a reset time-out period (about 40 μs), and retries configuration. If the Auto-restart configuration after erroroption is turned off, the external system must monitor nSTATUSfor errors and then pull nCONFIGlow for at least 2 μs to restart configuration. 这说明data出错了,可为什么as模式烧进去是成功的,电路硬件也检查好几遍了,引脚连接没有问题啊,求教啊!!!!

用户377660 2011-9-5 22:18

技术来源于不断积累,大家有问题,提出来,大家共同讨论啊,我每天都上博客!
相关推荐阅读
用户377660 2011-08-29 16:56
modelsim仿真显示模拟波形的几个参数设置
modelsim仿真中显示模拟波形的命令是:右键选“format”,然后选“Analog(custom)”。“Radix“处选项也要做相应调整,一般选“unsigned”即可!“Analog(cust...
用户377660 2011-08-27 19:21
基于verilog 的很基础的RS232串口收发代码
写代码,记笔记,防忘记,须牢记。写串口的Verilog代码关键是要搞明白RS232串口的通信协议,它并不像单片机,直接读写SBUF就可实现串口的收发功能,收发整个字节。而FPGA要一位一位的收发,因此...
我要评论
2
2
关闭 站长推荐上一条 /3 下一条