市面上尤其是學(xué)校里面可以看到Xilinx公司或者Altera公司各種不同的開(kāi)發(fā)板,其實(shí)只有兩個(gè)大類,CPLD開(kāi)發(fā)板和FPGA開(kāi)發(fā)板。盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點(diǎn),但由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點(diǎn):
① CPLD更適合完成各種組合邏輯,FP GA更適合于完成時(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)編程;FP GA可在邏輯門下編程,而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是門級(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)編程兩類。FPGA大部分是基于SRAM編程,編程信息在系統(tǒng)斷電時(shí)丟失,每次上電時(shí),需從器件外部將編程數(shù)據(jù)重新寫入SRAM中。其優(yōu)點(diǎn)是可以編程任意次,可在工作中快速編程,從而實(shí)現(xiàn)板級(jí)和系統(tǒng)級(jí)的動(dòng)態(tài)配置。
?、?CPLD保密性好,FPGA保密性差。
綜合以上特點(diǎn)可以知道,CPLD可以實(shí)現(xiàn)的功能比較單一,適合純組合邏輯。因此在進(jìn)行IC設(shè)計(jì)的原型驗(yàn)證或者設(shè)計(jì)中包含了復(fù)雜的協(xié)議處理,或者設(shè)計(jì)中使用大量的時(shí)序元件時(shí)一般選用FPGA器件。也就是說(shuō)FPGA可以適應(yīng)當(dāng)前技術(shù)發(fā)展中高密度集成的各種設(shè)計(jì)。
所以選擇開(kāi)發(fā)板盡量選擇最新器件以及主流器件,同時(shí)在資金允許的情況下,盡可能選擇系統(tǒng)等效門較大的器件。因?yàn)檫@個(gè)行業(yè)發(fā)展太快,幾年以前的芯片也就在學(xué)??梢哉业蕉话愎窘^對(duì)不會(huì)使用也不會(huì)采購(gòu)的,所以過(guò)時(shí)的器件意味著過(guò)時(shí)的知識(shí)。