协议:AMBA? AXI and ACE Protocol Specification ISSUE H.c
AXI has the following rules governing the use of bursts: ? For wrapping bursts, the burst length must be 2, 4, 8, or 16. ? A burst must not cross a 4KB address boundary. ? Early termination of bursts is not supported.
1、4KB问题 关于axi协议里面burst的4k问题https://blog.csdn.net/hit_shaoqi/article/details/53245521 2、burst_length=2、4、8、16** start_address:Axaddr,The start address that is issued by the Manager. Number_Bytes:= 2^AxSIZE,The maximum number of bytes in each data transfer. Burst_Length = AxLEN + 1 Aligned_Address = (INT(Start_Address / Number_Bytes)) × Number_Bytes Address_1 = Start_Address Wrap_Boundary = (INT(Start_Address / (Number_Bytes × Burst_Length)))× (Number_Bytes × Burst_Length) Address_N = Wrap_Boundary + (Number_Bytes × Burst_Length) Address_N = Start_Address + ((N – 1) × Number_Bytes) – (Number_Bytes × Burst_Length) 3、example
addr=ff0,size=4,burst_length=8.
Aligned_Address=INT(ff0/2^4)x2^4=ff0
Address_1=ff0
Wrap_Boundary=INT(ff0/(10x8))X(10x8)=f80
Address_N=f80+80=1000
地址正好处于4k边界。
addr=ff0,size=4,burst_length=5.
Aligned_Address=INT(ff0/2^4) x 2^4=ff0
Address_1=ff0
Wrap_Boundary=INT(ff0/(10x5))X(10x5)=ff0
Address_N=ff0+50=1040
地址跨越4k边界。
addr=ff8,size=4,burst_length=16.
Aligned_Address=INT(ff8/2^4) x 2^4=ff0
Address_1=ff0
Wrap_Boundary=INT(ff0/(10x10))X(10x10)=f00
Address_N=f00+100=1000
地址正好处于4k边界。 4、仿真测试
|