FPGA與CPLD的概念及其區(qū)別
一、FPGA與CPLD的基本概念
本文引用地址:http://www.ex-cimer.com/article/201610/308477.htm1.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),F(xiàn)PGA在可編程邏輯塊的規(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)。
二、FPGA與CPLD區(qū)別
盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點(diǎn),但由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點(diǎn):
①CPLD更適合完成各種算法和組合邏輯,F(xiàn)PGA更適合于完成時(shí)序邏輯。換句話說(shuō),F(xiàn)PGA更適合于觸發(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)編程,F(xiàn)PGA主要通過(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保密性好,F(xiàn)PGA保密性差。
⑨一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。
隨著復(fù)雜可編程邏輯器件(CPLD)密度的提高,數(shù)字器件設(shè)計(jì)人員在進(jìn)行大型設(shè)計(jì)時(shí),既靈活又容易,而且產(chǎn)品可以很快進(jìn)入市常許多設(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)的好處。
評(píng)論