靜態時序分析簽核 – 一種全面而穩健的方法
關鍵總結
一旦芯片流片,就無法更改設計,這凸顯了靜態時序分析 (STA) 簽核作為防止硅故障的重要性。
全面的 STA 簽核方法必須包括一整套檢查,以識別結構問題并確保正確執行所有時序分析。
串擾是一個使時序收斂復雜化的重要問題,必須通過特定的限制和緩解策略進行管理,以保持時鐘網絡的完整性。
在 STA 簽核過程中,早期反饋和主動識別潛在瓶頸對于實現更快的時序收斂至關重要。
未能實施概述的 STA 簽核方法可能會導致昂貴的設計修復,對上市時間產生負面影響,并降低簽核過程的可信度。
一旦芯片流片,就不可能改變設計——硅是無情的,不允許進行后期制作修改。相比之下,軟件可以在發布后更新,但芯片保持固定。靜態時序分析 (STA) 簽核是防止硅故障的重要保障。
在現代 VLSI 設計中,錯誤代價極高,會影響關鍵應用的財務、上市時間、產品可信度和安全性。僅錯過一項 STA 檢查就可能導致數百萬美元的損失和嚴重的項目延誤。
“只有偏執狂才能生存——謹慎而徹底的方法對于 STA 簽核至關重要”
良好的 STA 簽核方法的目標
一套全面的簽核檢查 - 檢查每一個細節
需要進行 STA 簽核檢查,以滿足技術、設計、項目和塊制定的規范。這些簽核檢查必須識別結構問題,準確正確地執行STA,執行所有強制的時序分析,并納入與特定節點或設計相關的任何自定義檢查。
確保完美的簽核,沒有錯誤或遺漏
對簽核規范和代碼實施進行全面審查,結合所有簽核輸出日志和報告的自動化流程和日志解析的集成,以及正確應用豁免和就未放棄的簽核違規行為進行有效溝通,對于確保穩健的 STA 簽核質量至關重要。
在簽核規范和極端約束中發現悲觀情緒
STA 簽核過程應有效地識別不切實際的約束并提供可靠的調試報告。按違規類型、嚴重性、設計和作模式構建報告,并輔以清晰的圖表和頻率直方圖等統計摘要,可顯著提高清晰度。此外,及早識別夸大的需求對于確保有效的 STA 簽核至關重要。
早期定時關閉反饋以主動解決問題
優先考慮可能導致未來瓶頸的基本簽核檢查,同時提供清晰的反饋、調試數據和建議的解決方案,有助于實現更快的時序收斂周期。
STA 簽核方法的關鍵屬性
雖然本文不討論每個 STA 簽核檢查的詳細算法,但此處提供了一個包含詳細信息的單簽核檢查。
網絡上的串擾 – 自定義 STA 簽核檢查串擾
串擾會導致與模式相關和角敏感的延遲變化,從而破壞建立和保持時間,從而使時序收斂變得復雜。它引入的噪聲可能會導致毛刺、錯誤捕獲和抖動增加,從而降低整體設計裕度。串擾還否定了 CPPR 信用,并且由于最壞情況分析,對同一時序路徑的捕獲和啟動產生負面影響。塊到頂部的不相關也歸因于邊界網上的串擾。這可能會迫使成本高昂的 ECO,涉及重新布線、屏蔽,并對電源、DRC 和 EMI 收斂產生潛在的連鎖反應。
為數據路徑、時鐘中繼和時鐘葉網絡設置串擾限制,并在設計中驗證每個網絡非常重要。下面給出了一個示例和詳細信息。
干線網絡通常以零串擾延遲分量為目標,因為過多的串擾會使時序收斂復雜化。常見的串擾緩解方法包括雙倍間距和屏蔽。在關鍵路由上,可以采用差分時鐘路由。在實踐中,有些網絡可能達不到這個目標,因此建議建立一個保守合理的串擾限制。目標是保持串擾干凈的時鐘干線網絡。由于每條路徑都可能涉及大量網絡,因此保持時鐘干線網絡沒有串擾至關重要,因為它會沿路徑累積。
葉網不能屏蔽或隔離,因為它們代表時鐘網絡的最后階段,并連接到相同數量的順序設備,這使得屏蔽和隔離(通過雙倍或三倍間距)資源密集型。因此,通常允許每個葉網上有 4-5 ps 的串擾。為了管理潛在問題,可以為時鐘路徑中網絡的總串擾建立累積限制,從而能夠監督單個葉網上的過度串擾以及來自樹干和葉網串擾的綜合影響。
例如,結構化方法涉及分析每個時鐘域的 1000 條路徑,收集與捕獲時鐘路徑相關的所有網絡,并提取與交叉耦合效應相關的延遲。構建串擾延遲間隔范圍為1ps至10 ps的頻率分布表有助于評估時鐘網絡與交叉耦合相關的性能。此外,執行此簽核驗證并一致地比較結果可以提供任何時鐘網絡降級的早期指示。及時識別出現的問題對于有效的時序收斂至關重要。
分類的“STA 簽核”檢查和描述
STA 簽核檢查列表非常全面,至少有 50 個簽核檢查;以下是帶有簡要說明的關鍵。所有檢查的詳細報道不在本文的討論范圍之內。
STA 簽核規范實施檢查 – 第一個簽核步驟
STA 邊距 – 驗證應用于每個相關檢查的邊距和保護帶,無論是工具生成的還是用戶定義的。
定時降額 – 檢查設計 /cell /net / constraints / checkTypes 的過程、電壓、溫度、老化、輻射、MixVT 和基于距離的降額。
時鐘不確定性 – 根據時鐘周期百分比或每個時鐘或設計的平面數字檢查時鐘不確定度規格。
全周期抖動 – 測量抖動,建模為額外的時鐘不確定性,通常指定為 PLL 抖動和 CTS 網絡抖動的復合均方根和。
半周期抖動 – 與全周期抖動類似,測量應用于半周期路徑的抖動和最小脈沖寬度檢查。
輸入驅動器 – 在時序分析期間,檢查是否存在驅動單元,并根據 PVT 條件確認每個端口的默認或自定義驅動器。
輸出負載 – 驗證默認最小負載,以及基于 I/O 焊盤的存在或輸出驅動程序的特殊外部規范的自定義負載。
STA 流變量 – 數百個變量指導準確的簽核 STA,由工具版本、技術節點或代工廠規范、項目意圖、STA 方法和簽核規范決定的要求。
STA 命令選項 – 與 STA 流變量相同的詳細信息適用于命令中用于執行 STA 步驟的選項。
STA 角 – 檢查以確保簽核規范與執行分析的 STA 角匹配。(PVTRC x 功能/掃描/JTAG/CDC ...
最大轉換限制 – 驗證最大轉換報告是否反映了項目/設計設置的時鐘域或設計的最小庫約束和任何過度約束,以實現卓越的時序性能。
最大電容限制(Max Cap Limits) – 與最大轉換限制相同的詳細信息適用于最大電容檢查。通常,庫默認值用于內部節點。
異步時鐘組 – 從所有時鐘組組合中收集具有有限松弛的時序路徑,并跟蹤主時鐘和生成的時鐘,以確定不屬于同一系列的報告路徑的時鐘交叉。
輸入驗收標準 – 防止垃圾輸入垃圾輸出場景網表質量 – 確認準確的讀取設計過程并檢查任何網表結構或層次結構綁定錯誤或警告。
時序約束質量 – 確保準確讀取約束文件,沒有不可放棄的錯誤和警告,確認主時鐘和生成的時鐘定義的正確性,并驗證時序異常的正確實現。
注釋寄生質量 – 檢查寄生注釋文件的正確讀取,審核提取日志以進行簽核(層、流變量、提取文件的日志解析、正確的技術文件使用、包含金屬填充、寄生中的位置信息(如果適用)。
設計庫使用正確性 – 從已發布的庫數據庫中的各種選擇中驗證標準單元、IO 焊盤、存儲器、自定義 IP 的正確庫使用。
工具版本正確性 – 用于計時、提取、約束生成、IP 模型生成和 Unix 使用(csh、python、lsf/bsub 等)的正確工具版本
文件版本 – 檢查文件的正確版本,以了解變體 (POCV/SOCV)、電源配置 (UPF)、網表 (.vg、.libs)、寄生 (SPEF)、STA 流版本。
結構檢查 – 設計、結構、備份 STA 檢查中的重大缺陷 不使用單元 – 時鐘和數據不根據晶圓代工廠、項目和基于單元強度和時序路徑中的位置使用單元。
必須使用單元 – 時鐘和數據單元類型(翻牌類型、時鐘緩沖區、I/O 驅動程序......
同步器單元類型 – 檢查 stage1 和 stage2 同步器的特定允許模式(庫單元、強度、vt 類型)
同步器單元接近度 – 檢查以確保同步器的 2 級彼此相鄰或彼此相鄰放置,以獲得最佳的亞穩態失效時間。
同步器單元結構 – 檢查以確保在同步器的 2 個階段之間僅存在網絡且不存在單元。
延遲單元和結構 – 檢查以確保正確的延遲單元類型和強度,以及時序路徑中允許的連續延遲單元的最大數量,以確保延遲單元變化建模不樂觀。
鎖定鎖存器結構正確性 – 半周期路徑鎖定鎖存捕獲極性正確性(不能依賴外部工具)、鎖定鎖存單元類型以及鎖定鎖存器靠近發射時鐘的位置(目的地可以吸收時鐘偏差而不是源)
備用電池密度 – 檢查每個模塊的備用電池密度規格。
端口扇出 – 確保所有關鍵數據或時鐘端口的單扇出,以避免上層實例化中的過載,并確保與空間降額邊界框相關的塊/頂部相關性。
輸入端口凈長度 – 當模塊在更高級別進行倍增實例化時,確保最佳凈負載。
時序路徑深度 – 每個時鐘域檢查關鍵路徑深度,都必須確保時序收斂階段的低風險有限限制,如果在預布局 STA 中完成,這也是時序收斂風險的早期指標。
電源管理單元結構 – 單元類型和隔離器、電平轉換器、使能電平轉換器、電壓接口單元、保留器、保留存儲器、電源開關、復位隔離單元、始終開啟緩沖器、鉗位單元和總線保持單元的正確實例化。
VT 類型使用情況 – 根據每個塊和芯片總體使用情況的規范,各種 VT 類型的使用百分比。
MixVT 使用情況 – VT 規范基于時鐘或數據路徑的單個 VT 使用情況。如果使用 MixVT,則必須應用額外的 VT 懲罰。需要檢查以檢測 MixVT 并修復設計結構,或應用額外的裕量/降額。
STA 運行正確性檢查 - 簽核過程有效性
設計鏈接 – 檢查是否鏈接了所有設計、任何端口不匹配、空模塊、黑匣子等。確保每個設計元素都有定時,并且覆蓋每個時序弧線而無需進行分析覆蓋率調試至關重要。
寄生注釋覆蓋率 – 確保所有網絡都標有電阻、接地電容和耦合電容,并檢查浮動/懸空網絡。
正確的 SPEF 變換 – 當多個 SPEF 在較高級別縫合時,必須通過 PDEF 或自定義命令讀取正確的方向和塊大小,以便在基于距離的降額中使用正確的距離計算。此外,即使工具自動處理設計原點和方向,也不能相信任何具有正確計算的工具。此檢查對于涵蓋諸如未從 SPEF 文件中讀取此類位置詳細信息等問題也非常重要。
約束、分析覆蓋率和質量 – STA 分析模式下的未時鐘順序單元和未定時時序端點是每個 STA 檢查的兩個最關鍵的覆蓋范圍項目。此外,案例分析中的沖突、忽略的異常、主時鐘不傳播到生成的時鐘、任何約束不傳播。
降額和裕量覆蓋范圍 – 檢查降額應用中的電池、網絡、與過程、電壓、溫度、老化、輻射、混合 VT 使用相關的約束(設置、保持、最小脈沖寬度)。還要檢查保護帶或邊距,以了解預布局、塊特定或附加簽核悲觀情緒。
日志解析 - 最重要的簽核步驟,在豎起大拇指流片或 STA 簽核之前,必須標記、審查、驗證和關閉每個錯誤或警告。這必須在自動化機制中對 STA 的每個區塊、每次回歸都運行。沒有借口。
PBA/GBA 融合 – 大多數 PD 工具和 STA 在后臺運行 GBA,然后使用 GBA 基線執行 PBA 分析。PBA 的 100% 覆蓋率是通過各種自定義算法實現的。當工具無法收斂時,它們會回退到這些特定路徑上的 GBA 計時,并發出有關非收斂的消息。必須進行檢查以確保 100% PBA GBA 收斂,以消除悲觀情緒是時機(這無害,但不準確且耗時,關閉 GBA 時機)
STA 單位正確性 – SDC 時間單位、電容單位、電阻單位 – SDC 單位以 sdc 格式指定,從庫讀取解碼或在 STA 流程中設置。每個工具都有不同的優先級規則來解釋單位。正確的用法對于解釋 SDC 至關重要。報告單位與庫單位不同。庫單元由工具處理,而報告單元則幫助 STA 用戶以一致性和已知格式解釋報告。
STA 視圖完整性 – 檢查以確保所有功能和掃描模式以及所有 PVTRC 分析角都已根據項目規范進行分析。
STA 運行完整性 – 根據執行的所有 STA 視圖,確保每次運行正確結束,執行 STA 的所有階段,以及來自 Unix/LSF/BSUB 的作業狀態沒有意外終止,由于磁盤故障、TMP 空間、額外的許可證可用性等導致 STA 中出現任何問題。
STA 指標檢查 – 真正的 STA 檢查簽核標準時序路徑檢查 – 設置、保持、恢復、刪除、時鐘門控、數據到數據檢查。
設計規則檢查 – 最大轉換(轉換)、最大電容、最大扇出
特殊檢查 – 最小周期/時鐘周期、最小脈沖寬度、噪聲、雙時鐘。
STA 自定義檢查 – 用于高質量 STA 簽核的額外穩健性檢查
最大時鐘偏斜 – 偏斜從來都不是簽核的標準,因為它的影響已經被各種時序違規所吸收,但過度的偏斜會暴露變化建模缺陷并可能導致硅故障,因此在任何路徑中對偏斜進行合理的限制都是一個很好的做法。
過度的 Xtalk – 定時收斂的關鍵組成部分,同時損害設置/保持,對于最小脈沖寬度等檢查是致命的。加劇塊與頂部的相關性,影響共同路徑悲觀消除 (CPPR) 信用,并影響任何路徑中的小區/網絡延遲。必須在數據路徑和時鐘的耦合網絡的耦合上限或延遲或轉換時間方面設置適當的限制。
動態抖動驗證 – 對于每個時鐘域,通過將源 PLL 抖動與 CTS 網絡抖動(每個級單元 CTS 網絡抖動的均方根)復合來計算動態抖動,并根據每個時鐘域抖動規范進行驗證。僅用于高性能設計,我們非常保守地將平坦抖動數應用于所有時鐘或時鐘組。
半周期路徑 – 自定義時序報告,用于分析半周期路徑,因為它們具有半周期抖動和自定義不確定性和裕度、IP 接口、掃描路徑等。
而且這個名單是無窮無盡的——基于技術節點、公司 STA 理念、簽核所有者的偏執狂,天空是自定義 STA 檢查的極限。
未能實施上述 STA 簽核方法將導致頻繁的錯誤,對上市時間產生負面影響,導致昂貴的設計修復周期,并降低簽核過程的可信度,這是最關鍵的因素。
評論