寫在前面
本系列整理數(shù)字系統(tǒng)設(shè)計的相關(guān)知識體系架構(gòu),為了方便后續(xù)自己查閱與求職準備。在FPGA和ASIC設(shè)計中,時鐘信號的好壞很大程度上影響了整個系統(tǒng)的穩(wěn)定性,本文主要介紹了數(shù)字設(shè)計中的非理想時鐘的偏差來源與影響。
(本文長度約三千字,請耐心閱讀,本人水平有限,如有紕漏與錯誤,歡迎留言討論)
理想時鐘
在數(shù)字設(shè)計中的理想時鐘如下圖所示:
理想時鐘的特點如下:
-時鐘無重疊: 任意時刻下, Φ 與Φ非的與恒為零;
-全軌輸出: VDD - V(Φ) = V (Φ非);
-時鐘無延遲、無偏斜、無抖動。
非理想性時鐘在數(shù)字設(shè)計中的非理想時鐘如下圖所示,和理想時鐘相對立,如果不滿足上述的理想時鐘的相關(guān)特點,可認為其實一個非理想時鐘。
對上圖進行分析,假設(shè)CLK1、CLK2是同一個時鐘樹下的不同時鐘,此時,兩個時鐘邊沿的時間差就為時鐘偏斜,同時,對于某一個時鐘,在時鐘變化邊沿時,會有一定的隨機性,所以這里隨機的時鐘周期變化叫做時鐘抖動。
假設(shè)CLK1是CLK2的前級時鐘,所以上圖中兩個時鐘的邊沿的時間差即為時鐘延遲。
在上圖中其實不能很準確體現(xiàn)出時鐘延遲和時鐘偏斜的概念區(qū)別,貼出另外一個圖以供參考:
在下圖中很容易理解時鐘延遲和時鐘偏斜的概念:
-時鐘延遲(clock latency)是指從時鐘源到終點所花費的總時間。
-時鐘偏斜(clock skew)是指到達不同時鐘樹終點的時間差。
時鐘偏斜主要來自時鐘在空間上的不期望變化,時鐘延遲和時鐘抖動主要來自時鐘在時間上的不期望變化。
時鐘延遲(clock latency)
時鐘延遲(clock latency)是指從時鐘源到終點所花費的總時間,主要針對的是一個時鐘,從時鐘源端輸出到所驅(qū)動的器件的時鐘輸入端的時間延遲。
時鐘偏斜(clock skew)
時鐘偏斜(clock latency)是一對物理時鐘的標稱時間差與實際時間差之間的區(qū)別。理想情況下,時鐘應(yīng)同時到達系統(tǒng)中所有的鐘控元件(鎖存器、觸發(fā)器、存儲器和動態(tài)門等),這樣系統(tǒng)才有一個共同的參考時間。實際中,時鐘到達各點的時間稍微有些差別,這個差別就叫時鐘偏斜。
兩個不同時鐘的時鐘延遲,就是時鐘偏斜。
時鐘偏斜發(fā)生在兩個時鐘信號之間,一般不會引起電路實際時鐘周期的變化,只會導致時鐘相位的偏移;時鐘抖動可以發(fā)生在一個時鐘信號自身,會引起時鐘周期的變化。
時鐘偏斜與時鐘抖動統(tǒng)稱為時鐘偏差,二者之和也叫時鐘不確定性(uncertainty)。邊沿之間的時鐘抖動有時也被歸于與時間相關(guān)的時鐘偏斜。
時鐘抖動(clock jitter)
時鐘抖動(clock jitter) 是指芯片的某一個給定點上時鐘邊沿發(fā)生暫時的隨機變化,會導致時鐘周期的縮短或加長。
邊界間抖動(edge-to-edge) :時鐘邊沿相對與理想時鐘邊沿的最大變化值,實際上是隨時間變化的時鐘偏斜。
長周期抖動(k-cycle):數(shù)個周期后邊沿之間的最大變化值,主要影響芯片間的時序同步,也叫絕對抖動。
周期間抖動(cycle-to-cycle) :相鄰時鐘周期間的時變偏離,主要影響芯片內(nèi)時序同步,也叫相對抖動。
隨機抖動(random jitter):由器件和導線的固有噪聲(如熱噪聲) 所致,為高斯分布,用均方根值(RMS)表征,無法預(yù)估。
確定性抖動 (deterministic jitter): 確定性抖動由非理想傳輸效應(yīng)、串擾、電源浪涌等所致,為非高斯分布,用峰峰值表征,可以預(yù)估。
在邏輯綜合前,常采用理想時鐘(邏輯時鐘)+預(yù)設(shè)偏差的方式來模擬真實時鐘;在物理設(shè)計時,完成實際時鐘(物理時鐘)的設(shè)計,其偏差必須滿足系統(tǒng)要求。
邏輯時鐘(logical clock) :沒有時鐘偏斜的理想時鐘,邏輯設(shè)計者在用硬件描述語言描述系統(tǒng)行為時使用。
物理時鐘(physical clock) :帶有時鐘偏斜的實際時鐘,為了使系統(tǒng)達到預(yù)期行為,設(shè)計者不得不在時鐘偏差、功耗、金屬化資源利用率和設(shè)計代價之間尋求均衡。
全局時鐘(global clock) :為整個系統(tǒng)提供基準的單一時鐘。布線對時序的影響同一個時鐘下,驅(qū)動不同的觸發(fā)器,都需要在實際設(shè)計時候都需要進行布線,所以不同的觸發(fā)器之間布線長短也會有一定差異。
布線方向的影響:正偏差
時鐘布線方向與數(shù)據(jù)通過流水線方向一致會使得時鐘正偏差,也即,tskew > 0 。
好處:可采用更短的時鐘周期從而得到更高的時鐘頻率,有利于提高數(shù)據(jù)通過率。
壞處:需采用更長的保持時間,以免出現(xiàn)冒險競爭。
布線方向的影響:負偏差
時鐘布線方向與數(shù)據(jù)通過流水線方向相反會使得時鐘負偏差,也即,tskew < 0 。
好處:冒險競爭不易發(fā)生,提高了電路的健壯性。
壞處:加長了最小時鐘周期從而降低了時鐘頻率,不利于提高數(shù)據(jù)通過率。
布線方向的影響:雙向電路
時鐘布線方向與數(shù)據(jù)通過流水線方向可能相同也可能相反,從而使正負偏差都存在。
一個較為理想的設(shè)計目標是使正、負偏差都很小,零偏差最好。
時鐘偏差的來源時鐘偏差的來源大致如下圖所示:
結(jié)合上圖中的引起時鐘偏差來源,大致可對時鐘偏差進行分類,系統(tǒng)偏差、隨機(random)偏差、漂移(drift)偏差、抖動(jitter)偏差,不同類型的偏差的原因如下:
-系統(tǒng)(systematic)偏差:時鐘產(chǎn)生器、時鐘門控器、電容負載、互連線的偏差,可預(yù)估并通過設(shè)計來糾正。
-隨機(random)偏差:工藝離散引起元器件和互連線參數(shù)的隨機變化,無法預(yù)估,但可以測試,并用可校準延時元件來補償。
-漂移(drift)偏差:與時間有關(guān)的環(huán)境因素(如溫度隨時間變化、溫度的空間梯度變化)變化所致,也可補償,但需實時。
-抖動(jitter)偏差:高頻環(huán)境變化(如電源浪涌、串擾)導致的電路延時隨時間和空間的變化,最難以防范,因補償電路來不及對它進行響應(yīng)。
下面針對其中幾個原因進行舉例分析。
時鐘線長度不一引入偏差
由于時鐘在驅(qū)動不同單元時,不同單元布局分布在不同區(qū)域,所以使得時鐘扇出的信號進行實際布線的長度長短不一,從而引起了時鐘偏差,如下圖所示,La和Lb長度不同,所以時鐘對應(yīng)到單元A和單元B的時鐘延遲不同,使兩個單元的時鐘存在偏斜。
電源變化引入偏差I(lǐng)tanium 2 處理器芯片電源電壓的空間分布:1.2V標稱電源電壓下的最大變化為±100mV,由此導致的延時變化為13%/100mV。
溫度變化引入偏差對Itanium 2的仿真結(jié)果表明,溫 度在芯片上的非 均勻分布達到 20℃時,會導致 1.5%的延時變化。
工藝變化引入偏差
工藝上變化也會引入時鐘的偏差,如溝道長度、閾值電壓和片上誤差。
溝道長度: Itanium 2的標稱值為180nm,工藝離散導致的偏差可能高達±12.5nm,這會導致±10%的延時變化。
閾值電壓:0.18um工藝下,小nMOS管(W<12.5um)、小pMOS管、 大nMOS管、大pMOS管的標準偏差分別為16.8、14.6、7.9、3.5mV, 這會導致一個標準偏差為2%的延時分布。
片上誤差 (on-chip variation, OCV)空間分布,相同的緩沖器單元因所處芯片位置 不同而產(chǎn)生的延遲誤差。
門控器引入偏差
反相器鏈的延遲差以及C1與C2的差會導致時鐘偏斜|t2 -t1 | 。采用邏輯努力技術(shù)合理設(shè)計反相器鏈的級數(shù)及門間面積比,可減少乃至消除此偏差。
下圖的D鎖存器的時鐘偏斜來源于反相器的延遲以及C1與C2的差。通過調(diào)整兩個NOR2門的面積 比,可對時鐘偏斜進行補償。
負載變化引入偏差
負載變化會引入時鐘偏差,柵電容與所加電壓有關(guān),時鐘負載與鎖存器/寄存器的當前狀態(tài)及下一個狀態(tài)有關(guān)。如下圖所示,不同電平變化會影響時鐘負載的微小變化。
總結(jié)
時鐘延遲(clock latency) 是指從時鐘源到終點所花費的總時間。時鐘偏斜(clock skew) 是指到達不同時鐘樹終點的時間差。時鐘抖動(clock jitter) 是指芯片的某一個給定點上時鐘邊沿發(fā)生暫時的隨機變化,會導致時鐘周期的縮短或加長。
時鐘偏斜 主要來自時鐘在空間上的不期望變化,時鐘延遲和時鐘抖動 主要來自時鐘在時間上的不期望變化。
時鐘偏斜發(fā)生在兩個時鐘信號之間,一般不會引起電路實際時鐘周期的變化,只會導致時鐘相位的偏移;時鐘抖動可以發(fā)生在一個時鐘信號自身,會引起時鐘周期的變化。
時鐘偏斜與時鐘抖動統(tǒng)稱為時鐘偏差,二者之和也叫時鐘不確定性(uncertainty)。邊沿之間的時鐘抖動有時也被歸于與時間相關(guān)的時鐘偏斜。
布線方向會對時序造成正負偏差的影響,一個較為理想的設(shè)計目標是使正、負偏差都很小,零偏差最好。
時鐘偏差分為,系統(tǒng)偏差、隨機(random)偏差、漂移(drift)偏差、抖動(jitter)偏差,不同偏差的原因不同,可通過合理的設(shè)計將相應(yīng)的影響規(guī)避或影響降至最低。