【鼎阳原创︱DDR】高速数字总线时序分析及计算方法

2023-08-16 13:41:09     来源:哔哩哔哩

本文先从简单数字总线模型开始,全面分析了各种因素下高速数字总线时序裕量的计算方法,并推导出了最基本的计算公式。然后以高速SDRAM总线为实例,分析了三种时钟模式下时序裕量的计算实例。最后以此理论为指导,对X项目SDRAM总线作出了最优化的调整。


【资料图】

关键词:高速数字总线,时序分析,时序裕量计算,SDRAM总线,总线时序调整

1.总线时序分析的目的

许多项目都面临着开发,测试时间短,而Time-to-Market压力又很大,在这种情况下如何设计可靠的数字系统,对工程师是一个很大的挑战。保证数字总线时序的可靠性是数字系统可靠工作的最重要的前提。特别在通信系统中,对系统吞吐量,CPU处理能力等要求越来越高,因此必须要用到各种各样的高速数字总线,如内存的SDRAM,DDR接口,高速的CPU接口以及芯片之间的并行互连接口等。这些类型的总线基本上工作在100MHz频率以上,每个时钟周期小于10纳秒(10-9秒),在这么高的速度下,数据总线上每一个时钟周期内要求数据被正确地读出和写入,保证这一过程的并不是单单凭设计经验而是要靠对总线时序的理解和精确的计算。如果发生数字总线的时序错误,会导致误码,非法指令,非法地址存取直至系统不能启动等不可预测的灾难性后果。本文总结了数字总线时序分析及计算方法,并且对SDRAM总线的时序计算做出了全面的总结。

时序分析的目的:为了使数据总线上的数据正确地被输入芯片时钟锁存,也就是输出芯片必须满足输入芯片的输入建立时间和输入保持时间的要求。

2.总线时序分析及基本模型计算

简单总线模型

总线的模型如 Figure: 1所示,IC1输出数据到IC2,并且IC1和IC2在同一时钟Clock下工作。Figure: 2表明了一般总线的时序关系,当IC1输出数据时,IC1在上升沿之后打出数据,上升沿到数据在数据总线上有效的时间称为时钟到数据的延时,即Tco。然后输入芯片IC2会在下一个时钟的上升沿去锁存数据总线上的数据。

Tco:芯片输出数据时,时钟上升沿后,数据在数据总线上有效的时间(时钟到数据延时),此数据需要用到最大值Tcomax及最小值Tcomin。

Tsu:芯片作为输入时,数据所需的建立时间(时钟上升沿前数据维持的时间),建立时间的满足永远以最小值来计算。

Th:芯片作为输入时,数据所需的保持时间(时钟下降沿后维持的时间),保持时间的满足永远是最小值来计算。

从以上时序分析的目的可知,IC1的输出数据在数据总线上的维持时间必须要满足IC2的建立时间(Tsu)及保持时间(Th)的最小需求。

我们假设时钟同时到达IC1和IC2的时钟输入端,那么为了满足IC1的输出必须满足IC2正确输入的条件。

从输入的Tsu考虑:

为了满足Tsu的条件,Tsu必须:

从上面式子,我们还可以推算出,在给定的时钟频率下,输入的建立时间的时序裕量:

从上面的式子,我们可以得出一个重要结论:

如果电路板在输入的建立时间方面发生问题,我们可以通过降低芯片的运行频率(增大Tclk)来满足所需的建立时间的要求。

从输入的Th考虑:

从上面的式子我们可以推算出输入保持时间的时序裕量:

从图(2)式我们可以看到IC输入时,可以得出以下重要结论:

数据输入的保持时间的时序裕量只和输入/输出芯片本身的特性有关,而与时钟运行频率无关,如果PCB走线不能满足芯片输入保持时间的要求,那么简单地降低芯片的运行频率是没有任何帮助的。

实际总线模型时序裕量计算

如果考虑数据在PCB上的传输延迟和时钟到达发送和接收芯片的延迟,那么计算时序裕量就会变得复杂些,定义以下几个变量:

Tflight: 这个变量定义数据信号在PCB传输线上到达输入点所需的时间,就是平时所说的传输时延或飞行时间。

Tskew: 这个变量定义时钟信号到达发送IC和接收IC时钟引脚的时间差异。

Tcrosstalk:由于串扰引起的数据沿变化,导致数据到达时间发生轻微的摇摆。

Tjitter:由于时钟抖动引起的时钟周期的变化

考虑这些因素后,建立时间和保持时间的裕量就会相应的发生变化,如下公式所示:

Tskew是时钟到达两个芯片的时间延迟,这个参数在PCB布线时可以任意调的。从上面的式子中,可以看到Tskew在建立时间和保持时间中的作用分别为一正一负,因此我们可以有以下结论:

如果想通过调整时钟的延迟来增加建立时间的裕量,那么必须牺牲相应的保持时间的裕量。反之如果想增加保持时间的裕量,那么必须牺牲相应的建立时间的裕量。

由于输入的建立时间裕量和保持时间裕量必须大于零,所以:

从上面的式子,就可以得出数据总线所能走的最大距离和最小距离的定量公式:

这两个公式为PCB的布线计算提供理论的依据。在Cadence的SPECCTRAQuest的时序分析模型,就是根据这两个公式来计算。

以上基本公式考虑了Tskew,Tjitter,Tcrosstalk对时序裕量的影响。这些信号在很多情况下是以正负的指标来表明在一定范围内的漂移,由于设计者无法预测这些指标是带来正的影响还是负的影响,因此以下定义取正负号的原则:

1.    在计算公式1中,也就是计算机最长布线时,这些指标所取的正负号应该使布线长度值达到最小。

2.    在计算公式2中,也就是计算最短布线时,这些指标所取的正负号应该使布线长度值达到最大。

这两个原则会使我们的时序计算达到最严格的指标。

3.  SDRAM数据总线时序裕量计算实例

SDRAM是典型的高速并行总线结构,以下部分我们以SDRAM总线为例说明总线时序裕量计算方法及原则。和上面介绍的基本原理稍有不同,SDRAM总线是双向总线,所以必须分别计算读/写两种情况,才能确定时序裕量。

以下Figure: 3是SDRAM总线输出数据时的时序图,另外三张表格分别是SDRAM,SDRAM控制器,及外部时钟芯片的AC时序指标,我们以这些时序指标为依据进行各种SDRAM工作方式下时序裕量计算。

从Figure: 3的SDRAM时序图中可以看出,输出芯片在T3上升沿时准备输出数据,而输入芯片在T4上升沿处,锁存总线上的数据。

外部时钟源统一提供时钟工作方式

这种SDRAM的工作方式如下图所示:

在这种SDRAM工作方式下,外部时钟源统一产生时钟,然后分发到SDRAM控制器和SDRAM芯片的时钟引脚。

从写路径考虑

此时SDRAM控制器输出数据到SDRAM芯片,则SDRAM控制器的输出必须满足SDRAM芯片的建立时间和保持时间的要求,此时

晶体是输出33MHz,50PPM,因此:

从时钟芯片的技术指标图中可知输出时钟的Jitter为±100ps,即±。由于我们忽略了晶体的Jitter指标,因此:

在PCB布线中,我们可以把从时钟芯片出来的两个时钟到SDRAM控制器和SDRAM布得完全等长,因此时钟Skew可以认为零,即:

但是任何的锁相环芯片出来的时钟并不是完全等相位的,因此这个相位的相差其实充当了Tskew这个角色,从上面时钟芯片的数据手册中,可以得到:

另外由于这个150ps的Skew,其实我们并不能确定到底是哪个时钟输出是提前了,或是落后了,因此我们必须从最坏的情况去考虑,那么Tskew就变为:

从SDRAM控制器时序指标表格中可以得到控制器数据总线的输出延迟(Output Delay)最小是,最大是,即:

根据仿真及估测的结果,可以认为由信号完整性及串扰(crosstalk)所引起的时序误差最大为±,即:

从以上的数据,根据公式(5),(6)就可以计算当SDRAM作为输入时:

以上公式计算时,Tskew,Tjitter,Tcrosstalk等指标前面有正负号,取正负号的原则如前所述。

综合以上计算结果,在写路径时Tflight在布线时必须满足:

如果以PCB板上每英寸的时延是/inch计,则:

这个负号的意义是,即使数据线的布线长度为零(事实上这是不可能的),也可以满足时序的要求。这个意义也是非常直观的,因为SDRAM控制器的输出保持时间长达,而SDRAM输入的保持时间只需,还有一定的裕量,即使布线长度为零,也可以远远地满足要求。

从读路径考虑

此时SDRAM芯片输出数据到SDRAM控制器。上面的计算过程仅仅计算了读操作时的单向情况,由于SDRAM数据总线是双向的,那就必须也要考虑SDRAM作为输出,而SDRAM控制器作为输入时的情况。

同理,参考计算公式完全相同,只不过需要满足的建立时间和保持时间应该以SDRAM控制器的数据手册上为准,所以:

而Tcomin变为SDRAM输出时数据在数据总线上所保持的最小时间,在SDRAM数据手册上这个数据是tOH,Tcomax变为SDRAM输出时的tAC所以:

其它参数完全相同:

从以上的数据,根据公式(5),(6)就可以计算当SDRAM作为输出时:

综合以上计算结果,在读路径时,Tflight在布线时必须满足:

如果以PCB板上每英寸的时延是/inch计,则:

综合(8)(10)的条件,在此条件下,SDRAM的数据总线走线长度应该是:

这个布线的长度限制留给PCB的布线工程师的余地已经很小了。

这种布线方式余地小的根本原因是因为SDRAM输出的时延Tcomax达,导致SDRAM控制器的建立时间很难被满足。而SDRAM输出的保持时间又长达3ns,远远满足SDRAM输入建立时间的要求,在这情况下,我们可以用以下的方法来进行优化:

可以适当地调整时钟的Skew来获得最优化的布线方案

调整方法,使Clock1和Clock2的Skew调整为以下的关系:

即SDRAM控制器时钟滞后于SDRAM时钟,这样就可以使SDRAM比刚才方式提前发出数据,使SDRAM控制器获得额外的建立时间,当然如前所述,这是以牺牲保持时间为代价的。

写路径时,由于Tskew缩小(-),按照原来计算结果(7):

读路径时,由于Tskew增大了(+),按照原来的计算结果(9):

综合以上条件,布线约束条件变为:

这个布线条件中最大布线距离与原来公式(11)相比,已经增加了近4英寸,因此更容易布线。

SDRAM控制器分配时钟工作方式

如Figure: 8所示,在这种时钟方案下,由SDRAM控制器产生时钟,并将这个时钟经过PCB上的走线分配给各个SDRAM芯片,也称为SDRAM源同步方式。

在这种情况下,假设SDRAM出来的时钟,经过PCB后到达SDRAM芯片所需的时间为Tdelay。可知这个Tdelay肯定是正的,假设时钟在PCB板上走了,则:

从写路径考虑

SDRAM控制器输出数据的同时也输出时钟,此时:

其他参数:

则:

从读路径考虑

当SDRAM输出数据,而SDRAM控制器作为输入时,由于时钟依然是从SDRAM控制器输出到达SDRAM,然后SDRAM根据这个时钟送出数据,所以时钟到SDRAM比时钟到SDRAM控制器落后了Tdelay,因此:

其它参数:

综合SDRAM作为输出和输入时的条件(16)(19),可以得到数据线的约束条件:

从以上约束的走线长度看,基本上已经很难实现这样的SDRAM布线,特别在SDRAM芯片数目多的时候。所以以这种时钟方案工作的SDRAM控制器芯片,其速度很难达到133MHz,一般只能宣称工作在100MHz或更低。如果工作在100MHz,则Tclk变为10ns。相应给输入建立时间,增加了近的裕量,也就是增加了近的布线余量。所以在100MHz下,此种方式布线长度限制变为:

最小走线长度不变,如前所述,是因为数据的保持时间是和时钟频率无关的。以上的条件在PCB上就可以轻易地实现。从这种SDRAM控制器发出时钟的SDRAM工作方式的分析计算,我们可以得出以下结论:

较第一种方式比较,向SDRAM写路径的时序裕量更充足了。因为写操作,时钟是滞后到达SDRAM,因此延长了建立时间。

从SDRAM读的路径的时序裕量会更小,因为读操作时,时钟到SDRAM控制器比到SDRAM更超前,因此缩短了SDRAM控制器的建立时间。

和第一种方式不同,这种布线方式受到了时钟线绝对长度(时延)而不是相对长度(时延)的限制。只要时钟线的绝对长度超过一定的数值,在某种频率下,布线就不可能实现。因为在读SDRAM时,Tdelay这个指标可以把所有建立时间消耗完,导致最大布线长度小于零,也就是不可能实现的布线方式。

这种源同步方式,最优化的布线方案的前提就是使时钟线的长度尽可能的短。

SDRAM控制器双时钟工作方式。

这种方式是某些特别严格的SDRAM控制器所具有的一种工作方式,极少的SDRAM控制器采用这种工作方式。如下图所示:

和第一种工作方式相同的是,这种工作方式也是由外部时钟源统一提供时钟。但不同的是,这种SDRAM控制器带有两个时钟输入端。其中一个时钟(Tclk)用于写路径,而另一个时钟(SDClkIn)用于读路径。再另外一个时钟是标准的SDRAM时钟(SDRAM Clock)。这里假设各时钟线的长度:

以下分析这种工作方式的优点。

写路径考虑

写操作时SDRAM控制器根据时钟Tclk发出数据,而SDRAM则根据SDRAM Clock去锁存数据。由于SDRAM Clock长度比Tclk要多出X,所以时钟滞后到达接收端SDRAM。所以这种工作方式相当于工作方式2的写路径分析。如工作方式2结论1所述,这种方式时钟滞后到达SDRAM,可以使SDRAM获得更长的建立时间。具体X可以到多大,则受限于SDRAM保持时间的要求。

读路径考虑

读操作时SDRAM根据时钟SDRAM Clock发出数据,而SDRAM控制器根据SDClkIn去锁存数据。如上图可知,SDClkIn比SDRAM Clock长出Y,同理和写路径一样,可以使SDRAM控制器获得更长的建立时间。具体Y可以到多大,则受限于SDRAM控制器保持时间的要求。

由这种工作方式读写路径的分析可知,SDRAM控制器用双时钟的工作方式,可以使读写路径都获得额外的建立时间,也就是可以使最大布线长度随之增大。从以前分析,一般保持时间都是可以远远满足的,如不满足可以延长PCB布线。因此这种工作方式,可以得出各种PCB布线长度范围以适合于当前PCB的布局要求。

1.  X项目中时序调整测试

在X项目中,运用本文所述的SDRAM第一种工作方式,采用时钟相位可调的时钟芯片Lattice CLK5510。由于采用相位可调时钟芯片,因此在方式1中,可以控制Tskew的值,以获得最佳的时序性能。

以下表格中,总结了各种Tskew条件下CPU工作的稳定性:

在这个项目中测试了256Mb和512Mb的SDRAM芯片,芯片分别来自Micron和Samsung两个供应商。从上面表格中可以看出,当Tskew=-时,所有的SDRAM都不能正常工作,出现了错误。而当Tskew=开始,各种型号的SDRAM开始不能正常工作。在Tskew=时,所有的SDRAM都不能正常工作。从这个表格中可以看到,256Mb的SDRAM芯片时序性能优于512Mb芯片。而Samsung芯片的时序性能又优于Micron芯片的时序性能。从这个时序调整实验中,得出最有意义结论的是:

由于已经找到了Tskew的两个上下限临界点,因此可以取中间值作为此SDRAM总线时序调整的最优化点,此时时序裕量离上下限同时达到最大,也就是此时SDRAM工作于最优化的时序性能下。这个测试结果和前面计算得出的结论,非常地相似。

总结

从本文分析中可以看出:对于这种外同步的并行数字总线系统中,133MHz的总线时钟频率已经差不多达到极限的运行频率了,留给PCB布线的余地已经仅为数英寸。为了使高速数字电路稳定可靠地工作,每一个工程师都需要对高速数字总线作出精确的计算来指导PCB布线,这是硬件工程师所必备的技能。另外除了精确地时序计算,我们必须要非常地注意高速数字总线的信号完整性问题,同时满足这个两条件,是复杂数字系统稳定性的前提。

『关于鼎阳』

深圳市鼎阳科技股份有限公司(简称“鼎阳科技”股票代码:688112)是通用电子测试测量仪器领域的行业领军企业。2002年,鼎阳科技创始人开始专注于示波器研发,2005年成功研制出鼎阳第一款数字示波器。历经多年发展,鼎阳产品已扩展到数字示波器、手持示波表、函数/任意波形发生器、频谱分析仪、矢量网络分析仪、射频/微波信号源、台式万用表、直流电源、电子负载等基础测试测量仪器产品,是全球极少数能够同时研发、生产、销售数字示波器、信号发生器、频谱分析仪和矢量网络分析仪四大通用电子测试测量仪器主力产品的厂家之一,国家重点“小巨人”企业。同时也是国内主要竞争对手中极少数同时拥有这四大主力产品并且四大主力产品全线进入高端领域的厂家。公司总部位于深圳,在美国克利夫兰、德国奥格斯堡、日本东京成立了子公司,在成都成立了分公司,产品远销全球80多个国家和地区,SIGLENT已经成为全球知名的测试测量仪器品牌。

标签:

包装