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