发表于2024-11-08
手把手教你學FPGA設計——基於大道至簡的至簡設計法 pdf epub mobi txt 電子書 下載 2024
手把手教你學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月於深圳明德揚科技教育有限公司
不錯的書,初讀很不習慣,需要適應
評分東西還可以,不錯
評分值得一看
評分66666666666
評分剛齣的書就買到瞭,很有利於學習FPGA
評分不錯哦,很好的書。
評分非常好
評分非常不錯!!!
評分此用戶未填寫評價內容
手把手教你學FPGA設計——基於大道至簡的至簡設計法 pdf epub mobi txt 電子書 下載