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