MicroBlaze Processor hello world实验

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打开自带的串口调试
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值