4 AXI USER IP

server/2025/1/19 11:45:59/

前言

使用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设计

在这里插入图片描述

引脚约束

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设计

/** 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_printfint main()
{Xil_Out32(GPIO_BASEADDR + GPIO_DATA_OFFSET, 0x0); // turn off all LEDswhile (1){sleep(1);Xil_Out32(GPIO_BASEADDR + GPIO_DATA_OFFSET, 0x1); // turn on LED0sleep(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位宽的寄存器函数,只需要传入地址

http://www.ppmy.cn/server/159615.html

相关文章

Redis 性能优化:多维度技术解析与实战策略

文章目录 1 基准性能2 使用 slowlog 优化耗时命令3 big key 优化4 使用 lazy free 特性5 缩短键值对的存储长度6 设置键值的过期时间7 禁用耗时长的查询命令8 使用 Pipeline 批量操作数据9 避免大量数据同时失效10 客户端使用优化11 限制 Redis 内存大小12 使用物理机而非虚拟机…

湖仓一体架构解析:数仓架构选择(第48天)

系列文章目录 1、Lambda 架构 2、Kappa 架构 3、混合架构 4、架构选择 5、实时数仓现状 6、湖仓一体架构 7、流批一体架构 文章目录 系列文章目录前言1、Lambda 架构2、Kappa 架构3、混合架构4、架构选择5、实时数仓现状6、湖仓一体架构7、流批一体架构 前言 本文解析了Lam…

如何排查和修复损坏的文件系统

文件系统的损坏是计算机管理中一个常见而严重的问题,尤其是在服务器环境中。损坏的文件系统可能导致数据丢失和系统不稳定,因此及时有效地排查和修复是非常重要的。本文将详细介绍如何排查和修复损坏的文件系统,包括常见的损坏原因、检测工具…

提示词的艺术----AI Prompt撰写指南(个人用)

提示词的艺术 写在前面 制定提示词就像是和朋友聊天一样,要求我们能够清楚地表达问题。通过这个过程,一方面要不断练习提高自己地表达能力,另一方面还要锻炼自己使用更准确精炼的语言提出问题的能力。 什么样的提示词有用? 有…

C++(二十二)

前言: 本文承接上文,将详细讲述C中,参数与指针。 一,无响应参数。 首先复习一下之前曾学习过的函数: void change(int a,int b) { int temp; tempa; ab; btemp; } 看起来是一个简单的交换a与b值的函数。 完整代…

晨辉面试抽签和评分管理系统之十三:如何让不同批次、同一组别的面试考生抽到连续的号码?

晨辉面试抽签和评分管理系统(下载地址:www.chenhuisoft.cn)是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…

家政服务小程序,打造智慧家政新体验

春节即将来临,家政市场呈现出了火热的场景,大众对家政服务的需求持续增加。 近年来,家政市场开始倾向数字化、智能化,借助科学技术打造家政数字化平台,让大众在手机上就可以预约家政服务,减少传统家政市场…

【C#】将信息输出到 Visual Studio 的输出窗口的几个方式

在 WinForms 项目中,可以通过使用 System.Diagnostics.Debug 或 System.Diagnostics.Trace 类将信息输出到 Visual Studio 的输出窗口。这两者之间的主要区别在于,Debug 仅在调试模式下有效,而 Trace 则在调试模式和发布模式下都有效。 方法…