FPGA控制DDR读写(AXI4总线接口)
本文适用于FPGA控制DDR读写
- MIG核
- MIG信号注释
DDR型号为 MT41K256M16TW-107
下面是MIG IP核的相关信号
图2.1.1
图2.1.2
由于我选择是AXI4的总线接口,所以我们首先要了解一下AXI4总线协议
直接看一下AXI4的时序
突发式读的时序图:
当地址出现在地址总线后,传输的数据将出现在读数据通道上。设备保持VALID为低直到读数据有效。为了表明一次突发式读写的完成,设备用RLAST信号来表示最后一个被传输的数据
图2.1.3
突发式写的时序图:
这一过程的开始时,主机发送地址和控制信息到写地址通道中,然后主机发送每一 个写数据到写数据通道中。当主机发送最后一个数据时,WLAST信号就变为高。当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成。
图2.1.4
- 全部5个通道使用相同的VALID/READY握手机制传输数据及控制信息。传输源产生VLAID信号来指明何时数据或控制信息有效。而目地源产生READY信号来指明已经准备好接受数据或控制信息。传输发生在VALID和READY信号同时为高的时候。VALID和READY信号的出现有三种关系。
- VALID先变高READY后变高。时序图如下:
在箭头处信息传输发生。
- READY先变高VALID后变高。时序图如下:
同样在箭头处信息传输发生。
- VALID和READY信号同时变高。时序图如下:
在这种情况下,信息传输立马发生,如图箭头处指明信息传输发生。
- 通道之间的关系
地址、读、写和写响应通道之间的关系是灵活的。
例如,写数据可以出现在接口上早于与其相关联的写地址。也有可能写数据与写地址在一个周期中出现。
两种关系必须被保持:
(1)读数据必须总是跟在与其数据相关联的地址之后。
(2)写响应必须总是跟在与其相关联的写事务的最后出现。
- 通道握手信号之间的依赖性
读事务握手依赖关系如图:
- 设备可以在ARVALID出现的时候在给出ARREADY信号,也可以先给出ARREADY信号,再等待ARVALID信号。
- 但是设备必须等待ARVALID和ARREADY信号都有效才能给出RVALID信号,开始数据传输。
写事务握手依赖关系如图:
- 主机必须不能够等待设备先给出AWREADY或WREADY信号信号后再给出信号AWVALID或WVLAID。
- 设备可以等待信号AWVALID或WVALID信号有效或者两个都有效之后再给出AWREADY信号。
- 设备可以等待AWVALID或WVALID信号有效或者两个信号都有效之后再给出WREADY信号。
基本上我们掌握上面的AXI4的总线时序,那么我们就可以直接控制AXI4的信号来驱动DDR的读写
下面我们看一下AXI4相关的控制模块
图2.1.5
这个模块的功能是是控制AXI4总线
下面附上此模块的链接