组合逻辑电路的分析与设计
目錄
1.組合邏輯電路的分析方法
2.公式化簡和卡諾圖化簡
2.1公式化簡的基本定律和規則
2.2邏輯函數的卡諾圖化簡法
2.3具有無關項的化簡
3.競爭與冒險?
3.1產生競爭-冒險的原因
3.2邏輯競爭與邏輯冒險
3.3邏輯冒險的識別與消除
3.3.1代數法
3.3.2卡諾圖法
3.3.3邏輯冒險的消除
3.4功能競爭與功能冒險
3.5功能冒險的識別與消除
3.5.1功能冒險的識別
3.5.2功能冒險的消除
本文結合了原鋯石科技文檔資料(截取其中部分圖表),并參考了康華光《 電子技術基礎 數字部分》(第六版)。
?
1.組合邏輯電路的分析方法
首先給出組合邏輯電路的一般分析方法,如圖1.1所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1.1 組合邏輯電路的一般分析方法
以下圖的組合邏輯電路為例。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1.2 組合邏輯電路圖
?
(1)根據電路圖寫出邏輯表達式。由于現實中的電路圖可能比較復雜,可以采取級聯的分時分別寫出各子模塊的邏輯表達式。分別寫出P1、P2、P3、P4的表達式。
得到最終的表達式:
(2)根據邏輯表達式寫出真值表。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表1.1 真值表
(3)根據真值表分析電路的功能。如表1.1所示,當且僅當此電路當輸入變量A、B、C全為0或全為1時,L輸出為1;否則,L輸出為0。
?
2.公式化簡和卡諾圖化簡
2.1公式化簡的基本定律和規則
表2.1.1是公式化簡的九條基本定律。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表2.1.1 公式化簡的九條基本定律
?
邏輯代數除了上面的九條基本定律,還有三條重要的規則。分別是:代入規則、反演規則和對偶規則。
(1)所謂代入規則就是每個模塊的輸出都可以作其他模塊的輸入。已知等式,有函數,將代入前式中的,得到。
(2)反演規則就是邏輯表達式中的運算符、常量和變量作如下變換:、、、。例如,,則。
(3)對偶規則。設是一個邏輯表達式,若把中的“與、或互換,0、1互換”,那么就得到一個新的邏輯表達式,這就是的對偶式,記作。例如,,則。變換時需注意保持原式中"先括號、然后與、然后或"的運算順序。可以發現,公式化簡的九條基本定律右邊一列都可以由左邊等式作對偶得到。將該規則概括為:當某個邏輯表達式相等,則它們的對偶式也相當。
除了上述的九條基本定律和三條重要規則,還有一些公式化簡的方法:
(1)并項法:利用公式,將兩項合并成一項,并消去一個變量。例如,
(2)吸收法:利用公式,消去多余的項。根據代入規則,、可以是任何一個復雜的邏輯式。例如,
(3)消去法:利用公式,消去多余的因子。例如,
(4)配項法:先利用,增加必要的乘積項,再用并項或吸收的辦法使項數減少。例如,
2.2邏輯函數的卡諾圖化簡法
關于卡諾圖的引出以及卡諾圖化簡的依據這里不再贅述(感興趣的可以參考電子技術書籍),這里僅討論卡諾圖化簡的一般步驟和實例。
在給出卡諾圖化簡得方法前,首先給出卡諾圖的表示方法及其化簡形式(以四變量為例)。
將上述兩幅卡諾圖的表示方法對比可以發現,0000代表(表示次序依次為00,01,11,10,不要顛倒)?????。
卡諾圖化簡的一般步驟如下:
(1)將邏輯函數寫成最小項表達式;
(2)按最小項表達式填卡諾圖(包含在式中的填1,其余填0);
(3)圈出為1的相鄰最小項,每個圈必須包含個;
(4)將所有包圍圈對應的乘積項相加(每個包圍圈的乘積項為變量的相同部分)。
注:在已知真值表的情況下,可將上述步驟的(1)(2)合并為一步。
?
這里重點對畫圈的原則進行說明:
(1)包圍圈內的方格數必定是個;
(2)相鄰方格包括上下底相鄰,左右邊相鄰和四個角兩兩相鄰;
(3)同一個方格可以被不同的包圍圈重復包圍,但新增包圍圈中一定要有新的方格(已有圈中的子集不可重新劃定為圈,例如已圈定的4個方格大小的圈中的兩個方格不可圈定為新圈);
(4)包圍圈內的方格要盡可能多(也就是說包圍圈的數目要盡量少),這決定了采用卡諾圖化簡后的表達式是否最簡。
?
例1 用卡諾圖法化簡下列邏輯函數,求的最簡與-或表達式。
解:
(1)根據邏輯函數畫出卡諾圖
?(2)找出1的相鄰最小項,圈出包圍圈,合并最小項,得到最簡與-或表達式
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
得到這兩個乘積項的過程,這里再贅述一下(以中間的四格圈為例)。AB部分01和11中‘1’為共同元素,對應著B;CD部分01和11中‘1’為共同元素,對應著D,得到項。因此只需要先按行找他們的共同元素,再按列找共同元素。
?
例2?化簡下列邏輯函數。
解:
(1)由畫出卡諾圖
(2)?卡諾圖化簡(這里由于1比較多,提供第二種思路)
?
法一(圈1)?:
法二(圈0):,從而
2.3具有無關項的化簡
除了上述這些具有確定邏輯表達式的卡諾圖化簡,在實際工作中,邏輯變量意味著特殊的現實意義,因此某些變量的取值組合并不會出現,也就是函數值可以是任意的(可以是0,也可以是1),變量取這些值所對應的最小項稱為無關項或任意項。這點在由真值表進行卡諾圖化簡中體現得尤為明顯。
注:引入無關項的目的主要是為了化簡原有的函數表達式,切勿畫蛇添足,將額外的無關項圈出來(也就是說,例如把本來只可以圈畫4個方格,引入無關項后可以圈畫8個方格,但是不要單獨將無關項直接圈畫起來)
?
例:要求設計一個邏輯電路,能夠判斷1位十進制數是奇書還是偶數,當十進制為奇數時,電路輸出為1;當十進制數為偶數時,電路輸出為0。
解:
(1)寫出真值表。用8421 BCD碼表示十進制數,輸入變量用A、B、C、D表示。1表示對應的十進制數為奇數,0表示對應的十進制數為0
注:下面出現的無關項是由于8421 BCD碼只有十個數,表中的后六種組合式無關的。
(2)根據真值表,填寫四變量卡諾圖
(3)畫包圍圈,利用無關項,將最小項、、?對應的方格視為1,可以得到最大的包圍圈,由此得到邏輯表達式?
?
3.競爭與冒險?
3.1產生競爭-冒險的原因
前面進行組合邏輯電路的分析與設計時,都沒有考慮邏輯門的延遲時間對電路產生的影響(把門電路看成是理想門電路),并且認為電路的輸入和輸出均處于穩定的邏輯電平。實際上,信號經過邏輯門電路都需要一定的時間。由于不同路徑上門的級數不同,信號經過不同路徑傳輸的時間不同。或者門的級數相同,而各個門延遲時間的差異,也會造成傳輸時間的不同。因此,電路在信號電平變化瞬間,可能與穩態下的邏輯功能不一致,產生錯誤輸出,這種現象就是電路中的競爭-冒險。
根據其產生的原因不同,又可分為邏輯競爭、邏輯冒險和功能競爭、功能冒險。
?
3.2邏輯競爭與邏輯冒險
會導致"1型冒險",會導致"0型冒險"。
競爭就是在一個組合電路中,當某一個變量經過兩個以上的路徑到達輸出端時,由于每條路徑上的延遲時間不同,到達終點的時間有先后,這一現象被稱為競爭,這里的競爭又可以稱之為邏輯競爭。如下圖所示:
?輸入端A的一端經過G1門,延遲了一個時間后到達G2門;而另一端直接連接在了G2門的輸入端。因此,可以說同一個信號A,經過兩條不同的路徑分別到達G2門,并且由于它經過的兩個路徑的延遲時間不同,這兩個信號到達輸入端有先后關系,這樣的現象稱之為邏輯競爭。
冒險,就是在具有競爭現象的組合電路中,當某個變量發生變化時(0到1,1到0),如果真指標所描述的邏輯關系或者功能受到短暫的破壞,在輸出端出現一個本不該有的尖脈沖(毛刺),這一現象稱為邏輯冒險。邏輯冒險是一個錯誤的輸出。
由上圖的電路圖寫出表達式,,然后再根據表達式寫出真值表,如下圖所示:
從真值表可知,輸出變量恒等于0,如下是其對應的理想波形圖:
然而,由于實際電路中門電路有延遲時間,將延遲時間記作,根據延遲時間畫出實際狀態的波形圖,如下圖所示:
?從上圖可以看出,信號經過一個G1非門,由于非門有一個延遲時間,所以不是另可變為0,而是經過一個延遲時間后才變為0。按照與邏輯功能,當=1,=0時,才等于1,但是不會直接立刻輸出1,因為與還要經過G2與門才會輸出1。因此,這個電路的輸出端也經過了一個延遲時間后才輸出1(輸出是由與經過非門得到的相與之后再經過一個非門的延遲時間后得到的,并且默認與門、非門延遲時間一致)。
在實際狀態波形圖中,出現這種短暫變為1的波形,相當于在電路中產生了一個尖脈沖,是不符合邏輯表達式要求的,是一個錯誤的波形。因此,將這種出現錯誤波形的現象稱為邏輯冒險(邏輯冒險是由邏輯競爭導致的)。又因為產生的是一個正的尖脈沖,所以通常稱這種邏輯冒險為"1型冒險"。在波形的后部分,當變為0以后,不是立刻變為1,它要經過一個延遲時間后才會變成1,盡管在后面三條虛線內也出現了邏輯競爭,但是并沒有出現邏輯冒險。由此說明,邏輯競爭并一定會導致邏輯冒險。
"0型冒險"僅依次給出電路圖、真值表和波形圖,不再詳細分析,如下圖所示:
?
?
3.3邏輯冒險的識別與消除
想要識別一個電路中是否存在邏輯冒險,通過有兩種方法判別,一種是代數法,另一種是卡諾圖法。
3.3.1代數法
代數法是根據電路圖寫出其邏輯表達式,在該邏輯表達式中某些邏輯變量取特定值0或1時,如果邏輯表達式能轉換成,則該電路存在"1型冒險";如果邏輯表達式能轉換成,則該電路存在"0型冒險"。
以下圖中的"0型冒險"為例:
由電路圖可知,該電路的邏輯表達式為。在該邏輯表達式中,若輸入變量,則有,因此可以斷定該電路中存為"0型冒險"(識別"0型冒險"就是看能不能找到一個變量與其反變量進行"或操作","1型冒險"就是看能不能找到一個變量與其反變量進行"與操作")。
3.3.2卡諾圖法
卡諾圖法是根據邏輯表達式畫出卡諾圖,在該卡諾圖中,若輸入變量在卡諾圖圈內改變時,輸出不會有冒險現象;若輸入變量是在相鄰卡諾圈內的相鄰處發生變化,并且是從一個卡諾圖進入另一個卡諾圈,則可能產生邏輯冒險現象。
以為例進行說明,直接給出如下的卡諾圖:
?從卡諾圖可以看出,當、,由0→1時,此時的變化是在卡諾圈內變化,所以不會發生冒險。同理,當時,也是在卡諾圈內變化,因此不會出現冒險。但是,當,由0→1時,相當于輸出變量、、從110變化到111,此時的變化是從一個卡諾圈進入另一個卡諾圈,所以該電路存在冒險現象。
3.3.3邏輯冒險的消除
邏輯冒險可以通過電路的重新設計來消除,若在函數表達式中增加冗余項(相當于在卡諾圖中增加多余的卡諾圈),既不改變函數的邏輯功能,又可消除邏輯冒險,缺點是電路復雜度提高。以上述出現邏輯冒險的函數表達式為例,前面已經分析過,當時,出現邏輯冒險,因此只需要在原表達式中增加一個乘積項,表達式變為,將不再產生冒險。由于在添加乘積項就,表達式不再是最簡式,因此增加的乘積項也叫冗余項。通過卡諾圖消除邏輯冒險的方法如下(增加卡諾圈):
3.4功能競爭與功能冒險
前面描述的邏輯競爭中輸入變量只有1個,當多個變量經過兩個以上的路徑到達輸出端時,同樣會產生競爭,將這種競爭稱為功能競爭,在具有功能競爭的組合電路中,也同樣會產生冒險,將這種冒險稱為功能冒險。
對于與門,若穩態=1,=0或=0,=時1,輸出?恒為0。但是在信號的傳輸過程中,由于傳輸時間的不同,造成在時間內,出現了一個錯誤的波形,將這種錯誤波形的現象稱為功能冒險。又因為產生的是一個正的尖脈沖,所以稱這種功能冒險為"1型冒險"。"0型冒險"類似,如下圖:
注:邏輯競爭和功能競爭更多只是概念上的差別,邏輯冒險是由于同一個信號經過不同路徑造成的,功能冒險是由于多個信號經過兩個路徑并最終形成的,本質上是一樣的。
3.5功能冒險的識別與消除
3.5.1功能冒險的識別
功能冒險的識別通常采用卡諾圖來進行判別,以下圖為例:
根據卡諾圖,可以知道時,;若由→,即由→且由→(在這個過程中和未發生變化),則變化后函數的為穩定值也為1,由于輸入變量、實際上不可能同時變化,他們的變化總是有先有后的,若先變,則變化途徑為→→,相應的輸出變化為→→(圖中紅色箭頭1變化過程),此時沒有發生冒險現象;但當先變時,的變化途徑為→→,相應的輸出變化為→→(圖中紅色箭頭2變化過程),因此出現了"0型冒險"(功能冒險產生于多變量發生變化,也就是它們不是左右、上下相鄰關系)。
電路具有下列三個特點,則其輸出可能產生功能冒險:
(1)有兩個以上變量同時發生變化(如果僅有一個輸出變量發生變化,則無功能冒險);
(2)變化前后,輸出穩態值不變;
(3)在由n(n≥2)個變量發生變化的個方格中,既要有0,又要有1(如果對應個變量取值組合的輸出值全為1或全為0,電路時不會產生功能冒險的)。
3.5.2功能冒險的消除
功能冒險時由于在輸入n個變量同時變化時,它們的實際變化在時間上有先有后引起的,因此改變電路的邏輯設計并不能消除功能冒險。對待功能冒險常用的方法是增加選通信號或者在輸出端并聯放置濾波電容(電容能對窄脈沖起到平波的作用,消除輸出端出現的邏輯錯誤,但同時也使輸出波形上升或下降沿變得緩慢)。
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的组合逻辑电路的分析与设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(2735):重读vue电商网站
- 下一篇: 前端学习(2534)vue源码解析