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