最近幾年由於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》 |
|