孫宇舸,葉 檸,李景宏
(東北大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽(yáng) 110819)
表決邏輯在實(shí)際生活中具有廣泛的應(yīng)用。如何設(shè)計(jì)表決邏輯電路是組合邏輯電路的重要研究?jī)?nèi)容。
在大部分表決邏輯電路的分析與設(shè)計(jì)中,通常都是以三人表決邏輯電路的設(shè)計(jì)[1-4]為例來(lái)說(shuō)明組合邏輯電路的設(shè)計(jì)方法,很少涉及五人以上的表決邏輯電路的設(shè)計(jì)。因?yàn)楫?dāng)邏輯變量個(gè)數(shù)較多時(shí),輸入輸出的邏輯關(guān)系以及邏輯函數(shù)的化簡(jiǎn)和電路設(shè)計(jì)都比較復(fù)雜。但是在實(shí)際的生產(chǎn)和生活當(dāng)中,多人表決邏輯具有廣泛的需求[5],本文就是以七人表決邏輯電路設(shè)計(jì)為例,說(shuō)明多人表決邏輯的設(shè)計(jì)方法和電路實(shí)現(xiàn)。
本文主要研究了七變量的表決電路的邏輯關(guān)系,提出了簡(jiǎn)易的七變量表決邏輯卡諾圖的化簡(jiǎn)方法,將原本復(fù)雜而龐大的七變量卡諾圖分解為4個(gè)四變量卡諾圖,實(shí)現(xiàn)化繁為簡(jiǎn),從而得出七人表決邏輯的邏輯函數(shù)表達(dá)式,通過(guò)對(duì)邏輯函數(shù)表達(dá)式的分析與變換,通過(guò)數(shù)據(jù)選擇器進(jìn)一步簡(jiǎn)化電路,實(shí)現(xiàn)了七人表決邏輯電路的設(shè)計(jì)。
表決邏輯電路是根據(jù)輸入狀態(tài)決定輸出狀態(tài),因此屬于組合邏輯電路。組合邏輯電路的設(shè)計(jì)步驟[6]如圖1所示。
圖1 組合邏輯電路的設(shè)計(jì)步驟
通常把事件的起因定義為輸入邏輯變量,事件的結(jié)果定義為輸出邏輯變量,并用二值邏輯的0和1對(duì)輸入和輸出變量進(jìn)行邏輯賦值[5]。
七人表決邏輯的邏輯功能為:由七人投票決定決議是否通過(guò)。當(dāng)多數(shù)人投票同意時(shí),即同意人數(shù)大于等于4人時(shí),表示決議通過(guò);當(dāng)同意人數(shù)小于4人時(shí),表示決議不被通過(guò)。因此該電路輸入變量為7個(gè),即參與投票的7人,分別用字母A、B、C、D、E、F、G表示,“同意”定義為1,“不同意”定義為0。輸出變量表示決議是否被通過(guò),用字母Y表示,“通過(guò)”定義為1,“不通過(guò)”定義為0。
卡諾圖(Karnaugh map)是數(shù)字邏輯電路設(shè)計(jì)中的一種常用數(shù)學(xué)工具,是邏輯函數(shù)的一種圖形化表示方法,和真值表一樣可以表示邏輯函數(shù)和輸入邏輯變量之間的邏輯關(guān)系,與真值表具有一一對(duì)應(yīng)的關(guān)系,可以看做是真值表的一種變形。畫卡諾圖時(shí),需要注意要將邏輯上相鄰的最小項(xiàng)變成幾何位置上相鄰的方格圖,做到邏輯相鄰和幾何相鄰的一致性[6]。
在七人表決邏輯中,由于輸入變量為7個(gè),因此輸入變量的取值組合一共有27=128種,可見無(wú)論是七變量的真值表還是卡諾圖都會(huì)相當(dāng)復(fù)雜,因此本文針對(duì)表決邏輯,提出一種將七變量卡諾圖轉(zhuǎn)換為4個(gè)四變量卡諾圖的方法。
將三個(gè)輸入變量E、F、G單獨(dú)考慮,則可以將七人表決邏輯功能分為四種情況:
(1)當(dāng)EFG三個(gè)變量都為0時(shí),即EFG=000,則A、B、C、D四個(gè)變量都為1時(shí),輸出Y=1,其他取值組合輸出Y=0,對(duì)應(yīng)的卡諾圖如圖2所示。
圖2 七人表決邏輯卡諾圖(EFG=000)
(2)當(dāng)EFG三個(gè)變量中有一個(gè)變量為1時(shí),即EFG=001/010/100時(shí),則A、B、C、D四個(gè)變量中至少有三個(gè)變量為1時(shí),輸出Y=1,其他取值組合輸出Y=0,對(duì)應(yīng)的卡諾圖如圖3所示。
圖3 七人表決邏輯卡諾圖(EFG=001/010/100)
(3)當(dāng)EFG三個(gè)變量中有兩個(gè)變量為1時(shí),即EFG=011/101/110,則A、B、C、D四個(gè)變量至少有兩個(gè)變量為1時(shí),輸出Y=1,其他取值組合輸出Y=0,對(duì)應(yīng)的卡諾圖如圖4所示。
圖4 七人表決邏輯卡諾圖(EFG=011/101/110)
(4)當(dāng)EFG三個(gè)變量都為1時(shí),即EFG=111時(shí),則A、B、C、D四個(gè)變量中至少有一個(gè)變量為1時(shí),輸出Y=1,其他取值組合輸出Y=0,對(duì)應(yīng)的卡諾圖如圖5所示。
圖5 七人表決邏輯卡諾圖(EFG=111)
由于卡諾圖用幾何位置的相鄰表示了構(gòu)成函數(shù)的各個(gè)最小項(xiàng)在邏輯上的相鄰性,因此可以方便地求出邏輯函數(shù)的最簡(jiǎn)與或式,進(jìn)而實(shí)現(xiàn)邏輯電路。
卡諾圖化簡(jiǎn)邏輯函數(shù)的基本原則[7]為:
(1)圈1方格得邏輯原函數(shù),圈0方格得邏輯反函數(shù)。
(2)包圍圈必須覆蓋所有的1方格。
(3)包圍圈中1的個(gè)數(shù)必須是2n個(gè)相鄰的1。
(4)包圍圈的個(gè)數(shù)必須最少(乘積項(xiàng)最少)。
(5)包圍圈越大越好(消去的變量多)。
(6)每個(gè)包圍圈至少包含一個(gè)新的最小項(xiàng)。
根據(jù)上述原則,分別對(duì)圖2-圖5的卡諾圖進(jìn)行化簡(jiǎn),具體的包圍圈的畫法如圖中所示:
(1)當(dāng)EFG三個(gè)變量都為0時(shí),化簡(jiǎn)圖2卡諾圖的包圍圈,得邏輯函數(shù)表達(dá)式為:
(2)當(dāng)EFG三個(gè)變量中有一個(gè)變量為1時(shí),化簡(jiǎn)圖3卡諾圖的包圍圈,得邏輯函數(shù)表達(dá)式為:
(ABC+ABD+ACD+BCD)(E'F'G+E'FG'+EF'G')。
(3)當(dāng)EFG三個(gè)變量中有兩個(gè)變量為1時(shí),化簡(jiǎn)圖4卡諾圖的包圍圈,得邏輯函數(shù)表達(dá)式為:
(4)當(dāng)EFG三個(gè)變量都為1時(shí),化簡(jiǎn)圖5卡諾圖的包圍圈,得邏輯函數(shù)表達(dá)式為:
綜上所述,則七人表決邏輯的最簡(jiǎn)邏輯函數(shù)的與或表達(dá)式為:
基于七人表決邏輯的邏輯功能描述,當(dāng)大于等于4人同意時(shí),決議通過(guò),按照排列組合的方法可以確定一共有C74=35種組合,在邏輯函數(shù)表達(dá)式(5)中,邏輯函數(shù)為35個(gè)與項(xiàng)的或,與分析一致。
邏輯圖是利用邏輯門來(lái)完成邏輯功能的電路圖。基于邏輯函數(shù)表達(dá)式(5),利用35個(gè)8輸入與門,4個(gè)8輸入或門,1個(gè)3輸入或門和1個(gè)5輸入或門即可實(shí)現(xiàn)七人表決邏輯的邏輯函數(shù),基于基本邏輯門的七人表決邏輯的邏輯圖如圖6所示。
圖6 基于基本邏輯門的七人表決邏輯的邏輯圖
由圖6可以看出,基于基本邏輯門實(shí)現(xiàn)的七人表決邏輯電路需要使用41個(gè)不同輸入變量的基本邏輯門,邏輯門數(shù)量眾多,電路復(fù)雜,可考慮進(jìn)一步對(duì)電路進(jìn)行簡(jiǎn)化。
邏輯函數(shù)表達(dá)式(5)可以改寫為:
+(A+B+C+D+C)EFG。
根據(jù)八選一數(shù)據(jù)選擇器的邏輯函數(shù):
將EFG三個(gè)變量看做八選一數(shù)據(jù)選擇器的地址輸入端A2A1A0,則有:
由此基于八選一數(shù)據(jù)選擇器74LS151實(shí)現(xiàn)的七人表決邏輯電路的電路圖如圖7所示。
圖7 基于數(shù)據(jù)選擇器的七人表決邏輯電路圖
采用數(shù)據(jù)選擇器將大大減少基本邏輯門的數(shù)量,大大簡(jiǎn)化了電路結(jié)構(gòu),使電路更為穩(wěn)定并具有一定的可擴(kuò)展性。
本文研究了數(shù)字邏輯電路中的七人表決邏輯電路的設(shè)計(jì)方法,提出了基于表決邏輯的多變量卡諾圖的化簡(jiǎn)方法,分別采用基本邏輯門電路和數(shù)據(jù)選擇器兩種方式實(shí)現(xiàn)了七人表決邏輯電路。文章的研究方法可向多變量表決邏輯電路擴(kuò)展,為組合邏輯電路的分析與設(shè)計(jì)提供了新思路。