關於CPLD與FPGA的對比分析

1.PLD/FPGA/CPLD

PLD(Programmable Logic Device):可編程邏輯器件,數字集成電路半成品,芯片上按照一定的排列方式集成了大量的門和觸發器等基本邏輯元件,使用者按照設計要求運用開發工具將這些片內的元件連接起來,此過程稱為編程;

FPGA:基於查找表技術,要外掛配置用的EEPROM的PLD產品;由邏輯功能塊排列為陣列,並由可編程的內部連線連接這些功能塊。

CPLD(複雜可編程邏輯器件 Complex Programmable Logic Device):基於乘積項技術,不需要外掛配置用的PLD產品。由可編程的與門,或門陣列以及宏單元構成。與門,或門陣列可以重新編程,實現多種邏輯功能。宏單元則可以實現組合,時序邏輯功能模塊。

2.CPLD與FPGA的結構

CPLD一個基本單元(宏單元)就可以分解十幾個甚至20,30多個組合邏輯輸入,而FPGA的一個基本單元(LUT)只能處理4輸入的組合邏輯,由此看來,CPLD適合用於設計譯碼等複雜的組合邏輯電路。

FPGA中包含的基本單元和觸發器數量很多,成千上萬,而CPLD一般只能做到512個邏輯單元。因此,在設計中使用到大量觸發器,如設計一個複雜的時序邏輯電路,那麼就應該用FPGA。

3.CPLD的工作原理

CPLD是基於乘積項的,此種CPLD的結構主要包括宏單元,可編程的連線(PIA)和I/O控制模塊,基本邏輯功能就是由宏單元來實現的。

PIA則起到複雜信號傳遞,連接所有宏單元的作用,I/O控制塊負責輸入輸出的電氣特性控制。INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2是全局時鐘,清零和輸出使能信號,這些信號有專用連線與CPLD中每個宏單元相連。

关于CPLD与FPGA的对比分析

CPLD器件結構圖

CPLD的宏單元左側是乘積項陣列,即“與或”陣列,每個交叉點都是一個可編程熔絲,如果導通就實現“與”邏輯,後面的乘積項選擇矩陣是一個“或”陣列,兩者一起實現組合邏輯。最右側是一個可編程的D觸發器,它的時鐘,清零輸入都可以編程選擇。

关于CPLD与FPGA的对比分析

CPLD宏單元圖

4.FPGA的工作原理

FPGA是基於查找表的原理與結構,查找表簡稱LUT(Look-Up-Table),本質上就是一個RAM(掉電不保存數據),目前使用最多的是4輸入LUT,用戶通過原理圖或硬件描述語言描述了一個邏輯電路以後,FPGA開發軟件會自動計算邏輯電路的所有可能的結果,並把結果事先寫入RAM,這樣,每輸入一個信號進行邏輯運算就等於輸入一個地址進行查表,找出地址對應的內容,然後輸出即可。

关于CPLD与FPGA的对比分析

4輸入與門實現邏輯電路和LUT的實現方式


分享到:


相關文章: