FPGA和CPLD的區別有哪些
時間:2017-08-04作者:互聯網
FPGA和CPLD的區別有哪些呢?盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點,但是也還是有很多區別的,我們一起來看下:
1)FGPGA和CPLD在概念上的區別 PLD(Programmable Logic Device)是可編程邏輯器件的總稱,早期多EEPROM工藝,基于乘積項(Product Term)結構。 FPGA (Field Programmable Gate Arry)是指現場可編程門陣列,早由Xilinx公司發明。多為SRAM 工藝,基于查找表(Look Up Table)結構,要外掛配置用的EPROM。 Xilinx把SRAM工藝,要外掛配置用的EPROM的PLD叫FPGA,把Flash工藝(類似EEPROM工藝),乘積項結構的PLD叫CPLD; Altera把自己的PLD產品:MAX系列(EEPROM工藝),FLEX/ACEX/APEX系列(SRAM工藝)都叫作CPLD,即復雜PLD(Complex PLD)。 由于FLEX/ACEX/APEX系列也是SRAM工藝,要外掛配置用的EPROM,用法和Xilinx的FPGA一樣,所以很多人把Altera的FELX/ACEX/APEX系列產品也叫做FPGA. 2)FGPGA和CPLD在結構上的主要區別 邏輯塊的粒度不同 邏輯塊指PLD 芯片中按結構劃分的功能模塊,它有相對獨立的組合邏輯陣列,塊間靠互連系統聯系.FPGA 中的CLB 是邏輯塊,其特點是粒度小,輸入變量為4~8 ,輸出為1~2 ,因而只是一個邏輯單元,每塊芯片中有幾十到近千個這樣的單元. CPLD中邏輯塊粒度較大,通常有數十個輸入端和一、二十個輸出端,每塊芯片只分成幾塊. 有些集成度較低的(如ATV2500) 則干脆不分塊. 顯然,如此粗大的分塊結構使用時不如FPGA 靈活. 邏輯之間的互連結構不同 CPLD 的邏輯塊互連是集總式的,其特點是等延時,任意兩塊之間的延時是相等的,這種結構給設計者帶來很大方便; FPGA 的互連則是分布式的,其延時與系統的布局有關, 3)FGPGA和CPLD在應用范圍上的區別 邏輯系統通常可分兩大類型: 1、邏輯密集型: 如高速緩存控制、DRAM 控制和DMA 控制等,它們僅需要很少的數據處理能力,但邏輯關系一般都復雜 2、數據密集型: 數據密集型需要大量數據處理能力,其應用多見于通訊領域. 為了選擇合適的PLD 芯片,應從速度與性能、邏輯利用率、使用方便性、編程技術等方面進行考查。 速度與性能: 數據密集型系統,比如,通訊中對信號進行處理的二維卷積器. 在實現這一算法的邏輯系統中,每個單元所需要的輸入端較少,但需要很多這樣的邏輯單元. 這些要求與FPGA 的結構相吻合. 因為FPGA 的粒度小,其輸入到輸出的傳輸延遲時間很短,因而能獲得高的單元速度.而控制密集型系統通常是輸入密集型的,邏輯復雜,CLB 的輸入端往往不夠用,需把多個CLB 串行級聯使用,同時CLB 之間的連接有可能通過多級通用PI 或長線,導致速度急劇下降. 因而實際的傳輸延遲時間要大CPLD. 比如,實現一個DRAM 控制器,它由四個功能塊組成:刷新狀態機、刷新地址計數器、刷新定時器和地址選擇開關,需要的輸入端有幾十個,顯然用CPLD 更合適. 邏輯利用率: 邏輯利用率是指器件中資源被利用的程度. CPLD 邏輯寄存器少,FPGA 邏輯弱而寄存器多,這正好與控制密集型系統與數據密集型系統相對應. 比如, 規模同為6000PLD 門的is2pLSI1032 有192 個寄存器;而XC4005E 有616 個寄存器. 因此從邏輯利用率角度,對于組合電路較復雜的設計,宜采用顆粒較粗的CPLD ,觸發器較多的設計,宜采用用細顆粒的FPGA. 使用方便性: 使用方便首先要考慮性能的可預測性,在這點上CPLD 優于FPGA. 對于CPLD ,通常只要輸入、輸出端口數,內部門和觸發器數目不超過芯片的資源并有一定裕量,總是可以實現的. 而FPGA ,則很難預測,因為完成設計所需的CLB 邏輯級數是無法事實確定的,只有靠多次試驗才能得到滿意的結果. 編程技術: FPGA 編程信息存放在外部存儲器,要附加存儲器芯片,其保密性差,斷電后數據易丟失. CPLD采用佳的E2CMOS技術。 以上從概念、結構和應用范圍三個角度,對FPGA和CPLD的區別進行了簡單分析,希望對大家理解和學習FPGA有所幫助。
發表評論
|