最近几年由于CPU的计算速度增加,计算机系统大多以数十MHz的Clock频率动作,加上数据传输速度不断提升布线的高密度化,使得印刷电路板上的信号传输频率(Timing)重要性逐渐受到重视,因此本文要介绍印刷电路板的导线Timing计算方法,以及Timing的分配技巧。
Timing设计主要目的分别如下:
- (1)调整系统内部各组件,使各组件能够相互正确传输数据。
- (2)决定Clock与Strobe的Timing,藉此避免接收器内部组件不会违反Set Up时间与Hold时间。
- (3)根据系统内各部位的需求,合理分配Timing。
如上所述,利用印刷电路板进行精确、高速化信号传输越来越困难,脚架之间单纯使用导线连接的设计,对高速信号而言显然不够完善,因此设计者必需将驱动器送出信号的Timing,与接收器抓取信号的Timing一并列入考虑,尤其是连接各组件的布线Layout方式,往往决定数据传输的精确性,因为正确的布线Layout不但可以获得低噪讯、低Overshot效果,同时还可以确保Timing的约束,并有效抑制噪讯辐射量。
Timing的基本设计
有关印刷电路板上的信号传输Timing规定,基本上它与LSI内部的信号传输Timing规定完全相同。如(图1)(a)所示,LSI内部数据从Flip Flop FF1传送到Flip Flop FF2时,FF1-FF2之间组合理论电路与延迟时间,必需符合FF2的站立维持(Hold)时间的约束。例如「LSI的Clock频率为200MHz」时,利用复数cycle传输数据的路径除外,所有Flip Flop之间的传输数据通常都超过200MHz,也就是说即使最慢的Flip Flop之间的数据传输时间,也必需低于「从5ns减掉FF2站立时间之后的值」。
事实上印刷电路板的设计与数据传输完全相同,因为在驱动器与接收器LSI内部都有所谓的Flip Flop,而Timing取决于该Flip Flop之间的数据传输。
如图1(b)所示遵循从驱动器LSI Flip Flop FF1输出的信号,到达接收器LSI Flip Flop FF2的站立时间与hold时间约束,乃是设计数据传输Timing最终追求目标。
(表一)是LSI内部的Timing设计,与印刷电路板上LSI之间的Timing设计比较。由表可知两者最大差异是使用何物决定延迟时间,因为两个Flip Flop FF1与FF2之间的延迟时间,在LSI的布线主要是利用结合理论电路的段数,以及理论电路之间的导线阻抗与容量,藉此方式再由RC延迟决定;相较之下印刷电路板则是以基板上的导线延迟时间与缓冲器的延迟时间决定。
因此Timing的设计重点,在LSI是以「如何减少结合理论电路的段数」为主;在印刷电路板则是「如何以适当的导线长度连接各组件」为主,也就是说后者是以基板上的组件分布与导线Layout为前提,使FF1与FF2之间的驱动器、缓冲器、接收器等传输延迟时间,符合FF2的Set Up时间与Hold时间限制。
有关延迟的表示方式,在LSI内部主要使用由阻抗与容量构成的具有损失的模式(model);在印刷电路板大多使用电感(inductance)与容量构成的无损失的模式。随着LSI制作技术的微细化,虽然LSI内部导线延迟仍扮演支配性角色,不过它与忽视阻抗,计算印刷电路板上导线延迟时常用的模式截然不同。(图二)是LSI与印刷电路板的布线模式比较。
表一 LSI与PCB的timing设计差异比较
|
LSI内部 |
PCB |
驱动器 |
FF1 |
驱动LSI(FF) |
决定延迟的主要原因 |
FF之间的组合电路与布线延迟时间
|
LSI之间的信号传输延迟时间 |
接收器 |
FF2 |
接收器LSI(FF) |
Clock源 |
LSIClock产生器PLL等等)
|
基板上的Clock产生器 |
延迟模式 |
RC延迟 |
LC延迟 |
Timing设计常用变量简介
接着介绍有关Timing设计时,常用变量名称的内涵与定义。
- ˙tac:访问时间(access time)。它是指Clock信号输入到驱动器的Clock端子后,一直到最迟有效数据开始输出的时间。不过它并不保证Clock信号输入后tac之前,有效数据会输入至数据端子。
- ˙toh:数据输出维持时间。数据输出维持时间所谓最快也是从Clock被输入到驱动器的脚架(pin),一直到toh之后才会输出有效数据,也就是说在toh之前虽然有效数据被输入到数据端子,不过之后数值可能发生变化。此处定义toh的基准与 tac的Clock是指下一个Clock Edge而言。
- ˙tsu:Set Up时间。接收器为正确抓取数据,数据输入端子的Clock站立端缘必需在tsu之前就已经被确定。
- ˙tho:Hold时间。接收器为正确抓取数据,数据必需维持到比数据输入端子的Clock站立尾端(edge)更后方的tsu为止。
- ˙tpd:数据传输延迟时间。数据从驱动器传输到接收器必要的时间。
根据以上定义,如(图三)所示,被tac与toh夹持时间,是指驱动器LSI输出数据时间,亦即接收器LSI为正确抓取该有效数据,因此输入数据会将tho与tho覆盖。
《图三 tac与toh规范有效数据的输出Timing》 |
|
虽然在接收器的Timing规范中,分别设有Set Up时间与Hold时间等规定,不过令人好奇的是,若不遵循上述规定时会有怎样的影响?有关这点如(图四)所示,所谓的Flip Flop的Set Up时间,是假设将Clockψ的Clock站立端缘定义为基准,依此一旦确定“H”与“L”已经遵循Set Up时间与Hold时间的话,便可因正归返(return)维持上述两值,也就是说包含在Flip Flop内的正归返电路,会将信号增幅同时再将D与Q成为“H”与“L”。
相反的,如果不遵循上述Set Up时间的话,由于正归返的初期值一直到维持数据确定为止的时间会发生变化,某些情况即使想要抓取“H”的数据,有可能因为极微少的噪讯重迭变成“L”,这种现象称为「meta stable」,其是数值即使未反相的场合,数值完全确定为止的时间如果发生相异时,有可能会影响数据传送到下一个Flip Flop的Timing,进而造成误动作等后果。
《图四 未遵照Set Up时间与hold时间引发亚稳(metastable)状态》 |
|
(图五)是将数据从FF1传送到FF2时Timing关系单纯化的结果,由图可知Clock信号一旦输入到FF1,数据立即被输出到Clock信号的站立尾端,一直到访问时间(access time)tac之后为止,根据以上定义所谓「有效数据输出时段」,事实上是指从tac一直到利用下一个Clock信号站立端缘定义的数据输出维持时间toh而言。
由于数据从FF1传送到FF2时间一定,所以可以将该数据有效期间视为固定维持现状,因此从FF1到FF2之间的导线传输延迟时间tpd,实际上是经过延迟后才到达FF2。此处FF2为正确抓取数据,数据有效期间必需将Clock端缘规定的Set Up时间tsu与维持(hold)时间tho完全覆盖。如(图五)下方第二段所示,传输延迟时间tpd过大时,由于无法满足FF2的Set Up时间,所以不能顺利抓取数据;此外如图五下方最末段所示,传输延迟时间tpd过短时,相反的无法满足维持时间约束,因此同样不能顺利抓取数据。
两种Clock分配方式与Timing的设计技巧
面对同步系统的Timing,通常会针对基准信号做某种规范,一般而言Clock往往会成为基准信号,因此Clock分配方式与信号波形就顺理成章成为设计上非常重要的课题之一。
印刷电路板数据传输常用的Clock信号分配方式,分别有Common Clock与Source Synchronous两种,因此接着本文要以Common Clock与Source Synchronous设计实例,探讨Timing的设计技巧。
有关Common Clock方式的Timing规定
(图六)是利用Common Clock方式构成的数据传输系统,此处要探讨数据从LSI1传输到LSI2的动作特性。假设从LSI1到LSI2的Clock分配,是根据印刷电路上的Clock信号产生器CPG,再透过时计缓冲器(Clock Buffer)执行。
《图六 利用Common Clock方式传输数据》 |
|
驱动端的Timing
(图七)是驱动端的Time Chart,横轴为时间越往右侧表示时间越迟缓,在波形横向侧边的A1、B1、C1、D1、E1,分别与图六中的各位置相对应,它是以A点波形为基准,表示各点观测获得的波形行进与延迟特性。
图六中的点A到达时计缓冲器的时计信号,输入到点B1只迟缓缓冲器的延迟时间tbuf_clk1 ;点B1的信号抵达驱动器LSI1的Clock信号输入端子C1时,只迟缓印刷电路板上导线的延迟时间tpd_clk1,亦即Clock抵达LSI1的实际Timing。此处若以该Timing为基准,则LSI1只会在tac_data与toh_data定义期间输出有效数据,而输出的数据在LSI1与LSI2之间的延迟时间tpd_data之后才会到达点E1。
《图七 Common Clock方式的驱动器数据输出Timing》 |
|
接收端的Timing
(图八)是LSI2输入数据的Timing。由图可知点A抵达时计缓冲器(clock buffer)的Clock信号输出到B2时,只迟缓缓冲器LSI的延迟时间tbuf_clk2,抵达LSI2的Clock信号输入端子C2时,只迟缓印刷电路板上导线的延迟时间tpd_clk2,亦即Clock抵达LSI2的实际Timing。此处若以该Timing为基准,就可以定义Set Up时间tsu与维持时间(hold time)tho。LSI2为抓取数据因此在到达E1的数据有效期间内,只要将Set Up时间与维持时间覆盖即可。依此分别精确描绘输出与输入两者的Time Chart,再将两图堆栈使点A的基准时计一致,便可以知道数据是否能够顺利传送。
《图八 Common Clock方式的驱动器数据输出Timing》 |
|
如何计算Common Clock方式的Timing
此处假设以点A的Clock站立Edge为基准,抵达LSI2的有效数据两端的时刻tE1_min与tE1_max可用下式表示:
此外到达接收器LSI2的Clock信号站立尾端,以点相同的站立端缘为基准,进而成为的下一个时段:
因此Set Up界限(margin)可用下式表示:
根据同样的计算方式,Hold端的界限(margin)可用下式表示:
式中的tbuf_skew是指时计缓冲器脚架之间的输出时间差,它是用下式定义:
式中的tpd_clk_skew是指导线Layout造成的时计信号传输延迟时间差,它可用下式定义:
导线长度决定数据传输频率的上限值
根据公式(4)可知Common Clock方式,LSI之间的导线传输时间tpd越大,Set Up界限则相对降低;相形之下根据公式(5)可知,LSI之间的导线传输延迟时间tpd越大,维持界限(Hold Margin)则随着增加,尤其是信号的传输周期tcycle较小的高速信号传输,为遵循Set Up时间的约束,因此必需降低tpd_data、tpd_clk_skew、tsu、tbuf_skew。
由于本文设计实例使用的tac、tsu、tbuf_skew是利用LSI决定,这意味着低变量(parameter)LSI对高频系统比较有利。此外有关基板设计者可以改善的项目,主要是以传输延迟时间tpd_data为主。具体方法是尽量降低导线长度,藉此降低传输延迟时间tpd_data,或是刻意使分配到驱动器以及利用接收器的Clock导线长度产生差异(tpd_clk_skew)藉此调整Timing,这种理方法论上也能够改善Set Up时间,不过类似内存的数据导线,可作双向数据传输的场合,根本上无法大幅改变驱动器与接收器的Clock Timing,因此本质上并没有解决对策。
由于LSI之间的传输延迟时间tpd_data取决于LSI之间的距离,所以利用Layout技巧,使Clock信号的传输延迟时间差变成0,以物理层面而言并无法无限制减少,这意味着Common Clock方式,由于LSI之间的传输延迟问题,最大传送频率会受到一定的限制,尤其是高传输频率低传输周期tcycle的情况,驱动器与接收器之间的距离会变得非常小。一般印刷电路基板基于组件设置方式与导线长度等实际考虑,因此Common Clock方式的Clock频率上限值,通常都被限制在200~300MHz范围内。
Jitter只会压迫Set Up时间
如上所述,绘制Time Chart可以快速有效求得计算Timing,因此此处依样画芦绘制Time Chart,藉此检讨Clock Jitter对Timing的影响。
(图九)是Clock含有抖动(Jitter)的Time Chart。所谓「Jitter」是因为热或是电源电压变化,以及噪讯(noise)的影响,造成传输数据(矩形波)的duty随着cycle发生变化,并且从正常迁移位置作时间性前后移动。
此处针对Clock含有Jitter,探讨站立尾端(时段的基准)对站立时间快慢的影响。变化后的尾缘如图九的点B2与点C2所示,它的影响波及接收器的时计(clock),并且使数据的输入Timing产生与点A相同的变化,在此同时驱动器被分配到相同的Clock,其结果是利用变动中的尾缘定义的Timing,只将输出维持时间作位置变动。属于Clock输入的点C2的Timing变化,与点E的Timing变化,为了要使相同Clock复原势必变成相同方向,结果是维持界限(hold margin)即使有Jitter也不会发生改变,而Set Up界限(margin)只会对抓取Clock作变化。
《图九 利用Clock Jitter的Timing变化》 |
|
有关Source Synchronous方式的Timing规定
利用Strobe信号解决Common Clock方式的缺点
(图十)是以Source Synchronous Clock做基准信号,进行Source Synchronous方式数据传输的方块图。它是利用驱动器LSI1的时计脉冲(clock pulse)产生器CPG输出数据,在此同时则送出可以抓取数据的Timing基准信号(该基准信号又称为Strobe信号),接着再配合数据的有效时间中段,达成数据同步传输的目的。由图可知在Source Synchronous方式,数据从LSI1传送到LSI2时是根据Strobe作规范,而不是使用可以使LSI2抓取数据的Timing,与基板上所有LSI都能够同时抵达的Clock做约束。
上节介绍的Common Clock方式,驱动器与接收器LSI两者距离越大,数据信号的延迟会随着增加,因此成为抓取数据的基准,亦即Clock Timing是否常时送出一定的Clock,反而变成争论的焦点问题。相形之下Source Synchronous方式,可以透过巧妙的设计使成为抓取数据的基准,亦即Strobe信号具备相同的延迟,如此一来便可以化解LSI之间距离造成的限制。
如何计算Source Synchronous方式的Timing
(图十一)是利用Source Synchronous方式传输数据的Time Chart。由图可知Set Up界限(margin)可用下式表示:
@内文式中的tC1_min是指抵达接收器LSI2的有效数据左侧的时段。此外tvb与tpd_skew分别用下式表示:
《图十一 Source Synchronous方式的驱动器数据输出Timing》 |
|