AMBA4 AXI 五个通道
1. 五个独立通道
- 只支持单向传输,由主机发起读写请求。
- 通道分别为:
- 写数据 W
- 写地址 AW
- 读数据 R
- 读地址 AR
- 写回复 WR
- 没有读回复通道的原因:读回复借用了读数据通道。思考读回复和写回复的数据流向,两者都是从机给主机,对于读操作,读回复可以和读数据一起给到主机,但是写数据是主机到从机,与写回复方向相反。
2. 读写传输操作
2.1 写传输操作
- 首先主机在写地址通道(AWC)发送给从机地址和控制信息(突发传输相关信息)。
- 之后主机在写数据通道(WDC)向从机不断写入数据。(也可以与上一步同时。或提前(可以提前的原因是从机设计缓存写数据功能))
- 等待WLAST信号拉高,传输完成。
- 传输完成之后从机向主机在写回复通道(WRC)反馈一个信号BRESP。
- 主机接收到写回复信号,代表了整个传输的结束。
- 注意:AXI协议并没有对写数据和写地址通道的握手信号先后顺序做要求。(关键在于写数据和写地址没有绝对的顺序,见上解释)
2.2 读传输操作
- 首先主机在读地址通道(ARC)发送给从机地址和控制信息。
- 读数据必须在读地址之后,有地址,才知道将哪的数据读出。
- 从机接收到地址后,就将地址上的数据通过读数据通道(RC)传输给主机。
2.3 通道定义
- 5个通道都使用VALID/READY握手机制。
- 对于两个数据通道,突发传输的最后一个数据同时要拉高LAST信号,该信号拉高方便主机和从机之间的握手或信号控制。
- 写数据通道有设计缓存,可以在从机响应本次写传输前发起下一次写传输。
3. 通道信号
3.1 全局信号
- ACLK,上升沿开始传输。
- ARESETn,同步复位信号。
3.2 写地址通道
- 基础信号:AWADDR(起始地址)、AWVALID、AWREADY。
- 突发传输信号:AWLEN(传输数据个数)、AWSIZE(传输数据位宽)、AWBURST(突发传输类型)。
- 其它信号,原子操作相关:AWPROT、AWCACHE、AWLOCK等。
3.3 读地址通道
- 与写地址通道类似。
3.4 写数据通道
- WDATA、WVALID、WREADY
- WSTRB:标记传输数据中有效的字节,位宽对应一个字节的位宽。
- WLAST:根据BURST_Len可以计算出何时传输完成,为什么还需要WLAST信号?
- 参考这篇文章评论区的回答。
- 从机接收的写数据可能错过了前面一个或多个数据,导致长度不足WLEN,但是主机认为自己都发送结束了,从机计算的长度迟迟达不到WLEN,那么就会一直等待。
3.5 写回复通道
- BVALID、BREADY
- BRESP
- 返回传输状态。会在后面具体介绍。
3.6 读数据通道
- 与写数据通道区别
- 读回复信号RRESP在读数据通道上传递。
4. 传输波形
- AXI写
- AXI读
如有问题,请指正!!