本書(shū)根據(jù)EDA課程教學(xué)要求,以提高數(shù)字設(shè)計(jì)能力為目的,系統(tǒng)闡述FPGA數(shù)字系統(tǒng)開(kāi)發(fā)的相關(guān)知識(shí),主要內(nèi)容包括EDA技術(shù)概述、FPGA/CPLD器件、VHDL硬件描述語(yǔ)言等。全書(shū)以Quartus Prime、ModelSim等軟件為平臺(tái),以VHDL’87和VHDL’93語(yǔ)言標(biāo)準(zhǔn)為依據(jù),基于DE2-115實(shí)驗(yàn)平臺(tái),以可綜合的設(shè)計(jì)為重點(diǎn),通過(guò)大量經(jīng)過(guò)驗(yàn)證的數(shù)字設(shè)計(jì)實(shí)例,闡述數(shù)字系統(tǒng)設(shè)計(jì)的方法與技術(shù),由淺入深地介紹VHDL工程開(kāi)發(fā)的知識(shí)與技能。
王金明,男,1972年5月出生,博士,現(xiàn)為解放軍陸軍工程大學(xué)副教授、碩士生導(dǎo)師。曾獲軍隊(duì)科技進(jìn)步一等獎(jiǎng)1項(xiàng),軍隊(duì)科技進(jìn)步二等獎(jiǎng)3項(xiàng),軍隊(duì)科技進(jìn)步三等獎(jiǎng)5項(xiàng),獲軍隊(duì)級(jí)教學(xué)成果二等獎(jiǎng)1項(xiàng);獲國(guó)家發(fā)明專利授權(quán)2項(xiàng),獲軟件著作授權(quán)1項(xiàng);發(fā)表論文80余篇,其中SCI、EI收錄30余篇;主編教材多部,并入選"十一五”國(guó)家級(jí)規(guī)劃教材和"十二五”國(guó)家級(jí)規(guī)劃教材;2013年獲軍隊(duì)院校育才獎(jiǎng)銀獎(jiǎng);2014年由國(guó)家留學(xué)基金委資助,在美國(guó)威斯康星大學(xué)麥迪遜分校訪問(wèn)研究1年;指導(dǎo)本科生參加全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽,共獲得全國(guó)一等獎(jiǎng)8項(xiàng)。
第1章 EDA技術(shù)概述 1
1.1 EDA技術(shù)及其發(fā)展 1
1.2 Top-down設(shè)計(jì)與IP核復(fù)用 4
1.2.1 Top-down設(shè)計(jì) 4
1.2.2 Bottom-up設(shè)計(jì) 5
1.2.3 IP復(fù)用技術(shù)與SoC 5
1.3 數(shù)字設(shè)計(jì)的流程 7
1.3.1 設(shè)計(jì)輸入 8
1.3.2 綜合 9
1.3.3 布局布線 9
1.3.4 仿真 10
1.3.5 編程配置 10
1.4 常用的EDA軟件工具 10
1.5 EDA技術(shù)的發(fā)展趨勢(shì) 14
習(xí)題1 15
第2章 FPGA/CPLD器件 16
2.1 PLD器件概述 16
2.1.1 PLD器件的發(fā)展歷程 16
2.1.2 PLD器件的分類 17
2.2 PLD的基本原理與結(jié)構(gòu) 19
2.2.1 PLD器件的基本結(jié)構(gòu) 19
2.2.2 PLD電路的表示方法 20
2.3 低密度PLD的原理與結(jié)構(gòu) 21
2.4 CPLD的原理與結(jié)構(gòu) 25
2.4.1 宏單元結(jié)構(gòu) 25
2.4.2 典型CPLD的結(jié)構(gòu) 26
2.5 FPGA的原理與結(jié)構(gòu) 29
2.5.1 查找表結(jié)構(gòu) 29
2.5.2 典型FPGA的結(jié)構(gòu) 32
2.5.3 Altera的Cyclone IV器件結(jié)構(gòu) 35
2.6 FPGA/CPLD的編程元件 38
2.7 邊界掃描測(cè)試技術(shù) 42
2.8 FPGA/CPLD的編程與配置 43
2.8.1 在系統(tǒng)可編程 43
2.8.2 FPGA器件的配置 45
2.8.3 Cyclone IV器件的編程 46
2.9 FPGA/CPLD器件概述 48
2.10 FPGA/CPLD的發(fā)展趨勢(shì) 52
習(xí)題2 52
第3章 Quartus Prime使用指南 54
3.1 Quartus Prime原理圖設(shè)計(jì) 55
3.1.1 半加器原理圖設(shè)計(jì)輸入 55
3.1.2 1位全加器設(shè)計(jì)輸入 60
3.1.3 1位全加器的編譯 61
3.1.4 1位全加器的仿真 63
3.1.5 1位全加器的下載 68
3.2 基于IP核的設(shè)計(jì) 71
3.2.1 用LPM_COUNTER設(shè)計(jì)模24方向可控計(jì)數(shù)器 72
3.2.2 用LPM_ROM模塊實(shí)現(xiàn)4×4無(wú)符號(hào)數(shù)乘法器 79
3.3 SignalTap II的使用方法 86
3.4 Quartus Prime的優(yōu)化設(shè)置與時(shí)序分析 91
習(xí)題3 95
實(shí)驗(yàn)與設(shè)計(jì) 97
3-1 8位帶符號(hào)乘法器 97
3-2 用常量模塊實(shí)現(xiàn)補(bǔ)碼轉(zhuǎn)換為幅度碼的電路 101
第4章 VHDL設(shè)計(jì)初步 103
4.1 VHDL簡(jiǎn)介 103
4.2 VHDL組合電路設(shè)計(jì) 104
4.2.1 用VHDL設(shè)計(jì)基本組合電路 104
4.2.2 用VHDL設(shè)計(jì)加法器 106
4.3 VHDL時(shí)序電路設(shè)計(jì) 108
4.3.1 用VHDL設(shè)計(jì)D觸發(fā)器 108
4.3.2 用VHDL設(shè)計(jì)計(jì)數(shù)器 111
習(xí)題4 114
實(shí)驗(yàn)與設(shè)計(jì) 115
4-1 Synplify Pro綜合器的使用方法 115
第5章 VHDL結(jié)構(gòu)與要素 120
5.1 實(shí)體 120
5.1.1 類屬參數(shù)說(shuō)明 120
5.1.2 端口說(shuō)明 122
5.2 結(jié)構(gòu)體 122
5.3 VHDL庫(kù)和程序包 123
5.3.1 庫(kù) 124
5.3.2 程序包 126
5.4 配置 128
5.5 子程序 131
5.5.1 過(guò)程 132
5.5.2 函數(shù) 134
5.6 VHDL文字規(guī)則 136
5.6.1 標(biāo)識(shí)符 136
5.6.2 數(shù)字 137
5.6.3 字符串 137
5.7 數(shù)據(jù)對(duì)象 138
5.7.1 常量 138
5.7.2 變量 139
5.7.3 信號(hào) 139
5.7.4 文件 140
5.8 VHDL數(shù)據(jù)類型 141
5.8.1 預(yù)定義數(shù)據(jù)類型 142
5.8.2 用戶自定義數(shù)據(jù)類型 145
5.8.3 數(shù)據(jù)類型的轉(zhuǎn)換 148
5.9 VHDL運(yùn)算符 150
5.9.1 邏輯運(yùn)算符 150
5.9.2 關(guān)系運(yùn)算符 151
5.9.3 算術(shù)運(yùn)算符 152
5.9.4 并置運(yùn)算符 153
5.9.5 運(yùn)算符重載 153
習(xí)題5 154
實(shí)驗(yàn)與設(shè)計(jì) 155
5-1 用altpll鎖相環(huán)IP核實(shí)現(xiàn)倍頻和分頻 155
第6章 VHDL基本語(yǔ)句 161
6.1 順序語(yǔ)句 161
6.1.1 賦值語(yǔ)句 161
6.1.2 IF語(yǔ)句 161
6.1.3 CASE語(yǔ)句 167
6.1.4 LOOP語(yǔ)句 170
6.1.5 NEXT與EXIT語(yǔ)句 172
6.1.6 WAIT語(yǔ)句 173
6.1.7 子程序調(diào)用語(yǔ)句 175
6.1.8 斷言語(yǔ)句 175
6.1.9 REPORT語(yǔ)句 176
6.1.10 NULL語(yǔ)句 177
6.2 并行語(yǔ)句 178
6.2.1 并行信號(hào)賦值語(yǔ)句 178
6.2.2 進(jìn)程語(yǔ)句 183
6.2.3 塊語(yǔ)句 186
6.2.4 元件例化語(yǔ)句 187
6.2.5 生成語(yǔ)句 189
6.2.6 并行過(guò)程調(diào)用語(yǔ)句 192
6.3 屬性說(shuō)明與定義語(yǔ)句 193
6.3.1 數(shù)據(jù)類型屬性 193
6.3.2 數(shù)組屬性 194
6.3.3 信號(hào)屬性 195
習(xí)題6 196
實(shí)驗(yàn)與設(shè)計(jì) 196
6-1 4×4矩陣鍵盤(pán)檢測(cè)電路 196
6-2 FIFO緩存器設(shè)計(jì) 199
第7章 VHDL設(shè)計(jì)進(jìn)階 204
7.1 行為描述 204
7.2 數(shù)據(jù)流描述 205
7.3 結(jié)構(gòu)描述 206
7.3.1 用結(jié)構(gòu)描述設(shè)計(jì)1位全加器 206
7.3.2 用結(jié)構(gòu)描述設(shè)計(jì)4位加法器 208
7.3.3 用結(jié)構(gòu)描述設(shè)計(jì)8位加法器 209
7.4 三態(tài)邏輯設(shè)計(jì) 211
7.5 分頻器設(shè)計(jì) 213
7.5.1 占空比為50%的奇數(shù)分頻 213
7.5.2 半整數(shù)分頻 215
7.5.3 數(shù)控分頻器 217
7.6 音樂(lè)演奏電路 218
7.6.1 音樂(lè)演奏實(shí)現(xiàn)的方法 218
7.6.2 實(shí)現(xiàn)與下載 220
習(xí)題7 223
實(shí)驗(yàn)與設(shè)計(jì) 224
7-1 數(shù)字表決器 224
7-2 數(shù)字跑表 227
第8章 VHDL有限狀態(tài)機(jī)設(shè)計(jì) 233
8.1 有限狀態(tài)機(jī) 233
8.1.1 有限狀態(tài)機(jī)的描述 233
8.1.2 枚舉數(shù)據(jù)類型 236
8.2 有限狀態(tài)機(jī)的描述方式 237
8.2.1 三進(jìn)程表述方式 238
8.2.2 雙進(jìn)程表述方式 239
8.2.3 單進(jìn)程表述方式 241
8.3 狀態(tài)編碼 244
8.3.1 常用的編碼方式 244
8.3.2 用ATTRIBUTE指定編碼方式 245
8.3.3 用常量進(jìn)行編碼 247
8.4 有限狀態(tài)機(jī)設(shè)計(jì)要點(diǎn) 249
8.4.1 起始狀態(tài)的選擇和復(fù)位 249
8.4.2 多余狀態(tài)的處理 251
習(xí)題8 252
實(shí)驗(yàn)與設(shè)計(jì) 253
8-1 流水燈控制器 253
8-2 狀態(tài)機(jī)A/D采樣控制電路 255
第9章 VHDL數(shù)字設(shè)計(jì)與優(yōu)化 258
9.1 流水線設(shè)計(jì)技術(shù) 258
9.2 資源共享 261
9.3 VGA圖像的顯示與控制 265
9.3.1 VGA圖像顯示原理與時(shí)序 265
9.3.2 VGA圖像顯示與控制的實(shí)現(xiàn) 269
9.4 數(shù)字過(guò)零檢測(cè)和等精度頻率測(cè)量 276
9.4.1 數(shù)字過(guò)零檢測(cè) 276
9.4.2 等精度頻率測(cè)量 278
9.4.3 數(shù)字測(cè)量系統(tǒng) 280
習(xí)題9 282
實(shí)驗(yàn)與設(shè)計(jì) 284
9-1 字符液晶顯示控制器設(shè)計(jì) 284
第10章 VHDL的Test Bench仿真 291
10.1 VHDL仿真概述 291
10.2 VHDL測(cè)試平臺(tái) 292
10.2.1 用VHDL描述仿真激勵(lì)信號(hào) 292
10.2.2 用TEXTIO進(jìn)行仿真 296
10.3 ModelSim SE仿真實(shí)例 299
10.3.1 圖形界面仿真方式 302
10.3.2 命令行仿真方式 305
10.3.3 ModelSim SE時(shí)序仿真 307
習(xí)題10 309
實(shí)驗(yàn)與設(shè)計(jì) 309
10-1 用ModelSim SE仿真奇偶檢測(cè)電路 309
第11章 VHDL設(shè)計(jì)實(shí)例 312
11.1 m序列產(chǎn)生器 312
11.1.1 m序列的原理與性質(zhì) 312
11.1.2 用原理圖設(shè)計(jì)產(chǎn)生m序列 314
11.1.3 用VHDL設(shè)計(jì)m序列 315
11.2 Gold碼 317
11.2.1 Gold碼的原理與性質(zhì) 317
11.2.2 用原理圖設(shè)計(jì)產(chǎn)生Gold碼 318
11.2.3 用VHDL設(shè)計(jì)實(shí)現(xiàn)Gold碼 319
11.3 卷積碼 320
11.3.1 卷積碼原理 320
11.3.2 卷積碼實(shí)現(xiàn) 320
11.4 QPSK數(shù)字調(diào)制產(chǎn)生 323
11.4.1 調(diào)制原理 323
11.4.2 QPSK調(diào)制信號(hào)產(chǎn)生的設(shè)計(jì)實(shí)現(xiàn) 324
11.5 小型神經(jīng)網(wǎng)絡(luò) 333
11.6 數(shù)字AGC 337
11.6.1 數(shù)字AGC技術(shù)的原理和設(shè)計(jì)思想 337
11.6.2 數(shù)字AGC的VHDL實(shí)現(xiàn) 338
11.6.3 數(shù)字AGC的仿真 345
習(xí)題11 347
實(shí)驗(yàn)與設(shè)計(jì) 347
11-1 異步串行接口(UART) 347
附錄A VHDL關(guān)鍵字 356
附錄B DE2-115介紹 357