目录
1. 概述
- 在Vivado中自定义IP核是一个常见的任务,特别是在开发Zynq平台时。
- 自定义IP核可以通过Vivado设计套件中的工具来创建、打包和重用。通常,
- 自定义IP核可以与DMA核相连,以实现数据传输和处理。
- 在Vivado中创建自定义IP核涉及使用Create and Package IP wizard等工具,同时也可以使用AXI协议来定义IP核的接口。
- 通过自定义IP核,开发人员可以实现特定功能的硬件加速,以提高系统性能和效率。
2. IP Packager 重要参数
2.1 参数说明
// Width of S_AXI data bus
parameter integer C_S_AXI_DATA_WIDTH = 32,
// Width of S_AXI address bus
parameter integer C_S_AXI_ADDR_WIDTH = 4
定义了4个32bit位宽的寄存器
// 主设备将启动对从设备的读写事务,基地址在此处作为参数指定。
parameter integer C_M_AXI_ADDR_WIDTH = 32,// 主设备发出写数据并接受读数据,其中数据总线的宽度为C_M_AXI_DATA_WIDTH
parameter integer C_M_AXI_DATA_WIDTH = 32,// 事务数量是指主设备将执行的写和读事务的数量
parameter integer C_M_TRANSACTIONS_NUM = 4,
3. AXI4 Lite 写操作逻辑
// 1.从写地址通道空闲 2.主写地址通道就绪 3.主写数据通道就绪 4.从aw_en就绪; 此条件为主机发起AXI写数据请求
if (~axi_awready && S_AXI_AWVALID && S_AXI_WVALID && aw_en)
// 2.主写响应通道忙 <- 1.从写响应通道就绪; 此条件为写响应通道握手
if (S_AXI_BREADY &&