前言 硬件說明篇 第1章 初識FPGA 2 1 1 FPGA是什么 2 1 1 1 名詞解釋 2 1 1 2 FPGA發(fā)展歷程 2 1 2 FPGA的技術優(yōu)勢 7 1 3 FPGA的應用方向 9 第2章 硬件開發(fā)平臺詳解 15 2 1 開發(fā)板簡介 15 2 2 國內外FPGA產業(yè)現狀 19 2 3 選擇Cyclone IV的理由 20 2 4 Cyclone系列FPGA芯片的命名方法 23 2 5 FPGA內部硬件結構簡介 24 2 6 FPGA內部硬件結構與代碼的關系 33 2 6 1 I/O的映射 34 2 6 2 組合邏輯映射 43 2 6 3 時序邏輯映射 45 2 6 4 指定PLL的映射位置 56 軟件安裝篇 第3章 Quartus軟件和USB-Blaster驅動安裝 66 3 1 Quartus II_13 0軟件的安裝 66 3 2 添加器件庫 72 3 3 USB-Blaster驅動器的安裝 76 第4章 ModelSim軟件安裝 80 第5章 Visio和Notepad++軟件安裝 87 5 1 Visio軟件的安裝 87 5 2 Notepad++軟件的安裝 93 第6章 實現Quartus和ModelSim、Notepad++軟件關聯 99 6 1 Quartus II_13 0和ModelSim_10 5se軟件的關聯 99 6 2 Quartus II_13 0和Notepad++軟件的關聯 101 基礎入門篇 第7章 初識Verilog HDL 106 7 1 為什么選擇用Verilog HDL開發(fā)FPGA 106 7 1 1 Verilog HDL和VHDL的比較 106 7 1 2 Verilog HDL和C語言的比較 107 7 2 Verilog HDL語言的基礎語法 107 7 2 1 標識符 107 7 2 2 邏輯值 108 7 2 3 常量 108 7 2 4 變量 109 7 2 5 參數 109 7 2 6 賦值語句 110 7 2 7 注釋 110 7 2 8 關系運算符 111 7 2 9 歸約運算符、按位運算符和邏輯運算符 111 7 2 10 移位運算符 112 7 2 11 條件運算符 112 7 2 12 優(yōu)先級 112 7 2 13 位拼接運算符 113 7 2 14 if-else與case 113 7 2 15 inout雙向端口 115 7 2 16 Verilog語言中的系統(tǒng)任務和系統(tǒng)函數 116 7 3 章末總結 123 第8章 點亮LED燈 124 8 1 正確的設計流程 124 8 2 工程文件夾的管理 124 8 3 一個完整的設計過程 126 8 3 1 功能簡介 126 8 3 2 硬件資源 126 8 3 3 新建一個Visio文件及其配置 127 8 3 4 模塊和端口信號劃分 130 8 3 5 波形設計 131 8 3 6 新建工程 133 8 3 7 RTL代碼的編寫 140 8 3 8 代碼的分析和綜合 143 8 3 9 查看RTL視圖 144 8 3 10 Testbench的原理 145 8 3 11 Testbench代碼的編寫 147 8 3 12 仿真設置 151 8 3 13 設置NativeLink 153 8 3 14 打開ModelSim觀察波形 155 8 3 15 仿真波形分析 162 8 3 16 引腳約束 162 8 3 17 全編譯 165 8 3 18 通過JTAG將網表下載到開發(fā)板 168 8 3 19 未使用引腳的默認設置 172 8 3 20 程序的固化 174 8 4 章末總結 185 第9章 簡單組合邏輯 186 9 1 理論學習 186 9 1 1 多路選擇器 186 9 1 2 譯碼器 186 9 1 3 半加器 187 9 2 實戰(zhàn)演練—多路選擇器 187 9 2 1 實驗目標 187 9 2 2 硬件資源 187 9 2 3 程序設計 188 9 3 實戰(zhàn)演練—譯碼器 198 9 3 1 實驗目標 198 9 3 2 程序設計 198 9 4 實戰(zhàn)演練—半加器 205 9 4 1 實驗目標 205 9 4 2 硬件資源 205 9 4 3 程序設計 206 9 5 章末總結 211 第10章 層次化設計 213 10 1 理論學習 213 10 2 實戰(zhàn)演練 215 10 2 1 實驗目標 215 10 2 2 硬件資源 215 10 2 3 程序設計 215 10 3 章末總結 225 第11章 避免Latch的產生 226 11 1 Latch是什么 226 11 2 Latch的危害 226 11 3 幾種產生Latch的情況 226 11 4 章末總結 232 第12章 時序邏輯的開始——寄存器 234 12 1 理論學習 234 12 2 實戰(zhàn)演練 234 12 2 1 實驗目標 234 12 2 2 硬件資源 235 12 2 3 程序設計 236 12 3 章末總結 243 第13章 阻塞賦值與非阻塞賦值 245 13 1 理論學習 245 13 2 阻塞賦值 246 13 3 非阻塞賦值 248 13 4 章末總結 251 第14章 計數器 252 14 1 理論學習 252 14 2 實戰(zhàn)演練 252 14 2 1 實驗目標 252 14 2 2 硬件資源 252 14 2 3 程序設計 253 14 3 章末總結 262 第15章 分頻器 263 15 1 理論學習 263 15 2 實戰(zhàn)演練一 263 15 2 1 實驗目標 263 15 2 2 硬件資源 264 15 2 3 程序設計 264 15 3 實戰(zhàn)演練二 270 15 3 1 實驗目標 270 15 3 2 硬件資源 271 15 3 3 程序設計 271 15 4 章末總結 278 第16章 按鍵消抖模塊的設計與驗證 279 16 1 理論學習 279 16 1 1 硬件消抖 280 16 1