可編程邏輯陣列(PLA)簡(jiǎn)介
一.PLA的基本概念
可編程邏輯陣列原文是英文的ProgrammableLogicArray,簡(jiǎn)稱(chēng)PLA,是一種可編程邏輯裝置,它的與陣列(AND array)和或陣列(OR array)均為可編程,輸出電路為不可組態(tài)。又叫做FPLA(field-programmable logic array)??删幊踢壿嬯嚵蠵LA是一種可程式化的裝置,可用來(lái)實(shí)現(xiàn)組合邏輯電路。PLA具有一組可程式化的AND階,AND階之后連接一組可程式化的OR階,如此可以達(dá)到:“只在合乎設(shè)定條件時(shí)才允許產(chǎn)生邏輯訊號(hào)輸出?!?/P>
可編程邏輯陣列(可編程邏輯控制器)PLA如此的邏輯閘佈局能用來(lái)規(guī)劃大量的邏輯函式,這些邏輯函式必須先以積項(xiàng)(有時(shí)是多個(gè)積項(xiàng))的原始形式進(jìn)行齊一化。
從實(shí)現(xiàn)邏輯函數(shù)的角度看,對(duì)于大多數(shù)邏輯函數(shù)而言,并不需要使用全部最小項(xiàng),尤其對(duì)于包含約束條件的邏輯函數(shù),許多最小項(xiàng)是不可能出現(xiàn)的。PROM的“與” 陣列固定地產(chǎn)生n個(gè)輸入變量的全部最小項(xiàng)。因此,PROM的“與”陣列不能獲得充分利用而造成硬件浪費(fèi),使得芯片面積的利用率不高。為了克服PROM的不足,產(chǎn)省了一種“與”陣列和“或”陣列均可編程的邏輯器件,即可編程邏輯陣列PLA(可編程邏輯控制器件)。
二.PLA的類(lèi)型
PLA可分為組合可編程邏輯陣列PLA和時(shí)序可編程邏輯陣列PLA兩種類(lèi)型。
1.組合可編程邏輯陣列PLA
邏輯結(jié)構(gòu):由一個(gè)“與”陣列和一個(gè)“或”陣列構(gòu)成,“與”陣列和“或”陣列都是可編程的。
在可編程邏輯陣列PLA(可編程邏輯控制器件的發(fā)展)中,n個(gè)輸入變量的“與”陣列不是產(chǎn)生2n個(gè)“與”項(xiàng),而是有P個(gè)與門(mén)就提供P個(gè)“與”項(xiàng),每個(gè)“與”項(xiàng)與哪些變量相關(guān)可由編程決定?!盎颉标嚵型ㄟ^(guò)編程可選擇需要的“與”項(xiàng)相“或”、形成“與-或”函數(shù)式。
由PLA實(shí)現(xiàn)的函數(shù)式是最簡(jiǎn)“與-或”表達(dá)式。PLA的存儲(chǔ)容量不僅與輸入變量個(gè)數(shù)和輸出端個(gè)數(shù)有關(guān),而且還和它的“與”項(xiàng)數(shù)(即與門(mén)數(shù))有關(guān),其存儲(chǔ)容量用輸入變量數(shù)(n)、與項(xiàng)數(shù)(p)、輸出端數(shù)(m)來(lái)表示。
2.時(shí)序可編程邏輯陣列PLA
邏輯結(jié)構(gòu):由“與”陣列、“或”陣列和一個(gè)用于存儲(chǔ)以前狀態(tài)的觸發(fā)器網(wǎng)絡(luò)構(gòu)成。
觸發(fā)器網(wǎng)絡(luò)中包含若干觸發(fā)器,它們的輸入接受“或”陣列輸出及時(shí)鐘脈沖、復(fù)位信號(hào)的控制,其輸出反饋到“與”陣列,用來(lái)和現(xiàn)有輸入一起產(chǎn)生“與”項(xiàng)輸出。
可編程邏輯陣列設(shè)計(jì)方法是指用戶(hù)通過(guò)生產(chǎn)商提供的通用器件自行進(jìn)行現(xiàn)場(chǎng)編程和制造,或者通過(guò)對(duì)與或矩陣進(jìn)行掩膜編程,得到所需的專(zhuān)用集成電路。
采用可編程邏輯陣列PLA進(jìn)行邏輯設(shè)計(jì),可以十分有效地實(shí)現(xiàn)各種邏輯功能。相對(duì)PROM而言,PLA更靈活、更經(jīng)濟(jì)、結(jié)構(gòu)更簡(jiǎn)單。用PLA設(shè)計(jì)組合邏輯電路時(shí),一般首先將給定問(wèn)題的邏輯函數(shù)按多輸出邏輯函數(shù)的化簡(jiǎn)方法簡(jiǎn)化成最簡(jiǎn)“與-或”表達(dá)式,然后,根據(jù)最簡(jiǎn)表達(dá)式中的不同“與” 項(xiàng)以及各函數(shù)式的“與”項(xiàng)之和分別構(gòu)成“與”陣列和“或”陣列,并畫(huà)出陣列邏輯圖。
三.可編程邏輯陣列PLA的應(yīng)用
在可編程邏輯陣列PLA的應(yīng)用中,有一種是用來(lái)控制資料路徑,在指令集內(nèi)事先定義好邏輯狀態(tài),并用此來(lái)產(chǎn)生下一個(gè)邏輯狀態(tài)(透過(guò)條件分支)。
舉例來(lái)說(shuō),如果目前機(jī)器(指整個(gè)邏輯系統(tǒng))處于二號(hào)狀態(tài),如果接下來(lái)的執(zhí)行指令中含有一個(gè)立即值(偵測(cè)到立即值的欄位)時(shí),機(jī)器就從第二狀態(tài)轉(zhuǎn)成四號(hào)狀態(tài),并且也可以進(jìn)一步定義進(jìn)入第四狀態(tài)后的接續(xù)動(dòng)作。因此PLA等于扮演(晶片)系統(tǒng)內(nèi)含的邏輯狀態(tài)圖(statediagram)角色。
除了可編程邏輯陣列PLA外,其他常用的可程式邏輯裝置還有可程式陣列邏輯(PAL)、複雜可程式邏輯裝置(CPLD)以及現(xiàn)場(chǎng)可程式邏輯閘陣列(FPGA)。
要注意的是,雖然可程式邏輯陣列一詞中帶有“可程式”一字,但不表示所有的PLA都是具有現(xiàn)場(chǎng)性的可程式化能力。事實(shí)上許多都屬遮罩性的可程式化,性質(zhì)與ROM相同,必須在晶片製造廠(chǎng)內(nèi)就執(zhí)行與完成程式化設(shè)定,尤其是內(nèi)嵌于電路較複雜的晶片(例如:微處理器)的PLA多屬此種程式化方式。
評(píng)論