復(fù)雜可編程邏輯器件CPLD的基本結(jié)構(gòu)
1.基于乘積項(xiàng)的CPLD結(jié)構(gòu)
CPLD的結(jié)構(gòu)是基于乘積項(xiàng)(Product-Term)的,現(xiàn)在以Xilinx公司的XC9500XL系列芯片為例介紹CPLD的 基本結(jié)構(gòu),如圖1所示,其他型號(hào)CPLD的結(jié)構(gòu)與此非常類似。
CPLD可分為3部分:功能模塊(Function Block)、快速互連矩陣(FastCONNECT Ⅱ Switch Matrix)和I/O控制模塊。每個(gè)功能模塊包括可編程與陣列、乘積項(xiàng)分配器和18個(gè)宏單元,功能模塊的結(jié) 構(gòu)如圖2所示??焖倩ミB矩陣負(fù)責(zé)信號(hào)傳遞,連接所有的功能模塊。I/O控制模塊負(fù)責(zé)輸人輸出的電氣特性 控制,比如可以設(shè)定集電極開路輸出、三態(tài)輸出等。圖1中的I/O/GCK,I/O/GSR,1/0/GTS是全局時(shí)鐘、全 局復(fù)位和全局輸出使能信號(hào),這幾個(gè)信號(hào)有專用連線與CPLD中每個(gè)功能模塊相連,信號(hào)到每個(gè)功能模塊的 延時(shí)相同并且延時(shí)最短。
圖1 基于乘積項(xiàng)的CPLD內(nèi)部結(jié)構(gòu)
圖2 功能模塊的結(jié)構(gòu)
宏單元是CPLD的基本結(jié)構(gòu),由它來實(shí)現(xiàn)基本的邏輯功能。圖3所示為宏單元的基本結(jié)構(gòu)。圖3中左側(cè)是乘 積項(xiàng)陣列,實(shí)際就是一個(gè)與或陣列,每一個(gè)交叉`點(diǎn)都是可編程的,如果導(dǎo)通就實(shí)現(xiàn)“與”邏輯,與后面的乘積項(xiàng)分配器一起完成組合邏輯。圖3右側(cè)是一個(gè)可編程的觸發(fā)器,可配置為D觸發(fā)器或T觸發(fā)器,它的時(shí)鐘、清零輸入都可以編程選擇,可以使用專用的全局清零和全局時(shí)鐘,也可以使用內(nèi)部邏輯(乘積項(xiàng)陣列)產(chǎn)生的時(shí)鐘和清零。如果不需要觸發(fā)器,也可以將此觸發(fā)器旁路,信號(hào)直接輸出給互連矩陣或輸出到I/0腳。
圖3 CPLD的宏單元結(jié)構(gòu)
2.CPLD邏輯實(shí)現(xiàn)原理
下面以一個(gè)簡單的電路為例,具體說明CPLD是如何利用以上結(jié)構(gòu)實(shí)現(xiàn)邏輯的,電路如圖4所示。
假設(shè)組合邏輯的輸出為f,則f=(A十B)* C *(!D)=A * C*!D+B*C *!D(以!D表示D的“非”),CPLD將以圖5的方式來實(shí)現(xiàn)組合邏輯f。
A,B,C,D由PLD芯片的引腳輸人后進(jìn)入互連矩陣,在內(nèi)部會(huì)產(chǎn)生A,A,B,B,C,C,D,D 8個(gè)輸出。圖5中每一個(gè)叉表示相連(可編程熔絲導(dǎo)通),所以得到:f=fl+12=(A* C *!D)+(B*C*!D),這樣就實(shí)現(xiàn)了組合邏輯。圖4中,D觸發(fā)器的實(shí)現(xiàn)比較簡單,直接利
圖4 簡單邏輯電路 圖5 CPLD的邏輯實(shí)現(xiàn)
用宏單元中的可編程D觸發(fā)器來實(shí)現(xiàn)。時(shí)鐘信號(hào)CLK由I/O腳輸入后進(jìn)人芯片內(nèi)部的全局時(shí)鐘專用通道,直接連接到可編程觸發(fā)器的時(shí)鐘端??删幊逃|發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片引腳。這樣CPLD就完成了圖4所示電路的功能。以上這些步驟都是由軟件自動(dòng)完成的,不需要人為干預(yù)。
圖4的電路是一個(gè)很簡單的例子,只需要一個(gè)宏單元就可以完成。但對(duì)于一個(gè)復(fù)雜的電路,一個(gè)宏單元是不可能實(shí)現(xiàn)的,這時(shí)就需要通過并聯(lián)擴(kuò)展項(xiàng)和共享擴(kuò)展項(xiàng)將多個(gè)宏單元相連,宏單元的輸出也可以連接到互連矩陣,再作為另一個(gè)宏單元的輸入。這樣CPLD就可以實(shí)現(xiàn)更復(fù)雜的邏輯。
這種基于乘積項(xiàng)的CPLD基本都是由E2PROM和Flashェ藝制造的,一上電就可以工作,無須其他芯片配合。
歡迎轉(zhuǎn)載,信息來源維庫電子市場網(wǎng)(www.dzsc.com)
來源:ks992次