本書是普通高等教育"十一五”國家級規(guī)劃教材、普通高等教育精品教材。本書結合SoC設計的整體流程,對SoC設計方法學及如何實現(xiàn)進行了全面介紹。全書共15章,主要內容包括:SoC設計緒論、SoC設計流程、SoC設計與EDA工具、SoC系統(tǒng)架構設計、IP復用的設計方法、RTL代碼編寫指南、同步電路設計及其與異步信號交互的問題、綜合策略與靜態(tài)時序分析方法、SoC功能驗證、可測性設計、低功耗設計、后端設計、SoC中數(shù);旌闲盘朓P的設計與集成、I/O環(huán)的設計和芯片封裝、課程設計與實驗。書中不僅融入了很多來自工業(yè)界的實踐經驗,還介紹了SoC設計領域的最新成果,可以幫助讀者掌握工業(yè)化的解決方案,使讀者能夠及時了解SoC設計方法的最新進展。本書提供中英文電子課件、微課視頻、教學日歷、課程大綱、教學設計等資料。
魏繼增,天津大學智能與計算學部副教授。多年來以微處理器設計這一“卡脖子”問題為抓手,圍繞系統(tǒng)能力培養(yǎng),改革教學內容。已出版教材3部,主持多項產學研合作項目和教改項目。多次率隊參加全國系統(tǒng)能力培養(yǎng)大賽并獲獎。曾獲第四屆中國開源軟件大賽實踐教學一等獎、天津大學項目制課程一等獎、天津大學優(yōu)秀教材一等獎和二等獎、天津大學“教書育人”先進工作者和優(yōu)秀青年教師等榮譽稱號。
目 錄
第1章 SoC設計緒論 1
1.1 微電子技術概述 1
1.1.1 集成電路的發(fā)展 1
1.1.2 集成電路產業(yè)分工 2
1.2 SoC概述 3
1.2.1 什么是SoC 3
1.2.2 SoC的優(yōu)勢 4
1.3 SoC設計的發(fā)展趨勢及
面臨的挑戰(zhàn) 5
1.3.1 SoC設計技術的
發(fā)展與挑戰(zhàn) 5
1.3.2 SoC設計方法的
發(fā)展與挑戰(zhàn) 9
1.3.3 未來的SoC 10
本章參考文獻 10
第2章 SoC設計流程 11
2.1 軟硬件協(xié)同設計 11
2.2 基于標準單元的SoC
芯片設計流程 13
2.3 基于FPGA的SoC設計流程 17
2.3.1 FPGA的結構 17
2.3.2 基于FPGA的設計流程 21
本章參考文獻 24
第3章 SoC設計與EDA工具 25
3.1 電子系統(tǒng)級設計與工具 25
3.2 驗證的分類及相關工具 25
3.2.1 驗證方法的分類 25
3.2.2 動態(tài)驗證及相關工具 26
3.2.3 靜態(tài)驗證及相關工具 27
3.3 邏輯綜合及綜合工具 28
3.3.1 EDA工具的綜合流程 28
3.3.2 EDA工具的綜合策略 29
3.3.3 優(yōu)化策略 29
3.3.4 常用的邏輯綜合工具 30
3.4 可測性設計與工具 30
3.4.1 測試和驗證的區(qū)別 30
3.4.2 常用的可測性設計 30
3.5 布局布線與工具 33
3.5.1 EDA工具的布局
布線流程 33
3.5.2 布局布線工具的
發(fā)展趨勢 33
3.6 物理驗證及參數(shù)提取與
相關的工具 33
3.6.1 物理驗證的分類 33
3.6.2 參數(shù)提取 34
3.7 著名EDA公司與工具介紹 35
3.8 EDA工具的發(fā)展趨勢 37
本章參考文獻 38
第4章 SoC系統(tǒng)架構設計 39
4.1 SoC系統(tǒng)架構設計的
總體目標與階段 39
4.1.1 功能設計階段 40
4.1.2 應用驅動的系統(tǒng)架構
設計階段 40
4.1.3 基于平臺的系統(tǒng)架構
設計階段 40
4.2 SoC中常用的處理器 40
4.2.1 通用處理器 41
4.2.2 處理器的選擇 43
4.3 SoC中常用的總線 45
4.3.1 AMBA總線 46
4.3.2 CoreConnect總線 47
4.3.3 Wishbone總線 47
4.3.4 開放核協(xié)議(OCP) 48
4.3.5 復雜的片上總線架構 49
4.4 SoC中典型的存儲器 49
4.4.1 存儲器分類 50
4.4.2 常用的存儲器 51
4.4.3 新型存儲器 52
4.5 多核SoC的系統(tǒng)架構設計 53
4.5.1 可用的并發(fā)性 53
4.5.2 多核SoC設計中的
系統(tǒng)架構選擇 54
4.5.3 多核SoC的性能評價 55
4.5.4 幾種典型的多核SoC
系統(tǒng)架構 56
4.6 SoC中的軟件架構 59
4.7 電子系統(tǒng)級(ESL)設計 62
4.7.1 ESL發(fā)展的背景 62
4.7.2 ESL設計基本概念 63
4.7.3 ESL協(xié)同設計的流程 63
4.7.4 ESL設計的特點 64
4.7.5 ESL設計的核心
—事務級建模 66
4.7.6 事務級建模語言簡介
及設計實例 71
4.7.7 ESL設計的挑戰(zhàn) 78
本章參考文獻 79
第5章 IP復用的設計方法 80
5.1 IP的基本概念和IP分類 81
5.2 IP設計流程 82
5.2.1 設計目標 82
5.2.2 設計流程 83
5.3 IP的驗證 87
5.4 IP的選擇 89
5.5 IP交易模式 89
5.6 IP復用技術面臨的挑戰(zhàn) 90
5.7 IP標準組織 91
5.8 基于平臺的SoC設計方法 92
5.8.1 平臺的組成與分類 92
5.8.2 基于平臺的SoC
設計流程與特點 93
5.8.3 基于平臺的設計實例 94
本章參考文獻 95
第6章 RTL代碼編寫指南 96
6.1 編寫RTL代碼之前的準備 96
6.1.1 與團隊共同討論
設計中的問題 96
6.1.2 根據(jù)芯片架構準備
設計說明書 96
6.1.3 總線設計的考慮 97
6.1.4 模塊的劃分 97
6.1.5 對時鐘的處理 100
6.1.6 IP的選擇及設計
復用的考慮 100
6.1.7 對可測性的考慮 101
6.1.8 對芯片速度的考慮 101
6.1.9 對布線的考慮 101
6.2 可綜合RTL代碼編寫指南 102
6.2.1 可綜合RTL代碼的
編寫準則 102
6.2.2 利用綜合進行代碼
質量檢查 105
6.3 調用Synopsys DesignWare
來優(yōu)化設計 105
本章參考文獻 106
第7章 同步電路設計及其與
異步信號交互的問題 107
7.1 同步電路設計 107
7.1.1 同步電路的定義 107
7.1.2 同步電路的時序
收斂問題 107
7.1.3 同步電路設計的
優(yōu)點與缺陷 108
7.2 全異步電路設計 109
7.2.1 異步電路設計的
基本原理 109
7.2.2 異步電路設計的
優(yōu)點與缺點 110
7.3 異步信號與同步電路交互的
問題及其解決方法 111
7.3.1 亞穩(wěn)態(tài) 112
7.3.2 異步控制信號的同步
及其RTL實現(xiàn) 114
7.3.3 異步時鐘域的數(shù)據(jù)同步
及其RTL實現(xiàn) 119
7.4 SoC設計中的時鐘規(guī)劃策略 123
本章參考文獻 123
第8章 綜合策略與靜態(tài)時序分析方法 124
8.1 邏輯綜合 124
8.1.1 流程介紹 124
8.1.2 SoC設計中常用的
綜合策略 126
8.2 物理綜合的概念 127
8.2.1 物理綜合的產生背景 127
8.2.2 操作模式 128
8.3 實例—用Synopsys的工具
Design Compiler
進行邏輯綜合 128
8.3.1 指定庫文件 129
8.3.2 讀入設計 130
8.3.3 定義工作環(huán)境 130
8.3.4 設置約束條件 131
8.3.5 設定綜合優(yōu)化策略 133
8.3.6 設計腳本舉例 133
8.4 靜態(tài)時序分析 135
8.4.1 基本概念 135
8.4.2 實例—用Synopsys的
工具PrimeTime
進行時序分析 138
8.5 統(tǒng)計靜態(tài)時序分析 144
8.5.1 傳統(tǒng)時序分析的局限 145
8.5.2 統(tǒng)計靜態(tài)時序
分析的概念 145
8.5.3 統(tǒng)計靜態(tài)時序
分析的步驟 146
本章參考文獻 146
第9章 SoC功能驗證 147
9.1 功能驗證概述 147
9.1.1 功能驗證的概念 147
9.1.2 SoC功能驗證的挑戰(zhàn) 148
9.1.3 SoC功能驗證的
發(fā)展趨勢 148
9.2 功能驗證方法與驗證規(guī)劃 148
9.3 系統(tǒng)級功能驗證 150
9.3.1 系統(tǒng)級的功能驗證 150
9.3.2 軟硬件協(xié)同驗證 152
9.4 仿真驗證自動化 153
9.4.1 激勵的生成 154
9.4.2 響應的檢查 155
9.4.3 覆蓋率的檢測 155
9.5 基于斷言的驗證 156
9.5.1 斷言語言 157
9.5.2 基于斷言的驗證 159
9.5.3 斷言的其他用途 160
9.6 通用驗證方法學 161
本章參考文獻 165
第10章 可測性設計 166
10.1 集成電路測試概述 166
10.1.1 測試的概念和原理 166
10.1.2 測試及測試向量
的分類 166
10.1.3 自動測試設備 167
10.2 故障建模及ATPG原理 167
10.2.1 故障建模的基本概念 167
10.2.2 常見故障模型 168
10.2.3 ATPG基本原理 170
10.2.4 ATPG的工作原理 171
10.2.5 ATPG工具的使用步驟 171
10.3 可測性設計基礎 172
10.3.1 可測性的概念 172
10.3.2 可測性設計的
優(yōu)勢和不足 173
10.4 掃描測試(SCAN) 174
10.4.1 基于故障模型的可測性 174
10.4.2 掃描測試的基本概念 174
10.4.3 掃描測試原理 176
10.4.4 掃描設計規(guī)則 177
10.4.5 掃描測試的可測性
設計流程及相關
EDA工具 179
10.5 存儲器的內建自測 180
10.5.1 存儲器測試的必要性 180
10.5.2 存儲器測試方法 180
10.5.3 BIST的基本概念 182
10.5.4 存儲器的測試算法 182
10.5.5 BIST模塊
在設計中的集成 185
10.6 邊界掃描測試 186
10.6.1 邊界掃描測試原理 187
10.6.2 IEEE 1149.1標準 187
10.6.3 邊界掃描測試策略和
相關工具 191
10.7 其他DFT技術 191
10.7.1 微處理器核的
可測性設計 191
10.7.2 Logic BIST 193
10.8 DFT技術在SoC中的應用 194
10.8.1 模塊級的DFT技術 194
10.8.2 SoC中的DFT應用 195
本章參考文獻 196
第11章 低功耗設計 197
11.1 為什么需要低功耗設計 197
11.2 功耗的類型 198
11.3 低功耗設計方法 202
11.4 低功耗技術 203
11.4.1 靜態(tài)低功耗技術 203
11.4.2 動態(tài)低功耗技術 204
11.4.3 采用低功耗技術的
設計流程 208
11.4.4 低功耗SoC系統(tǒng)的
動態(tài)管理 209
11.4.5 低功耗SoC設計技術的
綜合考慮 210
11.5 低功耗分析和工具 211
11.6 UPF及低功耗設計實現(xiàn) 212
11.6.1 基于UPF的
低功耗電路綜合 212
11.6.2 UPF功耗描述
文件舉例 213
11.7 低功耗設計趨勢 213
本章參考文獻 214
第12章 后端設計 215
12.1 時鐘樹綜合 215
12.2 布局規(guī)劃 219
12.3 ECO技術 221
12.4 功耗分析 222
12.5 信號完整性的考慮 224
12.5.1 信號完整性的挑戰(zhàn) 224
12.5.2 壓降和電遷移 225
12.5.3 信號完整性問題的
預防、分析和修正 226
12.6 物理驗證 227
12.7 可制造性設計/面向良率
的設計 228
12.7.1 DFM/DFY的
基本概念 228
12.7.2 可制造性設計
驅動的方法 229
12.7.3 分辨率增強技術提高
DFM/DFY的方法 230
12.7.4 其他DFM/DFY問題
及解決方法 231
12.7.5 EDA工具對于DFM/DFY
技術的支持 233
本章參考文獻 234
第13章 SoC中數(shù)模混合信號IP的
設計與集成 235
13.1 SoC中的數(shù);旌闲盘朓P 235
13.2 數(shù);旌闲盘朓P的設計流程 235
13.3 基于SoC復用的數(shù)模
混合信號(AMS)IP包 236
13.4 數(shù);旌闲盘枺ˋMS)IP的
設計及集成要點 237
13.4.1 接口信號 237
13.4.2 模擬與數(shù)字部分的
整體布局 237
13.4.3 電平轉換器的設計 238
13.4.4 電源的布局與規(guī)劃 239
13.4.5 電源/地線上跳動
噪聲的消除 240
本章參考文獻 241
第14章 I/O環(huán)的設計和芯片封裝 242
14.1 I/O單元介紹 242
14.2 高速I/O的噪聲影響 242
14.3 靜電保護 243
14.3.1 ESD的模型及相應的
測試方法 244
14.3.2 ESD保護電路的設計 246
14.4 I/O環(huán)的設計 249
14.4.1 考慮對芯片的尺寸的
影響 249
14.4.2 考慮對芯片封裝的
影響 250
14.4.3 考慮對噪聲的影響 251
14.4.4 考慮對芯片ESD的
影響 252
14.5 SoC芯片封裝 252
14.5.1 芯片封裝的功能 252
14.5.2 芯片封裝的發(fā)展趨勢 252
14.5.3 常見的封裝技術 253
14.5.4 3D IC技術 255
14.5.5 芯片封裝的選擇 256
本章參考文獻 257
第15章 課程設計與實驗 258
15.1 基于ESL設計方法的
Motion-JPEG視頻
解碼器設計 258
15.1.1 實驗內容 258
15.1.2 實驗準備工作 259
15.1.3 SoCLib ESL仿真平臺
及MJPEG解碼
流程的介紹 261
15.1.4 實驗1 構建基于
SoCLib的單核SoC 262
15.1.5 實驗2 構建基于
SoCLib的MPSoC 269
15.1.6 實驗3 系統(tǒng)軟件開發(fā)
—嵌入式操作系統(tǒng)及
設備驅動設計 275
15.1.7 實驗4 面向MJPEG
解碼的MPSoC
系統(tǒng)優(yōu)化 276
15.2 基于RISC-V的SoC設計與驗證 277
15.2.1 實驗內容 278
15.2.2 實驗準備工作 278
15.2.3 Ariane SoC架構簡介 281
15.2.4 實驗1 Ariane SoC的
集成 284
15.2.5 實驗2 Ariane SoC
軟硬件調試 289
15.2.6 實驗3 面向特定應用的
SoC設計和實現(xiàn) 291
15.3 項目進度管理 301
15.3.1 項目任務與進度階段 301
15.3.2 進度的管理 302
本章參考文獻 307