內容簡介
本書內容分為基礎篇和綜合實踐篇兩部分,基礎篇細緻地講解了FPGA開發過程中使用的硬體描述語言VHDL、設計軟體Quartus II 8.0、專業仿真工具
Modelsim 6.0的使用,並對設計綜合實驗平台、常用基本器件的設計做了介紹;為了幫助讀者更好地理解和掌握相關理論知識,在綜合實踐篇中介紹了FPGA開發常用的設計方法,包括消除毛刺設計技巧、觸發器、鎖存器、時延電路、時鐘設計等典型的基礎入門實例,同時,提供了矩陣鍵盤掃描接口設計等4個綜合設計實例,以及基於Avalon匯流排的PWM控制器等3個面向SOPC的嵌入式項目開發實例。
本書的配套教學資源中包含了各章節的電子教案、習題參考答案,豐富的實例原圖檔案和程式原始碼,以及程式執行步驟和結果分析。讀者通過舉一反三,即可輕鬆地將其套用於自己的工作和課題研究中。
目錄
第1章 概述 2
1.1 CPLD/ FPGA簡介 2
1.1.1 CPLD/FPGA的結構與工作原理 2
1.1.2 CPLD/FPGA的發展趨勢 7
1.2 CPLD/FPGA產品概述 7
1.2.1 Lattice的CPLD器件系列 8
1.2.2 Xilinx的CPLD/FPGA器件系列 9
1.2.3 Altera的CPLD/FPGA器件系列 11
1.2.4 Altera的FPGA配置方式與配置器件 14
習題與思考題 15
第2章 VHDL語言基礎 16
2.1 硬體描述語言特點 16
2.2 VHDL程式基本結構 16
2.3 VHDL程式主要構件 17
2.3.1 庫 18
2.3.2 實體 18
2.3.3 結構體 19
2.3.4 包集合 20
2.3.5 配置 21
2.4 VHDL數據類型 23
2.4.1 標準數據類型 23
2.4.2 IEEE定義的邏輯位與矢量 24
2.4.3 用戶自定義數據類型 24
2.4.4 數據類型轉換 26
2.5 運算符 26
2.5.1 算術運算符 26
2.5.2 邏輯運算符 26
2.5.3 關係運算符 27
2.5.4 其他運算符 27
2.5.5 運算優先權 27
2.6 VHDL數據對象 28
2.6.1 常量 28
2.6.2 變數 28
2.6.3 信號 29
2.6.4 信號與變數的比較 30
2.7 VHDL基本語句 30
2.7.1 並行語句 30
2.7.2 順序語句 37
2.7.3 屬性描述語句 42
2.8 測試基準 44
2.9 其他語句和有關規定的說明 45
2.9.1 命名規則和註解的標記 45
2.9.2 ATTRIBUTE(屬性)描述與定義 46
2.9.3 GENERATE語句 53
2.10 VHDL程式的其他構件 56
2.10.1 塊 56
2.10.2 函式 58
2.10.3 過程 59
2.10.4 程式包 60
2.11 結構體的描述方法 62
習題與思考題 63
第3章 項目開發環境介紹 65
3.1 軟體平台 65
3.1.1 系統設計軟體Quartus II 8.0 65
3.1.2 ModelSim 6.0仿真工具 66
3.1.3 Nios II IDE 8.0 軟體集成環境 67
3.2 硬體平台 67
3.2.1 DE2平台介紹 67
3.2.2 DE2板上資源及硬體布局 69
3.2.3 DE2原理 70
3.2.4 DE2平台的開發環境 73
3.2.5 DE2開發板測試說明 74
習題與思考題 75
第4章 常用基本器件設計 76
4.1 暫存器設計 76
4.1.1 暫存器原理圖設計 76
4.1.2 暫存器工作原理 76
4.1.3 暫存器程式描述 77
4.1.4 暫存器仿真 78
4.2 移位運算器設計 78
4.2.1 移位運算器原理圖設計 78
4.2.2 移位運算器程式描述 79
4.2.3 移位運算器仿真 80
4.3 加減法運算器設計 81
4.3.1 加減法單元原理圖設計 81
4.3.2 加減單元編碼 81
4.3.3 多位加減法單元連線 82
4.3.4 加減法運算器原理圖設計 83
4.3.5 加減法運算器程式描述 84
4.3.6 加減法運算器仿真 87
4.4 乘法器設計 88
4.4.1 乘法陣列原理圖設計 88
4.4.2 乘法陣列編碼 89
4.4.3 有符號數乘法運算器 90
4.5 同步計數器設計 93
4.5.1 設備同步工作 93
4.5.2 程式計數器 93
4.5.3 通用計數器 95
4.6 節拍器設計 98
4.6.1 節拍器電路設計 98
4.6.2 節拍器程式描述 98
4.6.3 節拍器工作原理 101
4.7 解碼器設計 101
4.7.1 解碼器電路設計 101
4.7.2 解碼器程式描述 102
4.7.3 選擇與通斷控制電路 103
4.8 標誌線設計 106
4.8.1 累加器標誌線設計 106
4.8.2 數據監測標誌設計 107
4.9 存儲器設計 107
4.9.1 地址解碼器電路設計 107
4.9.2 存儲單元設計 109
4.9.3 包含256個存儲單元的存儲器設計 110
習題與思考題 112
綜合實踐篇
第5章 FPGA開發常用設計方法 114
5.1 消除毛刺 114
5.2 幾種邏輯器件及信號處理方法 115
5.2.1 觸發器及鎖存器 115
5.2.2 消除及置位信號處理 117
5.3 FPGA中的同步設計 118
5.4 FPGA時延電路產生及用法 119
5.5 FPGA中的時鐘設計 121
5.5.1 全局時鐘 121
5.5.2 門控制時鐘 122
5.5.3 多級邏輯時鐘 124
5.5.4 行波時鐘 125
5.5.5 多時鐘系統 126
5.6 FPGA電路最佳化方法 130
習題與思考題 133
第6章 綜合數字系統實例 134
6.1 矩陣鍵盤掃描接口設計 134
6.1.1 實例內容說明 134
6.1.2 設計思路與原理 134
6.1.3 程式設計與驗證 136
6.1.4 實例總結 143
6.2 交通燈控制的設計 144
6.2.1 實例內容說明 144
6.2.2 設計思路與原理 144
6.2.3 程式設計與注釋 145
6.2.4 實例總結 152
6.3 6層電梯控制器的設計 152
6.3.1 實例內容說明 152
6.3.2 設計思路與原理 152
6.3.3 程式設計與驗證 153
6.3.4 實例總結 162
6.4 快速傅立葉變換FFT處理器的設計 162
6.4.1 FFT算法特點 162
6.4.2 旋轉因子算法 163
6.4.3 蝶形處理器 165
6.4.4 實例總結 168
習題與思考題 168
第7章 面向SOPC的FPGA設計實例 170
7.1 SOPC系統設計流程 170
7.2 基於Avalon匯流排的PWM控制器 171
7.2.1 實例介紹 171
7.2.2 設計思路與原理 171
7.2.3 硬體設計 174
7.2.4 軟體設計 190
7.2.5 實例總結 194
7.3 基於SOPC的SD卡音樂播放器 194
7.3.1 實例介紹 194
7.3.2 設計思路與原理 194
7.3.3 硬體設計 200
7.3.4 軟體設計 210
7.3.5 實例總結 216
7.4 基於AES算法的實時加/解密系統 216
7.4.1 實例介紹 216
7.4.2 設計思路與原理 217
7.4.3 硬體設計 223
7.4.4 軟體設計與綜合測試 255
7.4.5 實例總結 264
習題與思考題 264
附錄A 265
參考文獻 269