文章目录
一、AXI介绍(参考UG1037:基于VIVADO的AXI参考指南与 IHI0022D)
AXI(高级可扩展接口),是ARM MBA的一部分;
AMBA:高级微控制器总线架构;是1996年首次引入的一组微控制器总线;开放的片内互联的总线标准,能在多主机设计中实现多个控制器和外围设备之间的连接和管理。
二、AXI三种类型
1.AXI4-Lite
axi4分为axi _lite、axi _full、axi _stream,axi_full
AXI4-Lite:简化版的AXI4接口;用于底吞吐率存储器映射的通信
axi _lite协议:
axi _lite接口的地址与数据通道是分离的,各自包含一组信号,数据的传输需要握手应答。包含写地址通道(AW-)、写数据通道(W-)、写应答通道(B-)、读地址通道(AR-)、读数据通道(R-)。
因为读应答信号包含在读数据通道中,因此读过程少一个通道,每个通道的数据传输都需要握手,保证从机能正确接收数据。
首先包括时钟信号ACLK和复位信号ARESETn,剩下的就是几个通道相关的信号了。
注意的点:
1、主机的有效指示信号(写地址有效、写数据有效、读地址有效)必须主动拉高,不能等待从机的应答信号拉高之后在拉高(原因在于部分从机的应答信号信号可能需要等待主机有效信号拉高后才拉高,就会造成主机和从机均在等待对方拉高)。
2、主机写数据和写地址有效指示信号可以同时拉高,加快写入数据效率。
3、主机支持同时进行读写操作,但是不能同时读写同一地址数据。
由于xilinx的部分IP只支持axi总线,PL端在调用该IP时,就必须将普通接口转换为axi接口时序。另外也可以通过axi总线将PL端的模块挂在PS的总线上。
4、axi_lite适合一个数据的读写传输,所以最好是用于GP接口,来用于控制读写寄存器或者一些配置寄存器,如果稍微学习了一下就能理解这个点的意思。
Verilog HDL实现axi_lite_master模块
2.AXI4_full
AXI4(AXI4-FULL):用于高性能的存储器映射需求;(存储映射:主机在对从机进行读写操作时,指定一个目标地址,这个地址对应系统存储空间的地址,表示对该空间进行读写操作)
axi_full协议与axi_lite的主要区别在于支持突发读写(传输指定长度数据只需要发送首地址),从而提高数据读写速率。还支持一些其他功能,但是这些功能对于fpga开发来说一般不会使用,作为了解即可。大部分信号与axi_lite还是一样的,因为支持突发传输,读写数据位宽可变,因此多了突发长度,读写数据大小,突发结束等信号。由于axi_full支持乱序传输,所以在实际使用时,需要判断ID是否对应,从而进行响应操作,如果ID保持为常数,那可以忽略。Axi_full的信号也比较多,与axi_lite一样分为5个通道,其中写地址通道和读地址通道的信号含义和时序均一致。
3.AXI4-Stream(ST)
AXI4-Stream(ST):用于高速的流数据通信
三、AXI握手 &
AXI 协议的五个通道都有各自的 VALID/READY握手信号对,每个通道握手信号对的名称如下图所示:
读事务握手依赖关系遵循以下 2 点:
( 1) 从机可以在 ARVALID 出现的时候在给出 ARREADY 信号,也可以先给出 ARREADY 信号,再
等待 ARVALID 信号。
( 2)但是从机必须等待 ARVALID 和 ARREADY 信号都有效才能给出 RVALID 信号,开始数据传输。
写事务握手依赖关系如下图所示(单箭头的指向信号和起始信号没有必须的先后顺序,双箭头的指向
信号必须在双箭头的起始信号拉高之后进行拉高):
读事务握手依赖关系图:
读事务握手依赖关系遵循以下 2 点:
( 1) 从机可以在 ARVALID 出现的时候在给出 ARREADY 信号,也可以先给出 ARREADY 信号,再
等待 ARVALID 信号。
( 2)但是从机必须等待 ARVALID 和 ARREADY 信号都有效才能给出 RVALID 信号,开始数据传输。
写事务握手依赖关系如下图所示(单箭头的指向信号和起始信号没有必须的先后顺序,双箭头的指向
信号必须在双箭头的起始信号拉高之后进行拉高)
写事务握手依赖关系图:
写事务握手依赖关系遵循以下 6 点:
( 1)主机不必等待从机先给出 AWREADY 或 WREADY 信号后再给出信号 AWVALID 或 WVLAID。
( 2)从机可以等待信号 AWVALID 有效或 WVALID 信号有效或者两个都有效之后再给出 AWREADY
信号。
( 3)从机可以在 AWVALID 有效或 WVALID 信号有效或者两个都有效之前给出 AWREADY 信号。
( 4)从机可以等待 AWVALID 或 WVALID 信号有效或者两个信号都有效之后再给出 WREADY 信号。
( 5)从机可以在 AWVALID 或 WVALID 信号有效或者两个信号都有效之前给出 WREADY 信号
( 6)从机必须在 WVALID 和 WREADY 信号有效之后再给出 BVALID 信号
注意:图中的单箭头,头部的信号可以取决与尾部信号来产生;双箭头,在判断尾部信号的时候必须先判断头部信号。
举例:在判断单箭头头部AWREADY信号时,根据单箭头尾部AWVALID和WVALID信号来判断
(补充代码)
在判断双箭头尾部WREADY信号时,先判断双箭头头部信号BVALID
(补充代码)
四、AXI优点
灵活性:AXI4(支持突发256)和AXI4-Lite(一个数据)都属于存储器映射,AXI4-Stream(ST)不属于存储器映射,它的突发长度不受限制
AXI4和AXI4-Lite包含5个独特的通道:
读地址通道;读数据通道;写地址通道;写数据通道;写响应通道
AXI4:由于读写地址通道式分离的,所以支持双向同时传输;突发长度最大256
AXI4-lite:和AXI4比较类似,但是不支持突发传输
AXI4-Stream(ST):只有一个单一数据通道,和AXI4的写数据通道比较类似
突发长度不受限制。
五、AXI其它(待整理)
AXI interconnect互联和AXI smartconnect
这两个IP核都用于连接单/多个存储器映射的AXI Master和单/多个存储器映射的AXI slave
AXI通道定义:每一个独立的通道都包含一组信息信号、VALID信号和READY信号
用于提供双向的握手机制
信息源端使用VALID信号表示当前通道地址、数据和控制信息什么时候有效,目的端使用READY信号表示什么时候可以接收信息,读数据通道和写数据通道都包含一个LAST信号,用于表示传输的最后一个数据。
读数据通道和写数据通道都包含各自的地址通道,地址通道
携带了请求所需的地址和信息
读数据通道由从机发送给主机,包含了读数据和读响应的信息,读响应的信号用于表示读传输是否操作完成;
写数据通道是有主机发送给从机,包含了写数据,然后通过WSTRB信号表示当前数据的那个字节有效
写响应通道由从机发给主机,包含了 写响应信号,用于表示当前写操作是否完成。
握手机制
所有的五个通道都是通过相同的VALID/READY握手处理来传输地址、数据和控制信息
双向握手的机制意味着主机和从机之间传输数据时,都可以控制传输的速率
只有当VALLD和READY同时为高电平时,传输才会发生。
AXI4-LITE
适用于当不需要AXI4完整功能的时候,一些简单的
axi写模块使用axi_master_writer ,注释din_valid 和din_ready 同时有效代表数据有效
axi读模块使用axi_master_read,注释dout_valid 和dout_ready 同时有效代表数据有效
总结
AXI4是学习ZYNQ的PL与PS交互通信的重要部分,必须弄懂原理时序,后续在进行实时整理更新