本書全面系統(tǒng)地介紹了電子設(shè)計自動化(EDA)的相關(guān)技術(shù)理論?VHDL 語言及語法?開發(fā)環(huán)境Altera Quartus Ⅱ操作流程?電子設(shè)計與優(yōu)化方法等。本書遵循循序漸進(jìn)的學(xué)習(xí)規(guī)律,突出實用性,以數(shù)字電路和系統(tǒng)設(shè)計為主線,與數(shù)字電路和系統(tǒng)的實踐教學(xué)環(huán)節(jié)及科研實際相結(jié)合,提供豐富的SOPC 設(shè)計實例。全書共9 章,內(nèi)容包括EDA 工具軟件Quartus Prime 18.0 、VHDL 語言要素、VHDL 基本結(jié)構(gòu)、VHDL 順序語句、VHDL 并行語句、數(shù)字電路設(shè)計實例、EDA 技術(shù)的綜合應(yīng)用、Verilog HDL 、SOPC 技術(shù)。本書基于Intel FPGA 產(chǎn)品及開發(fā)環(huán)境,參考了官方提供的設(shè)計資料,提供了豐富的設(shè)計案例,從理論與實踐兩個方面解決了與后續(xù)課程的銜接,具有系統(tǒng)性強、內(nèi)容新穎、適用性廣等特點。
本書可作為普通高等院校電子信息專業(yè)?通信專業(yè)及計算機專業(yè)的教材,也可作為工程技術(shù)人員的參考用書。本書配有電子課件和源代碼,歡迎選用本書作為教材的老師登錄www.cmpedu.com 注冊下載,或發(fā)郵件至jinacmp@163.com 索取。
電子設(shè)計自動化(Electronic Design Automation,EDA )是以微電子技術(shù)為物理層面,以現(xiàn)代電子設(shè)計為靈魂,以計算機軟件技術(shù)為手段,終形成集成電子系統(tǒng)或?qū)S眉呻娐罚ˋpplication Specific Integrated Circuit,ASIC )的一門新興技術(shù)。現(xiàn)代電子設(shè)計技術(shù)的核心是EDA 技術(shù)。EDA 技術(shù)就是依靠功能強大的計算機,在EDA 工具軟件平臺上,對用硬件描述語言(如VHDL)為系統(tǒng)邏輯描述手段完成的設(shè)計文件,自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化和仿真,直至下載到可編程邏輯器件CPLD/FPGA 或?qū)S眉呻娐稟SIC 芯片中,實現(xiàn)既定的電子電路設(shè)計功能。
EDA 技術(shù)的出現(xiàn)不僅更好地保證了電子工程設(shè)計各級別的仿真、調(diào)試和糾錯,為其發(fā)展帶來了強有力的技術(shù)支持,并且在電子、通信、化工、航空航天、生物等各個領(lǐng)域占有越來越重要的地位,很大程度上減輕了相關(guān)從業(yè)者的工作強度。
基于在工程領(lǐng)域中EDA 技術(shù)的實用價值,以及對EDA 教學(xué)中實踐能力和創(chuàng)新意識培養(yǎng)的重視,本書在編寫中體現(xiàn)了如下3 個特色。
1.注重實踐能力和創(chuàng)新能力的培養(yǎng)
本書的大部分章節(jié)安排了針對性較強的實驗與設(shè)計項目。針對大多數(shù)學(xué)生而言,理論的學(xué)習(xí)很枯燥,本書力圖讓大家先進(jìn)門再修行,盡量簡化理論學(xué)習(xí),在基礎(chǔ)部分安排了大量的實例和設(shè)計性的項目,在SOPC 技術(shù)部分引入了基礎(chǔ)實驗和綜合性實驗。
全書包含數(shù)十個實驗及其相關(guān)的設(shè)計項目,這些項目涉及的EDA 工具軟件類型較多、技術(shù)領(lǐng)域也較寬、知識涉獵密集、針對性強,而且自主創(chuàng)新意識的啟示性好。與書中的示例相同,所有的實驗項目都通過了EDA 工具的仿真測試及FPGA 平臺的硬件驗證。每一個實驗項目除給出詳細(xì)的實驗?zāi)康、實驗原理和實驗?nèi)容外,還有2~5 個子項目或子任務(wù)。
2.注重實用,避免大而全
一般認(rèn)為EDA 技術(shù)難學(xué)和學(xué)習(xí)費時的根源在于VHDL 語言。對此,本書做了有針對性的安排:根據(jù)電子類專業(yè)的特點,放棄計算機語言的通常教學(xué)模式,打破目前VHDL 教材通用的編排形式,以電子線路設(shè)計為基礎(chǔ),從實例的介紹中引出VHDL 語句語法內(nèi)容,通過少數(shù)幾個簡單、直觀、典型的實例,將VHDL 中核心和基本的內(nèi)容解釋清楚,讀者在很短的時間內(nèi)就能有效地掌握VHDL 的主干內(nèi)容,而不必花費大量的時間去“系統(tǒng)地”學(xué)習(xí)語法。本書從第2 章開始簡單介紹語法,第3~5 章以大家熟悉的基本電路設(shè)計實例穿插介紹常用的語法,集中體現(xiàn)了這一教學(xué)思想和教學(xué)方法,一般讀者可直接進(jìn)入這些章節(jié)的學(xué)習(xí),迅速掌握要點,并能順利地進(jìn)行相關(guān)習(xí)題的解答和實驗,為進(jìn)一步的學(xué)習(xí)與實踐奠定一個良好的基礎(chǔ)。
3.注重教學(xué)選材的靈活性和完整性相結(jié)合本書的結(jié)構(gòu)特點決定了授課學(xué)時數(shù)比較靈活,根據(jù)具體的專業(yè)特點、課程定位及學(xué)習(xí)者的前期教育程度等因素,大致在30~54 學(xué)時。
本書第6 章介紹基本的電路設(shè)計,第7 章介紹綜合性較強的設(shè)計案例。這樣第1 章介紹軟件平臺,第2~5 章介紹VHDL 語法,結(jié)合第6、7 章構(gòu)成一個整體。考慮到工業(yè)上的應(yīng)用,本書第8 章介紹Verilog HDL 語法,學(xué)生結(jié)合前7 章的學(xué)習(xí)可快速地掌握Verilog HDL 。第9 章介紹SOPC 技術(shù),這部分主要以實驗為主,希望在完成實驗基礎(chǔ)上初步掌握SOPC 技術(shù)。
考慮到EDA 技術(shù)課程的特質(zhì)和本書的特色,具體教學(xué)可以是翻轉(zhuǎn)型的,其中多數(shù)內(nèi)容,特別是實踐項目,都可放手讓學(xué)生更多地自己去查閱資料、提出問題、解決問題,乃至創(chuàng)新與創(chuàng)造;而授課教師只需做一個啟蒙者、引導(dǎo)者、鼓勵者和學(xué)生成果的檢驗者與評判者。多數(shù)授課過程只需點到為止,不必拘泥細(xì)節(jié)、面面俱到。但有一個原則,即安排的實驗學(xué)時數(shù)多多益善。
掌握EDA 技術(shù)是走向社會的基本技能。開展“EDA 技術(shù)與應(yīng)用”教學(xué),適應(yīng)了電子系統(tǒng)日趨數(shù)字化、復(fù)雜化和大規(guī)模集成化發(fā)展的需要,滿足了社會對高技能人才日益增長的需求,為創(chuàng)新型人才的培養(yǎng)打下良好基礎(chǔ)。
EDA 技術(shù)涉及面廣、內(nèi)容豐富,從教學(xué)和實用的角度看,主要應(yīng)掌握如下4 個方面的內(nèi)容:①大規(guī)?删幊踢壿嬈骷虎谟布枋稣Z言;③軟件開發(fā)工具;④實驗開發(fā)系統(tǒng)。其中,大規(guī)模可編程邏輯器件是利用EDA 技術(shù)進(jìn)行電子系統(tǒng)設(shè)計的載體,硬件描述語言是利用EDA 技術(shù)進(jìn)行電子系統(tǒng)設(shè)計的主要表達(dá)手段,軟件開發(fā)工具是利用EDA 技術(shù)進(jìn)行電子系統(tǒng)設(shè)計智能化的設(shè)計工具,實驗開發(fā)系統(tǒng)則是利用EDA 技術(shù)進(jìn)行電子系統(tǒng)設(shè)計的下載工具及硬件驗證工具。
本書各章編寫分工為:第1 章由楊沛編寫,第2~6 章由方潔編寫,第7 章由陳瑋編寫,第8 章由劉佳榆編寫,第9 章由劉江海編寫。劉江海負(fù)責(zé)全書的統(tǒng)稿。
由于編者水平有限,書中難免有不足之處,敬請讀者批評指正。
編者
目 錄
前言第1 章 EDA 工具軟件Quartus Prime 18.0 1
1.1 安裝Quartus Prime 18.0 軟件 1
1.2 Quartus Prime 18.0 軟件使用向?qū)? 7
1.3 原理圖輸入設(shè)計方法 18 習(xí)題 21
第2 章VHDL 語言要素 22
2.1 VHDL 簡介 22
2.2 VHDL 語法基礎(chǔ) 24
2.2.1 文法規(guī)則 24
2.2.2 數(shù)據(jù)對象 25
2.2.3 數(shù)據(jù)類型 28
2.2.4 運算操作符 33 習(xí)題 36
第3 章VHDL 基本結(jié)構(gòu) 37
3.1 VHDL 概述 37
3.1.1 VHDL 程序設(shè)計舉例 37
3.1.2 VHDL 程序的基本結(jié)構(gòu) 39
3.2 設(shè)計實體 39
3.3 結(jié)構(gòu)體 42
3.4 VHDL 結(jié)構(gòu)體的子結(jié)構(gòu) 44
3.4.1 塊語句結(jié)構(gòu) 45
3.4.2 進(jìn)程語句結(jié)構(gòu) 46
3.5 庫和程序包 49
3.5.1 庫 49
3.5.2 程序包 50
3.6 配置 52 習(xí)題 53
第4 章VHDL 順序語句 54
4.1 賦值語句 54
4.1.1 變量賦值語句 54
4.1.2 信號賦值語句 55
4.2 流程控制語句 56
4.2.1 IF 語句 56
4.2.2
CASE 語句 60
4.2.3
LOOP 語句 65
4.2.4
NEXT 語句 68
4.2.5
EXIT 語句 68
4.3
WAIT 語句 69
4.4
ASSERT 語句 71
4.5
RETURN 語句 72
4.6
NULL 語句 72
習(xí)題 73
第5 章VHDL 并行語句 76
5.1
進(jìn)程語句 76
5.2
塊語句 80
5.3
并行信號賦值語句 82
5.3.1
簡單信號賦值語句 82
5.3.2
條件信號賦值語句 83
5.3.3
選擇信號賦值語句 83
5.4
并行過程調(diào)用語句 84
5.4.1
過程調(diào)用語句 84
5.4.2
函數(shù)調(diào)用語句 87
5.5
元件例化語句 88
5.6
生成語句 92
習(xí)題 96
第6 章數(shù)字電路設(shè)計實例 98
6.1
觸發(fā)器 98
6.1.1
D 觸發(fā)器的設(shè)計 98
6.1.2
T 觸發(fā)器的設(shè)計 102
6.1.3
RS 觸發(fā)器的設(shè)計 103
6.2
寄存器 105
6.2.1
串入-串出寄存器 105
6.2.2
串入-并出寄存器 107
6.3
計數(shù)器 109
6.3.1
三進(jìn)制計數(shù)器 109
6.3.2
同步計數(shù)器 110
6.4
有限狀態(tài)機 112
6.5
有限狀態(tài)機的基本描述 117
6.6
Moore 型狀態(tài)機 118
6.7
Mealy 型狀態(tài)機 121
6.8
Mealy 型和Moore 型狀態(tài)機的變種 123
6.9
異步狀態(tài)機 129
目錄VII
習(xí)題 131
第7 章EDA 技術(shù)的綜合應(yīng)用 134
7.1
顯示電路設(shè)計 134
7.1.1
二輸入或門輸出顯示 134
7.1.2
三進(jìn)制計數(shù)器 135
7.1.3
二十四進(jìn)制計數(shù)器 137
7.2
多路彩燈控制器的設(shè)計 143
7.2.1
多路彩燈控制器的設(shè)計要求 143
7.2.2
多路彩燈控制器的設(shè)計方案 143
7.2.3
多路彩燈控制器各模塊的設(shè)計與實現(xiàn) 143
7.3
智力搶答器的設(shè)計 147
7.3.1
搶答器的設(shè)計要求 147
7.3.2
搶答器的設(shè)計方案 147
7.3.3
搶答器各模塊的設(shè)計與實現(xiàn) 147
7.4
量程自動轉(zhuǎn)換數(shù)字式頻率計的設(shè)計 154
7.4.1
頻率計的設(shè)計要求 154
7.4.2
頻率計的設(shè)計方案 155
7.4.3
頻率計各模塊的設(shè)計與實現(xiàn) 155
習(xí)題 163
第8 章Verilog HDL 164
8.1
Verilog HDL 程序模塊結(jié)構(gòu) 164
8.2
Verilog HDL 的詞法 166
8.2.1
空白符和注釋 166
8.2.2
常數(shù) 166
8.2.3
字符串 166
8.2.4
標(biāo)識符 166
8.2.5
關(guān)鍵字 167
8.2.6
操作符 167
8.2.7
Verilog HDL 數(shù)據(jù)對象 168
8.3
Verilog HDL 的語句 170
8.3.1
賦值語句 170
8.3.2
條件語句 171
8.3.3
循環(huán)語句 173
8.3.4
結(jié)構(gòu)聲明語句 174
8.4
不同抽象級別的Verilog HDL 模型 177
8.4.1
Verilog HDL 門級描述 177
8.4.2
Verilog HDL 的行為描述 178
8.4.3
用結(jié)構(gòu)描述實現(xiàn)電路系統(tǒng)設(shè)計 179 習(xí)題 181
第9 章SOPC 技術(shù) 182
9.1
SOPC Builder/Nios II IDE 軟件使用方法 182
9.2
SOPC 系統(tǒng)基本實驗 191
9.2.1
Hello-Led 流水燈實驗 191
9.2.2
數(shù)碼管顯示實驗 198
9.2.3
按鍵輸入中斷實驗 201
9.2.4
定時計數(shù)器實驗 205
9.2.5
串行接口通信實驗 208
9.2.6
存儲器配置實驗 210
9.2.7
4 乘4 鍵盤實驗 216
9.3
SOPC 系統(tǒng)綜合實驗 218
9.3.1
高速DAC 實驗 218
9.3.2
DDS 實驗 224
9.3.3
高速ADC 實驗 229
9.3.4
靜態(tài)數(shù)碼管顯示實驗 231
9.3.5
VGA 彩條顯示實驗 233
9.3.6
PS2 鍵盤實驗 238
9.3.7
USB 數(shù)據(jù)讀寫實驗 242
9.3.8
TFT 真彩屏實驗 243
9.3.9
SD 卡實驗 246
9.3.10
UC\OS-II 操作系統(tǒng)移植實驗 250
9.3.11
PS2 鼠標(biāo)控制實驗 256
9.3.12
音頻接口實驗 258
9.3.13
百兆以太網(wǎng)實驗 265
9.3.14 四相步進(jìn)電動機實驗 272 參考文獻(xiàn) 275