2015-03-20 11:32 發(fā)起
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)部采用固定長度的金屬線進行各邏輯塊的互連,所以設(shè)計的邏輯電路具有時間可預(yù)測性,避免了分段式互連結(jié)構(gòu)時序不完全預(yù)測的缺點。到90年代,CPLD發(fā)展更為迅速,不僅具有電擦除特性,而且出現(xiàn)了邊緣掃描及在線可編程等高級特性。較常用的有Xilinx公司的EPLD和Altera公司的CPLD。
2. FPGA
FPGA通常包含三類可編程資源:可編程邏輯功能塊、可編程I/O塊和可編程互連。可編程邏輯功能塊是實現(xiàn)用戶功能的基本單元,它們通常排列成一個陣列,散布于整個芯片;可編程I/O塊完成芯片上邏輯與外部封裝腳的接口,常圍繞著陣列排列于芯片四周;可編程內(nèi)部互連包括各種長度的連線線段和一些可編程連接開關(guān),它們將各個可編程邏輯塊或I/O塊連接起矗鉤商囟üδ艿牡緶貳2煌Ъ疑腇PGA在可編程邏輯塊的規(guī)模,內(nèi)部互連線的結(jié)構(gòu)和采用的可編程元件上存在較大 的差異。較常用的有Altera、Xinlinx和Actel公司的FPGA。FPGA一般用于邏輯仿真。電路設(shè)計工程師設(shè)計一個電路首先要確定線路,然后進行軟件模擬及優(yōu)化,以確認所設(shè)計電路的功能及性能。然而隨著電路規(guī)模的不斷增大,工作頻率的不斷提高,將會給電路引入許多分布參數(shù)的影響,而這些影響用軟件模擬的方法較難反映出來,所以有必要做硬件仿真。FPGA就可以實現(xiàn)硬件仿真以做成模型機。將軟件模擬后的線路經(jīng)一定處理后下載到FPGA,就可容易地得到一個模型機,從該模型機,設(shè)計者就很直觀地測試其邏輯功能及性能指標。
二、
系統(tǒng)的比較,與大家共享:
盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點,但由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點:
①CPLD更適合完成各種算法和組合邏輯,FP GA更適合于完成時序邏輯。換句話說,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大,且集成度越高越明顯