可編程邏輯器件主要包括FPGA和CPLDFPGA是Field Programmable Gate Array縮寫CPLD是Complex Promrammable Logic Device的縮寫
從可編程邏輯器件的發展歷史上來講CPLD一般是指采用乘積相結構的基於EEPROM的器件所以具有非揮發的不需要外部配置ROM具有保密性和有限次編程次數(根據不同的結構從次到萬次不等)等特點適合用在膠合邏輯(glue logic如DSP芯片外圍的譯碼邏輯)IO擴展IO電平轉換FPGA芯片配置等應用場合如Altera的MAX和MAX系列芯片Xilinx的XC和CoolRunner/II系列芯片Lattice的ispMACH/Z系列芯片都是CPLD器件容量從宏單元到宏單元不等
FPGA主要是指采用四輸入查找表(LUT)的基於SRAM的器件因為SRAM是揮發的掉電丟失數據所以FPGA需要外部配置ROM上電的時候從外部的ROM把FPGA的配置數據導入到FPGA芯片內部後工作具有SRAM的FPGA采用標准的CMOS制造工藝可以隨著最新的工藝而更新還代給用戶帶來了實惠衡量FPGA容量的一個基本指標是邏輯單元(Logic cell或者Logic element)由一個可編程得LUT和一個可編程的DFF組成LUT完成組合邏輯功能
而DFF用來實現時序功能FPGA的容量從幾千的邏輯單元到幾十萬的邏輯單元不等如Altera的Cyclone/II/III和Stratix/II/III系列芯片Xilinx Spartan/E/A/AN和Virtex/系列芯片都是FPGA器件
隨著芯片技術的發展CPLD和FPGA的概念已經模糊在一起如Altera和Lattice公司把小容量(小於K左右邏輯單元)非揮發的可編程器件歸到CPLD裡如Altera的MAXII系列和Lattice的MACH XO系列芯片把基於SRAM的FPGA和FLASH的儲存單元做到一個芯片裡面以及跟傳統的CPLD不一樣了
總之我們可以簡單的區分FPGA和CPLDCPLD小容量(<K左右LE)的非揮發的可編程器件其它的可編程器件都可歸到FPGA
系統的比較
盡管FPGA和CPLD都是可編程ASIC器件有很多共同特點但由於CPLD和FPGA結構上的差異具有各自的特點:
①CPLD更適合完成各種算法和組合邏輯FP GA更適合於完成時序邏輯換句話說FPGA更適合於觸發器豐富的結構而CPLD更適合於觸發器有限而乘積項豐富的結構
②CPLD的連續式布線結構決定了它的時序延遲是均勻的和可預測的而FPGA的分段式布線結構決定了其延遲的不可預測性
③在編程上FPGA比CPLD具有更大的靈活性CPLD通過修改具有固定內連電路的邏輯功能來編程FPGA主要通過改變內部連線的布線來編程FP GA可在邏輯門下編程而CPLD是在邏輯塊下編程
④FPGA的集成度比CPLD高具有更復雜的布線結構和邏輯實現
⑤CPLD比FPGA使用起來更方便CPLD的編程采用EPROM或FASTFLASH技術無需外部存儲器芯片使用簡單而FPGA的編程信息需存放在外部存儲器上使用方法復雜
⑥CPLD的速度比FPGA快並且具有較大的時間可預測性這是由於FPGA是門級編程並且CLB之間采用分布式互聯而CPLD是邏輯塊級編程並且其邏輯塊之間的互聯是集總式的
⑦在編程方式上CPLD主要是基於EPROM或FLASH存儲器編程編程次數可達萬次優點是系統斷電時編程信息也不丟失CPLD又可分為在編程器上編程和在系統編程兩類FPGA大部分是基於SRAM編程編程信息在系統斷電時丟失每次上電時需從器件外部將編程數據重新寫入SRAM中其優點是可以編程任意次可在工作中快速編程從而實現板級和系統級的動態配置
⑧CPLD保密性好FPGA保密性差
⑨一般情況下CPLD的功耗要比FPGA大且集成度越高越明顯
隨著復雜可編程邏輯器件(CPLD)密度的提高數字器件設計人員在進行大型設計時既靈活又容易而且產品可以很快進入市場許多設計人員已經感受到CPLD容易使用時序可預測和速度高等優點然而在過去由於受到CPLD密度的限制他們只好轉向FPGA和ASIC現在設計人員可以體會到密度高達數十萬門的CPLD所帶來的好處
CPLD結構在一個邏輯路徑上采用至個乘積項因而大型復雜設計的運行速度可以預測因此原有設計的運行可以預測也很可靠而且修改設計也很容易CPLD在本質上很靈活時序簡單路由性能極好用戶可以改變他們的設計同時保持引腳輸出不變與FPGA相比CPLD的I/O更多尺寸更小
如今通信系統使用很多標准必須根據客戶的需要配置設備以支持不同的標准CPLD可讓設備做出相應的調整以支持多種協議並隨著標准和協議的演變而改變功能這為系統設計人員帶來很大的方便因為在標准尚未完全成熟之前他們就可以著手進行硬件設計然後再修改代碼以滿足最終標准的要求CPLD的速度和延遲特性比純軟件方案更好它的NRE費用低於ASIC更靈活產品也可以更快入市CPLD可編程方案的優點如下
●邏輯和存儲器資源豐富(Cypress DeltaK的RAM超過 Kb)
●帶冗余路由資源的靈活時序模型|
●改變引腳輸出很靈活
●可以裝在系統上後重新編程
●I/O數目多
●具有可保證性能的集成存儲器控制邏輯
●提供單片CPLD和可編程PHY方案
由於有這些優點設計建模成本低可在設計過程的任一階段添加設計或改變引腳輸出可以很快上市
CPLD的結構
CPLD是屬於粗粒結構的可編程邏輯器件它具有豐富的邏輯資源(即邏輯門與寄存器的比例高)和高度靈活的路由資源CPLD的路由是連接在一起的而FPGA的路由是分割開的FPGA可能更靈活但包括很多跳線因此速度較CPLD慢
CPLD以群陣列(array of clusters)的形式排列由水平和垂直路由通道連接起來這些路由通道把信號送到器件的引腳上或者傳進來並且把CPLD內部的邏輯群連接起來
CPLD之所以稱作粗粒是因為與路由數量相比邏輯群要大得到CPLD的邏輯群比FPGA的基本單元大得多因此FPGA是細粒的
CPLD的功能塊
CPLD最基本的單元是宏單元一個宏單元包含一個寄存器(使用多達個乘積項作為其輸入)及其它有用特性
因為每個宏單元用了個乘積項因此設計人員可部署大量的組合邏輯而不用增加額外的路徑這就是為何CPLD被認為是邏輯豐富型的宏單元以邏輯模塊的形式排列(LB)每個邏輯模塊由個宏單元組成宏單元執行一個AND操作然後一個OR操作以實現組合邏輯
每個邏輯群有個邏輯模塊所有邏輯群都連接到同一個可編程互聯矩陣
每個群還包含兩個單端口邏輯群存儲器模塊和一個多端口通道存儲器模塊前者每模塊有b存儲器後者包含b專用通信存儲器且可配置為單端口多端口或帶專用控制邏輯的FIFO
CPLD有什麽好處?
I/O數量多 ?
CPLD的好處之一是在給定的器件密度上可提供更多的I/O數有時甚至高達%
時序模型簡單
CPLD優於其它可編程結構之處在於它具有簡單且可預測的時序模型這種簡單的時序模型主要應歸功於CPLD的粗粒度特性
CPLD可在給定的時間內提供較寬的相等狀態而與路由無關這一能力是設計成功的關鍵不但可加速初始設計工作而且可加快設計調試過程
粗粒CPLD結構的優點
CPLD是粗粒結構這意味著進出器件的路徑經過較少的開關相應地延遲也小因此與等效的FPGA相比CPLD可工作在更高的頻率具有更好的性能
CPLD的另一個好處是其軟件編譯快因為其易於路由的結構使得布放設計任務更加容易執行
細粒FPGA結構的優點
FPGA是細粒結構這意味著每個單元間存在細粒延遲如果將少量的邏輯緊密排列在一起FPGA的速度相當快然而隨著設計密度的增加信號不得不通過許多開關路由延遲也快速增加從而削弱了整體性能CPLD的粗粒結構卻能很好地適應這一設計布局的改變
靈活的輸出引腳
CPLD的粗粒結構和時序特性可預測因此設計人員在設計流程的後期仍可以改變輸出引腳而時序仍保持不變
為什麼CPLD和FPGA需要不同的邏輯設計技巧?
FPGA是細粒器件其基本單元和路由結構都比CPLD的小FPGA是寄存器豐富型的(即其寄存器與邏輯門的比例高)而CPLD正好相反它是邏輯豐富型的
很多設計人員偏愛CPLD是因為它簡單易用和高速的優點CPLD更適合邏輯密集型應用如狀態機和地址解碼器邏輯等而FPGA則更適用於CPU和DSP等寄存器密集型設計
新的CPLD封裝
CPLD有多種密度和封裝類型包括單芯片自引導方案自引導方案在單個封裝內集成了FLASH存儲器和CPLD無須外部引導單元從而可降低設計復雜性並節省板空間在給定的封裝尺寸內有更高的器件密度共享引腳輸出這就為設計人員提供了放大設計的便利而無須更改板上的引腳輸出
CPLD的功耗
與同樣密度的FPGA相比CPLD的待機功耗更低
CPLD FPGA (待機電流(在Vcc 為V時))
K μA mA
K μA mA
K mA mA
CPLD特別適合那些要求低功耗和低溫度的電池供電應用像手持設備
許多設計人員都熟悉傳統的PLD並喜歡這種結構所固有的靈活性和易用性CPLD為ASIC和FPGA設計人員提供了一種很好的替代方案可讓他們以更簡單方便易用的結構實現其設計CPLD現已達到數十萬門的密度並可提供當今通信設計所需的高性能大於萬門的設計仍需ASIC和FPGA但對於小型設計CPLD不失為一個高性價比的替代方案
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個新概念內部包括可配置邏輯模塊CLB(Configurable Logic Block)輸出輸入模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分FPGA的基本特點主要有
)采用FPGA設計ASIC電路用戶不需要投片生產就能得到合用的芯片 )FPGA可做其它全定制或半定制ASIC電路的中試樣片
)FPGA內部有豐富的觸發器和I/O引腳
)FPGA是ASIC電路中設計周期最短開發費用最低風險最小的器件之一
)FPGA采用高速CHMOS工藝功耗低可以與CMOSTTL電平兼容
可以說FPGA芯片是小批量系統提高系統集成度可靠性的最佳選擇之一
目前FPGA的品種很多有XILINX的XC系列TI公司的TPC系列ALTERA公司的FIEX系列等 FPGA是由存放在片內RAM中的程序來設置其工作狀態的因此工作時需要對片內的RAM進行編程用戶可以根據不同的配置模式采用不同的編程方式
加電時FPGA芯片將EPROM中數據讀入片內編程RAM中配置完成後FPGA進入工作狀態掉電後FPGA恢復成白片內部邏輯關系消失因此FPGA能夠反復使用FPGA的編程無須專用的FPGA編程器只須用通用的EPROMPROM編程器即可當需要修改FPGA功能時只需換一片EPROM即可這樣同一片FPGA不同的編程數據可以產生不同的電路功能因此FPGA的使用非常靈活
FPGA有多種配置模式並行主模式為一片FPGA加一片EPROM的方式主從模式可以支持一片PROM編程多片FPGA串行模式可以采用串行PROM編程FPGA外設模式可以將FPGA作為微處理器的外設由微處理器對其編程
From:http://tw.wingwit.com/Article/program/qrs/201311/11075.html