1.与DDR3芯片相连的管脚
与DDR3芯片相邻的管脚,通常是以ddr3为前缀的,在这里我们不需要对其进行特殊的配置,只需要注意一个管脚,那就是init_calib_complete的管脚,它表示DDR3在初始化、校验完成以后的标志信号(也包含模式寄存器配置完成),在这个信号拉高之前,我们不能对DDR3芯片进行读写操作,不能通过AXI接口对DDR3进行任何操作
2.AXI的接口(写地址接口)
上述为AXI的读接口和写接口,读接口是由读数据和读地址组成的,写接口是由写地址、写数据和写响应组成的。其中写响应是写传输结束的标志。AXI写地址如何配置
(1)s_axi_awlen:写突发长度,其配置应该去看芯片手册,如下图:
通过手册可以看出,突发长度为:awlen+1,若awlen=2,则写突发长度为3
(2)s_axi_awsize:每个数据传输的字节数
如图对应的图表,假设我们将axsize设置为4(0b100),那么它就对应着16byte(字节),由于1个byte=8bit,那么写入的数据(wdata)的位宽128bit,这一项与数据位宽完全挂钩
(3)s_axi_awburst:设置突发类型
一般这里我们设置为1(0b01),表示INCR(自增),这里说的自增是地址的自增,假设我们上面的突发长度设置为8,则第一个地址作为首个数据的存储空间,然后地址自动加一,作为第二个数据的存储空间。
(4)s_axi_valid与s_axi_ready
这两个信号是用来握手的,valid是从主机发出的,ready是从从机发出的,如图:
当valid和ready同时为高,表示握手成功,数据才是有效的,握几次手传输几次数据。
3.AXI的接口(写数据接口)
(1)s_axi_wstrb:写入选通(相当于掩码),其位宽为16bit,假设数据位宽为128bit,那么wstrb的一个bit就对应数据的8个bit,则wstrb[n]------>wdata[8n+7:8n]在下次操作的时候就不在进行操作