MicroBlaze Processor hello world实验

MicroBlaze Processor hello world实验

实验目的

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

实验原理

MicroBlaze Processor hello world实验_第1张图片

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核。
    MicroBlaze Processor hello world实验_第2张图片
  4. 点击“Run Block Automation”,可以把内存设置大一些,这里选择64KB,点击ok,会自动加入必须的IP,复位、时钟、片上存储、调试。
    MicroBlaze Processor hello world实验_第3张图片
  5. 根据实际情况设置时钟,使用的开发板是200M的差分时钟,然后复位选择一个按键来设置,由于按键按下时为低电平,时钟复位改为低复位。
    MicroBlaze Processor hello world实验_第4张图片
    在这里插入图片描述
  6. 添加外设,这里只添加一个串口,添加一个AXI Uartlite并将波特率设置为115200。点击“Run Connection Automation”,会自动连线。
  7. 添加管脚约束和时序约束,时钟、复位和串口(外部硬件接的),可以使用图形界面也可以使用代码。
    MicroBlaze Processor hello world实验_第5张图片
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. 点击“√”进行检验设计。
    在这里插入图片描述
    MicroBlaze Processor hello world实验_第6张图片
  2. 选择bd文件,点击Create HDL Wrapper,生成顶层文件,相当于把前面的搭建的平台实例化,会生成.v文件。选择“generate output product”。 点击“generate bitstream”走完fpga的开发流程。
    MicroBlaze Processor hello world实验_第7张图片
  3. 导出硬件平台,是一个xsa后缀的文件,后面需要用来创建软件的工程。
    MicroBlaze Processor hello world实验_第8张图片
  4. 到目前为止,硬件搭建完成。
  5. 打开VITIS IDE,进行软件工程的创建。
    MicroBlaze Processor hello world实验_第9张图片
  6. 新建平台工程,选择之前生成的xsa文件。

MicroBlaze Processor hello world实验_第10张图片MicroBlaze Processor hello world实验_第11张图片

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

MicroBlaze Processor hello world实验_第16张图片
MicroBlaze Processor hello world实验_第17张图片

实验总结

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

参考资料

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

你可能感兴趣的:(ZYNQ学习,fpga开发)