根據電子信息類課程理論教學和實踐教學要求,以提高數字系統設計能力為目的,系統闡述EDA技術、FPGA/CPLD器件、VHDL語言和相關數字系統設計技術。以QuartusPrime、ModelSim軟件為工具,按“器件-軟件-語言-案例”為主線展開,內容緊貼教學實際,以可綜合的設計為重點,通過諸多精選設計案例,闡述數字系統設計的方法,由淺入深介紹VHDL工程開發(fā)的技能。案例豐富,富于啟發(fā),并全部基于目標板做了驗證。VHDL語言規(guī)則以VHDL-1993、VHDL-2002和VHDL-2008語言標準為依據,涵蓋所有常用語法規(guī)則,對語言、語法規(guī)則用案例做闡釋,用綜合工具和仿真工具做驗證,語言講解全面深入。
第1章 EDA技術概述 1
1.1 EDA技術及其發(fā)展歷程 1
1.2 Top-down設計思路 2
1.2.1 Top-down設計 3
1.2.2 Bottom-up設計 3
1.3 IP核復用 4
1.3.1 IP核復用技術 4
1.3.2 片上系統SoC 5
1.4 EDA設計的流程 6
1.4.1 設計輸入 6
1.4.2 綜合 6
1.4.3 布局布線 7
1.4.4 時序分析 7
1.4.5 功能仿真與時序仿真 7
1.4.6 編程與配置 8
1.5 常用的EDA工具軟件 8
習題1 11
第2章 FPGA/CPLD器件 12
2.1 PLD器件概述 12
2.1.1 PLD器件的發(fā)展歷程 12
2.1.2 PLD器件的分類 12
2.2 PLD的原理與結構 14
2.3 低密度PLD的原理與結構 15
2.4 CPLD的原理與結構 18
2.4.1 宏單元結構 18
2.4.2 典型CPLD的結構 19
2.5 FPGA的原理與結構 20
2.5.1 查找表結構 21
2.5.2 典型FPGA的結構 23
2.5.3 MAX 10器件結構 24
2.5.4 Cyclone IV器件結構 27
2.6 FPGA/CPLD的編程工藝 29
2.6.1 熔絲型開關 29
2.6.2 反熔絲型開關 29
2.6.3 浮柵編程工藝 30
2.6.4 SRAM編程工藝 31
2.7 邊界掃描測試技術 32
2.8 FPGA/CPLD的編程與配置 33
2.8.1 在系統可編程 33
2.8.2 Cyclone IV器件的配置 35
2.8.3 MAX 10器件的配置 37
2.9 FPGA/CPLD產品系列 38
習題2 40
第3章 原理圖與基于IP核的設計 42
3.1 Quartus Prime設計流程 42
3.2 原理圖設計方式 43
3.2.1 半加器設計 43
3.2.2 1位全加器設計 46
3.2.3 編譯 47
3.2.4 仿真 48
3.2.5 下載 54
3.3 基于IP核的設計 57
3.3.1 用原理圖方式實現 57
3.3.2 用文本例化ROM實現 63
3.4 SignalTap II的使用方法 63
3.5 Quartus Prime的優(yōu)化設置 67
習題3 69
第4章 VHDL設計入門 72
4.1 VHDL的歷史 72
4.2 用VHDL設計組合電路 73
4.3 用VHDL設計時序電路 76
習題4 78
第5章 VHDL結構與要素 79
5.1 實體 79
5.1.1 類屬參數說明 79
5.1.2 端口說明 81
5.2 結構體 82
5.3 VHDL庫和程序包 83
5.3.1 庫 83
5.3.2 程序包 84
5.4 配置 86
5.5 子程序 89
5.5.1 過程 89
5.5.2 函數 90
5.5.3 過程、函數的使用方法 90
習題5 94
第6章 VHDL基礎語法 95
6.1 標識符 95
6.2 數據對象 95
6.2.1 常量 96
6.2.2 變量 96
6.2.3 信號 97
6.2.4 別名 97
6.3 VHDL數據類型 98
6.3.1 VHDL標準數據類型 98
6.3.2 IEEE預定義數據類型 101
6.3.3 其他預定義數據類型 102
6.3.4 用戶自定義數據類型 104
6.4 數據類型的轉換與位寬轉換 107
6.4.1 數據類型的轉換 107
6.4.2 位寬轉換 109
6.5 VHDL運算符 110
6.5.1 邏輯運算符 110
6.5.2 關系運算符 111
6.5.3 算術運算符 112
6.5.4 并置運算符 114
6.5.5 運算符重載 114
6.5.6 省略賦值運算符 115
習題6 116
第7章 VHDL基本語句 118
7.1 順序語句 118
7.1.1 賦值語句 118
7.1.2 IF語句 118
7.1.3 CASE語句 123
7.1.4 LOOP語句 126
7.1.5 NEXT與EXIT語句 129
7.1.6 WAIT語句 129
7.1.7 子程序調用語句 131
7.1.8 ASSERT(斷言)語句 131
7.1.9 REPORT語句 132
7.1.10 NULL語句 132
7.2 并行語句 133
7.2.1 并行信號賦值語句 133
7.2.2 進程語句 137
7.2.3 塊語句 139
7.2.4 元件例化語句 141
7.2.5 生成語句 142
7.2.6 并行過程調用語句 144
7.3 屬性說明與定義語句 145
7.3.1 數據類型屬性 145
7.3.2 數組屬性 146
7.3.3 信號屬性 147
7.4 VHDL-2008 148
習題7 149
第8章 VHDL設計進階 151
8.1 行為描述 151
8.2 數據流描述 152
8.3 結構描述 157
8.3.1 用結構描述實現1位全加器 157
8.3.2 用結構描述設計4位加法器 159
8.3.3 用結構描述設計8位加法器 159
8.4 三態(tài)邏輯設計 160
8.5 分頻器設計 162
8.5.1 占空比為50%的奇數分頻 162
8.5.2 半整數分頻 163
8.5.3 數控分頻器 164
8.6 乘法器設計 165
8.6.1 用乘法運算符實現 165
8.6.2 布斯乘法器 167
8.6.3 查找表乘法器 170
8.7 存儲器設計 174
8.7.1 用數組例化存儲器 175
8.7.2 例化lpm_rom模塊實現存儲器 176
8.8 流水線設計 179
8.9 資源共享設計 181
8.10 用鎖相環(huán)IP核實現倍頻和相移 183
8.10.1 鎖相環(huán)IP核的定制 183
8.10.2 鎖相環(huán)例化和仿真 186
8.11 屬性 188
習題8 189
第9章 VHDL有限狀態(tài)機設計 190
9.1 有限狀態(tài)機 190
9.1.1 有限狀態(tài)機 190
9.1.2 枚舉數據類型 192
9.2 有限狀態(tài)機的描述方式 193
9.2.1 三進程表述方式 193
9.2.2 雙進程表述方式 194
9.2.3 單進程表述方式 196
9.3 狀態(tài)編碼 197
9.3.1 常用的編碼方式 197
9.3.2 狀態(tài)編碼的定義 199
9.3.3 用屬性指定狀態(tài)編碼方式 199
9.4 用有限狀態(tài)機實現除法器 201
9.5 用有限狀態(tài)機控制流水燈 204
9.5.1 流水燈控制器 204
9.5.2 引腳分配與鎖定 205
9.6 用狀態(tài)機控制交通燈 210
9.7 用狀態(tài)機控制字符液晶 211
習題9 216
第10章 VHDL驅動常用I/O外設 218
10.1 PS/2鍵盤 218
10.2 4×4矩陣鍵盤 222
10.3 漢字圖形點陣液晶 227
10.4 VGA顯示器 233
10.4.1 VGA顯示原理與時序 233
10.4.2 VGA彩條信號發(fā)生器 235
10.4.3 VGA圖像顯示 238
10.5 TFT-LCD液晶屏 243
10.5.1 TFT-LCD屏 243
10.5.2 TFT-LCD屏顯示彩色圓環(huán) 246
10.5.3 TFT-LCD屏顯示動態(tài)矩形 250
10.6 音符、音樂演奏電路 252
10.6.1 音符演奏 252
10.6.2 音樂演奏 257
習題10 262
第11章 Test Bench測試與時序分析 264
11.1 Test Bench測試 264
11.1.1 Test Bench 264
11.1.2 用VHDL描述激勵信號 264
11.1.3 用TEXTIO進行仿真 268
11.2 Test Bench測試實例 272
11.2.1 ASSERT(斷言)語句 272
11.2.2 RECODE(記錄)數據類型 274
11.3 ModelSim SE使用指南 276
11.3.1 圖形界面仿真方式 278
11.3.2 命令行仿真方式 281
11.3.3 ModelSim SE時序仿真 282
11.4 時序約束與時序分析 284
11.4.1 時序分析的有關概念 284
11.4.2 用Timing Analyzer進行時序分析 286
習題11 290
第12章 VHDL設計實例 291
12.1 超聲波測距 291
12.2 乘累加器 295
12.3 m序列與Gold碼產生器 298
12.3.1 m序列產生器 298
12.3.2 Gold碼產生器 301
12.4 頻率測量 302
12.5 數字鐘 306
12.6 FIR濾波器 314
12.6.1 FIR濾波器的參數設計 315
12.6.2 FIR濾波器的FPGA實現 319
習題12 323
附錄 VHDL保留字 324
參考文獻 325