【【FPGA的 MicroBlaze 的 介绍与使用 】】

FPGA的 MicroBlaze 的 介绍与使用

在这里插入图片描述

可编程片上系统(SOPC)的设计
在这里插入图片描述

在进行系统设计时,倘若系统非常复杂,采用传统 FPGA 单独用 Verilog/VHDL 语言进行开发的方式,工作量无疑是巨大的,这时调用 MicroBlaze 软核嵌入式处理器 IP 核,将会大大减少开发人员的工作量,从而对于提升工作效率,节约项目成本具有重大意义。采用 FPGA 和 MicroBlaze 进行嵌入式系统设计,可实现多片专用芯片的功能,有利于系统实现小型化、集成化。由于使用 MicroBlaze 软核进行系统搭建时需要利用 FPGA 内部通用资源和相关 IP 核,会占用一定的资源,因此当所要实现的功能较为简单时,则没有必要使用 Microblaze 来实现,传统的 FPGA 设计更具有优势;而当实现的功能较为复杂时(如 GUI 界面的实现),则使用 Microblaze 更具有优势,可以大大提升工作效率。

使用 MicroBlaze 的设计流程
使用 MicroBlaze 进行嵌入式设计包括两部分,分别是硬件设计和软件设计。硬件设计使用到的工具是Xilinx 提供的 Vivado 套件,软件设计使用 Xilix 提供的 Vitis 统一软件平台。在 Vivado 中我们可以在 Block Design 中搭建 MicroBlaze 处理系统,然后生成包含硬件信息的 xsa(Xilinx Shell Archive)文件。利用 xsa 文件在 Vitis 软件中搭建硬件平台,进行软件设计和调试。

在这里插入图片描述

第一步:配置 MicroBlaze 核、其他需要的 IP 核以及外围设备。
第二步:硬件设计执行综合、布局布线等。
第三步:生成 BIT 流文件。
第四步:导出包含硬件信息的 xsa 文件。
第五步:启动 Vitis,创建硬件平台工程和应用工程。
第六步:设计软件并调试。
第七步:编译工程生成 ELF 文件。
第八步:将 bit 和 ELF 文件合并为 download.bit 文件并固化。

MicroBlaze 软核的嵌入式开发流程
在这里插入图片描述

如上图所示,开发流程大体可以分为 6 步。其中 step1 至 step4 为硬件设计部分,在 Vivado 软件中实现;step5 为软件设计部分,在 Vitis 软件中实现;step6 为功能的验证。复杂的程序还涉及 Debug,这个也是在Vitis 软件中实施,具体每一步的操作我们会在后面详细介绍。在简单了解嵌入式系统的开发流程后,接下来我们来看一下什么是嵌入式最小系统。嵌入式最小系统的概念包括以下两个方面:一、它是使系统正常工作的最小条件;二、它是其他系统建立的基础。

在这里插入图片描述

以 MicroBlaze 为核心、LocalMemory(片上存储)为内存,加上传输信息使用的 UART串口就构成了嵌入式最小系统。

当程序比较简单时,Local Memory 可以作为程序的运行空间以及存储空间,空间大小可以根据需要设置最小 8KB 到最大 128KB;当程序比较复杂的时候,我们也可以使用片上搭载的外部存储器(如 DDR3)作为程序的运行空间以及存储空间。

AXI Interconnect IP 核用于将一个(或多个)AXI 存储器映射的主器件与一个(或多个)存储器映射互联。在这里我们解释一下这个术语——互联(Interconnect):互联实际上是一个开关,它管理并指挥所连接的 AXI 接口之间的通信。

实验任务
本章的实验任务是在达芬奇 Pro 开发板上搭建基于 BRAM 的 MicroBlaze 嵌入式最小系统,并使用串口打印“Hello World”信息。
在这里插入图片描述

创建MicroBlaze IP核
在这里插入图片描述
在这里插入图片描述

对于 debug 的 调配
在这里插入图片描述

Run Block Automation

在这里插入图片描述

然后点击 OK 接下来会多产生几个不同的Block
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们现在要用串口打印信息,因此还需添加 Axi Uartlite IP 核
在这里插入图片描述

下面是得出的hello world 的 Block Design
在这里插入图片描述

在自动连接之后 添加了 AXI Interconnect

我们观察整个系统 会发现 有这样的连接
在这里插入图片描述

橙色高亮的两组信号线表明,在这个设计中,AXI 互联实现了由主器件(MicroBlaze)到从器件(AXI Uartlite)一对一的连接。它也可以实现一对多、多对一以及多对多的 AXI 接口连接。本次实验中,AXI Interconnect IP 就实现了 MicroBlaze 与 AXI Uartlite 的互联,MicroBlaze 中产生的数据能够通过 AXI 协议传输到 AXI Uartlite 模块,AXI Uartlite 模块接收的数据也可以通过 AXI 协议传输到MicroBlaze。

一个很大的注意点 :
我们会观察到 为什么在纯 FPGA端 点击之后 我们会需要添加 管脚约束 而在 之前的 zynq 上并没有 很强烈的这种要求
因为 zynq 是 带有 ARM核 的 结构 在底板上 已经把很多 东西接上去 相当于 之前已经配置好了 所以我们并不需要 额外的操作
但是对于软核而言 我们利用了 FPGA的全能性 用内部的机能 构建出了 一个假的但是很正的 CPU 这就是 软核的本质
所以我们 在使用中 我们 需要编排 添加一下 管脚约束

BSP 的 板级验证包在这里
在这里插入图片描述

我们点击进入src文件夹 对.c文件进行分析
在这里插入图片描述

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

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

相关文章

使用gparted进行ubuntu虚拟机的磁盘扩容(解决gparted无法拖动分区的问题)

在学习内核编译下载linux内核源码的时候,由于源码非常大,下载的时候提示磁盘空间不足,我才意识到刚开始创建虚拟机的时候分配了20GB的空间现在已经快用光了。在VM的设置里可以进行扩容,我扩展到了30GB重启却发现空间并没有加到我使…

信贷销售经理简历模板

这份简历内容,以信贷销售经理招聘需求为背景,我们制作了1份全面、专业且具有参考价值的简历案例,大家可以灵活借鉴。 信贷销售经理简历模板在线编辑下载:百度幻主简历 求职意向 求职类型:全职 意向岗位&#xff…

C语言之结构体详解

C语言之结构体详解 文章目录 C语言之结构体详解1. 结构体类型的声明2. 结构体变量的创建和初始化3. 结构体的特殊声明4. 结构体的自引用结构体的自引用匿名结构体的自引用 5. 结构体内存对齐5.1 练习一5.2 练习三 6. 为什么存在内存对⻬? 1. 结构体类型的声明 struct tag {me…

Qt4利用MVC开发曲线数据编辑器

目录 1 需求 2 开发流程 1 搭建框架 2 构造函数 3 打开工程 4 实现应用程序参数加载 5 QCustomPlot和TableView的联动 6 数据的可视化修改 7 列表点击事件事先键盘控制 8 表格实现复制,粘贴,删除等一系列功能 9 曲线实现自适应范围和统一范围…

JVM类加载与运行时数据区

目录 一、类加载器 jvm类的加载过程 第一阶段:加载 第二阶段:链接阶段 第三阶段:初始化阶段: 双亲委派机制 沙箱安全机制 运行时数据区 栈-Xss1m 堆 TLAB 逃逸分析 方法区 常量池中有什么 StringTable为什么要调整位…

如何制作一个数字人?流程是怎样的?

​​虚拟人概念从早期动漫领域的初音未来用一首《甩葱歌》让绿色双马尾的“歌姬”形象火出圈,到洛天依登上央视春晚舞台,再到众多虚拟歌手、虚拟主播、KOL、代言人等活跃于各种情境中。 去年以来,元宇宙和虚拟人技术进入全球科技产业的聚光灯…

鸿蒙HarmonyOS应用开发-ColumnRow组件

1 概述 一个丰富的页面需要很多组件组成,那么,我们如何才能让这些组件有条不紊地在页面上布局呢?这就需要借助容器组件来实现。 容器组件是一种比较特殊的组件,它可以包含其他的组件,而且按照一定的规律布局&#xf…

java第二十六课

数据库多表 多表做到每个表的字段名称不一样 Mysql 关系数据库 结合到商城:用户表 订单表 商品表 商品详情表 用户表:字段: 用户 id:唯一标志用户 用户名称:name 用户性别:sex 用户年龄:age 用户地址:position 用户密码…

wyler水平仪维修WYLER倾角仪维修CH-8405

瑞士WYLER电子水平仪维修;BIueCLINO倾斜度测量仪维修;wyler电子倾角仪维修。 水平仪常见故障及处理方法 1、 仪表通电不工作。 A、检查仪表220V电源端子接线是否正确 B、检查仪表电容是否熔断; C、拧下仪表后的固定螺钉,将表…

五、Linux基础软件安装

目录 1、安装JDK 2、安装Mysql 接下来,我们来学习如何在linux上安装JDK和Mysql,安装之前需要在Linux上提前创建三个目录: mkdir -p /export/software #软件包存放目录 mkdir -p /export/server #安装目录 mkdir -p /export/data #数据存放目录…

机器人AGV小车避障传感器测距

一、A22超声波传感器 该模块是基于机器人自动控制应用而设计的超声波避障传感器,针对目前市场上对于超声波传感器模组盲区大、测量角度大、响应时间长、安装适配性差等问题而着重设计。 具备了盲区小、测量角度小、响应时间短、过滤同频干扰、体积小、安装适配性高…

10-微信小程序 图片 相机 二维码 动画相关API(实现选择相册、拍照、录像、动画)

10-微信小程序 图片 相机 二维码 动画相关API(实现选择相册、拍照、录像、动画) 文章目录 10.1选择图片wx.chooseImage(Object object)object.success 回调函数代码效果 10.2 预览图片wx.previewImage(Object object)代码效果 10.3 相机APICameraContext wx.createCameraContex…