本書為集成電路時序約束設計的指南,指導讀者通過指定的時序要求,充分發揮IC設計的性能。本書內容包括受時序約束的關鍵環節的設計流程、綜閤時序分析、靜態時序分析和布局布綫等。本書首先詳細講解時序要求的概念,然後詳細解釋如何將其應用於設計流程中的特定階段,後通過實踐介紹在Synopsys約束設計下(SDC)業界領先約束的格式。
目 錄
譯者序
推薦序
前言
緻謝一
緻謝二
第1章 緒論 1
1.1 ASIC設計流程 1
1.2 FPGA設計流程 4
1.3 ASIC和FPGA設計流程中的時序約束 6
1.4 納米級設計中的時序約束問題 6
1.5 小結 7
第2章 綜閤的基礎知識 8
2.1 綜閤的解釋 8
2.2 時序約束在綜閤中的作用 8
2.2.1 優化 9
2.2.2 輸入重排序 9
2.2.3 輸入緩衝 10
2.2.4 輸齣緩衝 11
2.3 綜閤中麵臨的普遍問題 11
2.3.1 設計劃分 11
2.3.2 更新約束 12
2.3.3 多時鍾設計 12
2.4 小結 12
第3章 時序分析與約束 14
3.1 靜態時序分析 14
3.2 時序約束在STA中的作用 15
3.2.1 約束作為聲明 16
3.2.2 約束作為斷言 16
3.2.3 約束作為指令 16
3.2.4 約束作為異常 17
3.2.5 約束的角色變化 17
3.3 STA中的常見問題 18
3.3.1 無功能檢查 18
3.3.2 無聲明檢查 18
3.3.3 要求正確 18
3.3.4 約束中的常見錯誤 19
3.3.5 好約束的特徵 20
3.4 延遲計算與STA 21
3.5 時序路徑 21
3.5.1 起點和終點 22
3.5.2 打斷路徑 23
3.5.3 功能路徑與時序路徑 23
3.5.4 時鍾路徑與數據路徑 23
3.6 建立與保持 24
3.6.1 建立分析 24
3.6.2 保持分析 24
3.6.3 其他分析 25
3.7 裕度 25
3.8 片上變化 26
3.9 小結 27
第4章 通過Tcl擴展SDC 28
4.1 時序約束的曆史 28
4.2 Tcl基礎知識 29
4.2.1 Tcl變量 29
4.2.2 Tcl列錶 30
4.2.3 Tcl錶達式與運算符 31
4.2.4 Tcl的控製流語句 31
4.2.5 其他Tcl命令 33
4.3 SDC綜述 33
4.3.1 時序約束 34
4.3.2 麵積與功率約束 34
4.3.3 設計規則約束 34
4.3.4 接口約束 34
4.3.5 特定模式和配置約束 34
4.3.6 設計約束異常 35
4.3.7 其他命令 35
4.4 SDC中的設計查詢 35
4.5 SDC作為標準 36
4.6 小結 36
第5章 時鍾 37
5.1 時鍾周期和頻率 37
5.2 時鍾沿和占空比 38
5.3 creat_clock 39
5.3.1 定義時鍾周期 39
5.3.2 標識時鍾源 39
5.3.3 命名時鍾 40
5.3.4 指定占空比 40
5.3.5 同源多時鍾 41
5.3.6 注釋時鍾 42
5.4 虛擬時鍾 42
5.5 其他時鍾特徵 43
5.6 時鍾規格的重要性 43
5.7 小結 44
第6章 生成時鍾 45
6.1 時鍾分頻器 45
6.2 時鍾乘法器 46
6.3 時鍾門控 46
6.4 create_generated_clock 47
6.4.1 定義生成時鍾的對象 47
6.4.2 定義生成時鍾的源 48
6.4.3 時鍾命名 48
6.4.4 設定生成時鍾的特性 48
6.4.5 時鍾沿位移 51
6.4.6 多個同源時鍾 52
6.4.7 使能組閤電路路徑 53
6.5 生成時鍾相關的注意事項 54
6.6 小結 54
第7章 時鍾組 55
7.1 建立和保持時序檢查 55
7.1.1 高速至低速時鍾 56
7.1.2 低速至高速時鍾 57
7.1.3 多個時鍾於不同周期內同步 57
7.1.4 異步時鍾 58
7.2 邏輯和物理獨立時鍾 58
7.3 串擾 59
7.4 set_clock_group 60
7.5 時鍾組相關的注意事項 62
7.6 小結 62
第8章 其他時鍾特性 63
8.1 過渡時間 63
8.2 set_clock_transition 64
8.3 偏斜和抖動 65
8.4 set_clock_uncertainty 65
8.4.1 內部時鍾不確定度 66
8.4.2 交互時鍾不確定度 66
8.5 時鍾延遲 67
8.6 set_clock_latency 68
8.7 時鍾路徑的單邊性 70
8.8 set_clock_sense 71
8.9 理想網絡 72
8.10 小結 73
第9章 端口延遲 74
9.1 輸入有效 74
9.1.1 最小和最大有效時間 75
9.1.2 多時鍾 75
9.1.3 理解輸入信號的到達時間 76
9.2 輸齣要求 77
9.2.1 最小和最大要求時間 78
9.2.2 多個參考事件 78
9.2.3 理解輸齣要求時間 79
9.3 set_input_delay 79
9.3.1 時鍾規格 79
9.3.2 -level_sensitive 80
9.3.3 rise/fall 限定符 80
9.3.4 min/max限定符 81
9.3.5 -add_delay 81
9.3.6 時鍾延遲 82
9.3.7 完成輸入延遲約束 83
9.4 set_output_delay 83
9.4.1 時鍾規格 83
9.4.2 -level_sensitive 83
9.4.3 rise/fall限定符 84
9.4.4 min/max限定符 84
9.4.5 -add_delay 84
9.4.6 時鍾延遲 84
9.4.7 完成輸齣延遲約束 84
9.5 輸入延遲和輸齣延遲之間的關係 84
9.6 時序分析實例 85
9.6.1 輸入延遲:最大輸入延遲 86
9.6.2 輸入延遲:最小輸入延遲 87
9.6.3 輸齣延遲:最大輸齣延遲 87
9.6.4 輸齣延遲:最小輸齣延遲 88
9.7 負延遲 89
9.8 小結 90
第10章 完整的端口約束 91
10.1 驅動能力 91
10.2 驅動單元 93
10.3 輸入過渡 97
10.4 扇齣數 98
10.5 扇齣負載 98
10.6 負載 99
10.6.1 淨電容 99
10.6.2 調整引腳負載 99
10.6.3 負載類型 100
10.6.4 負載和扇齣負載 100
10.6.5 輸入負載 101
10.7 小結 101
第11章 虛假路徑 102
11.1 簡介 102
11.2 set_false_path 102
11.3 路徑規格 103
11.4 過渡過程規格 105
11.5 建立/保持規格
......
前 言在當今的深亞微米世界中,對於設計人員而言,時序已經成為開發專用集成電路(ASIC)或片上係統(SoC)的重要挑戰。設計工程師在設計流程的不同階段之間進行多次循環迭代,以滿足時序要求。時序不僅是芯片的響應時間,還是芯片功能的一個組成部分,可以確保其能夠與係統上其他元器件無縫地通信。這就提齣瞭問題,什麼是時序?如何指定它?本書是一本實踐指南,有助於讀者編寫和理解集成電路設計中的時序約束。通過本書讀者將學習到如何有效和正確地編寫約束,以便實現IC或FPGA設計的期望性能,包括關於約束重用的注意事項。其覆蓋範圍包括受時序約束影響的設計流程的關鍵方麵,有綜閤、靜態時序分析以及布局布綫。本書詳細說明瞭指定時序要求所需要的概念,然後將其應用於設計流程中的特定階段,所有這些都包含在Synopsys設計約束(SDC)的上下文中,SDC是業界領先的用於指定約束的格式。
我們經常從許多設計工程師那裏聽到有一些書中介紹瞭綜閤和靜態時序分析等概念,這些概念涵蓋瞭時序約束,但從來沒有詳細描述過。根據我們多年在時序特性描述、延遲計算、時序分析以及創建和驗證約束等領域的工作,本書介紹瞭指定時序要求所需的概念。
本書結構下麵是本書的結構安排。
第1~3章介紹時序分析的主題,包括其在設計周期背景下的需求。這些章節中的描述是與供應商、語言和格式無關的。
第4章提供Tcl語言的概述,因為SDC(Synopsys設計約束)是Tcl的擴展。本章還介紹SDC的概念。
可以將前4章看作入門部分。
第5~8章一同構成討論時鍾的部分,介紹如何應用與時鍾相關的約束。這些章介紹各種時鍾及其關係,以及如何在SDC中指定它們。
第9章和第10章介紹如何對其餘的(非時鍾)端口應用約束。有瞭這部分內容,就覆蓋瞭所有的主要端口。
第11~13章介紹對時序異常的需求。這些章介紹如何在SDC中正確地指定異常。
第14章和第15章涉及更專業的話題,這些概念較少論及個彆的約束。相反,它們深入瞭解設計團隊是如何管理大量的約束的,因為它們在跨流程時從前端到後端,將完整的設計劃分成電路單元,然後再整閤各個電路單元。
第16章介紹一些其他的SDC命令,這些命令可能會對時序分析産生影響。
本書還有一些命令沒有涵蓋。但是,通過本書可以對時序分析和SDC有基本瞭解,用戶可以輕鬆理解其餘的任何命令,包括SDC未來版本中可能齣現的任何擴展。
支持SDC的大多數工具通常還允許對SDC進行一些擴展,以便使用特定工具實現更高的準確性或更好的易用性。第17章概述針對Xilinx Vivado擴展的SDC時序約束。
其他資源SDC是由Synopsys公司發布的開源版本。SDC文檔和解析器可從Synopsys網站免費下載。
意見反饋我們已盡最大努力來提供準確的概念描述。也得到瞭業內一些專傢的幫助,以檢查素材的準確性。但是,如果你發現一些描述混亂或有錯誤的地方,請告知我們。
祝閱讀愉快!
Sanjay Churiwala Sridhar Gangadharan 緻 謝 一我要感謝Mark Aaldering,他首先告訴我需要一本關於SDC的書。他介紹說,越來越多的工具正在轉嚮SDC,卻沒有關於這個主題的書籍。隨著Xilinx接納瞭SDC,將有更多Xilinx FPGA的用戶需要學習SDC。
還要感謝我的朋友Sridhar Gangadharan,感謝他為編寫本書所做的努力。
感謝Springer的Charles Glaser,因為他很容易地接受瞭我們對這本書的提議。
我想把這本書獻給那些幫我理解SDC和時序約束的人,具體是我受益於他們在我職業生涯的不同階段對於時序分析主題的大量討論。這個列錶並不詳盡,一些著名的人包括Fred Revenu (Xilinx)、Greg Daughtry (Xilinx)、Nupur Gupta (ST Microelectronics)、Pankaj Jain (ST Microelectronics)、Olivia Riewer (ST Microelectronics)、K A Rajagopalan (Texas Instruments)、Subrangshu (Shubro) Das (Texas Instruments)、Satish Soman (Atrenta)、Manish Goel (Atrenta)、Shaker Sharwary (Atrenta) Pratyush Prasoon (Cadence)、Sneh Saurabh (Cadence), Girjesh Soni (Synopsys), Rohan Gaddh (目前,迴到學校),等等。
我要感謝我所有的老師,但特彆要提到印度理工學院的Swapna Banerjee教授,他在我即將畢業之時帶領我進入瞭VLSI領域。在20世紀90年代初,Dhiraj Sogani(Red Pine)、Mithilesh Jha(Masamb)、Ashutosh Varma(Cadence)和Late Nalyder Jain博士帶領我進入瞭時序領域。 然後, 2000年初,Sushil Gupta(Atrenta)和Vivek Gupta首先帶領我進入瞭SDC領域。
感謝Girjesh Soni(Synopsys)、Subrangshu(Shubro)Das(Texas Instruments)、Satish Soman(Atrenta)、Shrinivasraj Muddey(Xilinx)、Olivier Florent、Ravi Balachandran和Russell Roan(Atrenta),因為他們幫助審閱瞭本書的部分內容,確保瞭素材的準確。也要感謝編寫本書第17章的Fred Revenu(Xilinx)。還要感謝Charu Puri,他提供瞭本書中的所有插圖。
我要感謝管理部門和Xilinx的法律團隊鼓勵我參與這項活動。這些人包括Mark Aaldering、Salil Raje、Vidya Rajagopalan、Scott Hover Smoot和Sue Lynn Neoh。Ramine Roane(Xilinx)也經常鼓勵我。他唯一的抱怨是:為什麼是在2013年中期?為什麼不早一點?特彆要感謝Mike Gianfagna(Atrenta),他參與和聯係的此類任何活動幾乎都是確保所有障礙得到解決的保證。
編寫本書的信心來源於我以前齣版的書得到的積極反響。我得到的最好的反響來自Ramesh Dewangan(Atrenta),他送給瞭他女兒一本,也來自Ahmed Hemani教授(瑞典皇傢理工學院),他把這本書推薦給瞭學生。在印度,如果人們非常認可一本書,並且認為他的學生或孩子也應該學習這本書,這便是對這本書最佳的褒奬之一。感謝他們對我的這種信任。
最後很重要的一點是感謝我的傢人和朋友。他們的通力配閤和良好祝願一直是我前進的的動力。而且,我的小女兒(Lubha Churiwala – Std. VI)還幫助我隨機檢查語法和一緻性。
Sanjay Churiwala 印度海德拉巴
這本書的語言風格,坦白說,讀起來有些“乾癟”,缺乏必要的生動性和情境化描述。它像是一份冷冰冰的規格說明書,每一個句子都追求絕對的精確性,卻犧牲瞭讀者的理解流暢度。在講解一些設計約束(SDC)的關鍵概念時,例如如何設定多周期路徑(multicycle paths)或例外路徑(false paths),作者往往隻是給齣命令的語法結構和幾個簡單的例子,便草草收場。我個人更偏愛那種通過一個完整的、具有挑戰性的SoC設計案例作為載體,逐步引入不同約束的設定過程,這樣可以更好地展示約束之間的相互作用和潛在衝突。這本書更像是把工具手冊裏的“幫助文檔”直接摘錄並重組,缺乏對“為什麼”要這麼做的深入挖掘。例如,在處理異步時鍾域交叉(CDC)時,僅僅羅列瞭CDC同步器的類型和對應的SDC約束,卻很少提及在特定工藝節點下,時鍾域隔離單元(Clock Domain Crossing Isolation Cells)的切換噪聲(switching noise)對周邊時序的潛在負麵影響,以及如何通過SDC來權衡同步器延遲和噪聲抑製之間的矛盾。這種“隻知其然,而不知其所以然”的敘述方式,對於希望提升設計魯棒性的工程師來說,無疑是一種遺憾。
評分內容深度的不平衡性是這本書給我留下最深刻的印象之一。在基礎的靜態時序分析(STA)概念講解上,篇幅占得相當可觀,詳盡度足以讓一個剛接觸數字IC設計的學生建立起初步的概念框架。然而,一旦話題轉嚮到現代SoC設計中不可避免的復雜性,例如功耗敏感型設計(Power-aware design)中的時序處理,或者FinFET時代帶來的新挑戰,這本書的討論厚度便急劇下降。我特彆關注瞭關於低功耗設計(LPDDR)的時序約束部分,希望能看到關於電源門控(Power Gating)區域的時鍾域重建策略,以及如何準確建模動態電壓頻率調整(DVFS)帶來的時序裕量變化。遺憾的是,這些內容要麼被輕描淡寫地帶過,要麼乾脆就沒有涉及。這使得這本書的適用人群被限定在瞭流程的早期階段,對於那些已經在處理簽核(Sign-off)階段的復雜時序收斂問題的資深團隊來說,其價值大打摺扣。它更像是一本“入門級STA配置指南”,而不是一本涵蓋全流程、應對前沿挑戰的“設計約束聖經”。希望未來的版本能在這些高難度、高價值的議題上投入更多的筆墨,真正體現其“綜閤與時序分析”的廣度。
評分這本書的結構,雖然是綫性展開的,但在不同約束類型的關聯性處理上顯得不夠有機。作者似乎是將各種SDC命令當作孤立的模塊來介紹,比如“這裏講時鍾,那裏講輸入/輸齣延遲,接著講轉換因子”,而非將它們視為一個相互依賴、共同作用的係統來講解。在實際的芯片設計項目中,所有約束都是相互製約的,一個輸入延遲的修改可能會連鎖反應到整個PLL/DLL的反饋路徑時序。我期望這本書能夠建立一個更強的“係統觀”,例如,通過一個貫穿始終的案例,展示當設計團隊在前端RTL階段確定瞭關鍵I/O規範後,這些規範如何逐層嚮下傳遞,最終落實到後端物理實現階段的時序模型和SDC文件中。缺少這種自頂嚮下的約束傳遞邏輯的梳理,使得讀者即使掌握瞭單個命令的用法,也難以在高層次上把握全局的時序策略製定。它提供的是工具箱裏的零部件,但沒有提供如何用這些零部件搭建起一座穩固時序大廈的藍圖。對於初學者而言,這可能會導緻對約束的理解停留在“命令執行者”的層麵,而非“策略製定者”的層麵。
評分排版和圖錶的使用策略也值得商榷。這本書的視覺呈現比較單調,大量的純文本段落堆砌,使得閱讀體驗略顯枯燥,容易讓人産生閱讀疲勞。在解釋時序路徑分析的復雜邏輯時,清晰的圖形化輔助是至關重要的,但這本書中的圖錶數量相對稀少,且質量有待提高。很多關鍵的時序關係,比如建立時間(Setup)和保持時間(Hold)的裕量計算示意圖,看起來像是用最基礎的繪圖工具製作的,缺乏現代EDA工具輸齣的那種直觀性和準確性。特彆是在講解如何通過調整時鍾定義(`create_clock`)的偏差(skew)來優化某一特定路徑時,沒有提供直觀的波形圖對比,僅僅依靠文字描述來解釋這些微妙的時序差異,對於依賴視覺學習的讀者來說,學習效率無疑受到瞭製約。優秀的教材應該能將抽象的數學關係轉化為具體的視覺模型,讓讀者能“看到”時序的流逝和約束的邊界。這本書在這方麵顯得有些保守和滯後,沒有充分利用現代齣版技術來提升技術內容的傳達效率。
評分這本書的封麵設計簡直是一次視覺的“迷宮”之旅,裝幀的質感倒是挺紮實,拿在手裏沉甸甸的,讓人對接下來的內容充滿瞭“嚴肅的期待”。然而,當我真正翻開第一頁,那種預想中的技術深度和嚴謹性似乎在鋪陳上有些迷失瞭方嚮。內容組織上,作者似乎更傾嚮於將一些基礎概念進行拉伸和重復,而不是迅速切入到核心的“綜閤與時序分析”的實戰層麵。比如,關於基本時鍾樹綜閤的章節,感覺就像是在對一個已經掌握基本電路知識的工程師進行“復習指導”,細節的處理上顯得有些冗餘,缺乏那種直擊痛點的深度剖析。我期待看到的是如何處理那些在實際流片中頻頻齣現的“棘手”時序違例,例如跨工藝角的串擾延遲、復雜片上封裝的寄生效應建模,或者是如何利用更高級的時序例外處理來精細雕琢關鍵路徑。但這本書在這些方麵,給我的感覺是淺嘗輒止,更多停留在工具命令的羅列和標準流程的描述上,缺乏那種能夠讓人“茅塞頓開”的獨到見解或業界最佳實踐的深刻洞察。它更像是一本規範的“操作手冊”,而不是一本能夠引領技術方嚮的“思想指南”。對於資深工程師來說,可能需要花費大量時間去篩選和跳讀纔能找到真正有價值的信息,時間成本略高。
評分不錯的書,有點啓發,可以一讀
評分寫的很詳細,而且易懂,是時序方麵的好書!值得看一看!
評分寫的很詳細,而且易懂,是時序方麵的好書!值得看一看!
評分寫的很詳細,而且易懂,是時序方麵的好書!值得看一看!
評分寫的很詳細,而且易懂,是時序方麵的好書!值得看一看!
評分不錯的書,有點啓發,可以一讀
評分一般般,講的不是很全麵
評分一般般,講的不是很全麵
評分寫的很詳細,而且易懂,是時序方麵的好書!值得看一看!
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有