DDR3内存的PCB仿真与设计
DDR3内存的PCB仿真与设计
DDR3内存的PCB仿真与设计
一、DDR3内存的PCB仿真
PCB(Printed Circuit Board,印制电路板)的设计是DDR3内存中非常重要的一步。在进行实际制作之前,通过仿真来验证设计的正确性,可以帮助找出潜在的问题并进行优化。
1.电源噪声仿真
2.信号完整性仿真
3.时钟分布仿真
4.排布规则仿真
二、DDR3内存的PCB设计
在进行DDR3内存的PCB设计时,需要考虑以下几个方面。
1.布局设计
2.分层设计
3.时钟优化
4.信号完整性优化
5.地平面设计
良好的地平面设计可以提供稳定的地连接,减小噪声干扰。需要合理规划地平面的宽度和连接方式,并与信号平面分层设计相结合。
总之,DDR3内存的PCB仿真和设计是提高DDR3内存性能和稳定性的重要手段。通过仿真和设计的过程,可以找出潜在的问题并进行优化,提
高DDR3内存的性能和可靠性。对DDR3内存的PCB设计要仔细考虑布局、分层、时钟优化、信号完整性优化和地平面设计等方面,以确保DDR3内存的正常运行。
HyperLynx DDR3及USB信号完整性仿真
5、选择Simulate SI->Run Interactive Simulation或选择图标 打开示 波器进行眼图仿真
示波器如图 默认设置
选择需要观 测的波形,一 般选择观测
输入波形
12
三、 DDR3 DQ信号的仿真 6、选择Eye diagram->Configure,选择眼图参数(DRAM_DQ0选择
28
四、 DDR3 CLK信号的仿真 6、运行Start Simulation,仿真默认参数配置。如下图,黄、绿两根线
为差分线信号,红色为差分信号相减得到的信号,我们只关注黄、绿两根线 的波形。下图眼图比较好,电平判决依据可以在器件Data Sheet查询。
29
四、 DDR3 CLK信号的仿真 7、由于CLK信号单向传输,U2/4 INPUT,只能配置参数
1 同时选择U1-4,点击箭头,DRAMs菜单显示如下
32
六、DDR 信号的批量仿真 5、IBIS Models 6、Nets to Simulate 7、DRAM Signals 选择Perform Automatic Net Mapping 8、Disable Nets 保留需要仿真的线路 9、ODT Models 根据之前单线仿真的结果,配置ODT模式(仅供参考)
在上面读出并记录配置参数
1
2
3
Lattice DDR3教程全攻略之仿真篇
Lattice ddr3教程全攻略之仿真篇
By: BACKKOM
QQ:784496547
Date:2014/9/19 对于这部分,首先建议安装好diamond3.1,modelsim se 10.1a这两个软件,如果想仔细分析DDR3的IP部分,可仔细阅读DDR3 SDRAM Controller IP Core User’s Guide,下面用ug代指。官网上可以download,还有DDR3的基本知识,可以到网上download《高手进阶,终极内存技术指南——完整进阶版》,这个文章值得一读。DDR的调试成功,可以说是开发学习FPGA的一大重要标志,能够把DDR3玩转的熟练,那自称FPGA工程师也是理所当然了。。。
Lattice的ddr3控制器接口逻辑还是相对简单,比较好理解的,下面来看看DDR3 IP 的内部结构:
图:DDR3 IP逻辑框图
Initialization Module:根据JEDEC.的标准,在上电后对DDR3进行初始化配置,配置其相应的寄存器和工作方式等,具体配置的寄存器可以参看ddr3的协议文档,JEDEC规范写的很详细。当初始化配置完成后,该模块会给出一个done信号告诉用户。
sysCLOCK PLL:用于提供IP工作所需要的时钟,并提供给用户端一个时钟:k_clk。
Data Path Logic:用于从DDR3读取的数据转换到用户端,写入的数据不经过该模块,写入的数据从Command Application Logic (CAL)模块输入。
Command Decode Logic (CDL) :该模块用于译码命令,控制core按照设定的命令正确的访问ddr3芯片。
DDR3-硬件设计和-Layout-设计
4 / 13
序号
27
28 29 30
描述
该在同一层布线,并且保证过孔数量的一致性。
注:一些 DDR 芯片数据线接口是 32 位的。
通道 0:MDQ(7:0),MDM(0),MDQS(0),
(0)
通道 1:MDQ(15:8),MDM(1),MDQS(1),
(1)
通道 2:MDQ(23:16),MDM(2),MDQS(2),
5.1 数据线 — MDQ[0:63], MDQS[0:8], MDM[0:8], MECC[0:7]..........................................9 5.2 Layout 建议..................................................................................................................10 6 仿真 ..........................................................................................................................................12 7 扩展阅读...................................................................................................................................13 8 历史版本...................................................................................................................................13 9 声明 ..........................................................................................................................................13
AlteraDDR3仿真教程
Altera_DDR3仿真教程
/2015-0925于深圳
1,根据自己的实际的工程配置创建好工程并根据需要配置好IP核,生产example design,例如:
其余保持默认。
2,查看生成的example design。
3,按照操作说明进行操作
The simulation example design is available for both Verilog and VHDL.
To generate the Verilog example design, open the Quartus project "generate_sim_example_" and select Tools -> Tcl Scripts... -> generate_sim_verilog_example_ and click "Run". Alternatively, you can run "quartus_sh -t generate_sim_verilog_example_"
at a Windows or Linux command prompt.
The generated files will be found in the subdirectory "verilog".
To generate the VHDL example design, open the Quartus project "generate_sim_example_" and select Tools -> Tcl Scripts... -> generate_sim_vhdl_example_ and click "Run".
针对DDR2-800和DDR3的PCB信号完整性设计
针对DDR2-800和DDR3的PCB信号完整性设计
摘要
本文章主要涉及到对DDR2和DDR3在设计印制线路板(PCB)时,考虑信号完整性和电源完整性的设计事项,这些是具有相当大的挑战性的。文章重点是讨论在尽可能少的PCB层数,特别是4层板的情况下的相关技术,其中一些设计方法在以前已经成熟的使用过。
1. 介绍
目前,比较普遍使用中的DDR2的速度已经高达800 Mbps,甚至更高的速度,如1066 Mbps,而DDR3的速度已经高达1600 Mbps。对于如此高的速度,从PCB的设计角度来讲,要做到严格的时序匹配,以满足波形的完整性,这里有很多的因素需要考虑,所有的这些因素都是会互相影响的,但是,它们之间还是存在一些个性的,它们可以被分类为PCB叠层、阻抗、互联拓扑、时延匹配、串扰、电源完整性和时序,目前,有很多EDA工具可以对它们进行很好的计算和仿真,其中Cadence ALLEGRO SI-230 和Ansoft’s HFSS使用的比较多。
表1: DDR2和DDR3要求比较
表1显示了DDR2和DDR3所具有的共有技术要求和专有的技术要求。
2. PCB的叠层(stackup)和阻抗
对于一块受PCB层数约束的基板(如4层板)来说,其所有的信号线只能走在TOP和BOTTOM层,中间的两层,其中一层为GND平面层,而另一层为VD D 平面层,Vtt和Vref在VDD平面层布线。而当使用6层来走线时,设计一种专用拓扑结构变得更加容易,同时由于Power层和GND层的间距变小了,从而提高了PI。
Altium Designer实战攻略与高速PCB设计16
内容提要
• • • • • DDR3介绍 DDR3 Fly-by设计 布局思路 布局操作 布线思路和操作
DDR3介绍
DDR3 Fly-by设计
目前大多数DDR3的布线拓扑结构基本采用Fly-by,即菊花链拓扑结构。主要 目的是提升信号质量,来支持更高频率的设计。与星形拓扑结构相比较,Flyby结构的布线更为简单,也可以节约布线的层数和空间。
百度文库局思路
从CPU的管脚网络分布中可以看到,地址 和命令线主要分布在CPU的左侧,而CPU 的上方是低位和高位的数据总线。
在布局时,应将两片DDR3根据CPU的位 置来进行中心对称布局。同时,PCB的左 侧应留出地址和命令线的布线空间。
另外,由于DDR3是0.8mm pitch的BGA封 装,在布局时我们可以将设计栅格设置为 0.4mm。这样两片DDR3在布局时就可以 摆放在格点上,在手工布线时有利于过孔 和布线的过齐,显得整齐美观。
wwweda365com内容提要?ddr3介绍?ddr3flyby设计?布局思路?布局操作?布线思路和操作ddr3介绍ddr3flyby设计目前大多数ddr3的布线拓扑结构基本采用flyby即菊花链拓扑结构
《Altium Designer实战攻略与高速PCB设计》 第十六章 DDR3的PCB设计 书籍专区:www.eda365.com
布局操作
将PCB的原点设置在CPU中心。 然后将设计栅格和显示栅格都设置为0.4mm,并将两片
xilinx平台DDR3设计教程之仿真篇_中文版教程
想做个DDR设计不?想还是不想?
你要知道FPGA这种东西,片内存储资源终究有限,实在谈不上海量存储。
万一哪天你想要海量存储数据了咋办?
你是不是得用DRAM条子啊?
什么?你还想用SRAM?今年已经2013年了童鞋~
关于DRAM,或许是SDRAM,或许是DDR1(再次提醒你,2013年了已经),
或许是DDR2或者DDR3。
这些条子都有一套控制协议,这套协议对不同的条子大同小异,但是里面
又有各种细节的区别,这些你都搞懂了吗?
没搞懂?
其实,你不需要搞懂。
现在的EDA设计不需要你从基础知识开始研究。
这个时代,你要生存要发展,最佳的办法是站在巨人的肩膀上,而不是亲自长成
个巨人。
DDR设计太常用了,只要你在搞FPGA,自然有人给你搞定一套IP,免费的给你用。你不会还想自己从底层写起吧?
多花些时间在没有免费IP用的协议合算法上吧。
现在进入正题:我刚刚讲的免费IP,在哪里?怎么用的?
(小白问题,IP是什么,IP地址吗?)
这里的IP就是Intelligence Property
说白了就是xilinx里的core gen
(对应于altera里面的mega wizard)
这个文档就举一个例子来讲,选哪家呢?
本人是xilinx和altera都来一个?
条子选啥?SDR?DDR1? 各种条子全都写一套?
(你以为写这个文档容易吗,是不是要连chipscope怎么用也一起出个文档啊?
全部都写一套可以,先往我账户上打五千块钱,然后我再考虑考虑。
记住这个世界上没有白吃的午餐,你要看白痴都能看会的DDR教程,
你就得听我在这里唠叨)
最新DDR3-硬件设计和-Layout-设计整理
最新DDR3-硬件设计和-Layout-设计整理
DDR3硬件设计和Layout设计
译自飞思卡尔官方文档
Hardware and Layout Design
Considerations for DDR3 SDRAM
Memory Interfaces
Document revision history
Date Revision Changes 2015-03-29 1.0 第一次撰稿
目录
1 设计检查表 (3)
2 终端匹配电阻功耗计算 (8)
3 VREF (8)
4 VTT电压轨 (8)
5 DDR布线 (9)
5.1 数据线— MDQ[0:63], MDQS[0:8], MDM[0:8], MECC[0:7] (9)
5.2 Layout建议 (10)
6 仿真 (12)
7 扩展阅读 (13)
8 历史版本 (13)
9 声明 (13)
这是一篇关于DDR3 SDRAM IP core的设计向导,出自飞思卡尔,为了实现PCB的灵活设计,我们可以采用合适的拓扑结构简化设计时的板级关联性。
飞思卡尔强烈推荐系统/板级工程师在PCB制板前进行设计验证,包括信号完整性、时
序等等。
1 设计检查表
如表1,罗列了DDR设计检查清单,推荐逐一检查,并在最右侧作出决策。
表1 DDR3检查清单
序号描述是/否
仿真
1 是否最优化了①终端匹配电阻值、②信号线拓扑、③走线长度等?这些项目
最好通过仿真进行优化!
假如在DDR和控制器间应用了ODT(on-die termination)技术,那么在数据
总线上就不需要额外的终端匹配电阻了。
xilinx平台DDR3设计教程之仿真篇
想做个DDR设计不?想还是不想?
你要知道FPGA这种东西,片内存储资源终究有限,实在谈不上海量存储。
万一哪天你想要海量存储数据了咋办?
你是不是得用DRAM条子啊?
什么?你还想用SRAM?今年已经2013年了童鞋~
关于DRAM,或许是SDRAM,或许是DDR1(再次提醒你,2013年了已经),
或许是DDR2或者DDR3。
这些条子都有一套控制协议,这套协议对不同的条子大同小异,但是里面
又有各种细节的区别,这些你都搞懂了吗?
没搞懂?
其实,你不需要搞懂。
现在的EDA设计不需要你从基础知识开始研究。
这个时代,你要生存要发展,最佳的办法是站在巨人的肩膀上,而不是亲自长成
个巨人。
DDR设计太常用了,只要你在搞FPGA,自然有人给你搞定一套IP,免费的给你用。你不会还想自己从底层写起吧?
多花些时间在没有免费IP用的协议合算法上吧。
现在进入正题:我刚刚讲的免费IP,在哪里?怎么用的?
(小白问题,IP是什么,IP地址吗?)
这里的IP就是Intelligence Property
说白了就是xilinx里的core gen
(对应于altera里面的mega wizard)
这个文档就举一个例子来讲,选哪家呢?
本人是xilinx和altera都来一个?
条子选啥?SDR?DDR1? 各种条子全都写一套?
(你以为写这个文档容易吗,是不是要连chipscope怎么用也一起出个文档啊?
全部都写一套可以,先往我账户上打五千块钱,然后我再考虑考虑。
记住这个世界上没有白吃的午餐,你要看白痴都能看会的DDR教程,
你就得听我在这里唠叨)
使用AllegroPCBSI应对DDR的挑战
1999
2002
This creates the need for faster
DDR3 bins
2006 2010
And pushes DDR4 higer
2015
4
DDR3和DDR/DDR2的不同
项目 封装 预取 Pre-fetch 接口 数据选通 逻辑 Bank CAS 延迟(CL) 活动延迟 (AL) 写延迟 (WL)
7
ODT和动态ODT
?ODT (On-Die Termination) 将匹配内置到芯片中,以提高数据总线的信号质量 ?动态ODT能够进一步提高DDR3数据总线的信号质量,特别是在多个负载例如 双内存条系统中
8
DDR3的动态ODT
? 什么是动态ODT
– 在读写切换时,DDR3内存会在原始ODT和动态ODT做对应的切换。也 就是说,当读取或空闲时,ODT的值会是 20, 30, 40, 60, 120 ohm 之 一(由EMR配置);而写入时会切换至60或120ohm(由EMR配置)
? 读取时数据关于数据选通的建立/保持时间
Core 133MHz SDR
Memory Array
Ex Clock 533MHz I/O
Buffer
Ex Clock 266MHz I/O
Hale Waihona Puke BaiduBuffer
ddr3 1
ddr3 1.5v电源上升斜率减小故障机理
DDR3 1.5V电源上升斜率减小的故障机理可能有以下几种:
1. 电源电流不足:当电源电流无法提供足够的电流时,电压上升斜率会减小。这可能是由于电源本身容量不足或者存在电源线路中的连接问题导致。
2. 电源电压不稳定:电源电压的不稳定性也会导致电压上升斜率减小。可能是由于电源本身质量不好,在输出电压上存在波动,或者因为电源线路中存在一些干扰源。
3. PCB设计问题:在DDR3内存模块的PCB设计中,如果电
源线路不合理或存在问题,也会导致电压上升斜率减小。例如,电源线路长度过长、接地线路不良等都可能导致电压上升斜率下降。
4. 电容问题:电容是电路中起到滤波作用的元件,如果出现电容故障或电容容量不足,也会导致电压上升斜率减小。
综上所述,DDR3 1.5V电源上升斜率减小的故障可能是由于
电源电流不足、电源电压不稳定、PCB设计问题或电容问题
等原因引起的。在排查故障时,可以从这几个方面进行检查和修复。
systemSI DDR3仿真步骤
1、使用systemSI进行仿真的流程为:
获取芯片IBIS模型》加载芯片IBIS模型》分配仿真bus》提取PCB S参数》配置仿真模型及参数》仿真
其中提取PCB S参数的步骤为:
将brd文件转化为spd文件》配置平面参数》设置电源net》选择需要仿真的net并自动生成port》设置port阻抗》仿真
2、system SI IBIS模型加载步骤:
其中点击1选择需要加载的IBIS模型,一个IBIS模型中可能包括多个器件型号,需要在右上方的“component”中选择对应的器件型号,然后点击bus definition定义总线(定义总线的主要作用是区分哪些信号需要仿真,并将需要仿真的信号分类为data、ctrl、addcmd三种类型),点击add添加新总线,在“Bus Type”中选择总线的类型,在“Bus Group”中设置Bus name,在“Timing Ref”中选择各个信号的参考时钟,“Edge Type”用于选择信号的触发方式,data触发方式为“BothEdges”,ctrl和addcmd的触发方式为“RiseEdge”,在“Signal Names”中选择该group中包括的信号,如果是data信号,还可以添加“Clock”即ctrl和addcmd的参考时钟,可以用于分析数据时钟与控制时钟的对应关系。
修改完成后点击OK,退出后点击“确定”
分别对controller和memory进行配置,注意memory的配置需要与controller相对应,如下图
3、提取PCB的S参数
在开始菜单输入“SPDLinks”,打开Allegro Sigrity SPDLinks
DDR3设计总结
DDR3设计规范总结
PCB Layout
在实际的PCB设计时,考虑到SI、EMC的要求,往往有很多的折中方案。通常,需要优先考虑对于那些对信号的完整性要求比较高的。设计PCB 时,当考虑一下的一些相关因素,那么对于设计PCB来说可靠性就会更高。
1. 首先,要在相关的EDA工具(Cadance-Allegro)里要设置好里设置好拓扑结构和相关约束。
2. 将BGA引脚突围,将ADDR/CMD/CNTRL引脚布置在DQ/DQS/DM字节组的中间,由于所有这些分组操作,为了尽可能少的信号交叉,一些独立的管脚也许会被交换到其它区域布线。
3. 由串扰仿真的结果可知,尽量减少短线(stubs)长度。通常,短线(stubs)是可以被削减的,但不是所有的管脚都做得到的。在BGA焊盘和存储器焊盘之间也许只需要两段的走线就可以实现了,但是此走线必须要很细,那么就提高了PCB的制作成本,而且,不是所有的走线都只需要两段的,除非使用微小的过孔和盘中孔的技术。最终,考虑到信号完整性的容差和成本,可能选择折中的方案。
4. 将Vref的去耦电容靠近Vref管脚摆放;Vtt的去耦电容摆放在最远的一个SDRAM外端;VDD的去耦电容需要靠近器件摆放。小电容值的去耦电容需要更靠近器件摆放。正确的去耦设计中,并不是所有的去耦电容都是靠近器件摆放的。所有的去耦电容的管脚都需要扇出后走线,这样可以减少阻抗,通常,两端段的扇出走线会垂直于电容布线。
5. 当切换平面层时,尽量做到长度匹配和加入一些地过孔,这些事先应该在EDA工具里进行很好的仿真。通常,在时域分析来看,差分线里的两根线的要做到延时匹配,保证其误差在5mil,而其它的信号要做到10mil。
DDR3DDR4DDR5设计和仿真流程
DDR3DDR4DDR5设计和仿真流程
这个功能是ADS2019 update1里面才具有的功能。小编非常喜欢这个功能,因为这个功能把仿真软件和测试设备的优势结合在了一起。通过仿真发现和避免一些设计的问题。
Keysight发布了ADS2019U1版本的新功能memory designer。新功能使开发人员能够轻松地完成DDR仿真所需的设置,并将仿真数据进行一致性测试分析, 从而减少了完成产品开发工作所需的时间。
1.DDR的设计挑战
我们通过以下案例来看一个常规的DDR 仿真需要完成哪些设置:
这是一款Xilinx的FPGAdemo板设计。在本案例中, 所有4颗DRAM 都直接焊接在 PCB 上。假定我们需要仿真每个DRAM上两字节通道 (dq0-dq15 和 dqs0-dqs1) 的写入周期。仿真中还包括两条地址线 (a0 和 a1) 和一个时钟信号 (ck0)。地址和时钟信号连接所有四个DRAM。
要完成这样的仿真,按照常规的流程,我们需要通过电磁场仿真器抽取PCB上以上所有网络的频域模型。如果考虑电源分配网络对信号质量的影响,那在抽取时也应包含电源与地平面的频域模型。这样,需要抽取的PCB网络端口数超过170个。
抽取完成后,设计者需要设置主控芯片和DRAM 芯片模型参数。这些芯片模型一般来自芯片厂家的IBIS文件。仿真中用到的每个芯片管脚都需要从模型文件中选出并进行相应配置。这些必要的配置包括封装参数,子模型选择,发送端数据速率及码型,IBIS corner等。在很多设计中,设计者还需要对芯片参数进行优化扫描,以获取最优的
xilinx平台DDR3设计教程之设计篇_中文版教程3
现在你应该已经看完了仿真和综合教程
我们进入了设计篇,说白了就是讲一讲DDR IP的用户接口是怎么用的用户接口在哪里?
请你打开下面这个目录里面的example_top.v
这也就是你综合出来工程的顶层文件了
我们来理一理
这个文件的结构吧开头部分,
全是介绍,
你删了都关系
然后是各种参数的设定
这里有bank,row,column,rank,等等各种设置
其实你不用动它们
这些都是你之前选条子的时候已经选好了的
不记得自己选什么条子了?
乖乖,你不如再翻翻仿真教程先?
各种仿真延迟参数也跟你选的条子有关
你也别管了
我都不管这些
和DDR条子的各种接口
你要知道,用户接口是个内部接口,你这里当然看不到了。
如果之前选了
“use system clock”的话
这里就看不到
clk_ref相关的参考时钟管脚了。
这里顺便提一下
column和row地址是在
ddr3_addr里面复用的。column一般是10bit宽度。row一般14-16bit宽度。ddr3_ba是选bank的,
一般是3bit宽度,对应8个bank。
ddr3_cs_n是选rank的,
有几个rank就有几个bit的宽度,因为要考虑啥都不选的情况,和之前几个参数不一样的。
各种参数配置
相互之间的关系换算,选择
继续和你没有关系
作为设计者的你,
可以继续无视这些部分
各种wire定义
你有兴趣研究不?我是没兴趣
终于开始实例化DDR3了
看见DDR3 右边的#号了没?这说明下面这些都不是管脚,而是配置用的参数。
你继续不用改
这都六百多行了,
你还是啥也不用改。
唉呀妈呀,DDR3实例化的实体
经典DDR3PCB设计指导
经典DDR3PCB设计指导
DDR3(Double Data Rate 3)是一种高速、大容量的随机存取存储器(RAM)技术,被广泛应用于各种计算机系统中。在设计DDR3 PCB时,需要考虑信号完整性、EMI、布局、电源管理等因素,以确保系统的稳定性和性能优化。
以下是经典的DDR3PCB设计指导:
1.保持信号完整性:
-使用合适的信号走线宽度和间距,根据DDR3规范进行引脚布局和布线。
-控制信号的线长匹配,特别是对于时钟和命令/控制信号,通过控制线长来减小延迟。
-使用差分对来传输数据和时钟信号,并保持差分对长度相等,以最小化信号的失真和串扰。
2.使用层次布局:
-使用多层PCB设计,将信号和电源/地线分开布局在不同的层次上,以减少干扰和串扰。
-高速信号层应该位于内层或表层以提高信号完整性,电源/地线可以位于内层。
3.地线规划:
-根据信号引脚布局的特性,在有需要的地方增加避雷阻抗到地线。
-在信号回流点上使用地孔,以确保地线的连续性和稳定性。
-用足够的地区域保持良好的接地电流路径,以防止信号引脚之间的环形回流。
4.电源管理:
-确保DDR3模块的电源电压稳定性,以避免信号和时序问题。
-确保电源管脚的降压滤波电容足够,以提供稳定的电源。
-使用布线良好的电源平面,以减少噪声和电流环路。
5.EMI控制:
-在高速信号线周围添加地层和电源层,以提供屏蔽和隔离。
-使用过滤电容和磁珠来抑制电磁干扰。
-使用有源和被动的EMI抑制技术,如电磁屏蔽罩和衰减器。
6.综合考虑布局:
-在布局时考虑信号走线和连接器的位置,以便在PCB上布线并连接到其他组件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文主要使用时域分析工具对DDR3设计进行量化分析,介绍了影响信号完整性的主要因素对DDR3进行时序分析,通过分析结果进行改进及优化设计。
1 概述
当今计算机系统DDR3存储器技术已得到广泛应用,数据传输率一再被提升,现已高达1866Mbps。在这种高速总线条件下,要保证数据传输质量的可靠性和满足并行总线的时序要求,对设计实现提出了极大的挑战。
本文主要使用了Cadence公司的时域分析工具对DDR3设计进行量化分析,介绍了影响信号完整性的主要因素对DDR3进行时序分析,通过分析结果进行改进及优化设计,提升信号质量使其可靠性和安全性大大提高。
2 DDR3介绍
DDR3内存与DDR2内存相似包含控制器和存储器2个部分,都采用源同步时序,即选通信号(时钟)不是独立的时钟源发送,而是由驱动芯片发送。它比DR2有更高的数据传输率,最高可达1866Mbps;DDR3还采用8位预取技术,明显提高了存储带宽;其工作电压为1.5V,保证相同频率下功耗更低。
DDR3接口设计实现比较困难,它采取了特有的Fly-by拓扑结构,用“Write leveling”技术来控制器件内部偏移时序等有效措施。虽然在保证设计实现和信号的完整性起到一定作用,但要实现高频率高带宽的存储系统还不全面,需要进行仿真分析才能保证设计实现和信号质量的完整性。
3 仿真分析
对DDR3进行仿真分析是以结合项目进行具体说明:选用PowerPC 64位双核CPU 模块,该模块采用Micron公司的MT41J256M16HA—125IT为存储器。Freescale 公司P5020为处理器进行分析,模块配置内存总线数据传输率为1333MT/s,仿真频率为666MHz。
3.1仿真前准备
在分析前需根据DDR3的阻抗与印制板厂商沟通确认其PCB的叠层结构。在高速传输中确保传输线性能良好的关键是特性阻抗连续,确定高速PCB信号线的阻抗控制在一定的范围内,使印制板成为“可控阻抗板”,这是仿真分析的基础。DDR3总线单线阻抗为50Ω,差分线阻抗为100Ω。
设置分析网络终端的电压值;对分析的器件包括无源器件分配模型;确定器件类属性;确保器件引脚属性(输入\输出、电源\地等)……
3.2电路前仿真分析
前仿真分析的内容主要是在PCB设计之前对电路设计的优化包括降低信号反射、过冲,确定匹配电阻的大小、走线阻抗等,通过对无源器件的各种配置分析选取出最适合的参数配置。
图1:时钟线的拓扑结构
(1)DDR3总线的差分时钟分析
众所周知,在差分传输中,所有信息都是由差模信号来传送的,而共模信号会辐射能量并能显著增加EMI,因此保证差分信号的质量十分重要,应使共模信号的产生降到最低。在对差分时钟分析时不仅要关注其本身的信号质量,由于其它信号都是以差分时钟的来采样数据,因此还需关注其单调性、过冲值等。
本例中差分时钟的fly—by拓扑结构与地址总线一样为串联方式,如图l对处理器P5020驱动4个DDR3内存芯片的时钟拓扑结构,在终端进行简单的电阻匹配,在PCB板上差分走线后,进行反射分析发现接收端反射波形上下过冲较大。在处理器输出端选用正确的下拉匹配电阻,虽电压幅值略有减少,但上下过冲明显减少消除了反射干扰,即减少了差分线的共模分量。对比分析结果如图2。
图2:接收端DDR3的反射波形
(2)验证驱动能力和ODT选项
DDR3内存总线数据信号的驱动能力分为FULL和HALF两种模式,内部终端电阻(ODT)选择也有0Ω、20Ω、30Ω、40Ω、60Ω、120Ω选项,它们分别对应不同的模型用于控制信号反射的影响。为提高信号质量、降低功耗,可通过分析不同模式选取正确的参数模型。
取数据总线对不同的ODT选项进行分析。图3是在不同ODT设置进行分析数据信号形成的眼图波形,从图中可以看出:ODT阻抗越高,在相同驱动激励和走线等情况下转换率越高,幅度越大;在选择ODT=60Ω,其接收波形平缓信号质量最好,无明显抖动和过冲,抖动最小。
图3:数据信号眼图波形
通常串扰是指当信号在传输线上传播时,因电磁耦合对相邻的传输线产生的不期望的电压噪声干扰。它生成前向串扰与后向串扰,其对信号波形主要影响在幅度和边沿上面。
从DDR3数据总线提取3根相邻线,中间一根为被攻击网络,周围2根为攻击网络,采用3线模型进行分析,如下图4走线排列,其受害线为中间走线保持低电平,两边的为攻击线,采用128位伪随机码,根据走线的不同线宽和线间距对其进行串扰分析,看其分析结果如下表1。
图4:走线剖面图
表1 串扰分析结果
从表1可看出间距越大串扰影响越小,这里我们遵循的3W原则即走线边沿间距S是线宽W的3倍将大大减少串扰的影响。但间距增大将牺牲布线空间,因此需综合考虑使在有限的空间中布线最优化。
3.3 时序分析
DDR3是并行总线,其时序属源同步系统,在满足信号质量的前提下,也必须满足时序要求。对于源同步时钟,驱动芯片的数据和时钟信号由内部电路提供即数据和时钟并行传输。DDR3对不同的时序关系采用分组设计,其时序关系如表2。
表2 时序分组关系
源同步时序计算公式:
Tsetup_margin=Tvb—Tsetup—Tskew
Thold_margin=Tva—Thold—Tskew
公式中:
Tsetup margin\Thold_margin:建立时间余量\保持时间余量
Tvb\Tva:驱动端的建立时间和保持时间,Tsetup\Thold接收端的建立时间和保持时间
Tskew:指数据、地址信号参考时钟引起的偏移。
其中Tvb\Tva,Tsetup\Th01d参数值都是能从器件手册中获取,关键是数据与选通信号飞行时间的时序偏移(skew),包含驱动端输出的偏移和在PCB板上的走线长度的偏移,需通过时序仿真非理想随机码进行分析计算得出。
以DDR3数据读写操作为例,根据下表芯片资料中的时序参数进行静态时序裕量的计算,获得PCB设计的时序控制规则。
表3 仿真所需要的时序参数(数据率:1333MHz)控制器:
写操作:
Tsetup_margin=0.25—0.03=0.22ns
Thold_margin=0.25-0.065=0.185ns
读操作:
Tsetup_margin = Thold_margin=(0.38*1.5-0.125)/2 - 0.125=97.5ps
上述计算值是理论上的时序余量,其实源同步时序除本身芯片自身固有特性所带来的延时外还受其他因素的影响,都属于偏移范围,主要包括:
(1)高速总线造成的信号完整性问题如串扰、同步开关噪声、码间干扰(ISI)等影响,需通过信号仿真分析来估算。