Xilinx FPGA工程師成長手記 ( 簡體 字) |
作者:寇強 | 類別:1. -> 電子工程 -> FPGA |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 56447 詢問書籍請說出此書號!【有庫存】 NT售價: 350 元 |
出版日:8/1/2024 |
頁數:245 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302666950 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: FPGA(Field Programmable Gate Array,現場可編程門陣列)是在PAL和GAL等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。最初,FPGA主要應用于傳統領域,隨著信息產業與微電子技術的發展,其發展速度越來越快。尤其近幾年,FPGA的發展非常迅猛,其影響力越來越大。例如,比特幣挖礦、數據采集、人工智能等領域都可以看到FPGA的身影。如今,FPGA的應用遍及航空航天、汽車、醫療和工業控制等領域。 2010年,筆者在大學導師那里第一次接觸FPGA,那時感覺FPGA很神秘。正是這種神秘感,吸引筆者進入了該行業,開始了FPGA編程之旅。筆者大學畢業至今一直從事FPGA邏輯設計與驗證的相關工作,這些工作經歷使得筆者積累了豐富的項目開發經驗,如今已在FPGA接口應用領域取得了一些成就。 基于上述經歷,筆者想通過一本書將自己多年以來積累的FPGA設計心得和項目開發經驗分享給需要的人。具體而言,筆者編寫本書的主要原因有以下4點: * 行業需求使然。FPGA行業發展迅猛,應用領域廣泛,人才缺口很大,而圖書市場上缺少通俗易懂且實用性強的能帶領讀者快速上手的圖書。 * 筆者一直在思考,有沒有一種低門檻、易消化、易掌握和易上手的方法,讓初學者可以快速掌握FPGA技術,筆者想通過本書來嘗試解決這個問題。 * 筆者想通過本書分享自己多年積累的FPGA設計心得和項目開發經驗,讓FPGA學習人員少走彎路,能更快地將所學知識應用于產品和項目開發,從而加速產品和項目的上市。 * 筆者想通過一本書,讓行業內入職的新人可以通過自學快速掌握FPGA,從而節省大量的培訓時間和成本。 本書以一位FPGA從業者的身份,詳細介紹FPGA產品或項目開發所需要的基本技能。本書首先從FPGA的理論知識講起,詳細介紹FPGA芯片的發展背景、常用專業術語和硬件描述語言的基本語法,然后介紹FPGA的驗證方法和知識產權應用,最后結合實例詳細介紹低速接口設計與高速接口設計,并總結FPGA的開發技巧,以加深讀者對FPGA設計與驗證技術的理解。通過閱讀本書,讀者可以系統地掌握FPGA設計的精髓和流程,并達到實際上手開發產品或項目的水平。 本書特色 * 內容豐富:首先從FPGA的理論知識入手,詳細介紹FPGA芯片設計的背景、常用專業術語、硬件描述語言的基本語法;然后介紹FPGA的驗證方法和知識產權應用;最后詳細介紹低速接口和高速接口設計實例,并總結FPGA的開發技巧。 * 實例豐富:在講解中穿插多個典型實例,帶領讀者上手實踐,并加深對?FPGA設計與驗證技術的理解,進而快速掌握FPGA的開發流程,上手開發實際產品和項目。 * 圖文并茂:在講解中給出大量的示意圖,幫助讀者高效、直觀地理解FPGA的各種概念和實現原理。 * 注重技巧:總結大量的開發技巧,讓讀者少走很多彎路,從而加速新產品的上市,甚至提前交付項目。 * 源碼實用:本書涉及的實例源碼大多來源于實際項目,并給出詳細的注釋,讀者對這些源碼稍加修改即可直接用于實際項目。 * 提供習題:每章都提供習題,幫助讀者鞏固和提高所學的知識。 * 配教學PPT:提供配套教學PPT,方便相關院校的授課教師教學時使用。 本書內容 第1篇 Xilinx FPGA基礎知識 本篇涵蓋第1∼4章,主要介紹FPGA的概念、設計流程、基本理論、描述語言和功能驗證等內容。通過學習本篇內容,讀者可以快速掌握FPGA設計的基礎知識。 第1章FPGA概述,主要介紹FPGA的芯片廠商、應用領域、設計流程,以及FPGA工程師需要掌握的基本技能。通過學習本章內容,讀者可以對FPGA有個大致的了解。 第2章FPGA的基本理論,主要介紹FPGA的時鐘、復位、時序、異步時鐘域和約束等相關知識。通過學習本章內容,讀者可以系統地了解FPGA的基本理論知識。這些知識在FPGA設計中經常用到,其伴隨FPGA設計的整個過程,是FPGA邏輯設計不可缺少的一部分。 第3章FPGA的硬件描述語言,主要介紹VHDL、Verilog HDL和System Verilog語言的語法基礎,以及FPGA設計規范與編程技巧。通過學習本章內容,讀者可以快速掌握FPGA的常用硬件描述語言,以便進行項目開發。 第4章FPGA功能驗證,主要介紹驗證的基本概念、仿真激勵的編寫、常用系統函數任務的調用,以及Vivado仿真軟件的使用等。通過學習本章內容,讀者可以學會驗證自己編寫的模塊是否滿足功能要求。 第2篇 Xilinx FPGA邏輯設計 本篇涵蓋第5∼10章,主要介紹FPGA的常用IP核設計、用戶代碼封裝、低速接口設計、高速接口設計、硬件調試和開發技巧等內容。FPGA在邏輯接口領域的應用非常廣泛。例如,在實際產品的設計中,很多情況下需要與PC(個人計算機)進行數據通信,將采集的數據發送給PC處理,或者將處理后的結果傳送給PC進行顯示等。通過學習本篇內容,讀者可以快速掌握FPGA接口設計的核心基礎知識,從而為實際項目開發打下堅實的基礎。 第5章FPGA的知識產權,主要介紹MMCM、FIFO、RAM、Counter等常用IP核的設計與應用。通過學習本章內容,讀者可以快速掌握常用IP核的設計方法。 第6章FPGA代碼封裝,主要介紹用戶代碼的IP核封裝和網表文件封裝的基本流程。通過學習本章內容,讀者可以快速掌握FPGA代碼封裝的方法,為代碼加密設計打下基礎。 第7章FPGA低速接口設計,主要介紹SPI、UART、IIC和CAN這4種總線的邏輯設計方法。通過學習本章內容,讀者可以掌握低速接口設計的方法,包括方案設計、代碼設計、功能仿真和硬件調試。 第8章FPGA高速接口設計,主要介紹DDR3和PCIE這兩種接口的設計方法。通過學習本章內容,讀者可以快速掌握高速接口的設計方法,包括方案設計、代碼設計、功能仿真與硬件調試。 第9章FPGA硬件調試,基于Vivado軟件環境,以一個簡單的閃爍燈為例,介紹其FPGA硬件調試流程。通過學習本章內容,讀者可以簡單地了解FPGA的硬件調試流程。對于一些復雜的FPGA設計,可以通過本章介紹的調試方法進行硬件邏輯功能的調試。 第10章FPGA開發技巧,主要介紹筆者基于Xilinx FPGA進行邏輯設計與驗證過程中總結的一些FPGA項目開發技巧與心得體會,包括FPGA時鐘管理、FPGA復位設計、FPGA時鐘域處理、FPGA通用模塊設計和FPGA檢查表開發。通過學習本章內容,讀者可以掌握FPGA的開發技巧,從而少走彎路,提高FPGA產品設計的效率。 讀者對象 * FPGA接口設計入門人員; * FPGA接口設計從業人員; * 硬件設計工程師; * 硬件設計科研人員; * 高校電子信息等相關專業的學生。 配套資源獲取 本書提供實例源碼文件、習題參考答案和教學PPT等配套資源。這些資源有兩種獲取方式:一是關注微信公眾號“方大卓越”,回復數字“26”獲取下載鏈接;二是在清華大學出版社網站(www.tup.com.cn)上搜索到本書,然后在本書頁面上找到“資源下載”欄目,單擊“網絡資源”或“課件下載”按鈕進行下載。 致謝 在編寫本書的過程中,筆者查閱了大量的資料,參考了Xilinx公司官方網站(http://www.xilinx.com)提供的英文資料以及Vivado提供的IP核數據手冊與幫助文檔,在此對資料的作者和提供者表示衷心的感謝!另外也要感謝北京至芯開源科技有限責任公司總經理雷斌、FPGA資深工程師黨亞鵬、FPGA高級工程師宋哲和系統架構工程師郝煥妮,他們4位為本書提出了寶貴的意見和建議,在此表示衷心的感謝!此外,感謝妻子全力照顧家庭,為筆者編寫本書騰出了大量的時間。 售后服務 由于筆者水平所限,書中可能還存在疏漏與不足之處,懇請廣大讀者批評與指正。同時也歡迎廣大讀者就FPGA設計和驗證等相關技術與筆者交流。 寇強 2024年6月于西安 Xilinx FPGA工程師成長手記 前言 ·VI· ·V· |
內容簡介:《Xilinx FPGA工程師成長手記》以Xilinx公司的FPGA為開發平臺,以Verilog HDL、System Verilog、VHDL和Vivado為開發工具,詳細介紹FPGA常用接口的實現方法,并通過大量實例,分析FPGA實現過程中的具體技術細節。《Xilinx FPGA工程師成長手記》提供相關實例的源碼文件和配套教學PPT,以方便讀者學習和相關高校教學。 《Xilinx FPGA工程師成長手記》共10章,分為2篇。第1篇Xilinx FPGA基礎知識,包括FPGA概述、FPGA的基本理論、FPGA的硬件描述語言和FPGA功能驗證;第2篇Xilinx FPGA邏輯設計,包括FPGA的知識產權、FPGA代碼封裝、FPGA低速接口設計、FPGA高速接口設計、FPGA硬件調試和FPGA開發技巧。 《Xilinx FPGA工程師成長手記》內容充實,實例豐富,非常適合FPGA開發和接口設計領域的入門讀者閱讀,也適合硬件設計領域的工程師和科研人員閱讀,還適合作為相關院校電子信息等專業本科生和研究生的教材。 |
目錄:第1篇XilinxFPGA基礎知識 第1章FPGA概述 2 1.1什么是FPGA 2 1.2FPGA芯片廠商 2 1.2.1國外FPGA廠商簡介 2 1.2.2國內FPGA廠商簡介 3 1.3FPGA的應用領域 4 1.3.1數據采集領域 4 1.3.2邏輯接口領域 5 1.3.3數字信號處理領域 5 1.3.4其他領域 5 1.4FPGA的設計流程 5 1.4.1需求分析 6 1.4.2設計輸入 6 1.4.3功能仿真 7 1.4.4邏輯綜合 7 1.4.5布局布線 7 1.4.6芯片編程與調試 8 1.4.7文檔和代碼管理 8 1.5FPGA的人才需求 9 1.6FPGA工程師的基本技能 10 1.7本章習題 11 第2章FPGA的基本理論 12 2.1FPGA時鐘 12 2.1.1時鐘模型 12 2.1.2時鐘抖動 12 2.1.3時鐘偏斜 13 2.1.4時鐘設計 13 2.2FPGA復位 14 2.2.1復位的概念 14 2.2.2復位方式 14 2.2.3復位設計 15 2.3FPGA時序 15 2.3.1時序的概念 15 2.3.2建立時間 16 2.3.3保持時間 17 2.3.4亞穩態 17 2.4FPGA異步時鐘域 17 2.4.1異步時鐘域的概念 17 2.4.2異步時鐘域數據轉換策略 18 2.5FPGA約束 23 2.6FPGA的專業術語 24 2.7本章習題 25 第3章FPGA的硬件描述語言 26 3.1硬件描述語言概述 26 3.1.1硬件描述語言簡介 26 3.1.2硬件描述語言的類型 27 3.2VHDL語法基礎 27 3.2.1VHDL模塊結構 27 3.2.2VHDL的基本語法 29 3.2.3VHDL模塊調用 29 3.3VerilogHDL語法基礎 30 3.3.1VerilogHDL模塊結構 30 3.3.2VerilogHDL的基本語法 31 3.3.3VerilogHDL模塊調用 36 3.4SystemVerilog語法基礎 37 3.4.1SystemVerilog模塊結構 37 3.4.2SystemVerilog的基本語法 38 3.4.3SystemVerilog模塊調用 38 3.5FPGA設計規范及編程技巧 39 3.5.1FPGA設計規范 39 3.5.2FPGA設計注釋 41 3.5.3FPGA設計技巧 41 3.6本章習題 42 第4章FPGA功能驗證 43 4.1驗證概述 43 4.1.1驗證定義 43 4.1.2驗證計劃 44 4.1.3驗證方法 44 4.1.4驗證的作用 44 4.2編寫仿真激勵 45 4.2.1編寫測試激勵的流程 45 4.2.2編寫時鐘測試激勵 45 4.2.3編寫復位測試激勵 47 4.3系統函數 48 4.3.1常用的系統函數 48 4.3.2編寫測試激勵實例 49 4.4驗證軟件 51 4.4.1仿真軟件 51 4.4.2仿真過程 51 4.4.3仿真實例 52 4.5驗證技巧 61 4.5.1變量初始化 61 4.5.2模塊封裝 62 4.5.3回環測試 63 4.5.4計數器 63 4.5.5讀文件和寫文件 64 4.5.6避免出現藍線 65 4.6本章習題 66 第2篇XilinxFPGA邏輯設計 第5章FPGA的知識產權 68 5.1MMCMIP核設計 68 5.1.1MMCM簡介 68 5.1.2MMCMIP核定制 68 5.1.3MMCMIP核仿真 73 5.2FIFOIP核設計 75 5.2.1FIFO簡介 75 5.2.2FIFOIP核定制 75 5.2.3FIFOIP核仿真 80 5.3RAMIP核設計 83 5.3.1RAM簡介 83 5.3.2RAMIP核定制 83 5.3.3RAMIP核仿真 88 5.4CounterIP核設計 91 5.4.1Counter簡介 91 5.4.2CounterIP核定制 91 5.4.3CounterIP核仿真 94 5.5本章習題 96 第6章FPGA代碼封裝 97 6.1IP核封裝 97 6.1.1IP核簡介 97 6.1.2自定義IP核封裝 98 6.1.3自定義IP核驗證 107 6.2網表封裝 108 6.2.1網表簡介 108 6.2.2自定義網表封裝 108 6.2.3自定義網表驗證 116 6.3本章習題 121 第7章FPGA低速接口設計 122 7.1SPI邏輯設計 122 7.1.1SPI總線概述 122 7.1.2SPI實例設計 123 7.1.3SPI實例驗證 126 7.1.4SPI硬件調試 127 7.2UART邏輯設計 128 7.2.1UART總線概述 128 7.2.2UART實例設計 129 7.2.3UART實例驗證 133 7.2.4UART硬件調試 135 7.3IIC邏輯設計 136 7.3.1IIC總線概述 136 7.3.2IIC實例設計 139 7.3.3IIC仿真驗證 143 7.3.4IIC硬件調試 144 7.4CAN邏輯設計 145 7.4.1CAN總線概述 145 7.4.2CAN實例設計 147 7.4.3CAN邏輯驗證 151 7.4.4CAN硬件調試 153 7.5本章習題 155 第8章FPGA高速接口設計 156 8.1DDR3接口設計 156 8.1.1存儲器簡介 156 8.1.2DDR3IP核簡介 158 8.1.3DDR3讀寫功能設計 160 8.1.4DDR3讀寫功能邏輯仿真 172 8.1.5DDR3讀寫功能硬件調試 174 8.2PCIE接口設計 182 8.2.1PCIE簡介 183 8.2.2PCIEIP核簡介 184 8.2.3PCIE通信功能設計 185 8.2.4PCIE通信功能仿真 191 8.2.5PCIE接口硬件調試 195 8.3本章習題 201 第9章FPGA硬件調試 202 9.1FPGA硬件調試概述 202 9.1.1FPGA硬件調試簡介 202 9.1.2FPGA調試IP核 202 9.2閃爍燈硬件調試 203 9.2.1閃爍燈系統設計 203 9.2.2閃爍燈程序設計 204 9.2.3閃爍燈硬件調試 205 9.3本章習題 219 第10章FPGA開發技巧 220 10.1FPGA時鐘管理 220 10.1.1使用時鐘IP核設計時鐘 220 10.1.2使用硬件描述語言設計時鐘 222 10.1.3使用時鐘原語設計時鐘 223 10.2FPGA復位設計 225 10.2.1使用時鐘IP核鎖存信號進行復位 226 10.2.2使用硬件描述語言進行復位 226 10.3FPGA時鐘域處理 227 10.3.1使用異步FIFO處理跨時鐘域數據實例 227 10.3.2使用雙端口RAM處理跨時鐘域數據實例 228 10.3.3使用延遲法處理跨時鐘域數據實例 230 10.3.4使用應答機制處理跨時鐘域數據實例 231 10.3.5采用格雷碼轉換處理跨時鐘域數據實例 233 10.4FPGA通用模塊設計 236 10.4.1接口通用模塊設計 236 10.4.2內部邏輯通用模塊設計 237 10.4.3仿真通用模塊設計 237 10.4.4調試通用模塊設計 238 10.5FPGA開發檢查表 238 10.5.1FPGA需求分析 238 10.5.2FPGA方案設計 240 10.5.3FPGA設計輸入 240 10.5.4FPGA功能仿真 243 10.5.5FPGA硬件調試 244 10.6本章習題 245 XilinxFPGA工程師成長手記 目錄 ·XII· ·XI |
序: |