以下內容主要譯自大陸一IC設計討論區的文章,再經站長對本文稍做修飾而成
...
CPLD
FPGA
儘管FPGA和CPLD都是可編程ASIC元件,但由於FPGA和CPLD結構上的差異,彼此之間還是存在各自不同的特點:
-
CPLD適合用來實現各種運算和組合邏輯(combinational
logic),FPGA則是適用於實現循序邏輯(sequential logic)。換句話說,FPGA適合於觸發器(flip-flop)較多的結構,而CPLD則適合於觸發器有限而乘積項(product
term)較多的結構。
-
CPLD的時間特性預估比FPGA容易。CPLD的連續式佈線(互聯)結構決定了它的時序延遲是均勻的和可預測的,而FPGA的分段式佈線結構使得其時間延遲的預測變的困難。同樣的理由也造成CPLD的速度比FPGA快,
-
在編程上FPGA比CPLD具有更大的靈活性。CPLD透過修改具有固定內部連線電路的邏輯功能來編程,而FPGA主要是透過改變內部電路佈線來編程,也就是說:FPGA可在邏輯閘下編程,而CPLD是在邏輯塊下編程。
-
FPGA的集成度比CPLD高,適合較複雜的佈線結構和邏輯實現,所以FPGA元間的可編程邏輯閘數比起CPLD大許多。
-
CPLD使用上比FPGA方便。CPLD的編程採用E2PROM或Flash技術,使用時外部不需要另外的記憶儲存元件,而FPGA的編程採用SRAM技術,所以使用時外部需要搭配記憶儲存元件存放編程訊息(netlist
file),使用方法較複雜。
這特性進一步造成FPGA的保密特性較CPLD差;因為FPGA的電路編程資訊,另外儲存在外部的記憶元件中(EPROM
/ Flash),電路資料容易被他人讀取,電路容易被複製。
-
在編程方式上,CPLD主要是基於E2PROM或Flash儲存編程,可編程次數大於1萬次,優點是系統斷電時,編程訊息不會消失。FPGA大部分是基於SRAM編程,編程訊息會在系統斷電時消失,所以每次上電時系統都要重新將編程訊息從外部記憶裝置讀入FPGA中的SRAM,其優點是可編程次數不限,並且在開發過程中可以很方便的隨時更改編程。
-
一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。
隨著製程與電路設計技術的進步,實踐可編程元件的技術將逐漸整合CPLD與FPGA彼此所長,整合Lookup
Table與Product Term技術而成。
MAX、Cyclone系列device的邏輯基本單元是Logic
Element (LE),以Look-Up Table (LUT)為基礎。
Stratix系列device的邏輯基本單元是Adaptive
Logic Module (ALM),對於有組合邏輯的設計有較好的performance。
|