高速数字总线时序分析及计算方法

High Speed Digital Parallel Bus Timing Analysis and Calculation Method

朱永辉

鼎阳硬件测试与设计智库专家组成员

匡恩网络科技公司

原文地址:http://mp.weixin.qq.com/s?__biz=MjM5Nzc1NzM0NQ==&mid=203745255&idx=1&sn=c71c86e6a5d0f489bbefb0a9c6a45d8c&3rd=MzA3MDU4NTYzMw==&scene=6#rd

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

Abstract: Based on basic digital bus model, this paper completely summarize timimg budget analysis of high speed digital bus under various situations,and deduce the basic calculation equation. Then, based on high speed SDRAM bus, this paper analyze the timing budget calculation examples in three clocking modes. And finally, an optimal timing adjustion is made for X project according to the theory of this paper.

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

Keyword: High Speed Digital Bus, Timing Analysis, Timing Budget Calculation, SDRAM bus,Bus Timing Adjusting

1.总线时序分析的目的

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

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

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

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

Figure: 1 总线电路模型


Figure: 2 总线时序图

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

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

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

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

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

从输入的Tsu考虑:

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

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

(1)

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

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

从输入的Th考虑:

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

(2)

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

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

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

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

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

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

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

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

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

(3)

(4)

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

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

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

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

(5)


(6)

这两个公式为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总线数据输出时序

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


Figure: 4 SDRAM 时序指标


Figure: 5 SDRAM控制器时序指标


Figure: 6 时钟芯片技术指标

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

这种SDRAM的工作方式如 Figure: 7 所示:

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

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

3.1.1 从写路径考虑

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

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

一般的时序裕量都是十分之一纳秒级别的,从上式中我们可以知道晶体的Jitter非常小,在实际的时序计算中完全可以忽略为零。

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

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

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

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

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

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

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

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

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

(7)

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

(8)

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

3.1.2 从读路径考虑

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

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

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

其它参数完全相同:

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

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

(9)

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

(10)

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

(11)

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

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

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

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

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

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


(12)

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

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

(13)

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

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

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

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

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

3.2.1 从写路径考虑

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

其他参数:

则:


(14)


(15)

综合(14)(15):

(16)

3.2.2 从读路径考虑

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

其它参数:


(17)

(18)

综合约束条件(17)(18):


(19)

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


(20)

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


(21)

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

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

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

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

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

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

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


Figure: 9 SDRAM控制器双时钟工作方式

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

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

3.3.1 写路径考虑

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

3.3.2读路径考虑

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

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

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

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

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

Table 1:X项目时序调整测试数据总结

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

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

5. 总结

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

【鼎阳硬件智库原创 | DDR】高速数字总线时序分析及计算方法相关推荐

  1. ddr老化测试_【鼎阳硬件智库原创︱DDR 】 DDR硬件调试篇:DDR硬件设计调试测试 之二...

    DDR硬件调试篇 前言:大家自己设计的产品出来后都有遇到一些什么样的DDR问题呢?这些问题是否为致命问题,一定要解吗?如果机器已经生产出来,却发现DDR硬件问题导致系统不稳定,机器是否作废了,有没有软 ...

  2. 零中频接收机频率转换图_【鼎阳硬件智库原创︱测试测量 】基于全数字中频技术频谱分析仪的工作原理...

    汪进进 鼎阳硬件设计与测试智库专家组成员 频谱分析仪简称频谱仪,是射频工程师最熟悉的一种仪器.相对于示波器作为"电子工程师的眼睛",占据"时域第一仪器"甚至&q ...

  3. 已调信号波形是怎样的_【鼎阳硬件智库原创 | 测试测量】初识任意波形发生器...

    方浩 鼎阳硬件设计与测试智库专家组成员 在产品调试的过程中,大多数的电路需要输入某种幅度随时间变化的信号,在这样的应用场景中,一个完整的测试测量系统一般会包含激励源,被测件和采集仪器三个部分.采集仪器 ...

  4. 画时域随机信号波形_【鼎阳硬件智库原创︱测试测量】任意波形发生器的基本输出波形及其相关参数...

    方浩 鼎阳硬件设计与测试智库专家组成员 传统的函数发生器可以输出正弦波.方波.三角波等标准波形,但是在实际的测试场景中,为了模拟产品在实际使用过程中的复杂情况,往往需要人为地去制造一些"不规 ...

  5. 零中频接收机频率转换图_【鼎阳硬件智库原创︱频谱分析仪】频谱分析仪应用解惑之频率分辨力...

    杨鼎 鼎阳硬件设计与测试智库专家组成员 带宽是频域分析中的常见指标,在上一部分的文章<频谱分析仪应用解惑之带宽>中,我们讲述了频谱分析仪中常见的分辨率带宽和视频带宽,文中提到RBW的带宽和 ...

  6. ui曲线谁是横坐标_【鼎阳硬件智库原创 | 测试测量】关于示波器的幅频特性曲线...

    关于示波器的幅频特性曲线 -- 公示鼎阳SDS3054和SDS1102E的幅频特性曲线 汪进进 鼎阳硬件设计与测试智库发起人之一 1,基于RC理论模型的示波器幅频特性曲线 示波器的带宽被称为示波器的第 ...

  7. npn三种波形失真_【鼎阳硬件智库原创 | 测试测量】初识任意波形发生器

    方浩 鼎阳硬件设计与测试智库专家组成员 在产品调试的过程中,大多数的电路需要输入某种幅度随时间变化的信号,在这样的应用场景中,一个完整的测试测量系统一般会包含激励源,被测件和采集仪器三个部分.采集仪器 ...

  8. 矩形窗函数的频谱图_【鼎阳硬件智库原创︱频谱分析仪】频谱分析仪应用解惑之带宽...

    杨鼎 鼎阳硬件设计与测试智库专家组成员 带宽是频域分析中的常见指标,频谱分析仪中常见的带宽有分辨率带宽和视频带宽,本文将全面讲解这些概念,以及之间的联系和区别. 分辨率带宽RBW(Resolution ...

  9. mos管电路_【鼎阳硬件智库原创︱电源】 MOS管驱动电路的设计

    吴恒 鼎阳硬件设计与测试智库专家组成员 引 言 对于开关电源来说,驱动电路作为控制电路和功率电路的接口,其作用至关重要,本文就将详细探讨开关电源的驱动电路的参数设计以及驱动芯片的选型. 常用的mos管 ...

最新文章

  1. 关于Linux和Windows双系统共存时间问题
  2. mysql主从复制、基于GTID的主从、半同步
  3. 60秒内使用Java 9的Project Jigsaw的JavaFX HelloWorld
  4. MySQL数据库SQL层级优化
  5. zookeeper注册中心 kerberos_ZooKeeper 并不适合做注册中心
  6. 抽奖随机算法的技术探讨与C#实现
  7. 一道简单的但是经典的动态规划题目
  8. 【推荐架构day4】微博推荐引擎的基本算法:核心细节
  9. 记一次muse-ui 使用
  10. 《无尽战神》隐私政策
  11. C语言 本地套接字这个审核也不给我通过,老规矩base64
  12. android 仿微信视频压缩上传,iOS视频压缩(仿微信录像)
  13. 【Linux回炉 目录配置】
  14. CA运作模式-认证与过期吊销
  15. Google正资助一个由AI机器人编辑的新闻网站
  16. UIPATH 收发Outlook邮件
  17. MAPJOIN来解决实际的问题
  18. Head First 中BeatBox code,(内部类的使用)
  19. Android菜鸟的成长笔记(3)——给QQ登录界面说So Easy
  20. AIoT时代已来 创业者转型有道 长江商学院物联网行业创新创业沙龙圆满结束!

热门文章

  1. 机器学习笔记——朴素贝叶斯(Naive Bayes)
  2. 计算机科学与技术专业文科大学排名,计算机科学与技术专业大学排名
  3. python去除抖音水印_Python爬虫:多平台短视频去水印下载器
  4. 凌晨3点不回家,你是要钱?还是要命?(文末有彩蛋)
  5. java前端长连接框架_Java中Spring Boot+Socket实现与html页面的长连接实例详解
  6. 【云原生 | 从零开始学Docker】二、Docker的常用指令学习以及使用
  7. 软件构造:设计模式总结
  8. bi软件排名--Smartbi大数据分析软件
  9. 基于PaddleOCR的身份证文字识别的实现
  10. 如何编写Yate的编解码模块