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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/923429.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

技术文档,they are my collection!

工作 今天这篇文章,献给一直撰写技术文档的自己。我自认为是公司中最爱写文档的人了,我们是一个不到40人的小公司,公司作风没有多么严谨,领导也不会要求我们写技术文档。但是从入职初至今,我一直保持着写技术文档…

微信小程序学习指南从入门到精通

🗽微信小程序学习指南从入门到精通🗽 🔝微信小程序学习指南从入门到精通🔝✍前言✍💻微信小程序学习指南前言💻一、🚀文章列表🚀二、🔯教程文章的好处🔯1. ✅…

JavaWeb——SpringBoot原理

10.1. 配置优先级 10.1.1. 配置文件 properties > yml(推荐) > yaml 10.1.2. Java系统属性、命令行参数 命令行参数 > Java系统属性 > 配置文件 10.2. Bean管理 10.2.1. 手动获取bean ApplicationContext,IOC容器对象 10.2.2. bean作用域 10.2.3.…

如何在Python中进行数学建模?

数学建模是数据科学中使用的强大工具,通过数学方程和算法来表示真实世界的系统和现象。Python拥有丰富的库生态系统,为开发和实现数学模型提供了一个很好的平台。本文将指导您完成Python中的数学建模过程,重点关注数据科学中的应用。 数学建…

OCR技术详解:从基础到应用

OCR技术详解:从基础到应用 引言 OCR技术的定义 OCR(Optical Character Recognition,光学字符识别)是一种将印刷或手写文本转换为机器可读文本的技术。通过OCR技术,计算机可以自动识别图像中的文字,并将其…

webrtc视频会议学习(三)

文章目录 关联:源码搭建coturn服务器nginx配置ice配置需服务器要开放的端口 效果 关联: webrtcP2P音视频通话(一) webrtcP2P音视频通话(二) webrtc视频会议学习(三) 源码 WebRTC…

【从零开始的LeetCode-算法】43. 网络延迟时间

有 n 个网络节点,标记为 1 到 n。 给你一个列表 times,表示信号经过 有向 边的传递时间。 times[i] (ui, vi, wi),其中 ui 是源节点,vi 是目标节点, wi 是一个信号从源节点传递到目标节点的时间。 现在,…

数据结构--AVL树(平衡二叉树)

✅博客主页:爆打维c-CSDN博客​​​​​​ 🐾 🔹分享c、c知识及代码 🐾 🔹Gitee代码仓库 五彩斑斓黑1 (colorful-black-1) - Gitee.com 一、AVL树是什么?(含义、性质) 1.AVL树的概念 AVL树是最…

sunshine和moonlight串流网络丢失帧高的问题(局域网)

注:此贴结果仅供参考 场景环境:单身公寓 路由器:2016年的路由器 开始:电脑安装sunshine软件,手机安装moonlight软件开始串流发现网络丢失帧发现巨高 一开始怀疑就是路由器问题,因为是局域网,而…

STM32F103外部中断配置

一、外部中断 在上一节我们介绍了STM32f103的嵌套向量中断控制器,其中包括中断的使能、失能、中断优先级分组以及中断优先级配置等内容。 1.1 外部中断/事件控制器 在STM32f103支持的60个可屏蔽中断中,有一些比较特殊的中断: 中断编号13 EXTI…

解决SSL VPN客户端一直提示无法连接服务器的问题

近期服务器更新VPN后,我的win10电脑一致无法连接到VPN服务器, SSL VPN客户端总是提示无法连接到服务端。网上百度尝试了各种方法后,终于通过以下设置方式解决了问题: 1、首先,在控制面板中打开“网络和共享中心”窗口&…

从零开始:Linux 环境下的 C/C++ 编译教程

个人主页:chian-ocean 文章专栏 前言: GCC(GNU Compiler Collection)是一个功能强大的编译器集合,支持多种语言,包括 C 和 C。其中 gcc 用于 C 语言编译,g 专用于 C 编译。 Linux GCC or G的安…

小程序-基于java+SpringBoot+Vue的网上花店微信小程序设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

Transformer:一种革命性的序列到序列学习框架

目录 ​编辑 引言 Transformer模型的基本结构 1. 自注意力机制 2. 前馈神经网络 3. 位置编码 Transformer的工作原理 Transformer的应用 机器翻译 文本摘要 问答系统 文本分类 语音识别 图像识别 结论 引言 Transformer模型,自2017年由Vaswani等人提…

轮转数组(java)

题目描述 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,…

【vue3实现微信小程序】每日专题与分页跳转的初步实现

快速跳转: 我的个人博客主页👉:Reuuse博客 新开专栏👉:Vue3专栏 参考文献👉:uniapp官网 免费图标👉:阿里巴巴矢量图标库 ❀ 感谢支持!☀ 前情提要 &#x…

【优先算法学习】双指针--结合题目讲解学习

目录 1.有效三角形的个数 1.2题目解题思路 1.3代码实现 2.和为s的两个数 2.1刷题链接-> 2.2题目解题思路 2.3代码实现 1.有效三角形的个数 1.1刷题链接-> 力扣-有效三角形的个数https://leetcode.cn/problems/valid-triangle-number/description/ 1.2题目解…

云服务器部署WebSocket项目

WebSocket是一种在单个TCP连接上进行全双工通信的协议,其设计的目的是在Web浏览器和Web服务器之间进行实时通信(实时Web) WebSocket协议的优点包括: 1. 更高效的网络利用率:与HTTP相比,WebSocket的握手只…

前端---HTML(一)

HTML_网络的三大基石和html普通文本标签 1.我们要访问网络,需不需要知道,网络上的东西在哪? 为什么我们写,www.baidu.com就能找到百度了呢? 我一拼ping www.baidu.com 就拼到了ip地址: [119.75.218.70]…

网络基础 - IP 隧道篇

在一个如图所示的网络环境里,网络 A、B 使用 IPv6,如果处于中间位置的网络 C 支持使用 IPv4 的话,网络 A 与网络 B 之间将无法直接进行通信,为了让它们之间正常通信,这时必须得采用 IP 隧道的功能,IP 隧道中…