內容簡介
本書作為FPGA初學者的入門級教材,注重基礎性和實用性。全書共6章,主要包括FPGA與EDA技術、FPGA硬體設計平台、軟體設計平台、Verilog HDL基礎、基於Vivado的FPGA設計案例和FPGA設計進階。本書內容環環相扣、循序漸進,詳細介紹了FPGA系統開發中的每個環節。
目錄
第1章 FPGA與EDA技術 1
1.1 FPGA概述 1
1.1.1 FPGA的發展歷程 1
1.1.2 FPGA的基本結構 2
1.2 FPGA的設計流程與設計方法 5
1.2.1 設計基本流程 5
1.2.2 自下而上和自上而下的設計方法 7
1.3 EDA技術簡介 8
1.3.1 EDA技術發展歷史 8
1.3.2 FPGA的常用EDA開發工具 10
第2章 FPGA硬體設計平台 11
2.1 Xilinx FPGA產品簡介 11
2.1.1 Xilinx FPGA產品簡介 11
2.1.2 Xilinx 7系列FPGA功能與特點 13
2.2 Xilinx FPGA EGo1口袋實驗平台簡介 14
2.3 開發板功能詳述 16
2.3.1 電源與時鐘 16
2.3.2 基本用戶I/O 17
2.3.3 板載存儲 19
2.3.4 USB接口(USB-JTAG/USB-UART與USB-PS/2) 21
2.3.5 音視頻接口 22
2.3.6 藍牙接口 23
2.3.7 A/D和D/A模組 24
第3章 軟體設計平台 25
3.1 Vivado介紹與安裝 25
3.1.1 Vivado軟體簡介 25
3.1.2 Vivado的安裝 25
3.2 Vivado基本開發流程 33
3.2.1 流程概述 33
3.2.2 啟動Vivado 39
3.2.3 使用Vivado創建FPGA設計工程 39
3.2.4 添加源檔案 43
3.2.5 RTL描述與分析 46
3.2.6 行為仿真 49
3.2.7 設計綜合 52
3.2.8 添加設計約束 56
3.2.9 設計實現 57
3.2.10 時序仿真 60
3.2.11 比特流檔案的生成與下載 60
3.3 Vivado IP核的使用 63
3.3.1 Xilinx IP核及其調用流程 63
3.3.2 實驗:Vivado IP核的使用 66
3.4 Vivado IP核的封裝與集成 72
3.4.1 Vivado IP核封裝器 72
3.4.2 Vivado IP核封裝流程 72
3.4.3 Vivado IP核集成器 79
第4章 Verilog HDL基礎 82
4.1 Verilog HDL簡介 82
4.1.1 歷史與發展 82
4.1.2 Verilog HDL的特點 82
4.1.3 Verilog HDL與VHDL 83
4.2 Verilog層次建模與模組 83
4.2.1 層次建模 83
4.2.2 模組 83
4.2.3 實例化 84
4.3 Verilog HDL基礎 85
4.3.1 基本詞法 85
4.3.2 數據類型 86
4.3.3 表達式 88
4.3.4 模組連線埠 90
4.4 門級建模與數據流建模 91
4.4.1 門級建模 91
4.4.2 數據流建模 93
4.5 Verilog行為建模 94
4.5.1 過程塊 94
4.5.2 塊語句 95
4.5.3 時間控制語句 97
4.5.4 賦值語句 100
4.5.5 控制語句 102
4.5.6 task和function 106
第5章 基於Vivado的FPGA設計案例 109
5.1 流水燈設計 109
5.1.1 實驗要求 109
5.1.2 設計方案 109
5.1.3 系統設計 109
5.1.4 系統仿真 113
5.1.5 系統測試 115
5.2 智力搶答器 115
5.2.1 設計任務與指標 115
5.2.2 設計方案 115
5.2.3 系統設計 115
5.2.4 系統仿真 122
5.2.5 系統測試 123
5.3 分頻器 123
5.3.1 實驗原理 124
5.3.2 實驗要求 124
5.3.3 設計方案 125
5.3.4 系統設計 125
5.3.5 系統仿真 130
5.3.6 系統測試 131
5.4 FIR數字濾波器設計 132
5.4.1 實驗原理 132
5.4.2 實驗要求 133
5.4.3 濾波器係數設計 133
5.4.4 系統設計 135
5.4.5 系統仿真及驗證 139
5.5 串口控制器 141
5.5.1 實驗原理 142
5.5.2 實驗要求 143
5.5.3 設計方案 143
5.5.4 系統設計 143
5.5.5 系統仿真 160
5.5.6 系統測試 163
5.6 Vivado IP集成實驗 164
5.6.1 實驗說明 165
5.6.2 實驗流程 165
5.7 VGA接口實驗 172
5.7.1 VGA接口概述 172
5.7.2 實驗原理 172
5.7.3 實驗流程 180
5.8 藍牙遠程控制實驗 185
5.8.1 藍牙技術概述 185
5.8.2 實驗原理 186
5.8.3 實驗流程 195
5.8.4 硬體驗證 197
5.9 基於FPGA的嵌入式系統 198
5.9.1 基於MicroBlaze的嵌入式設計概述 198
5.9.2 基於Vivado的嵌入式設計流程 199
5.9.3 基於Vivado的嵌入式硬體設計 201
5.9.4 基於Vivado的嵌入式軟體設計 205
5.9.5 系統驗證 208
5.10 基於XADC的簡易示波器 211
5.10.1 XADC模組概述 211
5.10.2 XADC模組的使用 213
5.10.3 使用MicroBlaze採集模擬數據 219
5.10.4 使用MicroBlaze搭建串口示波器 221
5.10.5 系統驗證 223
第6章 FPGA設計進階 224
6.1 Vivado下的FPGA時序約束與分析 224
6.1.1 靜態時序分析 224
6.1.2 基本時序約束的編寫 226
6.1.3 基線設計方法 228
6.1.4 時序分析實例 229
6.2 使用Vivado進行硬體調試 238
6.2.1 Vivado線上邏輯分析儀 238
6.2.2 Vivado邏輯調試IP核 239
6.2.3 調試IP核的使用流程 243
6.2.4 硬體調試實例 245
參考文獻 254