MicroBlaze Processor hello world实验

news2024/9/22 19:34:43

MicroBlaze Processor hello world实验

实验目的

搭建microblaze工程,通过串口打印hello world,了解microblaze的使用,加深对FPGA硬件和软件开发的理解。

实验原理

在这里插入图片描述

MicroBlaze Processor是xilinx提供的一个软核处理器(使用FPGA资源实现的处理器,类似的arm也开源了一些单片机的软核如M3),支持32位或者64位,同时也有许多其他的配置。在使用软软核的情况下,fpga可以简单理解为软核处理器和FPGA两部分(类似ZYNQ),软核处理器运行C语言编写的程序,fpga依旧是硬件工程的功能。在要求不是特别严格的情况下,使用软核可以减轻fpga的硬件设计,优化系统结构。

实际上,实验开发流程和ZYNQ开发极为相似,软核也可以在ZYNQ上搭建,实现一个软核+硬核+FPGA的架构。简单的说,实验就是搭硬件平台,建软件工程,整个过程在vitis平台下进行,比较简单。

实验流程大致为:

  1. 设计硬件平台,搭建有一个物理串口的MicroBlaze的硬件平台(vivado)
  2. 创建软件hello world工程,并上板执行(SDK或者vitis)

实验环境

Vivado v2023.1 (64-bit)
开发板:AXU4EV-P (ALINX的,ZYNQ 4ev)

实验内容

  1. vivado新建工程,根据自己的开发板型号设置就行。
  2. 创建一个block design,根据需要命名。
  3. 搜索并添加MicroBlaze IP核。
    在这里插入图片描述
  4. 点击“Run Block Automation”,可以把内存设置大一些,这里选择64KB,点击ok,会自动加入必须的IP,复位、时钟、片上存储、调试。
    在这里插入图片描述
  5. 根据实际情况设置时钟,使用的开发板是200M的差分时钟,然后复位选择一个按键来设置,由于按键按下时为低电平,时钟复位改为低复位。
    在这里插入图片描述
    在这里插入图片描述
  6. 添加外设,这里只添加一个串口,添加一个AXI Uartlite并将波特率设置为115200。点击“Run Connection Automation”,会自动连线。
  7. 添加管脚约束和时序约束,时钟、复位和串口(外部硬件接的),可以使用图形界面也可以使用代码。
    在这里插入图片描述
create_clock -period 5 [get_ports diff_clock_rtl_0_clk_p]
set_property PACKAGE_PIN AE5 [get_ports diff_clock_rtl_0_clk_p]
set_property IOSTANDARD DIFF_SSTL12 [get_ports diff_clock_rtl_0_clk_p]

set_property PACKAGE_PIN AE14 [get_ports reset_rtl_0]
set_property IOSTANDARD LVCMOS33 [get_ports reset_rtl_0]

set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_rxd]
set_property IOSTANDARD LVCMOS33 [get_ports uart_rtl_0_txd]
set_property PACKAGE_PIN AA10 [get_ports uart_rtl_0_rxd]
set_property PACKAGE_PIN AA11 [get_ports uart_rtl_0_txd]
  1. 点击“√”进行检验设计。
    在这里插入图片描述
    在这里插入图片描述
  2. 选择bd文件,点击Create HDL Wrapper,生成顶层文件,相当于把前面的搭建的平台实例化,会生成.v文件。选择“generate output product”。 点击“generate bitstream”走完fpga的开发流程。
    在这里插入图片描述
  3. 导出硬件平台,是一个xsa后缀的文件,后面需要用来创建软件的工程。
    在这里插入图片描述
  4. 到目前为止,硬件搭建完成。
  5. 打开VITIS IDE,进行软件工程的创建。
    在这里插入图片描述
  6. 新建平台工程,选择之前生成的xsa文件。

在这里插入图片描述在这里插入图片描述

  1. 新建应用程序,需要先选择平台,可以看到我们刚刚创建的平台工程名,后面直接从模版hello world创建即可。
    在这里插入图片描述
    在这里插入图片描述
  2. 分别点击平台和应用工程名,右键build编译工程,也可以点击小锤子图标。
    在这里插入图片描述
  3. 上板运行,也可以使用类似播放的按钮运行,左边的虫子图标是进行调试的,可以单步执行。串口调试助手就使用自带的终端,需要先手动调出来,在windows的show view里面。运行程序,可以看到串口终端有打印hello world的信息。可以修改打印内容进行验证,也可以学习下串口裸驱程序的编写。
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

实验总结

虽然实验过程比较简单,但是整个流程还是比较全面,包含了硬件开发和软件开发的流程,展示了二者之间的关系。硬件设计和构建平台,软件在前者平台的基础上进行程序开发。

参考资料

  1. 创建最简单的MicroBlaze工程
  2. MicroBlaze 串口发送 Hello World 实验
  3. vitis打开自带的串口调试

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

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

相关文章

Delta型腿机器狗全动作展示

1. 功能说明 本文示例将实现R322样机Delta型腿机器狗维持身体平衡、原地圆形摆动、原地踏步、蹲起、站立、前进、后退、转向、横向移动、斜向移动等功能。 2. 电子硬件 本实验中采用了以下硬件: 主控板 Basra主控板(兼容Arduino Uno)‍ 扩展…

追寻技术巅峰:开发者的端午征途

近年来,随着信息技术的飞速发展,开发者们以前所未有的速度和规模推动着技术的进步。而正如端午节的文化内涵所体现的那样,我们以屈原名言为指引,勉励着广大开发者在技术征途上不断追求极致,勇往直前。 一、端午节与技术…

macOS Sonoma 14 beta 2 (23A5276g) Boot ISO 原版可引导镜像

macOS Sonoma 14 beta 2 (23A5276g) Boot ISO 原版可引导镜像 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 …

【Flume】高级组件之Sink Processors及项目实践(Sink负载均衡和故障转移)

文章目录 1. 组件简介2. 项目实践2.1 负载均衡2.1.1 需求2.1.2 配置2.1.3 运行 2.2 故障转移2.2.1 需求2.2.2 配置2.2.3 运行 1. 组件简介 Sink Processors类型包括这三种:Default Sink Processor、Load balancing Sink Processor和Failover Sink Processor。 Defa…

AIGC连续内容生成几种方案

背景 从AI可以画图到现在各家都在功课的连续性内容的输出,正在AI画图进入到大众圈其实也不过1年左右时间。对于单图的研究已经逐渐完善,单图理论上讲,只要你能按要求做promt的设计出图率应该是比较高的。但是对于要生成连续的图或者要生成连…

推荐 5 个 火火火 的 GitHub 项目

推荐 5 个开源项目,前两个是 AI 相关,后面 3 个为逛逛GitHub 的读者推荐,如果你挖掘到了很棒的开源项目,可以给老逛投稿。 本期推荐开源项目目录: 1. SuperAGI(AI) 2. 一键换脸(AI&a…

macOS Monterey 12.6.7 (21G651) Boot ISO 原版可引导镜像

macOS Monterey 12.6.7 (21G651) Boot ISO 原版可引导镜像 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Lin…

计算机实习自我鉴定范文5篇

精选计算机实习鉴定 (一) 时间过的真快,在这过去一个3个月时间里,我在**科技有限公司实习从事运维工作。 在公司实习的这段时间,我主要和其他的实习生一起负责公司刚开发的**系统的部署、更新以及维护。 这三月的时间,在同事和项目…

【并发知识点】CAS的实现原理及应用

系列文章目录 AQS的实现原理及应用 CAS的实现原理及应用 文章目录 系列文章目录前言1、CAS的概念2、CAS的实现原理3、单JVM内锁CAS实现3.1、效果 4、模拟赛龙舟比赛 前言 本章节介绍CAS概念、实现原理,并通过java代码应用,最终模拟赛龙舟比赛。 1、CA…

设计模式之适配器模式笔记

设计模式之适配器模式笔记 说明Adapter(适配器)目录类适配器模式示例类图适配者类的接口适配者类目标接口具体的SD卡类计算机类适配器类测试类 对象适配器模式适配者类的接口适配者类目标接口具体的SD卡类计算机类适配器类测试类 说明 记录下学习设计模式-适配器模式的写法。J…

力扣高频SQL50题(基础版)——第十天

力扣高频SQL50题(基础版)——第十天 1 只出现过一次的最大数字 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出1 1.1.3 示例输入输出2 1.2 示例sql语句 # 查不到时的结果自然就为Null SELECT MAX(t.num) num FROM (SELECT numFROM MyNumbersGROUP By numHAVING count…

窥探系列之Mybatis-plus BaseMapper实现

我们知道,mybatisplus的BaseMapper接口中提供了一些如updateById的方法,框架本身已经实现了这些CRUD功能,基本的CRUD我们就没必要写sql,直接使用java语法就能对数据进行操控,很方便。那么这些功能是如何被实现的呢&…

【并发知识点】AQS的实现原理及应用

系列文章目录 AQS的实现原理及应用 CAS的实现原理及应用 文章目录 系列文章目录前言一、AQS是什么?1、应用场景2、优缺点 二、案例应用1.使用AQS来实现一个简单的互斥锁2.模拟赛龙舟程序 总结 前言 在Java技术方面,AQS指的是AbstractQueuedSynchronize…

2023最新高薪岗位大爆料,大模型算法工程师!凭什么人均月薪50K

大模型算法工程师工资收入一般多少钱一个月? 最多人拿50K以上占 53.7%,2023年较2022年增长了10%。 按学历统计,本科工资¥41.9K。 按经验,1-3年工资¥40.0K。 一起来看华为招聘的大模型工程师的工资水准 岗位…

[补充]机器学习实战|第二周|第2章:监督学习|课后习题

目录 第二章 监督学习 2. 使用不同的超参数,如kernel"linear"和kernel“rbf”,尝试一个支持向量机回归器。并思考最好的SVR预测器是如何工作的? [代码]3. 为MNIST数据集构建一个分类器,并在测试集上达成超过97%的精度…

关于Java中单例模式(饿汉模式和懒汉模式)的简析

目录 一.什么是单例模式 二.饿汉模式和懒汉模式 饿汉模式 代码 懒汉模式 代码 关于多线程安全的问题 如何解决懒汉模式多线程安全问题 双if判断 一.什么是单例模式 简单来说,就是我们在程序中通过代码进行限制,在该程序中 只能创建一个对象 二.饿汉模式和懒汉模式 …

【2023,学点儿新Java-17】变量与运算符:Java中的关键字及类型划分(附: 官网) | 保留字 | 字面量 | 附:Java部分关键字介绍

前情回顾: 【2023,学点儿新Java-16】编程语言的学习方法总结 | 编程的本质和架构 | 如何深度理解编程知识和技能 | 如何成为优秀的软件开发工程师 | 附:Java初学者的困惑!【2023,学点儿新Java-15】案例分享&#xff1…

机器视觉初步7:模板匹配专题

今天端午,祝各位端午安康! 今天来说说模板匹配这个专题。 模板匹配(Template Matching)是一种图像处理技术,用于在一幅图像上查找与另一幅模板图像相同的区域。模板图像和待匹配图像的大小相同。模板匹配的目的是在待…

【MongoDB大作业】MongoDB服务器的部署

【MongoDB大作业】MongoDB服务器的部署 作业要求作业步骤一、在VMware Workstations安装Linux操作系统(最小安装即可)二、安装完成后登录系统三、将ip地址设置为固定ip地址192.168.80.134四、设置虚拟网络编辑器五、使用 CRT 工具远程连接虚拟机六、下载…

《项目实战》构建SpringCloud alibaba项目(一、构建父工程、公共库、网关))

系列文章目录 构建SpringCloud alibaba项目(一、构建父工程、公共库、网关) 构建SpringCloud alibaba项目(二、构建微服务鉴权子工程store-authority-service) 文章目录 系列文章目录1、概要2、整体架构流程2.1、技术结构组成部分…