摘 要:本文通過對約束項和任意項的討論,提出只有正確地識別和合理地使用約束項和任意項,才可以設計出最簡單、最科學、最適用的邏輯電路。
關鍵詞:邏輯電路 約束項 任意項 邏輯函數
邏輯電路的關鍵是建立數學模型(即將邏輯問題轉化成邏輯表達方式)。數學模型越簡單,所設計的邏輯電路就越簡單。邏輯電路設計的步驟是:將邏輯問題轉化成表達式,使用卡諾圖或公式化簡表達式,由化簡的表達式畫邏輯電路圖。由于一個邏輯函數的表達式不是唯一的,這就決定了相同功能的邏輯電路也不是唯一的。邏輯函數的表達方式越簡單,我們得到的邏輯電路也就越簡單。正確地識別、使用約束項和任意項是我們得到最簡邏輯函數表達式的重要手段。
一、約束項和任意項的概念
實踐中不會出現的,或者是實踐中可能出現但不允許出現的取值組合所對應的最小項稱之為約束項;有一些邏輯函數在一些輸入變量的組合情況下取值是任意的,我們稱它們所對應的最小項為任意項(約束項和任意項在真值表或卡諾圖中用φ來表示)。
例:試用三個主從JK觸發器設計一個能自啟動的異步六進制減法計數器。
解:(1)根據要求選擇D2、D1、D0三個主從JK觸發器。設D2、D1、D0三個主從JK觸發器的狀態輸出端分別為Q2、Q1、Q0,非狀態輸出端分別為2、1、0,D2、D1、D0三個觸發器的時鐘脈沖分別選擇為CP2=0、CP1=Q0、CP1=CP(計數脈沖)。
(2)由邏輯問題:六進制減法計數器可得狀態轉化表,即表1。
設三個觸發器的初態分別用Q2、Q1、Q0表示,次態分別用Q2n+1、Q1n+1、Q0n+1表示。
三個變量有八種組合,表1中沒有出現的兩種狀態組合110、111是六進制計數所不允許出現的,筆者把它們當作約束項來處理。表1中101、011、001三種狀態的組合,由于CP2=0、CP1=Q0,觸發器D2、D1的時鐘脈沖Q0的下降沿還沒有來,觸發器的次態應等于初態,保持不變。若把次態當作相反的狀態,實際上也不會翻過來改變結果。因為沒有下降沿怎么會翻轉呢?因此筆者把101、011、001三種狀態組合所對應的Q2n+1、Q1n+1的取值看作是任意的,可使它們的取值為“0”或“1”即任意項。(在真值表和卡諾圖中用Φ表示)于是就有了表2(Φ表示它所對應的變量取值組合為約束項和任意項)。
由表2列出的過程可知,約束項和任意項都可以使函數值取“0”或“1”,取“0”或“1”都不會影響邏輯函數的功能。
二、利用約束項和任意項化簡邏輯函數
由于約束項和任意項可取“0”或“1”,所以利用卡諾圖化簡邏輯函數時,對于約束項和任意項來說既可以把它當作“1”,也可以把它當作“0”來處理,還可以把它們中的一部分當作“0”,一部分當作“1”來處理。
例:將表2中的最小項填進卡諾圖,并利用卡諾圖得到化簡后的邏輯函數表達式,與主從JK觸發器的特性方程比較,求出六進制計數器的驅動方程。
方法一:將所有的任意項和約束項都看作“0”
化簡結果:Q2n+1=210 Q1n+1=Q210
Q0n+1=21+10=210與驅動方程Q2n+1=J22+K22 Q1n+1=J11+K11 Q0n+1=J00+K00
可得:
方法二:將表2中的任意項,約束項一部分看作“1”,一部分看作“0”卡諾圖如下:
圈內的約束項或任意項看作為“1”,圈外的看作為“0”。
化簡結果:
Q2n+1=21 Q1n+1=Q2=21+Q1Q2 Q0n+1=0
同樣與特性方程比較可得驅動方程:
方法三:由邏輯問題列真值表時只考慮到約束項而沒有考慮到任意項,由表1填卡諾圖。
利用卡諾圖化簡得狀態方程:
Q2n+1=210+Q2Q0 Q1n+1=2100+Q1Q0 Q0n+1=0
與主從JK觸發器的特性方程比較得驅動方程:
方法四:將一部分約束項和任意項看作“0”,另一部分看作是“1”,如卡諾圖所示,圈內的為“1”,圈外的為“0”:
化簡結果:Q2n+1=21 Q1n+1=Q21 Q0n+1=0,與特性方程比較得驅動方程為:
比較上述四種方法得到的驅動方程,畫出六進制異步計數器的邏輯電路??芍?,方法四得到的電路最簡單,而該電路的功能,完全與方法一、方法二、方法三得到的電路功能相同??梢娎每ㄖZ圖化簡邏輯函數時,并不只是圈越大越好,還需要我們能正確地識別約束項和任意項,科學合理地使用約束項和任意項。只有這樣才能設計出最簡單、最科學、最適用的邏輯電路。
(作者單位:山西省忻州市技工學校)