本書根據(jù)EDA課程教學(xué)要求,以提高數(shù)字設(shè)計(jì)能力為目的,系統(tǒng)闡述FPGA數(shù)字系統(tǒng)開發(fā)的相關(guān)知識(shí),主要內(nèi)容包括EDA技術(shù)概述、FPGA/CPLD器件、VHDL硬件描述語言等。全書以Quartus Prime、ModelSim等軟件為平臺(tái),以VHDL’87和VHDL’93語言標(biāo)準(zhǔn)為依據(jù),基于DE2-115實(shí)驗(yàn)平臺(tái),以可綜合的設(shè)計(jì)為重點(diǎn),通過大量經(jīng)過驗(yàn)證的數(shù)字設(shè)計(jì)實(shí)例,闡述數(shù)字系統(tǒng)設(shè)計(jì)的方法與技術(shù),由淺入深地介紹VHDL工程開發(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);獲國家發(fā)明專利授權(quán)2項(xiàng),獲軟件著作授權(quán)1項(xiàng);發(fā)表論文80余篇,其中SCI、EI收錄30余篇;主編教材多部,并入選"十一五”國家級(jí)規(guī)劃教材和"十二五”國家級(jí)規(guī)劃教材;2013年獲軍隊(duì)院校育才獎(jiǎng)銀獎(jiǎng);2014年由國家留學(xué)基金委資助,在美國威斯康星大學(xué)麥迪遜分校訪問研究1年;指導(dǎo)本科生參加全國大學(xué)生電子設(shè)計(jì)競(jìng)賽,共獲得全國一等獎(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無符號(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ù)說明 120
5.1.2 端口說明 122
5.2 結(jié)構(gòu)體 122
5.3 VHDL庫和程序包 123
5.3.1 庫 124
5.3.2 程序包 126
5.4 配置 128
5.5 子程序 131
5.5.1 過程 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基本語句 161
6.1 順序語句 161
6.1.1 賦值語句 161
6.1.2 IF語句 161
6.1.3 CASE語句 167
6.1.4 LOOP語句 170
6.1.5 NEXT與EXIT語句 172
6.1.6 WAIT語句 173
6.1.7 子程序調(diào)用語句 175
6.1.8 斷言語句 175
6.1.9 REPORT語句 176
6.1.10 NULL語句 177
6.2 并行語句 178
6.2.1 并行信號(hào)賦值語句 178
6.2.2 進(jìn)程語句 183
6.2.3 塊語句 186
6.2.4 元件例化語句 187
6.2.5 生成語句 189
6.2.6 并行過程調(diào)用語句 192
6.3 屬性說明與定義語句 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矩陣鍵盤檢測(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 音樂演奏電路 218
7.6.1 音樂演奏實(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ù)字過零檢測(cè)和等精度頻率測(cè)量 276
9.4.1 數(shù)字過零檢測(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