短时间内工作用不到,整合一下以前的收藏以防以后用到
转知乎大佬(已看完):
深入 AXI4 总线(O)专栏目录与资料集合 - 知乎 (zhihu.com)
各信号介绍(但是看样子不像是AXI4):
(1条消息) AXI总线协议资料整理_誓约胜利之舰的博客-CSDN博客_axi rid
outstanding问题
AXI outstanding理解 - 知乎 (zhihu.com)
burst 传输可以减少地址通道的交互,提升单笔传输的效率
outstanding 可以减少多笔传输之间的等待,提升多笔传输的效率
乱序和交织:
AXI总线的out of order/interleaving到底是怎么一回事?_Ericcoding的博客-CSDN博客_axi的out of order
乱序针对burst,交织针对transfer
超详细(没看完):
AXI死锁:
蔚来一面的时候问了AXI死锁:
AXI4协议移除了WID,那么master连发多个trans时,aw 通道虽然和w通道隔离,但是顺序就必定要一致了,否则无法判断WDATA到底是哪个AWADDR的。那么对于AXI3呢?虽然AXI3协议有WID,但是协议规定WDATA第一笔必须和顺序一致。怎么理解呢?比如AW通道发送ADDR0, ADDR1,ADDR2 三笔写操作,每个写操作burst length=2,那么W通道的顺序在AXI4协议的规定下必须是WDATA0_0,WDATA0_1,WDATA1_0,WDATA1_1,WDATA2_0,WDATA2_1;而AXI3协议稍微宽松一点可以是WDATA0_0, WDATA1_0, WDATA2_0, WDATA0_1, WDATA1_1, WDATA2_1,即3个*_0之间的顺序不能乱。所以对于马上讲到的第二种死锁,AXI3,AXI4不会因为WID而有区别,都存在死锁。
回到第二种死锁,第二种死锁就是因为上述W通道的顺序规定,假设master先后发出写请求trans A和B,对于mater,它要按照协议先把WDATA_A发了,再发WDATA_B。如果SLAVE先收到了ADDR_B,再收到ADDR_A,那么按协议,它前面的总线接口就要等WDATA_B来才会给SLAVE,而WDATA_B注定是等不到。
WB还在master的接口处,无法发送到总线上。因为按照master 地址通道先transA再transB的顺序,WA必须被slave接收并完成握手(bvalid,bready握手),才能接着发WB,所以WB目前发不出来。然而slave因为先收到了AWB,再AWA,所以它只愿意接收WB,WA卡在图里的总线不被接收,所以WA永远不被接收,进而WB也永远不能发出。
解决方法:重排序
标签:WB,总线,WDATA,死锁,AXI4,AXI,合集 From: https://www.cnblogs.com/xkxxxy/p/17389237.html