只是进一步考虑,我认为您不能轻易做到这一点。
256位的AWADDR值给出了256位的起始地址,对于事务中的每次传输,此值都将按AWSIZE值递增。
如果尝试将这256位传输拆分为2个128位从站,每个从站占用数据总线的一半,则每个128位从站将看不到合法的AXI事务。
例如,对于看到WDATA [127:0]的128位从设备,通常256位起始地址是正确的,但是需要看到WDATA [255:128]的128位从设备提供修改后的AWADDR值。 ,修改方式是将起始地址增加16个字节,以便寻址256位路径的上半部分。(我之所以这样说,通常是因为起始地址可能未对齐,这只会造成更多的复杂性)。
然后,对于256位事务中的每个后续传输,下游128位从属不能仅通过其本地AWSIZE值(大概显示128位传输)来递增其自身的起始地址,因为128位递增的数据就是256位从位主机在256位数据总线的另一半上写了出来。
我猜您可以驱动128位总线的AWLEN值来表示原始突发长度的两倍,然后在128位总线上的每个第二次传输都必须具有WSTRB = 16'b0来表示没有数据被写入寻址数据实际上到达了另一个128位从站。
但是我在这里猜测很多。我只是看不到如何轻松地工作。
例如,如果256位主机进行4节拍突发以开始地址0x0,则data列中的数字表示128位数据值...
地址数据
0x00 2 1
0x20 4 3
0x40 6 5
0x60 8 7
...您想在128位从站中存储什么?
wdata [127:0]上的奴隶wdata [255:128]上的奴隶
地址数据地址数据
0x00 1 0x00
0x10 0x10 2
0x20 3 0x20
0x30 0x30 4
0x40 5 0x40
0x50 0x50 6
0x60 7 0x60
0x70 0x70 8
还是要将1 3 5 7数据存储在另一个从站中相同地址的0x00 0x10、0x20和0x30以及2 4 6 8数据中?
无论您需要什么,都需要确保提供给每个从站的AWADDR,AWLEN和AWSIZE值为您提供所需的起始地址和地址增量。