什么是AXI?
AXI(Advanced eXtensible Interface)是一种高性能、高带宽的片上总线接口协议,常见于现代的 FPGA、ASIC 设计中,被广泛应用于连接处理器、内存、外设以及其他硬件模块之间。AXI 接口提供了一种灵活、可扩展的通信方式,有助于提高系统性能和效率。
AXI 接口协议定义了一系列规范和标准,包括 AXI4、AXI4-Lite、AXI4-Stream 等,每种规范有不同的特性和用途。以下是 AXI4 接口的一些基本特性:
- 多通道:AXI 支持多个读写通道,可以同时进行读取和写入操作,提高了总线的吞吐量。
- Out-of-order:允许乱序执行读写请求,提高系统的并行性能。
- Burst transfers:支持突发传输,可以一次性传输多个数据。
- 数据信号和控制信号分离:AXI 使用不同的通道传输数据和控制信息,增加了灵活性。
- 地址信息传输:明确的地址信号传输,指示了数据传输的目的地址。
- 流水线设计:允许数据在流水线中传输,从而减少延迟。
AXI 接口的具体实现需要根据具体的设计和要连接的硬件进行。在 Verilog 或 VHDL 中,你可以实现 AXI 接口的逻辑,以及连接各种外设或内存模块。这通常需要遵循 AXI 协议的规范和数据传输的相关细节。
【嵌入式实验背景】
AXI 互联接口作为 ZYNQ PS 和 PL 之间的桥梁,能够使两者协同工作,进而形成一个完整的、高度集成的系统。在 PL 端调用 AXI GPIO IP 核,并通过 AXI4-Lite 接口实现 PS 与 PL 中 AXI GPIO 模块的通
信
什么是软核什么是硬核?
AXI GPIO IP 核为 AXI 接口提供了一个通用的输入/输出接口。与 PS 端的 GPIO 不同,AXI GPIO 是一个软核(Soft IP),即 ZYNQ 芯片在出厂时并不存在这样的一个硬件电路,而是由用户通过配置 PL 端的逻辑资源来实现的一个功能模块。而 PS 端的 GPIO 是一个硬核(Hard IP),它是一个生产时在硅片中实现的功能电路。
AXI GPIO的设置:
AXI GPIO 可以配置成单通道或者双通道,每个通道的位宽可以单独设置。另外通过打开或者关闭三态缓冲器,AXI GPIO 的端口还可以被动态地配置成输入或者输出接口。其顶层模块的框图如下所示:
实验任务
本章的实验任务是通过调用 AXI GPIO IP 核,使用中断机制,实现启明星底板上 PL 端按键 PL_KEY0控制核心板上 PS 端 LED2 亮灭的功能。
通过PL端的中断机制出发PS端的MIO引脚。
PL和PS通过AXI连接通信
串口通信(Serial Communication): 在串口通信中,"RX" 通常代表接收端口,用于接收数据。例如,在串口通信中,你可能会有一个 "TX"(发送)引脚和一个 "RX"(接收)引脚。
配置DDR
配置URAT串口
配置PL中断
用MIO连接LED
添加IP核AXI GPIO
连接,布局布线
在执行了自动连接之后,工具自动添加了两个 IP 核,分别是 AXI 互联(AXI
Interconnect)和处理器系统复位(Processor System Reseet)。
AXI Interconnect IP 核用于将一个(或多个)AXI 存储器映射的主器件连接到一个(或多个)存储器映射的从器件。在这里我们解释一下这个术语——互联(Interconnect):互联实际上是一个开关,它管理并指挥所连接的 AXI 接口之间的通信
橙色高亮的两组信号线表明,在这个设计中,AXI 互联实
现了由主器件(ZYNQ7 PS)到从器件(AXI GPIO)一对一的连接。它也可以实现一对多、多对一以及多对多的 AXI 接口连接。
Processor System Reseet IP 核为整个处理器系统提供复位信号。它会处理输入端的各种复位条件,并在输出端产生相应的复位信号。在本次实验中,Processor System Reseet 接收 ZYNQ7 PS 输出的异步复位信号FCLK_RESET0_N,然后产生一个同步到 PL 时钟源 FCLK_CLK0 的复位信号 peripheral_aresetn,用于复位PL 端的各外设模块,如下图所示:
设置GPIOip:位宽为1连接一个key,使能中断,设置完成,将中断端口连接
“Validate Design”验证设计。
依次执行“Generate OutputProducts”和“Create HDL Wrapper”。
配置管脚
生成二进制文件(综合实现生成二进制)
导出硬件
【软件设计】
试验成功: