当前位置: 首页 > article >正文

Vivado程序固化到Flash

在上板调试FPGA时,通常使用JTAG接口下载程序到FPGA芯片中,FPGA本身是基于RAM工艺的器件,因此掉电后会丢失芯片内的程序,需要重新烧写程序。但是当程序需要投入使用时不能每一次都使用JTAG接口下载程序,一般FPGA的外围会有非易失性存储器:Flash或SD卡等,可以将程序加载进去,这样下次上电后可以直接从该存储器中读取程序并启动配置。

在使用Vivado固化程序时,通常有两种文件格式可以进行固化:

文件生成方式:

  • .bin文件‌:.bin文件是纯二进制文件,按顺序只包含原始字节流,用于烧写进flash中。在Vivado中,生成.bin文件需要在设置中勾选“-bin_file”选项‌。
  • ‌.mcs文件‌:.mcs文件是ASCII格式的文本文件,由行组成,每一行包含起始码、字节长度、地址、记录类型、数据和校验码。Vivado中生成.mcs文件需要通过“Generate Memory Configuration File”选项,并选择相应的flash型号和bit文件‌。

存储方式和用途:

  • .bin文件‌:烧写到flash中后,上电加载会自动加载到FPGA中。由于.bin文件是二进制格式,不需要解析,直接读取后写入即可,因此适用于不需要解析的场景‌。
  • ‌.mcs文件‌:同样烧写到flash中,上电后会自动加载到FPGA中。由于.mcs文件包含头部信息和校验码,写入速度相对较慢,但每行末尾的校验和确保了数据的完整性‌。

适用情况:

  • .bin文件‌:适用于不需要解析的场景,如通过其他方式更新FLASH内容时使用‌。
  • ‌.mcs文件‌:适用于需要校验和确保数据完整性的场景,特别是在JTAG烧录时使用‌。

下面介绍使用MCS文件固化程序的方法:

1、确保工程能正常工作并生成Bit流文件
在这里插入图片描述
2、生成Bit流文件后连接硬件
在这里插入图片描述
点击Open Target>Auto Connect:
在这里插入图片描述
在这里插入图片描述
启动配置生成的比特流文件以及进行 debug 的 ltx 文件,一般来说软件会自动选择的
在这里插入图片描述
3、连接好目标器件后,接下来生成存储配置文件.mcs文件和.prm文件,点击菜单栏Tools>Generate Memory Configuration File…。

  • .mcs文件:内存配置文件,主要用于将设计下载到FPGA或SoC设备上。
  • .prm文件:项目链接文件,主要用于定义芯片的内存布局和初始化变量。

在这里插入图片描述
进入配置界面:
在这里插入图片描述
等待文件生成完成
在这里插入图片描述
对应路径下生成的文件:
在这里插入图片描述
4、确保下载器和目标器件已经连接好,打开硬件连接,选中目标器件添加配置存储设备
在这里插入图片描述
在这里插入图片描述
5、点击OK直接进入固化配置界面:
在这里插入图片描述
在这里插入图片描述
等待固化完成:
在这里插入图片描述
固化完成后重新将开发板上电,FPGA芯片就会从Flash读取程序进行配置了。

程序固化过程中可能会出现报错:[Labtools 27-3347] Flash Programming Unsuccessful: Byte 169320 does not match (00 != B2)
解决方法参考这篇文章:Vivado程序固化到Flash时报错:[Labtools 27-3347] Flash Programming Unsuccessful: Byte 169320 does not match


http://www.kler.cn/a/418683.html

相关文章:

  • Xilinx FPGA内部资源组成和说明汇总
  • 如何使用Spring Boot进行Web开发?
  • 支持向量机算法:原理、实现与应用
  • Attention显存统计与分析
  • Linux设置开启启动脚本
  • 【聚类】K-Means 聚类(无监督)及K-Means ++
  • 「Mac畅玩鸿蒙与硬件34」UI互动应用篇11 - 颜色选择器
  • 【VUE3】【Naive UI】<NCard> 标签
  • Redis 3 种特殊数据类型详解
  • 详解Qt 之QSwipeGesture手势滑动
  • unity中:Unity 中异步与协程结合实现线程阻塞的http数据请求
  • OGRE 3D----2. QGRE + QQuickView
  • 【博主推荐】C#中winfrom开发常用技术点收集
  • 如何在 Ubuntu 16.04 上使用 GitLab CI 设置持续集成流水线
  • 基于ZYNQ-7000系列的FPGA学习笔记3——开发环境搭建点亮一个LED
  • 1.2 算法和算法评价
  • 计算机网络之传输层协议UDP
  • com.intellij.diagnostic.PluginException……[Plugin: hg4idea]
  • RabbitMQ在手动消费的模式下设置失败重新投递策略
  • Spring Data JPA(三) 原理分析
  • 科研学习|论文解读——基于旅游知识图谱的游客偏好挖掘和决策支持
  • 网络安全究竟是什么? 如何做好网络安全
  • 第十三周:密集嵌入算法(skip-gram)(word2vec)和嵌入语义特性
  • 【无标题】你的 github 项目,用的什么开源许可证
  • 【VUE】el-table表格内输入框或者其他控件规则校验实现
  • 学习笔记:黑马程序员JavaWeb开发教程(2024.11.28)