当前位置: 代码迷 >> 综合 >> DDR3:MIG控制器设计(vivado)
  详细解决方案

DDR3:MIG控制器设计(vivado)

热度:65   发布时间:2024-02-11 03:46:46.0

前言DDR SDRAM 全称为 Double Data Rate SDRAM,中文名为“双倍数据流 SDRAM”。DDR SDRAM 在原有的 SDRAM 的基础上改进而来。也正因为如此,DDR 能够凭借着转产成本优势来打败昔日的对手 RDRAM,成为当今的主流。DDR3第四代SDRAM,第一代SDR SDRAM,第二代DDR SDRAM,第三代DDR2 SDRAM,第四代DDR3 SDRAM。 很多人将SDRAM错误的理解为第一代,也就是 SDR SDRAM,并且作为名词解释,皆属误导。

日常·唠嗑:对于深入做项目来说,DDR是必不可少的,特别是在做图像处理或者数据交互的时候。最近在做车牌识别的时候,就遇到了很多关于DDR数据读写的难题,好在查阅相关资料,以及在诸多大佬的帮助下,问题顺利解决了。

进入正文
MIG IP 控制器是 Xilinx 为用户提供的一个 DDR 控制的 IP, 这样用户即使不了解 DDR 的控制和
读写时序也能通过 DDR 控制器方便的读写 DDR 存储器。7 系列的 DDR 控制器的解决方案如下所
示:
在这里插入图片描述
DDR3 控制器包含 3 部分:用户接口模块(User interface Block), 存储器控制模块(Memory
Controller)和 DDR3 的物理接口(Physical Layer)。开发人员只需要开发用户的逻辑设计跟 DDR 控制
器的用户接口对接来读写 DDR3 的数据。关于 DDR3 控制器用户端的接口定义和时序的更多介绍,
大家还是参考 Xilinx 提供的文档(UG586),接下来为大家介绍如何生成和配置 DDR3 控制器吧!

1、首先在 Vivado 环境里新建一个项目,取名为 ddr3_test。再点击 Project Manager 界面下的 IP
Catalog,打开 IP Catalog 界面。
在这里插入图片描述
2、在 IP Catalog 界面里双击 Memories & Storage Elements\Memory Interface Generators 下的
Memory Interface Generator (MIG 7 Series)。
在这里插入图片描述
3、点击 Next, 如果有同学想了解更多的 MIG 的信息,可以点击左边的 User Guide 按钮来打开 Xilinx
的相关文档来查看。
在这里插入图片描述
4、修改 Component Name 为"ddr3",点击 Next。
在这里插入图片描述

5、这里可以选择兼容芯片,我们不需要,点 Next。
在这里插入图片描述
6、选择默认的 DDR3 SDRAM。
在这里插入图片描述
7、我使用的板是黑金的AX7050 开发板。 Memory Part 选择开发板上的型号"MT41J256m16xx-125", Data Width 数据宽度选择 32 位。
在这里插入图片描述
8、 选择 PLL 输入时钟的频率为 200Mhz, 这个时钟需要跟开发板上的时钟频率一致,其它设置输出
阻抗值和内部的 ODT 内部上拉电阻值来改善 DDR3 的信号完整性,一般不需要修改。
在这里插入图片描述
9、 System Clock 选择差分"No Buffer", Reference Clock 因为开发板上没有提供单独的 DDR 参考时钟,所以选择"Use System Clock"。System Reset Polarity 选择"ACTIVE LOW"。
在这里插入图片描述
10、 HR bank 的内部端接阻抗,这里为 50 ohms,不用修改。这是由核心板的硬件设计决定的。
在这里插入图片描述
11、 点击第二项,我们需要设定一下 DDR 的管脚,点击 Next。
在这里插入图片描述
12.、在这个界面里设置 DDR3 的数据、地址和控制信号的 FPGA 管脚分配和 IO 电平。这个手工分配
起来还是比较费劲的,用户可以使用点击“Read XDC/UCF”按键直接导入管脚分配文件。导入后
ddr3 的管脚分配如下。
在这里插入图片描述
导入ucf文件就可以完成 ddr3 的管脚分配

在这里插入图片描述
再点击"validate" 按验证一下,通过后点击 Next。
在这里插入图片描述
13、这里软件默认设置,直接点击 Next。
在这里插入图片描述
14、显示 ddr3 IP 配置的概况,检查一下,没有问题就点击 Next。
在这里插入图片描述
15、选择 Accept, 点击 Next。
在这里插入图片描述
在这里插入图片描述
16、 点击 Generate 按钮生成 MIG 控制器。
在这里插入图片描述
17、点击 Generate 按钮生成 MIG 相关的设计文档。
在这里插入图片描述
18、 这时在项目中添加了一个 ddr3 的 IP。关于 MIG 7 Series 详细介绍请大家参考 Xilinx 提供的文档“ug586_7Series_MIS.pdf”。
在这里插入图片描述

总结:到第18步,MIG IP的设计就基本完成了,下次有时间再做一篇DDR3读写测试文章。
本文章参考了黑金AX7050使用手册,以及black_pigeon的基于MIG IP核的DDR3控制器一文。