分析CPLD與FPGA區(qū)別
可編程邏輯器件主要包括FPGA和CPLD,F(xiàn)PGA是Field Programmable Gate Array縮寫,CPLD是Complex Promrammable Logic Device的縮寫。隨著芯片技術(shù)的發(fā)展,CPLD和FPGA的概念已經(jīng)模糊在一起,如Altera和Lattice公司把小容量(小于2K左右邏輯單元)非揮發(fā)的可編程器件歸到CPLD里,如Altera的MAXII系列和Lattice的MACH XO系列芯片,把基于SRAM的FPGA和FLASH的儲(chǔ)存單元做到一個(gè)芯片里面,以及跟傳統(tǒng)的CPLD不一樣了。那么CPLD與FPGA區(qū)別有哪些方面呢?我們一起來了解一下吧!
1.CPLD與FPGA在結(jié)構(gòu)方面的區(qū)別:
CPLD是粗粒結(jié)構(gòu),這意味著進(jìn)出器件的路徑經(jīng)過較少的開關(guān),相應(yīng)地延遲也小。因此,與等效的FPGA相比,CPLD可工作在更高的頻率,具有更好的性能。CPLD的另一個(gè)好處是其軟件編譯快,因?yàn)槠湟子诼酚傻慕Y(jié)構(gòu)使得布放設(shè)計(jì)任務(wù)更加容易執(zhí)行。
FPGA是細(xì)粒結(jié)構(gòu),這意味著每個(gè)單元間存在細(xì)粒延遲。如果將少量的邏輯緊密排列在一起,F(xiàn)PGA的速度相當(dāng)快。然而,隨著設(shè)計(jì)密度的增加,信號(hào)不得不通過許多開關(guān),路由延遲也快速增加,從而削弱了整體性能。CPLD的粗粒結(jié)構(gòu)卻能很好地適應(yīng)這一設(shè)計(jì)布局的改變。
2.CPLD與FPGA在系統(tǒng)方面的區(qū)別:
盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點(diǎn),但由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點(diǎn):
①CPLD更適合完成各種算法和組合邏輯,F(xiàn)P GA更適合于完成時(shí)序邏輯。換句話說,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通過修改具有固定內(nèi)連電路的邏輯功能來編程,F(xiàn)PGA主要通過改變內(nèi)部連線的布線來編程;FP GA可在邏輯門下編程,而CPLD是在邏輯塊下編程。
④FPGA的集成度比CPLD高,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實(shí)現(xiàn)。
⑤CPLD比FPGA使用起來更方便。CPLD的編程采用E2PROM或FASTFLASH技術(shù),無需外部存儲(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萬次,優(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保密性好,F(xiàn)PGA保密性差。
⑨一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。
3.CPLD與FPGA在設(shè)計(jì)技巧方面的區(qū)別:
FPGA是細(xì)粒器件,其基本單元和路由結(jié)構(gòu)都比CPLD的小。FPGA是“寄存器豐富”型的(即其寄存器與邏輯門的比例高),而CPLD正好相反,它是“邏輯豐富”型的。很多設(shè)計(jì)人員偏愛CPLD是因?yàn)樗?jiǎn)單易用和高速的優(yōu)點(diǎn)。CPLD更適合邏輯密集型應(yīng)用,如狀態(tài)機(jī)和地址解碼器邏輯等。而FPGA則更適用于CPU和DSP等寄存器密集型設(shè)計(jì)。
小結(jié):許多設(shè)計(jì)人員都熟悉傳統(tǒng)的CPLD,并喜歡這種結(jié)構(gòu)所固有的靈活性和易用性。CPLD為ASIC和FPGA設(shè)計(jì)人員提供了一種很好的替代方案,可讓他們以更簡(jiǎn)單、方便易用的結(jié)構(gòu)實(shí)現(xiàn)其設(shè)計(jì)。CPLD現(xiàn)已達(dá)到數(shù)十萬門的密度,并可提供當(dāng)今通信設(shè)計(jì)所需的高性能。大于50萬門的設(shè)計(jì)仍需ASIC和FPGA,但對(duì)于小型設(shè)計(jì),CPLD不失為一個(gè)高性價(jià)比的替代方案。