高速总线的时序分析方法及DDR计算实例
2018-06-22韩玉涛
韩玉涛
(瑞为信息技术有限公司,广东 深圳 518000)
随着处理器处理能力的快速提高,以及通信系统和图像处理等领域对数据高容量存储、大吞吐量传输的要求,DDR、DDR2以及DDR3 DRAM存储器得到了越来越广泛的应用。这些存储器的工作频率都在100 MHz以上,高的可达1 GHz,这使得系统设计中的总线时序问题变得十分突出。如果在系统设计中芯片的时序要求得不到满足,轻则会导致系统出现误码,处理能力降低,运行不稳定,严重的甚至会导致系统不能启动。本文阐述高速数字总线的模型及时序分析方法,并给出SMP8634DDR多媒体处理器与DDR DRAM连接的计算实例。
1 高速总线模型
高速总线模型如图1所示,U1和U2是两个在同一时钟CLOCK下工作的芯片,U1输出数据到U2。
图1 高速总线模型
当U1输出数据时,U1在时钟上升沿后输出数据,然后输入芯片U2会在下一个时钟的上升沿去锁存数据总线上的数据,从上升沿到数据在数据总线上有效的时间称为时钟到数据的延时tCO。图2表明了这种总线的时序关系。
图2 总线时序图
tCLK:时钟CLOCK的周期。
tCO:芯片U1输出数据时,从时钟上升沿开始到数据出现在数据总线上的时间,此数据需要用到最大值tCOmax及最小值tCOmin。
tSU:芯片数据作为输入时,数据所需的建立时间(时钟上升沿前数据维持的时间),建立时间永远以最小值来计算。
tH:芯片数据作为输入时,数据所需的保持时间(时钟上升沿后数据维持的时间),保持时间永远以最小值来计算。
为了保证U1到U2的数据传输可靠进行,U1的输出数据在被U2端采样接收时,在建立时间和保持时间上必须要满足U2芯片对最小建立时间tSUmin及最小保持时间tHmin的要求。
2 高速总线时序的理论计算
根据图1和图2,考虑到时钟实际到达U1和U2的差异、数据在PCB上的传输延迟、时钟抖动、PCB上的串扰以及U1输出的数据在经过传输后必须在建立时间和保持时间上满足U2对最小建立时间和保持时间的要求,可以得出以下两个公式[1]:
tCLK-tCOmax-tFLIGHT+tSKEW-tJITTER-tCROSSTALK>tSU
(1)
tCOmin+tFLIGHT-tSKEW-tCROSSTALK>tH
(2)
tFLIGHT: 数据信号在PCB上的传输时延或飞行时间。
tSKEW: 时钟信号到达发送IC和接收IC时钟引脚的时间差异。
tJITTER:由于时钟抖动引起的时钟周期的变化。
tCROSSTALK:由于串扰引起的数据沿变化,导致数据到达时间发生轻微的摇摆。
从上面公式可以得出结论:如果电路板在芯片数据输入的建立时间方面发生问题,我们可以通过降低芯片的运行频率(增大tCLK)或者优化PCB布线来调节时序以满足所需的建立时间要求;芯片数据输入的保持时间的时序裕量只和输入/输出芯片本身的特性(tCO)、PCB布线(tFLIGHT、tJITTER、tCROSSTALK)相关,而与时钟运行频率无关。
tSKEW是时钟信号到达两个芯片的时间延迟,这个参数在PCB布线时可以根据需要调整。从上面的公式(1)和(2)中,可以看到tSKEW在建立时间和保持时间中的作用分别为一正一负,因此我们可以得出以下结论:如果想通过调整时钟的延迟来增加建立时间的裕量,那么必须牺牲相应的保持时间的裕量;反之如果想增加保持时间的裕量,那么必须牺牲相应的建立时间的裕量。
这两个公式为PCB布线的时序计算提供了理论依据,Cadence的SPECCTRAQuest仿真软件的时序分析模型,就是根据这两个公式来计算的。这两个基本公式考虑了tSKEW,tJITTER,tCROSSTALK对时序裕量的影响。这些信号在很多情况下是以正负的指标来表明在一定范围内的漂移,由于PCB布线设计者无法预测这些指标是带来正的影响还是负的影响,因此在实际情况下,要根据PCB布线的情况进行仿真分析[2]。在实际估算中,可以根据芯片及布线的情况来进行取舍。
3 SMP8634处理器和DDR DRAM的连接图
SMP8634是Sigma Design新一代功能强大的多媒体SoC芯片,包含了一个MIPS 300 MHz的主CPU和一个MIPS 200 MHz的安全CPU。它把强大的多媒体处理能力、可靠的内容安全系统以及一整套补充性外围设备结合到一起。其先进的解码引擎支持 H.264 (MPEG-4 part 10)、Windows Media Video 9、VC-1、MPEG-2 和 MPEG-4 (part 2) 视频解码,最大解码能力可支持两路高清视频流。SMP8634还集成了一个10/100 Mbps以太网控制器、HDMI发送器、两个USB 2.0 HOST控制器、IDE 控制器及PCI2.1 MASTER/SLAVE,为了提供网络数据、音视频数据的缓冲处理,SMP8634集成了两个32 bit DDR DRAM控制器,最大速率200 MHz,共计3.2 Gbit/s的数据吞吐能力[3]。SMP8634处理器和DDR DRAM(NANYA的NT5DS32M16ES-5)的连接图如图3如示。
图3 SMP8634和DDR连接框图
图3只给出了SMP8634的DDR控制器1与相对应的DDR芯片的连接图,DDR控制器2的连接图与此相同。在DDR连接线上串接了33 Ω电阻(图中省略),计算长度时要把电阻左右的长度算在一起。对于DDR的布线,如果在分组内的布线长度差控制得太小,则给PCB布线增加了难度,尤其是在板上器件较多、管脚间距小、布线空间有限制,且要求的板层数尽量少以节省成本的情况下,就要在满足时序要求的情况下放宽对线长的精度控制,以实现性能和成本的平衡。本设计中的DDR走线长度设计规则如下:
数据线部分采用分组等长原则(每8 bit数据线和相应的选通信号DQS、掩码信号DM为一组,例如数据线DQ0-DQ7、DQS0-DM0为一组),组内信号长度偏差控制在±5 mm以内;
地址线、命令线和CLK线长度控制在±15 mm以内;
差分时钟线的差分阻抗控制在100 Ω。
那么,实际布线情况如何,时序是否能完全满足CPU和MEMORY芯片的要求呢,下面就对实际的情况进行计算。
4 SMP8634和DDR芯片的时序图
对于DDR控制器和DDR芯片颗粒而言,DQS是源同步时钟,在写操作时,由DDR控制器发出,在读操作时,由DDR芯片发出,数据在DQS的上升沿和下降沿进行采样。DQS和DQ都是三态信号,在PCB走线上双向传输,读操作时,DQS信号的边沿在时序上与DQ信号的边沿处对齐,而写操作时,DQS信号的边沿在时序上与DQ信号的中心处对齐;而对于地址和命令信号,它们是在时钟信号的上升沿处进行采样的[4]。篇幅限制,只以数据线的写操作为例,数据线的读操作和地址/命令线的操作原理与数据线的写操作完全相同,只需要注意数据有效时参考的对象和沿。在计算时,由于Jitter参数没有给出,不考虑其影响,Crosstalk影响需要仿真决定,在此没有计算在内。
DDR芯片NT5DS32M16ES-5T的写时序要求[5]:tDH(DQ和DM的最小输入保持时间)=0.4 ns;tDS(DQ和DM的最小输入建立时间)=0.4 ns(如图4所示)。
SMP8634 DDR控制器的写时序要求:tDH最少为0.7 ns,tDS最少为0.7 ns,如图5所示。
图4 DDR芯片的数据写时序
图5 SMP8634 DDR控制器的数据写时序
5 PCB板实际布线的时序计算
在此SMP8634的PCB板上,每组数据线长度与相应的DQS之间的最大偏差分别为:DQ0相对DQS0为-1.01 mm(负号表示短于DQS,正号表示长于DQS,下同),DQ15相对DQS1为-2.08 mm,DQ22相对DQS2为3.84 mm,DQ25相对DQS3为-2.01 mm。PCB板材为FR-4,理论上在PCB板上信号的传输延迟为7.08 ps/mm,则相对DQS相应的延迟时间分别为-7 ps,-15 ps,27.2 ps 和-14 ps。我们只取DQ15和DQ22进行计算,因为这两个偏差最大的信号如果能满足要求,那么另外的信号自然也能满足时序要求。
DQ15与SMP8634(U1)和DDR芯片(U2)之间的对应关系如图6所示。
图6 写数据时DQ15的相对时序
在接收侧(U2),则相对于DQS1的tDS=0.7 ns+0.015 ns=0.715 ns,tDH=0.7 ns-0.015 ns=0.685 ns,在U2侧的建立和保持时间都大于0.4 ns,所以满足写数据时DDR芯片的时序要求。
DQ22与SMP8634(U1)和DDR芯片(U2)之间的对应关系如图7所示。
图7 写数据时DQ22的相对时序
在接收侧(U2),则相对于DQS3的建立时间和保持时间分别为:tDS=0.7 ns+0.0272 ns=0.727 2 ns,tDH=0.7 ns-0.0272 ns=0.672 8 ns,在U2侧的建立时间和保持时间都大于所要求的0.4 ns,所以满足写数据时DDR芯片的时序要求。
从以上结果可看出,此PCB布线可以满足时序的要求。其实,也可以根据DDR和CPU的时序参数限值逆推出满足时序要求的布线最大的长度偏差。本计算方法已经用在IPTV机顶盒和无线基站产品的DDR时序计算及PCB设计中,时序裕量好,DDR运行性能非常稳定,产品已经在国内外批量出货。
6 结论
在嵌入式系统中尤其是图像处理和通信系统中,总线的速度越来越快,对时序的要求越来越严格,尤其是DDR、DDR2、DDR3存储器的广泛使用,需要我们在设计中对总线时序进行严格估算,在满足时序要求和方便PCB布线之间,找到折中点,在某些情况下还需要使用专业的仿真软件对高速总线的时序质量进行仿真以保证系统运行的稳定性[6-8]。本文中介绍的DDR估算原理,同样也可用于DDR2、DDR3等存储器的时序计算。
[参考文献]
[1]JOHNSON Howard,GRAHAM Martin.高速数字设计[M].沈立,朱来文,陈宏伟,等译.王强,审校.北京:电子工业出版社,2010.
[2]BOGATIN Eric.信号完整性与电源完整性分析[M].李玉山,刘萍,译.2版.北京: 电子工业出版社,2015.
[3]Sigma Designs Inc. SMP8634-DS DATASHEET[Z].Sigma Designs Inc,2010.
[4]唐万明,范朝元.基于Cadence的DDR源同步时序仿真研究[J].现代电子技术, 2014(8):75-78.
[5]Nanya Technology Corp. 512 Mb DDR SDRAM DATASHEET[Z]. Nanya Technology Corp,2014.
[6]覃婕,阎波,林水生.基于Cadence_Allegro的高速PCB设计信号完整性分析与仿真[J]. 现代电子技术, 2011, 34(10):169-171.
[7]左昉,李刚. Cadence16.6高速电路板设计与仿真[M]. 北京: 机械工业出版社, 2016.
[8]陈春,刘晓星.高速数据通信总线关键技术设计与实现[J].数字通信世界,2017(2):73-74.