ambaaxi4协议内容摘要:
(2)在从设备通过确认 RVALID信号开始返回数据前,必须等待 确认所有的 ARVALID和 ARREADY信号; AXI4交易通道的握手信号关系 AXI4写交易的握手信号关系 • 图。 图 写交易中的握手之间的依赖关系 AXI4交易通道的握手信号关系 AXI4写交易的握手信号关系 在写交易中: (1) 在确认 AWVALID和 WVALID信号前,主设备不需要等待从 设备确认 AWREADY或者 WREADY信号; (2) 在确认 AWREADY前,从设备能等待 AWVALID或 WVALID 信号,或者全部这两个信号; (3) 在确认 WREADY前,从设备能等待 AWVALID或 WVALID信 号,或者全部这两个信号; (4) 从设备在确认 BVALID前,从设备必须等待确认所有的 AWVALID和 AWREADY信号; (5) 在确认 BVALID前,从设备不需要等待主设备确认 BREADY 信号。 (6) 在确认 BREADY前,主设备能等待 BVALID信号; AXI4猝发类型及地址计算 AXI4猝发类型 AXI协议中定义了三种猝发类型: (1) 固定猝发( Fixed burst); (2) 递增猝发( Incrementing burst); (3) 包裹猝发( Wrapping burst) 表 ARBURST和 AWBURST信号所选择的 猝发类型: AXI4猝发类型及地址计算 AXI4猝发类型 ARBURST[1:0] AWBURST[1:0] 猝发类型 描述 访问 00 固定( FIXED) 固定地址猝发 FIFO类型 01 递增( INCR) 递增地址猝发 通常的顺序存储器 10 包裹( WRAP) 递增地址猝发,但是在边界时,返回到低地址。 高速缓存行 11 保留 AXI4猝发类型及地址计算 AXI4猝发类型 对于包裹式的猝发方式,有两个限制: (1) 开始地址必须对齐传输大小; (2) 猝发的长度必须是 2, 4, 8或 16。 (3) 大于 16拍的猝发传输只支持 INCR类型。 WRAP和 FIXED类型只限于小于 16拍的猝发传输。 AXI4猝发类型及地址计算 AXI4猝发地址 为了说明猝发交易过程中地址的计算方法,首先给出 计算过程中,所需要使用的一些术语: (1) Start_Address: 主设备给出的开始地址; (2) Number_Bytes: 每次数据传输过程中最大的字节个数; (3) Data_Bus_Bytes: 数据总线上的字节通道的个数; (4) Aligned_Address: 开始地址的对齐版本; (5) Burst_Length: 在一个猝发中数据传输的总个数; (6) Address_N: 在一个猝发中传输 N个的地址; (7) Wrap_Boundary: 在一个包裹猝发方式的低地址; (8) Lower_Byte_Lane: 一个传输最低寻址字节的字节通道; (9) Upper_Byte_Lane: 一个传输中最高寻址字节的字节通道; (10) INT(x): x取整操作; AXI4猝发类型及地址计算 AXI4猝发地址 给上面的术语进行如下的赋值操作: (1) Start_Address=ADDR; (2) Number_Bytes=2SIZE; (3) Burst_Length=LEN+1; (4)Aligned_Address=(INT(Start_Address/Number_Byte))x Number_Bytes; AXI4猝发类型及地址计算 AXI4猝发地址 • 在一个猝发中,第一个传输的地址表示为: Address_1=Start_Address; • 在一个猝发中,传输 N个数据后的地址表示为: Address_N=Aligned_Address+( N1) x Number_Bytes; • 对于 WARP的猝发方式,其边界由下式确定为: Wrap_Boundary=(Int(Start_Address/(Number_Bytes x Burst_Length))) x (Number_Bytes x Burst_Length); 如果 Address_N=Wrap_Boundary+(Number_Bytes x Burst_Length). 则使用这个等式: Address_N=Wrap_Address 在边界后,使用这个等式: Address_N = Start_Address + ((N – 1) x Number_Bytes) – (Number_Bytes x Burst_Length); AXI4猝发类型及地址计算 AXI4猝发地址 使用下面的等式确定第一个传输中使用哪个字 节通道: Lower_Byte_Lane = Start_Address (INT(Start_Address / Data_Bus_Bytes))x Data_Bus_Bytes Upper_Byte_Lane = Aligned_Address + (Number_Bytes – 1) (INT(Start_Address / Data_Bus_Bytes)) x Data_Bus_Bytes; AXI4猝发类型及地址计算 AXI4猝发地址 使用下面的等式确定在一个猝发中第一个传输 后用于所有传输中使用哪个字节通道: • Lower_Byte_Lane = Address_N – (INT(Address_N / Data_Bus_Bytes)) x Data_Bus_Bytes; • Upper_Byte_Lane = Lower_Byte_Lane + Number_Bytes – 1; • 传输数据的范围在: • DATA[(8xUpper_Byte_Lane) + 7 : (8 x Lower_Byte_Lane)]; AWCACHE和 ARCACHE属性 AWCACHE[3:2]和 ARCACHE[3:2] AWCACHE[2]和 ARCACHE[2]为读分配位。 AWCACHE[3]和 ARCACHE[3]为写分配位。ambaaxi4协议
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。