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位宽的寄存器函数,只需要传入地址
相关推荐
何粥学2 小时前
Vivado 2024.2 开发记录(AC820 Zynq-7020)——软件使用,点亮led灯
单片机·嵌入式硬件·zynq
weixin_450907282 天前
[ZYNQ Linux] VCU使用
linux·zynq
szxinmai主板定制专家9 天前
基于 AM62x + Artix-7 的低功耗 ARM+FPGA 平台在轨道交通车门控制中的应用
arm开发·人工智能·fpga开发·zynq·am62x
szxinmai主板定制专家10 天前
ARM 还是 x86?CODESYS 数控机床控制器选型、FPGA 取舍与实时性真相
arm开发·人工智能·fpga开发·zynq·1024程序员节·codesys
XMAIPC_Robot16 天前
ARM+FPGA+AI船舶/工业自动化控制器EMC测试等级解析(IEC60533/IEC60945)
arm开发·人工智能·fpga开发·zynq·arm+fpga·rk3588+fpga
szxinmai主板定制专家17 天前
ZYNQ 数据采集方案踩坑总结:电力强电磁干扰、工业现场多协议适配优化
运维·人工智能·fpga开发·机器人·zynq
szxinmai主板定制专家17 天前
软硬协同!ZYNQ 高速多通道同步采集,变电站 / 工厂设备状态监测方案详解
人工智能·深度学习·机器学习·fpga开发·zynq·rk3576
szxinmai主板定制专家17 天前
告别 ARM 实时性短板:基于 ZYNQ 的电力故障录波 + 工业振动数据采集系统设计
arm开发·人工智能·fpga开发·zynq·数据采集卡·arm+fpga·rk3588+fpga
璞致电子21 天前
璞致电子PZSDR P151Q 大规模多通道软件无线电平台|ZU15EG + 四片 AD9361 8T8R 相位同步 SDR
xilinx·zynq·软件无线电·sdr·璞致电子·p151q·zu15eg
努力搬砖的小H21 天前
FPGA应用技巧之AXI4-FULL-uiFDMA IP仿真验证
经验分享·fpga开发·axi