CPLD和FPGA的區別(2)

    可編程邏輯器件主要包括FPGA和CPLD,FPGA是Field Programmable Gate Array縮寫,CPLD是Complex Promrammable Logic Device的縮寫。

    從可編程邏輯器件的發展歷史上來講,CPLD一般是指採用乘積相結構的基於EEPROM的器件,所以具有非揮發的,不需要外部配置ROM,具有保密性和有限次編程次數(根據不同的結構,從100次到1萬次不等)等特點,適合用在膠合邏輯(glue logic,如DSP芯片外圍的譯碼邏輯),IO擴展,IO電平轉換,FPGA芯片配置等應用場合。如Altera的MAX7000和MAX3000系列芯片,Xilinx的XC9500和CoolRunner/II系列芯片,Lattice的ispMACH4000/Z系列芯片都是CPLD器件,容量從32宏單元到512宏單元不等。

    FPGA主要是指採用四輸入查找表(LUT4)的基於SRAM的器件,因爲SRAM是揮發的,掉電丟失數據,所以FPGA需要外部配置ROM,上電的時候,從外部的ROM把FPGA的配置數據導入到FPGA芯片內部後工作。具有SRAM的FPGA採用標準的CMOS製造工藝,可以隨着最新的工藝而更新還代,給用戶帶來了實惠;衡量FPGA容量的一個基本指標是邏輯單元(Logic cell或者Logic element),由一個可編程得LUT4和一個可編程的DFF組成,LUT4完成組合邏輯功能,

    而DFF用來實現時序功能。FPGA的容量從幾千的邏輯單元到幾十萬的邏輯單元不等。如Altera的Cyclone/II/III和Stratix/II/III系列芯片,Xilinx Spartan3/3E/3A/3AN和Virtex4/5系列芯片都是FPGA器件。

    隨着芯片技術的發展,CPLD和FPGA的概念已經模糊在一起,如Altera和Lattice公司把小容量(小於2K左右邏輯單元)非揮發的可編程器件歸到CPLD裏,如Altera的MAXII系列和Lattice的MACH XO系列芯片,把基於SRAM的FPGA和FLASH的儲存單元做到一個芯片裏面,以及跟傳統的CPLD不一樣了;

    總之,我們可以簡單的區分FPGA和CPLD,CPLD:小容量(<2K左右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的編程採用E2PROM或FASTFLASH技術,無需外部存儲器芯片,使用簡單。而FPGA的編程信息需存放在外部存儲器上,使用方法複雜。

    ⑥CPLD的速度比FPGA快,並且具有較大的時間可預測性。這是由於FPGA是門級編程,並且CLB之間採用分佈式互聯,而CPLD是邏輯塊級編程,並且其邏輯塊之間的互聯是集總式的。

    ⑦在編程方式上,CPLD主要是基於E2PROM或FLASH存儲器編程,編程次數可達1萬次,優點是系統斷電時編程信息也不丟失。CPLD又可分爲在編程器上編程和在系統編程兩類。FPGA大部分是基於SRAM編程,編程信息在系統斷電時丟失,每次上電時,需從器件外部將編程數據重新寫入SRAM中。其優點是可以編程任意次,可在工作中快速編程,從而實現板級和系統級的動態配置。

    ⑧CPLD保密性好,FPGA保密性差。

    ⑨一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。

    隨著複雜可編程邏輯器件(CPLD)密度的提高,數字器件設計人員在進行大型設計時,既靈活又容易,而且產品可以很快進入市場。許多設計人員已經感受到CPLD容易使用、時序可預測和速度高等優點,然而,在過去由於受到CPLD密度的限制,他們只好轉向FPGA和ASIC。現在,設計人員可以體會到密度高達數十萬門的CPLD所帶來的好處。

    CPLD結構在一個邏輯路徑上採用1至16個乘積項,因而大型複雜設計的運行速度可以預測。因此,原有設計的運行可以預測,也很可靠,而且修改設計也很容易。CPLD在本質上很靈活、時序簡單、路由性能極好,用戶可以改變他們的設計同時保持引腳輸出不變。與FPGA相比,CPLD的I/O更多,尺寸更小

 

    如今,通信系統使用很多標準,必須根據客戶的需要配置設備以支持不同的標準。CPLD可讓設備做出相應的調整以支持多種協議,並隨著標準和協議的演變而改變功能。這爲系統設計人員帶來很大的方便,因爲在標準尚未完全成熟之前他們就可以著手進行硬件設計,然後再修改代碼以滿足最終標準的要求。CPLD的速度和延遲特性比純軟件方案更好,它的NRE費用低於ASIC,更靈活,產品也可以更快入市。CPLD可編程方案的優點如下:

    ●邏輯和存儲器資源豐富(Cypress Delta39K200的RAM超過480 Kb)

    ●帶冗餘路由資源的靈活時序模型|

    ●改變引腳輸出很靈活

    ●可以裝在系統上後重新編程

    ●I/O數目多

    ●具有可保證性能的集成存儲器控制邏輯

    ●提供單片CPLD和可編程PHY方案

    由於有這些優點,設計建模成本低,可在設計過程的任一階段添加設計或改變引腳輸出,可以很快上市

    CPLD的結構

    CPLD是屬於粗粒結構的可編程邏輯器件。它具有豐富的邏輯資源(即邏輯門與寄存器的比例高)和高度靈活的路由資源。CPLD的路由是連接在一起的,而FPGA的路由是分割開的。FPGA可能更靈活,但包括很多跳線,因此速度較CPLD慢。

    CPLD以羣陣列(array of clusters)的形式排列,由水平和垂直路由通道連接起來。這些路由通道把信號送到器件的引腳上或者傳進來,並且把CPLD內部的邏輯羣連接起來。

    CPLD之所以稱作粗粒,是因爲,與路由數量相比,邏輯羣要大得到。CPLD的邏輯羣比FPGA的基本單元大得多,因此FPGA是細粒的。

    CPLD的功能塊

    CPLD最基本的單元是宏單元。一個宏單元包含一個寄存器(使用多達16個乘積項作爲其輸入)及其它有用特性

    因爲每個宏單元用了16個乘積項,因此設計人員可部署大量的組合邏輯而不用增加額外的路徑。這就是爲何CPLD被認爲是“邏輯豐富”型的宏單元以邏輯模塊的形式排列(LB),每個邏輯模塊由16個宏單元組成。宏單元執行一個AND操作,然後一個OR操作以實現組合邏輯。

    每個邏輯羣有8個邏輯模塊,所有邏輯羣都連接到同一個可編程互聯矩陣。

    每個羣還包含兩個單端口邏輯羣存儲器模塊和一個多端口通道存儲器模塊。前者每模塊有8,192b存儲器,後者包含4,096b專用通信存儲器且可配置爲單端口、多端口或帶專用控制邏輯的FIFO。

    CPLD有什麼好處?

    I/O數量多 ?

    CPLD的好處之一是在給定的器件密度上可提供更多的I/O數,有時甚至高達70%。

    時序模型簡單

    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的功耗6

    與同樣密度的FPGA相比,CPLD的待機功耗更低。

    CPLD FPGA (待機電流(在Vcc 為1.8V時))

    50K 300μA 200mA

    100K 600μA 200mA

    200K 1.25mA 300mA

    CPLD特別適合那些要求低功耗和低溫度的電池供電應用,像手持設備。

    許多設計人員都熟悉傳統的PLD,並喜歡這種結構所固有的靈活性和易用性。CPLD爲ASIC和FPGA設計人員提供了一種很好的替代方案,可讓他們以更簡單、方便易用的結構實現其設計。CPLD現已達到數十萬門的密度,並可提供當今通信設計所需的高性能。大於50萬門的設計仍需ASIC和FPGA,但對於小型設計,CPLD不失爲一個高性價比的替代方案。

    FPGA採用了邏輯單元陣列LCA(Logic Cell Array)這樣一個新概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內部連線(Interconnect)三個部分。FPGA的基本特點主要有:

    1)採用FPGA設計ASIC電路,用戶不需要投片生產,就能得到合用的芯片。 --2)FPGA可做其它全定製或半定製ASIC電路的中試樣片。

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

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

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

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

    目前FPGA的品種很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。    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作爲微處理器的外設,由微處理器對其編程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章