通过生成mcs、bin文件将程序固化到FPGA

通过将程序固化到FPGA,可以做到断电不丢失程序,上电之后就自动启动程序的作用,整个固化步骤主要分为3步,一是修改约束文件,二是生成mcs或bin文件,三是将程序固化到开发板flash

1.修改约束文件

生成固化文件之前,首先需要在约束文件内添加一段原语,添加这段原语的目的主要是为了生成的 bit 流文件转换成固化文件后能够适用于 4bit 位宽 SPI 通信的flash 器件(这里的4位宽以及SPI通信都是根据板载flash决定的)。

set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property BITSTREAM.GENERAL.COMPRESS true [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property BITSTREAM.CONFIG.SPI_FALL_EDGE Yes [current_design]

将这段代码直接添加到约束文件最下方即可。

2.生成mcs或bin文件

生成mcs文件

生成mcs文件有两种方法

方法1

Tools栏位内点击 Generate Memory Configuration File

 format用于选择生成文件的类型,这里我们选择mcs

custom memory size(MB)选择flash的容量,根据自己的开发板确定,这里读说明书的时候要注意MB(MByte)和Mb(Mbit)的区别,MB与Mb相差8倍,MB * 8 = Mb

filename这里选择保存文件位置,注意这里选择文件夹是不行的,需要选择一个mcs文件或是手动添加一个/filename用于生成mcs文件

interface用于选择接口类型,也是根据自己的开发板flash说明书决定

load bitstream file勾选上后可以选择比特流文件

write checksum表示写校验

disable bit swapping表示禁止位交换

overwrite表示覆盖原文件

点击ok即可生成mcs文件。

方法2

直接在tcl命令行内输入以下内容

write_cfgmem -format mcs -size 16 -interface SPIx4 -loadbit {up 0x00000000 "C:/Software/Vivado2019.1/project/project_1/project_1.runs/impl_1/ctr.bit" } -checksum -force -disablebitswap -file "C:/Software/Vivado2019.1/project/project_1/project_1.runs/impl_1/ctr1."

实现的功能和方法1一样,不过是通过指令进行控制

成功之后会显示信息 

现在回过头来看方法1,我们会发现配置界面最下方有个command栏后面跟的就是我们直接在tcl输入的内容,也就是说Generate Memory Configuration File的作用就是辅助我们生成命令行指令

生成bin文件

生成bin文件也有两种方法

方法1

同生成mcs文件的方法1,在format栏内选择bin文件类型即可

方法2

点击setting

在bitstream页面勾选bin_file选项,点击apply后点击ok

勾选上之后,我们在生成bitstream的同时会生成bin文件,这里我们重新生成bitstream既可

 

3.将程序固化到flash

固化程序需要我们先将开发板连接到电脑

 如图,右击我们的芯片型号后选择add configuration memory device

 这里需要根据自己开发板上的flash型号选择对应的,添加完flash后即可选择文件写入flash

然后添加mcs文件以及prm文件(prm文件随mcs文件同时生成,是一种日志文件)既可

bin文件的使用与mcs相同,只是不需要选择prm文件

至此,程序固化完成,断电后重新上电即可进行测试

当我们选择flash型号之后,我们就可以在开发板连接页面看见芯片型号下面多了一个flash的名称,此时,我们通过直接右击flash名称进行程序的固化,减少了选择flash型号的步骤

4.擦除固化程序

最后,如果我们想要擦除固化的程序,只需要在添加mcs/bin文件的页面内单独勾选erase即可

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

弟12章 网络编程

文章目录 网络协议概述 p164TCP协议与UDP协议的区别 p165TCP服务器端代码的编写 p166TCP服务器端流程 TCP客户端代码的编写 p167TCP客户端流程主机和客户端的通信流程 tcp多次通信服务器端代码 p168TCP多次通信客户端代码 p169UDP的一次双向通信 p170udp通信模型udp接收方代码u…

Git核心知识总结

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 工具教程 ✨特色专栏: MyS…

车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 基本假设 4.2 运动学方程 5.完整工程文件 1.课题概述 车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程. 2.系统仿真结果 3.核心程序与模型 版本:MATLAB2022a .…

【HarmonyOS】消息通知场景的实现

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

adb 常用命令汇总

目录 adb 常用命令 1、显示已连接的设备列表 2、进入设备 3、安装 APK 文件到设备 4、卸载指定包名的应用 5、从设备中复制文件到本地 6、将本地文件复制到设备 7、查看设备日志信息 8、重启设备 9、截取设备屏幕截图 10、屏幕分辨率 11、屏幕密度 12、显示设备的…

Druid连接池报错

网上各种方法都试了,基本都不行,后来改了一下jar包版本,也就是第四点,才解决。 1、druid.properties文件位置 我学的时候说的是任意位置都行,除了web目录下,但是我试的时候必须要放在resources 文件夹下。…

黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(5)登录认证

指路(1)(2)(3)(4)👇 黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(1)准备工作、部门管理_tlias智能学习辅助系统的需求分析-CS…

python学习笔记10(选择结构2、循环结构1)

(一)选择结构2 1、if……else……语句 #(1)基本格式 numbereval(input("请输入您的6位中奖号码:")) if number123456:print("恭喜您,中奖了") else:print("未中奖")#&…

2024美赛数学建模思路 - 案例:FPTree-频繁模式树算法

文章目录 算法介绍FP树表示法构建FP树实现代码 建模资料 ## 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模式树算法&#xff0c…

深度解析JVM类加载器与双亲委派模型

概述 Java虚拟机(JVM)是Java程序运行的核心,其中类加载器和双亲委派模型是JVM的重要组成部分。本文将深入讨论这两个概念,并解释它们在实际开发中的应用。 1. 什么是类加载器? 类加载器是JVM的一部分,负…

java-Lambda 语法总结

文章目录 Lambda 语法概览Lambda 表达式语法1.Lambda 表达式与函数接口2.Lambda 遇上 this final Lambda 语法概览 String(] names {”Justi n ”,”caterpillar”,”Bush " }; Arrays . sort (names, new Compara tor<String> () { publ int compare (String na…

pytorch12:GPU加速模型训练

目录 1、CPU与GPU2、数据迁移至GPU2.1 to函数使用方法 3、torch.cuda常用方法4、多GPU并行运算4.1 torch.nn.DataParallel4.2 torch.distributed加速并行训练 5、gpu总结 往期回顾 pytorch01&#xff1a;概念、张量操作、线性回归与逻辑回归 pytorch02&#xff1a;数据读取Data…

WordPress企业模板

首页大图wordpress外贸企业模板 橙色的wordpress企业模板 演示 https://www.zhanyes.com/waimao/6250.html

【算法Hot100系列】全排列

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

【学习iOS高质量开发】——熟悉Objective-C

文章目录 一、Objective-C的起源1.OC和其它面向对象语言2.OC和C语言3.要点 二、在类的头文件中尽量少引用其他头文件1.OC的文件2.向前声明的好处3.如何正确引入头文件4.要点 三、多用字面量语法&#xff0c;少用与之等价的方法1.何为字面量语法2.字面数值3.字面量数组4.字面量字…

vivado IP使用

使用IP源 注意&#xff1a;有关IP的更多信息&#xff0c;包括添加、打包、模拟和升级IP&#xff0c;请参阅VivadoDesign Suite用户指南&#xff1a;使用IP&#xff08;UG896&#xff09;进行设计。在Vivado IDE中&#xff0c;您可以在RTL项目中添加和管理以下类型的IP核心&…

高通sm7250与765G芯片是什么关系?(一百八十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

HTML--CSS--边框、列表、表格样式

边框样式 属性&#xff1a; border-width 边框宽度 border-style 边框外观 border-color 边框颜色 需要同时设定三个属性 border-width 边框宽度 取值为像素值 border-style 边框样式 none 无样式 dashed 虚线 solid 实线 border-color 边框颜色 如示例&#xff1a; 为div设…

Spring Boot框架中Controller层API接口如何支持使用多个@RequestBody注解接受请求体参数

一、前言 众所周知&#xff0c;在Spring Boot框架中&#xff0c;Controller层API接口编码获取请求体参数时&#xff0c;在参数上会使用RequestBody注解&#xff1b;如果一次请求中&#xff0c;请求体参数携带的内容需要用多个参数接收时&#xff0c;能不能多次使用RequestBody…

跟我学java|Stream流式编程——并行流

什么是并行流 并行流是 Java 8 Stream API 中的一个特性。它可以将一个流的操作在多个线程上并行执行&#xff0c;以提高处理大量数据时的性能。 在传统的顺序流中&#xff0c;所有的操作都是在单个线程上按照顺序执行的。而并行流则会将流的元素分成多个小块&#xff0c;并在多…