原创 控制FPGA上电、配置以及初始化时间

2012-12-3 12:54 9865 12 17 分类: FPGA/CPLD 文集: ALTERA FPGA

控制FPGA上电、配置以及初始化时间


      有些系统有上电顺序要求,这里要讨论的不是各种电源的上电顺序(电源上电顺序可以通过电源管理芯片实现),而是如何控制系统中不同主芯片开始工作的顺序。比如这么一个系统,硬件设计为PCI的插卡,板卡主要包含ETX(或者x86等CPU)以及FPGA,由于一般PCI接口通过FPGA来控制实现,所以如果系统上电后FPGA的配置、初始化时间太长势必影响到板卡CPU对于PCI总线接口的访问,而且大部分情况下系统要求CPU通过PCI卡对系统进行一些初始话等等配置的过程,如果FPGA“起来”太慢肯定会影响系统的配置。当然这个问题可以通过电源管理实现FPGA先上电、CPU后上电来解决,不过这里我想通过FPGA的内部的一些特性来试图解决这个问题。


        要解决这个问题首先要了解FPGA上电初始化过程,这里我们是以ALTERA的ArriaGX的AS模式来进行研究。


第一步控制POR时间        


       FPGA的AS配置主要分为三个过程:复位、配置和初始化过程。在配置之前,还有一个POR过程,即一上电FPGA经过一个POR后才开始整个配置流程。而POR的时间可以控制,通过控制PORSEL引脚控制POR的时间,当PORSEL接高时POR的时间大概是12ms,当PORSEL接低时POR的时间大概是100ms。


第二步控制配置、初始化时间


      POR之后,FPGA进入正常的配置过程。下面来详细研究这个三个过程,看看那些地方用户可以进行控制。


      首先,这复位过程是 在POR的时候就开始了,POR的时候nconfig和nstatus均为低电平,进入复位过程,POR结束后FPGA释放nconfig信号,nconfig信号被外部上拉电阻拉高,由此进入配置过程。


       其次配置过程,FPGA产生DCLK时钟,在该时钟的同步下FPGA向配置芯片发送配置命令或者地址以及读取配置数据。而DCLK可以有两种速度,一种20Mhz,另一种40Mhz,且对应的配置方式分别叫AS和Fast AS。只有容量EPCS16及以上的配置芯片支持Fast AS。所以通过提高DCLK时钟速率从而达到减少配置时间的目的。


     最后初始化过程,当所有的配置数据传输完毕以后,FPGA释放config_done信号,该pin被外部10K欧姆电阻上拉到高,FPGA是检测到CONFIG_DONE为高电平后进入到初始化过程。FPGA的初始化时钟源有两种选择,一种是FPGA内部产生DCLK的晶体分出的一个10Mhz的时钟,另一个是通过CLKUSR引脚控制可选时钟。默认情况下FPGA采用内部10Mhz时钟作为初始化时钟,如果要采用第二种时钟,则首先要做QII软件中使能Enable user-supplied start-up clock (CLKUSR) 选项(Settings->Device->Device and pin options...->General->本选项),如下图所示:


点击看大图


当上面可选项被使能以后CLKUSR引脚将作为FPGA初始化时钟源,用户可以在外部给该引脚提供一个时钟用来控制初始化时间。在这种情况下FPGA总共需要299个时钟周期完成初始化,CLKUSR支持最高时钟是100Mhz。Altera没有提供默认情况下初始化的时间(即官方没有提供默认情况下经过多少个10Mhz时钟周期完成初始化),所以一般使能CLKUSR是用来推迟FPGA退出初始化的时间,这里是研究能否通过CLKUSR来减少FPGA的初始化时间,这就必须要求我们获得Altera的官方的默认情况下FPGA的初始化时间。


下图是AS配置模式时序图:


点击看大图


关于上图中初始化时间即tcd2um在配置手册上有一个表里有最大和最小数据分别是100和20,但是该表没有单位,参考PS模式相应的参数,应该是us。也即默认情况下初始化时间最少也要20us,那么使能CLKUSR后初始化最小时间是多少呢?给出公式如下:


tCD2CU + (299 ×CLKUSR period)


上式中tCD2CU为从CONFIG_DONE变高到CLKUSR被使能的时间,手册上AS模式下给出的时间是100ns,所以上式最小值应该是100+299x10=3090ns,即不到4us。


 


     上面讨论的是如何减少FPGA的配置、初始化时间,当然有些应用场合可能需要增加该时间,同样通过以上反过程可以达到目的。

文章评论5条评论)

登录后参与讨论

用户593939 2016-3-5 22:43

写的好,参考和学习了

ilove314_323192455 2010-7-9 15:42

对于CPU,可以做一些软件延时后再对FPGA进行操作

coyoo 2009-11-2 09:38

没错,所以Altera搞了一个可选项,如果你电源做的足够好,那就POR 12ms ^0^。不过这里讨论的不是绝对时间,只是提出一种研究系统中MCU与FPGA之间需要有上电顺序的时候可行的做法。 事实上很多项目应用系统中,CPU和FPGA之间或者DSP和FPGA之间可能需要有一个先后工作的关系管理问题。如果不考虑增加外加电源管理的情况,提出这种通过FPGA自身特性控制各元件之间开始工作的先后顺序。

ilove314_323192455 2009-10-31 10:49

或者说是FPGA判断电源电压达到一个限定值后再延时一些时间

ilove314_323192455 2009-10-31 10:48

个人认为POR时间的长短应该是和上电伊始电源电压稳定过程息息相关的吧

ash_riple_768180695 2009-10-29 08:42

好文章!
相关推荐阅读
coyoo 2024-12-03 12:20
比较器检测模拟脉冲说明(四)
概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解...
coyoo 2024-11-16 13:54
不同ADC采样同一前端模拟信号时转换用时差异分析
概述 同一组前端模拟信号接入由不同型号ADC组成的模数转换电路时,采样后在FPGA中发现采样用时差异较大。本文主要分析这个时间差异形成的原因,并记录该差异产生对系统造成的影响。系统数字化简介 项目前端...
coyoo 2024-11-10 13:04
ALTERA Cyclone 10器件的使用-7:FPGA片内RAM资源利用率思考
概述 项目使用的FPGA目标器件为Cyclone 10 GX系列规模最大一颗料,由于功能升级增加了功能模块更多,发现器件片内RAM不够使用了。为了探索片内RAM使用的利用率问题,从代码RTL级与编译软...
coyoo 2024-11-10 12:30
转知乎:幽灵般的人体成像技术-PET
幽灵般的人体成像技术——PET - 知乎...
coyoo 2024-11-09 10:26
AD9633默认情况下调试记录(二)
概述 所谓默认情况,即如器件手册中图2所标示那样。对应AD9633的调试,除了涉及到ADC自身,还需要兼顾前端驱动器,系统中AD9633驱动器使用了差分运算放大器,这里不在赘述,笔者已有相关文章论述。...
coyoo 2024-11-07 10:40
AD9633默认情况下调试记录(一)
AD9633在旁路SPI接口时如何在FPGA逻辑中确认字边界概述 AD9633与FPGA之间的LVDS接口初调试,ADC可以通过SPI接口对其内部寄存器进行各项配置。在SPI接口未调通之前,对LVDS...
我要评论
5
12
关闭 站长推荐上一条 /2 下一条