1 系统设计
本文档中的示例实验的系统设计框图如下图所示。
ZYNQ 芯片的 PL 部分也就是 FPGA 部分,定义了一个用户逻辑的 IP,实现将两个输入的
32bit 的数据相加。自定义的用户逻辑 IP 中设计了 4 个寄存器,其中 3 个配置寄存器
(可读、可写)和一个状态寄存器(只读)。
ARM 处理器通过写配置寄存器 slv_reg0 和 slv_reg1 分别写入两个输入数据,用户逻辑
做加法运算,计算相加的结果放入 slv_reg3 寄存器中。slv_reg3 寄存器作为自定义 IP 的
状态寄存器使用,不能写,只能读。ARM 处理器读取 slv_reg3 寄存器中的数据,并将
结果显示在串口调试工具窗口中。
2 使用自定义 IP
Xilinx 官方提供了许多的 IP 核,在 Vivado 中我们通过 IP Catalog 可以管理、添加和查看
这些 IP 核。然后用户在构建自己的系统时,有时候需要使用自己的用户 IP 核。创建自
定义 IP 核将使系统设计层次结构和模块化结构更加的清晰;增加功能模块的设计复用
性,简化系统设计和缩短设计时间;可以在 IP 核中加入 license 有偿提供给别人使用。
在 ZYNQ 嵌入式开发中最常用的就是使用 AXI 总线将 PS 同 PL Fabric 的 IP 核连接起来。
本实验将为大家介绍如何在 Vivado 中创建一个 AXI 总线的自定义 IP,并且创建该 IP 的
驱动函数库,并在 SDK 应用程序中读写该自定义 IP 中的寄存器。
评论0