感謝論壇給我的諸多照顧,通過和廣大電子愛好者深入交流,我真正了解到了很多初學者的困惑。特權同學的深入淺出玩轉FPGA系列教程確實不錯,想當初,我也是靠著他的視頻教程入門的。跟著特權同學的教程,我們能夠很快學會QuartusII軟件的使用,也能夠做一些簡單的實驗。但是跟著他的教程走了大半年,后來又跟著黑金的教程走了大半年,還有CrazyBingo的VIP教程。感覺他們都很厲害,能夠做出那么優秀的設計,可是自己卻一直不得要領,出了問題就是找不到原因,不知道怎么去解決。直到我在業界幾位大師的帶領下系統的學習了一段時間后,我才真正的能夠自己進行獨立的FPGA系統設計?偨Y我這一年半時間的FPGA學習經歷,有以下心得: 一、正確的設計方法尤為重要 很多初學者,包括絕大多數的高校EDA課程,都沒有教給學生正確的設計方法,可以這么說,很多高校的授課老師對這門技術的掌握也是連入門的要求都沒達到,他們要么干脆不知道要仿真,要么就用Quartus II自帶的繪制波形的仿真軟件進行簡單的測試,很少有老師教學生怎么去進行系統的仿真,更少有老師教學生進行testbench的編寫。前天接觸一個進行EDA教學的老師,課程實驗要求里面說了要進行仿真,但是他不要求學生仿真,究其原因,他自己說的是因為他自己不會寫testbench。每天在各大論壇,有那么多的學生在網上咨詢著一些入門級的問題,讓我們不得不嗟嘆,很多大學的課程教學,是很失敗的。我以前自學FPGA的時候,也覺得testbench的編寫特別的難,想跟人學,卻沒有人教。導致一直止步不前,對自己所寫的代碼,執行時會是怎么樣一個效果,心里完全沒有一個清晰的概念。即那時候的學習,還只停留在代碼層,完全沒有理解FPGA的工作實質。只是看著別人這么寫能行,我也就這么寫了。當后來學會了仿真之后,突然一下子就全部理解了,知道了自己的每一行代碼生成的電路在執行的時候會是什么情況,知道了FPGA時序設計的本質,知道了怎么通過仿真結果去修改和優化自己的設計。因此,這里我主要就是想說,FPGA設計并不難,只要學習者掌握了正確的學習方法。 二、學習參考很重要 在開始學習的過程中,總會遇到各種各樣的困難:軟件使用不熟練、語法不熟練、基本原理不熟練等等,都會嚴重打擊初學者的積極性。那么針對這三個問題,小梅哥的建議則是:軟件不熟練,就跟著視頻教程一步一步走,Altera官網有一套視頻教程,這些教程由官方出品,具有極高的參考價值,另外,目前網上很多FPGA愛好者也出了有視頻教程,如果只是想單純的學習軟件的使用,跟著這些視頻教程來走是非常適合的;語法不熟練,就需要去看書了,目前講verilog語法的書滿天飛,但是實際又有多大的價值呢。個人認為,夏宇聞老師的經典教材《Verilog數字設計教程》絕對是一本好書。這本書將Verilog語法的精髓講的淋漓盡致,對于可綜合語法和不可綜合語法都很看重,這是其他教材所無法達到的。雖然做FPGA設計,代碼必須能夠是可綜合的,這樣才能生成有意義的電路,才能被下載到FPGA芯片中去執行。因此,絕大部分教材就只講了可綜合的設計語法,對于不可綜合的語法,只是簡單的一帶而過,這其實是非常錯誤的觀點。正確的FPGA設計流程,應該是在開發環境中仿真無誤后才進行板級驗證,而在仿真的過程中,要想使仿真結果能夠全面可靠,不可綜合的語法運用相當重要。只有運用好了這些語法,我們才能夠編寫出好的測試文件,對我們的設計進行全面的測試。因此,那些認為不可綜合語法不重要的人,大部分對于仿真測試這一塊沒有深刻的認識。因此,他們也就無法進行很多創新設計和復雜的系統設計。對于連基本電路原理都不熟悉的人,小梅哥就感覺有點無能為力了,只能希望你自己能夠多多在網上查閱資料,將基本原理弄清楚。小梅哥從小學六年級拆開自己一臺嶄新的復讀機,接觸花花綠綠的電路板開始,到如今,也已經有了十多個年頭,這十年,小梅哥無時不刻不在被電子技術的強大魅力所吸引,義無反顧的投入到電子技術的學習中。電子技術的學習,需要激情,需要耐力。 給初學者的學習建議:
建議的FPGA學習實驗順序: 基本外設:
時序器件:
存儲器IP的使用:
綜合實驗,將上面的一些外設,采用自頂向下的結構,設計一些綜合實驗,來實現自己的創意。 以上為FPGA初級班課程的學生需要達到的要求。更多資料請大家隨時關注論壇FPGA板塊中的資料更新。 如有任何疑問,歡迎加入芯航線FPGA學習支持群(472607506)進行討論 |