本書作者:潘文明、易文兵編著。主要內容介紹利用硬體描述語言設計數字系統的方法,提出計數器、狀態機、FIFO的三大架構,採用理論與實踐相結合方式,詳細介紹各個架構的實現步驟——“八步法”,並配以相應的項目練習。
基本介紹
- 書名:手把手教你學FPGA設計
- 作者:潘文明、易文兵
- ISBN:9787512424012
- 頁數:288
- 定價:45
- 出版社:北京航空航天大學出版社
- 出版時間:2017
- 裝幀:平裝
第一篇模組設計 1
第一章模組 2
§1.1 模組結構 2
§1.2 模組三大架構 4
1.2.1 計數器架構 4
1.2.2 狀態機架構 4
1.2.3 FIFO架構 4
第二章計數器架構 5
§2.1 計數器架構八步法 5
2.1.1 概述 5
2.1.2 第一步:明確功能 8
2.1.3 第二步:功能波形 8
2.1.4 第三步:計數結構 8
2.1.5 第四步:加一結束條件 9
2.1.6 第五步:定義特殊點 10
2.1.7 第六步:完整性檢查 11
2.1.8 第七步:計數器代碼 12
2.1.9 第八步:功能代碼 12
2.1.10總結 13
§2.2 項目實踐 14
2.2.1 項目一:PWM流水燈 14
2.2.2 項目二:UART接口 19
2.2.3 項目三:VGA接口 30
2.2.4 項目四:SCCB(IIC)接口 37
第三章狀態機架構 47
§3.1 狀態機架構八步法 47
3.1.1 概述 47
3.1.2 第一步:明確功能 50
3.1.3 第二步:輸出分析 50
3.1.4 第三步:狀態合併 51
3.1.5 第四步:狀態轉移 52
3.1.6 第五步:轉移條件 53
3.1.7 第六步:完整性檢查 54
3.1.8 第七步:狀態機代碼 55
3.1.9 第八步:功能代碼 58
3.1.10總結 58
§3.2 項目實踐 59
3.2.1 項目一:簡易包文類型識別器 59
3.2.2 項目二:SPI接口 67
3.2.3 項目三:SDRAM接口 76
第四章FIFO架構 95
§4.1 FIFO架構八步法 95
4.1.1 概述 95
4.1.2 第一步確認FIFO架構 104
4.1.3 第二步讀狀態 105
4.1.4 第三步讀狀態啟動和結束條件 106
4.1.5 第四步信息FIFO讀清條件 106
4.1.6 第五步生成FIFO IP核 107
4.1.7 第六步其他信號產生條件 107
4.1.8 第七步FIFO代碼 107
4.1.9 第八步其他信號代碼 108
4.1.10 總結 109
§4.2 FIFO項目實踐 110
4.2.1 項目一:包文匯聚模組 110
4.2.2 項目二:乙太網切包模組 114
4.2.3 項目三:UDP打包模組 120
第二篇模組劃分 132
第五章模組劃分核心知識 133
§5.1 模組劃分概述 133
5.1.1 模組劃分原則 133
5.1.2 模組劃分連線埠規範 133
§5.2 模組劃分過程 134
5.2.1 模組劃分思路 134
5.2.2 模組的連線埠及模組之間數據流向 136
第六章模組劃分常用架構 138
§6.1 直接互動架構 138
§6.2 無快取rdy互動架構 138
§6.3 有快取rdy互動架構 139
§6.4 請求應答互動架構 139
§6.5 外設互動架構 140
§6.6 項目實踐 141
6.6.1 項目一:AT93C46的存儲與讀取 141
6.6.2 項目二:溫度採集與顯示 143
6.6.3 項目三:OV7670圖像採集 145
第三篇項目實踐 148
第七章基於FPGA的溫度監控系統 149
§7.1 背景介紹 149
§7.2 項目要求 149
§7.3 基本原理 151
7.3.1 PC端(串口調試助手) 151
7.3.2 溫度感測器DS18B20 152
7.3.3 數碼管顯示 154
7.3.4 蜂鳴器 155
§7.4 設計方案 155
§7.5 FPGA 設計實現 159
7.5.1 硬體 159
7.5.2 verilog代碼設計 160
§7.6 功能仿真 187
§7.7 板級調試 192
§7.8 總結 192
第八章基於FPGA的圖像邊緣檢測系統 193
§8.1 背景介紹 193
§8.2 設計要求 193
§8.3 基本原理 193
8.3.1 PLL 193
8.3.2 OV7670配置與採集 197
8.3.3 灰度轉換 198
8.3.4 高斯濾波器 200
8.3.5 SOBEL邊緣檢測原理 201
8.3.6 桌球操作原理 202
§8.4 設計方案 203
§8.5 FPGA設計實現 205
8.5.1 硬體 205
8.5.2 verilog代碼設計 206
§8.6 功能仿真 234
§8.7 板級調試 242
§8.8 總結 242