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