用于FPGA远程更新的QuickBoot方法

这篇具有很好参考价值的文章主要介绍了用于FPGA远程更新的QuickBoot方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用于FPGA远程更新的QuickBoot方法

1. 远程更新简介

下图为具有FPGA远程更新功能的系统架构:
在FPGA设计中,FPGA固件主要烧录到flash中。
fpga远程更新,FPGA,fpga开发

2 QuickBoot方案

QuickBoot远程更新方案是一种用于FPGA固件远程更新的解决方案;
该方案对固件更新过程的编程算法进行简单调整,将编程错误/中断复的责任置于编程操作上

下图展示了QuickBoot的系统架构框图:

  • Factory / Design Center:
    • Vivado 生成Bitstream
    • 将Bitstream 转换成 Memory Configuration File (.mcs)
    • 使用QuickBoot方案提供的Perl脚本添加CRC数据,并产生新的 Memory Configuration File
  • Remote System:
    • Remote Host, 远程更新接口(如以太网、PCIe、USB等)
    • QuickBoot Flash Progammer, VHDL code(QuickBoot提供)
  • Flash Memory: (QuickBoot 方案中 Flash模型)
    • QuickBoot Header Area
    • Golden Image Area
    • Update Image Area
      fpga远程更新,FPGA,fpga开发

2.1 QuickBoot配置方法

在QuickBoot解决方案中,将Flash Memory划分为以下三个部分:

  • Special QuickBoot Head (特殊的QuickBoot头)
    • Critical Switch Word(详细介绍见章节3.1): QuickBoot配置方法的关键, Critical Switch WorldON时,FPGA加载Update Bitstream; Critical Switch WorldOFF时,FPGA加载Golden Bitstream
    • Warm Boot Jump Sequence
  • Golden Bitstream Image Area
  • Update Bitstream Image Area

QuickBoot 配置序列过程如下:

  1. 从Flash 地址0处开始读数据; 从Critical Switch World地址处读出Critical Switch World的值,若为ON,则执行Warm Boot Jump Sequence跳到步骤2加载Update Bitstream;反之Critical Switch WorldOFF,则忽略Warm Boot Jump Sequence, 跳到步骤3加载Golden Bitstream
  2. Configure with the update bitstream:
    1. Jump to update bitstream area
    2. Load the bitstream from the update bitstream area.
  3. Configure with the golden bitstream:
    1. 继续按照Flash存储器地址顺序读取 Golden bitstream area数据
    2. Load the bitstream from the golden bitstream area
      fpga远程更新,FPGA,fpga开发
      总结: QuickBoot配置方法可以通过Critical Switch World快速确定加载哪个bitstream; 然后读取选中区域的bitstream来配置FPGA

2.2 QuickBoot Flash 编程方法

Update bitstream编程过程决定了QuickBoot方案的健壮性

为了确保QuickBoot方案可靠,Flash编程要确保

  • 在尝试对Update bitstream进行任何更改之前, Critical Switch World一定是OFF
  • 只有在验证Update bitstream已经被正确编程之后, Critical Switch World才设置为ON
  • 为了在所有情况下的完整性,不能修改QuickBoot Header 中Warm Boot Jump Sequence 以及 Golden Image

总结: QuickBoot 提供的 QuickBoot Flash Progammer行为说明(VHDL设计功能)

3.QuickBoot实现

3.1 Critical Switch World (key point)

关键开关字是一个特殊的字值。 只有当关键开关字位置包含一个精确的、预定的值时,关键开关字才被认为是ON

关键开关字的操作和其特殊的值 与FPGA bistream以及FPGA内建配置逻辑存在一定的关系

Xilinx FPGA配置通过一系列32-bit字完成,这些32-bit字包含:

  • Bus width auto detection word
  • Sync word
  • Packet header word
  • Packet command or data words for each packet.

由Xilinx 设计工具产生的所有bitstream按照顺序由以下部分组成:

  1. Bus width auto detection word
  2. Sync word
  3. data packets that define the FPGA configuration

BPI Flash:

  • FPGA 配置逻辑保持在初始阶段,直到FPGA在BPI Flash D[0:7] 引脚上检测到0xBB 数据值(从总线宽度自动检测模式的第一个字开始)
  • 在FPGA初始搜索总线宽度自动检测模式期间,FPGA 会有效地忽略所有传入数据`,直到识别出有效的总线宽度自动检测模式
  • 因此,BPI类型的Flash,总线宽度自动检测模式 0x000000BB 的第一个字是 QuickBoot 方法的关键开关字
    (注:关键开关字位置不是总线宽度自动检测字时,FPGA内建配置程序就忽略warm boot jump sequence)

SPI Flash:

  • FPGA 配置逻辑保持在初始阶段,监视传入数据中的同步字 0xAA995566 ,以实现自身与传入比特流的 32 位字的边界同步
  • 在初始搜索同步字期间,FPGA 会有效地忽略所有传入数据,直到识别出同步字
  • 因此,SPI类型Flash, 将同步字作为QuickBoot方案的关键开关字
    (注:关键开关字位置不是同步字时,FPGA内建配置程序就忽略warm boot jump sequence)
    fpga远程更新,FPGA,fpga开发

3.2 QuickBoot存储映射

由于Flash的修改需要擦除操作,并且擦除操作会影响整个Flash segment,因此Flash segment结构决定了 QuickBoot 各部分在Flash内的位置:

  1. QuickBoot Header
    a. QuickBoot Header part 1——Critical Switch World, 放置在单独的可擦除segment
    b. QuickBoot Header part 2——Warm Boot Jump Sequence, 紧随part1,但处于与part 1部分不同的可擦除segment
  2. Golden bitstream image在Flash存储阵列中紧随QuickBoot Header之后 , Xilinx设计工具产生的标准bitstream(即包含bus width auto detetced word and sync word)
  3. Update bitstream image存放在自己独立的可擦除segment; Update Bitstream image 和Golden bitstream image不共享任何可擦除segment

BPI Flash

下图所示为 BPI Flash 的 QuickBoot存储映射示例:

  • 第一列(最左侧)为 Good Update Bitstream情况
  • 第二列为Bad Update bitstream情形
  • 第三列为Flash 各Segment或地址内数据详细说明
  • 第四列为Flash 对应的QuickBoot Flash模型中的部分
    fpga远程更新,FPGA,fpga开发

SPI Flash
fpga远程更新,FPGA,fpga开发

3.3 Bitstream Image 大小与Flash存储大小选择

  • Flash存储至少要大于Line 10的结果;
  • 每个Bitstream image的大小要大于line 8的结果
    fpga远程更新,FPGA,fpga开发

4. QuickBoot参考设计实现指南

按以下步骤实现QuickBoot参考设计:文章来源地址https://www.toymoban.com/news/detail-717699.html

  1. QuickBoot 硬件准备 (连接Flash)
    • QuickBoot 仅支持部分类型Flash
  2. FPGA设计中例化QuickBoot flash programmer模块,实现包含QuickBoot flash programmer模块的系统接口
  3. 产生QuickBoot文件(golden image file)
    a. Vivado生成 bitstream,然后再生成fpga_design.mcs文件
    b. 运行MakeBpiFlashProgrammerMcsFiles.plMakeSpiFlashProgrammerMcsFiles.pl脚本(需要安装perl环境),读入fpga_design.mcs文件,并指定Image Size,生成fpga_design_init.mcs 以及fpga_design_update.mcs文件
    c. 若是golden设计,则将fpga_design_init.mcs文件固化到fpga中; 反之若是update设计,则需要将fpga_design_update.mcs内容通过QuickBoot flash programmer模块的系统接口写入Flash

参考

  1. https://docs.xilinx.com/v/u/en-US/xapp1081-quickboot-remote-update

到了这里,关于用于FPGA远程更新的QuickBoot方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用于 ChatGPT 的 FPGA 加速大型语言模型

            近年来,大型语言模型 (LLM) 彻底改变了自然语言处理领域,使机器能够生成类似人类的文本并进行有意义的对话。这些模型,例如 OpenAI 的 GPT,具有惊人的理解和生成语言的能力。它们可用于广泛的自然语言处理任务,包括文本生成、翻译、摘要、情感分析等

    2024年02月04日
    浏览(47)
  • 用FPGA实现四通道、全频率 GNSS RF 接收器-用于卫星的精确定位

    全球导航卫星系统(英文:Global Navigation Satellite System,GNSS ),又称全球卫星导航系统,是能在地球表面或近地空间的任何地点为用户提供全天候的3维坐标和速度以及时间信息的空基无线电导航定位系统。其包括一个或多个卫星星座及其支持特定工作所需的增强系统。 全球

    2024年02月04日
    浏览(47)
  • 【USRP X310】如何将你的X310转化为USRP RIO 可以用于FPGA编程

    NI-USRP Ettus X310 USRP-2940R X310 + WBX (x2) USRP-2942R X310 + SBX (x2) USRP-2943R X310 + CBX (x2) USRP-2944R X310 + UBX (x2) USRP-2945R X310 + TwinRX (x2) USRP-2950R X310 + WBX (x2) + GPSDO USRP-2952R X310 + SBX (x2) + GPSDO USRP-2953R X310 + CBX (x2) + GPSDO USRP-2954R X310 + UBX (x2) + GPSDO USRP-2955R X310 + TwinRX (x2) + GPSDO NI发布的USRP版本事封

    2024年02月05日
    浏览(37)
  • FPGA协议篇:UART通信及Verilog最易懂实现方式/通用于任何工程/带握手信号 ----UART_TX

            UART(Universal Asynchronous Receiver/Transmitter)是一种通用的 异步收发传输协议 ,用于在计算机系统和外部设备之间进行串行数据传输。UART 协议定义了数据的传输格式和通信规则,使得不同设备之间能够进行可靠的数据交换。 首先先把设计代码放到这里: UART_TX完整代

    2024年03月27日
    浏览(52)
  • FPGA 与 数字电路的关系 - 这篇文章 将 持续 更新 :)

    先说几个逻辑:(强调一下在这篇文章 输入路数 只有 1个或2个,输出只有1个, N个输入M个输出以后再说 ) 看下面的几个图: 图一( 忘了 这是 啥门,不是门吧 :)也就是信号增强器吧 ) 图二(非门) 图三(2入一出 与门) 图四 (2入 1出 或门) 上面的几个图中 0 低电

    2024年03月15日
    浏览(60)
  • 【FPGA数据采集测试系统】——基于FPGA的通用数据采集测试系统是当今数字电路领域最热门的研究课题之一。它不仅可以用于数字信号处理,而且也被广泛应用于音频、视...

    【FPGA数据采集测试系统】——基于FPGA的通用数据采集测试系统是当今数字电路领域最热门的研究课题之一。它不仅可以用于数字信号处理,而且也被广泛应用于音频、视频以及其他多媒体领域。 此外,基于FPGA的数据采集测试系统还可以用于传感器接口、机器视觉、自动控制

    2024年02月09日
    浏览(47)
  • FPGA新起点V1开发板(三)——Quartus II软件的使用(流水灯的烧录以及sof转jic的方法记录)

    先创建一个工程文件夹 flow_led 再创建四个子文件夹 doc存放工程的设计文档或者其他一些datasheet文档、数据手册 par存放工程文件 rtl存放设计文件,也就代码 sim存放工程的仿真文件 第一个第四个可以为空,但是做此可以有良好的习惯 这是打开一个工程向导 这是选择FPGA的芯片

    2024年02月04日
    浏览(43)
  • 【Intel/Altera】 全系列FPGA最新汇总说明,持续更新中

            2023年11月14日英特尔 FPGA中国技术日, Intel刚发布了新的FPGA系列 ,官网信息太多,我这里结合以前的信息, 简单汇总更新一下,方便大家快速了解Intel/Altera FPGA家族。   目录 前言 Altera和Intel 型号汇总 1. Agilex 系列 1.1英特尔® Agilex™ 7 FPGA 和 SoC FPGA 1.2英特尔® Ag

    2024年02月04日
    浏览(53)
  • Fpga开发笔记(二):高云FPGA发开发软件Gowin和高云fpga基本开发过程

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/135620590 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中… 上一篇:《Fpga开发笔记(一):

    2024年01月16日
    浏览(73)
  • FPGA:我的零基础学习路线(2022秋招已上岸)持续更新中~

    初次接触FPGA是在2022年3月左右,正处在研二下学期,面临着暑假找工作,周围的同学大多选择了互联网,出于对互联网的裁员形势下,我选择了FPGA,对于硬件基础知识我几乎是没有的,最初我还很担心要补的硬件知识太多了,但是慢慢发现需要的硬件知识不算多,用到哪里就

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包