小白入門FPGA必備基礎知識
發布時間:2017-01-17 責任編輯:wenwei
【導讀】FPGA已成為現今的技術熱點之一,無論學生還是工程師都希望跨進FPGA的大門。那麼我們要玩轉FPGA必須具備哪些基礎知識呢?下麵我們慢慢道來,希望能夠為學習FPGA的人帶來幫助。
(一) 要了解什麼是FPGA
既然要玩轉FPGA,那我們首先最重要的當然是要了解什麼FPGA.
FPGA(Field-Program mable Gate Array),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。所以,要想玩轉FPGA,就必須理解FPGA內部的工作原理,學習如何利用這些單元實現複雜的邏輯設計。
(二) FPGA的工作原理
FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成複雜的設計,但是功耗較低。但是 他們也有很多的優點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA.因為這些芯片有比 較差的可編輯能力,所以這些設計的開發是在普通的FPGA上完成的,然後將設計轉移到一個類似於ASIC的芯片上。
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。 現場可編程門陣列(FPGA)是可編程器件,與傳統邏輯電路和 門陣列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的結構。FPGA利用小型查找表(16×1RAM)來實現組合邏輯,每個查找表連接到一 個D觸發器的輸入端,觸發器再來驅動其他邏輯電路或驅動I/O,由此構成了既可實現組合邏輯功能又可實現時序邏輯功能的基本邏輯單元模塊,這些模塊間利用 金屬連線互相連接或連接到I/O模塊。FPGAdeluojishitongguoxiangneibujingtaicunchudanyuanjiazaibianchengshujulaishixiande,cunchuzaicunchuqidanyuanzhongdezhijuedingleluojidanyuandeluojigongnengyijigemokuaizhijianhuomokuaiyuI/O間的聯接方式,並最終決定了FPGA所能實現的功能,FPGA允許無限次的編程。
三) FPGA設計的基礎問題
FPGA的基礎就是數字電路和VHDL語 言,想學好FPGAderen,jianyichuangtoudouyouyibenshuzidianludeshu,buguanshinagebanbende,zhegeshijichu,duolejieyeyouzhuyuxingchengyingjianshejidesixiang。zaiyuyanfangmian,jianyichuxuezhexuexi Verilog語言,VHDL語言語法規範嚴格,調試起來很慢,Verilog語言容易上手,而且,一般大型企業都是用Verilog語言,VHDL語言 規範,易讀性強,所以一般軍工都用VHDL.
1、工具問題
熟悉幾個常用的就可以的,開發環境QuartusII ,或ISE 就可以了,這兩個基本是相通的,會了哪一個,另外的那個也就很Easy了。功能仿真建議使用Modelsim ,如果你是做芯片的,就可以學學別的仿真工具,做FPGA的,Modelsim就足夠了。綜合工具一般用Synplify,初學先不用太關心這個,用 Quartus綜合就OK了。
2、思想問題
對dui於yu初chu學xue者zhe,特te別bie是shi從cong軟ruan件jian轉zhuan過guo來lai的de,設she計ji的de程cheng序xu既ji費fei資zi源yuan又you速su度du慢man,而er且qie很hen有you可ke能neng綜zong合he不bu了le,這zhe就jiu要yao求qiu我wo們men熟shu悉xi一yi些xie固gu定ding模mo塊kuai的de寫xie法fa,可ke綜zong合he的de模mo塊kuai很hen多duo書shu上shang都dou有you,語yu言yan介jie紹shao上shang都dou有you,不bu要yao想xiang當dang然ran的de用yong軟ruan件jian的de思si想xiang去qu寫xie硬ying件jian。
3、習慣問題
FPGA學習要多練習,多仿真,signaltapII是很好的工具,可以看到每個信號的真實值, 建議初學者一定要自己多動手,光看書是沒用的。關於英文文檔問題,如果要學會Quartus II的所有功能,隻要看它的handbook就可以了,很詳細,對於IT行業的人,大部分知識來源都是英文文檔,一定要耐心看,會從中收獲很多的。
4、算法問題
做FPGA的工程師,最後一般都是專攻算法了,這些基礎知識都是順手捏來的,如果你沒有做好搞理論 的準備,學FPGAshizhongzhinengtingliuzaichujijieduanshang。duiyuchuxuezhe,shuzixinhaochulishijichu,yinggaihaohaolijie,wanggengshendefangxiang,buyongshenmedouxue,genjuniyihoucongshidefangxiang,biru 說通信、圖像處理,雷達、聲納、導航定位等。

(四) FPGA的配置模式
FPGA有多種配置模式:並行主模式為一片FPGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片FPGA;串行模式可以采用串行PROM編程FPGA;外設模式可以將FPGA作為微處理器的外設,由微處理器對其編程。
如何實現快速的時序收斂、降低功耗和成本、優化時鍾管理並降低FPGA與PCB並行設計的複雜性等問題,一直是采用FPGA的係統設計工程師需要考慮的關鍵問題。如今,隨著FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發展,係統設計工 程師在從這些優異性能獲益的同時,不得不麵對由於FPGA前所未有的性能和能力水平而帶來的新的設計挑戰。
(五) FPGA設計的三大法則
第一 麵積與速度的互換
這裏的麵積指的是FPGA的芯片資源,包括邏輯資源和I/O資源等;這裏的速度指的是FPGA工作 的最高頻率(和DSP或者ARM不同,FPGA設計的工 作頻率是不固定的,而是和設計本身的延遲緊密相連)。 在實際設計中,使用最小的麵積設計出最高的速度是每一個開發者追求的目標,但是“魚和熊掌不可兼得”,取舍之間展示了一個開發者的智慧。
1.速度換麵積
速度優勢可以換取麵積的節約。麵積越小,就意味著可以用更低的成本來實現產品的功 neng。suduhuanmianjideyuanzezaiyixiejiaofuzadesuanfashejizhongchangchanghuiyongdao。zaizhexiesuanfashejizhong,liushuixianshejichangchangshibixuyongdaodejishu。zailiushuixiandeshejizhong,zhexiebeizhongfushiyongdanshishi 用次數不同的模塊將會占用大量的FPGA資源。對FPGA的設計技術進行改造,將被重複使用的算法模塊提煉出最小的複用單元,並利用這個最小的高速代替原 設she計ji中zhong被bei重zhong複fu使shi用yong但dan次ci數shu不bu同tong的de模mo塊kuai。當dang然ran,在zai改gai造zao的de過guo程cheng中zhong必bi然ran會hui增zeng加jia一yi些xie其qi他ta的de資zi源yuan來lai實shi現xian這zhe個ge代dai替ti的de過guo程cheng。但dan是shi隻zhi要yao速su度du具ju有you優you勢shi,那na麼me增zeng加jia的de這zhe部bu分fen邏luo輯ji依yi 然能夠實現降低麵積提高速度的目的。
可以看到,速度換麵積的關鍵是高速基本單元的複用。
2.麵積換速度
zaizhezhongfangfazhongmianjidefuzhikeyihuanqusududetigao。zhichidesuduyuegao,jiuyiweizhekeyishixiangenggaodechanpinxingneng。yixiezhuzhongchanpinxingnengdeyingyonglingyukeyicaiyongbingxingchulijishu,shixianmianjihuansudu。
第二 硬件可實現原則
FPGA設計通常會使用HDL語言,比如Verilog HDL或者VHDL.當采用HDL語言來描述一個硬件電路功能的時候,一定要確保代碼描述的電路是硬件可實現的。
Verilog HDL語言的語法與C語言很相似,但是它們之間有著本質的區別。C語言是基於過程的高級語言,編譯後可以在CPU上運行。而Verilog HDL語言描述的本身就是硬件結構,編譯後是硬件電路。因此,有些語句在C語言的環境中應用是沒有問題的,但是在HDL語言環境下就會導致結果不正確或者 不理想。如:
for(i=0;i<16;i++)
DoSomething();
在C語言中運行沒有任何問題,但是在Verilog HDL的環境下編譯就會導致綜合後的資源嚴重浪費。
第三 同步設計原則
同步電路和異步電路是FPGA設計的兩種基本電路結構形式。
異(yi)步(bu)電(dian)路(lu)的(de)最(zui)大(da)缺(que)點(dian)是(shi)會(hui)產(chan)生(sheng)毛(mao)刺(ci)。同(tong)步(bu)設(she)計(ji)的(de)核(he)心(xin)電(dian)路(lu)是(shi)由(you)各(ge)種(zhong)觸(chu)發(fa)器(qi)構(gou)成(cheng)的(de)。這(zhe)類(lei)電(dian)路(lu)的(de)任(ren)何(he)輸(shu)出(chu)都(dou)是(shi)在(zai)某(mou)個(ge)時(shi)鍾(zhong)的(de)邊(bian)沿(yan)驅(qu)動(dong)觸(chu)發(fa)器(qi)產(chan)生(sheng)的(de)。所(suo)以(yi),同(tong)步(bu)設(she)計(ji)可(ke)以(yi)很(hen)好(hao)地(di)避(bi)免(mian)毛(mao)刺(ci)的(de)產(chan)生(sheng)。
(六) FPGA設計的主要應用
1、電路設計
連接邏輯,控製邏輯是FPGA早期發揮作用比較大的領域也是FPGA應用的基石。事實上在電路設計 中應用FPGA的難度還是比較大的這要求開發者要具備相應的硬件知識(電路知識)和軟件應用能力(開發工具)這方麵的人才總是緊缺的,往往都從事新技術, 新產品的開發成功的產品將變成市場主流基礎產品供產品設計者應用在不遠的將來,通用和專用IP的設計將成為一個熱門行業!搞電路設計的前提是必須要具備一 定的硬件知識。在這個層麵,幹重於學,當然,快速入門是很重要的,越好的位子越不等人電路開發是黃金飯碗。
2、產品設計
把相對成熟的技術應用到某些特定領域如通訊,視頻,信息處理等等開發出滿足行業需要並能被行業客戶 接受的產品這方麵主要是FPGA技術和專業技術的結合問題,另外還有就是與專業客戶的界麵問題產品設計還包括專業工具類產品及民用產品,前者重點在性能, 後者對價格敏感產品設計以實現產品功能為主要目的,FPGA技術是一個實現手段在這個領域,FPGA因為具備接口,控製,功能IP,內嵌CPU等特點有條 件實現一個構造簡單,固化程度高,功能全麵的係統產品設計將是FPGA技術應用最廣大的市場,具有極大的爆發性的需求空間產品設計對技術人員的要求比較 高,路途也比較漫長不過現在整個行業正處在組建“首發團隊”的狀態,隻要加入,前途光明產品設計是一種職業發展方向定位,不是簡單的愛好就能做到的!產品 設計領域會造就大量的企業和企業家,是一個發展熱點和機遇。
3、係統級
係統級的應用是FPGA與傳統的計算機技術結合,實現一種FPGA版的計算機係統,實現一個基本環境,在這個平台上跑LINUX等係統,這個係統也就支持各種標準外設和功能接口(如圖象接口)了這對於快速構成FPGA大型係統來講是很有幫助的。這種“山寨”味很濃的係統早期優勢不一定很明顯,類似ARM係統的境況但若能慢慢發揮出FPGAdeyoushi,zhujianshixianyixietesexitongyeshiyizhongfazhanfangxiang。ruozaixitongjiyingyongzhong,kaifarenyuanbujubeixitongdekuochongkaifanengli,zhishigaogaobianchengshimeishenmeyiyide,dangranshebeiqudongchengxudekaifashilingyizhongqingkuang,gaoxitongjiyingyongkansiqidiangao,danbujubeishencengkaifanengli,henkenenghuibianchengaihaozhe,jiuruhenduorenhuizuowangyedanbunengchengzuohuibiancheng。leisiyishangshijidiangerenguandian,xiwangnengbangzhuxiangxueFPGA但dan很hen茫mang然ran無wu措cuo的de人ren理li一yi理li思si路lu。這zhe是shi一yi個ge不bu錯cuo的de行xing業ye,有you很hen好hao的de個ge人ren成cheng功gong機ji會hui。但dan也ye肯ken定ding是shi一yi個ge競jing爭zheng很hen激ji烈lie的de行xing業ye,關guan鍵jian看kan的de就jiu是shi速su度du和he深shen度du當dang然ran還hai有you市shi場chang適shi應ying能neng力li。
以上,我們了解到了FPGA基礎知識,雖然FPGA入ru門men簡jian單dan精jing通tong難nan,但dan是shi若ruo要yao想xiang入ru門men,買mai一yi塊kuai開kai發fa板ban跟gen著zhe例li程cheng走zou一yi遍bian,很hen多duo人ren都dou能neng在zai很hen短duan的de時shi間jian內nei熟shu悉xi開kai發fa軟ruan件jian的de操cao作zuo方fang法fa並bing且qie點dian亮liang開kai發fa板ban上shang的deLED或者再實現個跑馬燈什麼的。但是再往後進步往往就進展很慢。上麵提到的六方麵是FPGA入門的基礎知識,希望能夠為學習FPGA的人帶來幫助。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 美國國際貿易委員會(ITC)裁定英飛淩勝訴,並對英諾賽科實施進口及銷售禁令
- 西門子與 Xometry 達成戰略合作,為西門子 Xcelerator 拓展原生 AI 供應鏈智能
- 硬件更強了,手柄卻還是有“廉價感”的三大常見原因
- 英特爾宣布領導層任命,推進客戶端計算與未來創新
- 聚積科技首度參與SID Display Week 展現多元背光卓越成功案例與創新解決方案
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
壓力傳感器
壓力開關
壓敏電阻
揚聲器
遙控開關
醫療電子
醫用成像
移動電源
音頻IC
音頻SoC
音頻變壓器
引線電感
語音控製
元件符號
元器件選型
雲電視
雲計算
雲母電容
真空三極管
振蕩器
振蕩線圈
振動器
振動設備
震動馬達
整流變壓器
整流二極管
整流濾波
直流電機
智能抄表
智能電表


