AMBAaxi的特点:
适合高带宽和低延迟的设计;
能够在不适用复杂桥的情况下确保高频操作;
满足广泛组件的接口需求;
适合于带有高初始化延迟的内存控制器;
为互联架构的实现提供灵活性;
对单一地址突发传输,AXI4 Full最大支持256数据传输周期。
AXI4三种类型:
AXI4 Full,高性能“存储器映射”(主机对从机读写操作时,指定目标地址,这个地址对应系统存储空间)。
AXI4 Lite,低存储量存储器映射。
AXI4 Stream(St),高速流数据接口。
AXI4.0 FULL特征:
- 独立的地址和数据总线。
- 独立的读写通道。【双向传输】
- 支持不对齐数据传输,使用字节选通。
- 使用基于突发的数据的数据传输。
- 相比3.0的改变,比如删除wid信号,数据只能以in order形式。但可以通过IP核兼容。
AXI的事务过程内容:
共5个通道,RA、RD、WA、WD、WR(write response channel);
每一个事务都有地址和控制信息在地址通道里(描述被传输数据的性质);
AXI读写事务的基本模型;
通道之间相互独立且各自包含信息信号和双路的valid、ready握手信号;
读数据和写数据通道包括last信号指示最后一个数据;
写数据通路传送主机向设备的写数据,每八个数据有一个byte lane,用来指明数据总线上面的哪些byte有效;
只有当valid和ready同时为高时,地址和数据有效;
突发式:LAST信号和最后一个数据一起传递。
信号描述:
包括全局信号、写地址通道信号、写数据通道信号、写响应通道信号、读地址通道信号、读数据通道信号、低功耗接口信号;
32位数据总线、4位写数据闸门、4位ID段;
AXI允许不同IDtag乱序完成,但相同tag必须有序完成;
全局信号有ACLK、ARESETn;
通道信号都包括ID段;
写地址通道信号除基本的之外,还有AWLEN[2:0]、AWSIZE[2:0]、AWBURST[1:0](写类型)、AWCACHE[3:0](cache类型,指明事务的信息)、AWLOCK[1:0]、AWPROT[2:0](保护类型)等;
写数据通道信号还有WSTRB[3:0](写阀门,WSTRB[n]标志区间为WDATA[((8n+7):8n]);
写响应通道信号;
读地址通道信号还有ARLEN[2:0]、ARSIZE[2:0]、ARBURST[1:0](读类型)、ARLOCK[1:0]、ARCACHE[3:0](cache类型)、ARPROT[2:0];
读数据通道信号里就有RRESP[1:0];
低功耗接口信号有CSYSREQ(来自系统时钟控制器,使外围设备进入低功耗状态)、CSYSACK、CACTIVE(clock active)。
通道之间的关系:
地址、读、写和写响应通道之间的关系是灵活的;
但有两种关系要保持
(1)读数据必须总是跟在与其数据相关联的地址之后。
(2)写响应必须总是跟在与其相关联的写事务的最后出现。
握手信号之间依赖性——读事务和写事务
手册中,can系列看多了觉得都是废话,但最好还是按照规范来写;
手册中的must是一定要遵守的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pu3P8TUJ-1649152977117)(E:\Desktop\笔记\image-20210709151252458.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dTcn2ArP-1649152977118)(E:\Desktop\笔记\image-20210709151658128.png)]
(单箭头指向的信号可以提前或滞后;双箭头指向的信号必须滞后)
AXI突发式读写类型:
突发式读写对齐4KB;
信号AWLEN或信号ARLEN指定每次突发式读写的个数;
ARSIZE或AWSIZE指定每个时钟节拍传输数据的最大位数,最大位数2^size字节;
AXI协议定义了三种突发式读写的类型:
FIXED固定式地址固定,每次传输地址不变,例如FIFO;
INCR增值式地址增加一个固定值(由突发大小决定);
WRAP回环式地址类似增值式,但在地址接近边界时会回到0地址处(我觉得更好翻译成环绕式)
AXI协议中有一些专门含义的用词:具体见手册,下面列出一些代表性的
byte lanes的数量用Data_Bus_Bytes表示;
Aligned_Address是对齐版本的起始地址(注意:Start_Address与size对齐,
而Aligned_Address = (INT(Start_Address / Number_Bytes))x Number_Bytes);
Address_N是一个burst里transfer N的地址(疑问:Address_1和Address_2不会冲突吗)
Lower_Byte_Lane是传输最低有效字节,Upper_Byte_Lane是最高有效字节;
Cache类型:
AWCACHE指定哪个部件提供写响应,如果被指定为bufferable则接收桥或系统级的cache提供的写响应;如果是non-bufferable,则写回应必须由最终目的源提供;
AWPROT[2:0]或ARPROT[2:0]提供三种级别的存取保护;
AXI独占式存取和锁存取:
ARLOCK[1:0]或AWLOCK[1:0]指定;
RRESP[1:0]或BRESP[1:0]指明独占式存取是否成功;
是否支持要看设备,具体实现要看手册;
AXI读写事务的设备响应:
读事务响应和数据一起发送给主机,而写事务有写响应通道;
响应类型4种,OKAY、EXOKAY、SLVERR、DECERR,由RRESP或BRESP指明;
AXI要求一个传输事务中所有数据都必须传输完成,即使是有错误状态发生;
AXI用IDtags来处理多地址和乱序传输:
5种事务IDs,AWID、WID、BID、ARID、RID;
主机可以使用一个事务的ARID或AWID段提供的附加信息关于主机需要的排序:
不同主机、或同一主机的不同ID事务,没有先后顺序限制
相同数值的AWID要按照顺序依次写入主机发送的地址
相同数值的WRID读事务,若来自相同设备则按照相同的地址顺序接收
相同WRID读事务,若来自不同设备则interconnect确保读数据按照主机发送的相同地址的顺序返回
相同的AWID和ARID的读写事务之间没有先后顺序限制,若主机要求顺序,那么确保第一次事务完成后再执行第二个事务
当一个主机接口与interconnect相连时,interconnect会在信号ARID、AWID、WID段加一位,每一个主机端口都是独一无二的;
对于读数据, interconnect附加一位到 RID 段中,用来判断哪个主机端口读取数据;Interconnect会移除 RID 段中的这一位在将 RID 的值送往正确的主机端口之前。
AXI的数据总线mixed-endian transfers的实现。
握手机制:
所有通道通过valid和ready握手来处理传输地址、数据、控制信息。
双向握手使传输数据时速率被控制,当valid和ready同时为高时发生传输。
AXI的不对齐握手传输。
valid信号高电平时,地址、数据、控制信息要保持不变。
AXI时钟和复位信号:
ACLK的上升沿是所有的输入信号的采样;输出信号在上升沿改变。
复位期间:
主机接口ARVALID、AWVALID、WVALID信号置低
设备接口RVALID、BVALID信号置低
其他信号为任意值
主机接口必须在ARESETn信号置高后的第一个ACK上升沿里将ARVALID、AWVLAID、WVALID置高。
AXI低功耗接口。
AXI的信号
信号 | 源 | 描述 |
---|---|---|
ACLK | Clock source | 全局时钟信号 |
ARESETn | Reset source | 全局复位信号 |
AWID[3:0] | 主机 | 写地址ID,信号组的ID tag |
AWADDR[31:0] | 主机 | 写地址,指定突发传输下第一个数据地址 后面的地址根据突发类型和数据量来计算 |
AWLEN[3:0] | 突发长度,相关的Burst_Length有计算公式 | |
AWSIZE[2:0] | 突发大小,指在突发传输模式下单个数据的数据量 1、2、4、8、16、32、64、128字节/传输 | |
AWBURST[1:0] | 主机 | 突发类型 |
AWLOCK[1:0] | ||
AWCACHE[3:0] | 如0010不缓存 | |
AWPROT[2:0] | ||
AWVALID | ||
AWREADY | 从机 | |
WID[3:0] | 主机 | |
WDATA[31:0] | ||
WSTRB[3:0] | 表示当前数据哪个字节有效(类似掩码) | |
WLAST | ||
WVALID | 指明通道写地址和控制信息是否有效 | |
WREADY | 从机 | |
BID[3:0] | 从机 | |
BRESEP[1:0] | 从机 | 写响应,指明从机状态 |
BVALID | 从机 | |
BREADY | 主机 | |
ARID[3:0] | 主机 | |
ARADDR[31:0] | ||
ARLEN[3:0] | ||
ARSIZE[3:0] | ||
ARBURST[1:0] | ||
ARLOCK[1:0] | ||
ARCACHE[3:0] | ||
ARPROT[2:0] | ||
ARVALID | 主机 | |
ARREADY | 从机 | |
RID[3:0] | 从机 | |
RDATA[31:0] | ||
RRESP[1:0] | 从机 | 表示读操作是否完成 |
RLAST | ||
RVALID | 从机 | |
RREADY | 主机 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I20m1E2M-1649152977118)(E:\Desktop\笔记\image-20210709155418288.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-clNOQQkt-1649152977118)(E:\Desktop\笔记\image-20210709155439597.png)]
|
| RREADY | 主机 | |
[外链图片转存中…(img-I20m1E2M-1649152977118)]
[外链图片转存中…(img-clNOQQkt-1649152977118)]