1.CPLD
CPLD主要是由可編程邏輯宏單元(LMC,Logic Macro Cell)圍繞中心的可編程互連矩陣單元組成,其中LMC邏輯結(jié)構(gòu)較復(fù)雜,并具有復(fù)雜的I/O單元互連結(jié)構(gòu),可由用戶根據(jù)需要生成特定的電路結(jié)構(gòu),完成一定的功能。由于CPLD內(nèi)部采用固定長(zhǎng)度的金屬線進(jìn)行各邏輯塊的互連,所以設(shè)計(jì)的邏輯電路具有時(shí)間可預(yù)測(cè)性,避免了分段式互連結(jié)構(gòu)時(shí)序不完全預(yù)測(cè)的缺點(diǎn)。到90年代,CPLD發(fā)展更為迅速,不僅具有電擦除特性,而且出現(xiàn)了邊緣掃描及在線可編程等高級(jí)特性。較常用的有Xilinx公司的EPLD和Altera公司的CPLD。
2. FPGA
FPGA通常包含三類(lèi)可編程資源:可編程邏輯功能塊、可編程I/O塊和可編程互連??删幊踢壿嫻δ軌K是實(shí)現(xiàn)用戶功能的基本單元,它們通常排列成一個(gè)陣列,散布于整個(gè)芯片;可編程I/O塊完成芯片上邏輯與外部封裝腳的接口,常圍繞著陣列排列于芯片四周;可編程內(nèi)部互連包括各種長(zhǎng)度的連線線段和一些可編程連接開(kāi)關(guān),它們將各個(gè)可編程邏輯塊或I/O塊連接起來(lái),構(gòu)成特定功能的電路。不同廠家生產(chǎn)的FPGA在可編程邏輯塊的規(guī)模,內(nèi)部互連線的結(jié)構(gòu)和采用的可編程元件上存在較大的差異。較常用的有Altera、Xinlinx和Actel公司的FPGA。FPGA一般用于邏輯仿真。電路設(shè)計(jì)工程師設(shè)計(jì)一個(gè)電路首先要確定線路,然后進(jìn)行軟件模擬及優(yōu)化,以確認(rèn)所設(shè)計(jì)電路的功能及性能。然而隨著電路規(guī)模的不斷增大,工作頻率的不斷提高,將會(huì)給電路引入許多分布參數(shù)的影響,而這些影響用軟件模擬的方法較難反映出來(lái),所以有必要做硬件仿真。FPGA就可以實(shí)現(xiàn)硬件仿真以做成模型機(jī)。將軟件模擬后的線路經(jīng)一定處理后下載到FPGA,就可容易地得到一個(gè)模型機(jī),從該模型機(jī),設(shè)計(jì)者就很直觀地測(cè)試其邏輯功能及性能指標(biāo)。
3.系統(tǒng)比較:
盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點(diǎn),但由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點(diǎn):
①CPLD更適合完成各種算法和組合邏輯,FPGA更適合于完成時(shí)序邏輯。換句話說(shuō),FPGA更適合于觸發(fā)器豐富的結(jié)構(gòu),而CPLD更適合于觸發(fā)器有限而乘積項(xiàng)豐富的結(jié)構(gòu)。
②CPLD的連續(xù)式布線結(jié)構(gòu)決定了它的時(shí)序延遲是均勻的和可預(yù)測(cè)的,而FPGA的分段式布線結(jié)構(gòu)決定了其延遲的不可預(yù)測(cè)性。
③在編程上FPGA比CPLD具有更大的靈活性。CPLD通過(guò)修改具有固定內(nèi)連電路的邏輯功能來(lái)編程,FPGA主要通過(guò)改變內(nèi)部連線的布線來(lái)編程;FPGA可在邏輯門(mén)下編程,而CPLD是在邏輯塊下編程。
④FPGA的集成度比CPLD高,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實(shí)現(xiàn)。
⑤CPLD比FPGA使用起來(lái)更方便。CPLD的編程采用E2PROM或FASTFLASH技術(shù),無(wú)需外部存儲(chǔ)器芯片,使用簡(jiǎn)單。而FPGA的編程信息需存放在外部存儲(chǔ)器上,使用方法復(fù)雜。
⑥CPLD的速度比FPGA快,并且具有較大的時(shí)間可預(yù)測(cè)性。這是由于FPGA是門(mén)級(jí)編程,并且CLB之間采用分布式互聯(lián),而CPLD是邏輯塊級(jí)編程,并且其邏輯塊之間的互聯(lián)是集總式的。
⑦在編程方式上,CPLD主要是基于E2PROM或FLASH存儲(chǔ)器編程,編程次數(shù)可達(dá)1萬(wàn)次,優(yōu)點(diǎn)是系統(tǒng)斷電時(shí)編程信息也不丟失。CPLD又可分為在編程器上編程和在系統(tǒng)編程兩類(lèi)。FPGA大部分是基于SRAM編程,編程信息在系統(tǒng)斷電時(shí)丟失,每次上電時(shí),需從器件外部將編程數(shù)據(jù)重新寫(xiě)入SRAM中。其優(yōu)點(diǎn)是可以編程任意次,可在工作中快速編程,從而實(shí)現(xiàn)板級(jí)和系統(tǒng)級(jí)的動(dòng)態(tài)配置。
⑧CPLD保密性好,FPGA保密性差。
⑨一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。
隨著復(fù)雜可編程邏輯器件(CPLD)密度的提高,數(shù)字器件設(shè)計(jì)人員在進(jìn)行大型設(shè)計(jì)時(shí),既靈活又容易,而且產(chǎn)品可以很快進(jìn)入市場(chǎng)。許多設(shè)計(jì)人員已經(jīng)感受到CPLD容易使用、時(shí)序可預(yù)測(cè)和速度高等優(yōu)點(diǎn),然而,在過(guò)去由于受到CPLD密度的限制,他們只好轉(zhuǎn)向FPGA和ASIC?,F(xiàn)在,設(shè)計(jì)人員可以體會(huì)到密度高達(dá)數(shù)十萬(wàn)門(mén)的CPLD所帶來(lái)的好處。
CPLD結(jié)構(gòu)在一個(gè)邏輯路徑上采用1至16個(gè)乘積項(xiàng),因而大型復(fù)雜設(shè)計(jì)的運(yùn)行速度可以預(yù)測(cè)。因此,原有設(shè)計(jì)的運(yùn)行可以預(yù)測(cè),也很可靠,而且修改設(shè)計(jì)也很容易。CPLD在本質(zhì)上很靈活、時(shí)序簡(jiǎn)單、路由性能極好,用戶可以改變他們的設(shè)計(jì)同時(shí)保持引腳輸出不變。與FPGA相比,CPLD的I/O更多,尺寸更小。
如今,通信系統(tǒng)使用很多標(biāo)準(zhǔn),必須根據(jù)客戶的需要配置設(shè)備以支持不同的標(biāo)準(zhǔn)。CPLD可讓設(shè)備做出相應(yīng)的調(diào)整以支持多種協(xié)議,并隨著標(biāo)準(zhǔn)和協(xié)議的演變而改變功能。這為系統(tǒng)設(shè)計(jì)人員帶來(lái)很大的方便,因?yàn)樵跇?biāo)準(zhǔn)尚未完全成熟之前他們就可以著手進(jìn)行硬件設(shè)計(jì),然后再修改代碼以滿足最終標(biāo)準(zhǔn)的要求。CPLD的速度和延遲特性比純軟件方案更好,它的NRE費(fèi)用低於ASIC,更靈活,產(chǎn)品也可以更快入市。CPLD可編程方案的優(yōu)點(diǎn)如下:
●邏輯和存儲(chǔ)器資源豐富(Cypress Delta39K200的RAM超過(guò)480 Kb)
●帶冗余路由資源的靈活時(shí)序模型
●改變引腳輸出很靈活
●可以裝在系統(tǒng)上后重新編程
●I/O數(shù)目多
●具有可保證性能的集成存儲(chǔ)器控制邏輯
●提供單片CPLD和可編程PHY方案
由于有這些優(yōu)點(diǎn),設(shè)計(jì)建模成本低,可在設(shè)計(jì)過(guò)程的任一階段添加設(shè)計(jì)或改變引腳輸出,可以很快上市
CPLD的結(jié)構(gòu)
CPLD是屬於粗粒結(jié)構(gòu)的可編程邏輯器件。它具有豐富的邏輯資源(即邏輯門(mén)與寄存器的比例高)和高度靈活的路由資源。CPLD的路由是連接在一起的,而FPGA的路由是分割開(kāi)的。FPGA可能更靈活,但包括很多跳線,因此速度較CPLD慢。
CPLD以群陣列(array of clusters)的形式排列,由水平和垂直路由通道連接起來(lái)。這些路由通道把信號(hào)送到器件的引腳上或者傳進(jìn)來(lái),并且把CPLD內(nèi)部的邏輯群連接起來(lái)。CPLD之所以稱(chēng)作粗粒,是因?yàn)?,與路由數(shù)量相比,邏輯群要大得到。CPLD的邏輯群比FPGA的基本單元大得多,因此FPGA是細(xì)粒的。
CPLD的功能塊
CPLD最基本的單元是宏單元。一個(gè)宏單元包含一個(gè)寄存器(使用多達(dá)16個(gè)乘積項(xiàng)作為其輸入)及其它有用特性。
因?yàn)槊總€(gè)宏單元用了16個(gè)乘積項(xiàng),因此設(shè)計(jì)人員可部署大量的組合邏輯而不用增加額外的路徑。這就是為何CPLD被認(rèn)為是“邏輯豐富”型的。
宏單元以邏輯模塊的形式排列(LB),每個(gè)邏輯模塊由16個(gè)宏單元組成。宏單元執(zhí)行一個(gè)AND操作,然后一個(gè)OR操作以實(shí)現(xiàn)組合邏輯。
每個(gè)邏輯群有8個(gè)邏輯模塊,所有邏輯群都連接到同一個(gè)可編程互聯(lián)矩陣。
每個(gè)群還包含兩個(gè)單端口邏輯群存儲(chǔ)器模塊和一個(gè)多端口通道存儲(chǔ)器模塊。前者每模塊有8,192b存儲(chǔ)器,后者包含4,096b專(zhuān)用通信存儲(chǔ)器且可配置為單端口、多端口或帶專(zhuān)用控制邏輯的FIFO。
CPLD有什麼好處?
I/O數(shù)量多
CPLD的好處之一是在給定的器件密度上可提供更多的I/O數(shù),有時(shí)甚至高達(dá)70%。
時(shí)序模型簡(jiǎn)單
CPLD優(yōu)于其它可編程結(jié)構(gòu)之處在于它具有簡(jiǎn)單且可預(yù)測(cè)的時(shí)序模型。這種簡(jiǎn)單的時(shí)序模型主要應(yīng)歸功于CPLD的粗粒度特性。
CPLD可在給定的時(shí)間內(nèi)提供較寬的相等狀態(tài),而與路由無(wú)關(guān)。這一能力是設(shè)計(jì)成功的關(guān)鍵,不但可加速初始設(shè)計(jì)工作,而且可加快設(shè)計(jì)調(diào)試過(guò)程。
粗粒CPLD結(jié)構(gòu)的優(yōu)點(diǎn)
CPLD是粗粒結(jié)構(gòu),這意味著進(jìn)出器件的路徑經(jīng)過(guò)較少的開(kāi)關(guān),相應(yīng)地延遲也小。因此,與等效的FPGA相比,CPLD可工作在更高的頻率,具有更好的性能。
CPLD的另一個(gè)好處是其軟件編譯快,因?yàn)槠湟子诼酚傻慕Y(jié)構(gòu)使得布放設(shè)計(jì)任務(wù)更加容易執(zhí)行。
細(xì)粒FPGA結(jié)構(gòu)的優(yōu)點(diǎn)
FPGA是細(xì)粒結(jié)構(gòu),這意味著每個(gè)單元間存在細(xì)粒延遲。如果將少量的邏輯緊密排列在一起,F(xiàn)PGA的速度相當(dāng)快。然而,隨著設(shè)計(jì)密度的增加,信號(hào)不得不通過(guò)許多開(kāi)關(guān),路由延遲也快速增加,從而削弱了整體性能。CPLD的粗粒結(jié)構(gòu)卻能很好地適應(yīng)這一設(shè)計(jì)布局的改變。
靈活的輸出引腳
CPLD的粗粒結(jié)構(gòu)和時(shí)序特性可預(yù)測(cè),因此設(shè)計(jì)人員在設(shè)計(jì)流程的后期仍可以改變輸出引腳,而時(shí)序仍保持不變。
新的CPLD封裝
CPLD有多種密度和封裝類(lèi)型,包括單芯片自引導(dǎo)方案。自引導(dǎo)方案在單個(gè)封裝內(nèi)集成了FLASH存儲(chǔ)器和CPLD無(wú)須外部引導(dǎo)單元,從而可降低設(shè)計(jì)復(fù)雜性并節(jié)省板空間。在給定的封裝尺寸內(nèi),有更高的器件密度共享引腳輸出。這就為設(shè)計(jì)人員提供了“放大”設(shè)計(jì)的便利,而無(wú)須更改板上的引腳輸出。
FPGA是一種高密度的可編程邏輯器件,自從Xilinx公司1985年推出第一片F(xiàn)PGA以來(lái),F(xiàn)PGA的集成密度和性能提高很快,其集成密度最高達(dá)500萬(wàn)門(mén)/片以上,系統(tǒng)性能可達(dá)200MHz。由于FPGA器件集成度高,方便易用,開(kāi)發(fā)和上市周期短,在數(shù)字設(shè)計(jì)和電子生產(chǎn)中得到迅速普及和應(yīng)用,并一度在高密度的可編程邏輯器件領(lǐng)域中獨(dú)占鰲頭。
CPLD是由 GAL發(fā)展起來(lái)的 ,其主體結(jié)構(gòu)仍是與或陣列 ,自從 90年代初 Lattice公司高性能的具有在系統(tǒng)可編程ISP(In System Programmable)功能的 CPLD以來(lái) ,CPLD發(fā)展迅速。具有 ISP功能的 CPLD器件由于具有同 FPGA器件相似的集成度和易用性 ,在速度上還有一定的優(yōu)勢(shì) ,使其在可編程邏輯器件技術(shù)的競(jìng)爭(zhēng)中與 FPGA并駕齊驅(qū) ,成為兩支領(lǐng)導(dǎo)可編程器件技術(shù)發(fā)展的力量之一。
結(jié)構(gòu)
FPGA器件在結(jié)構(gòu)上 ,由邏輯功能塊排列為陣列 ,并由可編程的內(nèi)部連線連接這些功能塊來(lái)
實(shí)現(xiàn)一定的邏輯功能
CPLD是將多個(gè)可編程陣列邏輯 (PAL)器件集成到一個(gè)芯片 ,具有類(lèi)似 PAL的結(jié)構(gòu)。一般情況下CPLD器件中至少包含三種結(jié)構(gòu) :可編程邏輯功能塊 (FB);可編程 I/ O單元 ;可編程內(nèi)部連線集成度
FPGA可以達(dá)到比 CPLD更高的集成度 ,同時(shí)也具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實(shí)現(xiàn)適合結(jié)構(gòu)
FPGA更適合于觸發(fā)器豐富的結(jié)構(gòu) ,而 CPLD更適合于觸發(fā)器有限而積項(xiàng)豐富的結(jié)構(gòu)編程
CPLD通過(guò)修改具有固定內(nèi)連電路的邏輯功能來(lái)編程 ,F(xiàn)PGA主要通過(guò)改變內(nèi)部連線的布線來(lái)編程 ;FPGA可在邏輯門(mén)下編程 ,而 CPLD是在邏輯塊下編程 ,在編程上 FPGA比 CPLD具有更大的靈活性
功率消耗
CPLD的缺點(diǎn)比較突出。一般情況下 ,CPLD功耗要比 FPGA大 ,且集成度越高越明顯
速度
CPLD優(yōu)于 FPGA。由于 FPGA是門(mén)級(jí)編程 ,且 CLB之間是采用分布式互連 ;而 CPLD是邏輯塊級(jí)編程 ,且其邏輯塊互連是集總式的。因此 ,CPLD比 FPGA有較高的速度和較大的時(shí)間可預(yù)測(cè)性 ,產(chǎn)品可以給出引腿到引腿的最大延遲時(shí)間
編程方式
目前的 CPLD主要是基于E2 PROM或 FLASH存儲(chǔ)器編程 ,編程次數(shù)達(dá) 1萬(wàn)次。其優(yōu)點(diǎn)是在系統(tǒng)斷電后 ,編程信息不丟失。CPLD又可分為在編程器上編程和在系統(tǒng)編程 (ISP) CPLD兩種。 ISP器件的優(yōu)點(diǎn)是不需要編程器 ,可先將器件裝焊于印制板 ,再經(jīng)過(guò)編程電纜進(jìn)行編程,編程、調(diào)試和維護(hù)都很方便
FPGA大部分是基于 SRAM編程 ,其缺點(diǎn)是編程數(shù)據(jù)信息在系統(tǒng)斷電時(shí)丟失 ,每次上電時(shí) ,需從器件的外部存儲(chǔ)器或計(jì)算機(jī)中將編程數(shù)據(jù)寫(xiě)入 SRAM中。其優(yōu)點(diǎn)是可進(jìn)行任意次數(shù)的編程,并可在工作中快速編程 ,實(shí)現(xiàn)板級(jí)和系統(tǒng)級(jí)的動(dòng)態(tài)配置 ,因此可稱(chēng)為在線重配置 (ICR:In CircuitReconfigurable)的 PLD或可重配置硬件(RHP:Reconfigurable Hardware Product)。
評(píng)論