

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DRAM(动态随机访问存储器)对设计人员特别具有吸引力,因为它提供了广泛的性能,用于各种计算机和嵌入式系统的存储系统设计中。本文概括阐述了DRAM的概念,及介绍了SDRAM、DDRSDRAM、DDR2SDRAM、DDR3SDRAM、DDR4SDRAM、DDR5SDRAM、LPDDR、GDDR。DRAMDRAM较其它内存类型的一个优势是它能够以IC(集成电路)上每个内存单元更少的电路实现。DRAM的内存单元基于电容器上贮存的电荷。典型的DRAM单元使用一个电容器及一个或三个FET(场效应晶体管)制成。典型的SRAM(静态随机访问内存)内存单元采取六个FET器件,降低了相同尺寸时每个IC的内存单元
2、数量。与DRAM相比,SRAM使用起来更简便,接口更容易,数据访问时间更快。DRAM核心结构由多个内存单元组成,这些内存单元分成由行和列组成的两维阵列(参见图1)。访问内存单元需要两步。先寻找某个行的地址,然后在选定行中寻找特定列的地址。换句话说,先在DRAMIC内部读取整个行,然后列地址选择DRAMICI/O(输入/输出)针脚要读取或要写入该行的哪一列。DRAM读取具有破坏性,也就是说,在读操作中会破坏内存单元行中的数据。因此,必需在该行上的读或写操作结束时,把行数据写回到同一行中。这一操作称为预充电,是行上的最后一项操作。必须完成这一操作之后,才能访问新的行,这一操作称为关闭打开的行。对计
3、算机内存访问进行分析后表明,内存访问中最常用的类型是读取顺序的内存地址。这是合理的,因为读取计算机指令一般要比数据读取或写入更加常用。此外,大多数指令读取在内存中顺序进行,直到发生到指令分支或跳到子例程。行便)列育足茗地址牯列足低地址牠先远择行,蛭辰再述痒列图1.DRAMs内存单元分成由行和列组成的两维阵列DRAM的一个行称为内存页面,一旦打开行,您可以访问该行中多个顺序的或不同的列地址。这提高了内存访问速度,降低了内存时延,因为在访问同个内存页面中的内存单元时,其不必把行地址重新发送给DRAM.结果,行地址是计算机的高阶地址位,列地址是低阶地址位。由于行地址和列地址在不同的时间发送,因此行地
4、址和列地址复用到相同的DRAM针脚上,以降低封装针脚数量、成本和尺寸。一般来说,行地址尺寸要大于列地址,因为使用的功率与列数有关。早期的RAM拥有控制信号,如RAS#(行地址选择低有效)和CAS#(列地址选择低有效),选择执行的行和列寻址操作。其它DRAM控制信号包括用来选择写入或读取操作的WE#(写启动低有效)、用来选择DRAM的CS#(芯片选择低有效)及OE#(输出启动低有效)。早期的DRAM拥有异步控制信号,并有各种定时规范,涵盖了其顺序和时间关系,来确定DRAM工作模式。早期的DRAM读取周期有四个步骤。第一步,RAS#与地址总线上的行地址变低。第二步,CAS#与地址总线上的列地址变低
5、。第三步,OE#变低,读取数据出现在DQ数据针脚上。在DQ针脚上提供数据时,从第一步第三步的时间称为时延。最后一步是RAS#,CAS#和OE#变高(不活动),等待内部预充电操作在破坏性读取后完成行数据的恢复工作。从第一步开始到最后步结束的时间是内存周期时间。上述信号的信号定时与边沿顺序有关,是异步的。这些早期DRAM没有同步时钟操作。DRAM内存单元必需刷新,避免丢失数据内容。这要求丢失电荷前刷新电容器。刷新内存由内存控制器负责,刷新时间指标因不同DRAM内存而不同。内存控制器对行地址进行仅RAS#循环,进行刷新。在仅RAS#循环结束时,进行预充电操作,恢复仅RAS#循环中寻址的行数据。一般来
6、说,内存控制器有一个行计数器,其顺序生成仅RAS#刷新周期所需的所有行地址。刷新策略有两个(参见图2)。第一个策略内存控制器在刷新周期突发中顺序刷新所有行,然后把内存控制返回处理器,以进行正常操作。在到达最大刷新时间前,会发生下一个刷新操作突发。第二个刷新策略是内存控制器使用正常处理器内存操作隔行扫描刷新周期。这种刷新方法在最大刷新时间内展开刷新周期。分器”1n1nnn1nnnnnsmiiiiml/unnnirr时间->甘中臊冲代表完咸丽爭亍刷新_卩武新同郎'启谨隹十甫窮月墓图2.DRAM刷新实现方案包括分布式刷新和突发刷新。早期的DRAM演进及实现了DRAMIC上的刷新计数器,
7、处理顺序生成的行地址。在DRAMIC内部,刷新计数器是复用器输入,控制着内存阵列行地址。另一个复用器输入来自外部地址输入针脚的行地址。这个内部刷新计数器不需要内存控制器中的外部刷新计数器电路。部分DRAM在RAS#周期前支持一个CAS#,以使用内部生成的行地址发起刷新周期。SDRAM在接口到同步处理器时,DRAM的异步操作带来了许多设计挑战。SDRAM(同步DRAM)是为把DRAM操作同步到计算机系统其余部分,而不需要根据CE#(芯片启动活动低)、RAS#、CAS#和WE#边沿转换顺序定义所有内存操作模式而设计的。SDRAM增加了时钟信号和内存命令的概念。内存命令的类型取决于SDRAM时钟上升
8、沿上的CE#,RAS#,CAS#和WE#信号状态。产品资料根据CE#,RAS#,CAS#和WE#信号状态,以表格形式描述内存命令。例如,Activate(激活)命令向SDRAM发送一个行地址,打开内存的一个行(页面)。然后是一个Deselect(反选)命令序列,在对列地址发送Read或Write命令前满足定时要求。一旦使用Activate命令打开内存的行(页面),那么可以在内存的该行(页面)上运行多个Read和Write命令。要求Precharge(预充电)命令,关闭该行,然后才能打开另一行。DDRSDRAM数据遠率内存时钟DDR-2S6266Mb/s/tfW133MHzDDR-333333M
9、b/s/针脚166MHzDDR-4Q0400Mb/s/H脚二表1.DDRSDRAM数据速率和时钟速度。DDRSDRAM通过提高时钟速率、突发数据及每个时钟周期传送两个数据位(参见表1),DDR(双倍数据速率)SDRAM提高了内存数据速率性能。DDRSDRAM在一条读取命令或一条写入命令中突发多个内存位置。读取内存操作必需发送一条Activate命令,后面跟着一条Read命令。内存在时延后以每个时钟周期两个内存位置的数据速率应答由两个、四个或八个内存位置组成的突发。因此,从两个连续的时钟周期中读取四个内存位置,或把四个内存位置写入两个连续的时钟周期中。DDRSDRAM有多个内存条,提供多个隔行扫
10、描的内存访问,从而提高内存带宽。内存条是一个内存阵列,两个内存条是两个内存阵列,四个内存条是四个内存阵列,依此类推(参见图3)。四个内存条要求两个位用于内存条地址(BAO和BA1)。图3.DDRSDRAM中多个内存条提高了访问灵活性,改善了性能例如,有四个内存条的DDRSDRAM的工作方式如下。首先,Activate命令在第一个内存条中打开一行。第二个Activate命令在第二个内存条中打开行。现在,可以把Read或Write命令的任意组合发送到打开行的第一个内存条或第二个内存条。在内存条上的Read和Write操作结束时,Precharge命令关闭行,内存条对Activate命令准备就绪,可
11、以打开一个新行。注意,DDRSDRAM要求的功率与打开行的内存条数量有关。打开的行越多,要求的功率越高,行尺寸越大,要求的功率越高。因此,对低功率应用,一次在每个内存条中只应打开一行,而不是一次打开行的多个内存条。在内存条地址位连接到内存系统中的低阶地址位时,支持隔行扫描连续内存条中的连续内存字。在内存条地址位连接到内存系统中的高阶地址时,连续内存字位于同一个内存条中。DDR2SDRAMDDR2SDRAM较DDRSDRAM有多处改进。DDR2SDRAM时钟速率更高,从而提高了内存数据速率(参见表2)。随着时钟速率提高,信号完整性对可靠运行内存变得越来越重要。随着时钟速率提高,电路板上的信号轨迹
12、变成传输线,在信号线末端进行合理的布局和端接变得更加重要。地址、时钟和命令信号的端接相对简明,因为这些信号是单向的,并端接在电路板上。数据信号和数据选通是双向的。内存控制器中心在写入操作中驱动这些信号,DDR2SDRAM在读取操作中驱动这些信号。多个DDR2SDRAM连接到同一个数据信号和数据选通上,进一步提高了复杂度。多个DDR2SDRAM可以位于内存系统相同的DIMM上,也可以位于内存系统不同的DIMM上。结果,数据和数据选通驱动器和接收机不断变化,具体取决于读取/写入操作及访问的是哪个DDR2SDRAM。DDFI2SURAM数揺速率内存时钟DDR2-4OO勇coM阳針脚200MHzDDR
13、2-533533针脚266MHzDDR2-667667Mb/s/针卿333MHzDDR2-8O)BOOMb/s/针脚400MHzDDR2-10G6表2.DDR2SDRAM数据速率和时钟速度。通过提供ODT(芯片内端接),并提供ODT信号,实现片内端接,并能够使用DDR2SDRAM扩展模式寄存器对片内端接值编程(75欧姆、150欧姆等等),DDR2SDRAM改善了信号完整性。片内端接大小和操作由内存控制器中心控制,与DDR2SDRAMDIMM的位置及内存操作类型(读取或写入)有关。通过为数据有效窗口创建更大的眼图,提高电压余量、提高转换速率、降低过冲、降低ISI(码间干扰),ODT操作改善了信号
14、完整性。DDR2SDRAM在1.8V上操作,降低了内存系统的功率,这一功率是DDRSDRAM的2.5V功率的72%.在某些实现方案中,行中的列数已经下降,在激活行进行读取或写入时降低了功率。降低工作电压的另一个优势是降低了逻辑电压摆幅。在转换速率相同时,电压摆幅下降会提高逻辑转换速度,支持更快的时钟速率。此外,数据选通可以编程为差分信号。使用差分数据选通信号降低了噪声、串扰、动态功耗和EMI(电磁干扰),提高了噪声余量。差分或单端数据选通操作配置有DDR2SDRAM扩展模式寄存器。DDR2SDRAM引入的一种新功能是附加时延,它使得内存控制器中心能够在Activate命令后,更快地灵活发送Re
15、ad和Write命令。这优化了内存吞吐量,通过使用DDR2SDRAM扩展模式寄存器对附加时延编程来配置。DDR2SDRAM使用八个内存条,改善了1Gb和2GbDDR2SDRAM的数据带宽。通过隔行扫描不同的内存条操作,八个内存条提高了访问大型内存DDR2SDRAM的灵活性。此外,对大型内存,DDR2SDRAM支持最多八个内存条的突发长度。DDR3SDRAMDDR3SDRAM是一种性能演进版本,增强了SDRAM技术,它从800Mb/s开始,这是大多数DDR2SDRAM支持的最高数据速率。DDR3SDRAM支持六档数据速率和时钟速度(参见表3)。DDR3-1066SDRAM的能耗低于DDR2-80
16、0SDRAM,因为DDR3SDRAM的工作电压是1.5V,是DDR2SDRAM的83%,DDR2SDRAM的工作电压是1.8伏。此外,DDR3SDRAM数据DQ驱动器的阻抗是34欧姆,DDR2SDRAM的阻抗较低,是18欧姆。DDR3SDRAM数据速率内存时制DDFI3-900SODMb/s/#®400MHzDDR3-KJ6S1D65Mb/s/HJS(533MHzDDR3-13SS1针BB7MH2DDFf3-t&00t600Mb/s/针陶800MHz1866KU)怡/针脚933MHzDDR3-21332133Mti囘针心茂鬥迓降新址表3.DDR3SDRAM数据速率和时钟速度。
17、DDR3SDRAM将从512Mb内存开始,将来将发展到8Gb内存。与DDR2SDRAM样,DDR3SDRAM数据输出配置包括x4、x8和X16.DDR3SDRAM有8个内存条,DDR2SDRAM则有4个或8个内存条,具体视内存大小而定。DDR2和DDR3SDRAM都有4个模式寄存器。DDR2定义了前两个模式寄存器,另两个模式寄存器则预留给将来使用。DDR3使用全部4个模式寄存器。一个重要差异是DDR2模式寄存器规定了读出操作的CAS时延,写入时延则是1减去模式寄存器读出时延设置。DDR3模式寄存器对CAS读出时延和写入时延的设置是唯一的。DDR3SDRAM使用8n预取架构,在4个时钟周期中传送
18、8个数据字。DDR2SDRAM使用4n预取架构,在2个时钟周期中传送4个数据字。DDR3SDRAM模式寄存器可以编程为支持飞行突变,这会把传送8个数据字缩短到传送4个数据字,这在读出或写入命令期间把地址行12设为低来实现。飞行突变在概念上与DDR2和DDR3SDRAM中地址行10的读出和写入自动预充电功能类似。值得一提的另一个DDR3SDRAM属性是差分的数据选通信号DQS,DDR2SDRAM数据通信号则可以由模式寄存器编程为单端或差分。DDR3SDRAM还有一个新引脚,这个引脚为活动低异步RESET#引脚,通过把SDRAM置于已知状态,而不管当前状态如何,改善系统稳定性。DDR3SDRAM使
19、用的FBGA封装类型与DDR2SDRAM相同。DDR3DIMM为DIMM上的命令、时钟和地址提供了端接。采用DDR2DIMM的内存系统端接主板上的命令、时钟和地址。DIMM上的DDR3DIMM端接支持飞行拓扑,SDRAM上的每个命令、时钟和地址引脚都连接到条轨迹上,然后这条轨迹终结在DIMM的轨迹端。这改善了信号完整性,其运行速度要快于DDR2DIMM树型结构。飞行拓扑为内存控制器引入了新的DDR3SDRAM写入电平功能,考虑了写入过程中时钟CK和数据选通信号DQS之间的定时偏移。DDR3DIMM的主要不同于DDR2DIMM,防止把错误的DIMM插入主板中。DDR4SDRAMDDR4SDRAM
20、(DoubleDataRateFourthSDRAM):DDR4提供比DDR3/DDR2更低的供电电压1.2V以及更高的带宽,DDR4的传输速率目前可达21333200MT/S。DDR4新增了4个BankGroup数据组的设计,各个BankGroup具备独立启动操作读、写等动作特性,BankGroup数据组可套用多任务的观念来想象,亦可解释为DDR4在同一频率工作周期内,至多可以处理4笔数据,效率明显好过于DDR3。另外DDR4增加了DBI(DataBusInversion)、CRC(CyclicRedundancyCheck)、CAparity等功能,让DDR4内存在更快速与更省电的同时亦能
21、够增强信号的完整性、改善数据传输及储存的可靠性。DDR5SDRAM作为DDR4内存的继任者,DDR5内存在性能上自然要高出DDR4大截。从美光公布的文件来看,DDR5内存将从8GB容量起步,最高可达单条32GB,I/O带宽能达到3.2-6.4Gbps,同时电压1.1V,内存带宽将为DDR4内存的两倍。此外,美光还在芯片论坛上表示DDR5内存将从3200Mhz起步,主流内存频率可达6400Mhz。同时,美光还表示他们将在2018年成功流片DDR5内存样品,并将在2019年实现正式量产。据业内人士估计,DDR5内存的普及应该会在2020年来临,所以想要跳过DDR4内存的朋友还要等待一段时间。GDD
22、R和LPDDR其它DDR变种,口GDDR(图形DDR)和LPDDR(低功率DDR),在业内的地位也在不断提高。GDDR是一种图形卡专用存储技术,目前规定的变种有四个:GDDR2、GDDR3、GDDR4和GDDR5.GDDR的技术与传统DDRSDRAM非常类似,但功率要求不同。其降低了功率要求,以简化冷却,提供更高性能的存储器模块。GDDR也是为更好地处理处理图形要求设计的。简短总结:SDRAM:为同步动态随机存取内存,SDRAM是为了与CPU的计时同步化所设计,这使得内存控制器能够掌握准备所要求的数据所需的准确时钟周期,因此CPU从此不需要延后下一次的数据存取。举例而言,PC66SDRAM以6
23、6MT/s的传输速率运作;PC100SDRAM以100MT/s的传输速率运作;PC133SDRAM以133MT/s的传输速率运作,以此类推。DDRSDRAM(DoubleDataRateSDRAM):为双通道同步动态随机存取内存,是新一代的SDRAM技术。别于SDR(SingleDataRate)单一周期内只能读写1次,DDR的双倍数据传输率指的就是单一周期内可读取或写入2次。在核心频率不变的情况下,传输效率为SDRSDRAM的2倍。第一代DDR内存Prefetch为2bit,是SDR的2倍,运作时I/O会预取2bit的资料。举例而言,此时DDR内存的传输速率约为266-400MT/s不等,像
24、是DDR266、DDR400都是这个时期的产品。DDR2SDRAM(DoubleDataRateTwoSDRAM):为双通道两次同步动态随机存取内存。DDR2内存Prefetch又再度提升至4bit(DDR的两倍),DDR2的I/O频率是DDR的2倍,也就是266、333、400MHz。举例:核心频率同样有133200MHz的颗粒,I/O频率提升的影响下,此时的DDR2传输速率约为533800MT/s不等,也就是常见的DDR2533、DDR2800等内存规格。DDR3SDRAM(DoubleDataRateThreeSDRAM):为双通道三次同步动态随机存取内存。DDR3内存Prefetch提
25、升至8bit,即每次会存取8bits为一组的数据。DDR3传输速率介于800-1600MT/s之间。此外,DDR3的规格要求将电压控制在1.5V,较DDR2的1.8V更为省电。DDR3也新增ASR(AutomaticSelf-Refresh)、SRT(Self-RefreshTemperature)等两种功能,让内存在休眠时也能够随着温度变化去控制对内存颗粒的充电频率,以确保系统数据的完整性。DDR3/DDR2更低的供电电压1.2V以及更高的带宽,DDR4的传输速率目前可达21333200MT/s。DDR4新增了4个BankGroup数据组的设计,各个BankGroup具备独立启动操作读、写等
26、动作特性,BankGroup数据组可套用多任务的观念来想象,亦可解释为DDR4在同一频率工作周期内,至多可以处理4笔数据,效率明显好过于DDR3。另外DDR4增加了DBI(DataBusInversion)、CRC(CyclicRedundancyCheck)、CAparity等功能,让DDR4内存在更快速与更省电的同时亦能够增强信号的完整性、改善数据传输及储存的可靠性。內存标准类曲技心频率时詮频率JI北敖捱传览速率(MIs)工作电压SDRA1!loo-ise100-1661卫wo-iee0.卜133.3DDRi金莎L33-MJ0如266-1002.1-3.22.5-2.6DDR2133-20
27、0266-400411533-30012-6.:LSDDRS133-2Q0333-8008n1O6C-1G0ODDR413託2G01066-16008n2133-320017-21.3L2DDR4关键技术和方法分析1.1DDR4与DDR3不同之处相对于DDR3,DDR4首先在外表上就有一些变化,比如DDR4将内存下部设计为中间稍微突出,边缘变矮的形状,在中央的高点和两端的低点以平滑曲线过渡,这样的设计可以保证金手指和内存插槽有足够的接触面从而确保内存稳定,另外,DDR4内存的金手指设计也有明显变化,金手指中间的防呆缺口也比DDR3更加靠近中央。当然,DDR4最重要的使命还是提高频率和带宽,总体
28、来说,DDR4具有更高的性能,更好的稳定性和更低的功耗,那么从SI的角度出发,主要有下面几点,下面章节对主要的几个不同点进行说明。SpecItemsDDR3DDR4VoltaEe(VDD/VDDQ/VDP)1.51.2DataRate(Mbps)15003200External(VDD/2)InternalfTrainingjData10SSTLPODDataBuslnversion(DBI)NoSupported表1DDR3和DDR*差异表1DDR3和DDR4差异DDR4与DDR3内存差异二:外型卡槽差异DDR4模组上的卡槽与DDR3模组卡槽的位置不同。两者的卡槽都位于插入侧,但DDR4卡槽
29、的位置稍有差异,以便防止将模组安装到不兼容的主板或请注意DDR3与DDR4模组之间的细微差别增加厚度为了容纳更多信号层,DDR4模组比DDR3稍厚。DDR4金手指变化较大大家注意上图,宇瞻DDR4内存金手指变的弯曲了,并没有沿着直线设计,这究竟是为什么呢?一直一来,平直的内存金手指插入内存插槽后,受到的摩擦力较大,因此内存存在难以拔出和难以插入的情况,为了解决这个问题,DDR4将内存下部设计为中间稍突出、边缘收矮的形状。在中央的高点和两端的低点以平滑曲线过渡。这样的设计既可以保证DDR4内存的金手指和内存插槽触点有足够的接触面,信号传输确保信号稳定的同时,让中间凸起的部分和内存插槽产生足够的摩
30、擦力稳定内存。接口位置同时也发生了改变,金手指中间的"缺口"位置相比DDR3更为靠近中央。在金手指触点数量方面,普通DDR4内存有284个,而DDR3则是240个,每一个触点的间距从1mm缩减到0.85mm。曲线边DDR4模组提供曲线边以方便插入和缓解内存安装期间对PCB的压力。仔细看,是一个曲面1.2P0D和SSTL的比较POD作为DDR4新的驱动标准,最大的区别在于接收端的终端电压等于VDDQ,而DDR3所采用的SSTL接收端的终端电压为VDDQ/2。这样做可以降低寄生引脚电容和I/O终端功耗,并且即使在VDD电压降低的情况下也能稳定工作。其等效电路如图1(DDR4),
31、图2(DDR3)。图1POD(PseudoOpenDrain)可以看出,当DRAM在低电平的状态时,SSTL和POD都有电流流动ODTToothercircuitry1likeRCV.VDDQ/2'RTTT'VISwrtchI图3DDR4图4DDR3而当DRAM为高电平的状态时,SSTL继续有电流流动,而POD由于两端电压相等,所以没有电流流动。这也是DDR4更省电的原因图5DDR4Toothercir-CUltTYlikeKey.VDDQ/2>1-1"11Switch|壬"111图6DDR31.3数据总线倒置(DBI)如上面描述,根据POD的特性,当
32、数据为高电平时,没有电流流动,所以降低DDR4功耗的一个方法就是让高电平尽可能多,这就是DBI技术的核心。举例来说,如果在一组8-bit的信号中,有至少5-bit是低电平的话,那么对所有的信号进行反转,就有至少5-bit信号是高电平了。DBI信号变为低表示所有信号已经翻转过(DBI信号为高表示原数据没有翻转)。这种情况下,一组9根信号(8个DQ信号和1个DBI信号)中,至少有五个状态为高,从而有效降低功耗。图7DBIExample1.40DT控制为了提升信号质量,从DDR2开始将DQ,DM,DQS/DQS#的Termination电阻内置至UController和DRAM中,称之为ODT(On
33、DieTermination)。Clock和ADD/CMD/CTRL信号仍需要使用外接的Termination电阻。图8OnDieTermination在DRAM中,On-DieTermination的等效电阻值通过ModeRegister(MR)来设置,ODT的精度通过参考电阻RZQ来控制,DDR4的ODT支持240,120,80,60,48,40,34欧姆。和DDR3不同的是,DDR4的ODT有四种模式:Dataterminationdisable,RTT_NOM,RTT_WR,和RTT_PARK。Controller可以通过读写命令以及ODTPin来控制RTT状态,RTT_PARK是DD
34、R4新加入的选项,它一般用在多Rank的DDR配置中,比如一个系统中有Rank0,Rank1以及Rank2,当控制器向Rank0写数据时,Rank1和Rank2在同一时间内可以为高阻抗(Hi-Z)或比较弱的终端(240,120,80,etcJ,RTT_Park就提供了一种更加灵活的终端方式,让Rank1和Rank2不用一直是高阻模式,从而可以让DRAM工作在更高的频率上。般来说,在Controller中可以通过BIOS调整寄存器来调节ODT的值,但是部分Controller厂商并不推荐这样做,以Intel为例,Intel给出的MRCCode中已经给出了最优化的ODT的值,理论上用户可以通过仿真
35、等方法来得到其他ODT值并在BIOS中修改,但是由此带来的所有问题将有设计厂商来承担。下面表格是Intel提供的优化方案。表3DQReadODTTablefor3DPC1.5参考电压Vref众所周知,DDR信号一般通过比较输入信号和另外一个参考信号(Vref)来决定信号为高或者低,然而在DDR4中,一个Vref却不见了,先来看看下面两种设计,可以看出来,在DDR4的设计中,VREFCA和DDR3相同,使用外置的分压电阻或者电源控制芯片来产生,然而VREFDQ在设计中却没有了,改为由芯片内部产生,这样既节省了设计费用,也增加了Routing空间。图9DDR3设计Vddspd苗卿宀心|IN$SAV
36、ENNC1/4nsrj-trb鬥阳反时乍如一工二胆上g亠fi7J7HUJO"口列元|肚5芒卅邸二2!4瓷匕匕'曲efETF常UHHFlFiFii十TPEnfi-JnnFiaij-ili图10DDR4设计DRAM内部VREFDQ通过寄存器(MR6)来调节,主要参数有Voltagerange,stepsize,VREFsteptime,VREFfullsteptime,如下表所示。ParameterSymbolMinWMaiUnitNotes1VnfFKjoperMinqpoutsV«FFrx?fl160%9216VtjoqL22VuiFEcjopcrMingpckht
37、iVulpscW5%77%Vmhj1,2siepsize03賢0.<»iVOM3Vnir5*1tolerance-IMS%CH1625Vooq4.5.C-015%0%Q.1S%Vooa4,7PaVr£pSteptimeVriIjwISOns9.W,11VhfvaldtoleranteVlttF皿=1»l-045%c%&J5%VwcU表4参考电压每次开机的时候,DRAMController都会通过一系列的校准来调整DRMA端输入数据信号的VREFDQ,优化Timing和电压的Margin,也就是说,VREFDQ不仅仅取决于VDD,而且和传输线特性,接收
38、端芯片特性都会有关系,所以每次PowerUp的时候,VREFDQ的值都可能会有差异。因为Vref的不同,Vih/Vil都会有差异,可以通过调整ODT来看Vref的区别,用一个仿真的例子来说明。对于DDR3,调整ODT波形会上下同步浮动,而调整DDR4OOT的时候,波形只有一边移动。图13DDR4仿真结果1.6DDR4LayoutRouting新方法在所有的Layout走线中,DDR无需质疑是最复杂的,不仅要考虑阻抗匹配,还要考虑长度匹配,而且数量众多的数据、地址线,不得不考虑串扰的影响。DDR信号可分为时钟、数据、地址/命令、控制等四个信号组。各信号组介绍如下:1时钟组:由于采用更高的时钟频率
39、及双沿采样数据的方式,DDR采用差分时钟。差分时钟的走线要求如下:以地平面为参考,给整个时钟回路的走线提供一个完整的地平面,给回路电流提供一个低阻抗的路径。所有的DDR差分时钟信号都必须在关键平面上走线,尽量避免层到层的转换。线宽和差分间距需要参考DDR控制器的实施细则,信号线的单线阻抗应控制在5060Q,差分阻抗控制在100-120Q。时钟信号到其他信号应保持在20mil*以上,防止对其他信号的干扰。蛇形走线的间距不应小于20mil。2数据组:数据组包括DQ、DQS、DM。以低8位数据为例,该数据组包括:DQ7.O、DQS0、DM0数据组布线要求如下:以地平面为参考,给信号回路提供完整的地平
40、面。特征阻抗控制在50-60Q。与其他非DDR信号间距至少隔离20mil。3.地址、命令组:地址组包括ADD、BANK、RAS、CAS、WE。该组布线要求如下:保持完整的地和电源平面。特征阻抗控制在5060Q。信号线宽参考具体设计实施细则。信号组与其他非DDR信号间距至少保持在20mil以上。4控制组:控制组包括CS、CKE。该组布线要求如下:需要有一个完整的地平面和电源平面作参考。为了防止串扰,本组内信号同样也不能和数据信号在同一个电阻排内。二、DDR信号等长约束由于DDR工作频率高,对信号等长有更严格的要求,实际的PCB设计中对所有信号都进行等长控制是不太现实的,也没有这个必要,根据DDR
41、的实际工作方式,仅需要实现如下的等长约束,表1为一个PCB设计说明实例:表1DDR等长约束实例电平标准时钟频率信号名称备注SSTL_CLAS150MCLK_FPGA1_DDR_PDDRII时钟。每对时钟差SICLK_FPGA1_DDR_N分信号等长要求:正负信号之间允许偏差10milSSTL_CLAS150MFPGA1_DDR_DQ31:数据组内等长要求公差+/SI0-25mil。FPGA1_DDR_DQS3:各数据组以时钟线为准,0公差+/-500mil。FPGA1_DDR_DM3:0SSTL_CLAS150MFPGA1_DDR_A12:0地址命令线等长要求:SIFPGA1_DDR_RAS*
42、对于每片FPGA与DDR。FPGA1_DDR_CAS*地址命令组与时钟信号等FPGA1_DDR_WE*长公差+/-150mil。FPGA1_DDR_BANK3:0根据表1所示,DDR的等长约束只需要四个参数。具体约束界面如图1、2所示。其中差分时钟之间(CLK_P与CLK_N)等长不大于5mil。地址、控制组中每个信号都以时钟(本规则中为CLK_N)为基准,等长差范围设置为±150mil。数据组内以DQO为基准,等长控制在25mil以内。各数据组之间,以时钟线为基准,等长差范围设置为0-500mil。DDR4数据速率提高以后,这些方面的影响变得更为严重,尤其是现在很多设计为了节省成本
43、,PCB尺寸和层数都要求尽可能的变小,这样对阻抗和串扰的要求就变的更有挑战性,一般SI工程师和Layout工程师都会想各种办法来满足这些需求,很多时候也不得不妥协折衷,比如在做叠层设计的时候尽量让线宽变小,在BGABreakout区域采用更细的线,等等。但这些方法只能对设计做微小的调整,其实很难从根本上解决问题。最近Intel研究发现的一种新方法很有意思,可以在一定程度上很好的平衡阻抗(线宽)和串扰(线间距)。在此整理出来供大家参考。先来看一个实际的Layout例子,两根红线之间的走线采用锯齿形状。没错,这就是InteI新研究出来的新方法,官方名称为“TabbedRouting”。C-50*9
44、NonTabbtscLength1TotalRoutingLengthIntersigitalTabLength图14DDR4TabbedRoutingNonTabbedLength2TabbedRouting主要的方法是在空间比较紧张的区域(一般为BGA区域和DIMM插槽区域),减小线宽,而增加凸起的小块(Tab),如下图所示。图15Tabrouting方法这种方法可以增加两根线之间的互容特性而保持其电感特性几乎不变,而增加的电容可以有效控制每一层的的阻抗,减小外层的远端串扰。仿真结果如下图所示。JdT3图16HFSS仿真结果FEXT"JmVhlFXT说rrW(D.-8Vswin.
45、g)由仿真结果可以看出来,该方法对阻抗和远端串扰确实可以很好的平衡,当然,对于Tab的尺寸,需要根据实际PCB做详细的仿真设计,Intel也提供了些Tool可以参考。有兴趣的读者,可以参阅更多资料2DDR4Simulation2.1Pre-SimulationwithHyperLynx如果Controller和DRAM都有IBIS模型,可以用HyperLynx对DDR4进行很方便的Simulation,仿真方法和其他DDR相同,通过Pre-Simulation,可以对整个系统的拓扑以及一些细节进行确定,比如Impedance(由Stackup以及线宽和线间距来确定),ODT值的选择,T型结构中
46、Stub长度的控制,ADD/CMD/CTRL终端电阻的取值大小等等。2.1.1ADD/CMD/CTRL终端电阻取值假设ADD电路如下,工作在2400MTs(Add/CMD为1.2Gbps),发送端为U16,采用Fly-By结构到五组DRAM芯片,每组DRAM采用T结构(实际Layout中,Top面一个DRAM芯片,Bottom面一个DRAM芯片),T型长度的Stub为77mil,终端电阻为32欧姆,终端电压为0.6V。O4>-*CZrRimc>->图17ADD仿真拓扑由仿真结果可以看出来,T型结构两端因为完全对称,所以波形几乎一样,为了方便观察,只看其中一个波形,离Contr
47、oller由近及远,DRAM分别为U5,U4,U3,U2,U1,其眼图分别如下:可以看出来,距离Controller越近的芯片,其波形越“乱”,但是上升沿却很快,而距离终端电阻越近的芯片,其波形越好,但是上升沿却变慢。那么如何才能得到最优化的波形呢,下面通过扫描终端电阻的值看看是否会提高信号质量,通过HyperLynx的Sweep功能,设置终端电阻阻值为27,33,39,45四个阻值。、n:3N霑锂就*9*hlllidlMiMLmKh.'.'nliiFofHJM1-*i-''"OF订仃-h'-iirin叮寸t崔如计卞-Pw-r-Knwslirq
48、P-n-aciJ-GbarfffflrTK-diFa-Cd单°骂rg-aiS-rw.irr:HorPlPi:Eritpotrfl陆lb-/-!-r-IPr5r,e=-jisniccx»TtCIdHUE.>0hcieffimt!Cdtiul#mrMhwal胡tun>ig27MiflbiirrjMgnCWjrt:hCRTOTt:昌妣dhTiRm:味w.|EntRange.PWWiKdii图18Sweep设置图19Sweep设置U5(距离Controller最近)的眼图如下,依次对应终端电阻阻值为27,33,39,45欧姆:U4的眼图如下,依次对应终端电阻阻值为27,
49、33,39,45欧姆:U3的眼图如下,依次对应终端电阻阻值为27,33,39,45欧姆:U2的眼图如下,依次对应终端电阻阻值为27,33,39,45欧姆U1的眼图如下,依次对应终端电阻阻值为27,33,39,45欧姆从上面的波形可以看出来,对应每一个DRAM的第三张波形都是最好的,也就是说对应39欧姆的终端电阻可以得到最优化的波形。2.1.2 Data信号Stub的长度-般DDR4的设计中,Data信号都采用PintoPin的设计方式,但在某些设计中,由于PCB空间限制或者控制器限制,也有需要采用一拖二的设计(T型结构),在笔者所遇到的一个设计中,就遇到这种情况,综合考虑下面两种方案,如果采用
50、T型拓扑结构,如图20所示,可以最大可能的节约PCB空间,但是如果DIMM0或者DIMM1只插一根的时候,另一边会有较长的Stub出现,对信号质量会有影响。如果采用菊花链结构,如图21所示,在只插DIMM0的情况下,同样会有Stub影响。而且这种拓扑结构需要DIMM0和DIMM1之间的信号线之间满足长度匹配,在DIMM0和DIMM1比较靠近的情况下,绕线会有一定难度。而如果增加DIMM0和DIMM1的距离,其Stub会变得更长,信号质量没有办法得到控制。从信号完整性方面考虑,两种方案均会存在Stub的影响,但是从Layout的角度来看,方案一有一定便利性,而且其Stub可以控制在500mil以
51、内。所以最终选择方案一作为最终方案。当然,这种设计是以牺牲信号Margin作为代价的,信号速率会收到一定影响,在笔者的项目中,在只插一根内存的时候,信号速率最大只能跑到1866Mb/s.图20DDR4T型结构图21DDR4菊花链结构从仿真的角度出发,这种仿真需要考虑的因素很多,控制器模型,PCB模型,Connector模型,以及最后的内存条模型,而通常情况下,Connector模型和内存条模型很难拿到,而且有时候就算拿到,也是不同类型的模型,整体ChanneI仿真需要更多时间和精力来完成。如果时间有限,需要对设计做快速评估,用HyperLynx做快速仿真也是可以参考的,在下面的例子中,假设一个
52、Conntorller需要驱动两根DIMM或者两颗内存颗粒,系统工作在2400Mb/s,TL2和TL3的长度可以用来大概评估PCBStub长度加上Connector长度加上内存条长度。(此处只是用来做大概评估,如果时间条件运行,强烈建议拿到各个部分精确模型做比较准确的仿真)。从这个简单的仿真可以看出来,Stub对于信号质量的影响还是很明显的,特别对于一根内存槽悬空的状态下,上面的例子中,Stub达到1000mil的时候,在只插一根内存的情况下,眼图已经非常糟糕,所以在实际设计中,需要在设计成本和信号速率之间进行均衡,取舍。在笔者所做的设计中,因为PCB空间限制,最终选择在单根内存的时候只跑到1
53、866Mb/s。图22数据线仿真拓扑在Stub长度为500mil的时候,两根内存都插和只插一根的眼图如下:在Stub长度为1000mil的时候,两根内存都插和只插一根的眼图如下:在用Intel的芯片作为DDRController做设计的时候,Intel所提供的SIModel可以提供一个比较完整的仿真,Intel所提供的SimulationDeck中,包含了DDR连接器,DIMM模型,如果能找到和实际项目匹配的模型,可以替换Deck中的模型,如果找不到模型,直接用Deck中所提供的模型也是非常有参考意义的。2.2 IntelSISTAI仿真Intel所提供的MemoryBitErrorRateExecutable(MBERE)tool集成在其IntelSISTAI(SignalIntegritySupportToolsforAdvancedInterfaces)网站系统上面,SISTAI可以进行PCIE,SATA,USB,QPI等等高速信号的仿真,DDR4仿真模块为MBER,其基本思想是先基于Hspice产生一个StepResponse,然后把仿真结果.TR0文件放进SISTAI系统进行计算,产生WorseCase的眼图,大致仿真流程如下:2.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大班冬季交通安全课件
- 行政事业单位合同
- 项目推进时间表与工作计划书
- 泥工装修详细合同
- 大型体育赛事组织协议
- 能源互联网项目战略合作协议
- 农业机械维修技术作业指导书
- 季度运营策略及任务部署会议纪要
- 设计行业设计方案修改免责协议
- 企业互联网应用服务推广合作协议
- 深静脉血栓形成的诊断和治疗指南(第三版)解读资料讲解课件
- 人教版小学一年级美术上册全册课件
- 统编人教部编版道德与法治四年级下册教材解读教师教材培训课件
- 履约专项检查表
- 人教版数学四年级下册第一单元测试卷
- 模具保养记录表
- 2023国家自然科学基金申请书
- 原始狩猎图 (2)
- 《色彩构成——色彩基础知识》PPT课件
- 镀层的结合力
- 霍尼韦尔DDC编程软件(CARE)简介
评论
0/150
提交评论