使用VIVADO中的MIG控制DDR3(AXI接口)四——MIG配置及DDR3读写测试
在之前的内容里,讲述了AXI和DDR3的基本知识,也做了一个用AXI IP核读写BRAM的测试实验。接下来,我们就将这些部分结合在一起,做一个用AXI IP核对DDR3进行读写测试的实验。因为DDR3的时序比较复杂,所以我们一般都会使用Xilinx官方提供的MIG IP核来控制DDR3,上一节简介了比较常用的Native接口的MIG IP核,而我么进这次实验是基于AXI IP核来对DDR3进行读写测试的,所以我们这次要使用的是AXI接口的MIG IP核,它的接口是满足AXI时序的,这里也不在赘述。
1 配置AXI IP核
在新建一个工程后,和第二节的方法一样,我们配置一个AXI4的IP核,操作与之前一样,可参考第二节。接下来,和之前一样,新建一个Block Design,然后将配置好的AXI IP 核添加进去。
2 配置MIG IP核
1.点击+号,添加IP核,然后搜索MIG IP核,然后双击选择这个IP核。
2.选择后在BD里会出现这样的MIG IP核。
3.双击对其进行配置,会打开这个界面,点击NEXT。
4.如图点击,创建一个MIG IP核,然后勾选AAXI4接口,控制器数目我们默认选1,然后点击NEXT。
5.这个页面是选我们要兼容的芯片型号,这里不选择。
6.这里我们选择控制类型为DDR3,点击NEXT。
7.时钟周期我们选择2500ps,这个400M时钟是指DDR3的工作时钟,MIG会生成这个400M时钟给DDR3使用,同样会按照4:1的规则,生成一个100M的时钟给我们用户接口使用。第3步我们选择Components代表我们选择的内存类型是内存颗粒。因为我这边的板子是达芬奇PRO,所以第四部我是这样选择的,它具有2片256M*16的DDR3,所以它的总数据位宽就是32位,大家可以根据自己的板子型号选择。
8.因为我们的AXI IP核的数据位宽是32位,所以这里我们也配置为32位。
9.这里的输入时钟我们选择200MHZ,这个时钟是MIG IP核的工作时钟,突发类型选择顺序突发。
10.按照图示进行配置,因为我们使用的是FPGA的内部时钟,所以我们选择No Buffer,复位选择低有效,下边的两个选项是减小功耗和一些优化,我们都给打开。
11. 这里的电阻默认不变。
12.这里选择读入已有的管脚配置,重新绑定太麻烦。
13.将XDC文件读入后,点击验证,验证成功后点击NEXT。
14.接下来就是一直点击NEXT,一直到这一步,选择接受协议,继续往下走。
15.然后都是一些信息,核对后生成IP核。
3 使用BD进行模块连接
如图所示,将所有模块之间的信号都连接起来,其中的clock wizard用来生成MIG输入的200M时钟。然后F6进行检查,在检查无误之后,将这个设计打包生成我们的 .V文件。具体操作是选种我们的BD文件,右键选择Creat HDL Wrapper,就生成了我们的 .V文件。
这样,我们的设计就已将有了,接下来就是要对我们的设计进行仿真,我们使用XILINX官方给的仿真例子来修改为我们的仿真环境。
4 仿真环境
1. 我们右键选中我们的MIG IP核,然后选择Open IP Example Design。
2.这时系统会给我们生成MIG IP核的测试文件,还会给我们生成一对小模块。
3.我们在工程根目录下新建一个import文件夹,然后将文件复制过来,如图所示。
然后我们将这几个文件添加进工程里面。
4.然后将sim_tb_top.v中的example改为我们的顶层,这样就可以使用了,我们只需要自己再生成一个100M的输入时钟给锁相环输入就可以了。在MIG初始化信号init_calib_complete拉高之后开始我们的读写测试。
这样,我们的仿真激励就修改成功了,可以通过仿真波形图对结果进行验证。
5 仿真波形图
可以看到,在107us左右,初始化信号已经拉高了,之后120us时刻,我们开始进行读写测试。
从下图可以看到,AXI的读数据通道已经读出了最后一个数据,并且测试完成信号TX_DONE也已经拉高。而ERRO_FLAG信号并没有拉高,说明功能正常。
从MIG物理接口的信号也能看出功能是正确的。
本次实验就介绍到这里,主要就是探讨了利用AXI总线与内存交互的过程。
使用VIVADO中的MIG控制DDR3(AXI接口)四——MIG配置及DDR3读写测试相关推荐
- AXI接口的MIG测试【MIZ7035学习】
1.前言 刚买了米联客的MIZ7035开发板,这几天休假也不出去,就在家拿回来测一些东西. 主要目的是学习: PL端的DDR3接口 GTX用作PCIE接口 SFP接口 HDMI接口 SD卡和eMMC ...
- MIZ7035上的AXI接口的MIG测试
目的:运用axi协议从MIG接口调用DDR AXI接口的MIG测试[MIZ7035] 目录 新建Vivado工程 AXI接口的MIG IP PS DDR配置 Block Design SDK 新建Vi ...
- 使用VIVADO中的MIG控制DDR3(AXI接口)三——DDR3简介
在读写DDR3之前,需要了解DDR3的相关知识,而如果一开始就直接看DDR3的话,我们极有可能会感觉到一头雾水,不知道从哪下手,接下来,我们便从SDRAM一步步到DDR3,分步去学习相关的知识. 1 ...
- Vivado中MIG核中DDR的读写控制
本文使用Vivado 2015.4在Nexys4 DDR(以下简称N4DDR)开发板上实现DDR的读写. · FPGA如果需要对DDR进行读写,则需要一个DDR的控制器.根据官方的文档(UG586,下 ...
- vivado生成mig_ddr3调试经验分享(一)——modelsim实现对vivado中的MIG ddr3的仿真
Vivado中的MIG已经集成了modelsim仿真环境,是不是所有IP 都有这个福利呢,不知道哦,没空去验证. 第一步:使用vivado中的MIG IP生成一堆东西 ,这个过程自己百度.或者是ug5 ...
- XIlinx MIG 控制DDR3 SO-DIMM内存条(二):MIG IP核学习
目录 1 简介 2 IP核自定义 2.1 设置IP核参数 2.1.1 Pin Compatible FPGAs 2.1.2 Memory Selection 2.1.3 Controller Opti ...
- XIlinx MIG 控制DDR3 SO-DIMM内存条(三):MIG IP核仿真与调试过程
之前写这个系列的时候忘记上传了,刚好五一补一下. 文章目录 1 MIG IP核的接口 1.1 AXI4 slave 接口 1.2 Upsizing 1.3 User Interface 1.3.1 C ...
- AXI三种接口及DMA DDR XDMA介绍(应用于vivado中的ip调用)
一.AXI--高级可扩展接口(UG1037) 参考资源: [SDK篇_58~62_AXI接口简介[Xilinx]+[Vivado]+[AXI4总线]+[FPGA]-哔哩哔哩] 关于AXI握手过程都讲解 ...
- Xilinx VIVADO 中 DDR3(AXI4)的使用(1)创建 IP 核
1.前言 DDR3 SDRAM 简称 DDR3,是当今较为常见的一种储存器,在计算机及嵌入式产品中得到广泛应用, 特别是应用在涉及到大量数据交互的场合,比如电脑的内存条.DDR3的时序相当复杂,对DD ...
最新文章
- R语言ggplot2可视化使用ggsave将可视化图像结果保存为SVG文件实战
- stat用法:获取文件对应权限的数字
- 计算机小白学UI,小白学UI设计有什么技巧?看完这些你就明白了
- 【java】httpclient 链接偶尔会 Read timed out
- CSS Box Model 盒子模型
- Vue的基本环境搭建
- 用c语言实现键盘画图,用C实现键盘画图.doc
- Vijos P1303 导弹拦截【最长上升子序列+DP】
- 从多路搜索树到 B-树
- Python入门--第三方模块的安装与使用,pip,import
- java学习(一)多态
- Web前端:7大Web开发趋势和技术
- DNS基础之使用dig查询DNS解析过程
- hdu 1419 最大独立集
- 用切片实现一个简陋的Map
- 钉钉、飞书、企业微信,还没学会赚钱
- 小程序授权第三方平台
- 计算机开机太慢了,电脑开机速度慢怎么办?3分钟加快电脑开机速度
- 财务软件哪个好?便宜好用的财务软件有哪些?
- vue-cli2.x统一配置接口请求地址和开发环境的跨域代理