技术标签: fpga开发 硬件工程 DDR协议及应用实践 驱动开发
DDR在完整的PC端或移动电子消费端中属于芯片的外挂组件,其引脚信号按照功能可以分为6大类:前3类为时钟信号、地址及控制信号、数据信号;后3类为电源信号、接地信号、配置信号。
下面以DDR3为例,其具体的信号信息如下表:(带#的信号表示低电平有效信号)
分类 | 信号名 | 方向 | 源 | 描述 |
---|---|---|---|---|
时钟复位及片选信号 | CK,CK# | IN | 系统时钟差分信号,上升沿/下降沿 | 差分时钟信号,由DDR Controller输出。所有地址和控制信号在CK#下降沿和CK的上升沿的交叉点被采样,数据选通(DQS# / DQS)参考交叉点 |
CKE, (CKE0), (CKE1) | IN | 时钟使能 | CLock enable,主要应用于低功耗模式;一般情况下为高,只有当DDR进入的power_down或者自刷新模式下时,CKE信号才会拉低。 | |
CS#,(CS0#), (CS1#), (CS2#), (CS3#) | IN | Rank片选使能 | Chip Select, CS#低有效,当该信号为高时,所有命令都会被masked(无效),该信号主要用于多个RANK时的RANK组选择;一个Rank通常由多个DDR颗粒组成,由于这些颗粒复用同一个CS#信号,因此属于一片Rank | |
ODT, (ODT0), (ODT1) | IN | 阻抗匹配使能 | ON-Die Termination,具体指在数据通道上对DDR颗粒内部的终端匹配电阻进行打开(使能)的信号:ODT信号可使能DDR3 SDRAM内部的RTT_NOM终端电阻。在x4/x8配置中,ODT仅对每个DQ、DQS、DQS#以及DM/TDQS、NU/TDQS#有用。在x16配置中,ODT仅对每个DQ、DQSU、DQSU#、DQSL、DQSL#、DMU以及DML有用。当MR1寄存器中禁止RTT_NOM时,ODT信号将不起作用 | |
RESET_n | IN | 复位信号 | DDR复位信号,低电平有效。正常操作过程中,保持高电平,主要用来复位memory内部的寄存器 |
分类 | 信号名 | 方向 | 源 | 描述 |
---|---|---|---|---|
信号组 | RAS#/A16、CAS#/A15、WE#/A14 | IN | 命令输入 | 此组命令与CS_n可构成当前命令的输入编码,有多重含义。例如:当ACT命令时,即ACT#为低电平时,这三个信号作为地址线使用;当ACT#为高电平时,这三个信号作为命令编码使用。例如:读、写等其他命令操作都可通过这三个命令组合实现 |
RAS#、CAS#、WE#这三个信号与片选CS#信号,共同组成了DDR的命令信号组,同时CKE也参与了信号组,只是CKE大多数时间为高。(RAS: Row Address Strobe,行地址选通脉冲;CAS: Column Address Strobe,列地址选通脉冲;)
DDR bank的选中过程即为DDR的激活,即ACTIVE也可认为是DDR的打开过程。而DDR bank的关闭则称子为DDR的预充电,即Precharge。
分类 | 信号名 | 方向 | 源 | 描述 |
---|---|---|---|---|
地址和数据信号 | BA0-BA2 | IN | Bank地址信号 | Bank Address,Bank选择 |
A0 - A15 | IN | Column/Row行列地址信号 | Address地址总线:在ACT命令中作为行地址,在读写命令中作为列地址,从而可定位存储阵列中精确位置。A10/AP、A12/BC#可以作为额外的地址总线使用。在MRS命令中,地址总线还作为操作码使用,即写入模式寄存器的值。 | |
A10/AP | IN | 自动刷新 | Auto-Precharge,此位可控制读写操作完成后是否进行自动刷新操作,高电平为开启自动刷新操作,低电平为关闭自动刷新操作。该命令与读写命令同时使用。在PRE命令中,A10还可作为是否进行全bank操作的开关。如果仅有一个bank进行刷新,则由bank地址来确定哪个bank来进行操作。 | |
A12/BC# | IN | 突发突变 | Burst Chop,主要用来控制burst突发长度。通常情况下,DDR3的burst length的最小单位是8bit,而在一些特殊条件下(on-the-fly模式)Burst也可进行4bit传输,而砍掉剩下的4bit。在on-the-fly模式下,BC#信号会在读写数据期间进行采样,动态切换burst的传输长度为4bit或是8bit。 | |
DQ | IN/OUT | 数据信号 | Data input and output,双向数据总线:(低8位数据和高8位数据信号线,共16位数据信号线)若模式寄存器中使能了CRC功能,那么在数据burst结束时就会附加一段CRC码。若MR4中的A4为高电平,那么在测试中DQ0-3中的任意一根DQ信号都可以代表VREF的电平。 | |
DQU, DQL DQS, DQS# DQSU,DQSU# DQSL,DQSL# |
IN/OUT | 数据选通信号 | Data Strobe,输入时与写数据同时有效,输出时与读数据同时有效。与读数据是边沿对齐的,但是跳边沿位于写数据中心。在x16系统中,DQSL对应DQL0-7,DQSU对应DQU0-7;DQS、DQSL、DQSU分别与DQS#、DQSL#、DQSU#对应为差分信号对。DDR3 SDRAM仅支持选通信号为差分信号,不支持单根信号的选通信号。 | |
TDQS, TDQS# | OUT | 终端数据选通 | Terminal Data Strobe,TDQS与TDQS#仅在x8系统中运用。当MR1寄存器中的A11为高电平时,DRAM就会使能相似终端阻抗(same terminal resistance)功能,同时TDQS与TDQS#将会应用于DQS与DQS#。当MR1寄存器中的A11为低电平时,DM/DBI/TDQS将会作为数据掩码或者数据总线翻转功能使用,且A12、A11、A10与TDQS#都不会使用。在x4和x16系统中DRAM的TDQS必须是禁用的,也就是MR1的A11永远为低电平。 | |
DM, (DMU), (DML) | IN | 数据掩码、数据总线倒置 | Data masked,DM作为写数据的掩码信号,当DM为高电平有效时,与DM同一拍的写数据是无效的。DM在DQS的两个条边沿都采样。在x16设备中,DMU对应数据高8位,DML对应数据低8位。TDQS仅支持x8设备。 |
分类 | 信号名 | 方向 | 源 | 描述 |
---|---|---|---|---|
DDR4新增信号 | BG0 - BG1 | IN | Bank选择 | BG0-BG1可以选择当前的ACT、RD、WRT或者PRE命令是对哪一个Bank Group进行操作。在MRS命令中,BG0也参与模式寄存器的选择。在×4、×8系统中,有BG0与BG1。在x16系统中,仅有BG0。 |
ALERT_n | IN/OUT | 报警信号 | 警示:该信号可代表DRAM中产生的多种错误,如若命令与地址的奇偶校验错误、CRC校验错误。当出现CRC校验错误时,在对应周期中该信号将拉低,然后在重新恢复成高电平。在奇偶校验错误时,在对应周期中该信号拉低,在内部,当DRAM的操作周期完成时,该信号就会恢复成高电平。在连通性测试中,此信号在输入状态下工作,但是是否使用此信号,取决于系统的整体规划,若该信号没有使用,则需要在板上将该信号连接至VDD | |
TEN | IN | 测试模式使能信号 | 连通性测试使能:(高电平使能测试模式。正常操作过程中,必须拉低) | |
PAR | IN | 命令/地址信号的奇偶校验使能 | 可通过寄存器禁用或者使能。DDR4 SDRAM是支持奇偶校验的。一旦MR5被使能,DRAM将计算ACT#、RAS#/A16、CAS#/A15、WE#/A14、BG0-BG1、BA0-BA1、A0-A17的奇偶性。以上所有的输入的奇偶性都应该在时钟的上升沿与CS#为低电平时保持住。 | |
ACT# | IN | 命令激活信号 | 这个信号为低电平时,可以通过A[14:16]地址信号线选择激活命令的行地址。为高电平时,Address信号线正常使用。此信号有效时,RAS#/CAS#/WE#将作为行地址的A16/A15/A14来使用 |
分类 | 信号名 | 方向 | 描述 |
---|---|---|---|
电源信号 | VDD | supply | 电源电压(core电源),1.5V+/-0.075V |
VSS | supply | 地 | |
VDDQ | supply | DQ电源电压(IO电源),1.5V+/-0.075V | |
VSSQ | supply | DQ地 | |
VREFCA | supply | 地址、控制、命令(CA)的参考电压,VREFCA在所有时刻(包括自刷新)都必须保持规定的电压 | |
VREFDQ | supply | 数据(DQ)的参考电压,VREFDQ在所有时刻(除了自刷新)都必须保持规定的电压 | |
ZQ, (ZQ0), (ZQ1), (ZQ2), (ZQ3) | supply | 输出驱动校准的外部参考电压,这个引脚应该接240Ω电阻到VSSQ |
DDR协议规定了DDR Memory颗粒容量的类型多样,包含512M,1Gb,2Gb,4Gb,8Gb等不同种类,每一种Memory颗粒的又分为x4,x8,x16三种不同型号存储单元,各容量颗粒类型及其型号如下表:
以1Gb容量的DDR 颗粒为例对表格进行说明:
文章浏览阅读881次。前端工程与性能优化 · Issue #3 · fouber/blog https://github.com/fouber/blog/issues/3
文章浏览阅读4.1k次,点赞2次,收藏20次。yolov5测试单张图片,返回一个列表[类别,置信度,x,y,w,h]from numpy import randomimport torchfrom models.experimental import attempt_loadfrom utils.datasets import LoadStreams, LoadImagesfrom utils.general import ( check_img_size, non_max_suppression, apply_classifier_yolov5测试单张图片
文章浏览阅读88次。从SQL改写到SQL重写,什么样的SQL才是好SQL?黄浩 2016-12-14 10:02:26作者介绍黄浩,现任职于中国惠普,从业十年,始终专注于SQL。十年一剑,十年磨砺。3年通信行业,写就近3万条SQL;5年制造行业,遨游在ETL的浪潮;2年性能优化,厚积薄发自成一家。在生活中,很多时候我们会有这样的体悟:问题要么不出,一旦出现,会像多诺米骨牌一样,会连锁引发诸多相关问题,让我们疲于应付。..._黄浩 sql
文章浏览阅读578次,点赞2次,收藏2次。==============================================================================================================教程&电子书==============================================================================================================C#入门经典_.net课程下载
文章浏览阅读3.8k次,点赞2次,收藏8次。来来来,这里解释下从网卡PHY到IP层的数据接收流程:这里是以函数调用方式来体现:netif_add——》ethernetif_init——》low_level_init——》ethernetif_input——》low_level_input和tcpip_input——》ethernet_input——》ip4_input(etharp_input、pppoe_disc_input)——》udp..._stm32f7 lwip
文章浏览阅读1.6w次。报错系统Centos报错提示Input/output error检查服务器机器中多硬盘是否其中有一块硬盘坏掉了。第二种可能:RAID阵列可能有问题。。。_linux 写入文件到挂载的nas下提示failed to close...input/output error
文章浏览阅读3.1k次,点赞3次,收藏4次。Vector3.SqrMagnitude与Vector3.Distance_unity 判断两个距离
文章浏览阅读2.8w次,点赞6次,收藏14次。修改未被调用的变量,方法的提示,方便观赏代码_idea 更改未使用变量的颜色
文章浏览阅读2.7k次,点赞7次,收藏23次。1. 简介C语言程序从源代码到可执行文件(二进制文件)都经历了那些过程?本文以Linux下C语言的编译过程为例,讲解C语言程序的编译过程。以hello.c文件为例:#include <stdio.h>int main(){ printf("hello world!\n");}在linux下编译C程序:$ gcc hello.c -o hello # 编译$ ./hello # 执行hello world! # 输出文本2. 编译的步骤gcc命令编译C语言的过程中_linux下编写一个c程序的基本过程分为几部分?
文章浏览阅读340次。pyqt5界面开发-制作多个小程序-基本的框架和思路最近现在无事,看到了电脑桌面,又想到了最近入门的pyqt5,再看看以往的程序,想到了可不可以做一个集成的UI桌面_用pyqt做程序集合的界面
文章浏览阅读2k次。第一部分(1-6):前端纯静态网页模板无后台+大量网站设计素材 1:PC模板: 9900套响应式html5+css3网页模板【页面齐,二级,三级页均有,含中文模板】 2:PSD模板:3000套PSD模板+600套Flash酷站源文件+千套矢量ICO图标 3:手机模板:2000套各行业中文手机..._chengren 电影
文章浏览阅读441次。连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsORA-39001: 参数值无效ORA-39000: 转储文件说明错误ORA-39143: 转储文件 "F:\ora10G_expdp\ic_pri..._ora39143