根據(jù)中國半導(dǎo)體行業(yè)協(xié)會統(tǒng)計,集成電路設(shè)計業(yè)銷售收入2011年為473.74億元人民幣,2019年增長到3 063.5億元人民幣,2020年增至3 778.4億元人民幣,同比增長了23.3%。集成電路的高速發(fā)展足以證明其已經(jīng)成為高科技發(fā)展的基石。2000年,國務(wù)院出臺《鼓勵軟件產(chǎn)業(yè)和集成電路產(chǎn)業(yè)發(fā)展的若干政策》(國發(fā)〔2000〕18號),極大地鼓勵和推動了我國集成電路產(chǎn)業(yè)的發(fā)展。2020年,國務(wù)院發(fā)布《新時期促進集成電路產(chǎn)業(yè)和軟件產(chǎn)業(yè)高質(zhì)量發(fā)展的若干政策》(國發(fā)〔2020〕8號),再次確認(rèn)了集成電路的戰(zhàn)略發(fā)展地位。
近年來,隨著國家對電子信息產(chǎn)業(yè)的大力扶持和推進,以及讀者對集成電路設(shè)計圖書需求的激增,國內(nèi)有關(guān)數(shù)字集成電路設(shè)計的書籍也是越來越多,可以歸納為以下三類:① 國外教材翻譯類,主要翻譯國外經(jīng)典的集成電路教材。② 語言介紹類,以講述硬件描述語言為主,包括Verilog HDL和VHDL。③ 工具實現(xiàn)類,以介紹FPGA 的應(yīng)用實現(xiàn)方法為主,是對FPGA 產(chǎn)品的介紹和推廣。這些圖書既包括國外引進的版本,也包括國內(nèi)編寫的版本。數(shù)字集成電路設(shè)計不僅依賴硬件描述語言,更重要的是,設(shè)計人員需要掌握邏輯電路、數(shù)字信號系統(tǒng)和體系架構(gòu)的專業(yè)知識。設(shè)計過程中不僅要考慮數(shù)字系統(tǒng)的邏輯功能,還要考慮其物理性能。數(shù)字系統(tǒng)的邏輯功能融合了邏輯綜合、數(shù)字計算、數(shù)據(jù)路徑和邏輯控制等,而物理性能則包含面積、功耗、速度、時延和吞吐率等多方面。目前,國內(nèi)數(shù)字系統(tǒng)集成電路設(shè)計與性能優(yōu)化的圖書相對較少,這或?qū)⑹垢咝阅軘?shù)字系統(tǒng)集成化設(shè)計水平的提升受到制約。
本教材以數(shù)字邏輯為基礎(chǔ),以數(shù)字計算和數(shù)字信號體系架構(gòu)為重點,深入討論數(shù)字系統(tǒng)的設(shè)計原理;同時,從集成化的角度,重點講述邏輯綜合、時序、速度、面積和功耗等物理性能的設(shè)計優(yōu)化,通過對各物理性能的折中分析,實現(xiàn)高性能數(shù)字系統(tǒng)的設(shè)計方案。本書的具體內(nèi)容如下:
第1章,概述了在電子信息社會背景下,高級復(fù)雜數(shù)字系統(tǒng)設(shè)計所面臨的集成化挑戰(zhàn)、設(shè)計流程、發(fā)展趨勢和未來的應(yīng)用前景等。
第2章,介紹了Verilog硬件描述語言,其中包括基本結(jié)構(gòu)、模塊與聲明、數(shù)據(jù)類型與運算符、行為建模和Verilog2001設(shè)計規(guī)則等內(nèi)容。
第3章,討論了電路邏輯綜合優(yōu)化,其中包括電路面積優(yōu)化、速度優(yōu)化、模塊間接口設(shè)計、復(fù)位信號與結(jié)構(gòu)的優(yōu)化等;介紹了在實現(xiàn)相同邏輯功能的前提下,不同代碼描述對應(yīng)的不同物理結(jié)構(gòu),從而對面積、速度、功耗帶來不同的結(jié)果。
第4章,描述了數(shù)字系統(tǒng)設(shè)計常用的運算單元結(jié)構(gòu),其中包括邏輯電路中數(shù)的表示方法,以及加法器、乘法器等數(shù)值計算的基本內(nèi)容。
第5章,討論了數(shù)字信號計算、數(shù)字信號處理的基礎(chǔ),主要包括基本概念、流水線與并行處理、重定時、乘累加計算和脈動陣列等內(nèi)容。
第6章,介紹了馮·諾依曼體系架構(gòu)的重點問題狀態(tài)機與數(shù)據(jù)路徑,其中包括狀態(tài)機的概念、分類、描述方法、編碼風(fēng)格、可綜合化、性能優(yōu)化等方面的內(nèi)容, 以及數(shù)據(jù)路徑中的FSMD、寄存器級數(shù)據(jù)路徑的設(shè)計方法、調(diào)度與分配等集成化設(shè)計實例。
第7章,介紹了數(shù)字電路中的重要概念時序、同步和異步。隨著數(shù)字系統(tǒng)計算速度的提升,對電路時序的要求日趨嚴(yán)峻,為此介紹了時序參數(shù)定義、時鐘抖動與偏差、時鐘分布、延遲時間等問題,進而討論了同步與異步邏輯電路的概念和設(shè)計方法。
第8章,介紹了集成電路設(shè)計中的重點問題低功耗,包括功耗的種類、定義等概念;討論了低功耗設(shè)計的方法,如系統(tǒng)級、算法級、結(jié)構(gòu)級和電路級等。
第9章,介紹了可重構(gòu)電路FPGA 和可重構(gòu)計算,其中包括可重構(gòu)器件的現(xiàn)狀和分類、FPGA 電路結(jié)構(gòu)、可重構(gòu)系統(tǒng)等。
第10章,作為實例,介紹了當(dāng)前深度學(xué)習(xí)人工智能芯片和AES加解密芯片的設(shè)計方法,通過神經(jīng)網(wǎng)絡(luò)和加解密算法講解了復(fù)雜數(shù)字系統(tǒng)算法、架構(gòu)、電路的設(shè)計方法。
限于篇幅,有關(guān)FPGA 設(shè)計實現(xiàn)方法和ASIC設(shè)計實現(xiàn)方法的內(nèi)容,本書作為增值服務(wù)材料給出,有需要的讀者請到增值服務(wù)材料包中獲取。
本書由李洪革構(gòu)思并主筆撰寫完成,全書凝結(jié)了作者數(shù)十年集成數(shù)字系統(tǒng)設(shè)計的工作經(jīng)驗,并吸收、總結(jié)了多位學(xué)者的研究成果。參與本書編寫的人員有郭曉宇、陳宇昊、李玉亮、祝亞楠、高云飛、張子裕、薛翔宇、李巖等多名研究生。在本書的編寫過程中,得到了多方面的支持與幫助。特別感謝清華大學(xué)王志華老師、北京航空航天大學(xué)夏宇聞老師、清華大學(xué)劉雷波教授、中國科學(xué)院大學(xué)楊海鋼教授、電子科技大學(xué)周軍教授的審閱和支持。我校國家集成電路人才培養(yǎng)基地北京航空航天大學(xué)電子信息工程學(xué)院的領(lǐng)導(dǎo)和師生,一直對本書給予大力的支持和幫助。本書還獲得了北京航空航天大學(xué)教材出版基金的支持。北京航空航天大學(xué)出版社對本書的出版提供了直接幫助。在此謹(jǐn)向所有為本書的編寫、出版給予鼓勵和幫助的社會各界人士表示衷心的感謝!
盡管作者對書稿進行了多次修改和推敲,但由于集成系統(tǒng)設(shè)計的先進性和快速發(fā)展的特點,且作者學(xué)識所限,書中不當(dāng)之處在所難免,懇請使用本書的師生和社會各界人士給予批評、指正。作者的郵箱:honggeli@buaa.edu.cn。
編 者
2021年8月
第1章 集成電路系統(tǒng)概述 1
1.1 集成電路的發(fā)展史 1
1.2 集成電路的設(shè)計方法 3
1.3 集成電路的實現(xiàn)方式 7
1.4 系統(tǒng)設(shè)計發(fā)展趨勢 11
1.5 集成電路的應(yīng)用前景 14
習(xí) 題 15
第2章 Verilog硬件描述語言 16
2.1 基本概念 16
2.2 Verilog HDL的基本結(jié)構(gòu) 17
2.3 模塊與聲明 18
2.3.1 標(biāo)識符 18
2.3.2 關(guān)鍵字 18
2.3.3 模塊命名 19
2.3.4 信號命名 20
2.3.5 端口聲明 21
2.3.6 變量聲明 21
2.3.7 系統(tǒng)函數(shù) 21
2.3.8 代碼編寫規(guī)范 21
2.4 數(shù)據(jù)類型與運算符 22
2.4.1 數(shù)字聲明 22
2.4.2 數(shù)值邏輯 23
2.4.3 常量數(shù)據(jù)類型 23
2.4.4 數(shù)據(jù)類型 24
2.4.5 運算符和表達(dá)式 26
2.5 行為建模 27
2.5.1 行為描述模塊 27
2.5.2 條件語句 32
2.5.3 循環(huán)語句 33
2.5.4 任務(wù)與函數(shù) 35
2.5.5 混合設(shè)計模式 36
2.5.6 測試激勵 37
2.6 Verilog2001設(shè)計規(guī)則 41
2.7 Verilog基本模塊 44
2.7.1 組合邏輯 44
2.7.2 時序邏輯 48
習(xí) 題 51
第3章 電路邏輯優(yōu)化 52
3.1 電路面積優(yōu)化 52
3.1.1 布爾邏輯優(yōu)化 53
3.1.2 條件語句處理 55
3.1.3 資源共享 59
3.1.4 時序邏輯單元 64
3.2 高速電路設(shè)計 70
3.2.1 電路結(jié)構(gòu) 70
3.2.2 關(guān)鍵路徑 71
3.2.3 遲到信號處理 76
3.2.4 流水線 78
習(xí) 題 83
第4章 運算單元結(jié)構(gòu) 86
4.1 數(shù)的表示 86
4.2 加法器 88
4.2.1 串行進位加法器 88
4.2.2 超前進位加法器 90
4.2.3 進位選擇加法器 93
4.2.4 進位保留加法器 94
4.2.5 進位旁路加法器 96
4.3 乘法器 99
4.3.1 陣列乘法器 99
4.3.2 高速乘法器 103
4.4 有限域GF(2n)運算 113
4.4.1 定 義 113
4.4.2 有限域多項式 114
習(xí) 題 116
第5章 數(shù)字信號計算 118
5.1 基本概念 118
5.1.1 圖形表示 118
5.1.2 關(guān)鍵路徑 121
5.1.3 環(huán)路、迭代和采樣邊界 122
5.1.4 圖、樹和割集 123
5.2 流水線與并行處理 124
5.2.1 流水線 124
5.2.2 并行處理 126
5.3 重定時 128
5.3.1 重定時基礎(chǔ) 129
5.3.2 割集重定時 131
5.4 乘累加計算 135
5.4.1 卷積計算 136
5.4.2 分布式計算 137
5.4.3 位串行乘法器 140
5.5 脈動陣列 143
5.5.1 基本概念 143
5.5.2 脈動陣列設(shè)計 144
5.5.3 二維脈動陣列 149
習(xí) 題 151
第6章 狀態(tài)機與數(shù)據(jù)路徑 153
6.1 有限狀態(tài)機 153
6.1.1 基本概念 153
6.1.2 狀態(tài)機分類 155
6.1.3 狀態(tài)機描述方法 160
6.1.4 狀態(tài)機的編碼風(fēng)格 167
6.1.5 狀態(tài)機的優(yōu)化 172
6.1.6 狀態(tài)機容錯和設(shè)計準(zhǔn)則 174
6.2 數(shù)據(jù)路徑 176
6.2.1 FSMD基礎(chǔ) 176
6.2.2 寄存器傳輸級 178
6.2.3 算法狀態(tài)機圖(ASM) 179
6.2.4 FSMD設(shè)計方法 182
6.2.5 調(diào) 度 188
習(xí) 題 195
第7章 時序與同異步 197
7.1 時 序 197
7.1.1 基本概念 197
7.1.2 穩(wěn)態(tài)與亞穩(wěn)態(tài) 198
7.1.3 時鐘信號 200
7.1.4 時鐘分布 203
7.1.5 電路延遲 205
7.2 多時鐘域 206
7.2.1 同步、異步簡述 206
7.2.2 多時鐘數(shù)據(jù)同步 207
7.2.3 同步/異步復(fù)位問題 211
7.3 異步電路 215
7.3.1 異步電路基礎(chǔ) 215
7.3.2 異步邏輯C單元 216
7.3.3 握手協(xié)議 218
7.3.4 異步FIFO 223
習(xí) 題 229
第8章 低功耗設(shè)計 230
8.1 基本概念 231
8.1.1 動態(tài)開關(guān)功耗 232
8.1.2 短路功耗 233
8.1.3 靜態(tài)功耗 234
8.2 低功耗設(shè)計方法 235
8.2.1 系統(tǒng)級低功耗法 236
8.2.2 算法級低功耗法 236
8.2.3 結(jié)構(gòu)級低功耗法 237
8.2.4 電路級低功耗法 240
8.3 泄漏功耗 247
習(xí) 題 250
第9章 FPGA與可重構(gòu)計算 251
9.1 可重構(gòu)器件 251
9.1.1 可重構(gòu)器件的現(xiàn)狀 251
9.1.2 可重構(gòu)器件的分類 253
9.2 可重構(gòu)電路結(jié)構(gòu) 253
9.2.1 FPGA電路結(jié)構(gòu) 254
9.2.2 動態(tài)可重構(gòu)系統(tǒng) 265
9.2.3 可重構(gòu)AES系統(tǒng) 269
第10章 數(shù)字集成電路系統(tǒng)設(shè)計實例 274
10.1 人工智能芯片 274
10.1.1 卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ) 274
10.1.2 網(wǎng)絡(luò)參數(shù)量化 278
10.1.3 加速器模塊設(shè)計 281
10.1.4 FPGA實現(xiàn)及系統(tǒng)設(shè)計 291
10.2 AES加解密系統(tǒng) 299
10.2.1 AES算法概述 299
10.2.2 AES算法結(jié)構(gòu) 300
10.2.3 芯片內(nèi)部電路系統(tǒng)架構(gòu) 301
10.2.4 芯片設(shè)計 304
參考文獻(xiàn) 310