FPGA加载时间的研究

[复制链接]
2324|7
 楼主| shang651 发表于 2012-10-14 20:38 | 显示全部楼层 |阅读模式
Xilinx的FPGA加载时是需要时间的。在最初设计的时候,我们确实从来没研究过这个问题。因为每次上电后,加载的都很顺利,系统也能很快识别PCIE设备(顺便提一下,我们做的是带PCIE的网络设备),但在最近一次偶然事件中,发现了此问题的重要性。
当PROM的芯片驱动时钟频率较低时,其烧写FPGA的速度确实很慢。
在FPGA加载逻辑文件时,需考虑很多问题,如上电顺序,板卡的可靠性,和其他设备的互操作性。如果板卡上有PCIE控制器,需保证在系统识别PCIE之前,对FPGA的逻辑加载成功。不幸的是,很多设备一开始并没有考虑这个问题。
V6系列(本人用的,其他的类似)的FPGA在上电后配置加载的过程如下:
1 等待上电复位信号(power on reset),这里的上电指FPGA的各类电源,如VCCINT,VCCAUX,VCCO等;
2 等待初始化(INIT)完成信号,只有初始化完成后,才能接受从外部(PROM或JTAG或其他方式)发送来的bit流逻辑文件;
一般地,上述步骤1和步骤2总的时间不超过50ms
3 等待bit流完成信号DONE,此等待的时间为bit流进入FPGA完成烧录的时间,取决于以下几个要素:
  • bit流文件的大小
  • 烧写时钟的频率
  • Flash芯片的传输类型(SPI、BPI、PFP)
下图为V6系列在ATX主板上的bit流加载时间

下图为V6系列在非ATX主板上的bit流加载时间

bit流的加载时间基本上是可以确定的。其和主板的要求是什么关系呢?
理想情况下可参考下面的公式:
FPGA Configuration Time ≤ T(PWRVLD) + T(PVPERL)
其中:
T(PWRVLD) ---- 指主板从上电开始到上电OK经过的时间,在ATX主板上,一般在100ms-500ms
T(PVPERL) ---- 指主板从上电OK到首次复位信号无效(高电平)的时间,最小值有100ms
所以上述公式可简化为:FPGA Configuration Time ≤ T(PWRVLD) + 100ms


考虑到实际情况,主板会有两次复位,而两次复位中间的时间是不影响FPGA所在板卡上的加载时间的,所以实际情况下的修正公式为:
FPGA Configuration Time ≤ T(PWRVLD)+ T(PERSTPERIOD) + 100 ms
其中:
T(PERSTPERIOD) ----- 指第1次复位无效(高电平)的时间+第2次复位前的复位时间(低电平)。
此时间可能和主板的设计有关,从网上查找的资料看有的描述是1ms,有的描述是至少100ms,甚至大于300ms。
具体的若想探讨主板的上电顺序及时间,可从网上找相关资料查询。
至少本篇**可以对V6系列的bit流加载设计起到指导作用。

评分

参与人数 1威望 +4 收起 理由
GoldSunMonkey + 4

查看全部评分

GoldSunMonkey 发表于 2012-10-14 20:42 | 显示全部楼层
这个,不错。谢谢分享
wlinot 发表于 2012-10-31 10:35 | 显示全部楼层
looope 发表于 2012-10-31 10:40 | 显示全部楼层
:o学习了
pihois 发表于 2012-10-31 10:50 | 显示全部楼层
很好 值得参考
uiodh 发表于 2012-10-31 10:58 | 显示全部楼层
转帖吧 这要是自己总结挺费劲呢
GoldSunMonkey 发表于 2012-10-31 12:20 | 显示全部楼层
资料还是不错的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

305

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部