《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > CPLD與FPGA的用途及區(qū)別

CPLD與FPGA的用途及區(qū)別

2015-10-08
關鍵詞: CPLD FPGA

  FPGA/CPLD能做什么呢,?
  可以毫不夸張的講,,F(xiàn)PGA/CPLD能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用FPGA/CPLD來實現(xiàn),。
  FPGA/CPLD如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法,,或是硬件描述語言自由的設計一個數(shù)字系統(tǒng),。通過軟件仿真,我們可以事先驗證設計的正確性,。在PCB完成以后,,還可以利用FPGA/CPLD的在線修改能力,隨時修改設計而不必改動硬件電路,。
  使用FPGA/CPLD來開發(fā)數(shù)字電路,,可以大大縮短設計時間,減少PCB面積,,提高系統(tǒng)的可靠性,。
  FPGA/CPLD還可以做數(shù)字IC設計的前端驗證,,用這種方式可以很大程度上降低IC設計的成本。
  FPGA/CPLD的這些優(yōu)點使得FPGA/CPLD技術在90年代以后得到飛速的發(fā)展,,同時也大大推動了EDA軟件和硬件描述語言(HDL)的進步,。
  FPGA/CPLD有什么區(qū)別呢?
  1)各個廠家叫法不盡相同:
  PLD(Programmable Logic Device)是可編程邏輯器件的總稱,,早期多EEPROM工藝,,基于乘積項(Product Term)結構。
  FPGA (Field Programmable Gate Arry)是指現(xiàn)場可編程門陣列,,最早由Xilinx公司發(fā)明,。多為SRAM 工藝,基于查找表(Look Up Table)結構,要外掛配置用的EPROM,。
  Xilinx把SRAM工藝,要外掛配置用的EPROM的PLD叫FPGA,把Flash工藝(類似EEPROM工藝),乘積項結構的PLD叫CPLD;
  Altera把自己的PLD產(chǎn)品:MAX系列(EEPROM工藝),FLEX/ACEX/APEX系列(SRAM工藝)都叫作CPLD,即復雜PLD(Complex PLD),。
  由于FLEX/ACEX/APEX系列也是SRAM工藝,要外掛配置用的EPROM,用法和Xilinx的FPGA一樣,所以很多人把Altera的FELX/ACEX/APEX系列產(chǎn)品也叫做FPGA.
  2)結構上的主要區(qū)別
  邏輯塊的粒度不同
  邏輯塊指PLD 芯片中按結構劃分的功能模塊,它有相對獨立的組合邏輯陣列,塊間靠互連系統(tǒng)聯(lián)系.FPGA 中的CLB 是邏輯塊,其特點是粒度小,輸入變量為4~8 ,輸出為1~2 ,因而只是一個邏輯單元,每塊芯片中有幾十到近千個這樣的單元. CPLD中邏輯塊粒度較大,通常有數(shù)十個輸入端和一,、二十個輸出端,每塊芯片只分成幾塊. 有些集成度較低的(如ATV2500) 則干脆不分塊. 顯然,如此粗大的分塊結構使用時不如FPGA 靈活.
  邏輯之間的互連結構不同
  CPLD 的邏輯塊互連是集總式的,其特點是等延時,任意兩塊之間的延時是相等的,這種結構給設計者帶來很大方便; FPGA 的互連則是分布式的,其延時與系統(tǒng)的布局有關,
  3)應用范圍也有所不同
  邏輯系統(tǒng)通??煞謨纱箢愋?
  1、邏輯密集型: 如高速緩存控制,、DRAM 控制和DMA 控制等,它們僅需要很少的數(shù)據(jù)處理能力,但邏輯關系一般都復雜
  2,、數(shù)據(jù)密集型: 數(shù)據(jù)密集型需要大量數(shù)據(jù)處理能力,其應用多見于通訊領域.
  為了選擇合適的PLD 芯片,應從速度與性能、邏輯利用率,、使用方便性,、編程技術等方面進行考查。
  速度與性能:
  數(shù)據(jù)密集型系統(tǒng),比如,通訊中對信號進行處理的二維卷積器. 在實現(xiàn)這一算法的邏輯系統(tǒng)中,每個單元所需要的輸入端較少,但需要很多這樣的邏輯單元. 這些要求與FPGA 的結構相吻合. 因為FPGA 的粒度小,其輸入到輸出的傳輸延遲時間很短,因而能獲得高的單元速度.而控制密集型系統(tǒng)通常是輸入密集型的,邏輯復雜,CLB 的輸入端往往不夠用,需把多個CLB 串行級聯(lián)使用,同時CLB 之間的連接有可能通過多級通用PI 或長線,導致速度急劇下降. 因而實際的傳輸延遲時間要大CPLD. 比如,實現(xiàn)一個DRAM 控制器,它由四個功能塊組成:刷新狀態(tài)機,、刷新地址計數(shù)器,、刷新定時器和地址選擇開關,需要的輸入端有幾十個,顯然用CPLD 更合適.
  邏輯利用率:
  邏輯利用率是指器件中資源被利用的程度. CPLD 邏輯寄存器少,FPGA 邏輯弱而寄存器多,這正好與控制密集型系統(tǒng)與數(shù)據(jù)密集型系統(tǒng)相對應. 比如, 規(guī)模同為6000PLD 門的is2pLSI1032 有192 個寄存器;而XC4005E 有616 個寄存器. 因此從邏輯利用率角度,對于組合電路較復雜的設計,宜采用顆粒較粗的CPLD ,觸發(fā)器較多的設計,宜采用用細顆粒的FPGA.
  (3)  使用方便性: 使用方便首先要考慮性能的可預測性,在這點上CPLD 優(yōu)于FPGA. 對于CPLD ,通常只要輸入,、輸出端口數(shù),內部門和觸發(fā)器數(shù)目不超過芯片的資源并有一定裕量,總是可以實現(xiàn)的. 而FPGA ,則很難預測,因為完成設計所需的CLB 邏輯級數(shù)是無法事實確定的,只有靠多次試驗才能得到滿意的結果.
  (4)  編程技術: FPGA 編程信息存放在外部存儲器,要附加存儲器芯片,其保密性差,斷電后數(shù)據(jù)易丟失. CPLD 采用最佳的E2CMOS 技術,。
  盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點,但由于CPLD和FPGA結構上的差異,具有各自的特點:
  ①CPLD更適合完成各種算法和組合邏輯,FP GA更適合于完成時序邏輯,。換句話說,FPGA更適合于觸發(fā)器豐富的結構,而CPLD更適合于觸發(fā)器有限而乘積項豐富的結構,。
  ②CPLD的連續(xù)式布線結構決定了它的時序延遲是均勻的和可預測的,而FPGA的分段式布線結構決定了其延遲的不可預測性,。
 ?、墼诰幊躺希疲校牵帘龋茫校蹋木哂懈蟮撵`活性。CPLD通過修改具有固定內連電路的邏輯功能來編程,FPGA主要通過改變內部連線的布線來編程;FP GA可在邏輯門下編程,而CPLD是在邏輯塊下編程,。
 ?、埽疲校牵恋募啥缺龋茫校蹋母?具有更復雜的布線結構和邏輯實現(xiàn)。
 ?、荩茫校蹋谋龋疲校牵潦褂闷饋砀奖?。CPLD的編程采用E2PROM或FASTFLASH技術,無需外部存儲器芯片,使用簡單,。而FPGA的編程信息需存放在外部存儲器上,使用方法復雜。
 ?、蓿茫校蹋牡乃俣缺龋疲校牵量?并且具有較大的時間可預測性,。這是由于FPGA是門級編程,并且CLB之間采用分布式互聯(lián),而CPLD是邏輯塊級編程,并且其邏輯塊之間的互聯(lián)是集總式的。
 ?、咴诰幊谭绞缴?CPLD主要是基于E2PROM或FLASH存儲器編程,編程次數(shù)可達1萬次,優(yōu)點是系統(tǒng)斷電時編程信息也不丟失,。CPLD又可分為在編程器上編程和在系統(tǒng)編程兩類。FPGA大部分是基于SRAM編程,編程信息在系統(tǒng)斷電時丟失,每次上電時,需從器件外部將編程數(shù)據(jù)重新寫入SRAM中,。其優(yōu)點是可以編程任意次,可在工作中快速編程,從而實現(xiàn)板級和系統(tǒng)級的動態(tài)配置,。
  ⑧CPLD保密性好,FPGA保密性差,。
 ?、嵋话闱闆r下,CPLD的功耗要比FPGA大,且集成度越高越明顯。
  1.CPLD
  CPLD主要是由可編程邏輯宏單元(LMC,,Logic Macro Cell)圍繞中心的可編程互連矩陣單元組成,,其中LMC邏輯結構較復雜,并具有復雜的I/O單元互連結構,,可由用戶根據(jù)需要生成特定的電路結構,,完成一定的功能。由于 CPLD內部采用固定長度的金屬線進行各邏輯塊的互連,,所以設計的邏輯電路具有時間可預測性,,避免了分段式互連結構時序不完全預測的缺點。到90年代,, CPLD發(fā)展更為迅速,,不僅具有電擦除特性,而且出現(xiàn)了邊緣掃描及在線可編程等高級特性,。較常用的有Xilinx公司的EPLD和Altera公司的 CPLD,。
  2. FPGA
  FPGA通常包含三類可編程資源:可編程邏輯功能塊、可編程I/O塊和可編程互連,??删幊踢壿嫻δ軌K是實現(xiàn)用戶功能的基本單元,,它們通常排列成一個陣列,,散布于整個芯片;可編程I/O塊完成芯片上邏輯與外部封裝腳的接口,,常圍繞著陣列排列于芯片四周,;可編程內部互連包括各種長度的連線線段和一些可編程連接開關,它們將各個可編程邏輯塊或I/O塊連接起矗?鉤商囟üδ艿牡緶貳2煌?Ъ疑??腇PGA在可編程邏輯塊的規(guī)模,,內部互連線的結構和采用的可編程元件上存在較大的差異,。較常用的有Altera,、Xinlinx和Actel公司的FPGA。FPGA一般用于邏輯仿真,。電路設計工程師設計一個電路首先要確定線路,,然后進行軟件模擬及優(yōu)化,以確認所設計電路的功能及性能,。然而隨著電路規(guī)模的不斷增大,,工作頻率的不斷提高,將會給電路引入許多分布參數(shù)的影響,,而這些影響用軟件模擬的方法較難反映出來,,所以有必要做硬件仿真。FPGA就可以實現(xiàn)硬件仿真以做成模型機,。將軟件模擬后的線路經(jīng)一定處理后下載到FPGA,,就可容易地得到一個模型機,從該模型機,,設計者就很直觀地測試其邏輯功能及性能指標,。

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉載的所有的文章、圖片,、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容,、版權和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。