零基礎學FPGA設計——理解硬體編程思想

零基礎學FPGA設計——理解硬體編程思想

《零基礎學FPGA設計——理解硬體編程思想》是電子工業出版社出版的圖書,作者是杜勇。

基本介紹

  • 中文名:零基礎學FPGA設計——理解硬體編程思想 
  • 作者:杜勇
  • 出版時間:2023年4月
  • 出版社:電子工業出版社
  • 頁數:304 頁
  • 字數:486千字
  • ISBN:9787121452154
  • 開本:16 開
內容簡介,圖書目錄,

內容簡介

本書是針對FPGA初學者編著的入門級圖書,以高雲公司的FPGA和Verilog HDL為開發平台,詳細闡述FPGA設計所需的基礎知識、基本語法、設計流程、設計技巧,全面、細緻、深刻地剖析了Verilog HDL與C語言等傳統順序語言的本質區別,使讀者通過簡單的實例逐步理解FPGA的硬體設計思想,實現快速掌握FPGA設計方法的目的。本書思路清晰、語言流暢、分析透徹,在簡明闡述設計方法的基礎上,重點辨析讀者易於與常規順序語言混淆的概念,力求使讀者在較短的時間內理解硬體編程思想,掌握FPGA設計方法。

圖書目錄

第一篇 基礎篇
第1章 必備的數字邏輯電路知識 3
1.1 數字邏輯和邏輯電平 3
1.1.1 模擬器件構成的數字電路 3
1.1.2 TTL反相器電路 4
1.1.3 現實中的數位訊號波形 5
1.1.4 了解常用的邏輯電平 6
1.2 布爾代數 7
1.2.1 布爾和幾個基本運算規則 7
1.2.2 常用的布爾代數法則 8
1.3 組合邏輯電路基礎 9
1.3.1 組合邏輯電路的表示方法 9
1.3.2 為什麼會產生競爭冒險 10
1.4 時序邏輯電路基礎 11
1.4.1 時序邏輯電路的結構 11
1.4.2 D觸發器的工作波形 12
1.4.3 計數器與暫存器電路 13
1.5 小結 16
第2章 可程式邏輯器件基礎 17
2.1 可程式邏輯器件的歷史 17
2.1.1 PROM是可程式邏輯器件 17
2.1.2 從PROM到GAL 19
2.1.3 從SPLD到CPLD 21
2.1.4 FPGA的時代 22
2.2 FPGA的發展趨勢 24
2.3 FPGA的結構 26
2.4 FPGA與其他處理平台的比較 28
2.4.1 ASIC、DSP、ARM的特點 29
2.4.2 FPGA的特點及優勢 30
2.4.3 FPGA與CPLD的區別 31
2.5 工程中如何選擇FPGA器件 31
2.6 小結 32
第3章 準備好開發環境 33
3.1 安裝FPGA開發環境 33
3.1.1 安裝高云云源軟體 33
3.1.2 安裝ModelSim軟體 35
3.2 開發平台CGD100簡介 38
3.3 Verilog HDL基本語法 39
3.3.1 Verilog HDL的程式結構 39
3.3.2 數據類型及基本運算符 42
3.3.3 運算符優先權及關鍵字 44
3.3.4 賦值語句與塊語句 44
3.3.5 條件語句和分支語句 47
3.4 小結 48
第二篇 初識篇
第4章 FPGA設計流程—LED流水燈電路 51
4.1 FPGA設計流程 51
4.2 流水燈設計實例要求 54
4.3 讀懂電路原理圖 55
4.4 流水燈的設計輸入 57
4.4.1 建立FPGA工程 57
4.4.2 Verilog HDL程式輸入 59
4.5 程式檔案下載 62
4.6 小結 64
第5章 從組合邏輯電路學起 65
5.1 從最簡單的與非門電路開始 65
5.1.1 調用門級結構描述與非門 65
5.1.2 二合一的命名原則 66
5.1.3 用門級電路搭建一個投票電路 67
5.2 設計複雜一點的投票電路 68
5.2.1 門電路設計方法的短板 68
5.2.2 利用assign語句完成門電路功能 69
5.2.3 常用的if…else語句 71
5.2.4 reg與wire的用法區別 73
5.2.5 記住“<=”與“=”賦值的規則 74
5.2.6 非常重要的概念—信號位寬 75
5.2.7 行為級建模的5人投票電路 75
5.3 ModelSim仿真電路功能 76
5.3.1 4線-2線編碼器設計 77
5.3.2 建立ModelSim工程 78
5.3.3 設計測試激勵檔案 79
5.3.4 查看ModelSim仿真波形 82
5.4 典型組合邏輯電路Verilog HDL設計 84
5.4.1 8421BCD編碼器電路 85
5.4.2 8線-3線優先編碼器電路 86
5.4.3 74LS138解碼器電路 88
5.4.4 與if…else語句齊名的case語句 90
5.4.5 數據分配器與數據選擇器電路 91
5.5 數碼管靜態顯示電路設計 93
5.5.1 數碼管的基本工作原理 93
5.5.2 實例需求及電路原理分析 94
5.5.3 數碼管顯示電路Verilog HDL設計 95
5.5.4 板載測試 97
5.6 小結 98
第6章 時序邏輯電路的靈魂—D觸發器 101
6.1 深入理解D觸發器 101
6.1.1 D觸發器產生一個時鐘周期的延時 101
6.1.2 D觸發器能工作的最高時鐘頻率分析 102
6.2 D觸發器的描述方法 104
6.2.1 單個D觸發器的Verilog HDL設計 104
6.2.2 異步復位的D觸發器 106
6.2.3 同步復位的D觸發器 108
6.2.4 時鐘使能的D觸發器 109
6.2.5 D觸發器的ModelSim仿真 111
6.2.6 其他形式的D觸發器 112
6.3 初試牛刀—邊沿檢測電路設計 113
6.3.1 邊沿檢測電路的功能描述 113
6.3.2 邊沿檢測電路的Verilog HDL設計 114
6.3.3 改進的邊沿檢測電路 115
6.4 連續序列檢測電路—邊沿檢測電路的升級 116
6.4.1 連續序列檢測電路設計 116
6.4.2 分析Verilog HDL並行語句 118
6.4.3 再論“<=”與“=”賦值 119
6.4.4 序列檢測電路的ModelSim仿真 121
6.5 任意序列檢測器—感受D觸發器的強大 124
6.5.1 完成飲料質量檢測電路功能設計 124
6.5.2 最佳化檢測電路的設計代碼 128
6.6 小結 129
第7章 時序邏輯電路的精華—計數器 131
7.1 簡單的十六進制計數器 131
7.1.1 計數器設計 131
7.1.2 計數器就是加法器和觸發器 133
7.2 十進制計數器 134
7.2.1 具有復位及時鐘使能功能的計數器 134
7.2.2 討論計數器的進制 135
7.2.3 計數器代碼的花式寫法 136
7.3 計數器是流水燈的核心 137
7.3.1 設計一個秒信號 137
7.3.2 流水燈電路的設計方案 139
7.3.3 閃爍頻率可控制的流水燈 140
7.3.4 採用移位運算設計流水燈電路 142
7.4 Verilog的本質是並行語言 142
7.4.1 典型的Verilog錯誤用法—同一信號重複賦值 142
7.4.2 並行語言與順序語言 144
7.4.3 採用並行思維分析信號重複賦值問題 145
7.5 呼吸燈電路設計 146
7.5.1 呼吸燈的工作原理 146
7.5.2 設計思路分析 147
7.5.3 亮度實現模組Verilog HDL設計 147
7.5.4 亮度控制模組Verilog HDL設計 148
7.5.5 頂層模組Verilog HDL設計 150
7.6 小結 151
第三篇 入門篇
第8章 設計簡潔美觀的秒表電路 155
8.1 設定一個目標—4位秒表電路 155
8.1.1 明確功能需求 155
8.1.2 形成設計方案 156
8.2 頂層檔案的Verilog HDL設計 157
8.3 設計一個完善的數碼管顯示模組 158
8.4 秒表計數模組的Verilog HDL設計 160
8.4.1 秒表計數電路設計 160
8.4.2 秒表計數電路的ModelSim仿真 162
8.4.3 簡潔美觀的秒表計數器設計 163
8.4.4 實現秒表的啟停功能 166
8.5 按鍵消抖模組的Verilog HDL設計 166
8.5.1 按鍵消抖產生的原理 166
8.5.2 按鍵消抖模組Verilog HDL設計 167
8.5.3 將按鍵消抖模組集成到秒表電路中 169
8.6 小結 169
第9章 數字密碼鎖電路設計 171
9.1 數字密碼鎖的功能描述 171
9.2 規劃好數字密碼鎖的功能模組 172
9.2.1 數字密碼鎖總體結構框圖 172
9.2.2 數字密碼鎖的頂層模組設計 172
9.3 數字密碼鎖功能子模組設計 174
9.3.1 按鍵消抖模組Verilog HDL設計 174
9.3.2 計數模組Verilog HDL設計 175
9.3.3 密碼設定模組才是核心模組 176
9.4 小結 178
第10章 簡易電子琴電路設計 179
10.1 音符產生原理 179
10.2 琴鍵功能電路設計 180
10.2.1 頂層模組設計 180
10.2.2 琴鍵模組設計 182
10.2.3 音符產生模組設計 183
10.3 自動演奏樂曲《梁祝》 185
10.3.1 自動演奏樂曲的原理 185
10.3.2 自動演奏樂曲《梁祝》片段 186
10.4 完整的電子琴電路設計 189
10.5 小結 190
第11章 套用廣泛的串口通信電路 191
11.1 RS-232串口通信的概念 191
11.2 串口硬體電路原理分析 192
11.3 串口通信電路Verilog HDL設計 193
11.3.1 頂層檔案的Verilog HDL設計 193
11.3.2 時鐘模組的Verilog HDL設計 195
11.3.3 接收模組的Verilog HDL設計 196
11.3.4 傳送模組的Verilog HDL設計 198
11.3.5 FPGA實現及板載測試 199
11.4 採用串口控制秒表電路 201
11.4.1 設計需求分析 201
11.4.2 頂層檔案的Verilog HDL設計 202
11.4.3 秒表時間獲取模組Verilog HDL設計 204
11.4.4 完善秒表電路頂層模組Verilog HDL代碼 205
11.4.5 完善秒表計數模組Verilog HDL代碼 207
11.4.6 FPGA實現及板載測試 210
11.5 小結 210
第12章 對狀態機的討論 211
12.1 有限狀態機的概念 211
12.2 狀態機的Verilog設計方法 212
12.2.1 一段式狀態機Verilog代碼 212
12.2.2 二段式狀態機Verilog代碼 213
12.2.3 三段式狀態機Verilog HDL代碼 215
12.3 計數器電路的狀態機描述方法 216
12.4 序列檢測器的狀態機描述方法 218
12.5 小結 221
第四篇 提高篇
第13章 基本的時序約束方法 225
13.1 電路的速度極限 225
13.2 時序約束方法 227
13.2.1 查看計數器的邏輯電路結構 227
13.2.2 計數器電路添加時鐘周期約束 229
13.3 速度與面積的取捨 231
13.3.1 多路加法器電路的結構分析 231
13.3.2 流水線操作的本質—討論多路加法器的運行速度 233
13.3.3 用一個加法器完成4路加法 235
13.3.4 串列加法器時序分析 238
13.4 小結 238
第14章 採用IP核設計 241
14.1 FPGA設計中的“拿來主義”—使用IP核 241
14.1.1 IP核的一般概念 241
14.1.2 FPGA設計中的IP核類型 242
14.2 時鐘IP核 244
14.2.1 全局時鐘資源 244
14.2.2 採用時鐘IP核生成多路時鐘信號 244
14.3 乘法器IP核 248
14.3.1 乘法器IP核參數的設定 248
14.3.2 乘法器IP核的功能仿真 250
14.4 存儲器IP核 251
14.4.1 ROM核 251
14.4.2 RAM核 255
14.5 小結 260
第15章 採用線上邏輯分析儀調試程式 261
15.1 線上邏輯分析儀的優勢 261
15.2 GAO的使用流程 262
15.3 採用GAO調試串口通信程式 263
15.3.1 調試目的 263
15.3.2 添加GAO到項目中 263
15.3.3 設定觸發信號及觸發條件 264
15.3.4 設定捕獲信號參數 265
15.3.5 觀察串口收發信號波形 267
15.4 小結 268
第16章 常用的FPGA設計技巧 269
16.1 默認引腳狀態設定 269
16.2 復位信號的處理方法 271
16.3 合理利用時鐘使能信號設計 272
16.4 利用移位相加實現乘法運算 273
16.5 根據晶片結構制定設計方案 274
16.6 浮點乘法器設計 275
16.6.1 單精度浮點數據格式 275
16.6.2 單精度浮點數乘法運算分析 276
16.6.3 自定義浮點數據格式 276
16.6.4 自定義浮點數據乘法算法設計 277
16.6.5 算法Verilog HDL實現 278
16.7 小結 284
參考文獻 287

相關詞條

熱門詞條

聯絡我們