這里介紹兩種常用的集成電路優(yōu)先編碼器74147和74148,它們都有ttl和cmos(74hc147、74hc148)的定型產(chǎn)品。74147和74hc147,74148和74hc148在邏輯功能上沒有區(qū)別,只是電性能參數(shù)不同。以下只分析邏輯功能及介紹它們的應(yīng)用方法。
1.8線—3線優(yōu)先編碼器74148
優(yōu)先編碼器74148的邏輯圖和引腳圖分別如圖1(a)和1(b)所示,其功能如表1所示
圖1 優(yōu)先編碼器74148的邏輯圖和引腳圖(a)邏輯圖(b)引腳圖
該編碼器有8個信號輸入端,3個二進制碼輸出端。此外,電路還設(shè)置了輸入使能端ei,輸出使能端eo和優(yōu)先編碼工作狀態(tài)標志gs。 當ei=0時,編碼器工作;當ei=1時,則不論8個輸入端為何種狀態(tài),3個輸出端均為高電平,且優(yōu)先標志端和輸出使能端均為高電平,編碼器處于非工作狀態(tài)。這種情況被稱為輸入低電平有效,輸出也有低電平有效的情況。當ei為0,且至少有一個輸入端有編碼請求信號(邏輯0)時,優(yōu)先編碼工作狀態(tài)標志gs為0,表明編碼處于工作狀態(tài),否則為1。由功能表可知,在8個輸入端均無低電平輸入信號和只有輸入0端(優(yōu)先級別最低位) 有低電平輸入時,a2a1a0均為111,出現(xiàn)了輸入條件不同輸出代碼相同的情況,這可由gs的狀態(tài)加以區(qū)別,gs=1時,表示8個輸入端均為無低電平輸入,此時a2a1a0=111為非編碼輸出;gs=0時,a2a1a0=111表示響應(yīng)輸入0的輸出代碼,a2a1a0=111可編碼輸出。eo只有在ei為0,且所有輸入端都為1時,輸出為0,它可與另一片同樣器件的ei連接,以便組成更多輸入端的優(yōu)先編碼器。
表1 優(yōu)先編碼器74148功能表
(這里不采用對變量符號加非號的方式表示低電平有效,防止會引起與其他非號的混淆。)
從功能表不難看出,輸入優(yōu)先級別的次序依次為7,6,…,0。輸入有效信號為低電平,當某一輸入端有低電平輸入,且比它優(yōu)先級別高的輸入端無低電平輸入時,輸出端才輸出相對應(yīng)的輸入端的代碼。例如,輸入5為0,且優(yōu)先級別比它高的輸入6和輸入7均為1時,輸出代碼為010,這就是優(yōu)先編碼器的工作原理。
為了能夠列出邏輯表達式,我們設(shè)輸入0,1,…,7對應(yīng)的變量為i0,i1,…,i7,根據(jù)功能表,寫出各輸出端的邏輯表達式。
以a2為例推導(dǎo)輸出代碼的邏輯表達式。
利用a+ab=a+b和a+a=1的關(guān)系,化簡得a2=ei+i4i5i6i7
經(jīng)過變換得
同理可得輸出a1和a0的表達式如下:
由上式分析可知,上式與圖1所示邏輯電路一致。
下面通過舉例來了解74148的應(yīng)用。
例1用兩片74148組成16位輸入、4位二進制碼輸出的優(yōu)先編碼器,邏輯圖如下圖所示,試分析其工作原理。
圖2 例5.2.1的邏輯圖
解:根據(jù)表5.2.4對邏輯圖進行分析,可以得出:
(1)當ei2=1時,eo2=1,從而使ei1=1,這時74148(i)(ii)均禁止編碼,它們的輸出端a2a1a0都是111。由電路圖可知,gs=gs1·gs2=1,表示此時整個電路的代碼輸出端dcba=1111是非編碼輸出。
(2)當ei2=0時,高位片(ii)允許編碼,但若i15~i8都是高電平,即均無編碼請求,則eo2=0,從而ei1=0,允許低位片(i)編碼。這時高位片的a2a1a0=111,使門c、b、a都打開,c、b、a取決于低位片的a2a1a0,而d=gs2,總是等于1,所以輸出代碼在1111~1000之間變化。如果i0單獨有效,輸出為1111;如果i7及任意其他輸入同時有效,則輸出為1000,低位片以i7的優(yōu)先級別最高。
(3)當ei2=0且i15~i8中有編碼請求(至少一個為低電平)時,eo2=1,從而ei1=1,高位片編碼,低位片禁止編碼。顯然,高位片的編碼級別優(yōu)先于低位片。此時d=gs2=0,c、b、a取決于高位片的a2a1a0,輸出代碼在0111~0000之間變化,同理可知,高位片中的i15的優(yōu)先級別最高。整個電路實現(xiàn)了16位輸入的優(yōu)先編碼,其中i15具有最高的優(yōu)先級別,優(yōu)先級別從i15至i0依次遞減。
例2 優(yōu)先編碼器74147的功能如表2(實線部分)所示,試用74147和適當?shù)拈T構(gòu)成輸出為8421bcd碼并具有編碼輸出標志的編碼器。
表2 例2表
圖3 例2 的邏輯圖
解:由表2可知,輸出dcba是8421bcd碼的反碼,因此只要在74147的輸出端增加反相器就可以獲得題中所要求的輸出碼。在輸入端均為高電平時gs為1,而有低電平信號輸入時gs為0,可由非門實現(xiàn)此功能,題中所要求的編碼器的邏輯電路如圖3所示。
綜上所述,對編碼器歸納為以下幾點:
1.編碼器的輸入端子數(shù)n(要進行編碼的信息的個數(shù))與輸出端子數(shù)n(所得編碼的位數(shù))之間應(yīng)滿足關(guān)系式n≤2n。
2.編碼器的每個輸入端都代表一個二進制數(shù)、十進制數(shù)或其它信息符號,而且在n個輸入端中每次只允許有一個輸入端輸入信號(輸入低電平有效或輸入高電平有效),輸出為相應(yīng)的二進制代碼或二-十進制代碼(bcd碼)。
3.正確使用編碼器的控制端,可以用來擴展編碼器的功能。