CPLD和FPGA都是由邏輯陣列模塊構(gòu)成的,但是CPLD的LAB基于乘積和宏單元,而FPGA的LAB使用基于LUT的邏輯單元。CPLD的LAB圍繞中心全局互連排列,隨著器件中邏輯數(shù)量的增加,呈指數(shù)增長。FPGA的LAB以網(wǎng)格陣列排列,隨器件密度線性增長。CPLD互連包括LAB本地可編程陣列及中心可編程互連。FPGA器件除了包括本地互連,用于各個(gè)LAB,但是和LAB邏輯分開,器件還包括行列互連,這些互連跨過陣列中的多個(gè)LAB,以及整個(gè)芯片的長寬。
CPLD
CPLD是基于乘積項(xiàng)技術(shù)(Product-Term)、EPPROM或FLASH工藝;直接燒寫程序調(diào)電后程序不會(huì)消失;一般可以擦寫幾百次,并且一般宏單元在512以下。比如ALTERA的MAX3000/5000/7000/9000和CLASSIC系列)。
CPLD可分為三塊結(jié)構(gòu):可編程邏輯陣列LAB(Logic Array Block,由若干宏單元(LMC,Logic Maro Cell)組成),可編程內(nèi)部連線(PIA)和I/O控制塊(IO Control Block)。
宏單元是CPLD的基本結(jié)構(gòu),由它來實(shí)現(xiàn)基本的邏輯功能。LMC內(nèi)部主要包括與陣列、或陣列、可編程觸發(fā)器和多路選擇器等電路,能獨(dú)立地配置為時(shí)序或組合工作方式。
每個(gè)宏單元都與GCLK(全局時(shí)鐘)、OE(輸出使能)、GCLR(清零)等控制信號(hào)直接相連,并且延時(shí)相同。各宏單元之間由固定長度的金屬線互連,這樣保證邏輯電路的延時(shí)固定。
一個(gè)宏單元主要包括了LAB的Local Array(邏輯陣列),Product-Term SelectMatrix(乘積項(xiàng)選擇矩陣)和一個(gè)可編程D觸發(fā)器組成。其中邏輯陣列的每一個(gè)交叉點(diǎn)都可以通過編程實(shí)現(xiàn)導(dǎo)通從而實(shí)現(xiàn)與邏輯,乘積項(xiàng)選擇矩陣可實(shí)現(xiàn)或邏輯。這兩部分協(xié)同工作,就可以實(shí)現(xiàn)一個(gè)完整的組合邏輯。輸出可以選擇通過D觸發(fā)器,也可以對(duì)觸發(fā)器進(jìn)行旁路。因此CPLD非常適合實(shí)現(xiàn)組合邏輯,再配合觸發(fā)器也能夠?qū)崿F(xiàn)一定的時(shí)序邏輯。
I/O控制塊負(fù)責(zé)輸入輸出的電氣特性控制,比如可以設(shè)定集電極開路輸出,擺率控制,三態(tài)輸出等。
可編程內(nèi)部連線的作用是在各邏輯宏單元之間以及邏輯宏單元和I/O單元之間提供互連網(wǎng)絡(luò)。各邏輯宏單元通過可編程連線陣列接收來自輸入端的信號(hào),并將宏單元的信號(hào)送往目的地。這種互連機(jī)制有很大的靈活性,它允許在不影響引腳分配的情況下改變內(nèi)部的設(shè)計(jì)。
FPGA
FPGA是基于查找表(Look-Up-Table,LUT)技術(shù)、SRAM工藝(可迅速反復(fù)地編程);直接燒寫程序掉電后程序丟失;理論上擦寫100萬次以上;一般使用需要外掛EEPROM,可以達(dá)到幾百萬門電路。比如ALTERA的APEX、FLEX、ACEX、STRATIX、CYCLONE等等系列,Xilinx的Spartan、Artix、Kintex、Virtex、UltraScale、UltraScale+等等系列。
FPGA由可編程邏輯功能塊(CLB)、輸入/輸出模塊(IOB)及可編程互連資源(PIR)等三種可編程電路和一個(gè)SRAM結(jié)構(gòu)的配置存儲(chǔ)單元組成。
CLB是實(shí)現(xiàn)邏輯功能的基本單元,CLB主要由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。CLB主要由查找表LUT構(gòu)成,查找表是FPGA最根本的邏輯單元。我們?cè)O(shè)計(jì)的邏輯電路最終都是通過EDA工具把所有可能的結(jié)果計(jì)算出來然后儲(chǔ)存在查找表里面。每次根據(jù)輸入信號(hào)查找對(duì)應(yīng)的結(jié)果,然后輸出就可以了。也就是說FPGA的工作更像是一個(gè)RAM,根據(jù)不同的輸入信號(hào)(地址)輸出相應(yīng)的數(shù)據(jù)。
IOB主要由輸入觸發(fā)器、輸入緩沖器和輸出觸發(fā)/鎖存器、輸出緩沖器組成,每個(gè)IOB控制一個(gè)引腳,它們可被配置為輸入、輸出或雙向I/O功能,主要完成芯片上的邏輯與外部引腳的接口。
可編程互連資源(PIR)包括各種長度的連線線段和一些可編程連接開關(guān),通過自動(dòng)布線實(shí)現(xiàn)各種電路的連接,實(shí)現(xiàn)FPGA內(nèi)部CLB之間或IOB之間以及CLB與IOB之間連接起來,構(gòu)成特定功能的電路。
CPLD | FPGA | |
---|---|---|
內(nèi)部結(jié)構(gòu) | Product-Term | Look-Up Table |
程序存儲(chǔ) | 內(nèi)部EEPROM | SRAM,外掛EEPROM |
資源類型 | 組合電路資源豐富 | 觸發(fā)器資源豐富 |
使用場(chǎng)合 | 組合邏輯 | 時(shí)序邏輯 |
基本邏輯組成 | LAB由宏單元構(gòu)成 | LAB有LE或ALM構(gòu)成 |
建立邏輯功能 | 乘積和 | LUT或ALUT |
邏輯布局 | LAB圍繞中心全局互連 | LAB網(wǎng)格陣列排列 |
互連 | LAB本地和全局互連 | LAB本地和行/列/分段/整片互連 |
集成度 | 低 | 高 |
布線結(jié)構(gòu) | 連續(xù)式 | 分段式 |
引腳延遲 | 時(shí)序延遲是均勻的和可預(yù)測(cè)的 | 延遲不可預(yù)測(cè) |
保密性 | 可加密 | 一般不能保密 |
使用靈活性 | 通過修改具有固定內(nèi)連電路的邏輯功能來編程(在邏輯塊下編程) | 通過改變內(nèi)部連線的布線來編程(在邏輯門下編程,更靈活) |
最新工藝的CPLD也是基于SRAM工藝,結(jié)構(gòu)上和資源上越來越和FPGA趨同。主要差異在于:CPLD通過集成片內(nèi)FLASH實(shí)現(xiàn)掉電不丟失數(shù)據(jù),F(xiàn)PGA需要外部FLASH加載。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602984 -
cpld
+關(guān)注
關(guān)注
32文章
1248瀏覽量
169333 -
時(shí)鐘
+關(guān)注
關(guān)注
10文章
1733瀏覽量
131446 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61131
原文標(biāo)題:FPGA系列之“CPLD和FPGA的區(qū)別”
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論