CPLD(復(fù)雜可編程邏輯器件)是從PAL和GAL 器件發(fā)展出來的器件,相對(duì)而言規(guī)模大、結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍,是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助集成開發(fā)軟件平臺(tái),用原理圖、硬件描述語言等方法生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中來實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。
FPGA 和 CPLD 的區(qū)別如下:
(1)CPLD 更適合完成各種算法和組合邏輯,F(xiàn)PGA 更適合完成時(shí)序邏輯。換句話說,F(xiàn)PGA更適合觸發(fā)器豐富的結(jié)構(gòu),而 CPLD 更適合觸發(fā)器有限而乘積項(xiàng)豐富的結(jié)構(gòu)。
(2)CPLD 的連續(xù)式布線結(jié)構(gòu)決定了它的時(shí)序延遲是均勻和可預(yù)測(cè)的,而 FPGA 的分段式布線結(jié)構(gòu)決定了其延遲的不可預(yù)測(cè)性。
(3)在編程上,F(xiàn)PGA 比 CPLD 具有更大的靈活性。CPLD 通過修改具有固定內(nèi)連電路的邏輯功能來編程,F(xiàn)PGA 主要通過改變內(nèi)部連線的布線來編程;FPGA 可在邏輯門下編程,而CPLD 是在邏輯塊下編程的。
(4)FPGA 的集成度比 CPLD 高,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實(shí)現(xiàn)。
(5)CPLD 比 FPGA 使用起來更方便。CPLD 的編程采用 E2PROM 或 FastFlash 技術(shù),無須外部存儲(chǔ)器芯片,使用簡(jiǎn)單。而 FPGA 的編程信息需存放在外部存儲(chǔ)器上,使用方法復(fù)雜。
(6)CPLD 的速度比 FPGA 快,并且具有較大的時(shí)間可預(yù)測(cè)性。這是由于 FPGA 是門級(jí)編程,并且 CLB 之間采用分布式互聯(lián),而 CPLD 是邏輯塊級(jí)編程,并且其邏輯塊之間的互聯(lián)是集總式的。
(7)在編程方式上,CPLD 主要是基于 E2PROM 或 FastFlash 存儲(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)配置。
(8)CPLD 保密性好,F(xiàn)PGA 保密性差。
(9)一般情況下,CPLD 的功耗要比 FPGA 大,且集成度越高越明顯。隨著復(fù)雜可編程邏輯器件(CPLD)密度的提高,數(shù)字器件設(shè)計(jì)人員在進(jìn)行大型設(shè)計(jì)時(shí),既靈活又容易,而且產(chǎn)品可以很快進(jìn)入市場(chǎng)。許多設(shè)計(jì)人員已經(jīng)感受到 CPLD 有容易使用、時(shí)序可預(yù)測(cè)和速度高等優(yōu)點(diǎn)。然而,過去由于受到 CPLD 密度的限制,他們只好轉(zhuǎn)向 FPGA 和 ASIC?,F(xiàn)在,設(shè)計(jì)人員可以體會(huì)到密度高達(dá)數(shù)十萬門的 CPLD 所帶來的好處。