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