概括
在上一章节,我们主要概括了AXI4协议的通道结构,VALID和READY的握手机制和传输方式,在这一章节会详细讲解AXI4协议的读写时序内容。
1.写突发示例
图1显示了一个写事务,当主设备在写地址通道上发送地址和控制信息时,该过程开始。AWVALID和AWADDR必须由主设备主动发起,不能依赖AWREADY信号,当主设备主动发起有效的写地址(AWVALID为高时,AWADDR需要保持),从设备拉高AWREADY,在T1-T2时刻AWADDR信号被从机接收。当主设备发送完地址并被从设备接收后,主设备开始发送写数据。发送写数据时,WVALID拉高表示WDATA有效,在从设备没有接收数据时(WVALID为高,WREADY为低),WDATA需要保持,直到从设备接收到数据(WVALID和WREADY同时为高)。主设备再发送下一个数据。在图1中,T3-T4时刻,从设备接收第一个数据,T5-T6时刻,从设备接收第二个数据,T7-T8时刻,从设备接收第三个数据,T8-T9时刻,从设备接收低四个数据。主设备在传输第4个数据时,WLAST为高,表示第四个数据为本次写突发的最后一个数据。
从设备接收完最后一个写突发数据后,会通过写响应通道发送响应状态,BVALID拉高时,BRESP有效,BRESP指示响应状态,如图2所示。
根据访问类型来读取BRESP的状态是否正确,如图3所示。我们在配置接口信号时,选择正常访问,(AWLOCK/ARLOCK为0)。所以在BVALID为高时,BRESP为0表示写突发正常完成。主设备的BREADY信号可以一直为高,因为从设备发送完写响应状态后,会主动拉低BVALID,直到下一次写突发完成才会再次拉高BVALID发送写响应状态。
2. 读突发示例
图4显示了一个读事务,主设备拉高ARVALID,并发送读地址,在ARVALID拉高时, ARADDR有效,当从设备接收到读地址后(ARREADY拉高),主设备拉低ARVALID,表示读地址发送完成。之后从机会发送读数据,当RVALID和RREADY同时为高时,读数据被主设备接收,从设备发送本次读突发的最后一个数据时,会拉高RLAST,当RREADY、RVALID、RLAST同时为高后,表示本次读突发完成。
3.DDR4读写测试
在清楚DDR4的AXI接口读写时序后,我们用仿真来验证一下DDR4的AXI接口的读写功能,首先在awvalid拉高时给出各种控制信号和写地址。
awlen: 将要向DDR中写入的数据数量为awlen+1。
awsize: 表示写入的数据位宽大小,(字节数)2^X=(写数据)wdata的位宽/8,X为awsize。
wstrb:输入的数据字节掩码,数据位宽512位,含有64个字节,wstrb位宽为64位,每一位对应数据wdata的字节位,在本次仿真测试中,使wdata的全部字节有效。
awburst: 突发类型。
2’b00为FIXED类型,选择类型后本次突发长度的数据都重复访问同一物理地址。
2’b01为INCR类型,选择该类型后续数据的存储地址会在初始地址的基础上递增。
2’b10为WRAP类型,选择该类型后地址会在突发长度边界内回绕。
在写入控制信号和地址后,我们向DDR中写入129个递增数据。如图5所示
在图6中可以看出,在写入最后一个数据时,会拉高wlast,之后bvalid会拉高,表示接收到写响应状态为0。成功写入DDR内存。
对于读DDR,在发送读地址时和之前发送写地址的时序一样。准备把之前写入DDR4的数据读出来。发送读地址波形图如图7所示。
图8为接收读数据的最后一个数据,在读到第129个数据时rlast会拉高。只有rready和rvalid同时为高时,读数据有效。
至此DDR4中的数据已经全部读出。
总结回顾
本章节讲述了DDR4的AXI读写时序,并通过仿真验证了DDR4的读写功能,本次仿真输入的有效数据为全部字节有效,后续会为大家演示数据掩码的作用,和突发类型的作用,主要验证FIXED、INTR、WRAP模式下的突发机制的不同,并详细介绍 WRAP模式的地址边界。
文章来源:威视锐科技


