《數(shù)字邏輯原理與FPGA設(shè)計(jì)(第3版)》系統(tǒng)介紹了數(shù)字邏輯的基本原理與FPGA設(shè)計(jì)的實(shí)際應(yīng)用,并通過大量設(shè)計(jì)實(shí)例詳細(xì)介紹了基于FPGA技術(shù)的數(shù)字邏輯設(shè)計(jì)方法。
《數(shù)字邏輯原理與FPGA設(shè)計(jì)(第3版)》分為10章,包括數(shù)字系統(tǒng)、數(shù)制與編碼、邏輯代數(shù)基礎(chǔ)、組合邏輯電路的分析與設(shè)計(jì)、時(shí)序邏輯電路的分析與設(shè)計(jì)、可編程邏輯器件、VerilogHDL設(shè)計(jì)基礎(chǔ)、FPGA設(shè)計(jì)入門、數(shù)字邏輯基礎(chǔ)實(shí)驗(yàn)、數(shù)字系統(tǒng)FPGA設(shè)計(jì)實(shí)踐等,并安排習(xí)題近百道、實(shí)驗(yàn)題10個(gè)、綜合性設(shè)計(jì)課題10個(gè)。
《數(shù)字邏輯原理與FPGA設(shè)計(jì)(第3版)》中列舉的設(shè)計(jì)實(shí)例均經(jīng)QuartusⅡ13.1工具編譯通過,并在DE2-115開發(fā)板上通過了硬件測試。所提供電子資料中包含了部分習(xí)題解答、部分設(shè)計(jì)實(shí)例與實(shí)驗(yàn)題的VerilogHDL源程序,以及綜合性設(shè)計(jì)實(shí)例與設(shè)計(jì)課題參考源程序。
為便于教學(xué),《數(shù)字邏輯原理與FPGA設(shè)計(jì)(第3版)》電子資料包括35段共計(jì)680分鐘教學(xué)視頻,并配有教學(xué)課件供任課老師選用,讀者請發(fā)郵件或致電申請索取。
《數(shù)字邏輯原理與FPGA設(shè)計(jì)(第3版)》可作為普通高等院校計(jì)算機(jī)、電子、通信、自動(dòng)控制等電子與電氣類相關(guān)專業(yè)的本科教材,也可作為成人自學(xué)考試用書及電子設(shè)計(jì)工程師技術(shù)培訓(xùn)的指導(dǎo)教材,還可作為從事數(shù)字邏輯電路和系統(tǒng)設(shè)計(jì)的電子工程師的參考用書。
2019年我國電子信息產(chǎn)業(yè)銷售收入總規(guī)模已突破20萬億元,行業(yè)收入占工業(yè)總體比重超過20%。電子信息產(chǎn)業(yè)在工業(yè)經(jīng)濟(jì)中的支撐作用凸顯,更加促進(jìn)了信息化和工業(yè)化的高層次融合。物聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)、嵌入式等新興技術(shù)的不斷發(fā)展,對電子產(chǎn)業(yè)信息人才的培養(yǎng)模式提出了新的挑戰(zhàn)。教育部于2012年頒布的《高等學(xué)校本科專業(yè)目錄》將電子信息類專業(yè)進(jìn)行了整合,為各高校建立系統(tǒng)化人才培養(yǎng)體系,培養(yǎng)理論基礎(chǔ)扎實(shí)、專業(yè)技能寬、兼顧基礎(chǔ)和系統(tǒng)的高層次信息類人才給出了指導(dǎo)思想。
基于以上指導(dǎo)思想,本次修訂在第2版的基礎(chǔ)上,對第1~6章的內(nèi)容作了部分刪減和更新,并修正了部分錯(cuò)誤;將第7章的內(nèi)容全部更新,將VHDL語言改為目前流行的VerilogHDL語言;在第8章中,針對新的實(shí)驗(yàn)開發(fā)系統(tǒng)DE2115,通過具體實(shí)例介紹了FPGA設(shè)計(jì)工具QuartusⅡ13.1的基本使用方法和設(shè)計(jì)技巧;基于DE2-115系列平臺(tái),更新了第9章和第10章中有關(guān)FPGA設(shè)計(jì)的內(nèi)容。
為便于讀者自學(xué),在附錄中給出了臺(tái)灣友晶公司DE2115開發(fā)板的FPGA引腳分配表。《數(shù)字邏輯原理與FPGA設(shè)計(jì)(第3版)》是作者多年教學(xué)與科研經(jīng)驗(yàn)的總結(jié),是作者對“數(shù)字邏輯”課程體系、教學(xué)內(nèi)容、教學(xué)方法和教學(xué)手段進(jìn)行綜合改革形成的教研成果。本書從傳授知識(shí)和培養(yǎng)能力的目標(biāo)出發(fā),結(jié)合本課程教學(xué)的特點(diǎn)、難點(diǎn)和要點(diǎn),按照“數(shù)字時(shí)代、數(shù)制與編碼、邏輯代數(shù)基礎(chǔ)、組合邏輯和時(shí)序邏輯的分析與設(shè)計(jì)、VerilogHDL設(shè)計(jì)基礎(chǔ)、可編程邏輯器件及其開發(fā)工具、數(shù)字邏輯基礎(chǔ)實(shí)驗(yàn)、數(shù)字系統(tǒng)FPGA設(shè)計(jì)”的體系結(jié)構(gòu)來編寫。在內(nèi)容上,將數(shù)字邏輯與FPGA設(shè)計(jì)有機(jī)結(jié)合在一起,方便讀者快速進(jìn)入現(xiàn)代數(shù)字邏輯設(shè)計(jì)領(lǐng)域。
本課程理論教學(xué)建議48~56學(xué)時(shí),實(shí)驗(yàn)教學(xué)建議16學(xué)時(shí),另外小學(xué)期可獨(dú)立設(shè)計(jì)實(shí)驗(yàn)課,集中安排32學(xué)時(shí)的課程綜合設(shè)計(jì)實(shí)踐。具體如下:第1章4學(xué)時(shí),第2章6學(xué)時(shí),第3章8學(xué)時(shí),第4章8學(xué)時(shí),第5章8學(xué)時(shí),第6章2學(xué)時(shí),第7~9章共12學(xué)時(shí),第10章8學(xué)時(shí)。
本書由劉昌華負(fù)責(zé)統(tǒng)稿,并編寫第1~6章、第8章、第9章及附錄;班鵬新編寫第7章;周勁編寫第10章。在本書編寫過程中,作者參考了許多同行專家的專著和文章,IntelFPGA(Altera)大學(xué)計(jì)劃武漢輕工大學(xué)FPGA&SOPC聯(lián)合實(shí)驗(yàn)室、武漢輕工大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院“數(shù)字邏輯”課程組及電氣與電子工程學(xué)院“數(shù)字電路”課程組的全體老師均提出了許多寶貴意見,并給予了大力支持和鼓勵(lì),在此一并表示感謝。
書中錯(cuò)誤和不足,敬請各位專家批評(píng)指正。
劉昌華
2020年12月15日于武漢輕工大學(xué)
第1章緒論1
1.1數(shù)字時(shí)代1
1.1.1模擬信號(hào)1
1.1.2數(shù)字信號(hào)1
1.2數(shù)字系統(tǒng)2
1.2.1數(shù)字技術(shù)的優(yōu)勢2
1.2.2數(shù)字邏輯電路3
1.2.3數(shù)字系統(tǒng)的組成4
1.2.4典型的數(shù)字系統(tǒng)———計(jì)算機(jī)4
1.2.5數(shù)字邏輯的內(nèi)容及研究方法5
1.3數(shù)制及其轉(zhuǎn)換6
1.3.1數(shù)制6
1.3.2數(shù)制轉(zhuǎn)換7
1.4帶符號(hào)二進(jìn)制數(shù)的代碼表示9
1.5編碼12
1.5.1BCD碼12
1.5.2格雷碼13
1.5.3奇偶校驗(yàn)碼13
1.5.4ASCII碼14
1.6習(xí)題15
第2章邏輯代數(shù)基礎(chǔ)17
2.1邏輯代數(shù)的基本概念17
2.1.1邏輯變量及基本運(yùn)算17
2.1.2邏輯表達(dá)式18
2.1.3邏輯代數(shù)的公理18
2.2邏輯函數(shù)21
2.2.1邏輯函數(shù)的定義21
2.2.2邏輯函數(shù)的表示法21
2.2.3復(fù)合邏輯23
2.3邏輯函數(shù)的標(biāo)準(zhǔn)形式25
數(shù)字邏輯原理與FPGA設(shè)計(jì)(第3版)
??
·2·
2.3.1最小項(xiàng)及最小項(xiàng)表達(dá)式25
2.3.2最大項(xiàng)及最大項(xiàng)表達(dá)式27
2.3.3邏輯函數(shù)表達(dá)式的轉(zhuǎn)換方法28
2.3.4邏輯函數(shù)的相等32
2.4邏輯代數(shù)的重要定理33
2.4.1重要定理33
2.4.2重要定理與最小項(xiàng)、最大項(xiàng)的關(guān)系35
2.5邏輯函數(shù)化簡36
2.5.1代數(shù)化簡法36
2.5.2卡諾圖化簡法37
2.5.3具有任意項(xiàng)的邏輯函數(shù)化簡42
2.6習(xí)題43
第3章組合邏輯電路45
3.1邏輯門電路的外特性45
3.1.1簡單邏輯門電路45
3.1.2復(fù)合邏輯門電路49
3.1.3邏輯門電路的主要外特性參數(shù)51
3.1.4正邏輯與負(fù)邏輯53
3.2組合邏輯電路分析54
3.2.1組合邏輯電路的基本特點(diǎn)54
3.2.2分析流程55
3.2.3常用組合邏輯電路分析舉例56
3.3組合邏輯電路設(shè)計(jì)64
3.4設(shè)計(jì)方法的靈活運(yùn)用65
3.4.1邏輯代數(shù)法66
3.4.2利用無關(guān)項(xiàng)簡化設(shè)計(jì)67
3.4.3分析設(shè)計(jì)法69
3.5組合邏輯電路的險(xiǎn)象70
3.5.1險(xiǎn)象的產(chǎn)生與分類71
3.5.2險(xiǎn)象的判斷與消除71
3.6常用組合邏輯電路設(shè)計(jì)74
3.6.18421碼加法器74
3.6.2七段譯碼器76
3.6.3多路選擇器與多路分配器78
3.7習(xí)題81
第4章時(shí)序邏輯電路分析85
4.1時(shí)序邏輯電路模型85
??目錄
·3·
4.2觸發(fā)器86
4.2.1基本RS觸發(fā)器87
4.2.2常用觸發(fā)器90
4.2.3各類觸發(fā)器的相互轉(zhuǎn)換95
4.2.4集成觸發(fā)器的主要特性參數(shù)97
4.3同步時(shí)序邏輯電路98
4.3.1同步時(shí)序邏輯電路描述99
4.3.2同步時(shí)序邏輯電路分析103
4.4異步時(shí)序邏輯電路107
4.5常用時(shí)序邏輯電路109
4.5.1寄存器109
4.5.2計(jì)數(shù)器113
4.5.3節(jié)拍發(fā)生器117
4.6習(xí)題118
第5章時(shí)序邏輯電路設(shè)計(jì)120
5.1同步時(shí)序邏輯電路設(shè)計(jì)的基本方法120
5.2建立原始狀態(tài)125
5.3狀態(tài)化簡127
5.3.1狀態(tài)化簡的基本原理127
5.3.2完全定義狀態(tài)化簡方法129
5.4狀態(tài)編碼131
5.4.1確定存儲(chǔ)狀態(tài)所需的觸發(fā)器個(gè)數(shù)132
5.4.2用相鄰編碼法實(shí)現(xiàn)狀態(tài)編碼132
5.5確定激勵(lì)函數(shù)及輸出方程133
5.5.1選定觸發(fā)器類型133
5.5.2求激勵(lì)函數(shù)及輸出函數(shù)133
5.5.3電路的“掛起”及恢復(fù)問題134
5.6時(shí)序邏輯設(shè)計(jì)舉例136
5.6.1序列檢測器設(shè)計(jì)136
5.6.2計(jì)數(shù)器設(shè)計(jì)138
5.6.3基于MSI器件實(shí)現(xiàn)任意模值計(jì)數(shù)器140
5.7習(xí)題144
第6章可編程邏輯器件147
6.1概述147
6.1.1可編程邏輯器件的發(fā)展歷程147
6.1.2可編程邏輯器件分類149
6.1.3可編程邏輯器件的結(jié)構(gòu)150
數(shù)字邏輯原理與FPGA設(shè)計(jì)(第3版)
??
·4·
6.2簡單PLD原理151
6.2.1PLD中陣列的表示方法151
6.2.2PROM153
6.2.3PLA器件155
6.2.4PAL器件156
6.2.5GAL器件156
6.3CPLD158
6.3.1傳統(tǒng)CPLD的基本結(jié)構(gòu)158
6.3.2最新CPLD的基本結(jié)構(gòu)158
6.4FPGA159
6.4.1FPGA的基本結(jié)構(gòu)160
6.4.2Altera公司CycloneⅣ系列器件的結(jié)構(gòu)161
6.4.3最新FPGA的基本結(jié)構(gòu)163
6.5習(xí)題163
第7章VerilogHDL設(shè)計(jì)基礎(chǔ)166
7.1硬件描述語言簡介166
7.1.1概述166
7.1.2HDL語言的特點(diǎn)166
7.1.3VerilogHDL語言與VHDL語言的比較167
7.2VerilogHDL程序的基本語法168
7.2.1VerilogHDL程序結(jié)構(gòu)168
7.2.2VerilogHDL基本語法169
7.2.3VerilogHDL數(shù)據(jù)流建模176
7.2.4VerilogHDL行為建模177
7.2.5VerilogHDL結(jié)構(gòu)建模179
7.2.6VerilogHDL層次化設(shè)計(jì)181
7.3VerilogHDL基本語句182
7.3.1選擇語句182
7.3.2重復(fù)語句184
7.3.3任務(wù)和函數(shù)語句186
7.4常見組合邏輯電路的VerilogHDL設(shè)計(jì)189
7.4.1編碼器、譯碼器、選擇器189
7.4.2數(shù)值比較器192
7.5常見時(shí)序邏輯電路的VerilogHDL設(shè)計(jì)193
7.5.1觸發(fā)器193
7.5.2鎖存器和寄存器195
7.5.3計(jì)數(shù)器196
7.6有限狀態(tài)機(jī)的VerilogHDL設(shè)計(jì)198
??目錄
·5·
7.6.1有限狀態(tài)機(jī)198
7.6.2狀態(tài)機(jī)的設(shè)計(jì)198
7.6習(xí)題203
第8章FPGA設(shè)計(jì)基礎(chǔ)207
8.1EDA技術(shù)概述207
8.1.1EDA技術(shù)的發(fā)展歷程207
8.1.2EDA技術(shù)的主要內(nèi)容208
8.1.3EDA技術(shù)的發(fā)展趨勢209
8.2FPGA設(shè)計(jì)方法與設(shè)計(jì)流程209
8.2.1基于FPGA的層次化設(shè)計(jì)方法209
8.2.2基于FPGA技術(shù)的數(shù)字邏輯系統(tǒng)設(shè)計(jì)流程211
8.3FPGA設(shè)計(jì)工具———QuartusⅡ13.1214
8.3.1QuartusⅡ13.1的安裝215
8.3.2QuartusⅡ13.1設(shè)計(jì)流程216
8.4QuartusⅡ13.1設(shè)計(jì)入門219
8.4.1啟動(dòng)QuartusⅡ13.1219
8.4.2設(shè)計(jì)輸入223
8.4.3編譯綜合228
8.4.4仿真測試230
8.4.5硬件測試234
8.5習(xí)題237
第9章數(shù)字邏輯實(shí)驗(yàn)指南238
9.1基于原理圖輸入設(shè)計(jì)4位加法器238
9.1.1設(shè)計(jì)提示238
9.1.2QuartusⅡ設(shè)計(jì)流程238
9.2基于VerilogHDL文本輸入設(shè)計(jì)七段數(shù)碼顯示譯碼器240
9.2.1設(shè)計(jì)提示240
9.2.2QuartusⅡ設(shè)計(jì)流程240
9.3基于混合輸入方式的QuartusⅡ設(shè)計(jì)246
9.3.1設(shè)計(jì)要求246
9.3.2設(shè)計(jì)提示246
9.3.3QuartusⅡ設(shè)計(jì)流程246
9.4基于宏功能模塊LPM_ROM的4位乘法器設(shè)計(jì)249
9.4.1設(shè)計(jì)提示249
9.4.2QuartusⅡ設(shè)計(jì)流程250
9.5數(shù)字邏輯基礎(chǔ)型實(shí)驗(yàn)256
實(shí)驗(yàn)1多位加法器的FPGA設(shè)計(jì)256
數(shù)字邏輯原理與FPGA設(shè)計(jì)(第3版)
??
·6·
實(shí)驗(yàn)2譯碼器的FPGA設(shè)計(jì)256
實(shí)驗(yàn)3計(jì)數(shù)器的FPGA設(shè)計(jì)257
實(shí)驗(yàn)4100分頻十進(jìn)制加法計(jì)數(shù)器的FPGA設(shè)計(jì)258
實(shí)驗(yàn)5偽隨機(jī)信號(hào)發(fā)生器的FPGA設(shè)計(jì)258
實(shí)驗(yàn)6應(yīng)用VerilogHDL完成簡單組合電路的FPGA設(shè)計(jì)259
實(shí)驗(yàn)7應(yīng)用VerilogHDL完成簡單時(shí)序電路的FPGA設(shè)計(jì)260
實(shí)驗(yàn)8基于VerilogHDL語言的4位多功能加法計(jì)數(shù)器的FPGA設(shè)計(jì)260
實(shí)驗(yàn)9移位運(yùn)算器的FPGA設(shè)計(jì)261
實(shí)驗(yàn)10循環(huán)冗余校驗(yàn)(CRC)模塊的FPGA設(shè)計(jì)264
9.6習(xí)題265
第10章數(shù)字系統(tǒng)的FPGA設(shè)計(jì)實(shí)踐267
10.1數(shù)字鐘的FPGA設(shè)計(jì)268
10.1.1設(shè)計(jì)要求268
10.1.2功能描述268
10.1.3數(shù)字鐘的層次化設(shè)計(jì)方案269
10.1.4數(shù)字鐘的頂層設(shè)計(jì)和仿真274
10.1.5硬件測試275
10.2樂曲演奏電路FPGA設(shè)計(jì)277
10.2.1設(shè)計(jì)要求277
10.2.2原理描述277
10.2.3樂曲硬件演奏電路的層次化設(shè)計(jì)方案279
10.2.4樂曲硬件演奏電路頂層電路的設(shè)計(jì)和仿真283
10.2.5硬件測試283
10.3數(shù)字系統(tǒng)FPGA設(shè)計(jì)課題選編284
課題1多功能運(yùn)算器的FPGA設(shè)計(jì)284
課題2時(shí)序發(fā)生器的FPGA設(shè)計(jì)284
課題3設(shè)計(jì)一個(gè)具有三種信號(hào)燈的交通燈控制系統(tǒng)285
課題4設(shè)計(jì)一個(gè)基于FPGA芯片的彈道計(jì)時(shí)器286
課題5設(shè)計(jì)一個(gè)基于FPGA芯片的汽車尾燈控制器287
課題6數(shù)字密碼鎖的FPGA設(shè)計(jì)288
課題7電梯控制器的FPGA設(shè)計(jì)289
課題8自動(dòng)售飲料控制器的FPGA設(shè)計(jì)290
課題9出租車自動(dòng)計(jì)費(fèi)器的FPGA設(shè)計(jì)290
課題10基于FPGA的信號(hào)發(fā)生器設(shè)計(jì)291
參考文獻(xiàn)292