FPGA是一種高密度的可編程邏輯器件,自從Xilinx公司1985年推出第一片FPGA以來,FPGA
的集成密度和性能提高很快,其集成密度高達千萬門/片以上。由於FPGA器件集成度高、方便
易用、開發和上市週期短,在數字設計和電子生產中得到迅速普及和應用,並一度在高密度的
可編程邏輯器件領域中獨佔鰲頭。
CPLD是由GAL發展起來的,其主體結構仍是與或陣列,自20世紀90年代初Lattice公司開發
出具有在系統可編程功能(ISP)的CPLD以來,CPLD發展迅速。具有ISP功能的CPLD器件由於具
有同FPGA器件相似的集成度和易用性,在速度上還有一定的優勢,使其在可編程邏輯器件技術
的競爭中與FPGA並駕齊驅,成為兩支領導可編程器件技術發展的力量之一。
CPLD與FPGA對照情況如下。
1. 結構
FPGA多為查找表加寄存器結構,大多數使用SRAM工藝,也包含Flash、Anti-Fuse等工藝。
CPLD多為乘積項結構,使用Flash、EEPROM工藝。
2. 集成度
FPGA可以達到比CPLD更高的集成度,同時也具有更復雜的佈線結構和邏輯實現。
3. 適合類型
CPLD組合邏輯的功能很強,一個宏單元就可以分解成十幾個甚至30多個組合邏輯輸入,而
FPGA的一個查找表LUT只能處理4輸入的組合邏輯。因此,CPLD更適合完成各種算法和組合邏輯,
而FPGA更適合於完成時序邏輯。換句話說,CPLD更適合於觸發器有限而乘積項豐富的結構,而
FPGA更適合於觸發器豐富的結構。
4. 功率消耗
一般情況下,CPLD功耗要比FPGA大,且集成度越高越明顯。
5. 佈線資源
FPGA具有豐富的分佈式佈線資源、佈線靈活,但是時序難以預測,一般需要時序約束、時
序仿真來驗證時序性能。CPLD由於邏輯塊互連是集總式的,相對佈線資源有限。
6. 編程方式
目前的CPLD主要是基於EEPROM或FLASH存儲器編程,編程次數達1萬次。其優點是在系統斷
電後,編程信息不丟失。CPLD又可分為在編程器上編程和在系統編程(ISP)兩種。ISP器件的
優點是不需要編程器,編程、調試和維護都很方便。
FPGA大部分是基於SRAM編程,其缺點是編程數據信息在系統斷電時丟失,每次上電時,需
從器件的外部存儲器或計算機中將編程數據寫人SRAM中。其優點是可進行任意次數的編程,並
可在工作中快速編程,實現板級和系統級的動態配置,因此可稱為在線重配置(ICR:In Circuit
Reconfigurable)的PLD或可重配置硬件(RHP:Recontfigurable Hardware Product)。
4) FPGA和單片機的比較
FPGA和單片機,首先它們在硬件架構上不同,單片機無論是MCU還是MPU都是基於控制器和
算術邏輯單元進行工作的,而FPGA是基於查找表的硬件電路進行工作的,這一點正同於單片機
用的是軟件設計語言而FPGA用的是硬件描述語言一樣;其次,FPGA在芯片容量、組合邏輯、工
作速度、設計靈活上遠優於單片機;最後,在代碼的設計思想上也不一樣,單片機使用的是串
行的設計思想,而FPGA則使用的是並行的設計思想。