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