基本概念
同步時序電路的基本模型是由暫存器(實現時序功能)和暫存器之間的組合邏輯電路(實現組合邏輯功能)構成的。數據信號被鎖存在暫存器中,並可以“穿過”組合邏輯電路到達下一個暫存器,然後在時鐘的有效邊緣到來時,下一級暫存器對數據信號進行鎖存。理想的電路系統需要時鐘信號在各個暫存器上的步調儘可能地一致,這樣才能使各個暫存器的行為“同步”。然而,在實際的同步電路設計過程中,常常遇到時鐘信號在不同時間到達電路各個部分的現象,這就是時鐘偏移。
在同步電路里,時鐘偏移{\displaystyle T_{Skew}}是指時鐘信號到達兩個相互連線的硬體暫存器單元的差異。時鐘偏移的數值可以是正的,也可以是負的。如果時鐘信號在積體電路中完全是同步的,那么這個積體電路中各個部分觀察到的時鐘偏移為零。
產生時鐘偏移現象的原因有幾種,例如互連線的長度、溫度的偏差、位於傳輸路徑中間的器件、電容耦合、器件材料不完善以及使用時鐘信號的器件的輸入端電容不同。隨著電路的時鐘頻率增加,時序性質會變得更加關鍵,稍微的偏移甚至會使電路偏離正常工作的狀態。
時鐘偏移主要分為兩類:正偏移和負偏移。當信號傳輸的目標暫存器在接收暫存器之前捕獲正確的時鐘信號,電路發生正偏移;反之,當信號傳輸的目標暫存器在接收暫存器之後捕獲正確的時鐘信號,電路發生負偏移。
時序違背
時鐘偏移可能會造成兩種時序違背:保持時間違背、建立時間違背。
保持時間違背
發生在時鐘信號的到來比數據信號從信號源到達目標暫存器(或目標觸發器)並在其中保持一段時間更晚。反過來講,即數據信號在連線到目標暫存器上,未能在有效邊緣到來之後保持足夠長的時間,從而造成數據不能正確地被鎖存在目標暫存器中。
建立時間違背
假設目標暫存器捕獲有效時鐘信號邊緣的時間比數據信號的到達更早,那么連線在目標暫存器上的數據信號必須在時鐘信號下一次有效邊緣到來之前儘快保持穩定。如果數據信號未能滿足這一要求,那么就會發生建立時間違背。如果時鐘信號有效邊緣到來之時,數據信號仍未穩定連線到目標暫存器,就意味著要等待再下一次時鐘信號有效邊緣到來的時候才能做嘗試。數據信號需要的建立時間長度是系統時鐘信號頻率的要求。
單純提高時鐘頻率不能解決保持時間違背,因此在某種程度上,保持時間違背問題更加嚴重。設計人員需要考慮正的時鐘偏移和負的時鐘偏移,使得建立時間約束和保持時間約束都不被違背。
時鐘樹綜合
在超大規模積體電路中,存在大量需要時鐘信號進行同步的暫存器,這就需要構建一個時鐘信號的分布傳輸網路,來提供時鐘偏移儘可能小的同步時序。在積體電路的物理設計階段,需要設計一個良好的時鐘樹結構。通過在時鐘信號傳輸電路上插入不同參數的緩衝器,可以儘可能地使時鐘偏移接近零,即時鐘信號近乎同步到達積體電路中的各個暫存器。設計人員可以利用計算機輔助工程軟體(例如Synopsys等公司的電子設計自動化工具)來輔助設計。靜態時序分析可以檢查積體電路是否違背保持時間、建立時間相關的約束。