欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      FPGA常用術(shù)語(yǔ)

      時(shí)間:2019-05-13 21:16:32下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《FPGA常用術(shù)語(yǔ)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《FPGA常用術(shù)語(yǔ)》。

      第一篇:FPGA常用術(shù)語(yǔ)

      標(biāo)題:FPGA常用術(shù)語(yǔ)

      2010-05-13 11:16:29

      FPGA常用術(shù)語(yǔ)

      1:LCA(Logic Cell Array):邏輯單元陣列,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。

      2: IOB(Input Output Block):可編程輸入輸出單元,為了便于管理和適應(yīng)多種電器標(biāo)準(zhǔn),F(xiàn)PGA的IOB被劃分為若干個(gè)組(bank),每個(gè)bank的接口標(biāo)準(zhǔn)由其接口電壓VCCO決定,一個(gè)bank只能有一種VCCO,但不同bank的VCCO可以不同。只有相同電氣標(biāo)準(zhǔn)的端口才能連接在一起,VCCO電壓相同是接口標(biāo)準(zhǔn)的基本條件。

      3:CLB(Configurable Logic Block):可配置邏輯模塊,是FPGA內(nèi)的基本邏輯單元,每個(gè)CLB都包含一個(gè)可配置開(kāi)關(guān)矩陣,此矩陣由4或6個(gè)輸入、一些選型電路(多路復(fù)用器等)和觸發(fā)器組成。在賽靈思公司公司的FPGA器件中,CLB由多個(gè)(一般為4個(gè)或2個(gè))相同的Slice和附加邏輯構(gòu)成。

      4:Slice:是賽靈思公司公司定義的基本邏輯單位,一個(gè)Slice由兩個(gè)4輸入的函數(shù)、進(jìn)位邏輯、算術(shù)邏輯、存儲(chǔ)邏輯和函數(shù)復(fù)用器組成。

      5:LUT(Look-Up-Table):查找表。本質(zhì)上就是一個(gè)RAM,目前FPGA中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有4位地址線的 的RAM。

      6:DCM(數(shù)字時(shí)鐘管理模塊):提供數(shù)字時(shí)鐘管理和相位環(huán)路鎖定。

      7:BRAM(嵌入式塊RAM):塊RAM可被配置為單端口RAM、雙端口RAM、內(nèi)容地址存儲(chǔ)器(CAM)以及FIFO等常用存儲(chǔ)結(jié)構(gòu)。單片塊RAM的容量為18k比特,即位寬為18比特、深度為1024,可以根據(jù)需要改變其位寬和深度,但要滿足兩個(gè)原則:首先,修改后的容量(位寬 深度)不能大于18k比特;其次,位寬最大不能超過(guò)36比特。當(dāng)然,可以將多片塊RAM級(jí)聯(lián)起來(lái)形成更大的RAM,此時(shí)只受限于芯片內(nèi)塊RAM的數(shù)量,而不再受上面兩條原則約束。

      第二篇:如何學(xué)習(xí)fpga

      如何學(xué)習(xí)FPGA

      關(guān)鍵詞:工作人員, 硬件, 設(shè)計(jì), FPGA

      掌握FPGA可以找到一份很好的工作,對(duì)于有經(jīng)驗(yàn)的工作人員,使用FPGA可以讓設(shè)計(jì)變得非常有靈活性。掌握了FPGA設(shè)計(jì),單板硬件設(shè)計(jì)就非常容易(不是系統(tǒng)設(shè)計(jì)),特別是上大學(xué)時(shí)如同天書(shū)的邏輯時(shí)序圖,看起來(lái)就非常親切。但FPGA入門(mén)卻有一定難度,因?yàn)樗幌褴浖O(shè)計(jì),只要有一臺(tái)計(jì)算機(jī),幾乎就可以完成所有的設(shè)計(jì)。FPGA設(shè)計(jì)與硬件直接相關(guān),需要實(shí)實(shí)在在的調(diào)試儀器,譬如示波器等。這些硬件設(shè)備一般比較昂貴,這就造成一定的入門(mén)門(mén)檻,新人在入門(mén)時(shí)遇到一點(diǎn)問(wèn)題或者困難,由于沒(méi)有調(diào)試設(shè)備,無(wú)法定位問(wèn)題,最后可能就會(huì)放棄。其實(shí)這時(shí)如果有人稍微指點(diǎn)一下,這個(gè)門(mén)檻很容易就過(guò)去。我用FPGA做設(shè)計(jì)很多年了,遠(yuǎn)達(dá)不到精通的境界,只是熟悉使用,在這里把我對(duì)FPGA學(xué)習(xí)步驟理解寫(xiě)出來(lái),僅是作為一個(gè)參考,不對(duì)的地方,歡迎大家討論和指正。

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

      1、工欲善其事,必先利其器。

      計(jì)算機(jī)必不可少。目前FPGA應(yīng)用較多的是Altera和xilinx這兩個(gè)公司,可以選擇安裝quartusII或者ISE軟件。這是必備的軟件環(huán)境。

      硬件環(huán)境還需要下載器、目標(biāo)板。雖然有人說(shuō)沒(méi)有下載器和目標(biāo)板也可學(xué)習(xí)fpga,但那總是紙上談兵。這就像談女朋友,總是嘴上說(shuō)說(shuō),通個(gè)電話,連個(gè)手都沒(méi)牽,能說(shuō)人家是你朋友?雖說(shuō)搭建硬件環(huán)境需要花費(fèi),但想想,硬件環(huán)境至多幾百元錢(qián),你要真的掌握FPGA的設(shè)計(jì),起薪比別人都不止高出這么多。這點(diǎn)花費(fèi)算什么?

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

      2、熟悉verilog語(yǔ)言或者vhdl語(yǔ)言,熟練使用quartusII或者ISE軟件。

      VHDL和verilog各有優(yōu)點(diǎn),選擇一個(gè),建議選擇verilog。熟練使用設(shè)計(jì)軟件,知道怎樣編譯、仿真、下載等過(guò)程。

      起步階段不希望報(bào)一些培訓(xùn)班,除非你有錢(qián),或者運(yùn)氣好,碰到一個(gè)水平高、又想把自己的經(jīng)驗(yàn)和別人共享的培訓(xùn)老師,不然的話,培訓(xùn)完后總會(huì)感覺(jué)自己是一個(gè)冤大頭。入門(mén)階段可以在利用網(wǎng)絡(luò)資源完成。

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

      3、設(shè)計(jì)一個(gè)小代碼,下載到目標(biāo)板看看結(jié)果

      此時(shí)可以設(shè)計(jì)一個(gè)最簡(jiǎn)答的程序,譬如點(diǎn)燈。如果燈在閃爍了,表示基本入門(mén)了。如果此時(shí)能夠下載到FPGA外掛的flash,F(xiàn)PGA程序能夠從flash啟動(dòng),表明FPGA的最簡(jiǎn)單設(shè)計(jì)你已經(jīng)成功,可以到下一步。

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

      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)入下一步。

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

      5、設(shè)計(jì)復(fù)雜的代碼,下載到目標(biāo)板看看結(jié)果。

      譬如sdram的程序,網(wǎng)上也有參考,這個(gè)設(shè)計(jì)難度有點(diǎn)大??捎么趤?lái)調(diào)試sdram,把串口的數(shù)據(jù)存儲(chǔ)到sdram,然后讀回,如果成功,那你就比較熟悉FPGA設(shè)計(jì)了

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

      6、設(shè)計(jì)高速接口,譬如ddr2或者高速串行接口

      這要對(duì)FPGA的物理特性非常了解,而且要懂得是時(shí)序約束等設(shè)計(jì)方法,要看大量的原廠文檔,這部分成功了,那就對(duì)FPGA的物理接口掌握很深,你就是設(shè)計(jì)高手了

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

      7、設(shè)計(jì)一個(gè)復(fù)雜的協(xié)議

      譬如USB、PCIexpress、圖像編解碼等,鍛煉對(duì)系統(tǒng)的整體把握和邏輯劃分。完成這些,你就是一個(gè)一流的高手、FPGA學(xué)習(xí)步驟

      8、學(xué)習(xí)再學(xué)習(xí)

      學(xué)習(xí)什么,我也不知道,我只知道“學(xué)無(wú)止境,山外有山”。

      現(xiàn)在很多FPGA工程師,沒(méi)找到合適,我覺(jué)得很多人從開(kāi)始的時(shí)候就誤入歧途了,對(duì)新手學(xué)習(xí)FPGA設(shè)計(jì)我也說(shuō)一點(diǎn)看法吧。我認(rèn)為要從基礎(chǔ)開(kāi)始做,基礎(chǔ)牢,才有成為高手的可能。

      我覺(jué)得FPGA學(xué)習(xí)有以下幾步必須要走:

      第一步:學(xué)習(xí)了解FPGA結(jié)構(gòu),F(xiàn)PGA到底是什么東西,芯片里面有什么,不要開(kāi)始就拿個(gè)開(kāi)發(fā)板照著別人的東西去編程。很多開(kāi)發(fā)板的程序?qū)懙暮軤€,我也做過(guò)一段時(shí)間的開(kāi)發(fā)板設(shè)計(jì),我覺(jué)得很大程度上,開(kāi)發(fā)板在誤人子弟。不過(guò)原廠提供的正品開(kāi)發(fā)板,代碼很優(yōu)秀的,可以借鑒。只有了解了FPGA內(nèi)部的結(jié)構(gòu)才能明白為什么寫(xiě)Verilog和寫(xiě)C整體思路是不一樣的。

      第二步:掌握FPGA設(shè)計(jì)的流程。了解每一步在做什么,為什么要那么做。很多人都是不就是那幾步嗎,有什么奇怪的?呵呵,我想至少有一半以上的人不知道synthesize和traslate的區(qū)別吧。

      了解了FPGA的結(jié)構(gòu)和設(shè)計(jì)流程才有可能知道怎么去優(yōu)化設(shè)計(jì),提高速度,減少資源,不要急躁,不要去在為選擇什么語(yǔ)言和選擇哪個(gè)公司的芯片上下功夫。語(yǔ)言只是一個(gè)表達(dá)的方式,重要的是你的思維,沒(méi)有一個(gè)好的指導(dǎo)思想,語(yǔ)言用得再好,不過(guò)是個(gè)懂語(yǔ)言的人。

      第三步:開(kāi)始學(xué)習(xí)代碼了。我建議要學(xué)代碼的人都去Altera或Xilinx的網(wǎng)站上下原廠工程師的代碼學(xué)習(xí)。不要一開(kāi)始就走入誤區(qū)。

      第四步:template很重要。能不能高效利用FPGA資源,一是了解fpga結(jié)構(gòu),二是了解欲實(shí)現(xiàn)的邏輯功能和基本機(jī)構(gòu),三是使用正確的模板。FPGA內(nèi)部器件種類(lèi)相對(duì)較單一,用好模板,你的邏輯才能被高效的綜合成FPGA擅長(zhǎng)表達(dá)的結(jié)構(gòu):)

      做FPGA主要是要有電路的思想,作為初學(xué)者,往往對(duì)器件可能不是熟悉,那么應(yīng)該對(duì)于數(shù)字電路的知識(shí)很熟悉吧,F(xiàn)PGA中是由觸發(fā)器和查找表以及互聯(lián)線等基本結(jié)構(gòu)組成的,其實(shí)在我們?cè)诖a里面能夠看到的就是與非門(mén)以及觸發(fā)器,不要把verilog和c語(yǔ)言等同起來(lái),根本就是不同的東西,沒(méi)有什么可比性,在寫(xiě)一句程序的時(shí)候應(yīng)該想到出來(lái)的是一個(gè)什么樣的電路,計(jì)數(shù)

      器 選擇器 三態(tài)門(mén)等等,理解時(shí)序,邏輯是一拍一拍的東西,在設(shè)計(jì)初期想的不是很清楚的時(shí)候可以畫(huà)畫(huà)時(shí)序圖,這樣思路會(huì)更加的清晰,還有就是仿真很重要,不要寫(xiě)完程序就去往FPGA中去加載,首先要仿真,尤其是對(duì)比較大型一點(diǎn)的程序,想像自己是在做asic,是沒(méi)有二次機(jī)會(huì)的,所以一定要把仿真做好,還有很多新手對(duì)于語(yǔ)言的學(xué)習(xí)不知道選vhdl好還是verilog好,個(gè)人偏好verilog,當(dāng)然不是說(shuō)vhdl不好,反正寫(xiě)出來(lái)的都是電路,那當(dāng)然就不要在語(yǔ)言的語(yǔ)法上面花太多的功夫了,verilog 言簡(jiǎn)意賅assign always case if else 掌握這些幾乎可以寫(xiě)出90%的電路了,上面是我對(duì)FPGA學(xué)習(xí)的一些愚見(jiàn),希望對(duì)大家有所幫助。

      第三篇:FPGA學(xué)習(xí)心得

      回想起自己學(xué)FPGA,已經(jīng)有一段時(shí)間了,從開(kāi)始的茫然,到后來(lái)的瘋狂看書(shū),設(shè)計(jì)開(kāi)發(fā)板,調(diào)電路,練習(xí)各種FPGA實(shí)例,到最后能獨(dú)立完成項(xiàng)目,一路走來(lái),感受頗多,拿出來(lái)和大家分享,順便介紹下自己的一點(diǎn)經(jīng)驗(yàn)所得,希望對(duì)初學(xué)者有所幫助。

      廢話不說(shuō)了,下面進(jìn)入正題,學(xué)習(xí)FPGA我主要經(jīng)歷了這么幾個(gè)階段:

      ①、Verilog語(yǔ)言的學(xué)習(xí),熟悉Verilog語(yǔ)言的各種語(yǔ)法。

      ②、FPGA的學(xué)習(xí),熟悉QuartusII軟件的各種功能,各種邏輯算法設(shè)計(jì),接口模塊(RS232,LCD,VGA,SPI,I2c等)的設(shè)計(jì),時(shí)序分析,硬件優(yōu)化等,自己開(kāi)始設(shè)計(jì)簡(jiǎn)單的FPGA板子。

      ③、NiosII的學(xué)習(xí),熟悉NiosII的開(kāi)發(fā)流程,熟悉開(kāi)發(fā)軟件(SOPC,NiosII IDE),了解NiosII的基本結(jié)構(gòu),設(shè)計(jì)NiosII開(kāi)發(fā)板,編寫(xiě)NiosII C語(yǔ)言程序,調(diào)試板子各模塊功能。

      先來(lái)說(shuō)說(shuō)第一個(gè)階段,現(xiàn)在主要的硬件描述語(yǔ)言有VHDL,Verilog兩種,在本科時(shí)老師一般教VHDL,不過(guò)現(xiàn)在Verilog用的人越來(lái)越多,其更容易上手(與C語(yǔ)言語(yǔ)法比較類(lèi)似),也更靈活,現(xiàn)在的IC設(shè)計(jì)基本都用Verilog。像systemC,systemVerilog之類(lèi)的應(yīng)該還在萌芽階段,以后可能會(huì)有較大發(fā)展。鑒于以上原因我選擇了Verilog作為我學(xué)習(xí)的硬件描述語(yǔ)言。

      其實(shí)有C語(yǔ)言的基礎(chǔ),學(xué)起Verilog的語(yǔ)言很簡(jiǎn)單,關(guān)鍵要有并行的概念,所有的module,assign,always都是并行的,這一點(diǎn)與軟件語(yǔ)言有明顯不同。這里推薦幾本評(píng)價(jià)比較好的學(xué)習(xí)Verilog的書(shū)籍:

      ①、《verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程》,這本書(shū)對(duì)于入門(mén)是一本很好的書(shū),通俗易懂,讓人很快上手,它里面的例子也不錯(cuò)。但本書(shū)對(duì)于資源優(yōu)化方面的編程沒(méi)有多少涉及到。

      ②、《設(shè)計(jì)與驗(yàn)證Verilog HDL》,這本書(shū)雖然比較薄,但是相當(dāng)精辟,講解的也很深入,很多概念看了這本書(shū)有種豁然開(kāi)朗的感覺(jué),呵呵。

      學(xué)習(xí)Verilog其實(shí)不用看很多書(shū),基本的語(yǔ)法部分大家都一樣,關(guān)鍵是要自己會(huì)靈活應(yīng)用,多做練習(xí)。

      Verilog語(yǔ)言學(xué)了一段時(shí)間,感覺(jué)自己可以編點(diǎn)東西,希望自己編的程序在板子上運(yùn)行看看結(jié)果,下面就介紹我學(xué)習(xí)的第二個(gè)階段。

      剛開(kāi)始我拿了實(shí)驗(yàn)室一塊CPLD的開(kāi)發(fā)板做練習(xí),熟悉QuartusII的各種功能,比如IP的調(diào)用,各種約束設(shè)置,時(shí)序分析,Logiclock設(shè)計(jì)方法等,不過(guò)做到后面發(fā)現(xiàn)CPLD的資源不太夠(沒(méi)有內(nèi)嵌的RAM、不能用SignalTapII,LE太少等),而實(shí)驗(yàn)室沒(méi)有FPGA開(kāi)發(fā)板,所以就萌生了自己做FPGA開(kāi)發(fā)板的意圖,剛好Cadence我也學(xué)的差不多了,就花了幾天時(shí)間主要研究了FPGA配置電路的設(shè)計(jì),在板子上做了Jtag和AS下載口,在做了幾個(gè)用戶按鍵和LED,其他的口全部引出作為IO口,電路比較簡(jiǎn)單,板子焊好后一調(diào)就通了(心里那個(gè)爽啊...)。我選的FPGA是cycloneII系列的EP2C5,資源比以前的FPGA多了好幾倍,還有PLL,內(nèi)嵌的RAM,可以試試SignalTapII,用內(nèi)嵌的邏輯分析儀測(cè)試引腳波形,對(duì)于FPGA的調(diào)試,邏輯分析儀是至關(guān)重要的。利用這塊板子我完成了項(xiàng)目中的幾個(gè)主要功能:RS232通信,指令譯碼,配置DDS,AD數(shù)據(jù)高速緩存,電子開(kāi)關(guān)狀態(tài)設(shè)置等,在實(shí)踐中學(xué)習(xí)起來(lái)真的比平時(shí)快很多,用到什么學(xué)什么動(dòng)力更大。這個(gè)時(shí)候我主要看的數(shù)據(jù)有這幾本感覺(jué)比較好:

      ①、《Altera FPGA/CPLD 設(shè)計(jì)(基礎(chǔ)篇)》:講解一些基本的FPGA設(shè)計(jì)技術(shù),以及QuartusII中各個(gè)工具的用法(IP,RTL,SignalProbe,SignalTapII,Timing Closure Floorplan,chip Editor等),對(duì)于入門(mén)非常好。

      ②、《Altera FPGA/CPLD 設(shè)計(jì)(高級(jí)篇)》:講解了一些高級(jí)工具的應(yīng)用,LogicLock,時(shí)序約束很分析,設(shè)計(jì)優(yōu)化,也講述了一些硬件編程的思想,作為提高用。

      ③、《FPGA設(shè)計(jì)指南--器件,工具和流程》:這本書(shū)看了他的目錄忍不住就買(mǎi)了,這本書(shū)講述了FPGA設(shè)計(jì)的各個(gè)方面,雖然每個(gè)方面都是點(diǎn)到為止,但能讓你有個(gè)整體的概念,了解FPGA的所有設(shè)計(jì)功能,了解FPGA開(kāi)發(fā)的整個(gè)流程。

      ④、在這里也推薦幾個(gè)學(xué)習(xí)FPGA比較好的論壇

      ⑤、其實(shí)最好的學(xué)習(xí)網(wǎng)站莫過(guò)于Altera的官方網(wǎng)站,不過(guò)很多人一看到英語(yǔ)就不想看,其實(shí)上面的英文很簡(jiǎn)單,很多時(shí)候不敢看是因?yàn)閷?duì)自己沒(méi)信心或心靜不下來(lái)看。不過(guò)官方網(wǎng)站上資料很多,剛開(kāi)始可能會(huì)覺(jué)得資料安排的有點(diǎn)亂,不方便查找,以后有時(shí)間我列個(gè)資料的鏈接目錄,整理一下,方便大家查找。

      到這里,自己最FPGA的學(xué)習(xí)有一段時(shí)間了,練習(xí)了很多實(shí)例,自己也編寫(xiě)了不少程序,也有了一些項(xiàng)目經(jīng)驗(yàn),算是對(duì)FPGA有些了解了。在不斷的學(xué)習(xí)中發(fā)現(xiàn)FPGA不僅可以做邏輯設(shè)計(jì),算法設(shè)計(jì)等,還能做嵌入式開(kāi)發(fā),altera先后開(kāi)發(fā)了Nios,NiosII兩款FPGA的嵌入式軟核,并有配套的軟件,剛開(kāi)始看到這些我真是心中突然豁然開(kāi)朗,學(xué)習(xí)真的是無(wú)止境,又一個(gè)全新的領(lǐng)域擺在我面前,我決定學(xué)習(xí)NiosII,要學(xué)就要學(xué)最好。

      剛開(kāi)始入門(mén)是很痛苦的,嵌入式設(shè)計(jì)需要從硬件到驅(qū)動(dòng)到軟件全部熟悉,硬件系統(tǒng)問(wèn)題還不是很大(以前做過(guò)單片機(jī),DSP等MCU),處理器的架構(gòu)心里還有點(diǎn)數(shù),對(duì)于驅(qū)動(dòng)和軟件工程,剛開(kāi)始學(xué)習(xí)真的很頭痛。NiosII應(yīng)該還算比較新的內(nèi)容(應(yīng)該是2004年出的),國(guó)內(nèi)的書(shū)籍不算很多,網(wǎng)上這方面的資料也比較零碎,所以我就開(kāi)始將Altera網(wǎng)站上這方面的資料系統(tǒng)的看一邊,這里推薦幾本網(wǎng)站上的handbook:

      ①、Embedded Design Handbook

      ②、Nios II Processor Reference Handbook

      ③、Nios II Software Developer's Handbook

      ④、Quartus II Handbook, Volume 4: SOPC Builder

      ⑤、Quartus II Handbook, Volume 5: Embedded Peripherals

      看完這些handbook,總算基本明白整個(gè)架構(gòu),軟硬件設(shè)計(jì)方法,驅(qū)動(dòng)的編寫(xiě)等,感覺(jué)自己可以編一些嵌入式的程序了,不過(guò)雖然前面做的那塊ep2c5的板子支持NiosII系統(tǒng),不過(guò)對(duì)于嵌入式設(shè)計(jì)來(lái)說(shuō)還是顯得單薄了一點(diǎn),沒(méi)有SDRAM,F(xiàn)lash這兩個(gè)比較基本的模塊,Ep2C5內(nèi)嵌的RAM太小,程序?qū)懖淮?,而且每次總要絞盡腦汁優(yōu)化程序代碼大小,很多時(shí)候優(yōu)化了后函數(shù)功能會(huì)受到限制,不利于初學(xué)者,也不利于調(diào)試。所以到這里我有產(chǎn)生了自己做一塊Nios開(kāi)發(fā)板的想法(直接買(mǎi)比較貴,自己做便宜,而且還能鍛煉自己,一舉兩得),通過(guò)借鑒其他開(kāi)發(fā)板,選擇自己開(kāi)發(fā)板上需要包含什么模塊,確定各個(gè)模塊使用什么芯片,閱讀各個(gè)芯片的datasheet,畫(huà)出原理圖并做出PCB圖,這塊板子我選的是

      Ep2c8Q208,比上一塊資源又將近多了一倍,板子上還有以下模塊:SDRAM,F(xiàn)lash,EPCS4,RS232,USB,VGA,PS2,AD,DA,LCD等,滿足了一般開(kāi)發(fā)板的配置要求。板子回來(lái)以后調(diào)試了四五天,(flash工作了,LCD顯示了,RS232通了,USB通了,AD,DA工作了,SDRAM正常了...),真是每天都有驚喜,每個(gè)模塊都編寫(xiě)了NiosII軟件測(cè)試程序,調(diào)試硬件的時(shí)候?qū)浖倪\(yùn)行也更熟悉了。在這次調(diào)試的過(guò)程中真的學(xué)到了很多,為此專(zhuān)門(mén)寫(xiě)了好幾頁(yè)調(diào)試筆記,下次拿出來(lái)和大家一起分享?,F(xiàn)在硬件平臺(tái)有了,NiosII也了解的差不多了,終于可以自己編寫(xiě)一些規(guī)模大一點(diǎn)的程序了。

      以后的路還很長(zhǎng),不過(guò)也有很多驚喜在等著我們......

      第四篇:FPGA學(xué)習(xí)心得

      回想起自己學(xué)FPGA,已經(jīng)有一段時(shí)間了,從開(kāi)始的茫然,到后來(lái)的瘋狂看書(shū),設(shè)計(jì)開(kāi)發(fā)板,調(diào)電路,練習(xí)各種FPGA實(shí)例,到最后能獨(dú)立完成項(xiàng)目,一路走來(lái),感受頗多,拿出來(lái)和大家分享,順便介紹下自己的一點(diǎn)經(jīng)驗(yàn)所得,希望對(duì)初學(xué)者有所幫助。

      廢話不說(shuō)了,下面進(jìn)入正題,學(xué)習(xí)FPGA我主要經(jīng)歷了這么幾個(gè)階段:

      ①、Verilog語(yǔ)言的學(xué)習(xí),熟悉Verilog語(yǔ)言的各種語(yǔ)法。

      ②、FPGA的學(xué)習(xí),熟悉QuartusII軟件的各種功能,各種邏輯算法設(shè)計(jì),接口模塊(RS232,LCD,VGA,SPI,I2c等)的設(shè)計(jì),時(shí)序分析,硬件優(yōu)化等,自己開(kāi)始設(shè)計(jì)簡(jiǎn)單的FPGA板子。

      ③、NiosII的學(xué)習(xí),熟悉NiosII的開(kāi)發(fā)流程,熟悉開(kāi)發(fā)軟件(SOPC,NiosII IDE),了解NiosII的基本結(jié)構(gòu),設(shè)計(jì)NiosII開(kāi)發(fā)板,編寫(xiě)NiosII C語(yǔ)言程序,調(diào)試板子各模塊功能。

      先來(lái)說(shuō)說(shuō)第一個(gè)階段,現(xiàn)在主要的硬件描述語(yǔ)言有VHDL,Verilog兩種,在本科時(shí)老師一般教VHDL,不過(guò)現(xiàn)在

      Verilog用的人越來(lái)越多,其更容易上手(與C語(yǔ)言語(yǔ)法比較類(lèi)似),也更靈活,現(xiàn)在的IC設(shè)計(jì)基本都用Verilog。像systemC,systemVerilog之類(lèi)的應(yīng)該還在萌芽階段,以后可能會(huì)有較大發(fā)展。鑒于以上原因我選擇了Verilog作為我學(xué)習(xí)的硬件描述語(yǔ)言。

      其實(shí)有C語(yǔ)言的基礎(chǔ),學(xué)起Verilog的語(yǔ)言很簡(jiǎn)單,關(guān)鍵要有并行的概念,所有的module,assign,always都是并行的,這一點(diǎn)與軟件語(yǔ)言有明顯不同。這里推薦幾本評(píng)價(jià)比較好的學(xué)習(xí)Verilog的書(shū)籍:

      ①、《verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程》,這本書(shū)對(duì)于入門(mén)是一本很好的書(shū),通俗易懂,讓人很快上手,它里面的例子也不錯(cuò)。但本書(shū)對(duì)于資源優(yōu)化方面的編程沒(méi)有多少涉及到。

      ②、《設(shè)計(jì)與驗(yàn)證Verilog HDL》,這本書(shū)雖然比較薄,但是相當(dāng)精辟,講解的也很深入,很多概念看了這本書(shū)有種豁然開(kāi)朗的感覺(jué),呵呵。

      學(xué)習(xí)Verilog其實(shí)不用看很多書(shū),基本的語(yǔ)法部分大家都一樣,關(guān)鍵是要自己會(huì)靈活應(yīng)用,多做練習(xí)。

      Verilog語(yǔ)言學(xué)了一段時(shí)間,感覺(jué)自己可以編點(diǎn)東西,希望自己編的程序在板子上運(yùn)行看看結(jié)果,下面就介紹我學(xué)習(xí)的第二個(gè)階段。

      剛開(kāi)始我拿了實(shí)驗(yàn)室一塊CPLD的開(kāi)發(fā)板做練習(xí),熟悉QuartusII的各種功能,比如IP的調(diào)用,各種約束設(shè)置,時(shí)序分析,Logiclock設(shè)計(jì)方法等,不過(guò)做到后面發(fā)現(xiàn)CPLD的資源不太夠(沒(méi)有內(nèi)嵌的RAM、不能用SignalTapII,LE太少等),而實(shí)驗(yàn)室沒(méi)有FPGA開(kāi)發(fā)板,所以就萌生了自己做FPGA開(kāi)發(fā)板的意圖,剛好Cadence我也學(xué)的差不多了,就花了幾天時(shí)間主要研究了FPGA配置電路的設(shè)計(jì),在板子上做了Jtag和AS下載口,在做了幾個(gè)用戶按鍵和LED,其他的口全部引出作為IO口,電路比較簡(jiǎn)單,板子焊好后一調(diào)就通了(心里那個(gè)爽啊...)。我選的FPGA是cycloneII系列的EP2C5,資源比以前的FPGA多了好幾倍,還有PLL,內(nèi)嵌的RAM,可以試試SignalTapII,用內(nèi)嵌的邏輯分析儀測(cè)試引腳波形,對(duì)于FPGA的調(diào)試,邏輯分析儀是至關(guān)重要的。利用這塊板子我完成了項(xiàng)目中的幾個(gè)主要功能:RS232通信,指令譯碼,配置DDS,AD數(shù)據(jù)高速緩存,電子開(kāi)關(guān)狀態(tài)設(shè)置等,在實(shí)踐中學(xué)習(xí)起來(lái)真的比平時(shí)快很多,用到什么學(xué)什么動(dòng)力更大。這個(gè)時(shí)候我主要看的數(shù)據(jù)有這幾本感覺(jué)比較好:

      ①、《Altera FPGA/CPLD 設(shè)計(jì)(基礎(chǔ)篇)》:講解一些基本的FPGA設(shè)計(jì)技術(shù),以及QuartusII中各個(gè)工具的用法(IP,RTL,SignalProbe,SignalTapII,Timing Closure Floorplan,chip Editor等),對(duì)于入門(mén)非常好。

      ②、《Altera FPGA/CPLD 設(shè)計(jì)(高級(jí)篇)》:講解了一些高級(jí)工具的應(yīng)用,LogicLock,時(shí)序約束很分析,設(shè)計(jì)優(yōu)化,也講述了一些硬件編程的思想,作為提高用。

      ③、《FPGA設(shè)計(jì)指南--器件,工具和流程》:這本書(shū)看了他的目錄忍不住就買(mǎi)了,這本書(shū)講述了FPGA設(shè)計(jì)的各個(gè)方面,雖然每個(gè)方面都是點(diǎn)到為止,但能讓你有個(gè)整體的概念,了解FPGA的所有設(shè)計(jì)功能,了解FPGA開(kāi)發(fā)的整個(gè)流程。

      ④、在這里也推薦幾個(gè)學(xué)習(xí)FPGA比較好的論壇

      http://004km.cnt信號(hào)控制著w_fifo_rden、aes_ready等信號(hào),是該模塊的關(guān)鍵信號(hào),通過(guò)將它們之間的時(shí)序關(guān)系通過(guò)時(shí)序圖反應(yīng)出來(lái),寫(xiě)代碼時(shí)就可以做到胸有成竹,減少出現(xiàn)邏輯混亂的情況。

      聽(tīng)起來(lái)似乎很簡(jiǎn)單,但是執(zhí)行起來(lái)卻不容易,因?yàn)楫?huà)波形圖是一件很煩鎖的事(有一次一個(gè)模塊因?yàn)椴僮鞅容^多我畫(huà)了8張時(shí)序圖)。但是請(qǐng)相信我,如果不這樣做,因?yàn)闀r(shí)序關(guān)系沒(méi)有處理好引起設(shè)計(jì)多次迭代所花的時(shí)間遠(yuǎn)多于畫(huà)波形圖的時(shí)間。

      時(shí)序設(shè)計(jì)好之后,模塊內(nèi)部各個(gè)信號(hào)之間的關(guān)系就理得差不多了,之后就是將它翻譯成代碼了,這個(gè)過(guò)程以體力勞動(dòng)為主,我就不多說(shuō)了。

      補(bǔ)充一下,畫(huà)波形圖推薦用TimingDesigner這個(gè)軟件,如果有更好的,請(qǐng)告訴我,我也不喜歡TimingDesigner:)。

      另一個(gè)就是約束。

      這里的約束是針對(duì)綜合軟件和布局布線軟件而言的。

      為什么會(huì)有約束這個(gè)東西出現(xiàn)呢?主要原因是EDA軟件比較笨,難以明白我們的心思,如果我們不把更詳細(xì)的信息告訴它的話它就干不好活,比如需要將輸出寄存器放的與輸出管腳近一點(diǎn),如果不加約束,EDA軟件可能布通之后就不管了,導(dǎo)致Tco狂大,一點(diǎn)也不善解人意。所以我們需要約束這個(gè)東西,告訴EDA軟件要怎么干活,工程驗(yàn)收的標(biāo)準(zhǔn)又是什么。

      在加約束之前,我們首先要定義一些術(shù)語(yǔ)好告訴EDA軟件我們想干什么,這些術(shù)語(yǔ)便是Fmax、Tsu、Tco等等這些東西。這些東西的含義這里就不多說(shuō)了,網(wǎng)上的討論已經(jīng)很多了。

      有了術(shù)語(yǔ),還要有一種通信方式與EDA軟件通信,腳本語(yǔ)言充當(dāng)了這一角色。不過(guò)現(xiàn)在像quartus這類(lèi)軟件做的比較智能化了,提供了圖形化界面,但是這背后支撐的還是些腳本語(yǔ)言,大家可以用UltraEdit打加*.qsf文件去看看我們加的約束用腳本語(yǔ)言是怎么寫(xiě)的。在加了約束之后,EDA工具就可以更好地按照我們的意愿去干活了,比較我們加了Fmax的約束,它就會(huì)盡可能地將關(guān)鍵路徑放的靠近一些,以提高電路工作頻率。當(dāng)然,這是有代價(jià)的,尋找路徑是需要時(shí)間的,要求越苛刻,時(shí)間花的越多,因此加約束的原則的適用就行。如果約束加的過(guò)高,就相當(dāng)于讓EDA工具去做一件不可能完成的事,找更短的路徑的時(shí)候說(shuō)不定找著找著就掉下懸崖了,效果反而更差。

      雖然有約束這個(gè)好東西,不過(guò)提醒一下,在項(xiàng)目之前千萬(wàn)對(duì)它抱有太多的幻想,把希望寄托在別人的身上并不是每一次都很可靠的,出了問(wèn)題還是要麻煩自己,加約束只能做一些錦上添花的事情。所以,我們?cè)谧龇桨傅臅r(shí)候就需要對(duì)關(guān)鍵路徑進(jìn)行預(yù)估,要通過(guò)設(shè)計(jì)而不是約束解決這些問(wèn)題。

      第五篇:淺談FPGA學(xué)習(xí)

      為什么大量的人會(huì)覺(jué)得FPGA難學(xué)?一位高人決心開(kāi)貼來(lái)詳細(xì)講一下菜鳥(niǎo)覺(jué)得FPGA難學(xué)的幾大原因。

      1、不熟悉FPGA的內(nèi)部結(jié)構(gòu),不了解可編程邏輯器件的基本原理。

      FPGA為什么是可以編程的?恐怕很多菜鳥(niǎo)不知道,他們也不想知道。因?yàn)樗麄冇X(jué)得這是無(wú)關(guān)緊要的。他們潛意識(shí)的認(rèn)為可編程嘛,肯定就是像寫(xiě)軟件一樣啦。軟件編程的思想根深蒂固,看到Verilog或者VHDL就像看到C語(yǔ)言或者其它軟件編程語(yǔ)言一樣。一條條的讀,一條條的分析。如果這些菜鳥(niǎo)們始終拒絕去了解為什么FPGA是可以編程的,不去了解FPGA的內(nèi)部結(jié)構(gòu),要想學(xué)會(huì)FPGA恐怕是天方夜譚。雖然現(xiàn)在EDA軟件已經(jīng)非常先進(jìn),像寫(xiě)軟件那樣照貓畫(huà)虎也能綜合出點(diǎn)東西,但也許只有天知道EDA軟件最后綜合出來(lái)的到底是什么。也許點(diǎn)個(gè)燈,跑個(gè)馬還行。這樣就是為什么很多菜鳥(niǎo)學(xué)了N久以后依然是一個(gè)菜鳥(niǎo)的原因。那么FPGA為什么是可以“編程”的呢?首先來(lái)了解一下什么叫“程”。啟示“程”只不過(guò)是一堆具有一定含義的01編碼而已。編程,其實(shí)就是編寫(xiě)這些01編碼。只不過(guò)我們現(xiàn)在有了很多開(kāi)發(fā)工具,通常都不是直接編寫(xiě)這些01編碼,而是以高級(jí)語(yǔ)言的形式來(lái)編寫(xiě),最后由開(kāi)發(fā)工具轉(zhuǎn)換為這種01編碼而已。對(duì)于軟件編程而言,處理器會(huì)有一個(gè)專(zhuān)門(mén)的譯碼電路逐條把這些01編碼翻譯為各種控制信號(hào),然后控制其內(nèi)部的電路完成一個(gè)個(gè)的運(yùn)算或者是其它操作。所以軟件是一條一條的讀,因?yàn)檐浖牟僮魇且徊揭徊酵瓿傻?。而FPGA的可編程,本質(zhì)也是依靠這些01編碼實(shí)現(xiàn)其功能的改變,但不同的是FPGA之所以可以完成不同的功能,不是依靠像軟件那樣將01編碼翻譯出來(lái)再去控制一個(gè)運(yùn)算電路,F(xiàn)PGA里面沒(méi)有這些東西。FPGA內(nèi)部主要有三塊:可編程的邏輯單元、可編程的連線和可編程的IO模塊??删幊痰倪壿媶卧鞘裁??其基本結(jié)構(gòu)由某種存儲(chǔ)器(SRAM、FLASH等)制成的4輸入或6輸入1輸出地“真值表”加上一個(gè)D觸發(fā)器構(gòu)成。任何一個(gè)4輸入1輸出組合邏輯電路,都有一張對(duì)應(yīng)的“真值表”,同樣的如果用這么一個(gè)存儲(chǔ)器制成的4輸入1輸出地“真值表”,只需要修改其“真值表”內(nèi)部值就可以等效出任意4輸入1輸出的組合邏輯。這些“真值表”內(nèi)部值是什么?就是那些01編碼而已。如果要實(shí)現(xiàn)時(shí)序邏輯電路怎么辦?這不又D觸發(fā)器嘛,任何的時(shí)序邏輯都可以轉(zhuǎn)換為組合邏輯+D觸發(fā)器來(lái)完成。但這畢竟只實(shí)現(xiàn)了4輸入1輸出的邏輯電路而已,通常邏輯電路的規(guī)模那是相當(dāng)?shù)拇笈?。那怎么辦呢?這個(gè)時(shí)候就需要用到可編程連線了。在這些連線上有很多用存儲(chǔ)器控制的連接點(diǎn),通過(guò)改寫(xiě)對(duì)應(yīng)存儲(chǔ)器的值就可以確定哪些線是連上的而哪些線是斷開(kāi)的。這就可以把很多可編程邏輯單元組合起來(lái)形成大型的邏輯電路。最后就是可編程的IO,這其實(shí)是FPGA作為芯片級(jí)使用必須要注意的。任何芯片都必然有輸入引腳和輸出引腳。有可編程的IO可以任意的定義某個(gè)非專(zhuān)用引腳(FPGA中有專(zhuān)門(mén)的非用戶可使用的測(cè)試、下載用引腳)為輸入還是輸出,還可以對(duì)IO的電平標(biāo)準(zhǔn)進(jìn)行設(shè)置??倸w一句話,F(xiàn)PGA之所以可編程是因?yàn)榭梢酝ㄟ^(guò)特殊的01代碼制作成一張張“真值表”,并將這些“真值表”組合起來(lái)以實(shí)現(xiàn)大規(guī)模的邏輯功能。不了解FPGA內(nèi)部結(jié)構(gòu),就不能明白最終代碼如何變到FPGA里面去的。也就無(wú)法深入的了解如何能夠充分運(yùn)用FPGA?,F(xiàn)在的FPGA,不單單是有前面講的那三塊,還有很多專(zhuān)用的硬件功能單元,如何利用好這些單元實(shí)現(xiàn)復(fù)雜的邏輯電路設(shè)計(jì),是從菜鳥(niǎo)邁向高手的路上必須要克服的障礙。而這一切,還是必須先從了解FPGA內(nèi)部邏輯及其工作原理起。

      2、錯(cuò)誤理解HDL語(yǔ)言,怎么看都看不出硬件結(jié)構(gòu)。

      HDL語(yǔ)言的英語(yǔ)全稱(chēng)是:Hardware Description Language,注意這個(gè)單詞Description,而不是Design。老外為什么要用Description這個(gè)詞而不是Design呢?因?yàn)镠DL確實(shí)不是用來(lái)設(shè)計(jì)硬件的,而僅僅是用來(lái)描述硬件的。描述這個(gè)詞精確地反映了HDL語(yǔ)言的本質(zhì),HDL語(yǔ)言不過(guò)是已知硬件電路的文本表現(xiàn)形式而已,只是將以后的電路用文本的形式描述出來(lái)而已。而在編寫(xiě)語(yǔ)言之前,硬件電路應(yīng)該已經(jīng)被設(shè)計(jì)出來(lái)了。語(yǔ)言只不過(guò)是將這種設(shè)計(jì)轉(zhuǎn)化為文字表達(dá)形式而已。但是很多人就不理解了,既然硬件都已經(jīng)被設(shè)計(jì)出來(lái)了,直接拿去制作

      部就完了,為什么還要轉(zhuǎn)化為文字表達(dá)形式再通過(guò)EDA工具這些麻煩的流程呢?其實(shí)這就是很多菜鳥(niǎo)沒(méi)有了解設(shè)計(jì)的抽象層次的問(wèn)題,任何設(shè)計(jì)包括什么服裝、機(jī)械、廣告設(shè)計(jì)都有一個(gè)抽象層次的問(wèn)題。就拿廣告設(shè)計(jì)來(lái)說(shuō)吧,最初的設(shè)計(jì)也許就是一個(gè)概念,設(shè)計(jì)出這個(gè)概念也是就是一個(gè)點(diǎn)子而已,離最終拍成廣告還差得很遠(yuǎn)。硬件設(shè)計(jì)也是有不同的抽象層次,每一個(gè)層次都需要設(shè)計(jì)。最高的抽象層次為算法級(jí)、然后依次是體系結(jié)構(gòu)級(jí)、寄存器傳輸級(jí)、門(mén)級(jí)、物理版圖級(jí)。使用HDL的好處在于我們已經(jīng)設(shè)計(jì)好了一個(gè)寄存器傳輸級(jí)的電路,那么用HDL描述以后轉(zhuǎn)化為文本的形式,剩下的向更低層次的轉(zhuǎn)換就可以讓EDA工具去做了,這就大大的降低了工作量。這就是可綜合的概念,也就是說(shuō)在對(duì)這一抽象層次上硬件單元進(jìn)行描述可以被EDA工具理解并轉(zhuǎn)化為底層的門(mén)級(jí)電路或其他結(jié)構(gòu)的電路。在FPGA設(shè)計(jì)中,就是在將這以抽象層級(jí)的意見(jiàn)描述成HDL語(yǔ)言,就可以通過(guò)FPGA開(kāi)發(fā)軟件轉(zhuǎn)化為問(wèn)題1中所述的FPGA內(nèi)部邏輯功能實(shí)現(xiàn)形式。HDL也可以描述更高的抽象層級(jí)如算法級(jí)或者是體系結(jié)構(gòu)級(jí),但目前受限于EDA軟件的發(fā)展,EDA軟件還無(wú)法理解這么高的抽象層次,所以HDL描述這樣抽象層級(jí)是無(wú)法被轉(zhuǎn)化為較低的抽象層級(jí)的,這也就是所謂的不可綜合。所以在閱讀或編寫(xiě)HDL語(yǔ)言,尤其是可綜合的HDL,不應(yīng)該看到的是語(yǔ)言本身,而是要看到語(yǔ)言背后所對(duì)應(yīng)的硬件電路結(jié)構(gòu)。如果看到的HDL始終是一條條的代碼,那么這種人永遠(yuǎn)擺脫不了菜鳥(niǎo)的宿命。假如哪一天看到的代碼不再是一行行的代碼而是一塊一塊的硬件模塊,那么恭喜脫離了菜鳥(niǎo)的級(jí)別,進(jìn)入不那么菜的鳥(niǎo)級(jí)別。

      3、FPGA本身不算什么,一切皆在FPGA之外這一點(diǎn)恐怕也是很多學(xué)FPGA的菜鳥(niǎo)最難理解的地方。

      FPGA是給誰(shuí)用的?很多學(xué)校解釋為給學(xué)微電子專(zhuān)業(yè)或者集成電路設(shè)計(jì)專(zhuān)業(yè)的學(xué)生用的,其實(shí)這不過(guò)是很多學(xué)校受資金限制,買(mǎi)不起專(zhuān)業(yè)的集成電路設(shè)計(jì)工具而用FPGA工具替代而已。其實(shí)FPGA是給設(shè)計(jì)電子系統(tǒng)的工程師使用的。這些工程師通常是使用已有的芯片搭配在一起完成一個(gè)電子設(shè)備,如基站、機(jī)頂盒、視頻監(jiān)控設(shè)備等。當(dāng)現(xiàn)有芯片無(wú)法滿足系統(tǒng)的需求時(shí),就需要用FPGA來(lái)快速的定義一個(gè)能用的芯片。前面說(shuō)了,F(xiàn)PGA里面無(wú)法就是一些“真值表”、觸發(fā)器、各種連線以及一些硬件資源,電子系統(tǒng)工程師使用FPGA進(jìn)行設(shè)計(jì)時(shí)無(wú)非就是考慮如何將這些以后資源組合起來(lái)實(shí)現(xiàn)一定的邏輯功能而已,而不必像IC設(shè)計(jì)工程師那樣一直要關(guān)注到最后芯片是不是能夠被制造出來(lái)。本質(zhì)上和利用現(xiàn)有芯片組合成不同的電子系統(tǒng)沒(méi)有區(qū)別,只是需要關(guān)注更底層的資源而已。要想把FPGA用起來(lái)還是簡(jiǎn)單的,因?yàn)闊o(wú)非就是那些資源,在理解了前面兩點(diǎn)再搞個(gè)實(shí)驗(yàn)板,跑跑實(shí)驗(yàn),做點(diǎn)簡(jiǎn)單的東西是可以的。而真正要把FPGA用好,那光懂點(diǎn)FPGA知識(shí)就遠(yuǎn)遠(yuǎn)不夠了。因?yàn)樽罱K要讓FPGA里面的資源如何組合,實(shí)現(xiàn)何種功能才能滿足系統(tǒng)的需要,那就需要懂得更多更廣泛的知識(shí)。

      目前FPGA的應(yīng)用主要是三個(gè)方向:

      第一個(gè)方向,也是傳統(tǒng)方向主要用于通信設(shè)備的高速接口電路設(shè)計(jì),這一方向主要是用FPGA處理高速接口的協(xié)議,并完成高速的數(shù)據(jù)收發(fā)和交換。這類(lèi)應(yīng)用通常要求采用具備高速收發(fā)接口的FPGA,同時(shí)要求設(shè)計(jì)者懂得高速接口電路設(shè)計(jì)和高速數(shù)字電路板級(jí)設(shè)計(jì),具備EMC/EMI設(shè)計(jì)知識(shí),以及較好的模擬電路基礎(chǔ),需要解決在高速收發(fā)過(guò)程中產(chǎn)生的信號(hào)完整性問(wèn)題。FPGA最初以及到目前最廣的應(yīng)用就是在通信領(lǐng)域,一方面通信領(lǐng)域需要高速的通信協(xié)議處理方式,另一方面通信協(xié)議隨時(shí)在修改,非常不適合做成專(zhuān)門(mén)的芯片。因此能夠靈活改變功能的FPGA就成為首選。到目前為止FPGA的一半以上的應(yīng)用也是在通信行業(yè)。

      第二個(gè)方向,可以稱(chēng)為數(shù)字信號(hào)處理方向或者數(shù)學(xué)計(jì)算方向,因?yàn)楹艽蟪潭壬线@一方向已經(jīng)大大超出了信號(hào)處理的范疇。例如早就在2006年就聽(tīng)說(shuō)老美將FPGA用于金融數(shù)據(jù)分析,后來(lái)又見(jiàn)到有將FPGA用于醫(yī)學(xué)數(shù)據(jù)分析的案例。在這一方向要求FPGA設(shè)計(jì)者有一定的數(shù)學(xué)功底,能夠理解并改進(jìn)較為復(fù)雜的數(shù)學(xué)算法,并利用FPGA內(nèi)部的各種資源使之能夠變?yōu)閷?shí)際的運(yùn)算電路。目前真正投入實(shí)用的還是在通信領(lǐng)域的無(wú)線信號(hào)處理、信道編解碼以及圖像信號(hào)處理等領(lǐng)域,其它領(lǐng)域的研究正在開(kāi)展中,之所以沒(méi)有大量實(shí)用的主要原因還是因?yàn)閷W(xué)金融的、學(xué)醫(yī)學(xué)的不了解這玩意。不過(guò)最近發(fā)現(xiàn)歐美有很多電子工程、計(jì)算機(jī)類(lèi)的博士轉(zhuǎn)入到金融行業(yè),開(kāi)展金融信號(hào)處理,相信隨著轉(zhuǎn)入的人增加,F(xiàn)PGA在其它領(lǐng)域的數(shù)學(xué)計(jì)算功能會(huì)更好的發(fā)揮出來(lái),而我也有意做一些這些方面的研究。不過(guò)國(guó)內(nèi)學(xué)金融的、學(xué)醫(yī)的恐怕連數(shù)學(xué)都很少用到,就不用說(shuō)用FPGA來(lái)幫助他們完成數(shù)學(xué)_運(yùn)算了,這個(gè)問(wèn)題只有再議了。

      第三個(gè)方向,就是所謂的SOPC方向,其實(shí)嚴(yán)格意義上來(lái)說(shuō)這個(gè)已經(jīng)在FPGA設(shè)計(jì)的范疇之外,只不過(guò)是利用FPGA這個(gè)平臺(tái)搭建的一個(gè)嵌入式系統(tǒng)的底層硬件環(huán)境,然后設(shè)計(jì)者主要是在上面進(jìn)行嵌入式軟件開(kāi)發(fā)而已。設(shè)計(jì)對(duì)于FPGA本身來(lái)說(shuō)是相當(dāng)少的。但如果涉及到需要在FPGA做專(zhuān)門(mén)的算法加速,實(shí)際上需要用到第二個(gè)方向的知識(shí),而如果需要設(shè)計(jì)專(zhuān)用的接口電路則需要用到第一個(gè)方向的知識(shí)。

      就目前SOPC方向發(fā)展其實(shí)遠(yuǎn)不如第一和第二個(gè)方向,其主要原因是因?yàn)镾OPC以FPGA為主,或者是在FPGA內(nèi)部的資源實(shí)現(xiàn)一個(gè)“軟”的處理器,或者是在FPGA內(nèi)部嵌入一個(gè)處理器核。但大多數(shù)的嵌入式設(shè)計(jì)卻是以軟件為核心,以現(xiàn)有的硬件發(fā)展情況來(lái)看,多數(shù)情況下的接口都已經(jīng)標(biāo)準(zhǔn)化,并不需要那么大的FPGA邏輯資源去設(shè)計(jì)太過(guò)復(fù)雜的接口。而且就目前看來(lái)SOPC相關(guān)的開(kāi)發(fā)工具還非常的不完善,以ARM為代表的各類(lèi)嵌入式處理器開(kāi)發(fā)工具早已深入人心,大多數(shù)以ARM為核心的SOC芯片提供了大多數(shù)標(biāo)準(zhǔn)的接口,大量成系列的單片機(jī)/嵌入式處理器提供了相關(guān)行業(yè)所需要的硬件加速電路,需要專(zhuān)門(mén)定制硬件場(chǎng)合確實(shí)很少。通常是在一些特種行業(yè)才會(huì)在這方面有非常迫切的需求。即使目前Xilinx將ARM的硬核加入到FPGA里面,相信目前的情況不會(huì)有太大改觀,不要忘了很多老掉牙的8位單片機(jī)還在嵌入式領(lǐng)域混呢,嵌入式主要不是靠硬件的差異而更多的是靠軟件的差異來(lái)體現(xiàn)價(jià)值的。我曾經(jīng)看好的是cypress的Psoc這一想法。和SOPC系列不同,Psoc的思想是在SOC芯片里面去嵌入那么一小塊FPGA,那這樣其實(shí)可以滿足嵌入式的那些微小的硬件接口差異,比如某個(gè)運(yùn)用需要4個(gè)USB,而通常的處理器不會(huì)提供那么多,就可以用這么一塊FPGA來(lái)提供多的USB接口。而另一種運(yùn)用需要6個(gè)UART,也可以用同樣的方法完成。對(duì)于嵌入式設(shè)計(jì)公司來(lái)說(shuō)他們只需要備貨一種芯片,就可以滿足這些設(shè)計(jì)中各種微小的差異變化。其主要的差異化仍然是通過(guò)軟件來(lái)完成。但目前cypress過(guò)于封閉,如果其采用ARM作為處理器內(nèi)核,借助其完整的工具鏈。同時(shí)開(kāi)放IP合作,讓大量的第三方為它提供IP設(shè)計(jì),其實(shí)是很有希望的。但目前cypress的日子怕不太好過(guò),Psoc的思想也不知道何時(shí)能夠發(fā)光。

      4、數(shù)字邏輯知識(shí)是根本。

      無(wú)論是FPGA的哪個(gè)方向,都離不開(kāi)數(shù)字邏輯知識(shí)的支撐。FPGA說(shuō)白了是一種實(shí)現(xiàn)數(shù)

      字邏輯的方式而已。如果連最基本的數(shù)字邏輯的知識(shí)都有問(wèn)題,學(xué)習(xí)FPGA的愿望只是空中樓閣而已。而這,恰恰是很多菜鳥(niǎo)最不愿意去面對(duì)的問(wèn)題。數(shù)字邏輯是任何電子電氣類(lèi)專(zhuān)業(yè)的專(zhuān)業(yè)基礎(chǔ)知識(shí),也是必須要學(xué)好的一門(mén)課。很多人無(wú)非是學(xué)習(xí)了,考個(gè)試,完了。如果不能將數(shù)字邏輯知識(shí)爛熟于心,養(yǎng)成良好的設(shè)計(jì)習(xí)慣,學(xué)FPGA到最后仍然是霧里看花水中望月,始終是一場(chǎng)空的。以上四條只是我目前總結(jié)菜鳥(niǎo)們?cè)趯W(xué)習(xí)FPGA時(shí)所最容易跑偏的地方,F(xiàn)PGA的學(xué)習(xí)其實(shí)就像學(xué)習(xí)圍棋一樣,學(xué)會(huì)如何在棋盤(pán)上落子很容易,成為一位高手卻是難上加難。

      下載FPGA常用術(shù)語(yǔ)word格式文檔
      下載FPGA常用術(shù)語(yǔ).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        FPGA學(xué)習(xí)經(jīng)驗(yàn)總結(jié)

        FPGA是什么?FPGA現(xiàn)狀?怎樣學(xué)習(xí)FPGA? FPGA是什么? FPGA是什么?FPGA現(xiàn)狀?怎樣學(xué)習(xí)FPGA? FPGA是什么介紹 FPGA是現(xiàn)場(chǎng)可編程門(mén)陣列的簡(jiǎn)稱(chēng),F(xiàn)PGA的應(yīng)用領(lǐng)域最初為通信領(lǐng)域,但目前,隨著信息產(chǎn)......

        fpga學(xué)習(xí)心得體會(huì)

        fpga學(xué)習(xí)心得體會(huì)1、該課程實(shí)現(xiàn)了通過(guò)usb 接口將代碼與實(shí)驗(yàn)設(shè)備相結(jié)合的功能,并且使我對(duì)EL-S0PC4000 實(shí)驗(yàn)箱有了接觸,了解并掌握了其所具備的一些功能,在實(shí)驗(yàn)中不僅使我學(xué)到了......

        FPGA,學(xué)習(xí)心得體會(huì)

        篇一:fpga學(xué)習(xí)心得大報(bào)告《fpga技術(shù)基礎(chǔ)》學(xué)習(xí)報(bào)告 --課程內(nèi)容學(xué)習(xí)心得姓 名: 學(xué) 號(hào): 年級(jí)專(zhuān)業(yè): 指導(dǎo)教師: 瞿麟 201010401128 自動(dòng)化101薛小軍摘要從開(kāi)始學(xué)fpga到現(xiàn)在粗略算來(lái)......

        基于FPGA的電壓表

        FPGA控制的數(shù)字電壓表電路設(shè)計(jì) 李培 (河南科技大學(xué)電子信息工程學(xué)院 河南洛陽(yáng) 471003) 摘 要:介紹數(shù)字電壓表的組成及工作原理,論述了基于VHDL語(yǔ)言和FPGA芯片的數(shù)字系統(tǒng)的設(shè)計(jì)思......

        FPGA交通燈實(shí)驗(yàn)報(bào)告

        交通燈實(shí)驗(yàn)報(bào)告 一, 實(shí)驗(yàn)?zāi)康?實(shí)現(xiàn)兩路信號(hào)燈交替亮起,并利用兩組數(shù)碼管分別對(duì)兩路信號(hào)進(jìn)行倒計(jì)時(shí)。 兩路信號(hào)時(shí)間分別為: V:綠燈(30S) H:紅燈(35S) 黃燈(5s) 綠燈(30S) 紅燈(35S) 黃燈......

        FPGA秒表實(shí)驗(yàn)報(bào)告

        課程設(shè)計(jì)報(bào)告 專(zhuān)業(yè)班級(jí) 課 程 題 目 秒表的設(shè)計(jì) 學(xué) 號(hào) 姓 名 同 組 人 成 績(jī) 2013年5月 一、設(shè)計(jì)目的 1.進(jìn)一步熟悉七段碼譯碼器的硬件接口。 2.掌握用掃描方法驅(qū)動(dòng)多個(gè)數(shù)碼......

        FPGA實(shí)驗(yàn)報(bào)告5篇

        FPGA實(shí)驗(yàn)報(bào)告 專(zhuān)業(yè):XXX 姓名:XXX 學(xué)號(hào):XX 一:實(shí)驗(yàn)?zāi)康? 1.熟悉Modelsim和Quartus II軟件的運(yùn)行環(huán)境和使用2.熟練使用Quartus II仿真軟件生成網(wǎng)表。3.熟悉FPGA前仿真和后仿真的......

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

        FPGA學(xué)習(xí)步驟,我的體會(huì) FPGA學(xué)習(xí)步驟,我的體會(huì) FPGA在目前應(yīng)用領(lǐng)域非常,在目前的單板設(shè)計(jì)里面,幾乎都可以看到它的身影。從簡(jiǎn)單的邏輯組合,到高端的圖像、通信協(xié)議處理,從單片邏輯......