發表於2024-11-25
手把手教你學FPGA設計——基於大道至簡的至簡設計法
本書介紹利用硬件描述語言(VerilogHDL)設計數字係統的方法,提齣計數器、狀態機、FIFO的三大架構,采用理論與實踐相結閤的方式,詳細介紹各個架構的實現步驟———“八步法”,並配以相應的項目練習。在書的後半部分,介紹模塊劃分的基本方法,總結並提齣瞭模塊間的交互架構,在項目實踐中給齣瞭溫度監控係統、邊緣檢測係統等綜閤性項目的模式。本書可作為高等院校電子工程類、自動控製類、計算機類等專業的教材,亦可供FPGA相關行業的愛好者和從業人員自學與參考。
手把手教你學FPGA設計——基於大道至簡的至簡設計法
序隨著微電子技術的發展,可編程門陣列(FPGA)技術已經成為信息産業最熱門的技術之一,其應用範圍遍及電子、通信、自動化、醫療、軍事和航空航天等多個熱門領域。在數字集成電路設計領域,前端驗證工作通常依托FPGA,並由那些精通硬件構架的FPGA係統工程師來完成。因此,FPGA技術的設計和開發已成為當前發展迅速的朝陽行業之一。作者曾在華為海思、展訊通信等集成電路設計企業參與瞭FPGA大型項目的開發設計,近年來又在明德揚科技教育公司從事FPGA的教學培訓,從而有機會深入研究和采用多種教學方法進行試驗,以便把那些構成FPGA設計基礎的知識模塊和工具平颱,變成FPGA學習者能夠實際運用的方法,而更重要的是能夠幫助學習者消化核心功能及其設計流程。於是,本書便應運而生,旨在為FPGA學習者提供一種FPGA的至簡設計方法。與一些將FPGA設計的理論知識和軟件工具作為敘述重點的教程不同,本書的重點不在於介紹FPGA設計“是什麼”,而側重於引導學習者“怎麼做”。經過這樣設計後的內容可以引起學習者濃厚的興趣,並使學習者在短時間內快速掌握FPGA設計方法,正如諾貝爾文學奬獲得者、法國作傢AnatoleFrance的精闢格言:“教學的全部藝術就是喚醒年輕心靈的天然好奇心。”
黃君凱
2016年10月於廣州暨南園
前言
隨著我國工業智能化的發展,工業企業的個性化需求劇增。相應的,對FPGA/IC行業人纔的需求,特彆是高端人纔的需求也隨之劇增。然而,目前國內的FPGA/IC教育相對落後:高等院校缺乏項目經驗豐富的教師;現有教材陳舊,無法跟上最新技術的發展;學習資料缺乏,大都重視軟件操作示範,不重視設計理念傳授等。這些客觀因素使學生對FPGA/IC望而生畏,即使有大量學生立誌學好FPGA/IC設計,但多數不得要領,最終放棄學習。由於失去瞭群眾基礎,導緻國內缺乏高素質的FPGA人纔,從而對我國工業智能化的發展産生瞭一定的影響。為瞭擴大FPGA/IC設計的群眾基礎,降低FPGA/IC設計的學習門檻,明德揚科技教育公司(簡稱明德揚)結閤培訓班、企業內訓,以及多年國內頂尖企業的工作經驗,研發齣一套FPGA/IC設計流程———“至簡設計法”。“至簡設計法”是明德揚豐富項目經驗的結晶,它將高級的設計技巧轉化成幾條規則,掌握瞭這些規則就相當於擁有多年的經驗。“至簡設計法”流程中的每一步都簡單易操作,容易上手,便於掌握。掌握“至簡設計法”,可以實現0仿真、0調試、一次成功的設計,極大地提高瞭工作效率。明德揚緻力於打造“最簡單、最實用、最高效”的FPGA/IC設計法,不遺餘力地為普及FPGA/IC設計,提升客戶競爭力,提高我國該行業整體的設計能力做貢獻。很多同學在剛開始學習FPGA/IC設計時都會走彎路,下麵是兩位學員的學習經曆與心得。學員一:“①買一本書,花大量的時間學習語法;②到網上搜一些資料,類似“大全”、“玩轉”之類的速成之法;③買一個開發闆,看代碼、下載例程看現象。”學員一的情況具有普遍性,作為一個剛接觸FPGA的初學者,這似乎是必經之路,很多學員在來明德揚學習之前就以這樣的方式學瞭大約半年的時間。當然,這樣的學習方法不是說學不好,而是很難學好,或者需花費很長的時間。以看書學習為例,可以說書是根源,學習任何知識都離不開書,書作為一個知識體係,要求全麵、係統,但作為初學者就沒有必要學得那麼全麵、係統瞭。很多學員在學Verilog時,就是拿一本書,仔仔細細地看,花費瞭不少時間,但效果卻不理想。我們都知道,Verilog的很多語法是不能綜閤的,而這些語法也沒有實際的電路與之對應,當然在具體的邏輯設計時也是不能用的,但書上並不會很明確地指齣。再舉一個例子,也是很多人都犯過的一個錯誤:以普通信號作為always的敏感信號列錶。當我們這樣寫的時候,根本不會意識到這是錯誤的,因為書上就是這麼教的。有經驗的工程師都知道,對於Verilog語法,書上是一個全集,很多用法作為知識點是對的,但在實際應用中就是錯誤的。因此,太依賴書本的學習,反而會學得全而不好,還浪費時間。學員二:“一開學我立馬就買瞭當時很多人推薦的某一品牌的一款開發闆,但卻不知道怎麼學,上來就死摳代碼,感覺好費勁啊!一方麵我當時的基礎確實很差,本科時候就沒寫過任何代碼;另一方麵看彆人寫的代碼本來就費解,而賣傢的視頻也是蜻蜓點水一帶而過,視頻上提到的問題不是我的問題,我想解決的問題視頻中又沒說,反正我的睏惑與賣傢的視頻就不在一個頻道上,可能我的問題人傢壓根兒就覺得不是問題,因為我當時就是不摺不扣的零基礎。就這樣,我混混沌沌地看瞭好多天代碼,最終還是雲裏霧裏。當時有人跟我講過要去仿真看波形,而不是看代碼,但是裝什麼軟件,怎麼裝,軟件怎麼用,我一點都不知道。確實蠻痛苦的。”以上兩位同學遇到的問題,相信大多數初學者也遇到過,也很受睏擾。明德揚在培訓學員的過程中發現瞭一個普遍存在的問題:不同的人,代碼風格往往也是不一樣的。而一套優秀的代碼規範,對團隊、企業有非常強的指導意義,可以給他人提供一個可讀性強、便於維護糾錯的環境,這可以大大提高團隊、企業的工作效率。而市麵上大多數FPGA教材往往並不重視代碼規範,大篇幅的軟件使用、語法知識和大量理論知識令初學者望而生畏,其實很多語法在實際工程中並沒有機會用到。另外,很多FPGA書籍都會講一個個獨立的項目如何實現,以及針對不同項目的相應設計思路,但卻缺少一套通用的設計方法,這樣同學們最多隻能學一個項目會一個項目,而不能舉一反三。也正是因為如此,纔有這本書創作的初衷。為瞭幫助更多的FPGA學習者更好地理解FPGA設計的精髓,提高學習效率,明德揚提齣瞭“至簡”的設計思想,並創作瞭這本書。大道至簡與至簡設計法“大道至簡”齣自老子的《道德經》:“萬物之始,大道至簡,衍化至繁。”大道至簡是指大道理(基本原理、方法和規律)是極其簡單的,簡單到一兩句話就能說明白,把復雜冗繁的錶象層層剝離之後就是事物最本質的東西。所謂“真傳一句話,假傳萬捲書”。一門技術一門學問,弄得很深奧是因為沒有看穿實質,就像FPGA的學習,搞得很復雜是因為沒有抓住代碼的關鍵。1.大道至簡,抓住根本大道理是極其簡單的,簡單到一兩句話就能說明白。事情難就難在簡單,簡單不是敷衍瞭事,也不是單純幼稚,而是最高級的智慧和成熟睿智的錶現。
至簡設計法是明德揚通過多年的教學經驗找到的學習FPGA的關鍵和根本方法。FPGA學習既不能花大量時間在軟件工具/語法上,也不能花精力在獨立的知識點上,而應花費80%的時間在20%的核心功能上。什麼是核心功能?至簡設計中一個完整的設計流程就是核心功能。注意,這裏說的是“設計”流程,而非項目流程。市麵上的FPGA設計教程大部分講的都是項目流程,即介紹功能→新建項目→加入設計文件→編譯工程→配置引腳→上闆。這些流程都是介紹軟件是怎麼用的,而最重要的———設計文件是如何設計的,都沒有詳細介紹。至簡設計法的設計流程,講的是實現一個功能的過程,是將功能轉化成代碼的過程。不僅簡單的UART/SPI/VAG/IIC/攝像頭采集,甚至復雜的邊緣檢測/SDRAM接口/軟件無綫電等,都可以采用這個設計流程將功能轉化成代碼。2.大道至簡,衍化至繁大道至簡是一種哲學,無論是做人還是做事它都會給人以指導。在當今這個大韆世界中,我們要學會把復雜變成簡單,用智慧創造“簡單”,在變遷中不斷地升華。至簡設計法是先將復雜的模塊劃分成簡單的模塊,再用模塊設計流程設計齣來。FPGA學習的過程,就是不斷地將復雜的模塊,劃分成簡單模塊,再用至簡設計法設計的過程。不斷地重復這個過程,像搭積木一樣一層層地堆砌,最終就能通過簡單的規則做齣復雜的設計。3.大道至簡,凝聚智慧大道至簡,經過整閤創新,跳齣原來的框框,去粗取精,抓住關鍵和根本,揮動奧卡姆剃刀,剔除無效的、可有可無的、非本質的東西,提煉齣精華。至簡設計法,看似簡單的幾個規則,然而總結歸納齣這些規則,卻需要相當大的智慧:必須要有眾多領域的項目經驗,纔能獲知各領域的設計需求和要點;必須要有豐富的工作經驗,纔能擁有高超的設計技巧;必須要有豐富的教學經驗,明白學習的難點和重點,明白學生思考的方式,纔能將高超的設計技巧轉成可學習和操作的流程;必須要有很大的智慧,不斷地歸納和總結,纔能將這些流程和步驟變得簡單易用。至簡設計法,是結閤以上要點,經過明德揚多年探索的智慧結晶。在此,我希望與更多FPGA學習者分享,讓更多的人應用此設計方法,在FPGA設計學習和做實際項目中得心應手,為推進國傢産業智能化發展貢獻綿薄之力。
本書共8章,分為三篇,其中每篇對應的章和具體內容介紹如下:第一篇包括第1~4章,主要介紹FPGA設計核心———模塊。本書提齣把模塊分為三大類型,即計數器架構、狀態機架構及FIFO架構,並配有項目設計練習。第二篇包括第5、6章,主要介紹模塊的由來———模塊劃分。本書總結瞭兩大類常見的模塊劃分應用場閤,即FPGA內部模塊之間的交互和FPGA與外設的交互,並配有實踐練習。第三篇包括第7、8章,主要介紹基於OV7670的圖像采集,以及基於SDRAM的VGA顯示控製器。應用前兩篇提到的三大架構及模塊劃分來完成這個工程,進一步深化對前麵內容的理解。本書特點1.注重設計思路本書重點講項目實現的整體思路,而並非講某一具體項目的實現。2.設計理念本書提齣瞭“至簡”的設計理念,一次隻考慮一個問題。3.優秀的代碼風格及規範本書提供的代碼風格統一,代碼的規範是資深從業人員從多年工作經驗中總結、提練,並結閤明德揚就業培訓班培訓成果所得到的。優秀的代碼風格對團隊、企業都有非常大的指導意義。
4.注重實踐本書選擇以案例的形式進行編寫,所有方法均用例子闡述,並配有豐富的項目實踐練習。5.不羅列知識點堅持項目中遇到什麼問題就解決(講解)什麼問題,避免羅列知識點,讓FPGA學習者集中精力學習FPGA設計的核心。如何學習本書至簡設計法的目的,是對程序編寫工作中易齣現的混亂狀態進行規範化,以達到簡便、有序、快捷的效果。本書通過例題引齣概念,並詳舉大量實際案例進行分析、對比,幫助讀者理解至簡設計法的設計思想,清晰直觀地學習和掌握該方法。此外,作者對於“二八定律”在FPGA設計方麵的應用有獨到見解:采取“權值階梯模式”,即強調核心功能的學習、鞏固和使用,以及一般功能在實際中邊做邊學的模式,來達到在最短的時間能獨立完成項目的效果。另外,希望讀者在完成項目時,先根據功能要求自己試著構思、編寫代碼,再與給齣的思路、代碼相比較,這樣讀者纔能深刻理解至簡設計法,並把這套設計思想真正運用到實踐中去。從明德揚就業培訓班的培訓成果來看,隻要耐心學完整套設計思想,就能獨立完成項目設計。設計者拿到一個新項目,知道從哪裏下手,且編寫的代碼可綜閤,邏輯縝密,在設計過程中對邏輯變化考慮周全,就可在短時間內調試成功並上闆實現。本書雖然沒有語法篇,但通篇用到的語法都是比較簡單、常用的,有一定Verilog基礎的讀者讀起來必定毫無障礙,而初學者也不必擔心看不懂,明德揚會推齣配套視頻,介紹用到的語法知識點。另外,軟件使用篇也包括在配套視頻中,主要包括QuartusII,Modelsim,Gvim的使用。本書可作為高等院校電子工程類、自動控製類、計算機類等專業的教材,亦可供FPGA相關行業的愛好者和從業人員自學與參考。感謝參與本書部分內容編寫及在編寫過程中提供寶貴建議的黃君凱、崔苗、李國慶和陳澤熹。還要感謝北京航空航天大學齣版社的編輯老師們,在他們的大力支持和幫助下本書纔得以與廣大讀者見麵。由於作者水平有限,難免存在錯誤和遺漏之處,懇請各位讀者批評指正。同時,也歡迎大傢就FPGA開發相關技術與作者交流,聯係郵箱:book@mdyedu.com。配套視頻、開發闆購買地址以及例程源碼和相關資料下載地址:http://www.mdyedu.com/。潘文明易文兵2016年12月於深圳明德揚科技教育有限公司
手把手教你學FPGA設計——基於大道至簡的至簡設計法 下載 mobi pdf epub txt 電子書 格式 2024
手把手教你學FPGA設計——基於大道至簡的至簡設計法 下載 mobi epub pdf 電子書不錯哦,很好的書。
評分東西還可以,不錯
評分非常不錯!!!
評分活動價格,十分實惠。
評分幫同事買的書,他看瞭說很好!
評分值得一看
評分非常好 注重講方法 很實用
評分非常好 注重講方法 很實用
評分66666666666
手把手教你學FPGA設計——基於大道至簡的至簡設計法 mobi epub pdf txt 電子書 格式下載 2024