AMBA4 AXI 相关理解(二)
发布时间 2023-06-08 13:15:50作者: 可达达鸭
1. 五个独立通道
- 只支持单向传输,由主机发起读写请求。
- 通道分别为:
- 写数据 W
- 写地址 AW
- 读数据 R
- 读地址 AR
- 写回复 R
- 没有读回复通道的原因:读回复借用了读数据通道。思考读回复和写回复的数据流向,两者都是从机给主机,对于读操作,读回复可以和读数据一起给到主机,但是写数据是主机到从机,与写回复方向相反。
2. 读写传输操作
2.1 写传输操作
- 首先主机在写地址通道(AWC)发送给从机地址和控制信息(突发传输相关信息)。
- 之后主机在写数据通道(WDC)向从机不断写入数据。(也可以与上一步同时。或滞后(可以滞后的原因是从机设计缓存写数据功能))
- 从机接收到所有的数据之后向主机在写回复通道(RC)反馈一个信号。
- 主机接收到写回复信号,代表了整个传输的结束。
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 写回复通道
3.6 读数据通道