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