《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > FPGA學(xué)習(xí)步驟

FPGA學(xué)習(xí)步驟

2015-10-15
關(guān)鍵詞: FPGA 學(xué)習(xí)步驟

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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 看一级毛片女人洗澡| 老司机成人影院| 日本最新免费二区| 亚洲美免无码中文字幕在线| 西西www人体高清视频在线观看| 国产综合免费视频| 一进一出动态图| 日韩电影免费在线观看网站| 亚洲第一网站男人都懂| 美国十次狠狠色综合av| 国产成人精品一区二区三区免费 | 国产精品久久久久一区二区| аⅴ资源中文在线天堂| 日本边添边摸边做边爱喷水| 亚洲国产另类久久久精品黑人| 男人黄女人色视频在线观看| 国产freesexvideos性中国| 久久6这里只有精品| 国产综合久久久久久鬼色| www.黄色在线| 攵女yin乱篇| 久久精品国产亚洲AV网站| 欧美成人在线网站| 人妖视频在线观看专区| 美国十次啦大导航| 国产免费福利片| 日本猛妇色xxxxx在线| 国色天香社区高清在线观看| 一级黄色免费毛片| 日本动态120秒免费| 亚洲AV无码成人精品区在线观看| 欧美精品亚洲一区二区在线播放| 免费动漫人物扑克软件网站| 老妇bbwbbw视频| 国产午夜无码精品免费看动漫| 1000部拍拍拍18免费网站| 国产边摸边吃奶叫床视频| av无码免费一区二区三区| 巨大欧美黑人xxxxbbbb| 中文字幕视频免费在线观看| 日韩欧美成人免费中文字幕|