关于 AXI协议的学习解释说明

一、 AXI有几个通道

AXI 有5个通道:
1、写地址通道信号;
2、写数据通道信号;
3、写响应通道;
4、读地址通道;
5、读数据通道;

二、 什么是支持 outstanding

Outstanding 支持的多少是需要设定的。举个例子,如果 outstanding设为5,对于写来说,可以连续发送5个写操作而不用等待bresponse的响应,否则必须等待有一个responese回来才能发送下一个写操作,对于读来说,是通过rlast信号来看是否有respone,也类似于写操作;

也就是说,如果没有respone的操作超过了outstanding的值,则会通过拉低响应的ready信号,从而不能发送有效操作;

三、 各个通道的时序关系:

1、读地址通道:

output [0: 0]   master_axi_arid; // axi read command ID

output [35: 0]  master_axi_araddr; // axi read command address

output [3:0]  master_axi_arlen; // axi encoded read command length

output [2:0]  master_axi_arsize; //axi encoded read command size

output [1:0]  master_axi_arburst; // axi read command burst type.

output [1:0]  master_axi_arlock; // axi atomic access indicator

output [3:0]  master_axi_arcache; //axi cache control os for the read.

output [2:0]  master_axi_arprot; // axi read command protection type.

output        master_axi_arvalid; // axi read command valid indicator.

input         master_axi_arready; // indicates that aix is ready  to accept the read command.

2、读数据通道:

Input [0:0]    master_axi_rid;     // axi read data ID.

Input [255:0]  master_axi_rdata ;  // axi read data.

Input [1:0]    master_axi_rresp ;  // aix read data response a response is sent with each burst indicating the status of the burst.   

input        master_axi_rlast;  // Indicates that this is the final world of the data for the command.

input        master_axi_rvalid; // axi read data valid indicator.

output       master_axi_rready; // indicates that the axi master is ready to accept read data.

3、读地址和读数据的时序关系:

 


4、写地址通道:

output [0: 0]   master_axi_awid; // axi write command ID

output [35: 0]  master_axi_awaddr; // axi write command address

output [3:0]  master_axi_awlen; // axi encoded write command length

output [2:0]  master_axi_awsize; //axi encoded write command size

output [1:0]  master_axi_awburst; // axi write command burst type.

output [1:0]  master_axi_awlock; // axi atomic access indicator

output [3:0]  master_axi_awcache; //axi cache control os for the read.

output [2:0]  master_axi_awprot; // axi read command protection type.

output        master_axi_awprot; // axi read command valid indicator.

input         master_axi_awready; // indicates that aix is ready  to accept the read command.

5、写数据通道:

output [0:0]    master_axi_wid;     // axi write data ID.

output [255:0]  master_axi_wdata ;  // axi write data.

output [31:0]    master_axi_wstrb ;  // axi write data strobe.

output        master_axi_wlast;  // Indicates that this is the final world of the data for the command.

output        master_axi_wvalid; // axi write data valid indicator.

input         master_axi_0_wready; // indicates that the axi master is ready to accept write data.

6、写响应通道:

input [0:0]     master_axi_bid;    // AXI write respone ID.

input [1:0]     master_axi_bresp;  // AXI write respone A responese is sent for the entire burst.

input         master_axi_bvalid;  // AXI write response valid indicator.

input         master_axi_bready; // Indicates that the AXI master is ready to accepta write respone.

7、写地址、写数据、写响应的时序关系:

 


四、 传输顺序说明;

AXI 协议可以完成按照固定顺序的传输操作,其通过接口给每一个传输操作一个ID标记,协议要求具有相同的ID标记的传输要按照指定顺序完成,但是不同的ID的传输可以不按照制定的顺序进行传输; 完成乱序传输的能力意味着可以完成向快速内存的传输,不用等待之前向慢速内存的传输,这样可以提高系统的性能,减少不必要的等待时间; 

读传输握手信号之间的依赖关系(两个箭头之间是有时序前后关系的):

 


写传输握手信号之间的依赖关系(两个箭头之间是有时序前后关系的):

 


通道间关联:

地址通道,读通道,写通道和写响应通道之间的关联很灵活。

例如,写数据能够在与它相关的写地址之前出现,当写地址通道包含寄存器多于写数据通道的时候, 就会出现这种情况,写数据和写地址出现在同一周期也是有可能的。

版权声明:本文为CSDN博主「angelbosj」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/angelbosj/article/details/79773434

最新文章