《你好FPGA:一本可以聽的入門書》是2016年7月電子工業出版社出版的圖書,作者是至芯科技。
基本介紹
- 中文名:你好FPGA:一本可以聽的入門書
- 作者:至芯科技
- ISBN:9787121290916
- 頁數:348頁
- 定價:65元
- 出版社:電子工業出版社
- 出版時間:2016年7月
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書由至芯科技在各大高校的授課內容整理而來,是為初學者量身定製的FPGA入門教材,從基礎的軟體安裝、工具使用、語法解釋、設計方法、常用IP,到最後的設計技巧及大量的進階實驗,內容環環相扣,為讀者建立了一個比較清晰的學習脈絡。設計思路及方法為本書重點強調的內容,它作為一條主線貫穿始終,希望讀者學習時注意體會。只有掌握了正確的學習和設計方法,讀者才可能在數字邏輯設計的領域越走越遠。本書沒有收錄過多煩瑣的理論,一切從實戰出發,按照一套相對高效的設計方法直接切入一個個小的項目,深入淺出。希望以此可以培養廣大讀者的設計能力,我們不但要知道某個邏輯可以這樣寫,更重要的還必須清楚為什麼這樣寫,這樣寫有什麼優勢或劣勢,還有沒有最佳化空間等。與本書配套的視頻已保存在網路雲中,讀者可在下載後參考學習。
本書內容由淺入深,適合廣大可程式邏輯器件的初學者作為入門和進階的教材,也適合作為電子信息、計算機等專業本科生、研究生,以及具有一定電子專業知識背景的電子工程師的參考用書。
圖書目錄
第1章 沒有金剛鑽,不攬瓷器活 1
1.1 Quartus II 15.0——溫婉簡約編譯器 1
1.1.1 寫在前面的話 1
1.1.2 Altera Quartus II 15.0安裝 1
1.2 ModelSim 10.3d——獨具慧眼仿真工 7
1.3 級聯調試——標準設計勢必行 7
第2章 工欲善其事,必先利其器 31
2.1 工程規範——我的地盤,你說了算 31
2.2 初識流水燈——很傻很天真 31
2.2.1 項目需求 31
2.2.2 相關技術介紹 31
2.2.3 硬體設計 32
2.2.4 頂層架構設計 32
2.2.5 連線埠描述 33
2.2.6 代碼解釋 33
2.3 測試檔案——一切都似曾相識 39
第3章 諄諄教誨莫相忘,字字珠璣記心頭 41
3.1 賦值語句——你是我的最愛 41
3.1.1 寫在前面的話 41
3.1.2 非阻塞賦值語句 41
3.1.3 阻塞賦值語句 43
3.2 關係運算符——心中永遠的痛 45
3.2.1 寫在前面的話 45
3.2.2 關係運算符的種類 45
3.2.3 關係運算符的使用意義 45
3.2.4 關係運算符與算數運算符優先權 45
3.3 if-else 與 case——永遠的歡喜冤家 45
3.3.1 寫在前面的話 45
3.3.2 if-else 條件分支語句 46
3.3.3 case分支控制語句 50
3.3.4 case語句和if-else語句的區別 52
3.4 縮減運算符——就這樣變沒了 52
3.4.1 寫在前面的話 52
3.4.2 工程實例 52
3.5 移位運算符——性子總是這么直 54
3.5.1 寫在前面的話 54
3.5.2 移位運算符實例 55
3.6 位拼運算符——聰慧靈秀惹人妒 57
3.6.1 寫在前面的話 57
3.6.2 代碼實例 57
第4章 會當凌絕頂,設計Top-Down 59
4.1 層次化設計方法——心中永遠的女神 59
4.1.1 寫在前面的話 59
4.1.2 層次化設計框圖示例 59
4.1.3 層次化設計實例 60
4.2 層次化設計技巧——巧奪天工磚瓦匠 65
4.2.1 寫在前面的話 65
4.2.2 電平觸發 65
4.2.3 尖峰脈衝 66
第5章 內涵豐富本領多,誰與爭鋒IP核 68
5.1 鎖相環——速度,你說了算 68
5.1.1 寫在前面的話 68
5.1.2 項目需求 68
5.1.3 操作步驟 68
5.1.4 頂層架構設計 73
5.1.5 連線埠功能 73
5.1.6 代碼解釋 73
5.1.7 仿真結果分析 75
5.2 ROM——只有你最慷慨 75
5.2.1 寫在前面的話 75
5.2.2 項目需求 75
5.2.3 操作步驟 75
5.2.4 頂層架構設計 80
5.2.5 模組功能介紹 80
5.2.6 模組連線埠和內部連線描述 80
5.2.7 代碼解釋 80
5.2.8 仿真分析 83
5.3 RAM——有入有出,公平合理 84
5.3.1 寫在前面的話 84
5.3.2 項目需求 84
5.3.3 操作步驟 84
5.3.4 頂層架構設計 86
5.3.5 模組功能介紹 86
5.3.6 模組連線埠和內部連線描述 87
5.3.7 代碼解釋 87
5.2.8 仿真分析 90
5.4 FIFO——重中之重快取器 91
5.4.1 寫在前面的話 91
5.4.2 項目需求 91
5.4.3 操作步驟 91
5.4.4 頂層架構設計 94
5.4.5 模組功能介紹 95
5.4.6 模組連線埠和內部連線描述 95
5.4.7 代碼解釋 95
5.4.8 仿真分析 100
5.5 移位暫存器——你是我的驕傲 101
5.5.1 寫在前面的話 101
5.5.2 功能要求 102
5.5.3 操作步驟 103
5.5.4 頂層架構設計 105
5.5.5 模組功能介紹 105
5.5.6 模組連線埠和內部連線描述 105
5.5.7 代碼解釋 106
5.5.8 仿真分析 110
第6章 基礎項目我在行,信手拈來顯聰慧 111
6.1 二選一之戰——我只是個新兵 111
6.1.1 寫在前面的話 111
6.1.2 項目需求 111
6.1.3 系統架構 111
6.1.4 模組功能介紹 111
6.1.5 頂層模組連線埠描述 111
6.1.6 代碼解釋 112
6.1.7 仿真分析 113
6.1.8 二選一數據暫存 114
6.2 三態門之戰——機關算盡太聰明 116
6.2.1 寫在前面的話 116
6.2.2 項目需求 116
6.2.3 系統架構 117
6.2.4 模組功能介紹 117
6.2.5 頂層模組連線埠描述 117
6.2.6 代碼解釋 117
6.2.7 仿真分析 119
6.3 串並轉換——你無處不在 120
6.3.1 寫在前面的話 120
6.3.2 需求分析 120
6.3.3 頂層框架設計 120
6.3.4 頂層模組連線埠介紹 121
6.3.5 代碼實現 121
6.4 generate語句——呵呵,你就會偷懶 125
6.4.1 寫在前面的話 125
6.4.2 基本概念 126
6.4.3 generate_for語句 126
6.2.4 generate_if語句 132
6.4.5 generate_case語句 133
6.5 邊沿檢測——如此高大上 135
6.5.1 寫在前面的話 135
6.5.2 電路原理分析 135
6.5.3 頂層框架結構 136
6.5.4 頂層模組連線埠介紹 136
6.5.5 代碼實現 136
6.5.6 仿真波形分析 138
6.6 按鍵消抖—且看老夫手段 139
6.6.1 寫在前面的話 139
6.6.2 基於尖峰脈衝的按鍵消抖 139
6.6.3 項目需求 139
6.6.4 誤區排除 139
6.6.5 設計思路 140
6.6.6 系統框架 140
6.6.7 頂層連線埠描述 141
6.6.8 代碼解釋 141
6.6.9 仿真分析 144
第7章 沒有標準的方法,但見可行的技巧 146
7.1 異步復位同步釋放——高端神秘你最帥 146
7.1.1 寫在前面的話 146
7.1.2 基本概念 146
7.1.3 代碼舉例 146
7.1.4 異步復位同步釋放電路 148
7.2 任意分頻之戰——一切都如此簡單 155
7.2.1 寫在前面的話 155
7.2.2 實現原理 156
7.2.3 系統框架 156
7.2.4 頂層模組連線埠描述 156
7.2.5 代碼分析 156
7.2.6 仿真分析 159
7.3 二進制數轉BCD——終極進化 160
7.3.1 寫在前面的話 160
7.3.2 基本概念 160
7.3.3 逐步移位法原理 160
7.3.4 設計任務 161
7.3.5 頂層框圖設計 161
7.3.6 代碼實現 163
7.3.7 仿真分析 165
7.4 BCD轉二進制——返璞歸真 166
7.4.1 寫在前面的話 166
7.4.2 基本概念 166
7.4.3 移位算法原理 166
7.4.4 頂層框架圖 166
7.4.5 頂層模組連線埠介紹 167
7.4.6 代碼實現 167
7.4.7 仿真分析 169
7.5 流水線設計之戰——效率決定成敗 170
7.5.1 寫在前面的話 170
7.5.2 流水線的基本概念 170
7.5.3 流水線改造實例 171
7.6 Signaltap 之戰——奸細,哪裡逃 177
7.6.1 寫在前面的話 177
7.6.2 背景知識 178
7.6.3 典型的SignalTap II調試流程 180
7.6.4 SignalTap II調試具體操作步驟 180
7.6.5 具體步驟 181
第8章 進階首選我當前,乘勝追擊勢必行 204
8.1 字元狀態機之戰——進來的,都要審查 204
8.1.1 寫在前面的話 204
8.1.2 項目需求 204
8.1.3 解決方案 204
8.1.4 系統架構 204
8.1.5 模組功能介紹 204
8.1.6 頂層模組連線埠描述 205
8.1.7 代碼解釋 205
8.1.8 仿真分析 210
8.2 數碼管之戰——好像勝利的曙光 210
8.2.1 寫在前面的話 210
8.2.2 項目需求 210
8.2.3 原理分析 210
8.2.4 單個數碼管顯示 212
8.2.5 6個數碼管顯示 215
8.3 PS2之戰——鍵盤原來是這樣 221
8.3.1 寫在前面的話 221
8.3.2 項目需求 221
8.3.3 原理分析 222
8.3.4 系統架構 223
8.3.5 模組功能介紹 223
8.3.6 頂層模組連線埠描述 223
8.3.7 用Signaltap II分析波形 223
8.3.8 代碼解釋 225
8.3.9 仿真分析 232
8.4 矩陣鍵盤之戰——嚴密的資源整合 233
8.4.1 寫在前面的話 233
8.4.2 項目需求 233
8.4.3 矩陣鍵盤的原理 233
8.4.4 架構設計 235
8.4.5 模組功能介紹 235
8.4.6 頂層模組連線埠描述 235
8.4.7 代碼解釋 235
8.4.8 仿真分析 241
8.5 IIC之戰——配置離不開你 241
8.5.1 寫在前面的話 241
8.5.2 項目需求 242
8.5.3 IIC的原理分析 242
8.5.4 架構設計 246
8.5.5 模組功能介紹 246
8.5.6 頂層模組連線埠描述 246
8.5.7 代碼解釋 246
8.5.8 仿真分析 263
8.6 串口通信之戰——通信終於暢通了 264
8.6.1 寫在前面的話 264
8.6.2 項目需求 265
8.6.3 UART的原理分析 265
8.6.4 系統架構 266
8.6.5 模組功能介紹 268
8.6.6 模組連線埠和內部連線描述 268
8.6.7 代碼解釋 268
8.5.8 仿真分析 276
8.7 VGA之戰——我型我酷炫 276
8.7.1 寫在前面的話 276
8.7.2 什麼是VGA 277
8.7.3 VGA接口 277
8.7.4 VGA顯示原理 278
8.7.5 頂層框架 280
8.7.6 頂層模組連線埠描述 280
8.7.7 代碼實現 280
8.7.8 仿真分析 285
8.8 12864液晶之戰——心靈的視窗 285
8.8.1 寫在前面的話 285
8.8.2 基本概念 285
8.8.3 硬體電路結構 286
8.8.4 官方代碼解析 287
8.8.5 項目需求 293
8.8.6 系統架構 293
8.8.7 代碼解釋 294
8.8.8 仿真分析 305
8.9 DDS——形隨心動 305
8.9.1 寫在前面的話 305
8.9.2 項目需求 305
8.9.3 項目分析 305
8.9.4 系統架構 306
8.9.5 模組功能介紹 306
8.9.6 頂層連線埠和內部連線描述 306
8.9.7 波形數據的由來 307
8.9.8 波形發生器(不可調頻和調相) 308
8.9.9 波形發生器(不可調頻,但可以調相) 312
8.9.10 波形發生器(可以調頻,可以調相) 315
8.9.11 最終設計 318
8.10 蜂鳴器之戰——奏響凱旋的樂章 322
8.10.1 寫在前面的話 322
8.10.2 什麼是蜂鳴器 322
8.10.3 設計任務 323
8.10.4 頂層連線埠介紹 325
8.10.5 代碼解釋 325
8.10.6 仿真分析 331