AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源

**

AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源

**
注:本例程是在xc7z010clg400_1实现,若导入至复旦微电子需更改为xc7z045iffg900-2L
(目录中带*号的可略过)
背景:PS端UART资源有限,难以满足实际运用中多串口的需求。
具体方法:PS通过AXI总线调用PL的资源进行UART的拓展,本说明采用vivado自带的IP核AXI Uartlite完成,属于AXI_GPIO。

一、Vivado IP核建立

完成图如下
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第1张图片

1.1 ZYNQ 核配置

这块一般默认即可(可以双机查看GP Master AXI Interface->M_AXI_GP0_Interface是否勾选);由于使用的是PL端的资源,AXI_Uartlite IP核实现串口收发功能,故PS端不用配置其它设置;
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第2张图片

1.2 AXI_Uartlite IP核配置

注:此处配置时,时钟和波特率一旦配置好,再更改时需要重新生成顶层文件及比特流;
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第3张图片

(1)观察.bd文件,AXI_Uartlite IP核右边的UART管脚,通过自动布线迁到uart_rtl_0;
在这里插入图片描述

(2)uart_rtl_0对应的是PL端所约束的任意两个管脚;
注:这里不必考虑这两个引脚是怎么牵出来能作为串口接收发送的,AXI_Uartlite IP核内部逻辑实现模拟串口收发功能,通过引出uart_rtl_0作为任意约束脚,达到串口通信的目的;
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第4张图片
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第5张图片

1.3 编译VIVADO FPGA工程

Step1:单击 Block 文件—>右键—>the Output ProductsGlobalGenerate。
Step2:单击 Block 文件—>右键—>Create a HDL wrapper(生成 HDL 顶层文件)Let vivado manager wrapper and auto-update(自动更新)。
Step3:生成 Bit 文件。
Step4:导出到硬件: File—>Export Hardware—>Include bitstream
加载 SDK:File—>Launch SDK—>OK
注:调用PL端时,导出硬件需勾选Include bitstream

1.4 新建VIVADO SDK工程

Step1:打开 SDK 后,只能看到如下一个工程
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第6张图片

Step2: 需要手动创建一个 application 工程,模板选择 helloworld。输入工程名字,单击 Next。
选择Hello Word,创建一个包含Hello Word的工程,单击 Finish 完成创建。之后会自动生成一个与 Application 工程名字相同且带有_bsp 后缀的 bsp 工程。
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第7张图片

点击 axi_uartlite IP 对应的 Import Examples 工程,可以导入 axi_uartlite 的测 试用例。这里导入 xuartlite_polled_example 工程。
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第8张图片

至此,在 Xilinx Vivado 和 Xilinx SDK 的开发流程完成。接下来要转入 Procise 开发流程。
注意此处的 axi_uart_bsp 工程的存在非常重要(必须存在),其内部存放的是与 PL 的 Block Design 相关的 IP 的驱动程序,因为接下来的 Procise 软件里面的 From Vivado 操作,会搜索 Xilinx SDK 工程下面以“_bsp”结尾的文件夹,并拷贝此文件夹里面的驱 动到 Procise 工程 SDK 的 FM_QL_bsp 文件夹下的 pl 文件夹中 。否则 Procise 软件 From Vivado 操作后,导出的 IAR 工程,将没有 pl 部分的驱动目录。
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第9张图片
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第10张图片
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第11张图片

*1.5 下载调试

Step1:点击Xilinx—>Program FPGA 烧写bit文件。
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第12张图片

注:红框中system_wrapper.bit即为“Step4:导出到硬件: File—>Export Hardware—>Include bitstream”这步所生成的bit;
Step2:如下图绿色播放按钮烧写elf文件(在vivado sdk中烧写)。
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第13张图片

注:此处第一次打开工程下载会弹出选择窗口,选择run as hardware即可

二、Procise From Vivado

Step1:导入Vivado工程
点击PSOC—>from vivado
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第14张图片

导入所需的vivado文件.bd和.xci,(参考如下黄色高亮)
.bd路径为:
C:/Users/11/Desktop/aa/axi_uart1/axi_uart/axi_uart.srcs/sources_1/bd/system/system.bd.xci路径为:
C:/Users/11/Desktop/aa/axi_uart1/axi_uart/axi_uart.srcs/sources_1/bd/system/ip/system_processing_system7_0_0/system_processing_system7_0_0.xci
Step2:导出SDK
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第15张图片

观察bsp,pl文件夹为PL端生成的各种IP核的库函数,这里主要说明uartlite_v3_2
(Procise 软件里面的 From Vivado 操作,会搜索 Xilinx SDK 工程下面以“_bsp”结尾的文件夹,并拷贝此文件夹里面的驱 动到 Procise 工程 SDK 的 FM_QL_bsp 文件夹下的 pl 文件夹中)
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第16张图片

Include 文件中包含的是软件ip核的基本类型,适用于各种xilinx处理器

Xparameters.h 这个文件是pl端配置完各种IP核后,所在生成的各寄存器的基地址及其它宏定义(比如uartlite的波特率,数据位等),如下图所示:
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第17张图片

对比下图发现,Xparameters.h 文件中 #define XPAR_UARTLITE_0_BASEADDR 的值刚好对应pl端配置寄存器RX_FIFO的值
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第18张图片

Uartlite_v3_2文件中,包含共10个.c/.h文件,这些是从vivado工程中的pl端导入
(需手动添加)
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第19张图片

注:添加.h文件后需要查看路径是否包含,以免编译报错
AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第20张图片

如下图中,可以看到路径包含pl内的include和libsrc
注:这里尽量使用相对路径,绝对路径受文件位置移动影响,需每次更改路径

AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源_第21张图片

你可能感兴趣的:(FPGA,fpga开发)