ZYNQ 串口打印输出——FPGA Vitis篇

ZYNQ芯片主要由PS端(ARM处理器)和PL端(FPGA逻辑单元)组成,因此ZYNQ芯片结合了ARM芯片和FPGA芯片的优点于一身。本实验主要介绍使用PS端来完成ZYNQ串口打印输出的功能。

虽然本实验仅仅使用了PS,但是还要建立一个Vivado工程,用来配置PS管脚。虽然PS端的ARM是硬核,但是在ZYNQ当中也要将ARM硬核添加到工程当中才能使用。本实验使用的Vivado版本为Vivado2021.1。

1. Vivado工程的建立

(1)打开Vivado,创建一个名为“Uart_HelloWorld”的工程;
(2)点击“Create Block Design”,创建一个Block设计,也就是图形化设计;
在这里插入图片描述
(3)进入到“Block Design”界面后,点击“Add IP”按钮,搜索“zynq”,在搜索结果列表中双击“ZYNQ7 Processing System”;
在这里插入图片描述
(4)双击Block图中的“processing_system7_0”(即zynq的PS端IP核),配置该IP核的参数;
在这里插入图片描述
(5)首先出现的界面是ZYNQ硬核的架构图,可以很清楚看到它的结构,可以参考ug585文档,里面有对ZYNQ的详细介绍。图中绿色部分是可配置模块,可以点击进入相应的编辑界面,当然也可以在左侧的窗口进入编辑。
在这里插入图片描述
(6)本教程使用的ZYNQ开发板为ZerdBoard,该开发板使用J14串口用于数据传输,电路图如下图所示,可知该串口的FPGA端接口为MIO48、MIO49。
在这里插入图片描述
(7)选择“Peripheral I/O Pins”选项卡,勾选“UART1”;
在这里插入图片描述
(8)选择“MIO Configuration”选项卡,设置好Bank0 I/O Voltage和Bank1I/O Voltage;ZedBoard的Bank0 I/O Voltage设为LVCMOS 3.3V、Bank1 I/O Voltage设为LVCMOS 1.8V。
在这里插入图片描述
(9)选择“Clock Configuration”选项卡,根据ZerdBoard板卡配置,Input Frequency(MHz)设置为33.333333MHz,CPU Clock Ratio默认为6:2:1。
在这里插入图片描述
(10)选择“DDR Configuration”选项卡,根据ZerdBoard板卡配置,DDR型号选择为MT41J128M16HA-15E。
在这里插入图片描述
(11)点击“OK”按钮,完成该IP核的配置。点击“Run Block Automation”, Vivado软件会自动完成一些导出端口的工作。
在这里插入图片描述
(12)按照默认点击“OK”,不更改任何参数。
在这里插入图片描述
(13)点击“OK”以后我们可以看到PS端导出一些管脚,包括DDR还有FIXED_IO,DDR是DDR3的接口信号,FIXED_IO为PS端固定的一些接口,比如输入时钟,PS端复位信号,MIO等。连接FCLK_CLK0到M_AXI_GP0_ACLK,按“Ctrl+S”保存设计。
在这里插入图片描述
(14)选择Block设计,右键“Create HDL Wrapper…”,创建一个Verilog或VHDL 文件,为block design生成HDL顶层文件。
在这里插入图片描述
(15)保持默认选项,点击“OK”
在这里插入图片描述
(16)展开设计可以看到PS被当成一个普通IP来使用。选择block设计,右键“Generate OutputProducts”,此步骤会生成block的输出文件,包括IP,例化模板,RTL源文件,XDC约束,第三方综合源文件等等。供后续操作使用。
在这里插入图片描述
(17)弹出的窗口直接安装默认设置,点击“Generate”。
在这里插入图片描述
(18)点击Vivado “Flow Navigator”一栏里的“Generate Bitstream”,等待Vivado生成好bit文件后,在菜单栏“File -> Export -> Export Hardware…”导出硬件信息,这里就包含了PS端的配置信息。
在这里插入图片描述
(19)在弹出的对话框中勾选“Include bitstream”并点击“Next”以及“Finished”。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(20)到此为止,Vivado的工作告一段落,Vivado最后导出了一个硬件平台的XSA文件。软件开发工程师用该XSA文件便可以脱离Vivado软件环境对上层应用软件进行开发。

2. Vitis(SDK)工程的建立和调试

在Vivado早期的版本中,软件工程师的开发是在SDK软件中进行的,Vivado目前最新的版本(例如Vivado 2021.1)已将原来的SDK软件升级为Vitis软件。
(1)点击 Vivado 菜单“Tools-> Launch VitisIDE”,启动 Vitis。
在这里插入图片描述
(2)首先我们要建立一个平台工程。这个平台工程即对应于我们刚刚在Vivado下搭的硬件平台。点击Vitis菜单“File-> New->Platform Project…”。
在这里插入图片描述
(3)工程命名“Zynq7000_Platform”,并点击下一步。
在这里插入图片描述
(4)点击“Browse…”指定硬件平台文件,即我们刚用Vivado最后导出的硬件平台配置XSA文件。点击完成。
在这里插入图片描述
(5)可以在项目的游览窗口里看到刚建立的平台工程文件夹。
在这里插入图片描述
(6)建立好平台工程后,我们再建立一个应用工程,该工程即实现串口打印“Hello World”信息。点击Vitis菜单“File-> New->Application Project…”,并点击下一步。
在这里插入图片描述
在这里插入图片描述
(7)选中我们刚建好的“Zynq7000_Platform”平台工程,并点击下一步。
在这里插入图片描述
(8)给应用工程取个名字,并点击下一步。
在这里插入图片描述
(9)从应用工程模板里,选择“Hello World”工程,点击“Finish”按钮。
(10)分别编译平台工程和应用工程。
在这里插入图片描述
(11)至此,我们完成了所有SDK软件的配置和开发工作。

3. 下载程序至开发板

(1)作者使用的开发板为ZedBoard开发板,板卡上的跳线帽MIO2~MIO6都接地,如下图所示。板卡和计算机之间连好JTAG下载线和串口线(USB转串口),给板卡上电。
在这里插入图片描述
(2)Vitis下点击“Run Configurations…”
在这里插入图片描述
(3)点击“Single Application Debug(GDB)”,在“Application”选项卡中勾选“ps7_cortexa9_0”,点击“Run”按钮。
在这里插入图片描述
(4)程序运行成功后,便会在计算机的串口调试助手上打印如下信息。
在这里插入图片描述
(5)至此我们完成了ZYNQ串口打印输出项目的全部工作内容。

4. 工程源码下载

该工程对应的源码可以通过关注该微信公众号,找到对应的原创文章进行下载,工程采用的是Vivado2021.1版本。
如果大家对我们的文章感兴趣,可以关注我们的公众号:“FpgaHome”:

  • 13
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Vitis是一种用于开发嵌入式软件和加速器的软件开发平台,它可以与FPGA一起使用。在FPGA UART的实验中,Vitis可以用于编写和调试FPGA上的UART通信相关的软件程序。通过Vitis,你可以使用C或C++语言编写程序来控制FPGA上的UART接口,实现数据的发送和接收。在程序编写过程中,你可以使用Vitis提供的API函数来配置UART的参数,如数据位、停止位、波特率等。此外,Vitis还提供了调试工具和性能分析工具,可以帮助你进行程序的调试和性能优化。总之,Vitis是一个强大的工具,可以帮助你在FPGA上实现UART通信功能。\[2\] #### 引用[.reference_title] - *1* *3* [基于Xilinx FPGA的uart串口实验详解](https://blog.csdn.net/y_u_yu_yu_/article/details/127177328)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ZYNQ 串口打印输出——FPGA Vitis](https://blog.csdn.net/weixin_44007264/article/details/121409827)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值