首页 > 其他分享 >DDR3知识点

DDR3知识点

时间:2024-10-14 15:49:46浏览次数:3  
标签:知识点 ddr3 DDR app MIG DDR3 时钟

DDR3基础知识

1、什么是DDR

       DDR即DDR SDRAM,英文全称为:Double Data Rate Synchronous Dynamic Random Access Memory即双倍速率同步动态随机存取储存器。

       DDR的前身SDRAM最开始是时钟下降沿采样,单沿采样,数据传输速率和频率是1:1关系,即一个周期可传输1bit数据。从DDR1开始就变成双沿采样了。DDR1一个时钟周期可传输2bit数据,这个时候,就叫预取2bit,DDR2,预取4bit,DDR3,预取8bit。(预取:预取bit的意思,我理解就是一个时钟周期时间内,从DDR存储cell能够做到取出多少bit数据)

       DDR主要用于处理器的临时数据存储,高速率,大带宽,对系统性能有极大的影响。

2、DDR3、DDR3L与LPDDR3之间的区别

从DDR的输入电压上也可以判断DDR的类型,如下图所示

DDR3的输入电压为1.5V,所以如果DDR芯片上输入电压为1.5V就可以确定为DDR3了。

       LPDDR3、DDR3和DDR3L三种都是DDR3,但是区别主要在于工作电压。

       LPDDR3即低功耗内存,没什么厂商用,但DS176手册给出了方案

DDR3L全称“DDR3 Low Voltage”(低电压版DDR3),DDR3L为1.35V,米联客ZYNQ7100就是使用的DDR3L,如图所示:

正点原子领航者7020的DDR也是DDR3L,如图所示:

而ZYNQ7020项目板和野火升腾Pro A7就是DDR3

3、DDR3存储大小计算

       DDR3的储存大小可以从命名上入手,如米联客的ZYNQ7100中的DDR3型号为MT41K256M16TW-107,MT41K为型号类型,256M16就可以看出DDR3储存大小,16为该DDR3数据引脚有多少根,也就是256M*16对应的是bit,所以要算DDR3存储大小,就应该是256M*16/8=512MB。

4、DDR3引脚

       DDR3的引脚基本分为地址信号、数据信号、控制信号、时钟信号、电源和地。DDR3原理图如图所示

5、DDR3硬件设计

5.1、PL端DDR3

       下面以米联客ZYNQ7100的PL端DDR3与FPGA做讲解ZYNQ7100的PL有4颗DDR3。

1、如果要使用多个bank,需要bank号连续,控制管脚必须位于多个bank的中间,所有控制管脚在同一个bank上。ZYNQ7100使用了bank33-35,控制管脚就放在bank34中。

2、确定好DDR3要占用的banks,使用1.5v供电,记住bank位置每组DDR3 只能使用同一个column。(一个组(lane)每个lane即DQ0-7+DMx+差分 DQS+VREF共12个pin,即一个DQS组。如第一组为DQ0-7、DM0、DQS0_P、DQS0_N、VREF;第一组为DQ8-15、DM1、DQS1_P、DQS1_N、VREF;)

不论是哪一款DDR,DQ在组内都是可以互换的, 因为数据的具体内容只要 读入和读出一致即可。下图的DQ也确实做了调换,方便走线。

下图为单颗DDR3的画法

5.2、PS端DDR3

与PL端的DDR3不同,PS端的DDR是放在bank502上。

PS单颗DDR3:

PS双颗DDR3:

5.3、差分时钟阻抗

Xilinx官方推荐DDR3时钟单端走线阻抗为40、差分为80

如果完全按照官方参考来,应该没什么问题,但是实际走线阻抗多用50R,时钟差分也多用100R,一是更通用,二是阻抗更大在叠层设计时走线可以控制得更细、更合理,如一般板厂6层PCB的叠层结构下top计算50欧线宽大概5-6mil,如果40欧则外层来到8-9mil,内层线宽将更大,会让本就不富裕的空间雪上加霜。

像米联客7100、正点原子领航者7020都是遵照官方选用常见的80.6R电阻。

而野火升腾Pro A7就选用的是100R

6、MIG IP核设置

       在进入MIG设置前,需要知道DDR3的带宽换算公式

       MIG核有一个MMCM和一个PLL生成时钟,官方规定外部需要输入一个200M的参考时钟进入MIG核。所以有两种方案,一种是系统时钟经过一个PLL生成一个200M时钟进入MIG核,另外一种是直接在外部输入一个200M晶振。然后MIG生成一个200M的用户时钟,以及一个800M的差分时钟给DDR3芯片。又因为DDR3为双沿采样,所以实际运行时钟就达到1600M。

以米联客的ZYNQ7100为例,PL端有4颗DDR3,那么DDR3的带宽就是800*2*64/8=12800MB/S,而用户时钟为200M,为了保持带宽一致,那么用户的数据位宽就应该800*2*64/200=512bit。

下面正式进入MIG核设置,添加MIG IP核后,进入设置界面,选择创建IP,zynq芯片兼容随意,选择DDR3 SDRAM。

这里以米联客ZYNQ7100为例,DDR3运行时钟选择默认的800M,然后根据原理图选择DDR3芯片型号。因为是4颗DDR3,1颗数据位宽为16,4颗就是64,所以选择64。

这里的数据位宽就是根据带宽一致原则,系统默认给你选择了512

这里就是要进入MIG核的参考时钟,我们选择200M

下一页,就需要根据你参考时钟的形式选择了,如是第一种以PLL生成200M的形式,则System Clock选择NO Buffer,因为经过PLL的时钟是不用调用任何BUFF原语的,同时因为进入的参考时钟是200M,所以直接使用System Clock。复位我们这选择低电平复位,其他保持默认。

如果时外部进入进来的时钟直接进入MIG核这就需要过一个IBUFF了,如果是单端时钟就选Single-Ended,如果是差分就选Differential。因为系统时钟是200M,所以这里我们也直接使用系统时钟。

这里也可以从手册UG586上可以看出,当系统时钟也就是进入MIG的参考时钟为200M时,这两个可以用一样的。

下一页直接默认,然后就到绑定DDR3引脚了,第一个是指根据电路图手动绑定

第二个是指用UCF文件直接绑定,这里我们也不看电路图,直接用米联客官方的UCF文件直接绑定。最好一直下一步确定,就完成MIG的设置了。

7、APP接口

       DDR3 APP接口生成的IP核接口如图所示

       Memory interface ports为FPGA与DDR3之间的接口,这些接口可以分为三类,分别为地址信号、数据信号、控制信号、时钟信号。

地址信号:

ddr3_addr:行、列地址线,米联客的DDR芯片为MT41K256M16TW-107,地址共15bit;

ddr3_ba:bank选择信号;

ddr3_cas_n:列选通信号,低电平有效;

时钟信号:

ddr3_ck_n:端口差分时钟的N端;

ddr3_ck_p:端口差分时钟的P端;

ddr3_cke:时钟使能引脚,高电平有效;

ddr3_ras_n:行选通信号,低电平有效;

控制信号:

ddr3_reset_n:复位信号,低电平有效;

ddr3_we_n:写使能信号,低电平有效;

ddr3_cs_n:片选信号,低电平有效;

ddr3_dm:输入数据掩膜信号,高电平有效;

ddr3_odt:ODT引脚;

数据信号:

ddr3_dq:双向数据信号;

ddr3_dqs_n:数据选通差分信号的N端;

ddr3_dqs_p:数据选通差分信号的P端;

这些引脚的绑定会在生成MIG IP核的时候自动绑定,所以绑定不需要XDC文件上再添加。

下面最重要的是APP接口信号,这是FPGA控制DDR读写的信号。

init_calib_complete:初始化完成信号,当这个信号拉高时,才能对DDR经行读写操作;

app_addr:地址信号,给定初始地址,并在之后的每个周期,地址需要加8;

app_en:读写指令使能信号,配合app_rdy同步拉高;

app_wdf_data:写数据;

app_wdf_end:突发时写入最后一次数据,这里的突发是指DDR长度为8的突发;

app_wdf_wren:写数据使能信号,高电平有效

app_rd_data:读数据;

app_rd_data_end:突发时读出最后一次数据;也是指DDR长度为8的突发;

app_rd_data_valid:读数据有效指示信号;

app_rdy:MIG IP空闲指示信号;

app_wdf_rdy:MIG IP写数据空闲指示信号;

app_wdf_mask:写数据掩膜信号,一般都是给0;

请求信号:一般不管,输入直接给0;

8、DDR的突发与预读取

       在DDR3 SDRAM时代,内部配置采用了8n prefetch(预取)来实现高速读写.这也导致了DDR3的Burst Length一般都是8;

一次从存储单元预取8-bit的数据,在I/O端口处上下沿触发传输,8-bit需要4个时钟周期完成,所以DDR3的I/O时钟频率是存储单元核心频率的4倍,由于是上下沿都在传输数据,所以实际有效的数据传输频率达到了核心频率的8倍。比如,核心频率为200MHz的DDR3-1600,其I/O时钟频率为800MHz,有效数据传输频率为1600MHz。

以MT41K256M16TW-107为例,下图为MT41K256M16TW-107内部结构

DDR的内部缓存单位是128bit为1单位,而输出为16bit,所以IO为发送八个数据,内部缓存单位再改变1单位。所以I/O的时钟是DDR内部时钟的8倍。

这也是为什么地址app_addr为什么默认加8的原因,同时如果I/O时钟是用户时钟的4倍时,app_wdf_end与app_wdf_wren是相同的。

如果是2:1则app_wdf_end需要每隔1个周期拉高一次。

9、DDR操作时序

       写操作

读操作

标签:知识点,ddr3,DDR,app,MIG,DDR3,时钟
From: https://blog.csdn.net/m0_74164388/article/details/142920834

相关文章

  • 入行网络安全需要学习哪些知识点?白帽子佬都给你汇总在这里,一文全懂_网络安全入门应该
    都说IT互联网行业吃香,那么如何才能高效入行,习得一技之长换取心仪offer?一般来说,0基础小白想入行到网络安全行业,按照如下学习逻辑肯定是错不了的:一、基础知识掌握1、计算机基础知识:理解计算机体系结构、操作系统、网络通信等基础知识,这是进入网络安全领域的基础。2、网络......
  • 高数导数积分知识点归纳
    高数公式函数1.基本公式:2.常见函数类型线性函数(a和b是常数):多项式函数(ai是常数):指数函数(a>0,且a≠1)对数函数(a>0, 且a≠1)三角函数:如正弦函数f(x)=sin(x),余弦函数f(x)=cos(x),正切函数f(x)=tan(x)如反正弦函数f(x)=arcsin(x),反余弦函数f(x)=arccos(x),反正切......
  • Python知识点:基于Python工具,如何使用Web3.py进行以太坊智能合约开发
    开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候!基于Python工具Web3.py进行以太坊智能合约开发简介智能合约是区块链技术的核心应用之一,它允许在没有中介的情况下,通过代码自动执行合同条款。以太坊是目前最流行的智......
  • Python知识点:基于Python工具,如何使用Brownie进行智能合约测试
    开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候!如何使用Brownie进行智能合约测试在以太坊智能合约开发中,测试是至关重要的一环。Brownie是一个基于Python的智能合约开发和测试框架,它提供了一套完整的工具来帮助开发......
  • Linux快速入门知识点概括01
    前提当在阅读这篇文章的时候,这里默认已经购买过云服务器或者在本地搭建了虚拟机环境1、预热关机:shutdownshutdown-h10#10分钟之后关机shutdown-hnow#立马关机shutdown-h20:14#会在20点14分关机shutdown-h+10#十分钟后关机shutdown-rnow#立马重启shutdown-......
  • Linux快速入门知识点概括02
    概括本章涉及到的内容包括:基本属性、文件内容、vim编辑器、账号管理、用户组管理、磁盘管理、进程管理。基本属性查看目录通过ls-ll命令查看更目录下的文件夹这里可以看到前缀有很多的字符,说明一下各个字符的含义。l:代表的是link,链接,d:代表的是dir,目录,r:代表的是read,读权限......
  • 2024版最新AI大模型知识点大梳理,零基础入门到精通,收藏这篇就够了
    文章目录AI大模型是什么AI大模型发展历程AI大模型的底层原理AI大模型解决的问题大模型的优点和不足影响个人观点AI大模型是什么AI大模型是指具有巨大参数量的深度学习模型,通常包含数十亿甚至数万亿个参数。这些模型可以通过学习大量的数据来提高预测能力,从而在自然语言......
  • Python知识点:基于Python技术,如何使用ROS与Python进行机器人操作
    开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候!使用ROS与Python进行机器人操作的技术详解机器人操作是机器人学中的一个核心领域,它涉及到对机器人的运动控制、传感器数据处理以及自动化任务的实现。ROS(RobotOperat......
  • Python知识点:基于Python技术,如何使用TensorFlow进行自动驾驶模型训练
    开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候!使用TensorFlow进行自动驾驶模型训练的Python技术详解自动驾驶技术是人工智能领域的一个重要应用,它涉及到多个复杂的机器学习任务,如图像识别、决策制定和运动控制。Te......
  • 优秀的面试官!通过一个问题考察了所有网络编程知识点
    一、写在开头本文的主题是和大家一起探讨学习:“在浏览器中输入URL开始后,计算机所做的几件事”,这个问题是好几年前自己面试的时候,面试官考问过的,当时准备十分不充分,回答的一塌糊涂,今天拿出来再整理学习一遍,一同进步!其实这个问题本身倒是不难,但它巧妙的是可以将我们所学过的网络编......