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