Xilinx 7系列例化MIG IP core DDR3读写

昨晚找了一下,发现DDR3读写在工程上多是通过例化MIG,调用生成IPcore的HDL Functional Model。我说嘛,自己哪能写出那么繁琐的,不过DDR读写数据可以用到状态机,后期再添砖加瓦吧,当下先对比一下网上找的一段程序和自己例化后的程序。

另外,仿真了十余分钟,最后的是什么鬼?一头雾水T.T。想着每一次要分析信号要等那么久就难受。

更重要的是分享一波关于“Xilinx平台下DDR3设计教程”的资料。就其中的“仿真篇”而言,亲测可行,还是中文版

datasheet看着亲切。0.0

********************20170519更新:确定关键信号及学习博客********************

前天师兄确定说是利用MIG IP core进行例化,参考了几份关于UG重点详解:https://wenku.baidu.com/view/63e8c92d195f312b3069a5ea.html

http://blog.chinaaet.com/chinaaetwoaini/p/5100050615

更重要的是找到了“XILINX DDR3 IP核使用教程完版”http://download.csdn.net/download/kpsuwen/9374463

do sim.do仿真后加入“app_cmd、app_addr、app_en、app_rdy、app_wdf_wren、app_wdf_end、app_wdf_rdy、app_wdf_data”等用户核心信号(下图是UG586文档第58页中的“内存接口示意图”)。我们主要关心的是左侧关于写操作的交互信号。

********************20170520更新:对用户信号进行总结及简单的读写时序********************

这几个信号的分析总结在“XILINX DDR3 IP核使用教程完版”中都有所提及,我就稍微的总结一下:

1.写操作由两套系统:地址域和数据域。

1.1.地址域:在地址域上,app_rdy(controlled by DDR3)、app_en(controlled by user)同时拉高为1时地址app_addr(29bit=rank 1+bank 3+row 15+ column 10)才有效;

1.2.数据域:在数据域上,app_wdf_rdy(controlled by DDR3)、app_wdf_wren(controlled by user)同时拉高为1时数据app_wdf_data才有效。

1.3.app_wdf_data和app_rd_data[APP_DATA_WIDTH-1:0]信号都是数据信号,其中“2 * nCK_PER_CLK * PAYLOAD_WIDTH”,“nCK_PER_CLK=4”,“PAYLOAD_WIDTH = (ECC_TEST == "OFF") ? DATA_WIDTH : DQ_WIDTH”,“ECC_TEST == OFF”故“PAYLOAD_WIDTH =DATA_WIDTH=64”。2*4*64=512。数据位宽与BL有关,BL=8表示DDR3-SDRAM每次可以写入8个64bit数据,512bit

1.4.地址和数据不一定需要同步,可提前或者滞后两个时钟,见下图。另外下图也可看出命令信号app_cmd和地址信号app_addr是对齐绑定的,而不和数据域绑定。

写通道:


读通道:

2.读操作

写时序仿真结果图:


分析:以clk为基础时钟,“app_en=1、app_rdy=1”时“app_addr”有效,四个时钟,写入了四个地址,另外需要强调一点的是: app_addr[ADDR_WIDTH – 1:0] 是ddr3的地址,精确到每个col地址,但是因为实际突发长度(Burst Length)要求8所以每个数据都是第4位开始。因此第四位开始app_addr进行二进制增加。

读时序仿真结果图:


分析:暂时搁置

********************20170521更新:关于V7系列的mig例化********************

早上大致看了以下师兄給的VC709板关于mig例化仿真文档,双BANK,先是bank a,再是bank b,最后bank a_b,xilinx 用K7系列和V7系列例化的过程几乎一致,只是V7的这份user guide的仿真环境是vivado,用ise应该是一样的效果,今天中午的问题卡在了在例化过程中加入.dxc引脚文件时报错了,见下图:


郁闷的很,大概直译一下“对于某些端口,即使对于所选择的配置是必需的,也不提供位置约束。 以下是提供的UCF中缺少的端口:ddr3_addr[15]”,ddr3_addr[15:0],16bit,单单最后这位的引脚配置报错,我尝试手动输入这120余个引脚信息,但是IO standard又不能强行输入,就放弃了此想法。sublime打开xilinx官网down的dxc文件,找到ddr3_addr[15]口,见下图:


对比了一下ddr3_addr[15]和ddr3_addr[14:0]之间的差别,没发现有毛病。难道我思考方向错了?!

花了40min中,按照dxc中的信息强行把管脚配置完毕,人工配置太累了,下图是配置管脚后的:


输入完后系统会识别IO标准:


终于又可以继续了... ...

**********20170713更新:上面遇到的问题是因为ise不支持xdc引脚文件的缘故,vivado平台下正常**********

Here is the Summary

********************20170522更新:DDR3内部核心频率、时钟频率、数据传输频率********************
1.核心频率/Core Frequency/:(解释1)内存cell阵列的工作频率,它是内存的真实运行频率。(解释2)每款芯片都有其自己的极限频率,这个极限频率就是内存的核心频率,或者说是它能正常工作的频率,因此把内存的频率称为内存的真实频率。

2.时钟频率:(解释1)I/O Buffer(输入/输出缓存)的传输频率。(解释2)内存作为数字逻辑芯片,本身不产生频率,频率是主板上的频率发生器外加给它的,主板上产生的这个频率称为时钟频率。

3.数据传输频率:内存与系统交换数据的频率,也称为内存的等效频率或者接口频率。

*****三者在内存中的关系*****

核心频率就是内存的工作频率,到DDR2、DDR3才有了时钟频率概念,时钟频率是将核心频率通过倍频技术得到的一个频率。///DDR内存核心频率和时钟频率相同,但在传输数据的时候在脉冲的上升沿和下降沿都传输了一次,所以数据传输频率是核心频率的2倍;DDR2内存将核心频率倍频2倍得到了时钟频率,同样在上升沿和下降沿各传输一次数据,所以数据传输频率就是核心频率的4倍、时钟频率的两倍;DDR3内存的时钟频率是核心频率的4倍,同样在上升沿和下降沿各传输一次数据,所以数据传输频率就是核心频率的8倍。

Following are three examples.

DDR2-800:核心频率200MHz,时钟频率400MHz,数据传输频率800MHz;

DDR3-800:核心频率100MHz,时钟频率400MHz,数据传输频率800MHz;

DDR3-1066:核心频率166MHz,时钟频率533MHz,数据传输频率1066MHz.

分享:

3

喜欢

0

赠金笔

阅读(1836)┊ 评论 (3)┊ 收藏(0) ┊转载(1) ┊ 喜欢 ┊打印举报

已投稿到:
 排行榜

前一篇:DDR理论基础

后一篇:激活modelsim时运行patch_dll.bat不能生成TXT

评论 重要提示:警惕虚假中奖信息

[发评论]

  • 文锋若风

    1.SDRAM的内部是一个个存储阵列。这些存储阵列就代表了一个个的Logical-Bank(L-Bank)。每个阵列中的小单元就是最小的存储单元,其位数即为Bank的位数。当前的SDRAM多为4 bank.

    5月16日 20:28回复(0)

  • 文锋若风

    2.DQS是内存和内存控制器之间信号同步用的。 
    由DQ信号发出端发出DQS,信号接收端根据DQS的上、下沿来触发数据的接收。 
    简单点说,如果是从内存中读取信号,那么主板北桥(内存控制器)根据内存发出的DQS来判断在什么时候接收读出来的数据。如果是写的话,就正好相反,内存根据北桥发出的DQS来触发数据的接收。 
    DDR2每芯片有一个读、写双向的DQS,DDR3是有读和写两个DQS(2个DQS的好处是,不必等待DQS反向)。 

转载:http://blog.sina.com.cn/s/blog_b5fa66e50102wx5e.html

时间: 2024-11-05 23:27:05

Xilinx 7系列例化MIG IP core DDR3读写的相关文章

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

最近学习了DDR3控制器的使用,也用着DDR完成了一些简单工作,想着以后一段可能只用封装过后的IP核,可能会忘记DDR3控制器的一些内容,想着把这个DDR控制器的编写过程记录下来,便于我自己以后查看吧,哈哈哈,闲话少说开始工作.这个DDR3控制器分两节内容吧,第一节就是MIGIP核的简单介绍和生成这个IP核再介绍一下自己封装这个IP的整体架构,第二节就来介绍一下各个模块的内容. 1.1 MIG IP 核介绍 1) MIG IP核架构 通过查阅ug586_7Series_MIS,我们可以看到MIG

Quartus ii 设计中的差分信号在例化时的命名规则

在Quartus中做设计,如果使用了差分信号的,如DDR的IP中的mem_ck与mem_ck_n,mem_dqs与mem_dqs_n,将其引入输出端口时,对其命名有一定的规则,否则就会出现错误. 如下所示,例化是错误的. DDR3_32BIT  emif_32bit (        ......        .mem_ck              (mem_ck_1),              //              mem.mem_ck        .mem_ck_n    

XDMA ip core的使用

XDMA核的使用 一.   XDMA相关知识 绝对地址就是物理地址=段地址*16+偏移地址,也就是段地址<<4+偏移地址 主机host通过PCIe接口访问DMA,DMA即外部设备不通过CPU而直接与系统内存(DDR)交换数据. PIO模式下硬盘和内存之间的数据传输是通过CPU来控制的,而在DMA模式下,CPU只需向DMA控制下达命令,让DMA来控制数据的发送,数据传送完毕后再把数据反馈给CPU,这样很大程度上减轻了 CPU的资源占有率. DMA和PIO模式的区别就在于,DMA模式不过分依赖CP

H.265 Video Encoder IP Core

复制: 开源H.265硬件视频编码器H.265 Video Encoder IP Core是开源的H.265硬件视频编码器,实现了H.265(或叫HEVC)的大部分功能. 它由复旦大学专用集成电路与系统国家重点实验室(State Key Lab of ASIC & System,Fudan University)视频图像处理实验室(VIP Lab)范益波教授研究团队开发完成,并开放源代码.任何组织个人可以无偿使用上述代码用于研究和生产目的,VIP Lab将会持续更新并维护H.265硬件视频编码器

ModelSim Simulation of RapidIO II IP Core Demonstration Testbench May Require ld_debug Command

Solution ID: fb83262Last Modified: May 17, 2013Product Category: Intellectual PropertyProduct Area: Comm, Interface & PeripheralsProduct Sub-area: IP Spec and ProtocolVersion Found In: v12.1Version Fixed In: v13.0 Title ModelSim Simulation of RapidIO

Tornado源码分析系列之一: 化异步为&#39;同步&#39;的Future和gen.coroutine

转自:http://blog.nathon.wang/2015/06/24/tornado-source-insight-01-gen/ 用Tornado也有一段时间,Tornado的文档还是比较匮乏的,但是幸好其代码短小精悍,很有可读性,遇到问题时总是习惯深入到其源码中.这对于提升自己的Python水平和对于网络及HTTP的协议的理解也很有帮助.本文是Tornado源码系列的第一篇文章,网上关于Tornado源码分析的文章也不少,大多是从Event loop入手,分析Event loop的工作

USB 2.0 Hub IP Core

来自: http://arasan.com/products/usb/usb-2-0/usb-2-0-hub/ The Arasan USB 2.0 Hub IP core is an USB 2.0 specification compliant hub core that supports 480 Mbit/s in High Speed (HS) mode, 12 Mbit/s in Full Speed (FS) mode, and 1.5 Mbit/s in Low Speed (LS

IP Core 分类

IP(Intelligent Property)核是具有知识产权核的集成电路芯核总称,是经过反复验证过的.具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中.到了SOC阶段,IP核设计已经成为ASIC电路设计公司和FPGA提供商的重要任务,也是其实力体现.对于FPGA开发软件,其提供的IP核越丰富,用户的设计就越方便,其市场占用率就越高. IP(Intellectual Property)就是常说的知识产权.美国Dataquest咨询公司将半导体产业的IP定义为用于ASIC.

创龙TI、Xilinx全系列DSP、ARM、FPGA开发平台免费试用来了

[创龙开发板_免费试用升级啦~~]创龙TI.Xilinx全系列DSP\ARM\FPGA开发套件-免费试用 一.试用申请时间:2019年7月8日-7月19日 二.试用产品:创龙TI.Xilinx全系列开发套件 三.试用规则: 1.试用时间:20天(自然日) 2.活动流程:选择板卡-申请免费试用-审核(电话申请)-申请成功-创龙寄送板卡-确认收货,开始试用-试用完成,发布试用报告-板卡寄回创龙 3.活动说明: 活动期间,凡获得免费试用资格者即可获得创龙精美礼品一份(礼品二选一:32G U盘.保温杯)