MicroBlaze软核开发(一):Hello World

实现功能:使用 MicroBlaze软核 串口打印 Hello World

Vivado版本:2018.3

目录

MicroBlaze介绍

vivado部分:

一、新建工程

二、配置MicroBlaze

三、添加Uart串口IP

四、生成HDL文件编译

SDK部分:

一、导出硬件启动SDK

二、新建应用程序工程

三、烧录

四、串口测试

MicroBlaze介绍

        MicroBlaze 是由 Xilinx 开发的一种可配置的 32 位 RISC 软处理器内核,是用 Vivado 进行FPGA 设计时可调用的IP核。MicroBlaze 使得开发人员可以使用 C/C++、汇编语言或 RTL 设计语言进行开发。将 MicroBlaze 应用于 FPGA 的整体思路是结合软硬件各自的优点,通过灵活的设计、快速的原型制作以及高效的资源利用,更好地实现和管理复杂的嵌入式系统。

       举个例子,FPGA不同于Zynq:Zynq 集成了 ARM 处理器作为硬核,可软硬件同时开发。而FPGA没有硬核,因此可以将 MicroBlaze 作为软核,用 Vivado 进行 FPGA 部分设计,用 SDK 开发框架作为软件开发环境。通过这种方式实现硬件和软件的协同设计。

        

vivado部分:

一、新建工程

        (1)新建工程,命名为 MicroBlaze_base ,Next

       (2)选择RTL工程,Next

        (3)选择芯片型号

二、配置MicroBlaze

        (1)创建设计块,命名后点OK(本例用默认名)

        (2)点击添加按钮,搜索MicroBlaze,双击添加

        (3)添加后会发现试图内已加载MicroBlazed模块,点击“Run Block Automation”进行配置,因为没有外设存储器所以内部存储器选大一点64KB,其他默认点OK

        (4)双击时钟模块“clk_wiz_1”进行配置:配置时钟(根据开发板时钟频率设置,我的是100MHz),再将时钟设为“single单端时钟”(默认是差分),将复位信号设置为“low低电平有效”,其他保持默认点OK

        (5)点击“自动布局”按钮,可将布局优化一下,看着清楚一点

        (6)添加时钟和复位管脚:

1:ctrl同时选中“clk_wiz_1”模块的时钟和复位信号输入脚后右键点击“Make External”添加管脚。

2:再将“rst_clk_wiz_1”模块的外部复位信号脚连接到“clk_wiz_1”的复位信号脚。

3:再点击自动布局(完成后如下图)。

三、添加Uart串口IP

        (1)点击添加ip,搜索“uart”,一般选择 AXI Uartlite,双击添加

        (2)配置 UART IP核:双击模块进行配置,时钟频率100MHz(要根据开发板设置)、波特率115200、8位数据位、无校验位。

        (3)点击 “运行自动连接”,全部勾选,会自动将uart管脚与MicroBlazed部分进行连接,再点击“自动布局”得到如下图二。

四、生成HDL文件编译

        (1)到src栏右键设计块,生成HDL包装文件,选择第二项进行生成。完成后会看见已经生成设计块的.v文件(如果后续对设计块有改动需要重新生成)

        (2)依次进行:Run Synthesis 综合、Run implementation 部署 

        (3)再配置管脚:需要配置的管脚如图所示,根据开发板情况自行配置

        (4)最后 Generate Bitstream 生成比特流文件   

SDK部分:

一、导出硬件启动SDK

       (1)导出硬件: “Export Hardware” 用于将设计中的硬件部分导出为一个可供其他工具(如 SDK 和 Vitis)或流程使用的硬件描述格式,按左图步骤,并注意勾选“Include bitstream包含比特流”导出硬件,右图启动SDK

       

        (2)启动SDK,保持默认点击OK。接下来将在SDK环境中进行软件部分的设计

         

二、新建应用程序工程

        (1)按照上面的步骤进入SDK后,自动加载相关文件

        (2)

1.新建 Application Project 应用程序工程。

2.将工程命名为 hello ,其他保持默认点击next。(默认c语言)

3.此时会提供工程模板,选择串口打印 hello world 的模板进行测试。(也可以生成空模板)

        (3)模板工程的.c文件位于hello工程的src目录下(helloworld.c),打开可以看到详细代码

三、烧录

        SDK左上方工具栏,点击烧录图标,选项保持默认点击烧录(也可以回到Vivado进行烧录)

四、串口测试

        (1)下方打开SDK终端,点击加号添加一个SDK自带的串口助手,选择窗口,设置波特率(需要和Vivado里面的uart IP的参数保持一致),OK。

        (2)按照图示步骤运行应用程序工程 hello (也可以在.c文件中直接右键Run As运行)

        (3)成功运行后,SDK串口接受到了 FPGA 发送的 Hello World ,串口功能测试成功!到此,使用Vivado 进行 MicroBlaze 软核开发的基础介绍结束。

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

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

相关文章

Vue工程化开发中各文件的作用

1.main.js文件 main.js文件的主要作用:导入App.vue,基于App.vue创建结构渲染index.html。

【人工智能】Transformers之Pipeline(二十七):蒙版生成(mask-generation)

​​​​​​​ 目录 一、引言 二、蒙版生成(mask-generation) 2.1 概述 2.2 facebook/sam-vit-base 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 2.3.3 pipeline对象返回参数 2.4 pipeline实战 2.5 模型排…

Lighthouse(灯塔)—— Chrome 浏览器性能测试工具

1.认识 Lighthouse Lighthouse 是 Google 开发的一款开源性能测试工具,用于分析网页或 Web 应用的性能、可访问性、最佳实践、安全性以及 SEO 等关键指标。开发人员可以通过 Lighthouse 快速了解网页的性能瓶颈,并基于优化建议进行改进。 核心功能&…

优化 LabVIEW 系统内存使用

在 LabVIEW 中,内存使用管理是确保高效系统性能的关键因素,尤其是在进行复杂的数据采集、信号处理和控制任务时。LabVIEW 程序的内存消耗可能会随着项目的规模和复杂度增加,导致性能下降,甚至出现内存溢出或程序崩溃。通过合理优化…

git回退到某个版本git checkout和git reset命令的区别

文章目录 1. git checkout <commit>2. git reset --hard <commit>两者的区别总结推荐使用场景* 在使用 Git 回退到某个版本时&#xff0c; git checkout <commit> 和 git reset --hard <commit> 是两种常见的方式&#xff0c;但它们的用途和影响有很…

无人机理论考试合格证书获取

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 轻型民用无人驾驶航空器安全操控理论培训合格证明 前言无人机特性和应用场景 前言 无人机&#xff08;Drone&#xff09;是一种非常受欢迎的技术产品&#xff0c;广泛应用于…

VBA信息获取与处理第四个专题第二节:将工作表数据写入VBA数组

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。这部教程给大家讲解的内容有&#xff1a;跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…

单链表---合并两个链表

将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 struct ListNode {int val;struct ListNode* next; }; w 方法一---不使用哨兵位 我们创建一个新链表用于合并两个升序链表&#xff0c; 将两个链表中最小的结点依次尾插到…

SD控制器设计:从协议到RTL实战,精通数字IP设计

SD 卡作为一种便捷的存储设备&#xff0c;广泛应用于各类电子设备中。而在这背后&#xff0c;SD 控制器的设计起着至关重要的作用。SD控制器设计是数字集成电路&#xff08;IC&#xff09;设计领域中的一项关键技能&#xff0c;特别是在系统芯片&#xff08;SoC&#xff09;设计…

windows系统的环境变量(系统变量)不能编辑可能是这个原因

有些电脑从开始菜单那搜索“环境变量”后是没法编辑系统变量的&#xff0c;只能从设置里面进”环境变量“来进行编辑。 可以观察到系统环境变量即便是点击到了,但还是无法进行编辑

开发手札:Win+Mac下工程多开联调

最近完成一个Windows/Android/IOS三端多人网络协同项目V1.0版本&#xff0c;进入测试流程了。为了方便自测&#xff0c;需要用unity将一个工程打开多次&#xff0c;分别是Win/IOS/Android版本&#xff0c;进行多角色联调。 在Win开发机上&#xff0c;以Windows版本为主版…

【全网最新】若依管理系统基于SpringBoot的前后端分离版本开发环境配置

目录 提前准备&#xff1a; 下载源代码 设置依赖 设置后台连接信息 运行后台 运行前端 安装npm依赖 启动前端 登录网页客户端 提前准备&#xff1a; 1、安装mysql 5以上就可以。 2、安装redis. 3、安装npm npm下载地址&#xff1a;https://nodejs.org/dist/v22.12…

vscode CMakeLists中对opencv eigen的引用方法

CMakeLists.txt 项目模式&#xff08;只有一个main函数入口&#xff09; cmake_minimum_required(VERSION 3.5)project(vsin01 VERSION 0.1 LANGUAGES CXX)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)set(OpenCV_DIR G:/MinGW_Opencv/opencv4.10/opencv…

Leetcode day1.两数相加(2) 2.整数反转(7)

注意点&#xff1a;1.链表会出现其中一个已经为空&#xff0c;另一个缺还是有数据 2.相加时会出现进位操作 解法一、 利用队列的性质&#xff08;基础不好 第一时间想到的&#xff09; 很像队列的性质&#xff0c;先进先出&#xff0c;逐步计算。但是最后要换成链表样式。 …

【大数据技术基础 | 实验十四】Kafka实验:订阅推送示例

文章目录 一、实验目的二、实验要求三、实验原理&#xff08;一&#xff09;Kafka简介&#xff08;二&#xff09;Kafka使用场景 四、实验环境五、实验内容和步骤&#xff08;一&#xff09;配置各服务器之间的免密登录&#xff08;二&#xff09;安装ZooKeeper集群&#xff08…

AndroidAutoSize实战教程:今日头条屏幕适配方案详解

如何在项目中结合 AndroidAutoSize 来进行今日头条屏幕适配&#xff0c;我会具体讲解如何用 AndroidAutoSize 实现屏幕适配&#xff0c;并结合 Kotlin 代码举例分析。 通过 AndroidAutoSize 库来实现屏幕适配&#xff0c;确保在不同的屏幕尺寸、分辨率、密度下&#xff0c;应用…

【贪心算法】贪心算法五

贪心算法五 1.跳跃游戏 II2.跳跃游戏3.加油站3.单调递增的数字 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.跳跃游戏 II 题目链接&…

【Axios】如何在Vue中使用Axios请求拦截器

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

4.5 TCP 报文段的首部格式

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言1 TCP 报文段的基本结构2 固定部分2.1 源端口与目的端口2.2 序号2.3 确认号2.4 数据偏移2.5 保留字段2.6 控制位2.7 窗口2.8 检验和2.9 紧急指针 3 可变部分3.1 选项3.2 填…

MySQL数据集成到广东省追溯平台的销售信息同步方案

销售信息同步--外购上报流程2&#xff1a;MySQL数据集成到广东省特殊食品电子追溯平台 在现代数据驱动的业务环境中&#xff0c;确保销售信息的准确性和及时性至关重要。本文将分享一个具体的技术案例&#xff0c;展示如何通过轻易云数据集成平台&#xff0c;将MySQL中的销售信…