商品簡介
本書根據EDA課程教學要求,以提高數字設計能力為目的,系統闡述了數字系統開發的相關知識,主要內容包括EDA技術、FPGA/CPLD器件、VHDL硬件描述語言、數字系統的設計優化及應用等。全書以Quartus Ⅱ、Synplify Pro軟件為平臺,以VHDL 87和VHDL 93語言標準為依據,以可綜合的設計為重點,基於Altera的DE2-70平臺,通過大量經過驗證的數字設計實例,系統闡述了數字系統設計的方法與技術,由淺入深地介紹了VHDL工程開發的知識與技能。 本書的特點是:著眼于實用,緊密聯系教學實際,實例豐富。全書深入淺出,概念清晰,語言流暢。可作為電子、通信、微電子、信息、電路與系統、通信與信息系統以及測控技術與儀器等專業本科生和研究生的教學用書,也可供從事電路設計和系統開發的工程技術人員閱讀參考。 本書配有教學課件,可從華信教育資源網(www.hxedu.com.cn)免費下載。
目次
第1章 EDA技術概述 1
1.1 EDA技術及其發展 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 數字設計的流程 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技術的發展趨勢 14
習題1 15
第2章 FPGA/CPLD器件 16
2.1 PLD器件概述 16
2.1.1 PLD器件的發展歷程 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的原理與結構 26
2.4.1 宏單元結構 26
2.4.2 典型CPLD的結構 27
2.5 FPGA的原理與結構 30
2.5.1 查找表結構 30
2.5.2 典型FPGA的結構 32
2.6 FPGA/CPLD的編程元件 37
2.7 邊界掃描測試技術 41
2.8 FPGA/CPLD的編程與配置 43
2.8.1 在系統可編程 43
2.8.2 CPLD器件的編程 44
2.8.3 FPGA器件的配置 44
2.9 FPGA/CPLD器件概述 50
2.10 FPGA/CPLD的發展趨勢 54
習題2 55
第3章 Quartus Ⅱ集成開發工具 56
3.1 Quartus Ⅱ原理圖設計 56
3.1.1 半加器原理圖設計輸入 56
3.1.2 編譯與仿真 60
3.1.3 1位全加器編譯與仿真 64
3.2 Quartus Ⅱ的優化設置 65
3.2.1 分析與綜合設置 65
3.2.2 優化布局布線 67
3.2.3 設計可靠性檢查 72
3.3 Quartus Ⅱ的時序分析 74
3.3.1 時序設置與分析 74
3.3.2 時序逼近 75
3.4 基於宏功能模塊的設計 78
3.4.1 乘法器模塊 78
3.4.2 除法器模塊 81
3.4.3 計數器模塊 83
3.4.4 常數模塊 85
3.4.5 鎖相環模塊 86
3.4.6 存儲器模塊 90
3.4.7 其他模塊 94
習題3 97
第4章 VHDL設計初步 102
4.1 VHDL簡介 102
4.2 VHDL組合電路設計 103
4.2.1 用VHDL設計基本組合電路 103
4.2.2 用VHDL設計加法器 105
4.3 VHDL時序電路設計 107
4.3.1 用VHDL設計D觸發器 107
4.3.2 用VHDL設計計數器 110
4.4 Synplify Pro綜合器 114
4.5 Synplify綜合器 119
習題4 121
第5章 VHDL結構與要素 122
5.1 實體 122
5.1.1 類屬參數說明 122
5.1.2 端口說明 124
5.2 結構體 124
5.3 VHDL庫和程序包 125
5.3.1 庫 125
5.3.2 程序包 128
5.4 配置 129
5.5 子程序 133
5.5.1 過程(PROCEDURE) 133
5.5.2 函數(FUNCTION) 135
5.6 VHDL文字規則 137
5.6.1 標識符 137
5.6.2 數字 138
5.6.3 字符串 139
5.7 數據對象 139
5.7.1 常量 140
5.7.2 變量 140
5.7.3 信號 141
5.7.4 文件 141
5.8 VHDL數據類型 142
5.8.1 預定義數據類型 143
5.8.2 用戶自定義數據類型 146
5.8.3 數據類型的轉換 149
5.9 VHDL運算符 151
5.9.1 邏輯運算符 151
5.9.2 關係運算符 152
5.9.3 算術運算符 152
5.9.4 并置運算符 153
5.9.5 運算符重載 154
習題5 155
第6章 VHDL基本語句 156
6.1 順序語句 156
6.1.1 賦值語句 156
6.1.2 IF語句 156
6.1.3 CASE語句 163
6.1.4 LOOP語句 165
6.1.5 NEXT與EXIT語句 168
6.1.6 WAIT語句 169
6.1.7 子程序調用語句 170
6.1.8 斷言語句 170
6.1.9 REPORT語句 171
6.1.10 NULL語句 172
6.2 並行語句 173
6.2.1 並行信號賦值語句 173
6.2.2 進程語句 178
6.2.3 塊語句 181
6.2.4 元件例化語句 182
6.2.5 生成語句 184
6.2.6 並行過程調用語句 187
6.3 屬性說明與定義語句 188
6.3.1 數據類型屬性 188
6.3.2 數組屬性 189
6.3.3 信號屬性 190
習題6 190
第7章 VHDL設計進階 192
7.1 行為描述 192
7.2 數據流描述 193
7.3 結構描述 194
7.3.1 用結構描述設計1位全加器 195
7.3.2 用結構描述設計4位加法器 197
7.3.3 用結構描述設計8位加法器 197
7.4 三態邏輯設計 199
7.5 RAM存儲器設計 202
7.6 分頻器設計 205
7.6.1 占空比為50%的奇數分頻 205
7.6.2 半整數分頻 207
7.6.3 數控分頻器 209
7.7 數字跑表 210
7.8 音樂演奏電路 216
7.8.1 音樂演奏實現的方法 216
7.8.2 實現與下載 217
習題7 221
第8章 有限狀態機設計 222
8.1 有限狀態機 222
8.1.1 有限狀態機的描述 222
8.1.2 枚舉數據類型 225
8.2 有限狀態機的描述方式 226
8.2.1 三進程表述方式 227
8.2.2 雙進程表述方式 228
8.2.3 單進程表述方式 231
8.3 狀態編碼 234
8.3.1 常用的編碼方式 234
8.3.2 用常量進行編碼 235
8.4 有限狀態機設計要點 237
8.4.1 起始狀態的選擇和復位 237
8.4.2 多余狀態的處理 239
8.5 用狀態機設計流水燈 240
8.6 狀態機A/D采樣控制電路 242
習題8 244
第9章 VHDL數字設計與優化 246
9.1 流水線設計技術 246
9.2 資源共享 249
9.3 字符液晶顯示控制 253
9.3.1 字符液晶H1602B 254
9.3.2 用狀態機實現字符顯示控制 257
9.4 VGA圖像顯示控制器設計 262
9.4.1 DE2-70平臺的VGA顯示電路 262
9.4.2 VGA圖像顯示原理與時序 263
9.4.3 VGA圖像顯示實現 266
9.5 FIFO緩存器設計 271
9.5.1 用參數化模塊庫定制FIFO 272
9.5.2 用VHDL描述FIFO 273
9.6 異步串行接口(UART)設計 275
9.6.1 UART傳輸協議 276
9.6.2 UART接口設計 277
習題9 284
第10章 VHDL數字電路的仿真 286
10.1 VHDL仿真概述 286
10.2 VHDL測試平臺 287
10.2.1 用VHDL描述仿真激勵信號 287
10.2.2 用TEXTIO進行仿真 290
10.3 ModelSim仿真概述 294
10.4 ModelSim仿真實例 296
10.4.1 圖形界面仿真方式 297
10.4.2 命令行仿真方式 299
習題10 300
第11章 DSP Builder設計初步 301
11.1 DSP Builder設計流程 301
11.2 DSP Builder設計示例 302
11.2.1 新建一個模型 302
11.2.2 在Simulink中仿真模型 308
11.2.3 編譯模型 310
11.2.4 RTL級仿真 311
11.2.5 將DSP Builder模型加入設計工程 313
11.3 建立DSP Builder子系統 315
11.3.1 建立Simulink Subsystem子系統 315
11.3.2 建立HDL子系統示例 316
11.4 基於DSP Builder的數字AGC設計 320
11.4.1 數字AGC的原理與設計思想 320
11.4.2 數字AGC的DSP Builder設計實現 321
11.5 硬件在回路(HIL)仿真 324
習題11 326
第12章 VHDL通信與接口設計實例 327
12.1 m序列產生器 327
12.1.1 m序列的原理與性質 327
12.1.2 用原理圖方式設計m序列 329
12.1.3 用VHDL設計m序列 330
12.2 Gold碼 332
12.2.1 Gold碼的原理與性質 332
12.2.2 用原理圖方式設計Gold碼 333
12.2.3 用VHDL設計Gold碼 334
12.3 FSK解調 335
12.3.1 FSK解調的原理 335
12.3.2 2FSK解調的實現 336
12.4 數字過零檢測法和等精度頻率測量 338
12.4.1 數字過零檢測法 339
12.4.2 等精度頻率測量 341
12.5 I2C總線接口設計 343
12.5.1 I2C總線原理 343
12.5.2 I2C總線設計實現 345
習題12 349
附錄A VHDL關鍵字 350
附錄B VHDL程序包 351
附錄C DE2-70系統介紹 357
附錄D DE2系統介紹 365
附錄E 有關術語與縮略語 372
參考文獻 377