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