本書根據(jù)電子信息類課程教學和實驗要求,以提高學生的實踐動手能力和工程設計能力為目的,對EDA技術和VHDL設計的相關知識進行系統(tǒng)和完整的介紹。全書以Quartus Prime、ModelSim軟件為工具,以VHDL-1993和VHDL-2008語言標準為依據(jù),以可綜合的設計為重點,通過諸多精選設計案例,由淺入深地介紹VHDL工程開發(fā)的知識與技能。全書按"器件-軟件-語言-案例”為主線展開,內(nèi)容緊貼教學和科研實際,舉例恰當豐富,富有啟發(fā)性,既包含關于EDA技術、FPGA/CPLD器件和VHDL硬件描述語言的系統(tǒng)介紹,又有豐富的設計應用實例。設計案例經(jīng)過優(yōu)選,具有典型性和趣味性,并全部基于口袋實驗板進行了驗證。本書配有教學課件、課程教學計劃等。
王金明博士,副教授、碩士研究生導師。曾獲軍隊科技進步一等獎1項,軍隊科技進步二等獎3項,軍隊科技進步三等獎5項,獲軍隊級教學成果二等獎1項;獲國家發(fā)明專利授權2項,獲軟件著作授權1項;發(fā)表論文80余篇,其中SCI、EI收錄30余篇;主編教材多部,并入選"十一五”國家級規(guī)劃教材和"十二五”國家級規(guī)劃教材;2013年獲軍隊院校育才獎銀獎;2014年由國家留學基金委資助,在美國威斯康星大學麥迪遜分校訪問研究1年;指導本科生參加全國大學生電子設計競賽,獲全國一等獎、二等獎多項。
目 錄
第1章 EDA技術概述 1
1.1 EDA技術及其發(fā)展歷程 1
1.2 Top-down設計思路 3
1.2.1 Top-down設計 3
1.2.2 Bottom-up設計 4
1.3 IP核復用 5
1.3.1 IP核復用技術 5
1.3.2 片上系統(tǒng)SoC 6
1.4 EDA設計的流程 6
1.4.1 設計輸入 7
1.4.2 綜合 7
1.4.3 布局布線 8
1.4.4 時序分析與時序約束 8
1.4.5 功能仿真與時序仿真 8
1.4.6 編程與配置 9
1.5 常用的EDA工具軟件 9
1.6 EDA技術的發(fā)展趨勢 12
習題1 13
第2章 FPGA/CPLD器件 14
2.1 PLD器件概述 14
2.1.1 PLD器件的發(fā)展歷程 14
2.1.2 PLD器件的分類 15
2.2 PLD的原理與結構 16
2.2.1 PLD器件的結構 17
2.2.2 PLD電路的表示方法 17
2.3 低密度PLD的原理與結構 18
2.4 CPLD的原理與結構 22
2.4.1 宏單元結構 22
2.4.2 典型CPLD的結構 23
2.5 FPGA的原理與結構 24
2.5.1 查找表結構 25
2.5.2 典型FPGA的結構 27
2.6 FPGA/CPLD的編程工藝 30
2.7 邊界掃描測試技術 33
習題2 35
第3章 FPGA/CPLD的結構與配置 36
3.1 FPGA/CPLD器件概述 36
3.2 MAX 10器件結構 38
3.3 Cyclone IV器件結構 42
3.4 FPGA/CPLD的編程與配置 43
3.4.1 在系統(tǒng)可編程 43
3.4.2 Cyclone IV器件的配置 44
3.4.3 MAX 10器件的配置 47
3.5 FPGA/CPLD的發(fā)展趨勢 48
習題3 49
第4章 原理圖與基于IP核的設計 50
4.1 Quartus Prime設計流程 50
4.2 Quartus Prime原理圖設計 51
4.2.1 半加器原理圖設計輸入 51
4.2.2 1位全加器設計輸入 55
4.2.3 編譯 57
4.2.4 仿真 58
4.2.5 下載 62
4.3 用IP核設計計數(shù)器 66
4.4 用ROM核設計乘法器 71
4.4.1 用原理圖方式實現(xiàn) 71
4.4.2 用文本例化ROM實現(xiàn) 77
4.5 SignalTap II的使用方法 78
4.6 Quartus Prime的優(yōu)化設置 82
習題4 85
第5章 VHDL設計初步 88
5.1 VHDL的歷史 88
5.2 用VHDL設計組合電路 89
5.3 用VHDL設計時序電路 92
5.4 實體 94
5.4.1 類屬參數(shù)說明 94
5.4.2 端口說明 96
5.5 結構體 96
5.6 VHDL庫和程序包 97
5.6.1 庫 97
5.6.2 程序包 98
5.7 配置 100
5.8 子程序 103
5.8.1 過程 103
5.8.2 函數(shù) 104
5.8.3 過程、函數(shù)的使用方法 104
習題5 108
第6章 VHDL結構與要素 109
6.1 標識符 109
6.2 數(shù)據(jù)對象 109
6.2.1 常量 110
6.2.2 變量 110
6.2.3 信號 111
6.2.4 別名 111
6.3 VHDL數(shù)據(jù)類型 112
6.3.1 VHDL標準數(shù)據(jù)類型 112
6.3.2 INTEGER數(shù)據(jù)類型 114
6.3.3 IEEE預定義數(shù)據(jù)類型 115
6.3.4 UNSIGNED、SIGNED
數(shù)據(jù)類型 115
6.3.5 用戶自定義數(shù)據(jù)類型 117
6.3.6 數(shù)組(ARRAY) 119
6.4 數(shù)據(jù)類型的轉換與位寬轉換 120
6.4.1 數(shù)據(jù)類型的轉換 120
6.4.2 位寬轉換 122
6.5 VHDL運算符 123
6.4.1 邏輯運算符 123
6.4.2 關系運算符 124
6.4.3 算術運算符 124
6.4.4 并置運算符 126
6.4.5 運算符重載 127
6.4.6 省略賦值運算符 128
習題6 129
第7章 VHDL基本語句 130
7.1 順序語句 130
7.1.1 賦值語句 130
7.1.2 IF語句 130
7.1.3 CASE語句 135
7.1.4 LOOP語句 138
7.1.5 NEXT與EXIT語句 141
7.1.6 WAIT語句 141
7.1.7 子程序調用語句 142
7.1.8 斷言語句 143
7.1.9 REPORT語句 143
7.1.10 NULL語句 144
7.2 并 行 語 句 145
7.2.1 并行信號賦值語句 145
7.2.2 進程語句 149
7.2.3 塊語句 151
7.2.4 元件例化語句 152
7.2.5 生成語句 154
7.2.6 并行過程調用語句 156
7.3 屬性說明與定義語句 156
7.3.1 數(shù)據(jù)類型屬性 157
7.3.2 數(shù)組屬性 157
7.3.3 信號屬性 158
習題7 159
第8章 VHDL設計進階 161
8.1 行為描述 161
8.2 數(shù)據(jù)流描述 162
8.3 結構描述 163
8.3.1 用結構描述實現(xiàn)1位全加器 163
8.3.2 用結構描述設計4位加法器 165
8.3.3 用結構描述設計8位加法器 165
8.4 三態(tài)邏輯設計 166
8.5 分頻器設計 168
8.5.1 占空比為50%的奇數(shù)分頻 168
8.5.2 半整數(shù)分頻 169
8.5.3 數(shù)控分頻器 170
8.6 乘法器設計 171
8.6.1 用乘法運算符實現(xiàn) 171
8.6.2 移位相加乘法器 173
8.6.3 查找表乘法器 174
8.7 存儲器設計 178
8.7.1 用數(shù)組例化存儲器 179
8.7.2 例化lpm_rom模塊實現(xiàn)
存儲器 181
8.8 流水線設計 183
8.9 資源共享設計 186
8.10 用鎖相環(huán)IP核實現(xiàn)倍頻和相移 188
8.10.1 鎖相環(huán) 188
8.10.2 鎖相環(huán)IP核的定制 188
8.10.3 鎖相環(huán)例化和仿真 190
習題8 192
第9章 VHDL有限狀態(tài)機設計 194
9.1 有限狀態(tài)機 194
9.1.1 有限狀態(tài)機簡介 194
9.1.2 枚舉數(shù)據(jù)類型 196
9.2 有限狀態(tài)機的描述方式 197
9.2.1 三進程表述方式 197
9.2.2 雙進程表述方式 198
9.2.3 單進程表述方式 200
9.3 狀 態(tài) 編 碼 201
9.3.1 常用的編碼方式 201
9.3.2 狀態(tài)編碼的定義 203
9.3.3 用屬性指定狀態(tài)編碼方式 206
9.4 有限狀態(tài)機設計要點 207
9.4.1 起始狀態(tài)的選擇和復位 207
9.4.2 多余狀態(tài)的處理 208
9.5 用有限狀態(tài)機控制流水燈 209
9.6 用狀態(tài)機控制交通燈 216
9.7 用狀態(tài)機控制字符液晶 217
習題9 223
第10章 VHDL驅動常用IO外設 225
10.1 4×4矩陣鍵盤 225
10.2 漢字圖形點陣液晶 231
10.3 VGA顯示器 237
10.3.1 VGA顯示原理與時序 237
10.3.2 VGA彩條信號發(fā)生器 239
10.3.3 VGA圖像顯示 243
10.4 TFT液晶屏 248
10.4.1 TFT液晶屏 248
10.4.2 TFT液晶屏顯示彩色圓環(huán) 251
10.4.3 TFT液晶屏顯示動態(tài)矩形 256
10.5 音樂演奏電路 260
10.5.1 音樂演奏實現(xiàn)的方法 261
10.5.2 實現(xiàn)與下載 262
習題10 265
第11章 TEST BENCH仿真與時序分析 267
11.1 VHDL仿真 267
11.2 VHDL測試平臺 267
11.2.1 用VHDL描述仿真激勵
信號 268
11.2.2 用TEXTIO進行仿真 271
11.3 ModelSim SE仿真實例 274
11.3.1 圖形界面仿真方式 276
11.3.2 命令行仿真方式 280
11.3.3 ModelSim SE時序仿真 281
11.4 時序約束與時序分析 282
11.4.1 時序分析的有關概念 283
11.4.2 用Timing Analyzer進行
時序分析 285
習題11 289
第12章 VHDL設計實例 292
12.1 標準PS/2鍵盤 292
12.2 超聲波測距 296
12.3 m序列與Gold碼產(chǎn)生器 301
12.3.1 m序列產(chǎn)生器 301
12.3.2 Gold碼產(chǎn)生器 305
12.4 數(shù)字過零檢測和等精度頻率測量 306
12.4.1 數(shù)字過零檢測 306
12.4.2 等精度頻率測量 308
12.3.3 數(shù)字測量系統(tǒng) 309
12.5 FIR濾波器 312
12.5.1 FIR濾波器的參數(shù)設計 312
12.5.2 FIR濾波器的FPGA實現(xiàn) 316
12.5.3 下載與驗證 319
習題12 320
附錄 VHDL保留字 322
參考文獻 323