辉煌 发表于 2017-6-21 10:07:48

FPGA远程更新重启系统(2)

ii)FPGA重启模块ICAP

ICAP_VIRTEX6为用户逻辑提供FPGA加载功能,它的功能与普通上点加载用的SELECTMAP加载功能相同。接口信号见表表2:ICAP_VIRTEX6接口信号






通过ICAP_VIRTEX6,用户逻辑可以发指令让FPGA从指定的位置重新加载配置文件。加载指令的发送顺序为,

1.发同步字

2.将要加载文件的起始地址写道WBSTAR寄存器(Warm Boot Start Address Register)

3.发送IPROG指令

4.FPGA从WBSTAR寄存器指定地址开始读取配置数据。

下面是一个控制ICAP从地址80000重加载例子






4)远程更新的可靠性

在远程更新过程中有多种原因可以造成远端的配置文件出错。比如数据传输错误,所以在跟新完成之后需要回读校验。为了减少传输负载可以采用CRC校验。但是如果在版本更新过程中出现掉电或系统重启,由于非易失存储器中的配置影像文件已经被破坏,远程终端将无法启动。为了避免这种情况的发生,远程终端需要有2套配置文件,当一套配置文件出错时,系统可以回退到备份配置文件启动。这样就可以保证当系统出错时,远程终端仍可以启动,接受控制中心发出的版本更新指令重新进行更新。

内部发重启过程和状态

第1步:第一次FPGA被正确配置,状态如下






在FALLBACK时,配置文件中的IPROG命令不再起作用。
页: [1]
查看完整版本: FPGA远程更新重启系统(2)