4 AXI USER IP

前言

使用AXI Interface封装IP,并使用AXI Interface实现对IP内部寄存器进行读写实现控制LED的demo,这个demo是非常必要的,因为在前面的笔记中基本都需哟PS端与PL端就行通信互相交互,在PL端可以通过中断的形式来告知PS端一些事情,或者PS端时刻盯着某个寄存器等着PL端告诉他一些事情,但是这个这个过程比较独占CPU资源的,一般使用中断的方式;但是PS端比较方便的就是通过读写寄存器的方式控制PL端的操作,而且是要通过AXI接口,因此这个demo比较重要

目的

复制代码
 - 使用AXI 总线协议封住IP
- 回顾AXI 协议
- 回顾创建和打包IP
- 软硬件协同设计

创建和打包IP

参考笔记5-1 创建和打包AXI Interface IP

使用寄存器控制LED

  • 并将GPIO_LED信号引入到顶层,进行引脚约束

BD设计

引脚约束

c 复制代码
set_property PACKAGE_PIN AL11 [get_ports GPIO_LED]
set_property IOSTANDARD LVCMOS18 [get_ports GPIO_LED]

set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

修改自定义AXI-IP的Makefile

  • drivers\axi_user_gpio_v1_0\src目录下

生成bit流,导出xsa文件

SDK设计

c 复制代码
/*
    * name: main.c
    * description: write user regiter to control the LED GPIO

*/

#include "xparameters.h"
#include "xil_printf.h"
#include "xil_io.h"
#include "sleep.h"

#define GPIO_BASEADDR XPAR_AXI_USER_GPIO_0_S00_AXI_BASEADDR
#define GPIO_DATA_OFFSET 0x0

#define printf xil_printf

int main()
{
    Xil_Out32(GPIO_BASEADDR + GPIO_DATA_OFFSET, 0x0); // turn off all LEDs
    while (1)
    {
        sleep(1);
        Xil_Out32(GPIO_BASEADDR + GPIO_DATA_OFFSET, 0x1); // turn on LED0
        sleep(1);
        Xil_Out32(GPIO_BASEADDR + GPIO_DATA_OFFSET, 0x0); // turn off all LEDs
    }

    return XST_SUCCESS;
}
  • 关于XPAR_AXI_USER_GPIO_0_S00_AXI_BASEADDR
    • 这个地址就是在BD设计中对应接口分配的基地址
  • 关于Xil_Out32函数
    • 这个函数就是写32bit位宽的寄存器函数,传入的参数为地址和需要写入数据
  • 对应的Xil_In32函数
    • 这个函数就是读32bit位宽的寄存器函数,只需要传入地址
相关推荐
cy4130263 天前
总线的atmotic与lock/exclusive
axi
s09071363 天前
FPGA中同步与异步复位
fpga开发·verilog·xilinx·zynq
杨景辉5 天前
Zynq7020 petalinux 基础篇(1)- 工程搭建
zynq
s09071367 天前
ZYNQ 中 AXI BRAM 的使用详细的说明。
fpga开发·zynq
s09071367 天前
Xilinx FPGA 中ADC 数据下变频+ CIC 滤波
算法·fpga开发·fpga·zynq
s090713610 天前
使用xilinx的fir IP核实现LFM信号匹配滤波的详细过程及原理
fpga开发·xilinx·fir·zynq·脉冲压缩
s090713611 天前
ZYNQ7000关于JTAG电路设计注意事项
fpga开发·zynq·硬件设计设计
s090713611 天前
ZYNQ几种boot模式下sdk文件区别
fpga开发·sdk·zynq
s090713611 天前
Xilinx 7系列FPGA的FFT IP核简介
fpga开发·zynq·fft
brave and determined1 个月前
可编程逻辑器件学习(day22):“让ARM穿上FPGA的马甲“:赛灵思Zynq的命名哲学与技术革命
arm开发·嵌入式硬件·fpga开发·zynq·fpga设计·嵌入式设计·fpga开发流程