現場可編程邏輯門陣列

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

目錄

什麼是現場可編程邏輯門陣列

  FPGA(Field-Programmable Gate Array),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又剋服了原有可編程器件門電路數有限的缺點。

現場可編程邏輯門陣列的背景

  以硬體描述語言(Verilog或VHDL)所完成的電路設計,可以經過簡單的綜合與佈局,快速的燒錄至 FPGA 上進行測試,是現代 IC設計驗證的技術主流。這些可編輯元件可以被用來實現一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更複雜一些的組合功能比如解碼器或數學方程式。在大多數的FPGA裡面,這些可編輯的元件里也包含記憶元件例如觸發器(Flip-flop)或者其他更加完整的記憶塊。

  系統設計師可以根據需要通過可編輯的連接把FPGA內部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個晶元里。一個出廠後的成品FPGA的邏輯塊和連接可以按照設計者而改變,所以FPGA可以完成所需要的邏輯功能。

  FPGA一般來說比ASIC(專用集成電路)的速度要慢,實現同樣的功能比ASIC電路面積要大。但是他們也有很多的優點比如可以快速成品,可以被修改來改正程式中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA。因為這些晶元有比較差的可編輯能力,所以這些設計的開發是在普通的FPGA上完成的,然後將設計轉移到一個類似於ASIC的晶元上。另外一種方法是用CPLD(Complex Programmable Logic Device,複雜可編程邏輯器件)。

現場可編程邏輯門陣列的發展歷程

  每一個最後看來很成功的新事物,從誕生到發展壯大都不可避免地經歷過艱難的歷程,並可能成為被研究的案例,FPGA也不例外。

  1985年,當全球首款FPGA產品——XC2064誕生時,註定要使用大量晶元的PC機剛剛走出矽谷的實驗室進入商業市場,網際網路只是科學家和政府機構通信的神秘鏈路,無線電話笨重得像磚頭,日後大紅大紫的Bill Gates正在為生計而奮鬥,創新的可編程產品似乎並沒有什麼用武之地。

  事實也的確如此。最初,FPGA只是用於膠合邏輯(Glue Logic),從膠合邏輯到演算法邏輯再到數字信號處理、高速串列收發器和嵌入式處理器,FPGA真正地從配角變成了主角。在以閃電般速度發展的半導體產業里,22年足夠改變一切。“在未來十年內每一個電子設備都將有一個可編程邏輯晶元”的理想正成為現實。

  1985年,Xilinx公司推出的全球第一款FPGA產品XC2064怎麼看都像是一隻“醜小鴨”——採用2μm工藝,包含64個邏輯模塊和85000個晶體管,門數量不超過1000個。22年後的2007年,FPGA業界雙雄Xilinx和Altera公司紛紛推出了採用最新65nm工藝的FPGA產品,其門數量已經達到千萬級,晶體管個數更是超過10億個。一路走來,FPGA在不斷地緊跟並推動著半導體工藝的進步——2001年採用150nm工藝、2002年採用130nm工藝,2003年採用90nm工藝,2006年採用65nm工藝。

  在上世紀80年代中期,可編程器件從任何意義上來講都不是當時的主流,雖然其並不是一個新的概念。可編程邏輯陣列(PLA)在1970年左右就出現了,但是一直被認為速度慢,難以使用。1980年之後,可配置可編程邏輯陣列(PLA)開始出現,可以使用原始的軟體工具提供有限的觸發器和查找表實現能力。PAL被視為小規模/中等規模集成膠合邏輯的替代選擇被逐步接受,但是當時可編程能力對於大多數人來說仍然是陌生和具有風險的。20世紀80年代在“megaPAL”方面的嘗試使這一情況更加嚴重,因為“megaPAL”在功耗和工藝擴展方面有嚴重的缺陷,限制了它的廣泛應用。

  然而,Xilinx公司創始人之一——FPGA的發明者Ross Freeman認為,對於許多應用來說,如果實施得當的話,靈活性和可定製能力都是具有吸引力的特性。也許最初只能用於原型設計,但是未來可能代替更廣泛意義上的定製晶元。事實上,正如Xilinx公司亞太區營銷董事鄭馨南所言,隨著技術的不斷發展,FPGA由配角到主角,很多系統設計都是以FPGA為中心來設計的。FPGA走過了從初期開發應用到限量生產應用再到大批量生產應用的發展歷程。從技術上來說,最初只是邏輯器件,現在強調平臺概念,加入數字信號處理、嵌入式處理、高速串列和其他高端技術,從而被應用到更多的領域。“90年代以來的20年間,PLD產品的終極目標一直瞄準速度、成本和密度三個指標,即構建容量更大、速度更快和價格更低的FPGA,讓客戶能直接享用。”Actel司總裁兼首席執行官JohnEast如此總結可編程邏輯產業的發展脈絡。

  當1991年Xilinx公司推出其第三代FPGA產品——XC4000系列時,人們開始認真考慮可編程技術了。XC4003包含44萬個晶體管,採用0.7μm工藝,FPGA開始被製造商認為是可以用於製造工藝開發測試過程的良好工具。事實證明,FPGA可為製造工業提供優異的測試能力,FPGA開始用來代替原先存儲器所扮演的用來驗證每一代新工藝的角色。也許從那時起,向最新製程半導體工藝的轉變就已經不可阻擋了。最新工藝的採用為FPGA產業的發展提供了機遇。

  Actel公司相信,Flash將繼續成為FPGA產業中重要的一個增長領域。Flash技術有其獨特之處,能將非易失性和可重編程性集於單晶元解決方案中,因此能提供高成本效益,而且處於有利的位置以搶占龐大的市場份額。Actel以Flash技術為基礎的低功耗IGLOO系列、低成本的ProASIC3系列和混合信號Fusion FPGA將因具備Flash的固有優勢而繼續引起全球廣泛的興趣和註意。

  Altera公司估計可編程邏輯器件市場在2006年的規模大概為37億美元,Xilinx公司的估計更為樂觀一些,為50億美元。雖然兩家公司合計占據該市場90%的市場份額,但是作為業界老大的Xilinx公司在2006年的營收不過18.4億美元,Altera公司則為12.9億美元。PLD市場在2000年達到41億美元,其後兩年出現了下滑,2002年大約為23億美元。雖然從2002年到2006年,PLD市場每年都在增長,複合平均增長率接近13%,但是PLD終究是一個規模較小的市場。而Xilinx公司也敏銳地意識到,FPGA產業在經歷了過去幾年的快速成長後將放慢前進的腳步,那麼,未來FPGA產業的出路在哪裡?

  Altera公司總裁兼首席執行官John Daane認為,FPGA及PLD產業發展的最大機遇是替代ASIC和專用標準產品(ASSP),主要由ASIC和ASSP構成的數字邏輯市場規模大約為350億美元。由於用戶可以迅速對PLD進行編程,按照需求實現特殊功能,與ASIC和ASSP相比,PLD在靈活性、開發成本以及產品及時面市方面更具優勢。然而,PLD通常比這些替代方案有更高的成本結構。因此,PLD更適合對產品及時面市有較大需求的應用,以及產量較低的最終應用。PLD技術和半導體製造技術的進步,從總體上縮小了PLD和固定晶元方案的相對成本差,在以前由ASIC和ASSP占據的市場上,Altera公司已經成功地提高了PLD的銷售份額,並且今後將繼續這一趨勢。“FPGA和PLD供應商的關鍵目標不是簡單地增加更多的原型客戶,而是向大批量應用最終市場和客戶滲透。”John Daane為FPGA產業指明瞭方向。

現場可編程邏輯門陣列的工作原理

  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模塊。FPGA的邏輯是通過向內部靜態存儲單元載入編程數據來實現的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯接方式,並最終決定了FPGA所能實現的功能,FPGA允許無限次的編程。

電源類型

  FPGA電源要求輸出電壓範圍從1.2V到5V,輸出電流範圍從數十毫安到數安培。可用三種電源:低壓差(LDO)線性穩壓器、開關式DC-DC穩壓器和開關式電源模塊。最終選擇何種電源取決於系統、系統預算和上市時間要求。

  如果電路板空間是首要考慮因素,低輸出雜訊十分重要,或者系統要求對輸入電壓變化和負載瞬變做出快速響應,則應使用LDO穩壓器。LDO功效比較低(因為是線性穩壓器),只能提供中低輸出電流。輸入電容通常可以降低LDO輸入端的電感和雜訊。LDO輸出端也需要電容,用來處理系統瞬變,並保持系統穩定性。也可以使用雙輸出LDO,同時為VCCINT和VCCO供電。

  如果在設計中效率至關重要,並且系統要求高輸出電流,則開關式穩壓器占優勢。開關電源的功效比高於LDO,但其開關電路會增加輸出雜訊。與LDO不同,開關式穩壓器需利用電感來實現DC-DC轉換。

要求

  為確保正確上電,內核電壓VCCINT的緩升時間必須在製造商規定的範圍內。對於一些FPGA,由於VCCINT會在晶體管閾值導通前停留更多時間,因此過長的緩升時間可能會導致啟動電流持續較長時間。如果電源向FPGA提供大電流,則較長的上電緩升時間會引起熱應力。ADI公司的DC-DC穩壓器提供可調軟啟動,緩升時間可以通過外部電容進行控制。緩升時間典型值在20ms至100ms範圍內。

  許多FPGA沒有時序控制要求,因此VCCINT、VCCO和VCCAUX可以同時上電。如果這一點無法實現,上電電流可以稍高。時序要求依具體FPGA而異。對於一些FPGA,必須同時給VCCINT和VCCO供電。對於另一些FPGA,這些電源可按任何順序接通。多數情況下,先給VCCINT後給VCCO供電是一種較好的做法。

  當VCCINT在0.6V至0.8V範圍內時,某些FPGA系列會產生上電涌入電流。在此期間,電源轉換器持續供電。這種應用中,因為器件需通過降低輸出電壓來限制電流,所以不推薦使用返送電流限制。但在限流電源解決方案中,一旦限流電源所供電的電路電流超過設定的額定電流,電源就會將該電流限制在額定值以下。

配電結構

  對於高速、高密度FPGA器件,保持良好的信號完整性對於實現可靠、可重覆的設計十分關鍵。適當的電源旁路和去耦可以改善整體信號完整性。如果去耦不充分,邏輯轉換將會影響電源和地電壓,導致器件工作不正常。此外,採用分散式電源結構也是一種主要解決方案,給FPGA供電時可以將電源電壓偏移降至最低。

  在傳統電源結構中,AC/DC或DC/DC轉換器位於一個地方,並提供多 個輸出電壓,在整個系統內分配。這種設計稱為集中式電源結構(CPA),見左圖。以高電流分配低電壓時,銅線或PCB軌道會產生嚴重的電阻損耗,CPA就會發生問題。

  CPA的替代方案是分散式電源結構(DPA),見左圖。採用DPA時,整個系統內僅分配一個半穩壓的DC電壓,各DC/DC轉換器(線性或開關式)與各負載相鄰。DPA中,DC/DC轉換器與負載(例如FPGA)之間的距離近得多,因而線路電阻和配線電感引起的電壓下降得以減小。這種為負載提供本地電源的方法稱為負載點(POL)。

晶元結構

  主流的FPGA仍是基於查找表技術的,已經遠遠超出了先前版本的基本性能,並且整合了常用功能(如RAM、時鐘管理和DSP)的硬核(ASIC型)模塊。如圖1-1所示(註:圖1-1只是一個示意圖,實際上每一個系列的FPGA都有其相應的內部結構),FPGA晶元主 要由7部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時鐘管理、嵌入塊式RAM、豐富的佈線資源、內嵌的底層功能單元和內嵌專用硬體模塊。

FPGA晶元的內部結構

  每個模塊的功能如下:

  1. 可編程輸入輸出單元(IOB)

  可編程輸入/輸出單元簡稱I/O單元,是晶元與外界電路的介面部分,完成不同電氣特性下對輸入/輸出信號的驅動與匹配要求,其示意結構如圖1-2所示。FPGA內的I/O按組分類,每組都能夠獨立地支持不同的I/O標準。通過軟體的靈活配置,可適配不同的電氣標準與I/O物理特性,可以調整驅動電流的大小,可以改變上、下拉電阻。I/O口的頻率也越來越高,一些高端的FPGA通過DDR寄存器技術可以支持高達2Gbps的數據速率。

  外部輸入信號可以通過IOB模塊的存儲單元輸入到FPGA的內部,也可以直接輸入FPGA 內部。當外部輸入信號經過IOB模塊的存儲單元輸入到FPGA內部時,其保持時間(Hold Time)的要求可以降低,通常預設為0。

  為了便於管理和適應多種電器標準,FPGA的IOB被劃分為若幹個組(bank),每個bank的介面標準由其介面電壓VCCO決定,一個bank只能有 一種VCCO,但不同bank的VCCO可以不同。只有相同電氣標準的埠才能連接在一起,VCCO電壓相同是介面標準的基本條件。

  2. 可配置邏輯塊(CLB)

  CLB是FPGA內的基本邏輯單元。CLB的實際數量和特性會依器件的不同而不同,但是每個CLB都包含一個可配置開關矩陣,此矩陣由4或6個輸入、一些選型電路(多路復用器等)和觸發器組成。開關矩陣是高度靈活的,可以對其進行配置以便處理組合邏輯、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多個(一般為4個或2個)相同的Slice和附加邏輯構成。每個CLB模塊不僅可以用於實現組合邏輯、時序邏輯,還可以配置為分散式RAM和分散式ROM。

  Slice是Xilinx公司定義的基本邏輯單位,其內部結構如圖1-4所示,一個Slice由兩個4輸入的函數、進位邏輯、算術邏輯、存儲邏輯和函數復用器組成。算術邏輯包括一個異或門(XORG)和一個專用與門(MULTAND),一個異或門可以使一個Slice實現 2bit全加操作,專用與門用於提高乘法器的效率;進位邏輯由專用進位信號和函數復用器(MUXC)組成,用於實現快速的算術加減法操作;4輸入函數發生 器用於實現4輸入LUT、分散式RAM或16比特移位寄存器(Virtex-5系列晶元的Slice中的兩個輸入函數為6輸入,可以實現6輸入LUT或 64比特移位寄存器);進位邏輯包括兩條快速進位鏈,用於提高CLB模塊的處理速度。

  3. 數字時鐘管理模塊(DCM

  業內大多數FPGA均提供數字時鐘管理(Xilinx的全部FPGA均具有這種特性)。Xilinx推出最先進的FPGA提供數字時鐘管理和相位環路鎖定。相位環路鎖定能夠提供精確的時鐘綜合,且能夠降低抖動,並實現過濾功能。

  4.嵌入式塊RAM(BRAM)

  大多數FPGA都具有內嵌的塊RAM,這大大拓展了FPGA的應用範圍和靈活性。塊RAM可被配置為單RAM、雙埠RAM、內容地址存儲器 (CAM)以及FIFO等常用存儲結構。RAM、FIFO是比較普及的概念,在此就不冗述。CAM存儲器在其內部的每個存儲單元中都有一個比較邏輯,寫入 CAM中的數據會和內部的每一個數據進行比較,並返回與埠數據相同的所有數據的地址,因而在路由的地址交換器中有廣泛的應用。除了塊RAM,還可以將 FPGA中的LUT靈活地配置成RAM、ROM和FIFO等結構。在實際應用中,晶元內部塊RAM的數量也是選擇晶元的一個重要因素。

  單片塊RAM的容量為18k比特,即位寬為18比特、深度為1024,可以根據需要改變其位寬和深度,但要滿足兩個原則:首先,修改後的容量(位寬 深度)不能大於18k比特;其次,位寬最大不能超過36比特。當然,可以將多片塊RAM級聯起來形成更大的RAM,此時只受限於晶元內塊RAM的數量,而不再受上面兩條原則約束。

  5. 豐富的佈線資源

  佈線資源連通FPGA內部的所有單元,而連線的長度和工藝決定著信號在連線上的驅動能力和傳輸速度。FPGA晶元內部有著豐富的佈線資源,根據工藝、長度、寬度和分佈位置的不同而劃分為4類不同的類別。第一類是全局佈線資源,用於晶元內部全局時鐘和全局複位/置位的佈線;第二類是長線資源,用以完成晶元 Bank間的高速信號和第二全局時鐘信號的佈線;第三類是短線資源,用於完成基本邏輯單元之間的邏輯互連和佈線;第四類是分散式的佈線資源,用於專有時鐘、複位等控制信號線。

  在實際中設計者不需要直接選擇佈線資源,佈局佈線器可自動地根據輸入邏輯網表的拓撲結構和約束條件選擇佈線資源來連通各個模塊單元。從本質上講,佈線資源的使用方法和設計的結果有密切、直接的關係。

  6. 底層內嵌功能單元

  內嵌功能模塊主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSPCPU等軟處理核(SoftCore)。越來越豐富的內嵌功能單元,使得單片FPGA成為了系統級的設計工具,使其具備了軟硬體聯合設計的能力,逐步向SOC平臺過渡。

  DLL和PLL具有類似的功能,可以完成時鐘高精度、低抖動的倍頻和分頻,以及占空比調整和移相等功能。Xilinx公司生產的晶元上集成了 DLL,Altera公司的晶元集成了PLL,Lattice公司的新型晶元上同時集成了PLL和DLL。PLL 和DLL可以通過IP核生成的工具方便地進行管理和配置。

  7. 內嵌專用硬核

  內嵌專用硬核是相對底層嵌入的軟核而言的,指FPGA處理能力強大的硬核(Hard Core),等效於ASIC電路。為了提高FPGA性能,晶元生產商在晶元內部集成了一些專用的硬核。例如:為了提高FPGA的乘法速度,主流的FPGA 中都集成了專用乘法器;為了適用通信匯流排與介面標準,很多高端的FPGA內部都集成了串並收發器(SERDES),可以達到數十Gbps的收發速度。

  Xilinx公司的高端產品不僅集成了Power PC系列CPU,還內嵌了DSP Core模塊,其相應的系統級設計工具是EDK和Platform Studio,並依此提出了片上系統System on Chip)的概念。通過PowerPC、Microblaze、Picoblaze等平臺,能夠開發標準的DSP處理器及其相關應用,達到SOC的開發目的。

基本特點

  1)採用FPGA設計ASIC電路(專用集成電路),用戶不需要投片生產,就能得到合用的晶元。

  2)FPGA可做其它全定製或半定製ASIC電路的中試樣片。

  3)FPGA內部有豐富的觸發器和I/O引腳。

  4)FPGA是ASIC電路中設計周期最短、開發費用最低、風險最小的器件之一。

  5) FPGA採用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容。

  可以說,FPGA晶元是小批量系統提高系統集成度、可靠性的最佳選擇之一。

  FPGA是由存放在片內RAM中的程式來設置其工作狀態的,因此,工作時需要對片內的RAM進行編程。用戶可以根據不同的配置模式,採用不同的編程方式。

  加電時,FPGA晶元將EPROM中數據讀入片內編程RAM中,配置完成後,FPGA進入工作狀態。掉電後,FPGA恢覆成白片,內部邏輯關係消失,因此,FPGA能夠反覆使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片FPGA,不同的編程數據,可以產生不同的電路功能。因此,FPGA的使用非常靈活。

現場可編程邏輯門陣列的配置模式

  FPGA有多種配置模式:並行主模式為一片FPGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片FPGA;串列模式可以採用串列PROM編程FPGA;外設模式可以將FPGA作為微處理器的外設,由微處理器對其編程。

  如何實現快速的時序收斂、降低功耗和成本、優化時鐘管理並降低FPGA與PCB並行設計的複雜性等問題,一直是採用FPGA的系統設計工程師需要考慮的關鍵問題。如今,隨著FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發展,系統設計工程師在從這些優異性能獲益的同時,不得不面對由於FPGA前所未有的性能和能力水平而帶來的新的設計挑戰。

  例如,領先FPGA廠商Xilinx推出的Virtex-5系列採用65nm工藝,可提供高達33萬個邏輯單元、1,200個I/O和大量硬IP塊。超大容量和密度使複雜的佈線變得更加不可預測,由此帶來更嚴重的時序收斂問題。此外,針對不同應用而集成的更多數量的邏輯功能、DSP、嵌入式處理和介面模塊,也讓時鐘管理和電壓分配問題變得更加困難。

  幸運地是,FPGA廠商、EDA工具供應商正在通力合作解決65nm FPGA獨特的設計挑戰。不久以前,Synplicity與Xilinx宣佈成立超大容量時序收斂聯合工作小組,旨在最大程度地幫助系統設計工程師以更快、更高效的方式應用65nm FPGA器件。設計軟體供應商Magma推出的綜合工具Blast FPGA能幫助建立優化的佈局,加快時序的收斂。

  FPGA的配置方式已經多元化!

本條目對我有幫助2
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

nonameh.

評論(共0條)

提示:評論內容為網友針對條目"現場可編程邏輯門陣列"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

闽公网安备 35020302032707号