FPGA全稱為Field-Programmable Gate Array,中文含義為現(xian)場可編程門(men)陣列。FPGA是作為專用(yong)集成(cheng)電路(ASIC)領域(yu)中的(de)(de)半定制(zhi)電路而出現(xian)的(de)(de),它(ta)克(ke)服了(le)定制(zhi)電路的(de)(de)不足,也(ye)解決(jue)了(le)PAL、GAL、CPLD等可編程器件(jian)門(men)電路的(de)(de)缺點(dian)。由于FPGA具(ju)有布線(xian)資源豐富,可重復編程和集成(cheng)度高,投資較低的(de)(de)特(te)點(dian),在數(shu)字電路設計領域(yu)得到了(le)廣泛的(de)(de)應(ying)用(yong)。
買(mai) 購(gou)小(xiao)編(bian)了解到,fpga主要有Verilog、VHDL和C語言進行編(bian)程(cheng),常用(yong)的還是(shi)前(qian)面兩(liang)種(zhong),雖然有些國外公(gong)司(si)試圖C語言替代VHDL語言的目(mu)的,但(dan)是(shi)一般情況不(bu)使(shi)用(yong)C語言進行編(bian)程(cheng)。
包括算法設計(ji)、代(dai)(dai)碼仿真(zhen)(zhen)以及(ji)(ji)設計(ji)、板(ban)機(ji)調試,設計(ji)者(zhe)以及(ji)(ji)實際(ji)需(xu)求建立算法架(jia)構,利(li)用EDA建立設計(ji)方案或HD編寫設計(ji)代(dai)(dai)碼,通過代(dai)(dai)碼仿真(zhen)(zhen)保證設計(ji)方案符合實際(ji)要求,最后進行板(ban)級(ji)調試,利(li)用配置電路將相關文件下載至FPGA芯片(pian)中(zhong),驗(yan)證實際(ji)運(yun)行效果(guo)。
1、可編程輸入/輸出單元:簡稱I/O單元,是芯片(pian)與外界(jie)電(dian)路的(de)接(jie)口(kou)部分,完成不(bu)同(tong)電(dian)氣特性下對輸(shu)入/輸(shu)出信號的(de)驅動與匹配(pei)需求。
2、基本可編程邏輯單元:它(ta)是可編程邏(luo)(luo)輯的主體(ti),可以根據設計靈活(huo)地改變其內部(bu)連(lian)接與配(pei)置,完成(cheng)不(bu)同的邏(luo)(luo)輯功(gong)能(neng)。FPGA的基本可編程邏(luo)(luo)輯單元幾乎都是由查找表LUT和寄(ji)存器Reg組成(cheng)的。
3、嵌入式塊RAM:據MA Igoo編(bian)(bian)輯了(le)解,FPGA內部嵌入可編(bian)(bian)程RAM模塊,大大拓(tuo)展了(le)FPGA的(de)應用范圍和使用的(de)靈活性。
4、豐富的布線資源:布線(xian)(xian)資(zi)源(yuan)連(lian)通FPGA內部所有單元,連(lian)線(xian)(xian)的(de)長度(du)和工藝決定著(zhu)信號在連(lian)線(xian)(xian)上的(de)驅動能力和傳輸速度(du)。
5、底層嵌入功能單元:底層嵌入功(gong)能(neng)單(dan)元(yuan)的概念比較籠統,這(zhe)里(li)指那些通用程度較高的嵌入式功(gong)能(neng)模塊、入PLL、DSP、CPU等。
6、內嵌專用硬核:這里說(shuo)的硬(ying)核主(zhu)要(yao)指那些通(tong)用性較弱,不(bu)是(shi)所有FPGA器件(jian)都包含硬(ying)核(Hard Core)。
FPGA采(cai)用了邏(luo)輯單元(yuan)陣列(lie)LCA(Logic Cell Array)這樣一個(ge)概念,內部(bu)包括可配置(zhi)邏(luo)輯模塊CLB(Configurable Logic Block)、輸入輸出(chu)模塊IOB(Input Output Block)和內部(bu)連線(Interconnect)三(san)個(ge)部(bu)分。
現場可(ke)編(bian)程門(men)陣(zhen)列(FPGA)是(shi)可(ke)編(bian)程器件,與(yu)傳統邏(luo)輯(ji)電(dian)路(lu)和門(men)陣(zhen)列(如(ru)PAL,GAL及CPLD器件)相比,FPGA具有不同的結構(gou)。FPGA利(li)用(yong)(yong)小型(xing)查找表(16×1RAM)來(lai)實現組合邏(luo)輯(ji),每個(ge)查找表連接到(dao)一個(ge)D觸發器的輸入端(duan),觸發器再(zai)來(lai)驅動其他(ta)邏(luo)輯(ji)電(dian)路(lu)或驅動I/O,由(you)此構(gou)成了(le)既可(ke)實現組合邏(luo)輯(ji)功能(neng)又可(ke)實現時序(xu)邏(luo)輯(ji)功能(neng)的基本邏(luo)輯(ji)單元模塊,這些模塊間利(li)用(yong)(yong)金(jin)屬連線互相連接或連接到(dao)I/O模塊。
FPGA的(de)邏(luo)輯是通過(guo)向內部(bu)靜(jing)態(tai)存(cun)(cun)儲單(dan)元加載編程數據來實(shi)現的(de),存(cun)(cun)儲在存(cun)(cun)儲器單(dan)元中的(de)值決定(ding)(ding)了(le)邏(luo)輯單(dan)元的(de)邏(luo)輯功(gong)能(neng)以及各模塊之間(jian)或模塊與(yu)I/O間(jian)的(de)聯接方(fang)式,并最終決定(ding)(ding)了(le)FPGA所能(neng)實(shi)現的(de)功(gong)能(neng),FPGA允許無限(xian)次(ci)的(de)編程。
1、結構上的區別
單(dan)片機是(shi)(shi)微處理器(qi)結(jie)(jie)構(gou),采用的(de)是(shi)(shi)哈佛總(zong)線結(jie)(jie)構(gou)或馮(feng)諾依曼結(jie)(jie)構(gou),單(dan)片機結(jie)(jie)構(gou)簡單(dan)體(ti)積(ji)小,價格(ge)便宜,應(ying)(ying)用廣(guang)泛。FPGA是(shi)(shi)查找表(biao)結(jie)(jie)構(gou),它的(de)程序(xu)(xu)不(bu)用考慮芯片的(de)結(jie)(jie)構(gou),偏重于(yu)時序(xu)(xu)上的(de)問題,FPGA結(jie)(jie)構(gou)復雜,功(gong)能(neng)強大,通(tong)(tong)常(chang)應(ying)(ying)用在通(tong)(tong)信領域(yu)等畢竟高端的(de)場合,價格(ge)比(bi)單(dan)片機貴。
2、速度上的區別
單(dan)片(pian)機(ji)是單(dan)線程(cheng)執行,程(cheng)序語句需要(yao)等待單(dan)片(pian)機(ji)周期才能執行,時間長(chang)速(su)度慢。FPGA是硬件電路(lu),是并行結構(gou),這導致FPGA系統穩定性高,適合高速(su)接口電路(lu),一次(ci)性執行多種操作,速(su)度上快于(yu)單(dan)片(pian)機(ji)。
3、本質上的區別
FPGA偏(pian)重于(yu)硬(ying)(ying)件(jian)電(dian)路(lu),屬于(yu)硬(ying)(ying)件(jian)范(fan)疇(chou),是一個通(tong)過硬(ying)(ying)件(jian)描述(shu)語言(yan)在(zai)FPGA芯片(pian)(pian)上(shang)自定義集成電(dian)路(lu)的過程。單(dan)片(pian)(pian)機(ji)偏(pian)重于(yu)軟(ruan)(ruan)件(jian),單(dan)片(pian)(pian)機(ji)設計屬于(yu)軟(ruan)(ruan)件(jian)范(fan)疇(chou),它(ta)的硬(ying)(ying)件(jian)(單(dan)片(pian)(pian)機(ji)芯片(pian)(pian))是固定的,通(tong)過軟(ruan)(ruan)件(jian)編(bian)程語言(yan)描述(shu)軟(ruan)(ruan)件(jian)指令(ling)在(zai)硬(ying)(ying)件(jian)芯片(pian)(pian)上(shang)的執行。
4、應用上的區別
M aigoo小編了解到,單片機是單線程,所有指令是在控(kong)制器按順(shun)序執行(xing)。FPGA是邏輯單元,可做(zuo)到并行(xing)執行(xing),一(yi)次性執行(xing)多種操作(zuo)。
5、入門難易程度區別
單片(pian)機結構(gou)(gou)簡單,功能(neng)強,價格低,入門難度不高(gao)。FPGA結構(gou)(gou)復(fu)雜,價格昂貴,入門難度不適合小白。
1、FPGA由(you)邏(luo)輯單元、RAM、乘法器(qi)等硬(ying)件資源組(zu)成,通(tong)過將這(zhe)些硬(ying)件資源合理(li)組(zu)織,可實(shi)現乘法器(qi)、寄存器(qi)、地(di)址發生器(qi)等硬(ying)件電路。
2、FPGA可通過使用框圖或(huo)(huo)者(zhe)Verilog HDL來(lai)設計(ji),從(cong)簡單的門電路(lu)到FIR或(huo)(huo)者(zhe)FFT電路(lu)。
3、FPGA可無(wu)限地重新編程(cheng),加(jia)載一(yi)個新的(de)設計(ji)方案(an)只需(xu)幾百毫秒,利用重配置可以減少硬件(jian)的(de)開銷。
4、FPGA的工作頻率(lv)由FPGA芯(xin)片(pian)以及設(she)計決定(ding),可(ke)以通過修改設(she)計或者更(geng)換更(geng)快的芯(xin)片(pian)來達到某些苛(ke)刻的要求(當然,工作頻率(lv)也不是無限制的可(ke)以提高,而是受當前的IC工藝等因素制約)。
1、FPGA的所(suo)有功能均依靠硬件實現(xian),無法實現(xian)分(fen)支(zhi)條件跳轉等操(cao)作。
2、FPGA只能實(shi)現定點運(yun)算。
MAI goo小編(bian)總(zong)結:FPGA依(yi)靠硬件來實(shi)現所(suo)有的(de)功能,速度上(shang)可(ke)以和(he)專用芯片相(xiang)比(bi),但設計的(de)靈活度與通用處理器相(xiang)比(bi)有很大的(de)差距。
FPGA 在通信領域的(de)(de)應用可(ke)以說是無所(suo)不能。在終端設備數量比較(jiao)多的(de)(de)位置,FPGA的(de)(de)用量比較(jiao)大(da),基站最適合使用FPGA,基站幾乎每(mei)一塊板子(zi)都(dou)需要(yao)使用FPGA芯片(pian),而且(qie)型號比較(jiao)高端,可(ke)以處理復(fu)雜(za)的(de)(de)物理協(xie)議,實現邏輯控制。
FPGA 最大優勢是其并行(xing)(xing)處(chu)理機制,即利用(yong)并行(xing)(xing)架構實現(xian)數(shu)字(zi)(zi)信(xin)號(hao)處(chu)理的(de)功能。對(dui)于高速(su)并行(xing)(xing)的(de)數(shu)字(zi)(zi)信(xin)號(hao)處(chu)理任務來說,FPGA 性能遠遠超(chao)過通用(yong) DSP 處(chu)理器的(de)串(chuan)行(xing)(xing)執行(xing)(xing)架構,所(suo)以在數(shu)字(zi)(zi)信(xin)號(hao)處(chu)理領(ling)域 FPGA 的(de)應用(yong)也是十(shi)分廣泛的(de)。
人們對圖像(xiang)(xiang)的穩定性(xing)、清晰度、亮度和顏色的追求(qiu)越來(lai)(lai)越高(gao)(gao), 像(xiang)(xiang)以(yi)(yi)(yi)前的標清(SD)慢慢演(yan)變成高(gao)(gao)清(HD),到現在人們更是追求(qiu)藍光(guang)品質的圖像(xiang)(xiang)。這使得處理芯片(pian)需要(yao)實(shi)時(shi)處理的數(shu)據(ju)量越來(lai)(lai)越大,并且(qie)圖像(xiang)(xiang)的壓縮算法也是越來(lai)(lai)越復(fu)雜, FPGA可以(yi)(yi)(yi)更加高(gao)(gao)效的處理數(shu)據(ju),所以(yi)(yi)(yi)在圖像(xiang)(xiang)處理領域(yu)在綜(zong)合考慮成本后,FPGA 也越來(lai)(lai)越受到市場的歡迎。
FPGA的(de)高速處理能力和多達成百上千個(ge)的(de) IO 決定了它在高速接口(kou)設(she)計領(ling)域的(de)獨(du)特優勢。不同的(de)接口(kou)邏(luo)輯都(dou)可以在 FPGA 內部去實(shi)現,完(wan)全沒必要那么多的(de)接口(kou)芯片,在配合 DDR 存儲器的(de)使用,將使接口(kou)數據的(de)處理變(bian)得(de)更加得(de)心(xin)應手。
FPGA 在人工智能系統的(de)(de)前端部分也是得到了廣(guang)泛(fan)的(de)(de)應用,例(li)如自動(dong)駕(jia)駛,需要(yao)對(dui)行駛路(lu)線(xian)、紅綠燈、路(lu)障和行駛速(su)度等各種(zhong)交通(tong)信號(hao)進(jin)行采集,需要(yao)用到多種(zhong)傳感器,對(dui)這些傳感器進(jin)行綜合驅動(dong)和融合處理就可以使用 FPGA。
IC設(she)計(ji)(ji)都要強調一版(ban)成(cheng)功,保證IC一版(ban)成(cheng)功就要進(jin)(jin)行充分的仿(fang)(fang)真(zhen)測(ce)試和FPGA驗(yan)證,仿(fang)(fang)真(zhen)驗(yan)證是(shi)在服務器(qi)上面跑(pao)仿(fang)(fang)真(zhen)軟件(jian)進(jin)(jin)行測(ce)試,類似(si)ModelSim/VCS軟件(jian),FPGA生成(cheng)的電路(lu)非常接(jie)近真(zhen)實(shi)的IC芯片,這樣極大(da)的方便IC設(she)計(ji)(ji)人員去驗(yan)證自己(ji)的IC設(she)計(ji)(ji)。
1、選擇有設(she)計軟件支(zhi)持的廠家(jia)的芯片,這樣可(ke)減少資(zi)本(ben)投(tou)入(ru),降(jiang)低(di)成本(ben)。
2、選擇產品(pin)設(she)(she)計性能改進有(you)余量(liang)的。如果(guo)所選擇的芯片是某一(yi)廠家產品(pin)中容(rong)量(liang):最(zui)(zui)大,或是速度最(zui)(zui)高的,那么(me),一(yi)但(dan)設(she)(she)計需要(yao)改進,則有(you)可能在該廠家的芯片中再選不(bu)出合適(shi)的來了(le)。
3、設(she)(she)計(ji)應用(yong)的(de)延續性(xing)和可擴展性(xing)。如果(guo)所選廠家的(de)產品具有很大(da)的(de)局限性(xing),則有可能僅僅適用(yong)于很少一部(bu)分設(she)(she)計(ji),從而(er)造成設(she)(she)計(ji)軟件(jian)投入上的(de)浪(lang)費。
4、選擇(ze)性能價(jia)格(ge)比最(zui)優的(de)。盡管象(xiang)Xilinx、Altera這(zhe)樣(yang)的(de)器件生產廠家都在(zai)通過降價(jia)來作市場宣傳,大多數FPGA芯片的(de)價(jia)格(ge)還是比較高(gao)的(de),所(suo)有在(zai)滿足上述(shu)準則(ze)的(de)情況下適(shi)當考慮價(jia)格(ge)也是有必(bi)要的(de)。
5、盡量選擇成熟的(de)產品系列(lie)。FPGA芯片(pian)更新(xin)換代速度非常(chang)快,最新(xin)推出的(de)FPGA系列(lie)產品一般都沒有(you)經過(guo)大批量應用的(de)驗證,會增加設(she)計(ji)風(feng)險,且(qie)供貨量少(shao)價格相(xiang)對(dui)高,如(ru)果成熟的(de)產品能(neng)滿足設(she)計(ji)指標要求,那么最好(hao)選這樣的(de)芯片(pian)來完成設(she)計(ji)。
6、盡(jin)量選擇兼容性好(hao)的(de)封(feng)裝(zhuang)。目前,同(tong)系列(lie)的(de)FPGA芯片(pian)一般可以(yi)(yi)做(zuo)到相同(tong)物理封(feng)裝(zhuang)兼容不(bu)同(tong)規模的(de)器(qi)件(jian)。例如,Xilinx的(de)Spartan3系列(lie)FPGA,在BGA456封(feng)裝(zhuang)下,可以(yi)(yi)選擇3S200、2S400、3S1000、3S1500這(zhe)4種(zhong)型號的(de)FPGA。
7、如果在整個電子系統中(zhong)需要(yao)多個FPGA器件(jian),那么盡(jin)量選擇一個公(gong)司的產品(pin)。這樣(yang)的好處不僅可以(yi)降(jiang)低成本,而且降(jiang)低開發難度。因為開發環境和工具是一致(zhi)的,芯片(pian)接口電平(ping)和特性也(ye)一致(zhi),便于互聯互通。
1、每逢節日活動,就到了網購達人們大展身手的(de)(de)(de)時候了,然而面對五(wu)花八門(men)的(de)(de)(de)商品、參差不齊的(de)(de)(de)價格(ge)卻不知如(ru)何下(xia)手?
2、每逢節日活動,就(jiu)到了網購達人們大展身手的時候了,然(ran)而面對(dui)五(wu)花(hua)八門的商品、參差不(bu)齊(qi)的價格卻不(bu)知如何下手?