《IC芯片設計中的靜態(tài)時序分析實踐》深度介紹了芯片設計中用靜態(tài)時序分析進行時序驗證的基本知識和應用方法,涉及了包括互連線模型、時序計算和串擾等影在內(nèi)的響納米級電路設計的時序的重要問題,并詳細解釋了在不同工藝、環(huán)境、互連工藝角和片上變化(OCV)下進行時序檢查的方法。詳細介紹了層次化塊(Block)、全芯片及特殊IO接口的時序驗證,并提供了SDC、SDF及SPEF格式的完整介紹。
《IC芯片設計中的靜態(tài)時序分析實踐》適合從事芯片設計和ASIC時序驗證領(lǐng)域的專業(yè)人士,以及邏輯和芯片設計專業(yè)的學生和教師閱讀。不管是剛開始使用靜態(tài)時序分析,還是精通靜態(tài)時序分析的專業(yè)人士,本書都是優(yōu)秀的教材或參考資料。
時序(Timing), 時序, 時序! 這是數(shù)字電路工程師在設計一塊半導體芯片時z需要關(guān)注的部分。時序是什么,它是怎么被描述的,它是怎么被驗證(Verify)的? 一個大型數(shù)字電路設計團隊可能會花費數(shù)月來設計架構(gòu)、進行迭代,以達到要求的時序目標。除了功能驗證外,時序收斂(Timing Closure) 也是一個里程碑, 它決定了一塊芯片什么時候可以被交付給半導體工廠(Foundry) 生產(chǎn)。本書介紹了如何用靜態(tài)時序分析(STA)為納米級芯片進行時序驗證。
本書用通俗易懂的語言為初學者搭建了CMOS數(shù)字設計中靜態(tài)時序分析(STA)的知識框架,開篇介紹了什么是STA以及為什么要進行STA;明確學習目標后,接下來講解標準單元庫和互連寄生參數(shù)有了這兩類知識, 就可以計算單元延遲和線延遲;在搭建好STA環(huán)境后,就進入了真正的時序檢查:建立時間和保持時間;隨后進一步介紹了如何處理接口時序、如何處理串擾,以及驗證的魯棒性問題;*后,介紹了SDC、SDF、SPEF這3種*常用的文件格式。本書對于時序分析工作提供了實踐意義上的指導,適合常備案頭,實時翻閱。
原書前言
時序(Timing),時序,時序!這是數(shù)字電路工程師在設計一塊半導體芯片時最需要關(guān)注的部分。時序是什么,它是怎么被描述的,它是怎么被驗證(Verify)的?一個大型數(shù)字設計的設計團隊可能會花費數(shù)月來設計架構(gòu),進行迭代,以達到要求的時序目標。除了功能驗證外,時序收斂(Timing Closure)也是一個里程碑,它決定了一塊芯片什么時候可以被交付給半導體工廠(Foundry)生產(chǎn)。本書介紹了如何用STA(Static Timing Analysis,靜態(tài)時序分析)為納米級芯片進行時序驗證。
本書的內(nèi)容來源于我們在復雜納米級芯片時序驗證方面多年的工作經(jīng)驗。我們咨詢了很多工程師,嘗試去了解STA的各個方面以及相應的背景。不幸的是,現(xiàn)在沒有一本書可以讓工程師馬上了解STA的具體細節(jié)。芯片工程師缺少時序相關(guān)的參考指南,就是那種涵蓋從基礎(chǔ)知識到先進時序驗證方法的資料。
本書的目的是為STA領(lǐng)域的初學者以及資深工程師提供一本參考書。本書既介紹了根本的理論背景,也深入介紹了如何用STA進行時序驗證。本書涵蓋的知識點包括:單元時序(Cell Timing)、互連線(Interconnect)、時序計算(Timing Calculation)以及串擾(Crosstalk),這些都能影響納米級芯片的時序。本書介紹了時序信息是如何存儲在單元庫(Cell Libraries)中的,這些庫又是如何被綜合工具(Synthesis Tools)和 STA工具用來計算和驗證時序的。
本書所講述的主題包括了CMOS(Complementary Metal Oxide Semiconductor,互補金屬氧化物半導體)邏輯門(Logic Gates)、單元庫(Cell Library)、時序弧(Timing Arcs)、波形轉(zhuǎn)換率(Waveform Slew)、單元電容(Cell Capacitance)、時序模型(Timing Modeling)、互連線寄生參數(shù)(Interconnect Parasitic)及耦合效應(Coupling)、布局前后(Pre-Layout and Post-Layout)的互連線模型、延遲計算(Delay Calculation)、用來分析內(nèi)部時序路徑和IO(Input/Output,輸入輸出)接口的時序約束規(guī)范(Specification),還包括了先進模型的概念,比如CCS(Composite Current Source,復合電流源)時序和噪聲模型,包括動態(tài)功耗和漏電功耗的功耗模型,以及串擾效應對時序和噪聲的影響。
STA從簡單塊(Block)的驗證開始,這對剛進入本領(lǐng)域的新人很有用。然后會涉及復雜納米級設計所用到的概念,比如OCV(On-Chip Variation,片上變化)的模型、門控時鐘(Clock Gating)、半周期(Half-Cycle)和多周期(Multicycle)路徑、偽路徑(False Paths),以及源同步(Source Synchronous)IO接口時序,比如DDR(Double Data Rate,雙倍數(shù)據(jù)速率)存儲器接口。本書詳細介紹了如何在不同工藝、環(huán)境以及互連線工藝角(Corner)下進行時序分析;層次化(Hierarchical)設計方法所需要的全局時序驗證和層次化模塊時序驗證;如何建立時序分析環(huán)境以及多個具體的時序分析案例;時序檢查是如何進行的,并提供了幾個常用的場景(Scenarios)來幫助說明這一概念。也對MMMC(Multi-Mode Multi-Corner,多模式多工藝角)分析、功耗管理(Power Management),以及統(tǒng)計時序分析(Statistical Timing Analyses)進行了介紹。
本書在附錄部分提供了一些背景參考資料。這些資料完整介紹了幾種常用格式:SDC(Synopsys Design Constraints,新思設計約束)、SDF(Standard Delay Format,標準延遲格式),以及SPEF(Standard Parasitic Exchange Format,標準寄生交換格式原文中將SPEF解釋為Standard Parasitic Extraction Format,但根據(jù)IEEE Std 1481-1999,應為Standard Parasitic Exchange Format。譯文中將全部采用Standard Parasitic Exchange Format。譯者注)。本書也介紹了這些格式是如何為STA提供時序分析所需信息的。SDF提供了單元延遲和互連線延遲。SPEF提供寄生參數(shù)信息,也就是設計中所有線的電阻電容網(wǎng)絡。SDF和SPEF都是行業(yè)標準,也都有詳細介紹。SDC格式被用來提供時序規(guī)范或者待分析設計的約束。這包括進行分析的環(huán)境的規(guī)范。SDC是事實上的描述時序規(guī)范的行業(yè)標準。
IC芯片設計中的靜態(tài)時序分析實踐原 書 前 言本書的目標讀者包括芯片設計以及ASIC(Application-Specific Integrated Circuit,專用集成電路)時序驗證的專業(yè)人士,也包括在邏輯和芯片設計領(lǐng)域的學生。無論是剛接觸STA的初學者,還是熟知STA的專業(yè)人士,都可以使用本書,因為本書涵蓋了很廣的知識范圍。本書旨在用易讀易懂的解釋,搭配圖表的詳細時序報告,來介紹時序分析的方方面面。
本書可以作為具有數(shù)字邏輯設計背景知識的工程師的時序驗證課程的教材,也可以作為高校數(shù)字邏輯設計課程的第2本教科書,學生可以從中學習STA的基礎(chǔ)知識并把它運用到課程里的任意邏輯設計上。
本書特別強調(diào)并詳細解釋了所有相關(guān)的基礎(chǔ)概念,我們相信這些基礎(chǔ)概念是學習更復雜知識的基礎(chǔ)。本書既介紹了理論背景,也用相關(guān)的納米級設計的真實案例說明了STA的實際操作方法,希望為工程師和學生填補該領(lǐng)域的空白。
雖然本書主要介紹的是CMOS數(shù)字同步設計,但是,這些基本原理也可以應用到其他相關(guān)的設計上,比如FPGA和異步設計等。
本書架構(gòu)
本書先介紹基礎(chǔ)的概念,再引入更復雜的知識點:以基礎(chǔ)的時序概念作為開始,然后是常用的庫模型和延遲計算方法,接著是納米級設計的噪聲和串擾的處理方法;詳細的背景介紹完之后,會介紹使用STA進行時序驗證的幾個關(guān)鍵知識點;最后兩章會介紹更高階的話題,包括特殊IO接口的驗證、門控時鐘、時序借用(Time Borrowing)、功耗管理、多工藝角時序驗證,以及統(tǒng)計時序分析。
第1章介紹了什么是STA以及它是怎么用來時序驗證的。功耗和可靠性也要在STA中考慮。第2章介紹了CMOS邏輯的基礎(chǔ)知識以及STA相關(guān)的術(shù)語。
第3章介紹了時序相關(guān)信息是如何存儲在常見的庫單元(Library Cell)中的。雖然1個庫單元包含很多屬性,但本章只專注于那些和時序、串擾以及功耗分析相關(guān)的屬性。在納米級工藝中,互連線對時序的影響占支配地位。第4章概括介紹了互連寄生參數(shù)的各種建模技術(shù)和表示方法。
第5章解釋了在布局前后的時序驗證中,單元延遲(Cell Delay)和路徑延遲(Path Delay)是如何計算的。它擴展了之前章節(jié)提到的概念以得到整個設計的時序。
在納米級工藝中,串擾在設計的信號完整性(Signal Integrity)方面扮演了重要的角色。相關(guān)的噪聲和串擾分析,也就是毛刺分析和串擾分析,這些內(nèi)容在第6章有介紹。這些技術(shù)被用來確保ASIC在時序方面有足夠的魯棒性。
第7章是后續(xù)章節(jié)的必要準備。它介紹了時序分析的環(huán)境是如何配置的,以及如何指定時鐘、IO特性、偽路徑以及多周期路徑。第8章介紹了時序檢查,它是多種時序分析方法中的一部分。這包括了建立時間、保持時間、異步時鐘恢復時間檢查以及移除時間檢查。這些時序檢查是為了確保待分析設計的時序得到全面的驗證。
第9章的重點在特殊接口的時序驗證。比如源同步(Source Synchronous)和存儲器接口(包括DDR接口)。其他進階的且重要的知識點,如時序借用、層次化設計、功耗管理,以及統(tǒng)計時序分析都在第10章有介紹。
SDC格式在附錄A中有介紹。該格式被用來指定設計的時序約束。附錄B用一些實例詳細描述了延遲是如何被反標(Back-annotated)的。該格式用ASCII(American Standard Code for Information Interchange,美國信息交換標準代碼)的格式記錄設計的延遲。該格式被很多工具支持。附錄C介紹了SPEF格式,該格式用來描述設計的寄生電阻和寄生電容。
所有時序報告都是用PrimeTime生成的,這是來自Synopsys公司的STA工具。
致謝
我們要向eSilicon公司致以誠摯的感謝,給我們這個機會完成本書。
我們也要向那些在審查初稿時提供了大量寶貴建議的人們致以誠摯的感謝,他們是
Kit-Lam Cheong,Ravi Kurlagunda,Johnson Limqueco,Pete Jarvis,Sanjana Nair,Gilbert Nguyen,Chris Papademetrious,Pierrick Pedron,Hai Phuong,Sachin Sapatnekar,Ravi Shankar,Chris Smirga,Bill Tuohy,Yeffi Vanatta,and Hormoz Yaghutiel。
他們珍貴的反饋意見極大地提高了本書的質(zhì)量和有效性。
最后也是最重要的,我們要感謝我們的家庭,感謝他們對我們寫作本書的支持。
Rakesh Chadha博士
J.Bhasker博士
目錄
譯者的話
原書前言
第1章引言
1.1納米級設計
1.2什么是STA
1.3為什么要進行STA
1.4設計流程
1.4.1CMOS數(shù)字設計
1.4.2FPGA設計
1.4.3異步設計
1.5不同階段的STA
1.6STA的局限性
1.7功耗考慮
1.8可靠性考慮
1.9本書概要
第2章STA概念
2.1CMOS邏輯設計
2.1.1基本MOS結(jié)構(gòu)
2.1.2CMOS邏輯門
2.1.3標準單元
2.2CMOS單元建模
2.3電平翻轉(zhuǎn)波形
2.4傳播延遲
2.5波形的轉(zhuǎn)換率
2.6信號之間的偏移
2.7時序弧和單調(diào)性
2.8最小和最大時序路徑
2.9時鐘域
2.10工作條件
第3章標準單元庫
3.1引腳電容
3.2時序建模
3.2.1線性時序模型
3.2.2非線性延遲模型
3.2.3閾值規(guī)范和轉(zhuǎn)換率減免
IC芯片設計中的靜態(tài)時序分析實踐目錄3.3時序模型組合邏輯單元
3.3.1延遲和轉(zhuǎn)換率模型
3.3.2常用組合邏輯塊
3.4時序模型時序單元
3.4.1同步檢查:建立時間和保持時間
3.4.2異步檢查
3.4.3傳播延遲
3.5狀態(tài)相關(guān)的時序模型
3.6黑箱(Black Box)的接口時序模型
3.7先進時序建模
3.7.1接收引腳電容
3.7.2輸出電流
3.7.3串擾噪聲分析模型
3.7.4其他噪聲模型
3.8功耗建模
3.8.1動態(tài)功耗
3.8.2漏電功耗
3.9單元庫中的其他屬性
3.9.1面積規(guī)范
3.9.2功能規(guī)范
3.9.3SDF條件
3.10特征化和工作條件
3.10.1用k系數(shù)來減免
3.10.2庫單位
第4章互連寄生參數(shù)
4.1互連線電阻、電感和電容
4.2線負載模型
4.2.1互連樹
4.2.2指定線負載模型
4.3提取的寄生參數(shù)的表示方法
4.3.1詳細標準寄生參數(shù)格式
4.3.2精簡標準寄生參數(shù)格式
4.3.3標準寄生參數(shù)交換格式
4.4耦合電容的表示方法
4.5層次化設計方法
4.6減少關(guān)鍵線的寄生參數(shù)
第5章延遲計算
5.1概述
5.1.1延遲計算的基礎(chǔ)
5.1.2帶有互連線的延遲計算
5.2使用有效電容的單元延遲
5.3互連線延遲
5.4轉(zhuǎn)換率融合
5.5不同的轉(zhuǎn)換率閾值
5.6不同的電壓域
5.7路徑延遲計算
5.7.1組合邏輯路徑計算
5.7.2到觸發(fā)器的路徑
5.7.3多路徑
5.8裕量計算
第6章串擾和噪聲
6.1概述
6.2串擾毛刺分析
6.2.1基礎(chǔ)
6.2.2毛刺的類型
6.2.3毛刺的閾值和傳播
6.2.4多侵害者的噪聲累積
6.2.5侵害者的時序相關(guān)性
6.2.6侵害者的功能相關(guān)性
6.3串擾延遲分析
6.3.1基礎(chǔ)
6.3.2正向串擾和負向串擾
6.3.3多侵害者的累積
6.3.4侵害者和受害者的時序相關(guān)性
6.3.5侵害者和受害者的功能相關(guān)性
6.4考慮串擾延遲的時序分析
6.4.1建立時間分析
6.4.2保持時間分析
6.5計算復雜度
6.6避免噪聲的技術(shù)
第7章配置STA環(huán)境
7.1什么是STA環(huán)境
7.2指定時鐘
7.2.1時鐘不確定性
7.2.2時鐘延遲
7.3生成時鐘
7.3.1時鐘門控單元輸出端上的主時鐘實例
7.3.2使用invert選項生成時鐘
7.3.3生成時鐘的時鐘延遲
7.3.4典型的時鐘生成場景
7.4約束輸入路徑
7.5約束輸出路徑
7.6時序路徑組
7.7外部屬性建模
7.7.1驅(qū)動能力建模
7.7.2電容負載建模
7.8設計規(guī)則檢查
7.9虛擬時鐘
7.10完善時序分析
7.10.1指定無效信號
7.10.2中斷單元內(nèi)部的時序弧
7.11點對點約束
7.12路徑分割
第8章時序驗證
8.1建立時間檢查
8.1.1觸發(fā)器到觸發(fā)器的路徑
8.1.2輸入到觸發(fā)器的路徑
8.1.3觸發(fā)器到輸出的路徑
8.1.4輸入到輸出的路徑
8.1.5頻率直方圖
8.2保持時間檢查
8.2.1觸發(fā)器到觸發(fā)器的路徑
8.2.2輸入到觸發(fā)器的路徑
8.2.3觸發(fā)器到輸出的路徑
8.2.4輸入到輸出的路徑
8.3多周期路徑
8.4偽路徑
8.5半周期路徑
8.6移除時間檢查
8.7恢復時間檢查
8.8跨時鐘域的時序
8.8.1慢速時鐘域到快速時鐘域
8.8.2快速時鐘域到慢速時鐘域
8.9實例
8.9.1半周期例1
8.9.2半周期例2
8.9.3快速時鐘域到慢速時鐘域
8.9.4慢速時鐘域到快速時鐘域
8.10多倍時鐘
8.10.1整數(shù)倍
8.10.2非整數(shù)倍
8.10.3相移
第9章接口分析
9.1IO接口
9.1.1輸入接口
9.1.2輸出接口
9.1.3時序窗口內(nèi)的輸出變化
9.2SRAM接口
9.3DDR SDRAM接口
9.3.1讀周期
9.3.2寫周期
9.4視頻DAC接口
第10章魯棒性驗證
10.1片上變化(OCV)
10.1.1在最差PVT情況下帶有OCV分析
10.1.2保持時間檢查的OCV
10.2時序借用
10.2.1沒有時序借用的例子
10.2.2有時序借用的例子
10.2.3有時序違例的例子
10.3數(shù)據(jù)到數(shù)據(jù)檢查
10.4非時序路徑檢查
10.5時鐘門控檢查
10.5.1高電平有效時鐘門控
10.5.2低電平有效時鐘門控
10.5.3用多路復用器進行時鐘門控
10.5.4帶時鐘反相的時鐘門控
10.6功耗管理
10.6.1時鐘門控
10.6.2電源門控
10.6.3多種閾值單元
10.6.4阱偏置
10.7反標(Backannotation)
10.7.1SPEF
10.7.2SDF
10.8簽核(Sign-Off)方法
10.8.1工作模式
10.8.2PVT工藝角
10.8.3多模式多工藝角分析
10.9統(tǒng)計靜態(tài)時序分析
10.9.1工藝和互連偏差
10.9.2統(tǒng)計分析
10.10違例路徑的時序
10.11驗證時序約束
附錄
附錄A新思設計約束(SDC)
A.1基礎(chǔ)命令
A.2對象訪問命令
A.3時序約束
A.4環(huán)境命令
A.5多電壓命令
附錄B標準延遲格式(SDF)
B.1SDF是什么
B.2格式
B.2.1例子
B.3反標過程
B.3.1Verilog HDL
B.3.2VHDL
B.4映射例子
B.4.1傳播延遲
B.4