张 超,余 综
(华北计算技术研究所,北京100083)
在通用或专用计算系统硬件电路设计中,内存芯片与主控芯片的互联设计是整个系统设计的关键,系统能否稳定运行,与内存的读写密不可分。DDR3是新型的高速高带宽内存器件,是目前计算系统采用的主流存储器。DDR3采用源同步双数据速率技术,可以支持800/1066/1333Mbps的数据读写速率,各组信号遵守STLL15电平规范,接口电压1.5V。极高的数据传输速率表明传输信号的频率进一步增高,降低后的接口电压造成主控芯片和DDR3之间信号的噪声容限减小。这些都对系统各接口的信号质量、时序逻辑、抖动和噪声容限提出了更高更严格的要求。系统设计特别是PCB的互联设计面临巨大挑战。
主控芯片与内存芯片之间的互联是整个计算系统的关键网络。JESD79-3C[1]规范建议主控芯片与多片DDR3之间采用Fly-By拓扑结构,简化了拓扑复杂度,但引入了时延,端接等其他问题,系统互联的信号完整性分析变得极其重要。合理的信号完整性设计将保证主控芯片和DDR3芯片之间的时钟时序和读写数据时序准确无误,进一步确保系统在高速、低电压环境下稳定地工作,避免诸如信号反射、串扰、地弹噪声等问题和EMI等问题[2]。文献 [3]介绍了一种包含了芯片、封装、板级走线等诸多因素的分析模型,验证了一些敏感网络对系统信号完整性和电源完整性的影响。文献[4]详细讲述了一种基于DDR3 SDRAM信号总线互联的系统级仿真方法,用以实现在1333Mbps数据传输率下每通道支持3个DIMM条的实现方案。文献 [5]结合DDR2案例,量化分析了DDR系列内存系统的信号完整性设计的各项指标,并给出了设计方案和仿真分析方法等。
为了实现对系统互联设计进行高效、准确的信号完整性仿真分析,Intel公司开发了针对芯片管脚行为级仿真的IBIS模型。本文以信号完整性相关理论为基础,结合IBIS模型,给出了一套完整的主控芯片和DDR3内存颗粒芯片互联设计和优化的方案,通过实例仿真分析验证了方案的正确性和可行性。本课题基于某型专用计算设备,选用中科龙芯自主公司研制的高性能通用CPU龙芯3A和Micron公司的MT41J256M4JP作为主控芯片和内存颗粒芯片。龙芯3A采用65nm工艺,主频1GHz,内部集成了 DDR2/DDR3内存控制器,所有内存读/写操作都遵守JESD79-2B及JESD79-3C的规定。
IBIS(Input/Output Buffer Information Specification)规范是一种描述IC设备输入、输出缓冲器的模拟行为规范。它通过记录IC器件各端口的I-V数据和V-T数据对输入、输出缓冲器进行建模。IBIS规范提出一套通用的文本格式标准,除了记录IC缓冲器的I-V和V-T数据外,还能记录驱动端口的输出阻抗,输入负载阻抗及信号上升、下降转换速率等参数信息,在不涉及芯片内部功能结构的前提下,可针对板级反射、串扰、高频损耗、时序抖动以及EMI等问题进行仿真分析和计算等。IBIS模型基于IBIS规范标准,用ASCII文本文件格式描述,其最初由Intel公司开发并专用于PCB设计和仿真,随后经国际标准化组织ANSI/EIA认可并维护。因其具备较快的仿真速度,并对不同的EDA软件提供了一致的描述规范标准,所以获得了绝大多数IC器件商和提供SI、PI仿真分析功能的EDA软件的支持。图1是一个典型的输入、输出缓冲器IBIS模型的模块结构图。图1中,每一个方框对应IBIS模型的一个模块要素,分别包含器件封装的寄生电气参数、上拉和下拉曲线、嵌位保护电路参数,信号上升和下降转化速率等信息。
图1 输入/输出缓冲器IBIS模型模块化结构
IBIS模型由IC生产厂商建立并维护,成本昂贵。目前由于资金问题和市场需求,国内IC厂商提供的IBIS模型精确度甚至正确度均有待提高。IBIS模型的精确度将直接影响后续仿真设计的可信性,故运用IBIS模型仿真前,有必要对模型中包含的关键数据进行验证。
IBIS模型的文本文件包含头文件、器件和引脚信息、MODEL及其子参数、工作电压和温度、波形转换数据等。其中U-I数据中的关键字 [Pull-up]、[Pull-down]以及波形转换数据中的关键字[ramp]等数据,是整个IBIS模型的关键,是决定仿真是否精确可靠的重要数据因素。以龙芯3A的IBIS模型为例,阐述各个数据间的关系,用以指导在获取芯片的IBIS模型后进行模型的准确性验证[8]。
包含于[ramp]关键字中的R-load是获取转换速率的关键。通过将R-load接地可以获取管脚的波形上升转换速率。对应地,将R-load接电源可以获取管脚的波形下降转换速率。在[ramp]中,波形上升转化速率表示为dV/dt_r,其中V_h的取值为电压幅值的15% ~85%,此区间内波形上升斜率较为稳定。故可取V_h≈V_hamp×60%,其中V_hamp为上升转换时的电压幅值。高电压趋于稳定时的电流I_htyp=V_hamp/R_load,电压Voltage_h=Vcc-V_hamp,上述的I_htyp和Voltage_h应该与Pullup数据中的某值相等或接近。对应地,[ramp]中的波形上升转化速率表示为dV/dt_f,取V_f≈V_famp×60%,V_famp为下降转换时的电压幅值。低电压趋于稳定时的电流值I_ftyp=V_famp/R_load,电压Voltage_f=Vcc-V_famp,电压稳定时。I_ftyp和Voltage_f的值应该与Pulldown数据中的某值相对应。截取龙芯3A的IBIS模型文件如下:
[Ramp]
typ min
max
dV/dt_ r 823.21816mV/221.5701ps 771.72621mV/350.50443ps 862.28669mV/188.52855ps
dV/dt_ f 812.29431mV/196.46721ps 759.53237mV/284.74106ps867.03683mV/169.98271ps
R_load=50.0
[Pullup]
Voltage typ min
max
410.0 mV -26.33598mA -25.50012mA
-25.685mA
430.0 mV -27.55998mA -26.70209mA
-26.847mA
[Pulldown]
Voltage typ min
max
430.0 mV 26.14215mA 25.08766mA
27.46301 mA
450.0 mV 27.29014mA 26.21261mA
28.61401 mA
根据上文描述方法,验证过程如下:V_hamp=V_h/0.6=0.823V/0.6=1.372V,I_htyp=-V_hamp/R_load=-1.372/50= -27.440mA,Voltage_h=Vcc-V_hamp=1.8-1.372=428mV,对比IBIS文件中[Pullup]数据,计算结果和模型数据相当接近。对应地,可以验证 [Pulldown]中数据,验证计算的过程不再赘述,计算结果为I_ftyp=27.067mA,Voltage_f=446mV,验证结果和文件数据吻合较好。故可基本判断该数据所描述的MODEL型端口行为信息是准确的。
上述方法基于IBIS模型中关键数据 [Pullup]、[Pulldown]和[Ramp]的内在联系,通过管脚的缓冲电路模型结合[Ramp]中的波形转换速率和负载数据,计算出稳态时管脚的电压和电流,并与[Pullup]、[Pulldown]中数据比对,进而验证IBIB模型是否准确。该方法的局限性在于,如果 [Ramp]和 [Pullup]、 [Pulldown]中数据同时出错,则该方法不再适用。但是三者同时出错的概率极小,故本方案对于验证IBIS模型的准确性有一定意义。
DDR3的时钟信号由CPU提供,选用的DDR3芯片MT41J256M4JP,外部时钟频率可达667MHz,确保DDR时钟信号的稳定、控制时钟信号抖动是保证内存乃至整个系统正常工作的前提。DDR系列内存芯片使用差分信号提供外部时钟。差分信号是以两根等长且相互耦合的单端传输线传输一对反相信号,两线上的电压差即为所传输的最终信号。相比于单端传输线,差分传输线具有较强的抗噪声和抗干扰性,在恶劣的电磁环境下依然能保持良好的电平和准确的时序逻辑[9]。但差分线对于布线要求较高,时延差要求较精确,构成差分线的单端传输线需严格保持等长,线距、线宽等因素会影响差分阻抗等。差分线在传输差分信号的同时,也容易携带共模信号并传送至接收端。因而在使用差分线对时,需要对信号完整性问题进行约束处理。
差分信号需要端接电阻以抵消反射。传统的端接方法是在差分线的末端,将端接电阻串联接入两条差分线之间,其端接方式如图2。端接电阻的阻值应等于该对差分线的差分阻抗。差分线的差分阻抗等于两条单端传输线特性阻抗之和,本课题中DDR3差分时钟线的单端阻抗Z0=50Ω,则差分阻抗为100Ω,端接电阻的阻值应选择100Ω。
图2 差分线传统端接方式
差分信号描述了差分传输线上一对反相信号的差值。但是现实环境中,差分传输线对上不可能存在一对严格反相的信号。事实上,由于构成差分线的两条单端传输线线长差引起的信号时延、差分线间的耦合、差分线受到的串扰、SSN等影响[10],差分线上的信号组成成分变得复杂起来,信号不再严格反相。信号中也包含有许多同相分量。定义共模信号如下
其中V1,V2分别表示两条单端传输线与返回路径之间的电压信号。对应地,可以定义差分信号如下
由式 (1)、(2)可知,单端传输线上的实际信号可以表示为差分信号和共模信号的组合,表述如下
通过式 (3)、(4)可知,单端传输线上的信号同时包含有共模分量和差分分量。故可视共模信号和差分信号在单端传输线上独立传播。进一步地,差分传输线上的共模信号和差分信号也可视作独立传播,并且各自受到的阻抗也独立存在。
由于共模信号的存在,在端接电阻时,除了匹配差分阻抗外,还应匹配共模阻抗以阻止共模信号在电路间振荡。对于大间距小耦合的差分线,传统端接方法对共模信号的端接依然有效,共模阻抗可以看做是在传输共模信号的模态下两条传输线各自特性阻抗的并联。图2所示的传统端接方法,端接电阻R0亦可被看做两个电阻R1和R2的串联,如图3所示,每个电阻阻值相当于图2中端接电阻R0的一半。共模端接的等效阻抗可以视作R1与R2的并联,即共模端接阻抗R12=R1/2=R2/2=R0/4=25Ω。
图3 差分线传统端接方式的共模等效端接
然而由于差分线的间距较近,差分线之间存在耦合,造成差分线中每个单端传输线在差分模态和共模模态下的特性阻抗发生了变化。其变化趋势为,差分模态下单端传输线的特性阻抗Z0-diff减小,共模模态下单端传输线的特性阻抗Z0-comm增大。使用二维场求解器仿真软件Ansoft软件,可精确求解出耦合时单端差分线的Z0-diff和Z0-comm。本课题中DDR3时钟信号的单端线宽为8mil,PCB材质为FR4,边沿线距为8mil,特性阻抗Z0=50Ω。使用Ansoft的SI2D求解得到,Z0-diff=46.1Ω,Z0-comm=56Ω。根据串并联法则,紧耦合时差分线对的差分阻抗Zdiff=2×Z0-diff=2×46.1=92.2Ω,共模阻抗为Zcomm=Z0-comm/2=28Ω。
为彻底端接共模信号,采用T型端接方法,见图4。
图4 差分线T型端接方式
其中两个R0串联用以端接差分阻抗,两个R0并联后与R1的串联等效电阻用以端接共模阻抗。其中R0、R1取值遵循以下公式[11]
由于R1通常较小,差分驱动器的输出直流电流通常较大,典型差分驱动器对较低的直流电阻控制不足。为了从根本上端接共模信号,需要加入隔直电容C0,C0与端接电阻形成了一节RC振荡回路,谐振点应远离信号的上升沿最高频率,故C0的选择遵循下列公式
式 (7)、(8)中,RT为信号上升沿时长。
选用明导公司的信号完整性和电源完整性设计软件Hyperlynx对DDR3时钟差分信号的端接进行仿真。图5所示为差分线传统端接和T型端接下的信号仿真。对比图5中(a)和 (b)可以看出,传统端接由于共模信号的反射影响,单端信号和整体差分信号电平出现偏移。而采用T型端接,共模信号被完全端接,信号电平稳定。这表明,选取适当阻值的电阻和电容进行T型端接,对差分线共模信号的端接有明显作用,提高了差分线的共模抑制比,以减少共模信号对相邻其他信号的串扰、EMI等。
图5 差分线传统端接和T型端接仿真波形
DDR3采用典型的同步并行总线,其接口信号类型包括数据信号,地址、命令、控制信号以及时钟信号。其中数据信号 (DQ,DQS,DM等)一般采用点对点的互联结构,故其互联方式不需采用任何拓扑结构。点对点互联中,通过计算传输线的特性阻抗、调整并行总线间距、提取芯片封装模型和传输线S参数模型的方法可以实现阻抗匹配,进而保证信号完整性。对于地址、命令、控制、时钟信号组,存在多点互联形式,即CPU的一个信号接口对应连接多个DDR3颗粒芯片接口,需要选择一个合适的拓扑结构来保证信号完整性。常见的DDR3拓扑结构有树型拓扑、菊花链型拓扑、Fly-By拓扑等[11]。
表1 Fly-By拓扑结构的优缺点
Fly-By拓扑结构是一种特殊的菊花链,该结构拓扑结构相对简单,端接器件少,连线长度较短,是一种性能良好的拓扑结构[12],JEDEC建议 DDR3使用 Fly-By拓扑结构。表1所示为Fly-By拓扑结构的主要优缺点。
由于地址、时钟、命令和控制信号到达各个内存芯片存在时延,而数据信号 (DQ,DQS,DM等)采用点对点互联。为确保点到点互联信号与它们相应的多点互联地址信号在接收端同步,DDR3内存设计标准中引入写平衡(Write Leveling)机制,图6为写平衡机制下DQS信号时序调整图。通过DDR3控制器调节每组位线时序来补偿这个时延。其中,DRAM提供反馈信号,由控制器调整DQS和CK的相位关系,控制器调整DQS延时,并发送DQS信号。DRAM对CK和DQS比较,如果信号为同相,则命令输出DQ=1,否则DQ=0。
图6 Write Leveling机制下的时延补偿调节
拓扑结构的仿真采用前仿真和后仿真相结合的方法。仿真软件选用Hyperlynx。首先使用Linesim设计出CPU与四片内存颗粒互联的拓扑图,根据文献[2]中互联约束条件对仿真参数进行设置。由于控制信号、地址信号和命令信号的布线规则基本相同,故只需选择其中一个信号网络进行仿真即可验证拓扑结构的可用性。图7为龙芯3A地址总线端口DDR_A0和四片DDR3的A0端口互联的Fly-By拓扑结构。传输线类型选择微带线,特性阻抗58.4Ω,末端端接电阻亦为58.4Ω,最大线长为3500mil,时延长度为500mil。仿真结果如图8所示。
表2 前仿真测量结果统计
仿真结果显示,4个信号到达的时延最大值不超过90ns,完全符合JESD79-3C设计要求。图8中可以看出,U2.1接口处测量信号在第二个波形周期处出现明显过冲。表2统计结果显示,过冲值为189.3mV,U3.1、U4.1和U5.1接口信号波形过冲以此递减,U5.1波形最佳,过冲最大不超过33.2mV,这表明与CPU距离较远的内存颗粒端口处信号质量好于距CPU较近的内存颗粒。其原因在于后方内存颗粒芯片的接口本身具有输入阻抗,产生的反射会对前方芯片接口的信号产生不良影响。
PCB布线设计中,CPU与DDR3间的互联遵照前仿真拓扑结构中的相关数据进行设计。同时,对CPU和DDR3之间的不同网络组进行等长约束。将设计完成的PCD版图导入HyperLynx,使用Boardsim对PCB进行布线后仿真[12]。由于龙芯3A采用BGA封装,互联线网络中必然会出现过孔。同时,由于布线规模较大,布线密度较高,PCB叠层较多,势必会产生串扰、EMI等现象。故板后仿真中可以酌情将上述干扰因素考虑在内。使用Boardsim导入原理图,选择和前仿真相同的互联网络,选用HyperLynx自带的过孔模型,串扰值选择50mV,仿真眼图如图8所示。仿真结果测量数据见表3。对比表2与表3,可以看出由于PCB走线、过孔和串扰等因素对信号过冲恶化贡献较大。四个信号抖动值和眼宽比较稳定,眼高变化反映了远端内存颗粒信号质量较近端有明显提高。
图9 板后仿真眼
表3 后仿真测量结果统计
本仿真实验,仿真环境设置较为全面,但仍然属于理想状况,如若考虑其他因素诸如SSN、地反弹和传输线损耗等因素,信号会发生进一步失真和畸变。需要进一步优化信号完整性和电源完整性,以满足接收端口信号阈值的要求和时序容差的要求。诸如减少过孔,优化拓扑结构,严格控制多平行网络的串扰,关键网络合理端接等等。
本文以某型自研计算系统为应用背景,针对主控芯片和DDR3内存颗粒之间的互联设计,介绍了一套全面的信号完整性仿真分析和优化方法。通过分析IBIS模型中关键数据的制约关系,快速验证了IBIS模型文件是否准确可用。通过仿真,对比了针对差分信号的传统端接方法和T型端接方法,仿真结果表明T型端接提高了差分线的共模抑制比。通过前仿真和后仿真结合的方法分析验证了Fly-By拓扑结构的时序和各接收端信号质量。上述方法和仿真结论对基于DDR3的系统互联设计以及其他高速电路设计具有指导意义和参考价值。
[1]JEDEC.DDR3 SDRAM specification:JESD79-3C [S].2008.
[2]ZHOU Xiquan,HUI Pengfei,MIAO Fengjuan,et al.High-speed signal transmission on signal integrity analysis[C]//Qiqihar:Proceeding of 3rd International Conference on Future Biomedical Information Engineering,2010:240-242.
[3]CHUANG Haohsiang,GUO Weida,LIN Yuhsiang,et al.Power integrity chip-package-PCB co-simulation for I/O interface of DDR3 high-speed memory[C]//Seoul,Korea:Proceeding of IEEE E-lectrical Design of Advanced Packaging and Systems Symposium,2008:31-34.
[4]Dowling Jonathan.Signal integrity analysis of bus turn-around on a DDR3 SDRAM memory channel[C]//Austin,USA:Proceeding of IEEE 19th Conference on Electrical Performance of Electronic Packaging and Systems,2010:25-28.
[5]Geoff Lawday,David Ireland,Greg Edlund.A signal integrity engineer's companion[M].Beijing:Publishing House of Electronics industry,2010:79-106(in Chinese).[Geoff Lawday,David Ireland,Greg Edlund.信号完整性指南[M].北京:电子工业出版社,2010:79-106.]
[6]Pulici P,Girardi A,Vanalli G P,et al.A modified IBIS model aimed at signal integrity analysis of systems in package[J].IEEE Transactions on Circuits and SystemsⅠ,Regular papers,2008,55(7):1921-1928.
[7]LIU Wei.Signal integrity analysis based on FDTD method and IBIS model[D].Guangzhou:South China University of Technology,2010(in Chinese).[刘伟.基于FDTD法与IBIS模型的信号完整性分析[D].广州:华南理工大学,2010.]
[8]ANSI/EIA.ANSI-EIA-656-B Standard:I/O Buffer Information Specification(Version 5.0)[S].2008.
[9]Shiue Guang-Hwa,WU Ruey-Beei.Reduction in reflections and ground bounce for signal line over slotted power plane using differential coupled microstrip lines[J].IEEE Transactions on Advanced Packaging,2009,32(2):581-588.
[10]Frederic Broyde,Evelyne Clavelier.Crosstalk in balanced interconnections used for differential signal transmission[J].IEEE Transactions on Circuits and Systems Ⅰ:Regular papers,2007,54(7):1562-1572.
[11]LIU S,QIAO H.Topology optimization of continuum structures with different tensile and compressive properties in bridge layout design[J].Structural and multidisciplinary optimization,2011,43(3):369-380.
[12]Phil Murray,Altera Corporation.Challenges in implementing DDR3 memory interface on PCB systems:a methodology for interfacing DDR3 SDRAM DIMM to an FPGA [C]//Santa Clara,USA:Proceeding of Design Con Conference,2008:1-12.