現(xiàn)場可編程邏輯門陣列(FPGA, Field Programmable Gate Array),是一個含有可編輯元件的半導體設(shè)備,可供使用者現(xiàn)場程式化的邏輯門陣列元件。FPGA是在PAL、GAL、CPLD等可編輯器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。
單片機可以理解為集成在單一芯片上的微型計算機系統(tǒng),麻雀雖小可是五臟俱全,也有運算器、控制器、存儲器、總線及輸入輸出設(shè)備,采用也是存儲程序執(zhí)行的方式,對單片機的編程就是對其中的ROM寫入程序,在加電后ROM中的程序會像計算機內(nèi)存中的程序一樣得到逐條的執(zhí)行。當今的單片機還集成了A/D、D/A轉(zhuǎn)換,并串口等多種與外界進行數(shù)據(jù)交換的手段。單片機計算速度和性能有限,但在一些基本控制上搓綽綽有余。
FPGA則是操控層次更低,所以自由度更大的芯片,對FPGA的編程在編譯后是轉(zhuǎn)化為FPGA內(nèi)的連線表,相當于FPGA內(nèi)提供了大量的與非門、或非門、觸發(fā)器(可以用與非門形成吧)等基本數(shù)字器件,編程決定了有多少器件被使用以及它們之間的連接。只要FPGA規(guī)模夠大,這些數(shù)字器件理論上能形成一切數(shù)字系統(tǒng),包括單片機甚至CPU。FPGA在抗干擾,速度上有很大優(yōu)勢。
目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現(xiàn)代 IC 設(shè)計驗證的技術(shù)主流。這些可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復雜一些的組合功能比如解碼器或數(shù)學方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。 系統(tǒng)設(shè)計師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計者而改變,所以FPGA可以完成所需要的邏輯功能。 FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復雜的設(shè)計,而且消耗更多的電能。但是他們也有很多的優(yōu)點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA。因為這些芯片有比較差的可編輯能力,所以這些設(shè)計的開發(fā)是在普通的FPGA上完成的,然后將設(shè)計轉(zhuǎn)移到一個類似于ASIC的芯片上。另外一種方法是用CPLD(復雜可編程邏輯器件備)。
CPLD與FPGA的關(guān)系
早在1980年代中期,F(xiàn)PGA已經(jīng)在PLD設(shè)備中扎根。CPLD和FPGA包括了一些相對大數(shù)量的可以編輯邏輯單元。CPLD邏輯門的密度在幾千到幾萬個邏輯單元之間,而FPGA通常是在幾萬到幾百萬。 CPLD和FPGA的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。CPLD是一個有點限制性的結(jié)構(gòu)。這個結(jié)構(gòu)由一個或者多個可編輯的結(jié)果之和的邏輯組列和一些相對少量的鎖定的寄存器。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預計的延遲時間和邏輯單元對連接單元高比率的優(yōu)點。而FPGA卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,但是結(jié)構(gòu)卻復雜的多。 CPLD和FPGA另外一個區(qū)別是大多數(shù)的FPGA含有高層次的內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。一個因此有關(guān)的重要區(qū)別是很多新的FPGA支持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設(shè)計隨著系統(tǒng)升級或者動態(tài)重新配置而改變。一些FPGA可以讓設(shè)備的一部分重新編輯而其他部分繼續(xù)正常運行。
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。
1)采用FPGA設(shè)計ASIC電路(特定用途集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。
3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。
4)FPGA是ASIC電路中設(shè)計周期最短、開發(fā)費用、風險最小的器件之一。
5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。
可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的選擇之一。
FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此,工作時需要對片內(nèi)的RAM進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。
加電時,F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進入工作狀態(tài)。掉電后,F(xiàn)PGA恢復成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。
FPGA有多種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行PROM編程FPGA;外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對其編程。
如何實現(xiàn)快速的時序收斂、降低功耗和成本、優(yōu)化時鐘管理并降低FPGA與PCB并行設(shè)計的復雜性等問題,一直是采用FPGA的系統(tǒng)設(shè)計工程師需要考慮的關(guān)鍵問題。如今,隨著FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發(fā)展,系統(tǒng)設(shè)計工程師在從這些優(yōu)異性能獲益的同時,不得不面對由于FPGA前所未有的性能和能力水平而帶來的新的設(shè)計挑戰(zhàn)。
例如,F(xiàn)PGA廠商Xilinx最近推出的Virtex-5系列采用65nm工藝,可提供高達33萬個邏輯單元、1,200個I/O和大量硬IP塊。超大容量和密度使復雜的布線變得更加不可預測,由此帶來更嚴重的時序收斂問題。此外,針對不同應用而集成的更多數(shù)量的邏輯功能、DSP、嵌入式處理和接口模塊,也讓時鐘管理和電壓分配問題變得更加困難。
幸運地是,F(xiàn)PGA廠商、EDA工具供應商正在通力合作解決65nm FPGA獨特的設(shè)計挑戰(zhàn)。不久以前,Synplicity與Xilinx宣布成立超大容量時序收斂聯(lián)合工作小組,旨在地幫助系統(tǒng)設(shè)計工程師以更快、更高效的方式應用65nm FPGA器件。設(shè)計軟件供應商Magma推出的綜合工具Blast FPGA能幫助建立優(yōu)化的布局,加快時序的收斂。
最近FPGA的配置方式已經(jīng)多元化!
微處理器是為通用而設(shè)計的,必須按照時鐘的節(jié)拍,逐條取指、譯指、執(zhí)行,大多用于低速、實時性要求不高的場合,例如石油探測;FPGA 應用場合相當多,特別是在高速的、實時性強并對時間要求相當苛刻的場合,有很強的數(shù)據(jù)處理能力,例如無線通信、雷達探測等;是FPGA的一些典型應用:
典型應用一:接口邏輯控制——提供前所未有的靈活性
1、PCI、PCI Express、PS/2、USB等接口控制器
2、SDRAM、DDR、SDRAM、QDR、SRAM、NAND Flash、NOR Flash等接口控制器
3、電平轉(zhuǎn)換,LVDS、TTL、COMS、SSTL等
典型應用二:高速的數(shù)字信號處理——提供前所未有的計算能力
1、無線通信領(lǐng)域,如軟件無線電(SDR);
2、視頻圖像處理領(lǐng)域,如高清晰數(shù)字電視(HDTV);
3、軍事和航空航天領(lǐng)域,如雷達聲納、安全通信。
其他應用領(lǐng)域
1、汽車,如網(wǎng)關(guān)控制器、車用PC、遠程信息處理系統(tǒng)等;
2、消費產(chǎn)品,如顯示器/投影儀、數(shù)字電視和機頂盒、家庭網(wǎng)絡(luò)等;
3、醫(yī)療,如電療、血液分析儀、醫(yī)療檢測設(shè)備等
4、通信設(shè)備 ,如蜂窩基礎(chǔ)設(shè)施、寬帶無線通信、軟件無線電等
5、測試與測量,如通信測試與監(jiān)測、半導體、自動測試設(shè)備、通用儀表等。
不管你是一名邏輯設(shè)計師、硬件工程師或系統(tǒng)工程師,甚或擁有所有這些頭銜,只要你在任何一種高速和多協(xié)議的復雜系統(tǒng)中使用了FPGA,你就很可能需要努力解決好器件配置、電源管理、IP集成、信號完整性和其他的一些關(guān)鍵設(shè)計問題。不過,你不必獨自面對這些挑戰(zhàn),因為在當前業(yè)內(nèi)的FPGA公司里工作的應用工程師每天都會面對這些問題,而且他們已經(jīng)提出了一些將令你的設(shè)計工作變得更輕松的設(shè)計指導原則和解決方案。
維庫電子通,電子知識,一查百通!
已收錄詞條153979個