本系列整理一下基于 Xilinx A7 芯片的 DDR3 的使用,此处采用的 DDR3 IP核为软核,即采用 FPGA 逻辑单元、寄存器、查找表等搭建出来 IP核。从 IP 核的调取开始,接着读写测试,最后争取实现一个基于 DDR3 的完整小项目。
 
1、建立工程,点击 IP Catalog,在界面右侧输入 memory,选择 IP,双击打开。
 
2、打开 DDR3 IP 核调取界面,该界面中主要是总结了所选芯片的型号等,点击 Next。
 
3、定义控制器名称,输入控制器数量,Next。(AXI4 Interface 是AXI格式的MIG核,不勾是传统的接口信号格式。)
 
4、如果有我们的芯片型号则勾选,没有则不选,Next。
 
5、选择控制器类型,Next。
 
6、设置 DDR3 控制器的若干参数,Next。
Clock Period   : 给DDR3的同步的时钟,此时钟再产生DDR3的800M(400M时钟双沿传递),不用管warning,在此我们设置为 400MHz,若是 FPGA 芯片速度等级不同,则可能该工作频率的范围不一样
Memory Part : 选择 DDR3 SDRAM 的芯片类型,此处需要根据开发板上的芯片类型来选择,若是列表内没有相应的芯片类型,则可以在 Create Custom Part 中根据 DDR3 芯片参数来设定
DDR3的带宽计算 : 400 * 2 * 16 = 12.8 Gbps (400: 控制器 PHY 的时钟, 2: DDR 双沿采样, 16: 16bit,bus 的位宽。)
DDR3控制器是半双工模式(分时读写),平均分配的话每个操作占有 .4Gbps 的理论带宽,实际没有那么多,因为刷新、激活、读写指令等也都会占用周期。因此实际应用我们会*.8来考虑。
 
7、设置 DDR3 控制器的若干参数。在此设定该控制器的输入时钟频率为 200MHz,倍频即为之前的400Mhz,控制器的突发类型为顺序性,其他默认即可,Next。
 
8、设置系统时钟和参考时钟,Next。
系统时钟
--------------------------------------------------------------------------
single_ended :来源于引脚的单端时钟
deferential :差分时钟
no buffer :来源于 FPGA 内部的时钟。 参考时钟
--------------------------------------------------------------------------
single_ended、deferential、no buffer,
use system clock:只有在 system clock 时钟频率为199MHZ~201MHz 时,才存在该选项。
 
9、设置内部终端电阻值,此处根据 DDR3 SDRAM芯片手册选择,默认问题也不大。Next。
 
10、第一项为新设计,第二项为可导入已存在的 UCF 或 XDC 引脚约束文件。Next。

 
11、先点击 Read XDC/UCF 导入相应的引脚约束文件,再点击 Validate 进行验证,然后点击 Next。
 
12、型号名称和一些设置,可以默认,若无法 Next,则随便选一个,后面还可以更改,Next。
 
13、总结页面,Next。
 
14、选择 Accept,Next。
 
15、直接 Next。
 
16、点击 Generate 生成 IP 核。
 
17、生成后,在本次的目录 DDR3_HDMI\DDR3_HDMI.srcs\sources_1\ip\ddr3_ctrl\ddr3_ctrl 中可以看到生成的3个文件夹,说明我们此次 DDR3 IP 核调取成功。
docs           : 该IP核相关文档,如使用方法等。
example_design : 该IP核参考例程,仿真模型等。
user_design : 用户可使用的文件,如综合文件、约束文件。
以上。
 
参考资料:威三学院FPGA教程

DDR3(1):IP核调取的更多相关文章

  1. Xilinx DDR3 IP核使用问题汇总(持续更新)和感悟

    一度因为DDR3的IP核使用而发狂. 后来因为解决问题,得一感悟.后面此贴会完整讲述ddr3 ip的使用.(XILINX K7) 感悟:对于有供应商支持的产品,遇到问题找官方的流程.按照官方的指导进行 ...

  2. Lattice 的 DDR IP核使用调试笔记之工程建立

    DDR3的IP核的使用相当重要,尤其是对视频处理方面. 下面接收DDR3 的IP 核的生成步骤. 1. 选择DDR IP核的生成路径.名字以及哪种语言之后就可以设置DDR IP 的参数了. 2.选择存 ...

  3. 在使用FPGA来控制DDR3/DDR2 IP 的时候两个错误的解决办法

    对于熟悉Intel FPGA的老(gong)司(cheng)机(shi)来说,外部存储器的控制早已是轻车熟路,但是对于新手,DDR3/DDR2 的IP使用也许并没有那么简单,不过没关系,骏龙的培训网站 ...

  4. 基于MIG IP核的DDR3控制器(一)

    最近学习了DDR3控制器的使用,也用着DDR完成了一些简单工作,想着以后一段可能只用封装过后的IP核,可能会忘记DDR3控制器的一些内容,想着把这个DDR控制器的编写过程记录下来,便于我自己以后查看吧 ...

  5. Lattice 的 DDR IP核使用调试笔记之DDR 的 仿真

    —— 远航路上ing 整理于 博客园.转载请标明出处. 在上节建立完工程之后,要想明确DDR IP的使用细节,最好是做仿真.然后参考仿真来控制IP 核. 仿真的建立: 1.在IP核内的以下路径找到以下 ...

  6. Lattice 的 Framebuffer IP核使用调试笔记之datasheet笔记

    本文由远航路上ing 原创,转载请标明出处. 学习使用以及调试Framebuffer IP 核已经有一段时间了,调试的时候总想记录些东西,可是忙的时候就没有时间来写,只有先找个地方记录下,以后再总结. ...

  7. 调用altera IP核的仿真流程—下

    调用altera IP核的仿真流程—下 编译 在 WorkSpace 窗口的 counter_tst.v上点击右键,如果选择Compile selected 则编译选中的文件,Compile All是 ...

  8. 调用altera IP核的仿真流程—上

    调用altera IP核的仿真流程—上 在学习本节内容之后,请详细阅读<基于modelsim-SE的简单仿真流程>,因为本节是基于<基于modelsim-SE的简单仿真流程>的 ...

  9. (转)modelsim10.0C编译ISE14.7的xilinx库(xilinx ip核)

    原地址modelsim10.0C编译ISE14.7的xilinx库(xilinx ip核)   1.打开D:\Xilinx\14.7\ISE_DS\ISE\bin\nt64\compxlibgui.e ...

随机推荐

  1. javascript:void(0); 和 href = "#"

    在做页面时,如果想做一个链接点击后不做任何事情,或者响应点击而完成其他事情,可以设置其属性 href = "#", 但是,这样会有一个问题,就是当页面有滚动条时,点击后会返回到页面 ...

  2. 【转载】Gradle学习 第八章:依赖管理基础

    转载地址:http://ask.android-studio.org/?/article/10 This chapter introduces some of the basics of depend ...

  3. Spark调用Linux命令实现解压和压缩功能

    一.应用场景 在Spark程序中调用Linux命令,实现一些程序难以实现的功能,例如:发送模拟邮件.文件打包或解压等等 二.代码实现 package big.data.analyse.linux im ...

  4. c++指针全攻略

    1.指针概念理解 int*  p      定义一个指针(推荐使用这种写法int* ,理解上有好处)        p 指针变量:        *   间接运算符(访问符),代表访问该地址所指向的空 ...

  5. ArmIE的安装

    参考:https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-instructio ...

  6. 第一部分day4-三次登录实验、字符编码

    #-----三次登录实验----- memu = { "陕西":{ "西安市":{ "新城区":["大明宫遗址",&qu ...

  7. xadmin引入django-import-export导入功能

    一.安装 由于xadmin自带的包里面已经包含了django-import-export 所以不用再pip install django-import-export了 但是xadmin管理后台只有导出 ...

  8. 使用istioctl命令查看gateway及virtualservices

    istioctl命令,比kubectl命令,在查看istio资源方面,要方便很多. 如果使用microk8s安装,则命令为microk8s.istioctl了. 查看gateway及virtualse ...

  9. php状态模式(state pattern)

    ... <?php /* The state pattern encapsulates the varying behavior for the same object based on its ...

  10. String s = new String("xyz");创建了几个String Object?并作说明。

    String s = new String("xyz");创建了几个String Object?并作说明. 共产生了两个2个对象,第一个是字符串常量xyz,存储于常量池中.第二个对 ...