復雜的可編程邏輯器件CPLD規(guī)模大,結(jié)構(gòu)復雜,屬于大規(guī)模集成電路范圍。
CPLD有五個主要部分:邏輯陣列塊、宏單元、擴展乘積項、可編程連線陣列和I/O控制塊。
1.邏輯陣列塊(LAB)
一個邏輯陣列塊由16個宏單元的陣列組成,多個LAB通過可編程陣列(PIA)和全局總線連接在一起。全局總線從所有的專用輸入、I/O引腳和宏單元饋入信號。對于每個LAB有下列輸入信號。
來自作為通用邏輯輸入的PIA的36個信號
全局控制信號,用于寄存器輔助功能
從I/O引腳到寄存器的直接輸入通道
。陠卧
MAX7000系列中的宏單元由3個功能塊組成:邏輯陣列、乘積項選擇矩陣和可編程寄存器。各部分可以被獨自配置為時序邏輯和組合邏輯工作方式。其中邏輯陣列實現(xiàn)組合邏輯,可以為每個宏單元提供5個乘積項。乘積項選擇矩陣分配這些乘積項作為到“或門”和“異或門”的主要邏輯輸入,以實現(xiàn)組合邏輯函數(shù),或者把這些乘積項作為宏單元中寄存器的輔助輸入:如清零、置位、時鐘和時鐘使能控制。
每個宏單元中的觸發(fā)器可以單獨地編程為具有可編程時鐘控制的D、T、JK或RS觸發(fā)器的工作方式。觸發(fā)器的時鐘、清零輸入可以通過編程選擇使用專用的全局清零和全局時鐘,或使用內(nèi)部邏輯(乘積項邏輯陣列)產(chǎn)生的時鐘和清零。觸發(fā)器也支持異步清零和異步置位功能,乘積項選擇矩陣分配乘積項來控制這些操作。如果不需要觸發(fā)器,也可以將此觸發(fā)器旁路,信號直接輸給PIA或輸出到I/O引腳,以實現(xiàn)組合邏輯工作方式。
3.擴展乘積項
每個宏單元的一個乘積項可以反相回送到邏輯陣列。這個“可共享”的乘積項能夠連到同一個LAB中的任何其它乘積項上。盡管大多數(shù)邏輯函數(shù)能夠用每個宏單元中的5個乘積項實現(xiàn),但在某些復雜的邏輯函數(shù)中需要附加乘積項。為提供所需的邏輯資源,可以利用另一個宏單元,MAX70000結(jié)構(gòu)也允許利用共享和并聯(lián)擴展乘積項,這兩種擴展項可作為附加的乘積項直接送到本LAB的任意宏單元中。利用擴展項可保證在實現(xiàn)邏輯綜合時,用盡可能少的邏輯資源實現(xiàn)盡可能快的工作速度。
4.可編程連線陣列PIA
通過可編程連線陣列可將各LAB相互連接構(gòu)成所需的邏輯。這個全局總線是可編程的通道,它能把器件中任何信號源連到其目的地。所有MAX7000系列器件的專用輸入、I/O引腳和宏單元輸出均饋送到PIA,PIA可把這些信號送到整個器件內(nèi)的各個地方。只有每個LAB所需的信號才真正給它布置從PIA到該LAB的連線,如圖是PIA信號布線到LAB的方式。
5.I/O控制塊