Xilinx FPGA原理與實踐 基于Vivado和Verilog HDL
定 價:37 元
叢書名:普通高等教育“十三五”規(guī)劃教材
- 作者:盧有亮
- 出版時間:2018/5/1
- ISBN:9787111593348
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP332.1-43
- 頁碼:236
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書以目前流行的Xilinx7系列FPGA的開發(fā)為主線,全面講解FPGA的原理及電路設(shè)計、VerilogHDL語言及Vivado的應用,并循序漸進地從組合邏輯和時序邏輯的開發(fā)開始,深入到FPGA的基礎(chǔ)應用、綜合應用和進階應用。本書具有理論和實踐緊密結(jié)合的特點,在內(nèi)容的設(shè)計上既重視學生對基礎(chǔ)理論知識的認知過程,又通過由易到難的19個實踐逐步提高理論知識及培養(yǎng)開發(fā)能力,為學生提高FPGA設(shè)計開發(fā)能力及提高知識應用素質(zhì)提供平臺與指導。通過本書的學習和實踐,學生能夠達到初級FPGA開發(fā)工程技術(shù)人員的水平。
在電子信息領(lǐng)域. 現(xiàn)場可編程門陣列(FPGA) 廣泛地應用在工業(yè)、軍事、醫(yī)療、商業(yè)、能源等各個行業(yè). 普通高校中通信、電子信息、自動化等專業(yè)大多都需要開設(shè)與FPGA 相關(guān)的課程.一般情況下. 學習FPGA 的最直接支撐課程是數(shù)字電路. 掌握FPGA 的開發(fā)將拓寬學生的知識面. 學生會將學到的內(nèi)容轉(zhuǎn)化為工程實際應用. 對于學生的進一步深造及有競爭力的就業(yè)都有極大的幫助.我從多年數(shù)字電路課程的教學及FPGA 選修課的教學中. 以及多年的工程實踐中提煉了一些經(jīng)驗和教訓. 以寫書作為一個小小的總結(jié). 希望學生通過學習本書能夠達到FPGA 開發(fā)工程技術(shù)人員的初步水平.本書選用的是Xilinx Artix ̄7 系列的FPGA. 因為它的技術(shù)相對新且具備較高的性價比. 另外. 這種FPGA 還有可供開發(fā)者直接使用的IP 核資源. 開發(fā)工具就是Xilinx 最新的Vivado 開發(fā)套件. 編程語言選擇Verilog HDL. 為了便于學生的學習. 書中有關(guān)FPGA 電路板配置的電路圖保留了廠家的畫法.本書的第一條線索是工程. 我在自己設(shè)計的硬件平臺上編寫和實現(xiàn)了19 個由易到難、循序漸進的工程實例. 而這些工程實例很多是近年來教學的總結(jié). 這些實例分散在第3 章~ 第7 章.例如最簡單的工程是多數(shù)表決器. 就是第3 章組合邏輯設(shè)計實踐的第一個工程. 非常有利于讀者入門. 通過這個工程實例. 學生可掌握開發(fā)的各個步驟. 鞏固HDL 語言. 是“ 我的第一個工程”. 最后一個工程是實現(xiàn)簡單的示波器. 需要一些運算和處理. 調(diào)用前面工程實現(xiàn)的模塊和IP. 最后為了調(diào)試加入的Vivado 內(nèi)置邏輯分析儀可解決調(diào)試方面的問題. 所有的工程在附錄中都有相應表格. 方便讀者查找.第二條線索是工程Verilog HDL 的學習. 在第2 章是關(guān)于Verilog HDL 的基礎(chǔ)內(nèi)容. 建議學生快速學習. 然后通過后續(xù)章節(jié)的實踐來真正掌握它. 并不需要死記硬背.第三條線索就是Vivado 的開發(fā). 包括Vivado 安裝、工程和文件的組織、綜合實現(xiàn)及下載、引腳約束、仿真、電路查看、IP 核的使用和設(shè)計、Vivado 下XADC 及BRAM 的開發(fā)、內(nèi)置邏輯分析儀的使用等. 如果把Vivado 的開發(fā)作為1 章. 一個菜單一個菜單地描述. 將是效率最低的方法. 因此在第2 章的后部分進行簡單的描述. 然后在后續(xù)章節(jié)的實踐中一點一點地應用. 自然就掌握了Vivado.第四條線索是數(shù)字電路的應用. 因此第3 章是組合邏輯設(shè)計. 第4 章是時序邏輯設(shè)計. 我認為數(shù)字電路是學習FPGA 的基礎(chǔ). 而通過FPGA 實踐能夠真正掌握數(shù)字電路的內(nèi)容.本書的章節(jié)設(shè)計是:第1 章是FPGA 基礎(chǔ)及電路設(shè)計. 后續(xù)的開發(fā)需要知道引腳的分配. 所以將電路設(shè)計放在最前面. 這一章不需要詳細講. 建議不超過6 個學時.Ⅳ。兀椋欤椋睿 FPGA 原理與實踐———基于Vivado 和Verilog HDL第2 章是Verilog HDL 語言與Vivado. 本章所講的Verilog HDL 足夠用了. 都是精華. 但需要更少的學時. 因為筆者知道學時非常緊張. 建議6 ~8 個學時.第3 章是組合邏輯電路設(shè)計與Vivado 進階. 包含了“ 我的第一個工程”. 反復地設(shè)計多數(shù)表決器. 第二個工程就使用了IP 核. 第三個工程就用第二個工程的IP 核來實現(xiàn). 內(nèi)容雖然少.但是可以用6 ~8 個學時. 讓學生真正掌握. 原因是這個時候?qū)W生的Verilog HDL 編程能力還不夠強. 這章后面給出的習題. 都可以作為課程設(shè)計的內(nèi)容.第4 章是時序邏輯電路FPGA 實現(xiàn). 通過本章的學習. 學生如果認真實踐. 能夠較深入地掌握數(shù)字電路. 對FPGA 的開發(fā)也能夠更加熟練. 建議用8 ~10 個學時.第5 章是FPGA 基本實踐. 實現(xiàn)流水燈、數(shù)碼管動態(tài)顯示及VGA 顯示工程. 將進一步提高學生的開發(fā)和應用能力. 教師可以主要講其中的2 ~3 個工程實踐. 其他的留給學生自學和自己實踐. 然后通過答疑和討論課來解決問題. 培養(yǎng)學生的自主學習能力和自主實踐能力. 建議8 ~12 個學時.第6 章是FPGA 綜合實踐. 包括了兩個設(shè)計與實現(xiàn): 電子秒表的設(shè)計與實現(xiàn)、串行異步通信的設(shè)計與實現(xiàn). 電子秒表是一個比較好的綜合性實踐. 建議只對于學習了微機原理的學生講串行異步通信的設(shè)計與實現(xiàn)部分. 建議用4 ~8 個學時.第7 章FPGA 進階原理部分的教學是7 系列FPGA 芯片的XADC 及BRAM. 在這個基礎(chǔ)上進一步掌握使用Verilog 語言和IP 核等技術(shù)進行模擬量采集及存儲器訪問的項目開發(fā)的流程. 并實現(xiàn)一個多通道電壓表實例及一個示波器實例. 建議至少應講解電壓表的實現(xiàn). 示波器的實例可以給學生們做自學或挑戰(zhàn)式學習. 建議6 ̄8 個學時.附錄A 是引腳說明文件. 是我設(shè)計的實驗板的基礎(chǔ)文件. 對看懂電路原理有幫助.附錄B 是實驗板資源. 包括了所有引腳的說明. 做約束文件時必須參考.附錄C 是一種實驗或課程設(shè)計教學安排. 供教師布置實驗題或課程設(shè)計題時參考.附錄D 是所有工程例程的分章節(jié)匯總.附錄E 是一個大而全的約束文件. 為讀者實現(xiàn)約束文件節(jié)約時間.本書的教學視頻和相關(guān)資源. 將放在中國大學( icourse163.. org) 慕課上. 課程名稱為“數(shù)字設(shè)計FPGA 應用”. 本書的代碼和課件、教案、實驗指導書等相關(guān)資源可以在機械工業(yè)出版社教育服務(wù)網(wǎng)( www.. cmpedu.. com) 上獲取. 也可以在愛板網(wǎng)( www.. eeboard.. com / bp)獲取和交流. 配套實驗板的更多信息可以在附錄B 獲取.電子科技大學的姜書艷、陳瑜、井實老師對書籍的編寫及例程的設(shè)計給予了支持和協(xié)助. 本書的實驗電路板主要由本人及連利波碩士設(shè)計. 趙鵬、謝雄及張桓源也參與了部分工作.感謝機械工業(yè)出版社吉玲編輯的大力支持. 并和我對書籍的寫作進行了大量的交流. 提出了非常好的建議. 另外. 還要感謝選擇本書的同行及給予我很多建議、支持和幫助的朋友.盧有亮于電子科技大學
前 言
第1 章 FPGA基礎(chǔ)及電路設(shè)計 1
。. 1。疲校牵 基礎(chǔ)及7 系列FPGA 基本原理 1
。. 1. 1。疲校牵 概述 1
。. 1. 2。疲校牵 基本邏輯結(jié)構(gòu) 2
。. 1. 3 7 系列FPGA CLB 4
。. 1. 4。 系列FPGA 的IOB 8
。. 1. 5。 系列FPGA 及7a35tftg256 ̄1 特性 9
。. 2 FPGA 電路設(shè)計 11
。. 2. 1。疲校牵 的BANK 電路 11
。. 2. 2。蹋牛 驅(qū)動電路 13
1. 2. 3 撥碼開關(guān)電路 13
。. 2. 4 按鍵電路 14
。. 2. 5 七段數(shù)碼管驅(qū)動電路 15
。. 2. 6。郑牵 顯示驅(qū)動電路 17
。. 2. 7 RS ̄232 驅(qū)動電路 19
。. 2. 8 配置電路 20
。. 2. 9。兀粒模 接口和擴展接口 22
習題 24
第2 章 Verilog HDL 語言與Vivado 25
2. 1。郑澹颍椋欤铮 HDL 基本結(jié)構(gòu) 25
2. 1. 1 一個簡單的組合邏輯實例 25
。. 1. 2 一個簡單的時序邏輯實例 27
2. 1. 3。郑澹颍椋欤铮 HDL 結(jié)構(gòu)要求 28
。. 2 數(shù)據(jù)類型及變量、常量 29
。. 2. 1 邏輯值和常量 30
。. 2. 2 線網(wǎng)型變量wire 30
。. 2. 3 寄存器類型reg 31
。. 2. 4 符號常量 32
。. 2. 5 存儲器型變量 32
。. 3 運算符 33
2. 3. 1 算術(shù)運算符 33
。. 3. 2 邏輯運算符 33
。. 3. 3 按位運算符 34
。. 3. 4 關(guān)系運算符 34
。. 3. 5 等式運算符 35
。. 3. 6 縮減運算符 35
2. 3. 7 移位運算符 35
。. 3. 8 條件運算符和拼接運算符 36
。. 3. 9 運算符的優(yōu)先級 37
。. 4 語句 37
。. 4. 1 賦值語句、結(jié)構(gòu)說明語句、阻塞與非阻塞 38
。. 4. 2 條件語句 41
。. 4. 3 循環(huán)語句 43
。. 5。郑椋觯幔洌 初步 46
。. 5. 1。郑椋觯幔洌 獲取和安裝 47
2. 5. 2。郑椋觯幔洌 主界面 47
習題 50
第3 章 組合邏輯電路與Vivado 進階 51
。. 1 我的第一個工程———多數(shù)表決器 51
。. 1. 1 多數(shù)表決器的分析和邏輯實現(xiàn) 51
。. 1. 2 多數(shù)表決器的工程創(chuàng)建 52
。. 1. 3 多數(shù)表決器的Verilog HDL 源文件創(chuàng)建 56
。. 1. 4 多數(shù)表決器的Verilog HDL 代碼實現(xiàn)及RTL 分析 58
。. 1. 5 綜合 59
。. 1. 6 約束 60
。. 1. 7 實現(xiàn) 62
。. 1. 8 仿真 63
。. 1. 9 編程和調(diào)試 65
。. 2。常 譯碼器設(shè)計和IP 核 70
。. 2. 1 譯碼器的實現(xiàn) 70
3. 2. 2 譯碼器IP 核生成 75
。. 3 調(diào)用IP 核實現(xiàn)多數(shù)表決器 78
。. 3. 1 使用74x138 實現(xiàn)多數(shù)表決器的設(shè)計 78
。. 3. 2 構(gòu)建新工程并調(diào)用IP 核 78
習題 83
目 錄Ⅶ
第4 章 時序邏輯電路FPGA實現(xiàn) 84
4. 1 時鐘同步狀態(tài)機的設(shè)計 84
。. 1. 1 時鐘同步狀態(tài)機及其設(shè)計流程 84
。. 1. 2 時鐘同步狀態(tài)機設(shè)計方法構(gòu)建序列發(fā)生器 86
。. 1. 3 狀態(tài)圖直接描述法實現(xiàn)序列發(fā)生器 90
。. 2 同步計數(shù)器74x163 的實現(xiàn) 94
。. 3 移位寄存器的實現(xiàn)和應用 97
。. 3. 1 74x194 的實現(xiàn) 97
。. 3. 2 使用74x194IP 核實現(xiàn)11001 序列發(fā)生器 100
習題 104
第5 章 FPGA基本實踐 105
5. 1 流水燈實踐 105
。. 1. 1 流水燈的關(guān)鍵設(shè)計 105
5. 1. 2 流水燈工程的Vivado 實現(xiàn) 106
。. 2 數(shù)碼管動態(tài)顯示實踐 111
。. 2. 1 數(shù)碼管動態(tài)顯示原理分析 111
。. 2. 2 數(shù)碼管動態(tài)顯示設(shè)計 112
。. 2. 3 數(shù)碼管動態(tài)顯示工程的Vivado 實現(xiàn) 113
。. 2. 4 數(shù)碼管動態(tài)顯示IP 核設(shè)計與實現(xiàn) 117
。. 2. 5 調(diào)用IP 核實現(xiàn)動態(tài)顯示 120
。. 3 VGA 顯示的實現(xiàn) 123
。. 3. 1 VGA 顯示基本原理 123
。. 3. 2。郑牵 顯示設(shè)計與實現(xiàn) 125
習題 132
第6 章 FPGA綜合實踐 133
。. 1 電子秒表的設(shè)計與實現(xiàn) 133
。. 1. 1 按鍵消抖 133
。. 1. 2 秒表綜合設(shè)計 136
。. 2。眨粒遥 串行接口設(shè)計及通信實現(xiàn) 142
。. 2. 1 異步串行接口原理分析 142
。. 2. 2 波特率及其他時鐘信號發(fā)生模塊設(shè)計 143
。. 2. 3 串行發(fā)送程序設(shè)計 145
。. 2. 4 串行接收程序設(shè)計 148
。. 2. 5 串行通信頂層程序設(shè)計 152
6. 2. 6 串行通信功能測試 153
習題 155
Ⅷ。兀椋欤椋睿 FPGA 原理與實踐———基于Vivado 和Verilog HDL
第7 章 FPGA 進階——XADC、BRAM原理及電壓表、示波器設(shè)計 156
。. 1。兀粒模 基本結(jié)構(gòu)及寄存器 156
。. 1. 1 XADC 邏輯結(jié)構(gòu) 156
。. 1. 2。兀粒模 對外連接說明 156
。. 1. 3。兀粒模 端口 159
。. 1. 4 XADC 狀態(tài)寄存器和控制寄存器 160
。. 1. 5 操作模式 166
。. 1. 6。兀粒模 操作時序 167
。. 2 應用XADC 實現(xiàn)多路電壓采集及顯示 168
。. 2. 1 生成XADC IP 核實例 168
。. 2. 2 使用XADC IP 核實現(xiàn)XADC 序列模式訪問模塊 171
7. 2. 3。/ D 序列采集和顯示實現(xiàn) 175
。. 2. 4 序列采集及顯示測試 179
。. 3 應用XADC 及BRAM 實現(xiàn)多通道示波器 181
。. 3. 1 塊存儲器BRAM 原理 181
。. 3. 2 塊內(nèi)存生成IP 的使用和仿真驗證 186
7. 3. 3 多通道示波器的設(shè)計思路 192
。. 3. 4 顯示內(nèi)存設(shè)計及其訪問模塊構(gòu)建及仿真 193
7. 3. 5 波形發(fā)生器模塊設(shè)計及仿真 196
。. 3. 6。郑牵 顯示驅(qū)動模塊設(shè)計及仿真 202
。. 3. 7 加入邏輯分析儀模塊及頂層模塊實現(xiàn) 206
。. 3. 8 功能測試 209
習題 209
附錄 211
附錄A。悖罚幔常担簦妫簦纾玻担叮 引腳說明 211
附錄B 口袋實驗板資源 218
附錄C 實驗或課程設(shè)計教學安排 229
附錄D 分章節(jié)代碼匯總 230
附錄E。 型實驗板參考約束文件 232
參考文獻 236