
如何區(qū)分CPLD與FPGA?哪一個更適合自己?一直是一個老生常談的問題,尤其是對于那些學(xué)生和初學(xué)者。如果恰好你也在這個問題上很迷茫,那么就讓小編為你講解一下吧。
一、CPLD
我們先來看看CPLD,在此以Xilinx CoolRunner-II為例。下圖是Xilinx CoolRunner-II的架構(gòu)圖。
上圖內(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ù)以百萬計的觸發(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è)計來配置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ù)需要使用不同的設(shè)計更新它時非常有用。此功能廣泛用于加速計算。
CPLD和FPGA的用途區(qū)分
如果設(shè)計需要簡單的組合邏輯電路,無需進(jìn)行太多更改,或者需要瞬時接通電路,那么CPLD是不錯的選擇。否則,對于大多數(shù)其他應(yīng)用,F(xiàn)PGA通常是首選。有時您可以在設(shè)計案例中看到CPLD + FPGA的組合設(shè)計。在這些案例中,CPLD通常用于實(shí)現(xiàn)前面提到的簡單組合邏輯功能,并負(fù)責(zé)“引導(dǎo)”FPGA以及控制整個電路板的復(fù)位和引導(dǎo)順序。因此,根據(jù)應(yīng)用程序,您可能需要在設(shè)計中使用它們。
隨著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ī)。
看了這篇文章后,你懂得如何區(qū)分FPGA與CPLD了嗎?
聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電源網(wǎng)。本網(wǎng)站原創(chuàng)內(nèi)容,如需轉(zhuǎn)載,請注明出處;本網(wǎng)站轉(zhuǎn)載的內(nèi)容(文章、圖片、視頻)等資料版權(quán)歸原作者所有。如我們采用了您不宜公開的文章或圖片,未能及時和您確認(rèn),避免給雙方造成不必要的經(jīng)濟(jì)損失,請電郵聯(lián)系我們,以便迅速采取適當(dāng)處理措施;歡迎投稿,郵箱∶editor@netbroad.com。