數位電路依賴於每個時脈邊沿的緊密時序。設定時間與保持時間定義資料必須在時鐘前後保持穩定的時間,使觸發器能儲存正確值並避免亞穩態。本文詳細說明其意義、違規原因、暫存器間路徑、PCB 佈局影響,以及實際解決時序問題的方法。

設置與保持時間概述
數位電路是用時鐘運作的,而每個時鐘邊緣周圍的每一小段時間都很重要。在同步系統中,資料是根據該時鐘訊號被移動和擷取的。實際訊號不會瞬間改變,時鐘邊緣的斜率是有限的。線路、邏輯閘和內部裝置延遲都會增加時序偏移。
為了確保資料擷取安全,每個主動時脈邊緣周圍有一個小時間窗口,輸入必須保持穩定。設定時間與保持時間定義此視窗,使觸發器能正確取樣資料,避免隨機錯誤或不穩定輸出。
共用數位電路中的設置與保持時間

• CPU、FPGA、ASIC及微控制器內的觸發器
• 源同步介面,時脈與資料同時傳輸
• 周邊匯流排如 SPI、I²C 及平行記憶體匯流排
• ADC(類比轉數位轉換器)與 DAC(數位轉類比轉換器)介面
• 高速數位通訊連結
數位定時中設置時間的意義

設定時間(Tsetup)是指輸入資料在進入有效時脈邊緣前必須保持穩定的最短時間。在此期間,觸發器輸入端呈現的資料不應改變,使內部取樣電路能可靠地判斷時鐘邊緣的邏輯電平。
保持時間定義及其對資料擷取的影響

保持時間(Thold)是指輸入資料在主動時脈邊緣後必須保持穩定的最短時間。雖然資料在時鐘轉換時取樣,但觸發器需要短暫的額外間隔來完成擷取過程。在此期間維持資料穩定性,確保儲存值被正確鎖定,並在後續邏輯階段中保持有效。
設定時間與保持時間的差異
| 參數 | 設置時間 | 暫停時間 | ||
|---|---|---|---|---|
| 定義 | 最短時間資料必須在時鐘邊緣 | 之前保持穩定 | 最小時間資料必須在時鐘邊緣 | 之後保持穩定 |
| 發行方向 | 問題發生在資料到達時,時鐘邊緣 | 之前到達太晚。問題發生在資料在時脈邊緣 | 之後太快改變時 | |
| 共同原因 | 資料路徑太慢(延遲過長) | 資料路徑太快(非常短的延遲) | ||
| 典型的解決方法 | 使用較慢的時脈或減少資料路徑的延遲 | 在資料路徑上增加額外延遲,讓資料在後續變動 | ||
| 違規風險 | 儲存值可能錯誤或不穩定(亞穩定) | 儲存值可能錯誤或不穩定(亞穩定) |
設置與等待時間違規的常見原因
• 時脈偏斜——時脈訊號會以略有不同的時間到達電路的不同區域。
• 時鐘抖動——時鐘邊緣精確時序的微小隨機變化。
• 較長的組合邏輯路徑——資料在通過邏輯閘前需花費過長時間才能到達觸發器。
• PCB線路長度不等——訊號傳播距離不同,因此有些訊號會較早或較晚抵達。
• 訊號振鈴與上升時間緩慢——訊號品質差或過渡緩慢會使辨識清晰的邏輯電平變得更困難。
• 溫度與電壓變化——溫度或供電電壓的變化會影響訊號速度與時序裕度。
設置與等待時間違規的影響

當設定時間或保持時間未達標時,觸發器可能無法判斷訊號在時鐘邊緣是高電平還是低電平。它可能進入一種稱為亞穩態的不穩定狀態,輸出需要額外時間穩定,且可能短暫停留在有效邏輯層級之間。這種不穩定行為可能在電路中擴散,導致嚴重問題,例如:
• 隨機位元錯誤
• 系統當機或重置
• 電路行為不可預測
• 難以追蹤的罕見故障
設定與保持時間值的定義

設定與保持時間會在晶片測試時測量並定義。該裝置會在受控條件下檢查,以找出仍能與時鐘正常運作的最小時序裕度。這些時序限制取決於半導體製程、電源電壓、溫度範圍以及輸出負載等因素。由於這些因素會因裝置而異,精確的設定與保持時間數值會列在資料表中,且應隨時檢查。
暫存器對暫存器路徑中的建立與保持時間
| 時序組件 | 說明 |
|---|---|
| Tclk | 時脈週期(兩個時鐘邊之間的時間) |
| Tcq | 第一個觸發器的時鐘到Q的延遲 |
| Tdata | 在觸發器之間邏輯的延遲 |
| Tsetup | 接收觸發器的設定時間 |
| 嘖 | 兩個觸發器之間的時鐘偏斜 |
PCB 走線長度匹配與設置/保持時序限制

PCB 走線長度匹配常用於減少時脈與資料訊號間的時序差異,特別是在高速數位設計中。匹配的走線長度有助於減少偏斜,但並不保證建立與保持時間的要求都能被滿足。
PCB走線上的訊號傳播速度極快,因此僅靠布線產生有意義的延遲通常需要不切實際的長走線。此外,訊號完整性效應如振鈴、阻抗不匹配及邊緣轉換緩慢,即使追蹤長度接近,也可能縮小時鐘邊緣的有效取樣窗口。
由於這些限制,設置與保持時序必須透過裝置資料表值與路徑延遲的時序分析來驗證,而非僅依賴PCB長度匹配作為時序修正。
修正數位系統中設置時間違規
• 減少組合邏輯的深度,使資料能更早到達
• 降低時脈頻率,以增加每個週期的時間
• 使用更快且內部延遲更短的邏輯元件
• 提升訊號完整性,使轉換更乾淨且穩定
• 新增管線階段,將長邏輯路徑拆解為更小的步驟
• 減少電容負載,使訊號能更快切換
修正數位系統中的等待時間違規
• 增加緩衝區延遲以減慢資料路徑
• 調整時鐘樹以減少不必要的時鐘偏斜
• 在安全且適當時插入小型RC延遲網路
• 在FPGA中使用可程式延遲區塊來微調資料到達時間
結論
設定與保持時間定義了時鐘邊緣的有效時序窗口,確保同步數位系統中資料擷取的可靠性。這些時序限制受時脈行為、邏輯延遲、訊號品質及物理實作影響。透過分析實際資料路徑與規格表規範,並針對設置與保持限制施加針對性修正,設計者能在製程、電壓及溫度變化中維持安全的時序裕度。
常見問題 [常見問題]
設定與按鍵時間如何限制時鐘速度?
時脈速度必須足夠慢,使資料離開一個觸發器,經過邏輯,且仍能在下一個觸發器時達到設定時間。如果時脈太快,設定時間會被打斷,電路就會失效。
什麼是時序鬆弛?
時間鬆弛是指資料所需到達時間與實際到達時間之間的差距。正緩衝代表時機安全。負鬆弛表示犯規或持球違規。
設定或保持時間會是負值嗎?
是的。負設定或保持數來自觸發器內部的定時。這代表安全視窗被移位,而不是可以跳過時機檢查。
靜態定時分析如何檢查定時?
靜態時序分析計算所有路徑延遲。它會在下一個時鐘邊緣檢查設定,並在當前邊緣後保持不變。任何有負鬆弛的路徑都會被報告為違規。
為什麼時脈域穿越對時序有風險?
當訊號穿越無關時脈時,其邊與新時脈不對齊。這常常會打斷設定或保持時間,並可能導致混穩,除非使用同步器或先出(FIFO)。