FPGA是基于SRAM的架构,所以具有SRAM的特点:数据掉电丢失。因此,FPGA每次重新上电后,需要重新写入配置数据。根据码流载入的方式,可以将配置模式分为两大类:

  1. 通过JTAG直接下载到FPGA中,每次重新上电都需要再下载一遍。  (JTAG配置模式)

  2. 固化/sysCONFIG加载方式。配置数据存储在外部非易失存储器中,上电后再加载到FPGA中。(主串、主并、从并、从串)

(题外话:  CPLD基于非易失性器件(EEPROM   FLASH),因此掉电不丢失。所以它的上电不需要配置加载,上电速度快。某些FPGA内部内部集成了Flash,声称CPLD,实则上电仍需要从Flash中加载配置信息,并不能真正意义上称其为CPLD)

 

具体:

  1. 调试阶段常用直接下载的方式。

    FPGA的加载配置_加载配置

 

     如图是基于JTAG的下载配置方式

 

  2. 固化/sysCONFIG

    FPGA掉电数据仍丢失,但是可以把配置信息存储到非易失器件里,当FPGA上电后,再从该器件里读取配置数据,就可以重新加载FPGA了。 

  根据谁提供时钟, 分为  FPGA主动加载(master) 和 从加载(slave);

  根据加载的数据位宽  分为 串行(serial)  和 并行(parallel)  ;

  思想都是:    把需要的配置信息存在掉电不丢失的器件里,  FPGA上电后, 把信息取出来 。    只是存的器件,取的方式可能有很多分类。

  例如,FPGA主动向外部的SPI Flash请求数据,这种配置方式可称为Master_SPI