盡管FPGA" title="FPGA">FPGA和CPLD" title="CPLD">CPLD都是可編程ASIC器件,有很多共同特點,但由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點:
①CPLD更適合完成各種算法和組合邏輯,FPGA更適合于完成時序邏輯。換句話說,FPGA更適合于觸發(fā)器豐富的結(jié)構(gòu),而CPLD更適合于觸發(fā)器有限而乘積項豐富的結(jié)構(gòu),。
②CPLD的連續(xù)式布線結(jié)構(gòu)決定了它的時序延遲是均勻的和可預(yù)測的,而FPGA的分段式布線結(jié)構(gòu)決定了其延遲的不可預(yù)測性。
③在編程上FPGA比CPLD具有更大的靈活性,。CPLD通過修改具有固定內(nèi)連電路的邏輯功能來編程,FPGA主要通過改變內(nèi)部連線的布線來編程;FP GA可在邏輯門下編程,而CPLD是在邏輯塊下編程,。
④FPGA的集成度比CPLD高,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實現(xiàn)。
⑤CPLD比FPGA使用起來更方便,。CPLD的編程采用E2PROM或FASTFLASH技術(shù),無需外部存儲器芯片,使用簡單,。而FPGA的編程信息需存放在外部存儲器上,使用方法復(fù)雜。
⑥CPLD的速度比FPGA快,并且具有較大的時間可預(yù)測性,。這是由于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保密性差,。
⑨一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯,。
隨著復(fù)雜可編程邏輯器件(CPLD)密度的提高,數(shù)字器件設(shè)計人員在進行大型設(shè)計時,既靈活又容易,而且產(chǎn)品可以很快進入市場,。許多設(shè)計人員已經(jīng)感受到CPLD容易使用、時序可預(yù)測和速度高等優(yōu)點,然而,在過去由于受到CPLD密度的限制,他們只好轉(zhuǎn)向FPGA和ASIC?,F(xiàn)在,設(shè)計人員可以體會到密度高達數(shù)十萬門的CPLD所帶來的好處,。
CPLD結(jié)構(gòu)在一個邏輯路徑上采用1至16個乘積項,因而大型復(fù)雜設(shè)計的運行速度可以預(yù)測。因此,原有設(shè)計的運行可以預(yù)測,也很可靠,而且修改設(shè)計也很容易,。CPLD在本質(zhì)上很靈活,、時序簡單、路由性能極好,用戶可以改變他們的設(shè)計同時保持引腳輸出不變,。與FPGA相比,CPLD的I/O更多,尺寸更小,。
如今,通信系統(tǒng)使用很多標準,必須根據(jù)客戶的需要配置設(shè)備以支持不同的標準。CPLD可讓設(shè)備做出相應(yīng)的調(diào)整以支持多種協(xié)議,并隨著標準和協(xié)議的演變而改變功能,。這為系統(tǒng)設(shè)計人員帶來很大的方便,因為在標準尚未完全成熟之前他們就可以著手進行硬件設(shè)計,然后再修改代碼以滿足最終標準的要求,。CPLD的速度和延遲特性比純軟件方案更好,它的NRE費用低於ASIC,更靈活,產(chǎn)品也可以更快入市。CPLD可編程方案的優(yōu)點如下:
●邏輯和存儲器資源豐富(Cypress Delta39K200的RAM超過480 Kb)
●帶冗余路由資源的靈活時序模型
●改變引腳輸出很靈活
●可以裝在系統(tǒng)上后重新編程
●I/O數(shù)目多
●具有可保證性能的集成存儲器控制邏輯
●提供單片CPLD和可編程PHY方案
由于有這些優(yōu)點,設(shè)計建模成本低,可在設(shè)計過程的任一階段添加設(shè)計或改變引腳輸出,可以很快上市
CPLD的結(jié)構(gòu)
CPLD是屬於粗粒結(jié)構(gòu)的可編程邏輯器件,。它具有豐富的邏輯資源(即邏輯門與寄存器的比例高)和高度靈活的路由資源,。CPLD的路由是連接在一起的,而FPGA的路由是分割開的。FPGA可能更靈活,但包括很多跳線,因此速度較CPLD慢,。
CPLD以群陣列(array of clusters)的形式排列,由水平和垂直路由通道連接起來,。這些路由通道把信號送到器件的引腳上或者傳進來,并且把CPLD內(nèi)部的邏輯群連接起來。
CPLD之所以稱作粗粒,是因為,與路由數(shù)量相比,邏輯群要大得到,。CPLD的邏輯群比FPGA的基本單元大得多,因此FPGA是細粒的,。
CPLD的功能塊
CPLD最基本的單元是宏單元。一個宏單元包含一個寄存器(使用多達16個乘積項作為其輸入)及其它有用特性,。
因為每個宏單元用了16個乘積項,因此設(shè)計人員可部署大量的組合邏輯而不用增加額外的路徑,。這就是為何CPLD被認為是“邏輯豐富”型的。
宏單元以邏輯模塊的形式排列(LB),每個邏輯模塊由16個宏單元組成,。宏單元執(zhí)行一個AND操作,然后一個OR操作以實現(xiàn)組合邏輯,。
每個邏輯群有8個邏輯模塊,所有邏輯群都連接到同一個可編程互聯(lián)矩陣。
每個群還包含兩個單端口邏輯群存儲器模塊和一個多端口通道存儲器模塊,。前者每模塊有8,192b存儲器,后者包含4,096b專用通信存儲器且可配置為單端口,、多端口或帶專用控制邏輯的FIFO。
CPLD有什麼好處,?
I/O數(shù)量多
CPLD的好處之一是在給定的器件密度上可提供更多的I/O數(shù),有時甚至高達70%,。
時序模型簡單
CPLD優(yōu)于其它可編程結(jié)構(gòu)之處在于它具有簡單且可預(yù)測的時序模型。這種簡單的時序模型主要應(yīng)歸功于CPLD的粗粒度特性,。
CPLD可在給定的時間內(nèi)提供較寬的相等狀態(tài),而與路由無關(guān),。這一能力是設(shè)計成功的關(guān)鍵,不但可加速初始設(shè)計工作,而且可加快設(shè)計調(diào)試過程。
粗粒CPLD結(jié)構(gòu)的優(yōu)點
CPLD是粗粒結(jié)構(gòu),這意味著進出器件的路徑經(jīng)過較少的開關(guān),相應(yīng)地延遲也小,。因此,與等效的FPGA相比,CPLD可工作在更高的頻率,具有更好的性能,。
CPLD的另一個好處是其軟件編譯快,因為其易于路由的結(jié)構(gòu)使得布放設(shè)計任務(wù)更加容易執(zhí)行,。
細粒FPGA結(jié)構(gòu)的優(yōu)點
FPGA是細粒結(jié)構(gòu),這意味著每個單元間存在細粒延遲。如果將少量的邏輯緊密排列在一起,FPGA的速度相當快,。然而,隨著設(shè)計密度的增加,信號不得不通過許多開關(guān),路由延遲也快速增加,從而削弱了整體性能,。CPLD的粗粒結(jié)構(gòu)卻能很好地適應(yīng)這一設(shè)計布局的改變,。
靈活的輸出引腳
CPLD的粗粒結(jié)構(gòu)和時序特性可預(yù)測,因此設(shè)計人員在設(shè)計流程的后期仍可以改變輸出引腳,而時序仍保持不變,。
為什么CPLD和FPGA需要不同的邏輯設(shè)計技巧?
FPGA是細粒器件,其基本單元和路由結(jié)構(gòu)都比CPLD的小,。FPGA是“寄存器豐富”型的(即其寄存器與邏輯門的比例高),而CPLD正好相反,它是“邏輯豐富”型的,。
很多設(shè)計人員偏愛CPLD是因為它簡單易用和高速的優(yōu)點。CPLD更適合邏輯密集型應(yīng)用,如狀態(tài)機和地址解碼器邏輯等,。而FPGA則更適用于CPU和DSP等寄存器密集型設(shè)計,。
新的CPLD封裝
CPLD有多種密度和封裝類型,包括單芯片自引導(dǎo)方案。自引導(dǎo)方案在單個封裝內(nèi)集成了FLASH存儲器和CPLD,無須外部引導(dǎo)單元,從而可降低設(shè)計復(fù)雜性并節(jié)省板空間,。在給定的封裝尺寸內(nèi),有更高的器件密度共享引腳輸出,。這就為設(shè)計人員提供了“放大”設(shè)計的便利,而無須更改板上的引腳輸出。
CPLD的功耗
與同樣密度的FPGA相比,CPLD的待機功耗更低,。
CPLD FPGA (待機電流(在Vcc 為1.8V時))
50K 300μA 200mA
100K 600μA 200mA
200K 1.25mA 300mA
CPLD特別適合那些要求低功耗和低溫度的電池供電應(yīng)用,像手持設(shè)備,。
許多設(shè)計人員都熟悉傳統(tǒng)的PLD,并喜歡這種結(jié)構(gòu)所固有的靈活性和易用性。CPLD為ASIC和FPGA設(shè)計人員提供了一種很好的替代方案,可讓他們以更簡單,、方便易用的結(jié)構(gòu)實現(xiàn)其設(shè)計,。CPLD現(xiàn)已達到數(shù)十萬門的密度,并可提供當今通信設(shè)計所需的高性能。大于50萬門的設(shè)計仍需ASIC和FPGA,但對于小型設(shè)計,CPLD不失為一個高性價比的替代方案,。
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block),、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。FPGA的基本特點主要有:
1)采用FPGA設(shè)計ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片,。 ——2)FPGA可做其它全定制或半定制ASIC電路的中試樣片,。
3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O