fpga,學(xué)習(xí)心得體會(huì)_第1頁(yè)
fpga,學(xué)習(xí)心得體會(huì)_第2頁(yè)
fpga,學(xué)習(xí)心得體會(huì)_第3頁(yè)
fpga,學(xué)習(xí)心得體會(huì)_第4頁(yè)
fpga,學(xué)習(xí)心得體會(huì)_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、fpga,學(xué)習(xí)心得體會(huì)篇一:FPGA學(xué)習(xí)心得大報(bào)告FPGA技術(shù)基礎(chǔ)學(xué)習(xí)報(bào)告-課程內(nèi)容學(xué)習(xí)心得姓名:學(xué)號(hào):年級(jí)專業(yè):指導(dǎo)教師:瞿麟XX10401128自動(dòng)化101薛小軍摘要從開始學(xué)FPGA到此刻粗略算來(lái)的話,已經(jīng)有3個(gè)多月了,就目前而言,我并非確信自己算不算高手們所說(shuō)的入門了,F(xiàn)PGA學(xué)習(xí)總結(jié)??墒遣还艽丝痰乃饺绾?,此刻就總結(jié)一下自己學(xué)習(xí)它的感受或一些熟悉吧。關(guān)鍵詞FPGADE2板Quartusll軟件Verilog語(yǔ)言引言FPGA是什么?FPGA現(xiàn)狀?如何學(xué)習(xí)FPGA?FPGA是現(xiàn)場(chǎng)可編程門陣列的簡(jiǎn)稱,F(xiàn)PGA的應(yīng)用領(lǐng)域最初為通信領(lǐng)域,但目前,隨著信息產(chǎn)業(yè)和微電子技術(shù)的進(jìn)展,可編程邏輯嵌入式

2、系統(tǒng)設(shè)計(jì)技術(shù)已經(jīng)成為信息產(chǎn)業(yè)最熱點(diǎn)的技術(shù)之一,應(yīng)用范圍遍及航空航天、醫(yī)療、通信、絡(luò)通信、安防、廣播、汽車電子、工業(yè)、消費(fèi)類市場(chǎng)、測(cè)量測(cè)試等多個(gè)熱點(diǎn)領(lǐng)域。并隨著工藝的進(jìn)步和技術(shù)的進(jìn)展,向更多、更普遍的應(yīng)用領(lǐng)域擴(kuò)展。愈來(lái)愈多的設(shè)計(jì)也開始以ASIC轉(zhuǎn)向FPGA,FPGA正以各類電子產(chǎn)品的形式進(jìn)入了咱們?nèi)粘I畹母鱾€(gè)角落。正文(1)把握FPGA的編程語(yǔ)言在學(xué)習(xí)一門技術(shù)之前咱們往往從它的編程語(yǔ)言開始,猶如窗習(xí)單片機(jī)一樣,咱們從C語(yǔ)言開始入門,當(dāng)把握了C語(yǔ)言以后,開發(fā)單片機(jī)應(yīng)用程序也就不是什么難事了。學(xué)習(xí)FPGA也是如此,F(xiàn)PGA的編程語(yǔ)言有兩種:VHDL和Verilog,這兩種語(yǔ)言都適合用于FPGA的編

3、程。(2)FPGA實(shí)驗(yàn)尤其重要除學(xué)習(xí)編程語(yǔ)言之外,更重要的是實(shí)踐,將自己設(shè)計(jì)的程序能夠在真正的FPGA里運(yùn)行起來(lái),這時(shí)咱們需要選一塊板子進(jìn)行實(shí)驗(yàn),咱們選擇利用DE2板才進(jìn)行實(shí)驗(yàn)。初識(shí)DE2開發(fā)板DE2的資源DE2的資源超級(jí)豐碩,包括核心的FPGA芯片-CycloneII2C35F672C6,從名稱能夠看出,它包括有35千個(gè)LE,在Altera的芯片系列中,不算最多,但也絕對(duì)夠用。Altera下載操縱芯片-EPCS16和USB-Blaste對(duì)Jtag的支持。存儲(chǔ)用的芯片有:512-KBSRAM,8-MbyteSDRAM,4-MbyteFlashmemory經(jīng)典IO配置:擁有4個(gè)按鈕,18個(gè)撥動(dòng)開

4、關(guān),18個(gè)紅色發(fā)光二極管,9個(gè)綠色發(fā)光二極管,8個(gè)七段數(shù)碼管,16*2字符液晶顯示屏,超強(qiáng)多媒體:24位CD音質(zhì)音頻芯片WM8731(Mic輸入+Lineln+標(biāo)準(zhǔn)音頻輸出),視頻解碼芯片(支持NTSC/PAL制式),帶有高速DAC視屏輸出VGA模塊。5更多標(biāo)準(zhǔn)接口:通用串行總線USB操縱模塊和A、B型接口,SDCard接口,IrDA紅外模塊,10/100M自適應(yīng)以太絡(luò)適配器,RS-232標(biāo)準(zhǔn)串口,PS/2鍵盤接口6其他:50M,27M晶振各一個(gè),支持外部時(shí)鐘,80針帶愛惜電路的外接IO7.另外還有:配套的光盤資料,QutuarsII軟件,NiosII,例程與說(shuō)明文檔。關(guān)于管腳分派當(dāng)咱們創(chuàng)建一

5、個(gè)FPGA用戶系統(tǒng)的時(shí)候,到最后要做的工作確實(shí)是下載,在下載之前必需依照芯片的型號(hào)分派管腳如此才能將程序中特定功能的管腳與實(shí)際中的FPGA片外硬件電路一一對(duì)應(yīng)。FPGA簡(jiǎn)單的說(shuō),確實(shí)是現(xiàn)場(chǎng)可編程邏輯陣列。它的內(nèi)部是邏輯單元,它們之間能夠用線連接,至于以如何的形式相連,那么能夠依照應(yīng)用者寫入的邏輯決定。每次布線都會(huì)從頭組合邏輯單元,從而能夠任意的編寫不同的邏輯。固然,前提是概念的邏輯塊不超出它可讀寫的最大值??偨Y(jié)在學(xué)習(xí)FPGA時(shí),碰到的問題有許多,譬如,寫代碼時(shí)的警告,專門是一些不能輕忽的警告,每次碰到時(shí),老是還要檢查一會(huì)兒才能悔改來(lái),或有的警告已經(jīng)顯現(xiàn)了幾回可是確實(shí)是解決不掉。每次在學(xué)一個(gè)模塊

6、時(shí),只若是看懂了,它的一些重點(diǎn)就沒有及時(shí)的記錄在本子上,只有個(gè)別的想起來(lái)時(shí),才會(huì)做筆記。每做完一個(gè)模塊,沒有及時(shí)記錄下自己從那個(gè)模塊中學(xué)到了什么。上面的不足,都是在寫模塊的進(jìn)程中,自己慢慢暴露出來(lái)的。我很慶幸自己的一些問題能及時(shí)的被發(fā)覺,幸免類似的情形再次發(fā)生。像碰到警告時(shí),都要記錄下來(lái),通過(guò)更正后,要注釋,寫下警告的緣故,按期看一下。每次寫模塊的時(shí)候,都要記下重點(diǎn)知識(shí),即便是自己知道的,好記性都是比只是爛筆頭的。關(guān)于以上的總結(jié),我相信在以后的學(xué)習(xí)中必然會(huì)對(duì)自己有莫大的幫忙,它會(huì)時(shí)刻警醒自己,在以前的學(xué)習(xí)中,自己有哪些不足,以后萬(wàn)萬(wàn)不能再去犯一樣的錯(cuò)誤,不斷地糾正,不斷地進(jìn)步,相信自己必然會(huì)學(xué)

7、好FPGA的。篇二:fpga學(xué)習(xí)心得FPGA學(xué)習(xí)心得學(xué)習(xí)fpga個(gè)多月以來(lái),完全從零開始學(xué)習(xí),感覺自己學(xué)到的東西真很多,盡管還不是很熟練,只是也對(duì)fpga有了專門好的了解。以前一直沒有想過(guò)要來(lái)總結(jié)些什么,是感覺自己關(guān)于fpga全然就像是一無(wú)所知一樣,盡管天天在學(xué),只是確實(shí)沒有一個(gè)整體觀念,學(xué)的東西太混亂也沒有一個(gè)整體的框架。到了今天終于感覺自己的學(xué)習(xí)已經(jīng)小有成績(jī)了,盡管仍是沒有能夠獨(dú)立設(shè)計(jì)的自信。在最初學(xué)習(xí)的時(shí)候最要緊確實(shí)是關(guān)于fpga結(jié)構(gòu)的一個(gè)大體熟悉和對(duì)硬件描述語(yǔ)言verilogHDL語(yǔ)言的學(xué)習(xí)。之因此選擇學(xué)習(xí)fpga是因?yàn)樵谶@一學(xué)期找工作中發(fā)覺,此刻很多公司都需要會(huì)一點(diǎn)fpga方面的知識(shí)

8、,在筆試的時(shí)候也會(huì)偶然碰到一些用HDL語(yǔ)言編程的試題。此刻很多硬件工程師已經(jīng)再也不是單純的用傳統(tǒng)的方式進(jìn)行電路的設(shè)計(jì),至少此刻很多招聘的職位當(dāng)中再也不是單純的電路的設(shè)計(jì)了,很多都涉及到嵌入式和HDL語(yǔ)言。Fpga此刻正在以異樣的速度進(jìn)展,在08年全世界金融危機(jī)的時(shí)候大多數(shù)行業(yè)都呈此刻下滑的趨勢(shì),而fpga的廠商如xilinx和altera等公司的收入?yún)s呈現(xiàn)出增加的態(tài)勢(shì)。在我眼里fpga必將是以后硬件工程師不可缺少的一項(xiàng)本領(lǐng),這也確實(shí)是我學(xué)習(xí)fpga的緣故之一。一、硬件描述語(yǔ)言:關(guān)于硬件描述語(yǔ)言(HDL)語(yǔ)言我選擇的是和C語(yǔ)言類似的verilogHDL語(yǔ)言,盡管VHDL語(yǔ)言在很多方面優(yōu)于veri

9、logHDL語(yǔ)言,可是作為初學(xué),仍是先學(xué)習(xí)一個(gè)簡(jiǎn)單一點(diǎn)的語(yǔ)言,盡可能先將所需要學(xué)習(xí)的東西過(guò)一遍,以后等時(shí)刻許諾的時(shí)候再去學(xué)習(xí)VHDL語(yǔ)言,在上有看到此刻出來(lái)了一個(gè)叫systemverilog的語(yǔ)言,聽說(shuō)融合了verilog和VHDL語(yǔ)言各自的優(yōu)勢(shì),可能以后會(huì)成為行業(yè)統(tǒng)一的語(yǔ)言吧。verilogHDL現(xiàn)時(shí)期要緊接觸的確實(shí)是對(duì)組合邏輯電路和時(shí)序電路的描述了。所接觸的程序中以always(*)模塊占多數(shù),幾乎是所見過(guò)模塊的核心部份了,其實(shí)在學(xué)習(xí)那個(gè)語(yǔ)言上面也沒有花太多的時(shí)刻,因?yàn)橛袑?duì)C語(yǔ)言的學(xué)習(xí),因此就先入為主了。當(dāng)了解了其大體語(yǔ)法事后就開始了實(shí)例的分析,在此進(jìn)程中也有了解fpga的結(jié)構(gòu),只是感覺沒

10、有真正利用過(guò)fpga因此關(guān)于那些什么pll、sram、sdram、norflash等都沒有什么直觀的感覺,因此關(guān)于程序也全然不明白如此些的緣故和到底能實(shí)現(xiàn)什么功能,這也成了我學(xué)習(xí)verilogHDL語(yǔ)言的一個(gè)障礙。二、fpga的大體結(jié)構(gòu):在那個(gè)地址仍是得熟悉清楚fpga的結(jié)構(gòu),記得有一個(gè)在外面去面試的時(shí)候,他人就問了我一個(gè)問題fpga和mcu的聯(lián)系與區(qū)別?那時(shí)我全然都尚未接觸過(guò)fpga,只明白fpga是屬于硬件方面的開發(fā)板。后來(lái)通過(guò)自己對(duì)fpga的接觸和上的相關(guān)說(shuō)明終于有了一個(gè)初步的熟悉。接下來(lái)就具體說(shuō)明一下:MCU又稱為單片機(jī),它為8位的微操縱器,要緊用在工業(yè)操縱,F(xiàn)PGA那么為可編程邏輯器

11、件的一種,擁有豐碩的硬件資源,可實(shí)現(xiàn)壯大的邏輯功能,由于其硬件重構(gòu)的特性,適合各類領(lǐng)域的應(yīng)用;MCU的編程語(yǔ)言要緊為C語(yǔ)言,以軟邏輯實(shí)現(xiàn),它通過(guò)順序執(zhí)行指令來(lái)實(shí)現(xiàn)特定功能,幸免不了低速的缺點(diǎn),相較之下,F(xiàn)PGA它以Verilog或VHDL等硬件描述語(yǔ)言為編程語(yǔ)言,由于直接由硬件實(shí)現(xiàn)邏輯,因此它并行執(zhí)行,從而使速度大大提高;MCU的這種同一時(shí)刻只能處置一條指令的特點(diǎn)也阻礙了它的應(yīng)用,它只能用于一些算法的設(shè)計(jì)及簡(jiǎn)單的操縱,而FPGA由于并行執(zhí)行的特性,大量應(yīng)用于復(fù)雜邏輯操縱和大量的數(shù)據(jù)運(yùn)算和處置。FPGA是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上一步一步進(jìn)展起來(lái)的。PAL是與陣列可編程或陣列

12、固定,它的缺點(diǎn)是:采納熔絲工藝,只能一次編程,而且它的輸出是固定的,不能編程;也確實(shí)是說(shuō)芯片一旦選定,輸出結(jié)構(gòu)將不可改變。GAL是在PAL的基礎(chǔ)上發(fā)展起來(lái)的,能夠重復(fù)編程。與PAL的最大區(qū)別是:輸出結(jié)構(gòu)能夠由用戶自己概念。但它結(jié)構(gòu)簡(jiǎn)單,I/O數(shù)量有限。CPLD是在GAL的基礎(chǔ)上進(jìn)展起來(lái)的。它要緊由輸入輸出操縱單元、宏單元和互連矩陣等組成。隨著電子市場(chǎng)對(duì)功能要求的不斷提高,CPLD愈來(lái)愈不能知足市場(chǎng)的需求。它最大只有512個(gè)宏單元,大部份是組合邏輯,難以實(shí)現(xiàn)復(fù)雜的時(shí)序邏輯設(shè)計(jì),而且功耗專門大。隨著工藝的進(jìn)展,F(xiàn)PGA登上了歷史舞臺(tái)并成為主角,它內(nèi)部資源豐碩,不管是時(shí)序邏輯仍是組合邏輯都很多。它是

13、作為專用集成電路領(lǐng)域中的一種半定制電路而顯現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。三、altera公司的軟件利用:其實(shí)真正對(duì)fpga有一個(gè)整體了解是在其軟件的利用進(jìn)程中。我在實(shí)驗(yàn)室里利用的是altera公司的sycloneII系列的EP2C35F484C8,因此利用的軟件確實(shí)是altera公司提供的quartusll和niosEDS。在quartus的利用中其他的沒什么說(shuō)的,只是有幾點(diǎn)需要注意:一確實(shí)是頂層文件名必然要和工程名一致;二確實(shí)是工程必然不能放在含中文的目錄下,否者編譯會(huì)犯錯(cuò)。在最初利用quartus的時(shí)候就涉及到仿真和引腳分派的問題。關(guān)于引腳分派,最

14、開始沒人提示因此我以為只要弄上去不報(bào)錯(cuò)就好了,后來(lái)在下載到實(shí)驗(yàn)板上的時(shí)候,覺察全然就達(dá)不到預(yù)期的成效,于是在上找了很多相關(guān)的技術(shù),也嘗試過(guò)通過(guò)tcl腳本配置,上還特推薦這種方式。后來(lái)在handbook里面終于找到了相應(yīng)的醫(yī)治,覺察仍是我一個(gè)一個(gè)的敲進(jìn)去方彪。然后確實(shí)是仿真了,在最初利用的quartusll版本中還自帶仿真工具,因此就沒有借用第三方的modelsim,因?yàn)楦杏X編寫testbench也是一個(gè)很麻煩的情形,可是自從quartusII10版本以后altera公司就取消了仿真工具,而推薦大伙兒利用第三方的modersim,哎沒方法只有再去研究一下modersim破解了方式和testben

15、ch的書寫了。其實(shí)quartusII里面還有很多有效的工具,比如說(shuō)像signaltapII、timeQuest、sopcbuilder等。此刻我還欠缺的確實(shí)是利用timeQuest進(jìn)行時(shí)序收斂,那個(gè)在特權(quán)同窗的視頻教程中有,還需要好好去學(xué)習(xí),而關(guān)于signaltapII和sopcbuilder已經(jīng)有了必然的了解。其實(shí)sopcbuilder確實(shí)是以前的nios和niosII的一個(gè)后繼者,它要緊確實(shí)是挪用他人已經(jīng)寫好了的一些程序來(lái)操縱fpga的各個(gè)組件,固然也能夠依照自己的需要進(jìn)行自概念組件以達(dá)到自己的設(shè)計(jì)要求。在配置sopc的時(shí)候必然要依照自己所利用的fpga型號(hào)就行參數(shù)的設(shè)置,因此閱讀開發(fā)板利

16、用手冊(cè)就顯得相當(dāng)重要了。而我在配置sopc的進(jìn)程中也碰到過(guò)很多的問題,此刻也還有很多技術(shù)沒有學(xué)會(huì),我在那個(gè)方面花費(fèi)的時(shí)刻也是專門的多的,幾乎用去了我2/3的時(shí)刻。剛開始配置的時(shí)候仍是感覺自己學(xué)到了很多東西,也作出了很多實(shí)際的成效,給自己帶來(lái)了很多的信心,可是到后面覺察自己仿佛只是在做一個(gè)簡(jiǎn)單的仿照的工作,于是愈來(lái)愈感覺自己偏離了學(xué)習(xí)的重心,而且在那個(gè)進(jìn)程中也碰到了很多沒有解決的問題,于是學(xué)習(xí)就有點(diǎn)停滯不前了。很多器件什么緣故需要,什么緣故不需要?成了困擾我的要緊問題,而Nios_II_嵌入式軟核SOPC設(shè)計(jì)原理及應(yīng)用、NiosII的那些事兒和用戶手冊(cè)和友博客給了我專門大的幫忙,也補(bǔ)充了自己在這

17、方面的理論知識(shí)。在學(xué)習(xí)sopc進(jìn)程中到此刻也還有很多難題沒有取得解決,固然不必然確實(shí)是sopc的問題,也有HDL語(yǔ)言的問題:第一、在配置鎖相環(huán)的時(shí)候碰到一個(gè)很奇怪的問題。第一來(lái)講說(shuō)鎖相環(huán)的功能,鎖相環(huán)要緊的功能是能夠進(jìn)行倍頻和分頻而且能夠產(chǎn)生相移。而一樣的niosII軟核能夠工作在100MHz的頻率下,而sycloneII系列的晶振時(shí)鐘是50MHz,因此一樣在配置sopc的時(shí)候都需要用到鎖相環(huán),固然也能夠不用。但是若是要用到SDRAM組件的時(shí)候就必然要用PLL了,因?yàn)镾DRAM的時(shí)鐘和系統(tǒng)時(shí)鐘之間有一個(gè)相移,必需通過(guò)PLL來(lái)實(shí)現(xiàn)相移。而PLL的利用有兩種方式,一種確實(shí)是在quartusII里面

18、添加,一種確實(shí)是在sopc里面添加PLLcontrol來(lái)生成。第一種沒有多少好說(shuō)的,那個(gè)地址要緊確實(shí)是說(shuō)一下第二種方式,因?yàn)槲以诘诙N配置下沒有成功過(guò)。那時(shí)一直不明白緣故所在,也在上看了很多想過(guò)質(zhì)料,依舊沒有找到權(quán)威的說(shuō)明,終于在特權(quán)同窗的博客上面取得了解答我覺察自己很多知識(shí)都是通過(guò)特權(quán)同窗的博客、書籍和視頻而取得,看到很多友推薦購(gòu)買特權(quán)同窗的書籍學(xué)習(xí)看來(lái)真是對(duì)的。第二、在觀看了特權(quán)同窗的視頻后,試著將那些繁瑣的程序分模塊來(lái)進(jìn)行書寫??墒顷P(guān)于頂層例化模塊的書寫一直還沒來(lái)得及認(rèn)真去學(xué)習(xí)。大多時(shí)候都是通過(guò)生成板塊圖在bdf文件里面用連線的方式來(lái)代替例化,關(guān)于我現(xiàn)時(shí)期這種小工程來(lái)講如此還并無(wú)多大的阻

19、礙,也和同窗討論過(guò)例化。他們的觀點(diǎn)是那個(gè)東西能夠通過(guò)連線的方式來(lái)完成,因此沒必要再去做那個(gè)“麻煩而看似作用不大”的例化了。其實(shí)例化模塊的存在是有專門大的意義的,或許在咱們現(xiàn)時(shí)期的這種小系統(tǒng)中還表現(xiàn)不出它的作用。咱們?nèi)绱思傧胍幌?,假設(shè)在公司里面要做某個(gè)工程,那個(gè)工程由1000個(gè)模塊組成,分給不同的小組完成,每一個(gè)小組負(fù)責(zé)一個(gè)模塊,最后由總工程師將各個(gè)模塊整合,若是沒有例化文件那么總工程師就用對(duì)這1000個(gè)模塊圖進(jìn)行連接,而通過(guò)例化模塊對(duì)管腳進(jìn)行分派后就只有一個(gè)模塊圖了,不同可想而知了吧。固然學(xué)習(xí)編寫例化模塊還有一個(gè)益處確實(shí)是能夠讓自己對(duì)所編寫的程序有一個(gè)整體概念,增強(qiáng)自己關(guān)于程序的明白得能力,如

20、此能提高自己的編程能力。第三、確實(shí)是涉及到一個(gè)自概念組件的問題了,其實(shí)任何組件都能夠通過(guò)PIO端口進(jìn)行外加,可是那個(gè)和模塊例化也有一樣的問題。既然能夠使模塊的數(shù)量減少又何樂而不為呢?第四、確實(shí)是時(shí)序收斂了,那個(gè)真的尚未認(rèn)真去研究過(guò),只是觀看了特權(quán)同窗的教學(xué)視頻,感覺太繁瑣了,仍是等以后又充沛的時(shí)刻的時(shí)候再去學(xué)習(xí)了。第五、而在我的畢業(yè)設(shè)計(jì)當(dāng)中需要用到vga顯示,這成了我這段時(shí)刻的要緊難題,剛開篇三:FPGA,學(xué)習(xí)心得體會(huì)篇一:fpga學(xué)習(xí)心得大報(bào)告fpga技術(shù)基礎(chǔ)學(xué)習(xí)報(bào)告-課程內(nèi)容學(xué)習(xí)心得姓名:學(xué)號(hào):年級(jí)專業(yè):指導(dǎo)教師:瞿麟XX10401128自動(dòng)化101薛小軍摘要從開始學(xué)fpga到此刻粗略算來(lái)

21、的話,已經(jīng)有3個(gè)多月了,就目前而言,我并非確信自己算不算高手們所說(shuō)的入門了,fpga學(xué)習(xí)總結(jié)??墒遣还艽丝痰乃饺绾危丝叹涂偨Y(jié)一下自己學(xué)習(xí)它的感受或一些熟悉吧。關(guān)鍵詞fpgade2板quartusii軟件verilog語(yǔ)言引言fpga是什么?fpga現(xiàn)狀?如何學(xué)習(xí)fpga?fpga是現(xiàn)場(chǎng)可編程門陣列的簡(jiǎn)稱,fpga的應(yīng)用領(lǐng)域最初為通信領(lǐng)域,但目前,隨著信息產(chǎn)業(yè)和微電子技術(shù)的進(jìn)展,可編程邏輯嵌入式系統(tǒng)設(shè)計(jì)技術(shù)已經(jīng)成為信息產(chǎn)業(yè)最熱點(diǎn)的技術(shù)之一,應(yīng)用范圍遍及航空航天、醫(yī)療、通信、絡(luò)通信、安防、廣播、汽車電子、工業(yè)、消費(fèi)類市場(chǎng)、測(cè)量測(cè)試等多個(gè)熱點(diǎn)領(lǐng)域。并隨著工藝的進(jìn)步和技術(shù)的進(jìn)展,向更多、更普遍的應(yīng)

22、用領(lǐng)域擴(kuò)展。愈來(lái)愈多的設(shè)計(jì)也開始以asic轉(zhuǎn)向fpga,fpga正以各類電子產(chǎn)品的形式進(jìn)入了咱們?nèi)粘I畹母鱾€(gè)角落。正文(1)把握f(shuō)pga的編程語(yǔ)言在學(xué)習(xí)一門技術(shù)之前咱們往往從它的編程語(yǔ)言開始,猶如窗習(xí)單片機(jī)一樣,咱們從c語(yǔ)言開始入門,當(dāng)把握了c語(yǔ)言以后,開發(fā)單片機(jī)應(yīng)用程序也就不是什么難事了。學(xué)習(xí)fpga也是如此,fpga的編程語(yǔ)言有兩種:vhdl和verilog,這兩種語(yǔ)言都適合用于fpga的編程。(2)fpga實(shí)驗(yàn)尤其重要除學(xué)習(xí)編程語(yǔ)言之外,更重要的是實(shí)踐,將自己設(shè)計(jì)的程序能夠在真正的fpga里運(yùn)行起來(lái),這時(shí)咱們需要選一塊板子進(jìn)行實(shí)驗(yàn),咱們選擇利用de2板才進(jìn)行實(shí)驗(yàn)。初識(shí)de2開發(fā)板de2

23、的資源de2的資源超級(jí)豐碩,包括核心的fpga芯片-cycloneii2c35f672c6,從名稱能夠看出,它包括有35千個(gè)le,在altera的芯片系列中,不算最多,但也絕對(duì)夠用。altera下載操縱芯片-epcs16和usb-blaste對(duì)jtag的支持。存儲(chǔ)用的芯片有:512-kbsram,8-mbytesdram,4-mbyteflashmemory經(jīng)典io配置:擁有4個(gè)按鈕,18個(gè)撥動(dòng)開關(guān),18個(gè)紅色發(fā)光二極管,9個(gè)綠色發(fā)光二極管,8個(gè)七段數(shù)碼管,16*2字符液晶顯示屏,超強(qiáng)多媒體:24位cd音質(zhì)音頻芯片wm8731(mic輸入+linein+標(biāo)準(zhǔn)音頻輸出),視頻解碼芯片(支持nts

24、c/pal制式),帶有高速dac視屏輸出vga模塊。5更多標(biāo)準(zhǔn)接口:通用串行總線usb操縱模塊和a、b型接口,sdcard接口,irda紅外模塊,10/100m自適應(yīng)以太絡(luò)適配器,rs-232標(biāo)準(zhǔn)串口,ps/2鍵盤接口6其他:50m,27m晶振各一個(gè),支持外部時(shí)鐘,80針帶愛惜電路的外接io7.另外還有:配套的光盤資料,qutuarsii軟件,niosii,例程與說(shuō)明文檔。關(guān)于管腳分派當(dāng)咱們創(chuàng)建一個(gè)fpga用戶系統(tǒng)的時(shí)候,到最后要做的工作確實(shí)是下載,在下載之前必需依照芯片的型號(hào)分派管腳如此才能將程序中特定功能的管腳與實(shí)際中的fpga片外硬件電路一一對(duì)應(yīng)。fpga簡(jiǎn)單的說(shuō),確實(shí)是現(xiàn)場(chǎng)可編程邏輯陣

25、列。它的內(nèi)部是邏輯單元,它們之間能夠用線連接,至于以如何的形式相連,那么能夠依照應(yīng)用者寫入的邏輯決定。每次布線都會(huì)從頭組合邏輯單元,從而能夠任意的編寫不同的邏輯。固然,前提是概念的邏輯塊不超出它可讀寫的最大值??偨Y(jié)在學(xué)習(xí)fpga時(shí),碰到的問題有許多,譬如,寫代碼時(shí)的警告,專門是一些不能輕忽的警告,每次碰到時(shí),老是還要檢查一會(huì)兒才能悔改來(lái),或有的警告已經(jīng)顯現(xiàn)了幾回,可是確實(shí)是解決不掉。每次在學(xué)一個(gè)模塊時(shí),只若是看懂了,它的一些重點(diǎn)就沒有及時(shí)的記錄在本子上,只有個(gè)別的想起來(lái)時(shí),才會(huì)做筆記。每做完一個(gè)模塊,沒有及時(shí)記錄下自己從那個(gè)模塊中學(xué)到了什么。上面的不足,都是在寫模塊的進(jìn)程中,自己慢慢暴露出來(lái)的

26、。我很慶幸自己的一些問題能及時(shí)的被發(fā)覺,幸免類似的情形再次發(fā)生。像碰到警告時(shí),都要記錄下來(lái),通過(guò)更正后,要注釋,寫下警告的緣故,按期看一下。每次寫模塊的時(shí)候,都要記下重點(diǎn)知識(shí),即便是自己知道的,好記性都是比只是爛筆頭的。關(guān)于以上的總結(jié),我相信在以后的學(xué)習(xí)中必然會(huì)對(duì)自己有莫大的幫忙,它會(huì)時(shí)刻警醒自己,在以前的學(xué)習(xí)中,自己有哪些不足,以后萬(wàn)萬(wàn)不能再去犯一樣的錯(cuò)誤,不斷地糾正,不斷地進(jìn)步,相信自己必然會(huì)學(xué)好fpga的。篇二:fpga學(xué)習(xí)心得回憶起自己學(xué)fpga,已經(jīng)有一段時(shí)刻了,從開始的茫然,到后來(lái)的瘋狂看書,設(shè)計(jì)開發(fā)板,調(diào)電路,練習(xí)各類fpga實(shí)例,到最后能獨(dú)立完成項(xiàng)目,一路走來(lái),感受頗多,拿出來(lái)

27、和大伙兒分享,順便介紹下自己的一點(diǎn)體會(huì)所得,希望對(duì)初學(xué)者有所幫忙。廢話不說(shuō)了,下面進(jìn)入正題,學(xué)習(xí)fpga我要緊經(jīng)歷了這么幾個(gè)時(shí)期:、verilog語(yǔ)言的學(xué)習(xí),熟悉verilog語(yǔ)言的各類語(yǔ)法。、fpga的學(xué)習(xí),熟悉quartusii軟件的各類功能,各類邏輯算法設(shè)計(jì),接口模塊(rs232,lcd,vga,spi,i2c等)的設(shè)計(jì),時(shí)序分析,硬件優(yōu)化等,自己開始設(shè)計(jì)簡(jiǎn)單的fpga板子。、niosii的學(xué)習(xí),熟悉niosii的開發(fā)流程,熟悉開發(fā)軟件(sopc,niosiiide),了解niosii的大體結(jié)構(gòu),設(shè)計(jì)niosii開發(fā)板,編寫niosiic語(yǔ)言程序,調(diào)試板子各模塊功能。先來(lái)講說(shuō)第一個(gè)時(shí)期,

28、此刻要緊的硬件描述語(yǔ)言有vhdl,verilog兩種,在本科時(shí)教師一樣教vhdl,只是此刻verilog用的人愈來(lái)愈多,其更易上手(與c語(yǔ)言語(yǔ)法比較類似),也更靈活,此刻的ic設(shè)計(jì)大體都用verilog。像systemc,systemverilog之類的應(yīng)該還在萌芽時(shí)期,以后可能會(huì)有較大進(jìn)展。鑒于以上緣故我選擇了verilog作為我學(xué)習(xí)的硬件描述語(yǔ)言。其實(shí)有c語(yǔ)言的基礎(chǔ),學(xué)起verilog的語(yǔ)言很簡(jiǎn)單,關(guān)鍵要有并行的概念,所有的module,assign,always都是并行的,這一點(diǎn)與軟件語(yǔ)言有明顯不同。那個(gè)地址推薦幾本評(píng)判比較好的學(xué)習(xí)verilog的書籍:、verilog數(shù)字系統(tǒng)設(shè)計(jì)教程這

29、本書關(guān)于入門是一本專門好的書,通俗易懂,讓人專門快上手,它里面的例子也不錯(cuò)。但本書關(guān)于資源優(yōu)化方面的編程沒有多少涉及到、設(shè)計(jì)與驗(yàn)證veriloghdl這本書盡管比較薄,可是相當(dāng)精辟,講解的也很深切,很多概念看了這本書有種豁然爽朗的感覺,呵呵。學(xué)習(xí)verilog其實(shí)不用看很多書,大體的語(yǔ)法部份大伙兒都一樣,關(guān)鍵是要自己會(huì)靈活應(yīng)用,多做練習(xí)。verilog語(yǔ)言學(xué)了一段時(shí)刻,感覺自己能夠編點(diǎn)東西,希望自己編的程序在板子上運(yùn)行看看結(jié)果,下面就介紹我學(xué)習(xí)的第二個(gè)時(shí)期。剛開始我拿了實(shí)驗(yàn)室一塊cpld的開發(fā)板做練習(xí),熟悉quartusii的各類功能,比如ip的挪用,各類約束設(shè)置,時(shí)序分析,logiclock

30、設(shè)計(jì)方式等,只是做到后面發(fā)覺cpld的資源不太夠(沒有內(nèi)嵌的ram、不能用signaltapii,le太少等),而實(shí)驗(yàn)室沒有fpga開發(fā)板,因此就萌生了自己做fpga開發(fā)板的用意,恰好cadence我也學(xué)的差不多了,就花了幾天時(shí)刻要緊研究了fpga配置電路的設(shè)計(jì),在板子上做了jtag和as下載口,在做了幾個(gè)用戶按鍵和led,其他的口全數(shù)引出作為io口,電路比較簡(jiǎn)單,板子焊好后一調(diào)就通了(內(nèi)心那個(gè)爽?。?。我選的fpga是cycloneii系列的ep2c5,資源比以前的fpga多了好幾倍,還有pll,內(nèi)嵌的ram,能夠試試signaltapii,用內(nèi)嵌的邏輯分析儀測(cè)試引腳波形,關(guān)于fpga的調(diào)試,

31、邏輯分析儀是相當(dāng)重要的。利用這塊板子我完成了項(xiàng)目中的幾個(gè)要緊功能rs232通信,指令譯碼,配置dds,ad數(shù)據(jù)高速緩存,電子開關(guān)狀態(tài)設(shè)置等,在實(shí)踐中學(xué)習(xí)起來(lái)真的比平??旌芏?,用到什么學(xué)什么動(dòng)力更大。那個(gè)時(shí)候我要緊看的數(shù)據(jù)有這幾本感覺比較好:、alterafpga/cpld設(shè)計(jì)(基礎(chǔ)篇):講解一些大體的fpga設(shè)計(jì)技術(shù),和quartusii中各個(gè)工具的用法(ip,rtl,signalprobe,signaltapii,timingclosurefloorplan,chipeditor等),關(guān)于入門超級(jí)好。、alterafpga/cpld設(shè)計(jì)(高級(jí)篇):講解了一些高級(jí)工具的應(yīng)用,logiclock

32、,時(shí)序約束很分析,設(shè)計(jì)優(yōu)化,也講述了一些硬件編程的思想,作為提高用。、fpga設(shè)計(jì)指南-器件,工具和流程:這本書看了他的目錄忍不住就買了,這本書講述了fpga設(shè)計(jì)的方方面面,盡管每一個(gè)方面都是點(diǎn)到為止,但能讓你有個(gè)整體的概念,了解fpga的所有設(shè)計(jì)功能,了解fpga開發(fā)的整個(gè)流程。、在那個(gè)地址也推薦幾個(gè)學(xué)習(xí)fpga比較好的論壇,只是很多人一看到英語(yǔ)就不想看,其實(shí)上面的英文很簡(jiǎn)單,很多時(shí)候不敢看是因?yàn)閷?duì)自己沒信心或心靜不下來(lái)看只是官方站上資料很多,剛開始可能會(huì)感覺資料安排的有點(diǎn)亂,不方便查找,以后有時(shí)刻我列個(gè)資料的鏈接目錄,整理一下,方便大伙兒查找。到那個(gè)地址,自己最fpga的學(xué)習(xí)有一段時(shí)刻了,

33、練習(xí)了很多實(shí)例,自己也編寫了很多程序,也有了一些項(xiàng)目體會(huì),算是對(duì)fpga有些了解了。在不斷的學(xué)習(xí)中發(fā)覺fpga不僅能夠做邏輯設(shè)計(jì),算法設(shè)計(jì)等,還能做嵌入式開發(fā),altera前后開發(fā)了nios,niosii兩款fpga的嵌入式軟核,并有配套的軟件,剛開始看到這些我真是心中突然豁然爽朗,學(xué)習(xí)真的是無(wú)止境,又一個(gè)全新的領(lǐng)域擺在我眼前,我決定學(xué)習(xí)niosii,要學(xué)就要學(xué)最好。剛開始入門是很痛楚的,嵌入式設(shè)計(jì)需要從硬件到驅(qū)動(dòng)到軟件全數(shù)熟悉,硬件系統(tǒng)問題還不是專門大(以前做過(guò)單片機(jī),dsp等mcu),處置器的架構(gòu)內(nèi)心還有點(diǎn)數(shù),關(guān)于驅(qū)動(dòng)和軟件工程,剛開始學(xué)習(xí)真的很頭痛。niosii應(yīng)該還算比較新的內(nèi)容(應(yīng)該

34、是XX年出的),國(guó)內(nèi)的書籍不算很多,上這方面的資料也比較零碎,因此我就開始將altera站上這方面的資料系統(tǒng)的看一邊,那個(gè)地址推薦幾本站上的handbook:、embeddeddesignhandbook、niosiiprocessorreferencehandbook、niosiisoftwaredevelopershandbook、quartusiihandbook,volume4:sopcbuilder、quartusiihandbook,volume5:embeddedperipherals看完這些handbook,總算大體明白整個(gè)架構(gòu),軟硬件設(shè)計(jì)方式,驅(qū)動(dòng)的編寫等,感覺自己能夠編一些

35、嵌入式的程序了,只是盡管前面做的那塊ep2c5的板子支持niosii系統(tǒng),只是關(guān)于嵌入式設(shè)計(jì)來(lái)講仍是顯得單薄了一點(diǎn),沒有sdram,flash這兩個(gè)比較大體的模塊,ep2c5內(nèi)嵌的ram過(guò)小,程序?qū)懖淮螅颐看慰傄g盡腦汁優(yōu)化程序代碼大小,很多時(shí)候優(yōu)化了后函數(shù)功能會(huì)受到限制,無(wú)益于初學(xué)者,也無(wú)益于調(diào)試。因此到那個(gè)地址我有產(chǎn)生了自己做一塊nios開發(fā)板的方式(直接買比較貴,自己做廉價(jià),而且還能鍛煉自己,一箭雙雕),通過(guò)借鑒其他開發(fā)板,選擇自己開發(fā)板上需要包括什么模塊,確信各個(gè)模塊利用什么芯片,閱讀各個(gè)芯片的datasheet,畫出原理圖并做出pcb圖,這塊板子我選的是ep2c8q208,比上一

36、塊資源又快要多了一倍,板子上還有以下模塊:sdram,flash,epcs4,rs232,usb,vga,ps2,ad,da,lcd等,知足了一樣開發(fā)板的配置要求。板子回來(lái)以后調(diào)試了四五天,(flash工作了,lcd顯示了,rs232通了,usb通了,ad,da工作了,sdram正常了),真是天天都有驚喜,每一個(gè)模塊都編寫了niosii軟件測(cè)試程序,調(diào)試硬件的時(shí)候?qū)浖倪\(yùn)行也更熟悉了。在這次調(diào)試的進(jìn)程中真的學(xué)到了很多,為此專門寫了好幾頁(yè)調(diào)試筆記,下次拿出來(lái)和大伙兒一路分享。此刻硬件平臺(tái)有了,niosii也了解的差不多了,終于能夠自己編寫一些規(guī)模大一點(diǎn)的程序了。學(xué)fpga的一點(diǎn)心得從去年開始學(xué)

37、fpga,以前一直做dsp,但因?yàn)轫?xiàng)目的需要,在一個(gè)應(yīng)用中只有fpga才能解決問題,因此硬著頭皮上fpga,又因?yàn)榻Y(jié)項(xiàng)目的時(shí)刻比較緊,因此要緊以解決問題為目的,說(shuō)真的,項(xiàng)目做下來(lái)寫了四千多行的代碼,達(dá)到了設(shè)計(jì)目標(biāo),但對(duì)fpga學(xué)習(xí)還不夠系統(tǒng),也正進(jìn)一步的學(xué)習(xí)中因?yàn)槲沂菃胃?沒有團(tuán)隊(duì),碰到問題只能在上找資料,其難度可想而知幸虧以前用過(guò)cpld,有一點(diǎn)基礎(chǔ),用的編程語(yǔ)言是ahdl,感覺ahdl寫一點(diǎn)小程序還能夠,但做復(fù)雜程序就有點(diǎn)費(fèi)力了(應(yīng)該是我的ahdl沒學(xué)好),因此在做fpga程序時(shí)我選擇了比較簡(jiǎn)單的verilog語(yǔ)言。由于沒人指導(dǎo),因此買了一個(gè)簡(jiǎn)單的fpga開發(fā)板,是cyclone的,開發(fā)板

38、確實(shí)是好,送了較多學(xué)習(xí)資料,用了一個(gè)禮拜的時(shí)刻,學(xué)習(xí)了niosii的大體應(yīng)用,固然,我的需要確實(shí)是明白如安在nios里操縱一個(gè)信號(hào)的高低電平轉(zhuǎn)變就夠了,其它滿是c語(yǔ)言的東西,主若是熟悉了quartus的開發(fā)平臺(tái),并用nios程序把要實(shí)現(xiàn)的要緊代碼用c寫了一遍,通過(guò)了,但速度上不去。有這些知識(shí)做鋪墊后,就開始了項(xiàng)目的設(shè)計(jì)。項(xiàng)目要求將外部高速數(shù)據(jù)(40mb/s)進(jìn)行存盤,并能夠?qū)⒋姹P的數(shù)據(jù)在適當(dāng)?shù)臅r(shí)候原路返回(速度不變)。因此在硬件的設(shè)計(jì)上fpga選擇了ep2c35f484c8n,外部有128m的sdram做為數(shù)據(jù)的緩沖。因此fpga的要緊程序集中在atahost操縱器(實(shí)現(xiàn)udma讀寫)、sdr

39、am操縱器(大容量循環(huán)緩沖)上,固然還包括一些其它的操縱,如實(shí)不時(shí)鐘,芯片操縱,rs232的通信及相應(yīng)的通信協(xié)議。硬件完成后,大部份的時(shí)刻都在寫程序,感覺verilog跟c差不多,就將原先寫成的c代碼翻譯了一下,每寫一段代碼就測(cè)試一下。起初并非明白在quartus里還有邏輯分析儀的功能,因此程序出了問題只能使勁的分析代碼,猜想問題可能出在哪里,萬(wàn)不得已時(shí)才做一下仿真(后來(lái)看很多有做程序都先做仿真,仿真通事后再下載到目標(biāo)板里運(yùn)行測(cè)試但到此刻我的仿真關(guān)還沒過(guò)),因此做得很累。我感到如此做下去到時(shí)刻結(jié)點(diǎn)確信結(jié)了不了項(xiàng)目,就找fpga的qq群向高手們請(qǐng)教體會(huì),明白了能夠quartus的邏輯分析儀來(lái)觀看

40、信號(hào),哈哈,爽了(感激感激)。后面的程序找問題就容易多了,依照ata協(xié)議、sdram手冊(cè)、及各外圍芯片手冊(cè)一步步寫下去,固然其中也碰到了各類各樣的問題,但專門快取得解決。一直到項(xiàng)目終止,都是用邏輯分析儀來(lái)找問題,沒做過(guò)仿真(因此此刻仿真關(guān)還沒過(guò))。今年又用fpga做了一些項(xiàng)目。簡(jiǎn)單說(shuō)一下體會(huì)吧,歸結(jié)起來(lái)就三個(gè)字:做、想、問。書讀千遍,不如做一遍;看他人做百次,不如自己做一次;確實(shí)是要實(shí)踐。實(shí)踐的動(dòng)力一方面來(lái)自愛好,別一方面來(lái)自己壓力,我個(gè)人感覺后者更重要。有需求會(huì)容易形成壓力,也確實(shí)是說(shuō)最好能在實(shí)際的項(xiàng)目開發(fā)中鍛煉,而不是為了學(xué)習(xí)而學(xué)習(xí)。在做的進(jìn)程中要多想,多想一想問題顯現(xiàn)的緣故,問題解決后要

41、多問幾個(gè)什么緣故,這也是體會(huì)積存的進(jìn)程,最好要寫項(xiàng)目日記,把問題及緣故、解決的方法都寫進(jìn)去。還要多問,碰到問題經(jīng)歷了痛楚的思索后還得不到解決就要問了,問搜索引擎,問友,問同窗同行,一篇文章、朋友們的點(diǎn)撥都可能幫忙自己快速解決問題。fpga入門心得及系列資料不明白什么緣故自己每次同意一個(gè)新事物,總要花上那么長(zhǎng)的一段時(shí)刻。每一個(gè)東西,總要通過(guò)從一點(diǎn)都不了解,到有點(diǎn)了明白,到最后才想明白要來(lái)學(xué)學(xué),但每次學(xué)習(xí)時(shí)也老是走馬觀花??赡苷娴氖苤袊?guó)的教育思想束縛的太嚴(yán)峻了吧。以前的人念書,仿佛也沒有什么目標(biāo),只是明白上課要認(rèn)真聽,考試要考好。如此就能夠夠了。也從來(lái)沒想過(guò),我學(xué)那個(gè)到底有什么用呢。可是上了大學(xué)后

42、,一切都改變了。咱們的學(xué)習(xí)也再也不是為了考試而考試了。尤其是像咱們學(xué)電子,假設(shè)僅僅是為考試的話,那你的大學(xué)完全能夠過(guò)得很輕松,成天睡覺,游戲,照樣能夠考高分。那樣畢業(yè)了,你說(shuō)你的大學(xué)學(xué)習(xí)是不是等于0。到頭來(lái)仍是什么也不是。因此當(dāng)你進(jìn)入大學(xué),當(dāng)你選擇了電子,就決定了你從此要為之付出。不管以后如何,只要你朝著自己的方向走,必然會(huì)成功的。此刻說(shuō)說(shuō)fpga的學(xué)習(xí)吧,或許,很多人剛接觸fpga時(shí),可能還在為到底什么是cpld,什么時(shí)fpga,我到底要學(xué)習(xí)哪門語(yǔ)言而苦惱,不知大伙兒是不是如此,可是我曾經(jīng)確實(shí)是如此,也到上去找過(guò),最后也終于找到了答案。因?yàn)槟菚r(shí)身旁的人都還沒學(xué)過(guò)。其實(shí)cpld,fpga最大的

43、區(qū)別也確實(shí)是fpga的程序必需由配置芯片通過(guò)上電后,將程序?qū)懭胄酒?,也確實(shí)是fpga的內(nèi)部存儲(chǔ)器是相當(dāng)于內(nèi)存一樣,一掉電就沒了。而cpld是像單片機(jī)一樣,程序是存貯存在內(nèi)部中的,一上電就能夠夠跑了。二者的功能差不多,可是fpga的資源比cpld加倍豐碩。在cpld上能夠?qū)崿F(xiàn)的功能,在fpga上大體都能夠?qū)崿F(xiàn)的。因此也沒必要去想太多什么是fpga,cpld了,只要弄懂了二者的內(nèi)部結(jié)構(gòu)就能夠夠了。至于學(xué)什么語(yǔ)言嗎,第一要看你們?cè)谛=處熒险n是用什么語(yǔ)言,就先那個(gè)語(yǔ)言吧,咱們學(xué)校教師是用vhdl語(yǔ)言的,因此一開始我也是先學(xué)vhdl語(yǔ)言,而且學(xué)習(xí)資料比較多,可是在上看到,仿佛公司里面用的比較多的是ve

44、riloghdl語(yǔ)言,為了能看懂一些資料,此刻也在學(xué)veriloghdl語(yǔ)言,學(xué)習(xí)中發(fā)覺,若是學(xué)過(guò)c語(yǔ)言的人,會(huì)發(fā)覺veriloghdl仿佛加倍好明白得。一旦你開始了學(xué)習(xí)fpga,那就要堅(jiān)持下去,因?yàn)檎Z(yǔ)言這東西,若是不一下子把它強(qiáng)記住,過(guò)不了兩天就又忘了,書本的東西,必然要越快消化越好,如此你看他人的程序時(shí)就可不能有什么語(yǔ)言障礙了。以后確實(shí)是編寫程序,仿照他人的模塊,仿真實(shí)驗(yàn),這步很重要,要不你就可不能發(fā)覺fpga功能的壯大,你也不明白到底仿真的結(jié)果和實(shí)際是不是有不同。當(dāng)你成功時(shí),你必然會(huì)感到成功的喜悅。當(dāng)你大體的程序都看得懂時(shí),有完整地編個(gè)程序,而且在硬件上實(shí)驗(yàn)過(guò)時(shí),那么祝賀你入門了,以后的

45、道路確實(shí)是不斷的實(shí)踐,跟學(xué)習(xí)單片機(jī)一樣,只有不斷的學(xué)習(xí),不斷的做東西,你的編程能力才會(huì)提高。以上僅僅為作者本人的一點(diǎn)觀點(diǎn),本人此刻仍是一個(gè)電子白菜,只是苦于自己學(xué)習(xí)電子找不到捷徑,不想還有更多的人跟我一樣,在電子的道路中不斷試探,不斷彷徨??催^(guò)一個(gè)高手對(duì)fpga的熟悉,自己對(duì)fpga以后的進(jìn)展更是看好,鑒定了學(xué)好的決心,fpga在電子開發(fā)工作中已經(jīng)上升到數(shù)字系統(tǒng)核心處置器,盡快把握f(shuō)pga開發(fā)技術(shù)顯得超級(jí)迫切??偨Y(jié)了一下:傳統(tǒng)的開發(fā)方式:一半固定,硬件cpu是不可編程的,另一半靈活是可編程的軟件fpga新開發(fā)形式:兩個(gè)部份都是可編程了,fpga,它代表的確實(shí)是硬件的編程。這兩部份都可編程的一個(gè)

46、結(jié)合點(diǎn)確實(shí)是fpga上的軟核。另外能夠依照需要通過(guò)外部單片機(jī)把適合的應(yīng)用bit流寫入到fpga內(nèi),從而完成依照功能需要變更硬件。硬件可重構(gòu)!使運(yùn)算機(jī)的能力愈來(lái)愈強(qiáng),方式一:通過(guò)提高工藝來(lái)提高工作頻率;方式二:通過(guò)優(yōu)化系統(tǒng)體系,并行!新學(xué)習(xí)思想:fpga設(shè)計(jì)有點(diǎn)象圍棋:易學(xué)難精帶著問題學(xué)習(xí)是最有效率的時(shí)序性能的調(diào)整提高是fpga開發(fā)能力的標(biāo)志多看書,但要注意,書當(dāng)做字典,不是所有地址都去看。目前,在fpga上有三種類型開發(fā)方式和應(yīng)用方向:a、邏輯類應(yīng)用b、軟核類應(yīng)用c、dsp類應(yīng)用。篇四:個(gè)人FPGA學(xué)習(xí)心得回憶起自己學(xué)FPGA,已經(jīng)有一段時(shí)刻了,從開始的茫然,到后來(lái)的瘋狂看書,設(shè)計(jì)開發(fā)板,調(diào)電

47、路,練習(xí)各類FPGA實(shí)例,到最后能獨(dú)立完成項(xiàng)目,一路走來(lái),感受頗多,拿出來(lái)和大伙兒分享,順便介紹下自己的一點(diǎn)體會(huì)所得,希望對(duì)初學(xué)者有所幫忙。廢話不說(shuō)了,下面進(jìn)入正題,學(xué)習(xí)FPGA我要緊經(jīng)歷了這么幾個(gè)時(shí)期:、Verilog語(yǔ)言的學(xué)習(xí),熟悉Verilog語(yǔ)言的各類語(yǔ)法。、FPGA的學(xué)習(xí),熟悉QuartuslI軟件的各類功能,各類邏輯算法設(shè)計(jì),接口模塊(RS232,LCD,VGA,SPI,I2c等)的設(shè)計(jì),時(shí)序分析,硬件優(yōu)化等,自己開始設(shè)計(jì)簡(jiǎn)單的FPGA板子。、NiosII的學(xué)習(xí),熟悉NiosII的開發(fā)流程,熟悉開發(fā)軟件(SOPC,NiosIIIDE),了解NiosII的大體結(jié)構(gòu),設(shè)計(jì)NiosII開

48、發(fā)板,編寫NiosIIC語(yǔ)言程序,調(diào)試板子各模塊功能。先來(lái)講說(shuō)第一個(gè)時(shí)期,此刻要緊的硬件描述語(yǔ)言有VHDL,Verilog兩種,在本科時(shí)教師一樣教VHDL,只是此刻Verilog用的人愈來(lái)愈多,其更易上手(與C語(yǔ)言語(yǔ)法比較類似),也更靈活,此刻的IC設(shè)計(jì)大體都用Verilog。像systemC,systemVerilog之類的應(yīng)該還在萌芽時(shí)期,以后可能會(huì)有較大進(jìn)展。鑒于以上緣故我選擇了Verilog作為我學(xué)習(xí)的硬件描述語(yǔ)言。其實(shí)有C語(yǔ)言的基礎(chǔ),學(xué)起Verilog的語(yǔ)言很簡(jiǎn)單,關(guān)鍵要有并行的概念,所有的module,assign,always都是并行的,這一點(diǎn)與軟件語(yǔ)言有明顯不同。那個(gè)地址推薦幾

49、本評(píng)判比較好的學(xué)習(xí)Verilog的書籍:、verilog數(shù)字系統(tǒng)設(shè)計(jì)教程這本書關(guān)于入門是一本專門好的書,通俗易懂,讓人專門快上手,它里面的例子也不錯(cuò)。但本書關(guān)于資源優(yōu)化方面的編程沒有多少涉及到、設(shè)計(jì)與驗(yàn)證VerilogHDL這本書盡管比較薄,可是相當(dāng)精辟,講解的也很深切,很多概念看了這本書有種豁然爽朗的感覺,呵呵。學(xué)習(xí)Verilog其實(shí)不用看很多書,大體的語(yǔ)法部份大伙兒都一樣,關(guān)鍵是要自己會(huì)靈活應(yīng)用,多做練習(xí)。Verilog語(yǔ)言學(xué)了一段時(shí)刻,感覺自己能夠編點(diǎn)東西,希望自己編的程序在板子上運(yùn)行看看結(jié)果,下面就介紹我學(xué)習(xí)的第二個(gè)時(shí)期。剛開始我拿了實(shí)驗(yàn)室一塊CPLD的開發(fā)板做練習(xí),熟悉Quartus

50、lI的各類功能,比如IP的挪用,各類約束設(shè)置,時(shí)序分析,Logiclock設(shè)計(jì)方式等,只是做到后面發(fā)覺CPLD的資源不太夠(沒有內(nèi)嵌的RAM、不能用SignalTapII,LE太少等),而實(shí)驗(yàn)室沒有FPGA開發(fā)板,因此就萌生了自己做FPGA開發(fā)板的用意,恰好Cadence我也學(xué)的差不多了,就花了幾天時(shí)刻要緊研究了FPGA配置電路的設(shè)計(jì),在板子上做了Jtag和AS下載口,在做了幾個(gè)用戶按鍵和LED,其他的口全數(shù)引出作為IO口,電路比較簡(jiǎn)單,板子焊好后一調(diào)就通了(內(nèi)心那個(gè)爽啊)。我選的FPGA是cyclonell系列的EP2C5,資源比以前的FPGA多了好幾倍,還有PLL,內(nèi)嵌的RAM,能夠試試S

51、ignalTapII,用內(nèi)嵌的邏輯分析儀測(cè)試引腳波形,關(guān)于FPGA的調(diào)試,邏輯分析儀是相當(dāng)重要的。利用這塊板子我完成了項(xiàng)目中的幾個(gè)要緊功能:RS232通信,指令譯碼,配置DDS,AD數(shù)據(jù)高速緩存,電子開關(guān)狀態(tài)設(shè)置等,在實(shí)踐中學(xué)習(xí)起來(lái)真的比平??旌芏?,用到什么學(xué)什么動(dòng)力更大。那個(gè)時(shí)候我要緊看的數(shù)據(jù)有這幾本感覺比較好:、AlteraFPGA/CPLD設(shè)計(jì)(基礎(chǔ)篇):講解一些大體的FPGA設(shè)計(jì)技術(shù),和QuartusII中各個(gè)工具的用法(IP,RTL,SignalProbe,SignalTapII,TimingClosureFloorplan,chipEditor等),關(guān)于入門超級(jí)好。、AlteraF

52、PGA/CPLD設(shè)計(jì)(高級(jí)篇):講解了一些高級(jí)工具的應(yīng)用,LogicLock,時(shí)序約束很分析,設(shè)計(jì)優(yōu)化,也講述了一些硬件編程的思想,作為提高用。、FPGA設(shè)計(jì)指南一器件,工具和流程:這本書看了他的目錄忍不住就買了,這本書講述了FPGA設(shè)計(jì)的方方面面,盡管每一個(gè)方面都是點(diǎn)到為止,但能讓你有個(gè)整體的概念,了解FPGA的所有設(shè)計(jì)功能,了解FPGA開發(fā)的整個(gè)流程。、在那個(gè)地址也推薦幾個(gè)學(xué)習(xí)FPGA比較好的論壇,只是很多人一看到英語(yǔ)就不想看,其實(shí)上面的英文很簡(jiǎn)單,很多時(shí)候不敢看是因?yàn)閷?duì)自己沒信心或心靜不下來(lái)看只是官方站上資料很多,剛開始可能會(huì)感覺資料安排的有點(diǎn)亂,不方便查找,以后有時(shí)刻我列個(gè)資料的鏈接目

53、錄,整理一下,方便大伙兒查找。到那個(gè)地址,自己最FPGA的學(xué)習(xí)有一段時(shí)刻了,練習(xí)了很多實(shí)例,自己也編寫了很多程序,也有了一些項(xiàng)目體會(huì),算是對(duì)FPGA有些了解了。在不斷的學(xué)習(xí)中發(fā)覺FPGA不僅能夠做邏輯設(shè)計(jì),算法設(shè)計(jì)等,還能做嵌入式開發(fā),altera前后開發(fā)了Nios,NiosII兩款FPGA的嵌入式軟核,并有配套的軟件,剛開始看到這些我真是心中突然豁然爽朗,學(xué)習(xí)真的是無(wú)止境,又一個(gè)全新的領(lǐng)域擺在我眼前,我決定學(xué)習(xí)NiosII,要學(xué)就要學(xué)最好。剛開始入門是很痛楚的,嵌入式設(shè)計(jì)需要從硬件到驅(qū)動(dòng)到軟件全數(shù)熟悉,硬件系統(tǒng)問題還不是專門大(以前做過(guò)單片機(jī),DSP等MCU),處置器的架構(gòu)內(nèi)心還有點(diǎn)數(shù),關(guān)于

54、驅(qū)動(dòng)和軟件工程,剛開始學(xué)習(xí)真的很頭痛。NiosII應(yīng)該還算比較新的內(nèi)容(應(yīng)該是XX年出的),國(guó)內(nèi)的書籍不算很多,上這方面的資料也比較零碎,因此我就開始將Altera站上這方面的資料系統(tǒng)的看一邊,那個(gè)地址推薦幾本站上的handbook:、EmbeddedDesignHandbook、NiosIIProcessorReferenceHandbook、NiosIISoftwareDevelopersHandbook、QuartusIIHandbook,Volume4:SOPCBuilder、QuartusIIHandbook,Volume5:EmbeddedPeripherals看完這些handbo

55、ok,總算大體明白整個(gè)架構(gòu),軟硬件設(shè)計(jì)方式,驅(qū)動(dòng)的編寫等,感覺自己能夠編一些嵌入式的程序了,只是盡管前面做的那塊ep2c5的板子支持NiosII系統(tǒng),只是關(guān)于嵌入式設(shè)計(jì)來(lái)講仍是顯得單薄了一點(diǎn),沒有SDRAM,F(xiàn)lash這兩個(gè)比較大體的模塊,Ep2C5內(nèi)嵌的RAM過(guò)小,程序?qū)懖淮螅颐看慰傄g盡腦汁優(yōu)化程序代碼大小,很多時(shí)候優(yōu)化了后函數(shù)功能會(huì)受到限制,無(wú)益于初學(xué)者,也無(wú)益于調(diào)試。因此到那個(gè)地址我有產(chǎn)生了自己做一塊Nios開發(fā)板的方式(直接買比較貴,自己做廉價(jià),而且還能鍛煉自己,一箭雙雕),通過(guò)借鑒其他開發(fā)板,選擇自己開發(fā)板上需要包括什么模塊,確信各個(gè)模塊利用什么芯片,閱讀各個(gè)芯片的datash

56、eet,畫出原理圖并做出PCB圖,這塊板子我選的是Ep2c8Q208,比上一塊資源又快要多了一倍,板子上還有以下模塊:SDRAM,F(xiàn)lash,EPCS4,RS232,USB,VGA,PS2,AD,DA,LCD等,知足了一樣開發(fā)板的配置要求。板子回來(lái)以后調(diào)試了四五天,(flash工作了,LCD顯示了,RS232通了,USB通了,AD,DA工作了,SDRAM正常了.),真是天天都有驚喜,每一個(gè)模塊都編寫了NiosII軟件測(cè)試程序,調(diào)試硬件的時(shí)候?qū)浖倪\(yùn)行也更熟悉了。在這次調(diào)試的進(jìn)程中真的學(xué)到了很多,為此專門寫了好幾頁(yè)調(diào)試筆記,下次拿出來(lái)和大伙兒一路分享。此刻硬件平臺(tái)有了,Niosll也了解的差不

57、多了,終于能夠自己編寫一些規(guī)模大一點(diǎn)的程序了。學(xué)FPGA的一點(diǎn)心得從去年開始學(xué)FPGA,以前一直做DSP,但因?yàn)轫?xiàng)目的需要,在一個(gè)應(yīng)用中只有FPGA才能解決問題,因此硬著頭皮上FPGA,又因?yàn)榻Y(jié)項(xiàng)目的時(shí)刻比較緊,因此要緊以解決問題為目的,說(shuō)真的,項(xiàng)目做下來(lái)寫了四千多行的代碼,達(dá)到了設(shè)計(jì)目標(biāo),但對(duì)FPGA學(xué)習(xí)還不夠系統(tǒng),也正進(jìn)一步的學(xué)習(xí)中.因?yàn)槲沂菃胃?沒有團(tuán)隊(duì),碰到問題只能在上找資料,其難度可想而知幸虧以前用過(guò)CPLD,有一點(diǎn)基礎(chǔ),用的編程語(yǔ)言是VHDL,感覺AHDL寫一點(diǎn)小程序還能夠,但做復(fù)雜程序就有點(diǎn)費(fèi)力了(應(yīng)該是我的AHDL沒學(xué)好),因此在做FPGA程序時(shí)我選擇了比較簡(jiǎn)單的verilog

58、語(yǔ)言。由于沒人指導(dǎo),因此買了一個(gè)簡(jiǎn)單的FPGA開發(fā)板,是Cyclone的,開發(fā)板確實(shí)是好,送了較多學(xué)習(xí)資料,用了一個(gè)禮拜的時(shí)刻,學(xué)習(xí)了NIOSII的大體應(yīng)用,固然,我的需要確實(shí)是明白如安在NIOS里操縱一個(gè)信號(hào)的高低電平轉(zhuǎn)變就夠了,其它滿是C語(yǔ)言的東西,主若是熟悉了Quartus的開發(fā)平臺(tái),并用NIOS程序把要實(shí)現(xiàn)的要緊代碼用C寫了一遍,通過(guò)了,但速度上不去。有這些知識(shí)做鋪墊后,就開始了項(xiàng)目的設(shè)計(jì)。項(xiàng)目要求將外部高速數(shù)據(jù)(40MB/s)進(jìn)行存盤,并能夠?qū)⒋姹P的數(shù)據(jù)在適當(dāng)?shù)臅r(shí)候原路返回(速度不變)。因此在硬件的設(shè)計(jì)上FPGA選擇了EP2C35F484C8N,外部有128M的SDRAM做為數(shù)據(jù)的緩

59、沖。因此FPGA的要緊程序集中在ATAHOST操縱器(實(shí)現(xiàn)UDMA讀寫)、SDRAM操縱器(大容量循環(huán)緩沖)上,固然還包括一些其它的操縱,如實(shí)不時(shí)鐘,芯片操縱,RS232的通信及相應(yīng)的通信協(xié)議。硬件完成后,大部份的時(shí)刻都在寫程序,感覺verilog跟C差不多,就將原先寫成的C代碼翻譯了一下,每寫一段代碼就測(cè)試一下。起初并非明白在Quartus里還有邏輯分析儀的功能,因此程序出了問題只能使勁的分析代碼,猜想問題可能出在哪里,萬(wàn)不得已時(shí)才做一下仿真(后來(lái)看很多有做程序都先做仿真,仿真通事后再下載到目標(biāo)板里運(yùn)行測(cè)試,但到此刻我的仿真關(guān)還沒過(guò)),因此做得很累。我感到如此做下去到時(shí)刻結(jié)點(diǎn)確信結(jié)了不了項(xiàng)目

60、,就找FPGA的QQ群向高手們請(qǐng)教體會(huì),明白了能夠Quartus的邏輯分析儀來(lái)觀看信號(hào),哈哈,爽了(感激感激)。后面的程序找問題就容易多了,依照ATA協(xié)議、SDRAM手冊(cè)、及各外圍芯片手冊(cè)一步步寫下去,固然其中也碰到了各類各樣的問題,但專門快取得解決。一直到項(xiàng)目終止,都是用邏輯分析儀來(lái)找問題,沒做過(guò)仿真(因此此刻仿真關(guān)還沒過(guò))。今年又用FPGA做了一些項(xiàng)目。簡(jiǎn)單說(shuō)一下體會(huì)吧,歸結(jié)起來(lái)就三個(gè)字:做、想、問。書讀千遍,不如做一遍;看他人做百次,不如自己做一次;確實(shí)是要實(shí)踐。實(shí)踐的動(dòng)力一方面來(lái)自愛好,別一方面來(lái)自己壓力,我個(gè)人感覺后者更重要。有需求會(huì)容易形成壓力,也確實(shí)是說(shuō)最好能在實(shí)際的項(xiàng)目開發(fā)中鍛

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論