赞
踩
下图为具有FPGA远程更新功能的系统架构:
在FPGA设计中,FPGA固件主要烧录到flash中。
QuickBoot远程更新方案是一种用于FPGA固件远程更新的解决方案;
该方案对固件更新过程的编程算法进行简单调整,将编程错误/中断复的责任置于编程操作上
下图展示了QuickBoot的系统架构框图:
在QuickBoot解决方案中,将Flash Memory划分为以下三个部分:
Critical Switch Word
(详细介绍见章节3.1): QuickBoot配置方法的关键, Critical Switch World
为ON
时,FPGA加载Update Bitstream; Critical Switch World
为OFF
时,FPGA加载Golden BitstreamQuickBoot 配置序列过程如下:
Critical Switch World
地址处读出Critical Switch World
的值,若为ON
,则执行Warm Boot Jump Sequence跳到步骤2加载Update Bitstream;反之Critical Switch World
为OFF
,则忽略Warm Boot Jump Sequence, 跳到步骤3加载Golden BitstreamCritical Switch World
快速确定加载哪个bitstream; 然后读取选中区域的bitstream来配置FPGAUpdate bitstream编程过程决定了QuickBoot方案的健壮性
为了确保QuickBoot方案可靠,Flash编程要确保
Critical Switch World
一定是OFF
;Critical Switch World
才设置为ON
总结: QuickBoot 提供的 QuickBoot Flash Progammer行为说明(VHDL设计功能)
关键开关字是一个特殊的字值。 只有当关键开关字位置包含一个精确的、预定的值时,关键开关字才被认为是ON
。
关键开关字的操作和其特殊的值 与FPGA bistream以及FPGA内建配置逻辑存在一定的关系
Xilinx FPGA配置通过一系列32-bit字完成,这些32-bit字包含:
由Xilinx 设计工具产生的所有bitstream按照顺序由以下部分组成:
BPI Flash:
搜索总线宽度自动检测模式期间,FPGA 会
有效地忽略所有传入数据`,直到识别出有效的总线宽度自动检测模式SPI Flash:
在初始搜索同步字期间,FPGA 会有效地忽略所有传入数据
,直到识别出同步字由于Flash的修改需要擦除操作,并且擦除操作会影响整个Flash segment,因此Flash segment结构决定了 QuickBoot 各部分在Flash内的位置:
BPI Flash
下图所示为 BPI Flash 的 QuickBoot存储映射示例:
SPI Flash
按以下步骤实现QuickBoot参考设计:
QuickBoot flash programmer
模块,实现包含QuickBoot flash programmer
模块的系统接口MakeBpiFlashProgrammerMcsFiles.pl
或MakeSpiFlashProgrammerMcsFiles.pl
脚本(需要安装perl环境),读入fpga_design.mcs文件,并指定Image Size,生成fpga_design_init.mcs 以及fpga_design_update.mcs文件QuickBoot flash programmer
模块的系统接口写入FlashCopyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。