有些系统有上电顺序要求,这里要讨论的不是各种电源的上电顺序(电源上电顺序可以通过电源管理芯片实现),而是如何控制系统中不同主芯片开始工作的顺序。比如这么一个系统,硬件设计为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信号被外部上拉电阻拉高,由此进入配置过程。
其次配置过程,FPG