最近学习了DDR3控制器的使用,也用着DDR完成了一些简单工作,想着以后一段可能只用封装过后的IP核,可能会忘记DDR3控制器的一些内容,想着把这个DDR控制器的编写过程记录下来,便于我自己以后查看吧,哈哈哈,闲话少说开始工作。这个DDR3控制器分两节内容吧,第一节就是MIGIP核的简单介绍和生成这个IP核再介绍一下自己封装这个IP的整体架构,第二节就来介绍一下各个模块的内容。
1.1 MIG IP 核介绍
1) MIG IP核架构
通过查阅ug586_7Series_MIS,我们可以看到MIG这个IP核的架构如下,直观可以看出,MIG主要有面向用户端口和面向DDR端口,用户通过使用MIG能够通过用户端口的信号,来完成对DDR SDRAM的访问,达到简化操作的目的。
我们重点要关注的就是用户端口的这些信号,在这里我们主要介绍一下我们将使用到的信号,具体信号的含义,可以去datasheet中查看具体信号的作用。
2) cmd path signals(命令通道信号)
首先我们需要了解与用户命令相关的信号,并且了解命令能够被正确接收的时序。在下面的接口列表中信号的I/O方向均是相对MIG IP核而言的。
端口名称
I/O
位宽
备注
app_cmd
I
3
命令总线,3’b000表示写命令,3’b001表示读命令
app_addr
I
29
将要访问的DDR内存地址,具体位宽与用户生成IP核