電子發(fā)燒友網(wǎng)核心提示:可編程邏輯器件主要包括FPGA和CPLD,F(xiàn)PGA是Field Programmable Gate Array縮寫,意為現(xiàn)場可編程門陣列;CPLD是Complex Promrammable Logic Device的縮寫,意為復(fù)雜可編程邏輯器件。
隨著芯片技術(shù)的發(fā)展,CPLD和FPGA的概念在某些方面已經(jīng)模糊,如Altera和Lattice公司把小容量(小于2K左右邏輯單元)非揮發(fā)的可編 程器件歸到CPLD里;如Altera的MAXII系列和Lattice的MACH XO系列芯片,把基于SRAM的FPGA和FLASH的儲存單元做到一個芯片里面。那么CPLD與FPGA區(qū)別有哪些?電子發(fā)燒友網(wǎng)編輯跟大家一起分享。
本站小編將從結(jié)構(gòu)、系統(tǒng)、設(shè)計技巧、廠商命名法則等幾個方面來為大家闡述和分析CPLD與FPGA的區(qū)別,并分享CPLD與FPGA的辨別方法。
1.結(jié)構(gòu)上的區(qū)別
CPLD是粗粒結(jié)構(gòu),這意味著進出器件的路徑經(jīng)過較少的開關(guān),相應(yīng)地延遲也小。因此,與等效的FPGA相比,CPLD可工作在更高的頻率,具有更好的性能。CPLD的另一個好處是其軟件編譯快,因為其易于路由的結(jié)構(gòu)使得布放設(shè)計任務(wù)更加容易執(zhí)行。
FPGA是細粒結(jié)構(gòu),這意味著每個單元間存在細粒延遲。如果將少量的邏輯緊密排列在一起,F(xiàn)PGA的速度相當快。然而,隨著設(shè)計密度的增加,信號不得不通過許多開關(guān),路由延遲也快速增加,從而削弱了整體性能。CPLD的粗粒結(jié)構(gòu)卻能很好地適應(yīng)這一設(shè)計布局的改變。
FPGA與CPLD通常的分類方法是:
將以乘積項結(jié)構(gòu)方式構(gòu)成邏輯行為的器件稱為CPLD,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。
將以查表法結(jié)構(gòu)方式構(gòu)成邏輯行為的器件稱為FPGA,如Xilinx的SPARTAN系列、Altera的FLEX10K或ACEX1K系列等。
2.系統(tǒng)上的區(qū)別
盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點,但由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點:
①CPLD更適合完成各種算法和組合邏輯,F(xiàn)P GA更適合于完成時序邏輯。換句話說,F(xiàn)PGA更適合于觸發(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)連電路的邏輯功能來編程,F(xiàn)PGA主要通過改變內(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保密性好,F(xiàn)PGA保密性差。
⑨一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。
3.設(shè)計技巧上的區(qū)別
FPGA是細粒器件,其基本單元和路由結(jié)構(gòu)都比CPLD的小。FPGA是“寄存器豐富”型的(即其寄存器與邏輯門的比例高),而CPLD正好相反,它是 “邏輯豐富”型的。很多設(shè)計人員偏愛CPLD是因為它簡單易用和高速的優(yōu)點。CPLD更適合邏輯密集型應(yīng)用,如狀態(tài)機和地址解碼器邏輯等。而FPGA則更 適用于CPU和DSP等寄存器密集型設(shè)計。
小結(jié):許多設(shè)計人員都熟悉傳統(tǒng)的CPLD,并喜歡這種結(jié)構(gòu)所固有的靈活性和易用性。CPLD 為ASIC和FPGA設(shè)計人員提供了一種很好的替代方案,可讓他們以更簡單、方便易用的結(jié)構(gòu)實現(xiàn)其設(shè)計。CPLD現(xiàn)已達到數(shù)十萬門的密度,并可提供當今通 信設(shè)計所需的高性能。大于50萬門的設(shè)計仍需ASIC和FPGA,但對于小型設(shè)計,CPLD不失為一個高性價比的替代方案。
簡單的來說,CPLD更適合做邏輯,F(xiàn)PGA更適合做時序。
4.如何根據(jù)芯片型號來辨別
目前國內(nèi)使用的主流FPGA和CPLD芯片,主要是Altera和Xilinx兩家。
要辨別他們,讀出芯片上標稱的型號即可,如果對器件熟悉的話,一看型號的前綴就能辨別
1)以Altera公司的片子為例:
ALTERA公司的產(chǎn)品一般以EP開頭,代表可重復(fù)編程。
①如果型號以EPM********開頭,即MAX系列(其中MAX代表陣列矩陣),就是CPLD
②ALTERA公司的FPGA產(chǎn)品系列代碼為EP或EPF,典型產(chǎn)品型號含義如下:
EPF10K10:FLEX10K系列FPGA,典型邏輯規(guī)模是10K有效邏輯門。
EPF10K30E:FLEX10KE系列FPGA,邏輯規(guī)模是EPF10K10的3倍。
EPF20K200E:APEX20KE系列FPGA,邏輯規(guī)模是EPF10K10的20倍。
EP1K30:ACEX1K系列FPGA,邏輯規(guī)模是EPF10K10的3倍。
EP1S30:STRATIX系列FPGA,邏輯規(guī)模是EPF10K10的3倍。
如果以EP2C8*******開頭,那它就是CycloneII系列FPGA芯片的一種,等等
③ALTERA公司的FPGA配置器件系列代碼為EPC,典型產(chǎn)品型號含義如下:
EPC1:為1型FPGA配置器件。(存放配置文件的存儲器)
2)Xilinx公司的CPLD和FPGA器件系列
Xilinx公司的產(chǎn)品一般以XC開頭,代表Xilinx公司的產(chǎn)品。典型產(chǎn)品型號含義如下:
①xilinx的XC9500系列 —— cpld
XC95108-7 PQ 160C:XC9500系列CPLD,邏輯宏單元數(shù)108,引腳間延時為7ns,采用PQFP封裝,160個引腳,商用。
②xilinx的SPARTAN系列——fpga
XC2064:XC2000系列FPGA,可配置邏輯塊(configurable Logic Block,CLB)為64個(只此型號以CLB為特征)。
XC2018:XC2000系列FPGA,典型邏輯規(guī)模是有效門1800。
XC3020:XC2000系列FPGA,典型邏輯規(guī)模是有效門2000。
XC4002A:XC4000A系列FPGA,典型邏輯規(guī)模是2K有效門。
XCS10:Spartan系列FPGA,典型邏輯規(guī)模是10K。
XCS30:Spartan系列FPGA,典型邏輯規(guī)模是XCS10的3倍。
評論