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