數(shù)字SoC設(shè)計(jì)、驗(yàn)證與實(shí)例
定 價(jià):129 元
叢書名:半導(dǎo)體與集成電路關(guān)鍵技術(shù)叢書微電子與集成電路先進(jìn)技術(shù)叢書
- 作者:王衛(wèi)江薛丞博高巍張靖奇
- 出版時(shí)間:2023/9/1
- ISBN:9787111732433
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TN402
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書聚焦于數(shù)字片上系統(tǒng)(SoC)設(shè)計(jì)領(lǐng)域,從數(shù)字集成電路的發(fā)展歷程與基礎(chǔ)知識入手,首先介紹了硬件描述語言Verilog HDL的設(shè)計(jì)規(guī)則和核心EDA工具VIVADO與Design Compiler的使用方法,隨后詳細(xì)討論了數(shù)字SoC設(shè)計(jì)、驗(yàn)證過程中的關(guān)鍵技術(shù),并對難點(diǎn)問題進(jìn)行了歸納和總結(jié)。此外,本書提供了多個(gè)數(shù)字SoC設(shè)計(jì)、驗(yàn)證的實(shí)際案例,循序漸進(jìn)地向讀者展示了數(shù)字SoC從規(guī)劃、設(shè)計(jì)、仿真、驗(yàn)證再到綜合實(shí)現(xiàn)的全流程。
本書內(nèi)容由淺入深,能使讀者深刻了解數(shù)字SoC設(shè)計(jì)過程和基本方法,既適合作為微電子與集成電路專業(yè)的高年級本科生及從事數(shù)字SoC領(lǐng)域研究的研究生的教材,又可為從事相關(guān)技術(shù)的初期從業(yè)人員提供技術(shù)參考。
進(jìn)入21世紀(jì)以來,以片上系統(tǒng)(System on Chip,SoC)為代表的數(shù)字集成電路技術(shù)進(jìn)入了飛速發(fā)展階段。SoC技術(shù)經(jīng)過工業(yè)界、學(xué)術(shù)界的深入研究與反復(fù)實(shí)踐,其兼顧軟件靈活性與硬件高效性的優(yōu)勢已經(jīng)日益顯著并獲得了廣泛認(rèn)可。隨著半導(dǎo)體制造工藝技術(shù)的進(jìn)步,單顆SoC的晶體管集成規(guī)模不斷擴(kuò)大。與此同時(shí),隨著SoC技術(shù)的應(yīng)用場景變得更為廣泛,SoC所需集成的功能日趨復(fù)雜化。因此,掌握復(fù)雜SoC的設(shè)計(jì)能力尤為重要。
近年來,我國半導(dǎo)體行業(yè)暴露出“缺芯少魂”的軟肋。雖然歷經(jīng)數(shù)年的努力追趕,我國已經(jīng)基本掌握了半導(dǎo)體行業(yè)的關(guān)鍵技術(shù),但一些關(guān)鍵技術(shù)仍與世界一流水平存在差距,實(shí)現(xiàn)我國半導(dǎo)體行業(yè)的“自主可控”道阻且長。與此同時(shí),隨著我國信息技術(shù)水平的不斷深化與發(fā)展,集成電路產(chǎn)業(yè)已經(jīng)成為我國國民經(jīng)濟(jì)持續(xù)增長、高新技術(shù)不斷取得新進(jìn)展的重要支柱?梢灶A(yù)見,在未來相當(dāng)長的時(shí)間里,芯片技術(shù)仍是制約我國發(fā)展的“卡脖子”關(guān)鍵技術(shù)。然而,我國半導(dǎo)體行業(yè)面臨技術(shù)水平相對落后、關(guān)鍵技術(shù)依賴國際產(chǎn)業(yè)鏈、國內(nèi)現(xiàn)有從業(yè)人員技術(shù)水平參差不齊、國內(nèi)相關(guān)人才儲備不足的困境。在可預(yù)見的未來,我國面臨半導(dǎo)體行業(yè)與世界其他國家脫鉤的風(fēng)險(xiǎn)。因此,加快我國半導(dǎo)體行業(yè)關(guān)鍵技術(shù)人才的培養(yǎng)迫在眉睫。
目前我國缺少以工程實(shí)踐為導(dǎo)向的關(guān)于SoC技術(shù)的教材與參考書,基于多年來的科研與教學(xué)經(jīng)驗(yàn),我們發(fā)現(xiàn)國內(nèi)高等院校中數(shù)字集成電路領(lǐng)域的理論知識與工程實(shí)踐存在一定脫節(jié)。本書的編寫初衷是在數(shù)字SoC設(shè)計(jì)領(lǐng)域,架構(gòu)一座連接本科生、研究生教學(xué)課程至工業(yè)界成熟解決方案的橋梁,形成從理論知識到工程實(shí)踐的清晰脈絡(luò)。因此,本書所希望覆蓋的讀者人群包括完成微電子與集成電路專業(yè)基礎(chǔ)課程學(xué)習(xí)的高年級本科生、從事數(shù)字SoC設(shè)計(jì)方向研究的研究生與相關(guān)領(lǐng)域的初期從業(yè)人員。
數(shù)字集成電路設(shè)計(jì)并非初學(xué)者可以在短時(shí)間內(nèi)快速入門的專業(yè),一方面,它既要求從業(yè)人員具備扎實(shí)的學(xué)科基礎(chǔ)知識,以此來分析現(xiàn)有的設(shè)計(jì)案例,掌握成熟的電子設(shè)計(jì)自動(dòng)化工具;另一方面,它又要求從業(yè)者具備豐富的實(shí)踐經(jīng)驗(yàn),通過大量的工程實(shí)踐不斷加深對理論的理解。
本書的編寫風(fēng)格緊緊圍繞以上理念展開。第1章對數(shù)字集成電路與SoC進(jìn)行介紹,第2~4章關(guān)于數(shù)字SoC設(shè)計(jì)基礎(chǔ)的內(nèi)容主要面向剛剛進(jìn)入本領(lǐng)域?qū)W習(xí)的人員,如本科生、低年級研究生。第1章針對行業(yè)發(fā)展歷史與基礎(chǔ)性知識進(jìn)行了翔實(shí)的介紹,對高年級本科生專業(yè)課中與數(shù)字集成電路設(shè)計(jì)相關(guān)的內(nèi)容進(jìn)行了針對性的知識回顧。第2~4章針對數(shù)字SoC設(shè)計(jì)過程中的硬件描述語言與電子設(shè)計(jì)自動(dòng)化工具進(jìn)行了詳細(xì)的入門介紹,已經(jīng)具備數(shù)字集成電路基礎(chǔ)知識的初學(xué)者可以參考其中的案例進(jìn)行一定的初步摸索實(shí)踐。第5章針對數(shù)字SoC設(shè)計(jì)中的關(guān)鍵步驟、難點(diǎn)內(nèi)容進(jìn)行了針對性的詳細(xì)講解。該章的知識性與技術(shù)性內(nèi)容非常深入,不再贅述淺顯的知識或常見的問題,因此該章適合高年級的研究生或具備一定開發(fā)經(jīng)驗(yàn)的從業(yè)人員進(jìn)行學(xué)習(xí)和參考。第6章與第7章講述基于FPGA與ASIC的數(shù)字SoC設(shè)計(jì),以簡單的片上系統(tǒng)設(shè)計(jì)項(xiàng)目為案例,對數(shù)字SoC設(shè)計(jì)的流程進(jìn)行了講解。這兩章內(nèi)容適合已經(jīng)完成前5章學(xué)習(xí)的研究生或具備SoC設(shè)計(jì)經(jīng)驗(yàn)的從業(yè)人員進(jìn)行學(xué)習(xí)和參考。
本書凝結(jié)了北京理工大學(xué)集成電路與電子學(xué)院微電子技術(shù)研究所SoC團(tuán)隊(duì)近10年的集體智慧與經(jīng)驗(yàn),全書由王衛(wèi)江統(tǒng)稿,由王衛(wèi)江、薛丞博、高巍、張靖奇共同執(zhí)筆完成。感謝同事王興華老師、高巍老師與薛丞博老師提供數(shù)字SoC設(shè)計(jì)領(lǐng)域豐富的工程實(shí)踐經(jīng)驗(yàn)總結(jié)與多年科研教學(xué)材料。感謝來自SoC課題組的博士研究生張靖奇,碩士研究生李澤英、朱翔宇、張拓鋒、李志慧、宣卓、黃彥杰、何祥、陳任陽、孟慶旭、劉美蘭、孔繁聰、蒲康然、李鴻爍、周煒然、蔣宇杰等同學(xué)對本書的編寫和出版工作做出的積極努力。
由于篇幅有限,對于本書中提及與引用的參考文獻(xiàn)作者無法一一列出致謝,他們的工作為本書提供了強(qiáng)有力的理論和工程實(shí)踐的支撐。在此,向他們一并致以由衷的感謝!
由于時(shí)間倉促,不足與錯(cuò)誤之處望讀者批評指正!
王衛(wèi)江
2023年3月
前言
第1章數(shù)字集成電路與SoC介紹1
1.1數(shù)字集成電路技術(shù)1
1.1.1數(shù)字集成電路技術(shù)的發(fā)展歷史1
1.1.2數(shù)字集成電路技術(shù)基礎(chǔ)3
1.2SoC21
1.2.1SoC技術(shù)簡介21
1.2.2SoC設(shè)計(jì)流程24
1.2.3兩種SoC設(shè)計(jì)流程實(shí)例25
第2章數(shù)字SoC的設(shè)計(jì)基礎(chǔ)29
2.1硬件描述語言29
2.1.1硬件描述語言與軟件編程語言的區(qū)別29
2.1.2硬件描述語言的發(fā)展歷史30
2.1.3Verilog HDL的可重復(fù)性30
2.1.4硬件抽象級的模型類型31
2.2Verilog HDL基本語法31
2.2.1模塊的基本概念31
2.2.2常量及其數(shù)據(jù)類型32
2.2.3變量及其數(shù)據(jù)類型34
2.2.4運(yùn)算符及表達(dá)式35
2.2.5塊語句42
2.2.6賦值語句43
2.2.7結(jié)構(gòu)語句 44
2.2.8條件語句和循環(huán)語句45
2.2.9testbench的編寫48
2.3Verilog HDL與數(shù)字電路50
2.3.1數(shù)字電路的類型50
2.3.2Verilog HDL的可綜合與不可綜合51
2.3.3組合邏輯電路的Verilog HDL實(shí)例52
2.3.4時(shí)序邏輯電路的Verilog HDL實(shí)例53
2.3.5狀態(tài)機(jī)的Verilog HDL實(shí)例55
第3章FPGA開發(fā)工具——VIVADO基礎(chǔ)入門59
3.1FPGA與VIVADO基本介紹59
3.1.1FPGA基礎(chǔ)原理介紹59
3.1.2以Xilinx7系列為例的 FPGA 內(nèi)部結(jié)構(gòu)簡介60
3.1.3VIVADO操作界面簡介67
3.2VIVADO中的仿真72
3.2.1仿真的含義72
3.2.2仿真的分類72
3.3VIVADO中的綜合基礎(chǔ)72
3.3.1綜合的含義72
3.3.2綜合策略介紹73
3.4VIVADO中的實(shí)現(xiàn)基礎(chǔ)77
3.4.1實(shí)現(xiàn)的含義77
3.4.2實(shí)現(xiàn)的過程簡介78
3.5VIVADO中的約束管理81
3.5.1約束的含義81
3.5.2創(chuàng)建約束的兩種方式82
3.6VIVADO中的IP核86
3.6.1IP核的概念86
3.6.2IP核的分類86
3.7VIVADO示例——并行乘法器設(shè)計(jì)、仿真、綜合及其IP核的定制與調(diào)用89
3.7.1四位二進(jìn)制并行乘法器設(shè)計(jì)原理89
3.7.2四位并行乘法器代碼編寫以及分析90
3.7.3仿真設(shè)計(jì)文件代碼編寫92
3.7.4在VIVADO軟件中進(jìn)行乘法器設(shè)計(jì)92
3.7.5在VIVADO軟件中進(jìn)行仿真操作100
3.7.6在VIVADO軟件中進(jìn)行綜合操作107
3.7.7并行乘法器IP核的定制108
3.7.8并行乘法器IP核的調(diào)用115
3.8VIVADO示例——全流程實(shí)現(xiàn)基于7Z-Lite開發(fā)板的流水燈功能119
3.8.1流水燈代碼編寫119
3.8.2流水燈代碼的行為級仿真120
3.8.3綜合及引腳約束121
3.8.4流水燈實(shí)現(xiàn)過程122
3.8.5流水燈配置文件生成與下載125
第4章Design Compiler的使用127
4.1Design Compiler介紹127
4.1.1ASIC全流程127
4.1.2Design Compiler流程概述128
4.1.3Design Compiler配置129
4.2Synopsys工藝庫使用133
4.2.1什么是工藝庫133
4.2.2庫的結(jié)構(gòu)134
4.2.3庫類135
4.2.4庫級屬性135
4.2.5環(huán)境描述137
4.2.6單元描述142
4.2.7延時(shí)模型與計(jì)算143
4.3設(shè)計(jì)與環(huán)境約束145
4.3.1環(huán)境約束145
4.3.2設(shè)計(jì)約束149
4.3.3時(shí)鐘約束154
4.3.4綜合示例156
4.4優(yōu)化設(shè)計(jì)159
4.4.1DC的兩種綜合模式159
4.4.2DC自動(dòng)優(yōu)化的三大階段160
4.4.3結(jié)構(gòu)級優(yōu)化161
4.4.4邏輯級優(yōu)化164
4.4.5門級優(yōu)化166
4.4.6多個(gè)實(shí)例解析167
4.4.7編譯設(shè)計(jì)167
4.4.8層次劃分169
4.4.9優(yōu)化時(shí)鐘網(wǎng)絡(luò)171
4.4.10優(yōu)化面積172
第5章高級數(shù)字SoC設(shè)計(jì)與驗(yàn)證173
5.1時(shí)鐘域173
5.1.1時(shí)鐘域的基本概念173
5.1.2同步與異步174
5.1.3門控時(shí)鐘180
5.1.4跨時(shí)鐘域184
5.1.5非理想時(shí)鐘194
5.2靜態(tài)時(shí)序分析196
5.2.1靜態(tài)時(shí)序分析基本概念196
5.2.2靜態(tài)時(shí)序分析相關(guān)參數(shù)197
5.2.3時(shí)序路徑201
5.2.4關(guān)鍵參數(shù)計(jì)算202
5.2.5時(shí)序違例的修復(fù)方法202
5.2.6FPGA時(shí)序分析206
5.3數(shù)字SoC驗(yàn)證211
5.3.1驗(yàn)證的基本概念 211
5.3.2UVM驗(yàn)證方法學(xué)212
5.3.3驗(yàn)證的策略219
5.3.4驗(yàn)證的方法225
5.3.5驗(yàn)證的評估227
5.3.6驗(yàn)證案例228
第6章基于FPGA的數(shù)字SoC設(shè)計(jì)243
6.1設(shè)計(jì)需求243
6.2設(shè)計(jì)方案243
6.2.1SoC整體架構(gòu)243
6.2.2串口簡介244
6.2.3AMBA總線簡介250
6.2.4ARM Cortex-M0+微處理器簡介261
6.3系統(tǒng)設(shè)計(jì)265
6.3.1系統(tǒng)硬件搭建265
6.3.2C語言控制程序編寫268
6.4功能仿真271
6.4.1UART模塊仿真271
6.4.2掛載于APB的UART模塊仿真278
6.4.3基于Cortex-M0+的SoC仿真278
6.5SoC綜合與布局布線281
第7章AES加密模塊設(shè)計(jì)285
7.1AES算法簡介285
7.1.1AES加密算法原理285
7.1.2AES加密模塊算法實(shí)現(xiàn)288
7.2AES算法硬件加速模塊設(shè)計(jì)292
7.2.1整體接口設(shè)計(jì)292
7.2.2頂層模塊設(shè)計(jì)293
7.2.3輸入模塊接口設(shè)計(jì)295
7.2.4輸入模塊狀態(tài)機(jī)設(shè)計(jì)295
7.2.5加密核模塊接口設(shè)計(jì)298
7.2.6加密核模塊299
7.2.7輸出模塊接口設(shè)計(jì)305
7.2.8輸出模塊設(shè)計(jì)305
7.3AES算法硬件加速模塊仿真307
7.3.1Testbench編寫307
7.3.2ModelSim仿真308
7.3.3仿真結(jié)果分析315
7.3.4ModelSim仿真中可能出現(xiàn)的問題316
7.3.5其他ModelSim常用操作318
7.4AES算法硬件加速模塊綜合319
7.4.1腳本文件介紹319
7.4.2設(shè)計(jì)文件修改324
7.4.3Design Compiler綜合操作325
7.4.4綜合結(jié)果分析329
參考文獻(xiàn)334