区分:
- ---DDR1:大片+圆口。
- ---DDR2:小片+圆口。
- ---DDR3:小片+方口。 1.5 V
- ---DDR4:小片+方口、从有贴纸的方向看:DDR3的缺口在左边、DDR4的缺口在右边、DDR4将内存金手指设计为中间稍突出、边缘收矮。 1.2V
- ---DDR5:1.1V
- 从频率区分:
- ---频率在400MHz以下 DDR1
- ---频率在400到800MHz以内 DDR2
- ---频率大于1000MHz DDR3
- 从PC区分:
- ---PC:一代
- ---PC2:二代
- ---PC3:三代
- Kingston:金士顿
- ---标签:KVR400K64C3A/512
- ------频率为400MHz,容量为512M,DDR1
- ------一代内存条有266MHz、333MHz、400MHz。
- ---标签:KVR800D2N6/1G-SP
- ------频率为800MHz,容量为1G,DDR2
- ------二代内存条有533MHz、667MHz、800MHz。
- ---标签:KVR1333D3N9/2G
- ------频率为1333MHz,容量为2G,DDR3
- ------三代内存条有1333MHz、1600MHz、2133MHz。
- ---DDR4:2133MHz、2400MHz、2666MHz,2933MHz、最高可达3200MHz
- ---DDR5:4800MHz、6000MHz、6400MHz、6600MHz、6800MHz、7200MHz、7600MHz、7800MHz、8400MHz。
读内存条信息

- 内存条大小为8GB
- 1R就是1个rank,x8就是一个颗粒提供8bit,1个rank64bit,64bit除于8bit就是8个颗粒,所以1r x8就是8颗粒的条
- PC4 DDR4
- 2666MHz
- CPU数据总线的位宽,一般是64bit,这个位宽就称之为物理Bank。那么内存1RX4则表示1个64bit,X4则表示memory每颗内存颗粒的位数,
从这里我们就可以很容易知道memory内存颗粒的个数为:64/4=16颗。
如果是2rx8的话内存颗粒就是:64x2/8=16颗。
如果是2rx4的话内存颗粒就是:64x2/4=8颗。
如果是1rx8的话内存颗粒就是:64/4x2=8颗。
知道了内存颗粒编码主要数位的含义,拿到一个内存条后就非常容易计算出它的容量。例如一条三星ddr内存,使用16片samsungk4h280838b-tcb0颗粒封装。
颗粒编号第4、5位“28”代表该颗粒是128mbits,第6、7位“08”代表该颗粒是8位数据带宽,这样我们可以计算出该内存条的容量是128mbits(兆数位)×16片/8bits=256mb(兆字节)。
注:“bit”为“数位”,“b”即字节“byte”,一个字节为8位则计算时除以8。关于内存容量的计算,文中所举的例子中有两种情况:一种是非ecc内存,每8片8位数据宽度的颗粒就可以组成一条内存;另一种ecc内存,在每64位数据之后,还增加了8位的ecc校验码。
通过校验码,可以检测出内存数据中的两位错误,纠正一位错误。所以在实际计算容量的过程中,不计算校验位,具有ecc功能的18片颗粒的内存条实际容量按16乘。在购买时也可以据此判定18片或者9片内存颗粒贴片的内存条是ecc内存。
原文链接:https://blog.csdn.net/weixin_33454551/article/details/112923766 - K4A4G085WD
- DDR颗粒
先来讲讲逻辑BANK。芯片的内部,内存的数据是以位(bit)为单位写入一张大的矩阵中,每个单元格我们称为CELL,只要指定一个行(Row),再指定一个列(Column),就可以准确地定位到某个CELL,这就是内存芯片寻址的基本原理。这样的一个阵列我们就叫它内存的逻辑BANK(Logical BANK)。
由于工艺上的原因,这个阵列不可能做得太大,所以一般内存颗粒中都是将内存容量分成几个阵列来制造,也就是说在内存颗粒中存在多个逻辑BANK,随着芯片容量的不断增加,逻辑BANK数量也在不断增加,目前从32MB到1GB的芯片基本都是4个,只有早期的16Mbit和32Mbit的芯片采用的还是2个逻辑BANK的设计,譬如三星的两种16MB芯片:K4S161622D (512K x 16Bit x 2 BANK)和K4S160822DT(1M x 8Bit x 2 BANK)。芯片组本身设计时在一个时钟周期内只允许对一个逻辑BANK进行操作,而不是芯片组对内存芯片内所有逻辑BANK同时操作。逻辑BANK的地址线是通用的,只要再有一个逻辑BANK编号加以区别就可以了(BANK0到BANK3)。一个逻辑BANK有8M个单元格(CELL),一些厂商(比如现代/三星)就把每个逻辑BANK的单元格数称为数据深度(Data Depth),每个单元格由8bit组成,那么一个逻辑BANK的总容量就是64Mbit(8M×8bit),4个逻辑BANK就是256Mbit,因此这颗芯片的总容量就是256Mbit(32MB)。
原文链接:https://blog.csdn.net/jiajinkui1988/article/details/101904740


4G:容量为4GBit,除以8等于512MB,
08表示x8,8位数据带宽,64/8=8,8颗
16Banks:16个逻辑Banks,每个单元格8bit,8 x bank数:16 x 芯片位宽:8 x bankgroup:4=4Gbit
DDR1:
- HY57V561620
- 原理图封装

- PCB封装(SOP+BGA)


DDR2:
-H5PS1G63EFR

-原理图封装

-PCB封装

DDR3:
-H5TC8G63CMR


-PCB封装

DDR4:
-K4A4G165WE-BCRC


-PCB封装

################################################################
DDR1和DDR2设计要点:
1、所有信号连线过孔数为2,线宽一样,走线方向一致,平行走线不得交叉,弯线平滑处理,不得有直角、锐角;3W原则:线距要为线宽的2倍。
2、等长差分线要先布好,例如时钟线。
---地址线:CK、CK#、CK+、CK-
---数据线:DQS
3、以时钟线长度为基准,等长布其它信号线。
忽略电源、地网络。
4、DDR2可以分为三类:
------差分时钟信号:CLK_N;CLK_P
------数据线DQ0-DQ15,数据掩码信号DQM0,DQM1,数据选通信号DQS*_N,DQS*_P
------地址线/控制线:除数据、时钟外的其他信号,如A0A12,WE,CS,BA02,CKE
------Class规则设置:
---------1、DATA_L_BUS:DQ0-DQ7、DQM0(数据掩码)、DQS0_N、DQS0_P(数据锁存)
---------2、DATA_H_BUS:DQ8-DQ15、DQM1(数据掩码)、DQS1_N、DQS1_P(数据锁存)
---------3、ADDR_BUS:除数据线外的其他信号
---------4、CLK_DIFF:CLK_N,CLK_P
------等长设计:
---------1、所有信号线参考差分时钟的长度作等长
---------2、DATA_L_BUS共11根走在同层,与差分时钟的长度误差在25mil
---------3、DATA_H_BUS共11根走在同层,与差分时钟的长度误差在25mil
---------4、ADDR_BUS:与差分时钟的长度误差200-300mil
------其他要求:
---------1、特性阻抗:单端50欧,差分100欧
---------2、保证完整参考平面
---------3、VREF电容要靠近相关的电源管脚,线宽尽量在40mil以上
---------4、信号线不能跨分割
---------5、DDR2走线区域不允许有其他信号穿过
---------6、去耦电容要靠近相关IC的电源管脚
---------7、尽量采用多层板
5、DDR3、DDR4设计要点:
------DDR信号线分组:
将DDR布线的信号进行分组,可以分为时钟线、地址线、命令控制线、数据线四部分。
(1)、时钟线的布线规则:为高速差分信号线,按照差分布线规则进行布线,而且需要在接收端进行阻抗匹配。
(2)、地址线与命令控制线布线规则:地址和命令信号线要进行端接匹配,通过匹配电阻接端接电源VTT。
(3)、数据线布线规则:数据线由于采用了ODT技术,因此不需要外部进行端接匹配。另外需要注意的是:对于时钟线、地址线、命令控制线和数据线,对等长布线要求较高,除了每一组信号线内部要求等长布线以外,还要保持时钟线、地址线和数据线等组间信号线尽量保持等长。尽量保持同组信号线保持在同层,避免跨层布线。对于差分信号线,为了避免信号间的串扰,要使用3W原则进行布线。除此之外,为了使DDR电路具备完整的参考地平面和电源平面,因此在DDR保护区内不得出现与DDR无关的信号且信号走线的参考平面不能中断。DDR的PCB单端走线阻抗一般控制为50欧,差分走线阻抗一般控制为100欧。对于多块DDR芯片的布局布线,根据菊花链的拓扑结构进行布置即可。
------DDR时序同步:
作为源同步系统的DDR电路设计来说,时序控制至关重要,共有三组时序设计要求如下:
(1)、DQ和DQS的等长关系:所有数据线DQ参考DQS的差分线等长,DQS差分线误差控制在5mil,所有数据线误差控制在DQS目标长度的15mil。
(2)、时钟CLK和地址线、命令控制线的等长关系:所有地址和命令控制线参考差分时钟线CLK等长,所有地址和命令控制线误差控制在时钟CLK目标长度的50mil。
(3)、时钟CLK和DQS线的等长关系:对于DDR2来说,时钟CLK和DQS线的时序关系是松散的时序关系,它们之间的时序参数为,一般控制在100mil即可,但是在DDR3中,时钟CLK和DQS线的时序没有严格要求。
------DDR终端匹配:
ODT为内部核心终结引脚,从DDR2开始内存内部集成了终结电阻器,把原来在主板上的终结电路移植到了内存芯片内部。当内存芯片处于写数据状态时,此时内存颗粒是接收端,需要端接匹配电阻,因此需要打开ODT功能;同理当内存芯片处于读数据状态时,此时内存颗粒是发送端,不需要端接电阻,因此需要关闭ODT功能。正是有了ODT功能,DDR内存在PCB布线的时候数据线不需要进行端接匹配处理,因为内存芯片内部集成了端接电阻。
------DDR电源:
DDR一般需要3种电源,分别为:VDDQ、VREF、VTT。其中VTT和VREF的电平是一样的,为VDDQ电平的一半。VREF消耗的电流很小,可以通过分压电阻网络从VDDQ分压得到;而VTT是端接电源,电流会比较大,能达到百毫安级别,如果使用分压电阻功耗消耗过大,因此需要单独的DDR电源调节器芯片来生成VTT。VTT端接电源线的过流能力需要考虑周到,尽量加粗VTT的电源线以增强其载流能力。
------等长的目的就是为了等时,绕等长时需要注意以下几点:
1.确认芯片是否有Pin-delay,绕线时要确保Pin-delay开关已经打开;
2.同组信号走在同层,保证不会因换层影响实际的等时;同样的换层结构,换层前后的等长要匹配,即时等长;不同层的传播延时需要考虑,如走在表层与走在内层,其传播速度是不一样的,所以在走线的时候需要考虑,表层走线尽量短,让其差别尽量小(这也是为什么Intel的很多GUIDE上面要求,表层的走线长度不超过250MIL等要求的原因);
3.蛇形绕线时单线按3W,差分按5W绕线(W为线宽)。且保证各BUS信号组内间距按3H, 不同组组间间距为5H (H为到主参考平面间距),DQS和CLK 距离其他信号间距做到5H以上。
DDR4引脚

- 电源:

- 控制信号

- 时钟信号

- 地址信号

- 数据信号

参考博客:https://blog.csdn.net/huibei_wuhan/article/details/119945655

可知K4A4G085WD有16个Banks,分为4个Bank Group,A[0:16]17根地址线,2个BA,2个BG,2个BG可选择四个Bank Group,每个Bank Group又分为4个Bank,2个BA可选择四个Bank,分配了四个地址线BA0\BA1\BG0\BG1,还有17根地址线,选择其中1根表示传输地址是否为行地址。按照参考博客,1个BANK可分为67108854个=64M个地址编号,每个地址空间,使用8个数据线,一次存储8bit数据。
所以1个BANK可以分为65536行,每行1024列,每个存储单元16bit。
每行可以存储1024x8bit=8192B=1KB,每行的存储容量成为Page Size。
单个BANK共65536行,所以每个BANK存储容量为65536x1KB=64MB。
一个BANK GROUP有四个BANK,一个BANK GROUP可存储256MB。
每个DDR4颗粒有4个BANK GROUP,每颗存储容量为1GB。
Layout Guide:
- 数据线最大长度不要超过2500mil,组内长度误差控制在+-5mil以内,DQS和时钟线无长度误差要求
- 地址线误差控制在+-20mil
- DQS、时钟查分对误差控制在+-3mil,设计阻抗时,使本对内间距不超过2倍线宽(4-5mil)
- DQS是数据的同步信号,走线时要和DQ放到一起
9片DDR4颗粒,每片8位数据带宽,1R为64位,共8片组成一条内存,外加一片ECC,共9片组成一条内存


-
信号分组:



地址信号

ALERT_N和RESET_N不做等长
数据信号

电源

差分信号


-
布局
采用Fly-by的拓扑结构,不可使用T型,拓扑过孔到管脚的长度尽量短,长度在150mil左右
先走出DQS_P和DQS_N差分