fpga和cpld是現代數字電路設計中經常使用的兩種可編程邏輯器件。fpga是現場可編程門陣列(field-programmable gate array)的縮寫,而cpld是復雜可編程邏輯器件(complex programmable logic device)的縮寫。雖然它們都是可編程邏輯器件,但是它們之間有很多不同之處。本文將詳細介紹fpga和cpld的區(qū)別,包括它們的結構、特點、應用場景等方面。
一、fpga和cpld的結構區(qū)別
1. fpga的結構
fpga由大量的邏輯單元和可編程連接資源組成,邏輯單元和連接資源可以通過編程實現任意的邏輯功能。fpga的邏輯單元通常是可重復使用的小規(guī)模邏輯單元,例如lut(查找表)、寄存器、算術單元等,這些邏輯單元可以組成各種復雜的電路。fpga的可編程連接資源通常包括可編程互連資源和可編程時鐘資源??删幊袒ミB資源是用于連接邏輯單元之間的信號線,可編程時鐘資源是用于控制電路時序的時鐘信號。
fpga的可編程連接資源通常通過查找表(lut)和開關矩陣(switch matrix)來實現。lut是一種用于存儲邏輯函數的存儲器,可以實現任意的邏輯函數,例如與、或、非、異或等。開關矩陣是用于連接lut和其他邏輯單元的開關網絡,它可以實現任意的邏輯連接。fpga的時鐘資源通常由可編程時鐘控制器和可編程延遲鎖存器(dll)組成。
2. cpld的結構
cpld由大量的可編程邏輯單元和可編程互連資源組成,邏輯單元和連接資源可以通過編程實現任意的邏輯功能。cpld的邏輯單元通常是可重復使用的大規(guī)模邏輯單元,例如門陣列(and-or陣列)、寄存器等,這些邏輯單元可以組成各種復雜的電路。cpld的可編程互連資源通常是由大量的可編程開關和可編程連接線組成的。可編程開關通常是由反相輸出門和反相輸入門組成的,可編程連接線可以在邏輯單元之間任意連接。
cpld的邏輯單元和可編程互連資源通常是按照一定規(guī)律排列的,例如按行、按列、按網格等。這種排列方式可以有效地減少布線延遲和功耗。