如何區(qū)分CPLD或FPGA和哪一個更適合自己?這是一個老生常談的問題,尤其是學(xué)生和初學(xué)者。如果您也在這個問題上很迷茫,那么就請聽小編為您區(qū)分FPGA與CPLD。
CPLD
我們先來看看CPLD,在此以Xilinx CoolRunner-II為例。下圖是Xilinx CoolRunner-II的架構(gòu)圖。

現(xiàn)在小編為您解釋一下上圖的內(nèi)容。
1.該CPLD具有從“功能塊1”到“功能塊n”開始的功能塊很少(在CoolRunner-II CPLD的情況下,此編號范圍為2到32)
2.每個功能塊的16行輸出進(jìn)入AIM(高級互連矩陣),而40行信號從AIM輸入功能塊。
3.每個功能塊都有16個MacroCell(MC1到MC16)。
4.每個MacroCell都可以訪問來自I / O塊的16個信號
5.MacroCell的結(jié)構(gòu)如下所示。每個宏單元包含1個觸發(fā)器和PLA陣列的產(chǎn)品和,用戶可以利用它來創(chuàng)建組合或順序邏輯。因此,CoolRunner-II CLPD(XC2C512)中可用的最大觸發(fā)器數(shù)量為512!(記住這個數(shù)字,我們將它與FPGA中的觸發(fā)器數(shù)量進(jìn)行比較)
6.可以對AIM進(jìn)行編程,以便根據(jù)需要互連信號。但正如我們在上面的第二個要點(diǎn)中看到的那樣,每個功能塊的信號數(shù)量都是有限的。

與PLA(programmable Logic Array,可編程邏輯陣列)相同,CPLD在每個宏單元中的邏輯功能通過JTAG上的系統(tǒng)編程(ISP)接口進(jìn)行電氣編程。編程后,這些基于閃存的連接多年來一直保持不變。這為CPLD提供了“即時啟動”工作的獨(dú)特優(yōu)勢。也就是說,CPLD一上電就開始工作,因?yàn)槌绦蛲ㄟ^ISP閃存燒入。但FPGA的情況不盡相同,我們后文再討論。
總結(jié)一下,我們可以說,在CPLD中,有幾百個功能塊(或邏輯塊),通常少于1000個,可由單個大型邏輯單元互連訪問。
FPGA
雖然制造商沒有公開發(fā)布確切的FPGA架構(gòu),但我們?nèi)匀豢梢垣@得更高級別的架構(gòu),這將有助于理解FPGA及其工作原理。讓我們先來看一下Xilinx的的高級示例。
在FPGA中,有許多可配置邏輯塊(Configurable Logic Block,CLB )嵌入在可編程互連的“海洋”中。與CPLD的宏單元相比,這些CLB非常復(fù)雜,并且可以實(shí)現(xiàn)更復(fù)雜的邏輯功能。它們主要由查找表(LUT),多路復(fù)用器和觸發(fā)器組成。FPGA可以在單個器件中包含數(shù)百萬個CLB!數(shù)以百萬計(jì)的觸發(fā)器(Xilinx VU13P中約為345.6萬個觸發(fā)器),與Xilinx同廠性能最好的CPLD中的512個觸發(fā)器相比顯得非常龐大。邏輯門數(shù)量的巨大差異也決定了FPGA的用途。
如上圖所示,F(xiàn)PGA還具有用于各種功能的專用硬件,如RAM,高速串行收發(fā)器,數(shù)字信號處理(DSP)模塊,外部存儲器控制器,PLL和MMCM,PCIe等!就多種選擇和靈活性而言,CPLD與FPGA無法匹敵。
如前文所述,F(xiàn)PGA基于LUT。當(dāng)FPGA上電時,器件始終為空白。存在稱為配置電路的特殊電路,其從外部ROM讀取配置數(shù)據(jù),并根據(jù)外部ROM中存在的用戶設(shè)計(jì)來配置LUT。FPGA配置需要一些時間,F(xiàn)PGA將在配置加載完成后才開始工作。當(dāng)然也有例外。一些制造商已經(jīng)提出內(nèi)置配置閃存的FPGA。即使在這種情況下,配置數(shù)據(jù)也沒有嵌入到結(jié)構(gòu)中,并且仍然適用一些對時間的設(shè)置與配置。
CPLD與FPGA比較匯總
小編總結(jié)了一個表格,可以概括一下兩者的異同。
FPGA即使在運(yùn)行時也可以改變電路結(jié)構(gòu)!(因?yàn)樗皇歉戮哂胁煌瑑?nèi)容的LUT的問題)這稱為部分重配置,當(dāng)FPGA需要繼續(xù)運(yùn)行設(shè)計(jì)并同時根據(jù)需要使用不同的設(shè)計(jì)更新它時非常有用。此功能廣泛用于加速計(jì)算。
CPLD和FPGA的用途區(qū)分
如果設(shè)計(jì)需要簡單的組合邏輯電路,無需進(jìn)行太多更改,或者需要瞬時接通電路,那么CPLD是不錯的選擇。否則,對于大多數(shù)其他應(yīng)用,F(xiàn)PGA通常是首選。有時您可以在設(shè)計(jì)案例中看到CPLD + FPGA的組合設(shè)計(jì)。在這些案例中,CPLD通常用于實(shí)現(xiàn)前面提到的簡單組合邏輯功能,并負(fù)責(zé)“引導(dǎo)”FPGA以及控制整個電路板的復(fù)位和引導(dǎo)順序。因此,根據(jù)應(yīng)用程序,您可能需要在設(shè)計(jì)中使用它們。
隨著AI技術(shù)的發(fā)展,F(xiàn)PGA又一次站在了風(fēng)口上——它以內(nèi)置龐大的邏輯門電路,合理的功耗,在GPU、ASIC之后,為AI從業(yè)者提供了一種更為靈活的算法實(shí)現(xiàn)方案。在此業(yè)態(tài)下,F(xiàn)PGA的發(fā)展也會給它的傳統(tǒng)應(yīng)用領(lǐng)域——以高速通信為主的通信領(lǐng)域和以驅(qū)動組合邏輯芯片為主的LED顯示行業(yè)注入新的發(fā)展契機(jī)。
-
FPGA
+關(guān)注
關(guān)注
1662文章
22473瀏覽量
638294 -
cpld
+關(guān)注
關(guān)注
32文章
1259瀏覽量
174077
原文標(biāo)題:告別選擇困難癥——區(qū)分FPGA與CPLD
文章出處:【微信號:FPGAer_Club,微信公眾號:FPGAer俱樂部】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
FPGA與CPLD怎么區(qū)分
FPGA與CPLD該怎么區(qū)分?
如何區(qū)分CPLD與FPGA,怎么選擇?
Altera FPGA/CPLD設(shè)計(jì)(高級篇)
altera fpga/cpld設(shè)計(jì)
關(guān)于CPLD和FPGA的區(qū)別
CPLD和FPGA兩者的區(qū)別
如何區(qū)分FPGA與CPLD?本文告訴你答案!
FPGA教程之CPLD與FPGA的基礎(chǔ)知識說明
CPLD和FPGA這兩者到底有什么區(qū)別呢
Altera FPGA CPLD學(xué)習(xí)筆記
FPGA CPLD中的Verilog設(shè)計(jì)小技巧
常用FPGA/CPLD設(shè)計(jì)思想與技巧
CPLD和FPGA的區(qū)別是什么
如何區(qū)分FPGA和CPLD?
評論