查看: 1703|回復: 0
打印 上一主題 下一主題

如何學(xué)習FPGA

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2017-4-5 16:51:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
掌握FPGA可以找到一份很好的工作,對于有經(jīng)驗的工作人員,使用FPGA可以讓設計變得非常有靈活性。掌握了FPGA設計,單板硬件設計就非常容易(不是系統設計),特別是上大學(xué)時(shí)如同天書(shū)的邏輯時(shí)序圖,看起來(lái)就非常親切。但FPGA入門(mén)卻有一定難度,因為它不像軟件設計,只要有一臺計算機,幾乎就可以完成所有的設計。FPGA設計與硬件直接相關(guān),需要實(shí)實(shí)在在的調試儀器,譬如示波器等。這些硬件設備一般比較昂貴,這就造成一定的入門(mén)門(mén)檻,新人在入門(mén)時(shí)遇到一點(diǎn)問(wèn)題或者困難,由于沒(méi)有調試設備,無(wú)法定位問(wèn)題,最后可能就會(huì )放棄。其實(shí)這時(shí)如果有人稍微指點(diǎn)一下,這個(gè)門(mén)檻很容易就過(guò)去! ∥矣肍PGA做設計很多年了,遠達不到精通的境界,只是熟悉使用,在這里把我對FPGA學(xué)習步驟理解寫(xiě)出來(lái),僅是作為一個(gè)參考,不對的地方,歡迎大家討論和指正。
FPGA學(xué)習步驟1、工欲善其事,必先利其器。
計算機必不可少。目前FPGA應用較多的是Altera和xilinx這兩個(gè)公司,可以選擇安裝quartusII或者ISE軟件。這是必備的軟件環(huán)境。
硬件環(huán)境還需要下載器、目標板。雖然有人說(shuō)沒(méi)有下載器和目標板也可學(xué)習fpga,但那總是紙上談兵。這就像談女朋友,總是嘴上說(shuō)說(shuō),通個(gè)電話(huà),連個(gè)手都沒(méi)牽,能說(shuō)人家是你朋友?雖說(shuō)搭建硬件環(huán)境需要花費,但想想,硬件環(huán)境至多幾百元錢(qián),你要真的掌握FPGA的設計,起薪比別人都不止高出這么多。這點(diǎn)花費算什么?
FPGA學(xué)習步驟2、熟悉verilog語(yǔ)言或者vhdl語(yǔ)言 ,熟練使用quartusII或者ISE軟件。
VHDL和verilog各有優(yōu)點(diǎn),選擇一個(gè),建議選擇verilog。熟練使用設計軟件,知道怎樣編譯、仿真、下載等過(guò)程。
起步階段不希望報一些培訓班,除非你有錢(qián),或者運氣好,碰到一個(gè)水平高、又想把自己的經(jīng)驗和別人共享的培訓老師,不然的話(huà),培訓完后總會(huì )感覺(jué)自己是一個(gè)冤大頭。入門(mén)階段可以在利用網(wǎng)絡(luò )資源完成。
FPGA學(xué)習步驟3、設計一個(gè)小代碼,下載到目標板看看結果
此時(shí)可以設計一個(gè)最簡(jiǎn)答的程序,譬如點(diǎn)燈。如果燈在閃爍了,表示基本入門(mén)了。如果此時(shí)能夠下載到FPGA外掛的flash,FPGA程序能夠從flash啟動(dòng),表明FPGA的最簡(jiǎn)單設計你已經(jīng)成功,可以到下一步。
FPGA學(xué)習步驟4、設計稍微復雜的代碼,下載到目標板看看結果。
可以設計一個(gè)UART程序,網(wǎng)上有參考,你要懂RS232協(xié)議和FPGA內置的邏輯分析儀。網(wǎng)上下載一個(gè)串口調試助手,調試一番,如果通信成功了, 恭喜,水平有提高。進(jìn)入下一步。
FPGA學(xué)習步驟5、設計復雜的代碼,下載到目標板看看結果。
譬如sdram的程序,網(wǎng)上也有參考,這個(gè)設計難度有點(diǎn)大?捎么趤(lái)調試sdram,把串口的數據存儲到sdram,然后讀回,如果成功,那你就比較熟悉FPGA設計了
FPGA學(xué)習步驟6、設計高速接口,譬如ddr2或者高速串行接口
這要對FPGA的物理特性非常了解,而且要懂得是時(shí)序約束等設計方法,要看大量的原廠(chǎng)文檔,這部分成功了,那就對FPGA的物理接口掌握很深,你就是設計高手了
FPGA學(xué)習步驟7、設計一個(gè)復雜的協(xié)議
譬如USB、PCIexpress、圖像編解碼等,鍛煉對系統的整體把握和邏輯劃分。完成這些,你就是一個(gè)一流的高手、
FPGA學(xué)習步驟8、學(xué)習再學(xué)習
學(xué)習什么,我也不知道,我只知道“學(xué)無(wú)止境,山外有山”。
現在很多FPGA工程師,沒(méi)找到合適,我覺(jué)得很多人從開(kāi)始的時(shí)候就誤入歧途了,對新手學(xué)習FPGA設計我也說(shuō)一點(diǎn)看法吧。我認為要從基礎開(kāi)始做,基礎牢,才有成為高手的可能。
我覺(jué)得FPGA學(xué)習有以下幾步必須要走:
第一步:學(xué)習了解FPGA結構,FPGA到底是什么東西,芯片里面有什么,不要開(kāi)始就拿個(gè)開(kāi)發(fā)板照著(zhù)別人的東西去編程。很多開(kāi)發(fā)板的程序寫(xiě)的很爛,我也做過(guò)一段時(shí)間的開(kāi)發(fā)板設計,我覺(jué)得很大程度上,開(kāi)發(fā)板在誤人子弟。不過(guò)原廠(chǎng)提供的正品開(kāi)發(fā)板,代碼很優(yōu)秀的,可以借鑒。只有了解了FPGA內部的結構才能明白為什么寫(xiě)Verilog和寫(xiě)C整體思路是不一樣的。
第二步:掌握FPGA設計的流程。了解每一步在做什么,為什么要那么做。很多人都是不就是那幾步嗎,有什么奇怪的?呵呵,我想至少有一半以上的人不知道synthesize和traslate的區別吧。
了解了FPGA的結構和設計流程才有可能知道怎么去優(yōu)化設計,提高速度,減少資源,不要急躁,不要去在為選擇什么語(yǔ)言和選擇哪個(gè)公司的芯片上下功夫。語(yǔ)言只是一個(gè)表達的方式,重要的是你的思維,沒(méi)有一個(gè)好的指導思想,語(yǔ)言用得再好,不過(guò)是個(gè)懂語(yǔ)言的人。
第三步:開(kāi)始學(xué)習代碼了。我建議要學(xué)代碼的人都去Altera或Xilinx的網(wǎng)站上下原廠(chǎng)工程師的代碼學(xué)習。不要一開(kāi)始就走入誤區。
第四步:template很重要。能不能高效利用FPGA資源,一是了解fpga結構,二是了解欲實(shí)現的邏輯功能和基本機構,三是使用正確的模板。FPGA內部器件種類(lèi)相對較單一,用好模板,你的邏輯才能被高效的綜合成FPGA擅長(cháng)表達的結構:)
做FPGA主要是要有電路的思想,作為初學(xué)者,往往對器件可能不是熟悉,那么應該對于數字電路的知識很熟悉吧,FPGA中是由觸發(fā)器和查找表以及互聯(lián)線(xiàn)等基本結構組成的,其實(shí)在我們在代碼里面能夠看到的就是與非門(mén)以及觸發(fā)器,不要把verilog和c語(yǔ)言等同起來(lái),根本就是不同的東西,沒(méi)有什么可比性,在寫(xiě)一句程序的時(shí)候應該想到出來(lái)的是一個(gè)什么樣的電路,計數器選擇器 三態(tài)門(mén)等等,理解時(shí)序,邏輯是一拍一拍的東西,在設計初期想的不是很清楚的時(shí)候可以畫(huà)畫(huà)時(shí)序圖,這樣思路會(huì )更加的清晰,還有就是仿真很重要,不要寫(xiě)完程序就去往FPGA中去加載,首先要仿真,尤其是對比較大型一點(diǎn)的程序,想像自己是在做asic,是沒(méi)有二次機會(huì )的,所以一定要把仿真做好,還有很多新手對于語(yǔ)言的學(xué)習不知道選vhdl好還是verilog好,個(gè)人偏好verilog,當然不是說(shuō)vhdl不好,反正寫(xiě)出來(lái)的都是電路,那當然就不要在語(yǔ)言的語(yǔ)法上面花太多的功夫了,verilog 言簡(jiǎn)意賅assign always case if else 掌握這些幾乎可以寫(xiě)出90%的電路了,上面是我對FPGA學(xué)習的一些愚見(jiàn),希望對大家有所幫助。



您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页