《Xilinx FPGA工程師成長手記》以Xilinx公司的FPGA為開發(fā)平臺,以Verilog HDL、System Verilog、VHDL和Vivado為開發(fā)工具,詳細介紹FPGA常用接口的實現(xiàn)方法,并通過大量實例,分析FPGA實現(xiàn)過程中的具體技術(shù)細節(jié)。《Xilinx FPGA工程師成長手記》提供相關(guān)實例的源碼文件和配套教學(xué)PPT,以方便讀者學(xué)習(xí)和相關(guān)高校教學(xué)。
《Xilinx FPGA工程師成長手記》共10章,分為2篇。第1篇Xilinx FPGA基礎(chǔ)知識,包括FPGA概述、FPGA的基本理論、FPGA的硬件描述語言和FPGA功能驗證;第2篇Xilinx FPGA邏輯設(shè)計,包括FPGA的知識產(chǎn)權(quán)、FPGA代碼封裝、FPGA低速接口設(shè)計、FPGA高速接口設(shè)計、FPGA硬件調(diào)試和FPGA開發(fā)技巧。
《Xilinx FPGA工程師成長手記》內(nèi)容充實,實例豐富,非常適合FPGA開發(fā)和接口設(shè)計領(lǐng)域的入門讀者閱讀,也適合硬件設(shè)計領(lǐng)域的工程師和科研人員閱讀,還適合作為相關(guān)院校電子信息等專業(yè)本科生和研究生的教材。
資深硬件工程師近10年FPGA項目開發(fā)經(jīng)驗的總結(jié)。
理論結(jié)合大量實例,詳解Xilinx FPGA的設(shè)計方法與技巧。
提供練習(xí)題、教學(xué)課件(PPT),方便學(xué)習(xí)與教學(xué)。
內(nèi)容豐富:首先從FPGA的理論知識入手,詳細介紹FPGA芯片設(shè)計的背景、常用專業(yè)術(shù)語、硬件描述語言的基本語法;然后介紹FPGA的驗證方法和知識產(chǎn)權(quán)應(yīng)用;最后詳細介紹低速接口和高速接口設(shè)計實例,并總結(jié)FPGA的開發(fā)技巧。
實例豐富:講解中穿插多個典型實例,帶領(lǐng)讀者上手實踐,并加深對FPGA設(shè)計與驗證技術(shù)的理解,進而快速掌握FPGA的設(shè)計流程,上手開發(fā)實際產(chǎn)品和項目。
圖文并茂:講解中給出大量的示意圖,幫助讀者高效、直觀地理解FPGA的各種概念和實現(xiàn)原理。
注重技巧:總結(jié)大量的開發(fā)技巧,讓讀者少走很多彎路,從而加速新產(chǎn)品的上市,甚至提前交付項目。
源碼實用:本書涉及的實例源碼大多來源于實際項目,其注釋豐富,易于閱讀,讀者稍加修改即可直接用于自己的項目。
提供習(xí)題:每章都提供習(xí)題,幫助讀者鞏固和提高所學(xué)的知識。
配教學(xué)PPT:提供配套教學(xué)PPT,方便相關(guān)院校的授課教師教學(xué)時使用。
FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列)是在PAL和GAL等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。最初,F(xiàn)PGA主要應(yīng)用于傳統(tǒng)領(lǐng)域,隨著信息產(chǎn)業(yè)與微電子技術(shù)的發(fā)展,其發(fā)展速度越來越快。尤其近幾年,F(xiàn)PGA的發(fā)展非常迅猛,其影響力越來越大。例如,比特幣挖礦、數(shù)據(jù)采集、人工智能等領(lǐng)域都可以看到FPGA的身影。如今,F(xiàn)PGA的應(yīng)用遍及航空航天、汽車、醫(yī)療和工業(yè)控制等領(lǐng)域。
2010年,筆者在大學(xué)導(dǎo)師那里第一次接觸FPGA,那時感覺FPGA很神秘。正是這種神秘感,吸引筆者進入了該行業(yè),開始了FPGA編程之旅。筆者大學(xué)畢業(yè)至今一直從事FPGA邏輯設(shè)計與驗證的相關(guān)工作,這些工作經(jīng)歷使得筆者積累了豐富的項目開發(fā)經(jīng)驗,如今已在FPGA接口應(yīng)用領(lǐng)域取得了一些成就。
基于上述經(jīng)歷,筆者想通過一本書將自己多年以來積累的FPGA設(shè)計心得和項目開發(fā)經(jīng)驗分享給需要的人。具體而言,筆者編寫本書的主要原因有以下4點:
? 行業(yè)需求使然。FPGA行業(yè)發(fā)展迅猛,應(yīng)用領(lǐng)域廣泛,人才缺口很大,而圖書市場上缺少通俗易懂且實用性強的能帶領(lǐng)讀者快速上手的圖書。
? 筆者一直在思考,有沒有一種低門檻、易消化、易掌握和易上手的方法,讓初學(xué)者可以快速掌握FPGA技術(shù),筆者想通過本書來嘗試解決這個問題。
? 筆者想通過本書分享自己多年積累的FPGA設(shè)計心得和項目開發(fā)經(jīng)驗,讓FPGA學(xué)習(xí)人員少走彎路,能更快地將所學(xué)知識應(yīng)用于產(chǎn)品和項目開發(fā),從而加速產(chǎn)品和項目的上市。
? 筆者想通過一本書,讓行業(yè)內(nèi)入職的新人可以通過自學(xué)快速掌握FPGA,從而節(jié)省大量的培訓(xùn)時間和成本。
本書以一位FPGA從業(yè)者的身份,詳細介紹FPGA產(chǎn)品或項目開發(fā)所需要的基本技能。本書首先從FPGA的理論知識講起,詳細介紹FPGA芯片的發(fā)展背景、常用專業(yè)術(shù)語和硬件描述語言的基本語法,然后介紹FPGA的驗證方法和知識產(chǎn)權(quán)應(yīng)用,最后結(jié)合實例詳細介紹低速接口設(shè)計與高速接口設(shè)計,并總結(jié)FPGA的開發(fā)技巧,以加深讀者對FPGA設(shè)計與驗證技術(shù)的理解。通過閱讀本書,讀者可以系統(tǒng)地掌握FPGA設(shè)計的精髓和流程,并達到實際上手開發(fā)產(chǎn)品或項目的水平。
《Xilinx FPGA工程師成長手記》特色
? 內(nèi)容豐富:首先從FPGA的理論知識入手,詳細介紹FPGA芯片設(shè)計的背景、常用專業(yè)術(shù)語、硬件描述語言的基本語法;然后介紹FPGA的驗證方法和知識產(chǎn)權(quán)應(yīng)用;最后詳細介紹低速接口和高速接口設(shè)計實例,并總結(jié)FPGA的開發(fā)技巧。
? 實例豐富:在講解中穿插多個典型實例,帶領(lǐng)讀者上手實踐,并加深對 FPGA設(shè)計與驗證技術(shù)的理解,進而快速掌握FPGA的開發(fā)流程,上手開發(fā)實際產(chǎn)品和項目。
? 圖文并茂:在講解中給出大量的示意圖,幫助讀者高效、直觀地理解FPGA的各種概念和實現(xiàn)原理。
? 注重技巧:總結(jié)大量的開發(fā)技巧,讓讀者少走很多彎路,從而加速新產(chǎn)品的上市,甚至提前交付項目。
? 源碼實用:本書涉及的實例源碼大多來源于實際項目,并給出詳細的注釋,讀者對這些源碼稍加修改即可直接用于實際項目。
? 提供習(xí)題:每章都提供習(xí)題,幫助讀者鞏固和提高所學(xué)的知識。
? 配教學(xué)PPT:提供配套教學(xué)PPT,方便相關(guān)院校的授課教師教學(xué)時使用。
《Xilinx FPGA工程師成長手記》內(nèi)容
第1篇 Xilinx FPGA基礎(chǔ)知識
本篇涵蓋第1~4章,主要介紹FPGA的概念、設(shè)計流程、基本理論、描述語言和功能驗證等內(nèi)容。通過學(xué)習(xí)本篇內(nèi)容,讀者可以快速掌握FPGA設(shè)計的基礎(chǔ)知識。
第1章FPGA概述,主要介紹FPGA的芯片廠商、應(yīng)用領(lǐng)域、設(shè)計流程,以及FPGA工程師需要掌握的基本技能。通過學(xué)習(xí)本章內(nèi)容,讀者可以對FPGA有個大致的了解。
第2章FPGA的基本理論,主要介紹FPGA的時鐘、復(fù)位、時序、異步時鐘域和約束等相關(guān)知識。通過學(xué)習(xí)本章內(nèi)容,讀者可以系統(tǒng)地了解FPGA的基本理論知識。這些知識在FPGA設(shè)計中經(jīng)常用到,其伴隨FPGA設(shè)計的整個過程,是FPGA邏輯設(shè)計不可缺少的一部分。
第3章FPGA的硬件描述語言,主要介紹VHDL、Verilog HDL和System Verilog語言的語法基礎(chǔ),以及FPGA設(shè)計規(guī)范與編程技巧。通過學(xué)習(xí)本章內(nèi)容,讀者可以快速掌握FPGA的常用硬件描述語言,以便進行項目開發(fā)。
第4章FPGA功能驗證,主要介紹驗證的基本概念、仿真激勵的編寫、常用系統(tǒng)函數(shù)任務(wù)的調(diào)用,以及Vivado仿真軟件的使用等。通過學(xué)習(xí)本章內(nèi)容,讀者可以學(xué)會驗證自己編寫的模塊是否滿足功能要求。
第2篇 Xilinx FPGA邏輯設(shè)計
本篇涵蓋第5~10章,主要介紹FPGA的常用IP核設(shè)計、用戶代碼封裝、低速接口設(shè)計、高速接口設(shè)計、硬件調(diào)試和開發(fā)技巧等內(nèi)容。FPGA在邏輯接口領(lǐng)域的應(yīng)用非常廣泛。例如,在實際產(chǎn)品的設(shè)計中,很多情況下需要與PC(個人計算機)進行數(shù)據(jù)通信,將采集的數(shù)據(jù)發(fā)送給PC處理,或者將處理后的結(jié)果傳送給PC進行顯示等。通過學(xué)習(xí)本篇內(nèi)容,讀者可以快速掌握FPGA接口設(shè)計的核心基礎(chǔ)知識,從而為實際項目開發(fā)打下堅實的基礎(chǔ)。
第5章FPGA的知識產(chǎn)權(quán),主要介紹MMCM、FIFO、RAM、Counter等常用IP核的設(shè)計與應(yīng)用。通過學(xué)習(xí)本章內(nèi)容,讀者可以快速掌握常用IP核的設(shè)計方法。
第6章FPGA代碼封裝,主要介紹用戶代碼的IP核封裝和網(wǎng)表文件封裝的基本流程。通過學(xué)習(xí)本章內(nèi)容,讀者可以快速掌握FPGA代碼封裝的方法,為代碼加密設(shè)計打下基礎(chǔ)。
第7章FPGA低速接口設(shè)計,主要介紹SPI、UART、IIC和CAN這4種總線的邏輯設(shè)計方法。通過學(xué)習(xí)本章內(nèi)容,讀者可以掌握低速接口設(shè)計的方法,包括方案設(shè)計、代碼設(shè)計、功能仿真和硬件調(diào)試。
第8章FPGA高速接口設(shè)計,主要介紹DDR3和PCIE這兩種接口的設(shè)計方法。通過學(xué)習(xí)本章內(nèi)容,讀者可以快速掌握高速接口的設(shè)計方法,包括方案設(shè)計、代碼設(shè)計、功能仿真與硬件調(diào)試。
第9章FPGA硬件調(diào)試,基于Vivado軟件環(huán)境,以一個簡單的閃爍燈為例,介紹其FPGA硬件調(diào)試流程。通過學(xué)習(xí)本章內(nèi)容,讀者可以簡單地了解FPGA的硬件調(diào)試流程。對于一些復(fù)雜的FPGA設(shè)計,可以通過本章介紹的調(diào)試方法進行硬件邏輯功能的調(diào)試。
第10章FPGA開發(fā)技巧,主要介紹筆者基于Xilinx FPGA進行邏輯設(shè)計與驗證過程中總結(jié)的一些FPGA項目開發(fā)技巧與心得體會,包括FPGA時鐘管理、FPGA復(fù)位設(shè)計、FPGA時鐘域處理、FPGA通用模塊設(shè)計和FPGA檢查表開發(fā)。通過學(xué)習(xí)本章內(nèi)容,讀者可以掌握FPGA的開發(fā)技巧,從而少走彎路,提高FPGA產(chǎn)品設(shè)計的效率。
讀者對象
? FPGA接口設(shè)計入門人員;
? FPGA接口設(shè)計從業(yè)人員;
? 硬件設(shè)計工程師;
? 硬件設(shè)計科研人員;
? 高校電子信息等相關(guān)專業(yè)的學(xué)生。
配套資源獲取
本書提供實例源碼文件、習(xí)題參考答案和教學(xué)PPT等配套資源。這些資源有兩種獲取方式:一是關(guān)注微信公眾號方大卓越,回復(fù)數(shù)字26獲取下載鏈接;二是在清華大學(xué)出版社網(wǎng)站(www.tup.com.cn)上搜索到本書,然后在本書頁面上找到資源下載欄目,單擊網(wǎng)絡(luò)資源或課件下載按鈕進行下載。
致謝
在編寫《Xilinx FPGA工程師成長手記》的過程中,筆者查閱了大量的資料,參考了Xilinx公司官方網(wǎng)站(http://www.xilinx.com)提供的英文資料以及Vivado提供的IP核數(shù)據(jù)手冊與幫助文檔,在此對資料的作者和提供者表示衷心的感謝!另外也要感謝北京至芯開源科技有限責任公司總經(jīng)理雷斌、FPGA資深工程師黨亞鵬、FPGA高級工程師宋哲和系統(tǒng)架構(gòu)工程師郝煥妮,他們4位為本書提出了寶貴的意見和建議,在此表示衷心的感謝!此外,感謝妻子全力照顧家庭,為筆者編寫本書騰出了大量的時間。
售后服務(wù)
由于筆者水平所限,書中可能還存在疏漏與不足之處,懇請廣大讀者批評與指正。同時也歡迎廣大讀者就FPGA設(shè)計和驗證等相關(guān)技術(shù)與筆者交流。
聯(lián)系郵箱:bookservice2008@163.com。
寇強
2024年6月于西安
寇強,大學(xué)畢業(yè)后一直從事基于FPGA邏輯設(shè)計的產(chǎn)品和項目開發(fā),積累了大量的經(jīng)驗。核心能力表現(xiàn)為FPGA接口開發(fā)、FPGA跨時鐘域問題解決,以及時序違規(guī)處理和邏輯系統(tǒng)核心Bug排除等。熟悉Intel FPGA和Xilinx FPGA芯片開發(fā)技術(shù),尤其擅長Xilinx FPGA邏輯設(shè)計。從事過視頻LZW無損壓縮算法開發(fā)和列車實時以太網(wǎng)交換機時間同步機制開發(fā),開發(fā)的產(chǎn)品應(yīng)用于無人機、電梯和邊緣計算等多個領(lǐng)域。申請了多個基于FPGA實現(xiàn)數(shù)據(jù)采集與傳輸系統(tǒng)的發(fā)明專利。平時樂于分享技術(shù)經(jīng)驗。