0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用與非門或或非門實現(xiàn)非門的案例解析

電子設計 ? 來源:電子技術設計 ? 作者:Max Maxfield ? 2021-01-19 12:00 ? 次閱讀

這篇文章分為三個部分,解讀某個學生在EDN姐妹媒體EEWeb論壇上所提出的一個問題,其核心如下:他的老師布置了一個布爾方程式;然后要求他創(chuàng)建相應的真值表;然后再告訴他要進行卡諾圖化簡;最后要他必須只使用與非(NAND)門或只使用或非(NOR)門來實現(xiàn)這個電路。

因此,一開始要做的就是考慮為什么首先要提出這種問題。接下來就是更詳細地研究這個學生的特定問題,并將其轉換成最初的與或解決方案。然后,就是考慮將與或電路轉換為與非-或非對應電路的一般概念。最后,就是用所學的知識來解決這個學生的最初問題。

為什么要只使用與非門或只使用或非門?

那么,為什么老師都會要求他的學生只使用與非門或只使用或非門來實現(xiàn)邏輯函數(shù)?(請注意,我特地不說“只使用與非門或或非門”,因為這有可能被理解成可以使用與非門和或非門,而不使用與門和或門。)

盡管學生可能對此感到驚訝,但不一定就說明老師是個不成功的人,他生活中唯一的樂趣就是去折磨學生。話雖這么說,但回想起我自己還是一名學生的日子,我們最好不要實際排除這種可能的動機。

我不由自主地想到老師給學生布置這個作業(yè)可能有以下原因:

1.給出一個用與門或或門(乘積的和或和的乘積形式)描述的電路,然后要求學生將其轉換成只使用與非門、只使用或非門或使用與非門和或非門組合的另一種表現(xiàn)形式,是確保讓學生了解各種邏輯門如何工作的好方法。它還有助于確保讓學生了解德·摩根變換之類的內容。

2.如果你想使用簡單的邏輯器件——例如包含六個非門或四個2輸入與門、或門、與非門或或非門的雙列直插(DIL)封裝集成電路IC)——來設計印制電路板(PCB),而你可能正好沒有與門之類的東西,但是碰巧有一個與非門和一個非門備用(或者可能是一個或門和三個非門),那么在這種情況下,你對邏輯門的理解就可能扭轉局面。

3.最簡單的邏輯門是非門。假設是CMOS電路,那么一個非門需要兩個晶體管。與非門和或非門要復雜一些,這兩種門每種包含四個晶體管。然后是與門和或門,這兩種門每種包含六個晶體管。也就是說,如果使用與非門或或非門代替與門或或門,那么所使用的晶體管數(shù)量可以減少三分之一。

4.關于上一點,與門實際上是由一個與非門后接一個非門構成的(同樣,或門是由一個或非門后接一個非門所組成)。除了使用4+2=6個晶體管外,這還說明與門(和或門)具有兩級延遲。因此,如果可以使用與非門取代與門(或用或非門取代或門),所得到的電路會運行得更快。

5.順便稍微說一句,本文所討論的所有內容在我的書“Bebop to the Boolean Boogie”中都有詳細描述。

實際上,現(xiàn)在已很少有人在門級進行設計。取而代之的是以較高層級的抽象捕獲設計,然后使用邏輯綜合引擎生成相應的門級等效設計。這說明上述第2點到第4點不再像以前那樣重要。

你可以爭辯說,第1點也是如此,但我不太同意。我的想法是,它類似于使用計算器進行計算的概念。如果你有一個計算器,那你實際上就不需要知道如何對整數(shù)、實數(shù)和浮點數(shù)進行加減乘除運算,但是,如果你掌握了這類知識,那么當你計算器的電池沒電時,它就可以派上用場。同樣,盡管你可能不需要每天處理布爾結構,但是在需要時知道如何處理就會非常方便。

思考問題

所以,下面是那個學生給我的。他首先說,老師向班級展示了以下方程式:

o4YBAGAGV5yALj5NAABIPiyK1Ps266.png

那個學生還告訴我,他已經(jīng)使用這個方程式生成了下面的真值表,但是從這時起,他遇到了麻煩而做不下去了。

pIYBAGAGV6uAIp1rAAByyKRz8kU751.png

好吧,我不得不告訴他,我對他遇到的問題一點都不感到驚訝,因為在他的方程式里有六個乘積項,每個乘積項在他的真值表的輸出列中都應該有一個對應的1,但是實際上,他的真值表的輸出列中只有五個1。

我對這個情況進行了反復考慮,我認為潛在的問題是他缺乏對基本原理的理解。還有一點是,如果有一個學生感到困惑,那么就很可能不止他一個人。最后但同樣重要的是,我記得我剛開始時有點困惑不解,所以我會花一點時間逐步解決這個問題(如果你感到無聊,請隨時跳過;或者,你也可以隨時試著發(fā)現(xiàn)我可能引入的任何故意的錯誤,以便了解你是否有集中精力)。

我要做的第一件事就是在方程式中對乘積項進行編號,以便可以對我們所處的位置和所做的事進行跟蹤(如果我們是來真的,那么就不必費心對乘積項進行編號):

pIYBAGAGV7SAOjYnAAB5B6udGD8219.png

下一步是創(chuàng)建真值表??梢詮囊詷藴识M制數(shù)表示的所有輸入組合開始,如下面的(a)所示;然后將與六個乘積項相對應的六個1加起來,如(b)到(g)所示;最后把任何剩余的輸出“位置”都填入0,如下面的(h)所示。

o4YBAGAGV7-AGhOmAAQjJg7NJtA729.png

這里要注意的重點是,將方程式轉換為真值表確實一點也不困難。話雖如此,但無論誰這樣做,都必須了解這個過程背后的基本邏輯。再看一下這個方程式,其本質可以這樣來表達:“如果第一個乘積項(第一個與函數(shù))為真,則輸出為真(邏輯1),或者如果第二乘積項為真,則輸出為真,或者如果第三乘積項為真……)。這就是為什么可以在與每個乘積項相對應的輸出列中簡單地填寫1——如果這些乘積項中的任何一項為真,則輸出為真(1),否則輸出為假(0)。

下一步是創(chuàng)建卡諾圖。首先是創(chuàng)建網(wǎng)格本身。由于總共有三個輸入,因此可以使用兩種方法(方案)來做這一步,如下所示:

o4YBAGAGV9GASiZHAADGZrShsZw046.png

選擇使用哪種方案都沒有關系。這兩種情況下答案都是相同的(如果不是,那就確實有問題)。這里使用方案1,這種方法我比較喜歡。如果有任何學生正在閱讀本文,我建議你在這步完成后從此處開始,自己使用卡諾圖方案2進行重做,以便確保你真正了解這個過程。

查看卡諾圖方案1,觀察“AB”所處的位置。右側是與AB輸入相關的0和1的四種組合:“00”、“01”、“11”和“10”。請務必注意,這四種組合是以格雷碼形式進行排列,這樣就可以讓我們從一個值移到相鄰值時,只會有一位發(fā)生變化。這是卡諾圖運作的關鍵。

o4YBAGAGV92AfwtQAAArtgcQj1E609.png

在二進制代碼中,當從01過渡到10時,會有兩位發(fā)生變化。相比之下,如果查看格雷碼(01至11)中的相應轉換,則只有一位發(fā)生變化。

此外,請注意二進制代碼的最后一行。如果要從這一行轉而過渡到第一行(11到00),那么就會再次有兩位發(fā)生變化。但是,如果查看格雷碼中的相應行(10到00),則會再次看到只有一位發(fā)生變化。

好了,現(xiàn)在來填充卡諾圖。這一步是向方程式中的乘積項所對應的每個方框中填入1。這里再次按照下面的步驟逐步填寫(圓圈中的小數(shù)字1到6與初始方程式中的乘積項相對應):

o4YBAGAGV-iAThQ2AAHF4vMnrGY913.png

這里需要注意的另一點是,不需要真值表即可填充卡諾圖。這里要做的只是沿著方程式一項一項來,對每個乘積項在對應的卡諾圖“方框”中填入1。

下一步是使用卡諾圖來化簡邏輯表達式。從上面的最終卡諾圖(f)可以立即看出,可以將其簡化為三個項。像往常一樣,我們一次一次地完成每一步。

觀察下圖中用紅色圈出的兩個1,我們知道,這兩種情況下的輸出均為1。對于這兩個框中的每個框都有A=0,C=1,因此這兩個值很重要。但是,這兩個框中有一個是B=0,另一個則是B=1。這就是說,只要A=0,C=1,那么我們就不在乎B是0還是1。

pIYBAGAGV_OAZivoAABLRqkbTqo363.png

接下來看一下下圖中用紅色圈出的第二組兩個1。對于這兩個框中的每個框都有A=1,C=0,因此這兩個值很重要。但是,這兩個框中也是有一個是B=0,另一個是B=1。這就是說,只要A=1,C=0,那么我們就不在乎B是0還是1。

pIYBAGAGV_yAEZqGAABaXWPAIPc620.png

最后但同樣重要的是,下面來看一下下圖中用紅色圈出的一組四個1(卡諾圖的技巧之一是可以將相同的1用作多個組的一部分)。

o4YBAGAGWAaAJl4uAABjWzlgAms578.png

在這種情況下,這四個框中有兩個框是A=0,另外兩個框則是A=1,這就是說我們不在乎A是0還是1。類似地,這四個框中有兩個框是C=0,另外兩個框是C=1,因此我們就不在乎C是0還是1。實際上,對于所有這四個框而言,唯一恒定的輸入是B,它始終為1。

這樣,就可以使用卡諾圖最簡表達式來編寫優(yōu)化的乘積和方程,如下所示:

o4YBAGAGWByAfNLaAAAZgyYmSLk270.png

由此就可以使用非門、與門和或門輕松繪制相應的門級原理圖,如下所示:

pIYBAGAGWBGAbZaHAAEKMWmnKug752.png

至此,我知道你會跟我說我們沒有使用!B信號(這里使用“!”字符來表示非B,因為在文本里在字母上畫一條橫線有點難),但我們將在不久的將來使用它。說到這,未來比你想象的要近。這是我們必須考慮的重點,因為那位令人討厭的老師他所布置的作業(yè)是只使用與非門或或非門來展示最終電路。

使用與非門或或非門實現(xiàn)非門

讓我們從容易的開始,先解決本例中的三個非門。首先我們先回憶一下,五種常見基本門的真值表如下所示:

o4YBAGAGWCmAYWRQAAICtG3P94o890.png

也就是說,如果將與非門的輸入捆綁(連接)在一起,那么得到的功能就是非門。如果將或非門的輸入捆綁在一起,那么得到的結果也相同。也就是說,以下功能相同:

o4YBAGAGWESAVcRzAACNX3dPbe0004.png

對與門、或門、與非門和或非門進行德·摩根變換

奧古斯都·德·摩根(Augustus DeMorgan,1806至1871年)是喬治·布爾(George Boole)的同齡人。他在符號邏輯領域做出了重大貢獻,尤其是我們現(xiàn)在在用的一組規(guī)則——德·摩根變換。

為了對布爾表達式進行德·摩根變換,需要按以下步驟進行:

1.將所有的與運算符換成或運算符,反之亦然。

2.將所有的輸入變量反轉,也可將任何0換成1,反之亦然。

3.將整個函數(shù)反轉。

4.減少任何多次反轉。

一般而言,我們傾向于對多項式進行德·摩根變換,但是也可以對單個門進行變換,這樣就得到以下結論:

o4YBAGAGWFyAM3SoAAF-FuPwoz4240.png

我不了解你,所以沒辦法解釋,但是在查看了上面的德·摩根變換后,我感覺很滿意,并且感覺在(邏輯)世界中一切都是對的。

只使用與非門來表示電路

老實說,現(xiàn)在我們已奠定了基礎,這個部分非常容易。讓我們回憶下,使用非門、與門和或門實現(xiàn)的電路是什么樣的:

o4YBAGAGWG2AVFHKAAD0ORWXc2s719.png

我對它們進行了顏色編碼,以便讓我們清楚了解自己在做什么。下面就來做出決定,我們只希望使用與非門。因此,使用前面討論的所有內容,就可以將非門、或門和與門換成與非門。

和往常一樣,我們一步步來做。首先從左邊用粉紅色表示的三個非門開始。我們知道,可以將這三個門中的每一個換成一個2輸入與非門(它們的輸入是捆綁在一起),所以這里沒有問題。

o4YBAGAGWHmAB3WBAAAw-Kx9YW4443.png

接下來來研究電路右側用綠色表示的3輸入或門。根據(jù)德·摩根變換,我們知道,可以用一個3輸入與非門(其輸入帶有非門)來代替它,如下所示。

o4YBAGAGWISASHw-AACbpnVwLu4722.png

當然,可以將這三個非門中的每一個再次用一個2輸入與非門來替換,如下所示:

o4YBAGAGWJGAVrQ4AAClV89UGV4090.png

因此,現(xiàn)在只需要考慮電路中間兩個用藍色表示的與門了。當然,德·摩根變換在這里幫不上忙,因為與門的等效電路是將或非門的所有輸入都加上非門,但這個作業(yè)不允許我們使用或非門。

有時,我們傾向于使事情變得比所需要的更復雜。在這種情況下,要做的就是記住,與門實際上是由與非門后接一個非門形成的(同樣,或門是由或非門后接一個非門所組成)。也就是說,可以像下面這樣來替換與門:

o4YBAGAGWJyAAGIsAAB5xyfLLGo908.png

當然,由于作業(yè)要求只使用與非門,因此必須將非門替換成其等效的2輸入與非門,如下所示:

pIYBAGAGWKeAbk5VAACMFeaE-Ww427.png

現(xiàn)在,萬事大吉了。因此,如果把上述所有變換結合起來,那么只使用與非門的實現(xiàn)就如下所示:

pIYBAGAGWLKAINfoAAIm77cntBU577.png

雖然上面的電路可以執(zhí)行所需的功能,但是這里有幾個門浪費了,因為如下面用紅色框框出的部分所示,有兩個地方出現(xiàn)了非門接非門的情況(當然都是用與非門來實現(xiàn)):

pIYBAGAGWMGAGhj9AAJXubaQbQ4224.png

每當以非函數(shù)形式出現(xiàn)偶數(shù)次反轉時,都可以用一條簡單的線來代替它們。因此,稍作修改就得到如下所示的最終電路:

pIYBAGAGWNOAJAHuAAEZ9Fe13zY336.png

如果非門、與非門和或非門分別等于一級延遲,與門和或門分別等于兩級延遲,那么在最初的非門、與門和或門電路實現(xiàn)中,最壞情況的輸入到輸出路徑就等于1+2+2=5級延遲。相比之下,經(jīng)過優(yōu)化的只使用與非門的實現(xiàn)則僅會發(fā)生最多1+1+1=3級延遲。

再說一次,如果有任何學生正在閱讀本文,只是為了確保你100%掌握以上所有內容,建議你以以上討論為基礎創(chuàng)建只使用或非門的實現(xiàn)。在此期間,歡迎提出任何意見和問題,也希望能有更多有經(jīng)驗的讀者愿意分享任何相關的提示與技巧。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NAND
    +關注

    關注

    16

    文章

    1653

    瀏覽量

    135730
  • 晶體管
    +關注

    關注

    77

    文章

    9502

    瀏覽量

    136935
  • 非門
    +關注

    關注

    1

    文章

    32

    瀏覽量

    33805
  • CMOS電路
    +關注

    關注

    0

    文章

    49

    瀏覽量

    11464
收藏 人收藏

    評論

    相關推薦

    簡述基本與非門sr鎖存器的結構及工作原理

    基本與非門SR鎖存器(Set-Reset Latch)是數(shù)字電路中的一種基礎元件,用于存儲一位二進制數(shù)據(jù)。它由兩個互補的與非門(NAND gate)組成,通過這兩個與非門的交叉反饋實現(xiàn)
    的頭像 發(fā)表于 08-28 11:01 ?218次閱讀

    與非門的閑置輸入端如何處理

    在數(shù)字電路設計中,與非門(NAND gate)是一種基本的邏輯門,它具有兩個多個輸入端和一個輸出端。當所有輸入端都為高電平時,輸出端為低電平;當至少有一個輸入端為低電平時,輸出端為高電平。然而,在
    的頭像 發(fā)表于 07-30 14:47 ?360次閱讀

    TTL與非門閑置輸入端處理方法

    TTL(晶體管-晶體管邏輯)與非門是一種常見的數(shù)字邏輯門,廣泛應用于數(shù)字電路設計中。然而,在實際應用中,與非門的輸入端可能會遇到閑置的情況,這可能會對電路的性能和穩(wěn)定性產(chǎn)生影響。本文將介紹TTL
    的頭像 發(fā)表于 07-30 14:43 ?377次閱讀

    如何使與非門實現(xiàn)反相器的功能

    在數(shù)字邏輯電路中,與非門(NAND gate)是一種基本的邏輯門,它具有兩個多個輸入端和一個輸出端。與非門的輸出在所有輸入端都為高電平(1)時為低電平(0),否則為高電平(1)。由于與非門
    的頭像 發(fā)表于 06-21 09:11 ?670次閱讀

    CMOS與非門數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《CMOS與非門數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-16 11:01 ?0次下載
    CMOS<b class='flag-5'>與非門</b>數(shù)據(jù)表

    與非門LS51 數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《與非門LS51 數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 05-11 10:08 ?0次下載
    <b class='flag-5'>與非門</b>LS51 數(shù)據(jù)表

    proteus仿真時與非門輸出是灰色

    求助?。。∮?4ls192做倒計時,proteus仿真時與非門輸出一直是灰色
    發(fā)表于 03-24 21:54

    基本rs觸發(fā)器與非門或非門的區(qū)別

    基本的RS觸發(fā)器是一種使用與非門或非門構成的存儲器元件,它可以存儲一個比特的信息并在觸發(fā)信號的控制下改變狀態(tài)。與非門或非門則是用于邏輯運算的基本門電路,它們執(zhí)行邏輯“與”和“
    的頭像 發(fā)表于 03-01 17:22 ?4301次閱讀
    基本rs觸發(fā)器<b class='flag-5'>與非門</b>和<b class='flag-5'>或非門</b>的區(qū)別

    ttl與非門有哪些主要性能參數(shù) TTL與非門的工作原理

    TTL與非門(TTL NOT Gate)是一種常用的邏輯門電路,在數(shù)字電子電路中發(fā)揮著很重要的作用。本文將詳細介紹TTL與非門的主要性能參數(shù)以及工作原理。 TTL與非門的主要性能參數(shù) 邏輯電平參數(shù)
    的頭像 發(fā)表于 02-22 11:25 ?2564次閱讀

    cmos或非門電路與ttl或非門電路的邏輯功能

    本文就CMOS或非門電路和TTL或非門電路的邏輯功能進行了詳細講解。首先介紹了CMOS和TTL兩種電路的基本原理和實現(xiàn)方式。然后分別從輸入特性、輸出特性和功耗三個方面,深入比較了CMOS和TTL電路
    的頭像 發(fā)表于 02-22 11:19 ?1933次閱讀

    TTL與非門典型電路及其工作原理詳解

    TTL與非門是數(shù)字電路中常用的邏輯門之一,它可以實現(xiàn)兩個輸入信號的邏輯與非運算。TTL與非門的電路結構比較簡單,但是工作原理卻比較復雜,需要了解其內部電路結構和工作過程。
    的頭像 發(fā)表于 02-17 15:35 ?6762次閱讀
    TTL<b class='flag-5'>與非門</b>典型電路及其工作原理詳解

    與非門脈沖通過時,輸出波形和輸入波形有何差別?

    不同的方式來實現(xiàn),其中一種常見的設計是使用晶體管來構成。 當與非門脈沖輸入信號通過時,輸出波形和輸入波形存在一些差別。為了更好地理解這種差別,我們需要先了解與非門的工作原理和輸入輸出特性。
    的頭像 發(fā)表于 02-05 16:36 ?1352次閱讀

    數(shù)字邏輯電路之與非門

    對于二輸入與非門運算執(zhí)行負運算,只有當輸入A與B中有一個是低電平或者兩個都是低電平時,輸出就為高電平。
    的頭像 發(fā)表于 02-04 14:44 ?4707次閱讀

    一文解析或非門邏輯運算特性

    或非門的輸出與其輸入成反比關系。如果輸入信號的電壓越高,輸出的電壓就越低;反之,如果輸入信號的電壓越低,輸出的電壓就越高。
    的頭像 發(fā)表于 02-04 14:31 ?4290次閱讀
    一文<b class='flag-5'>解析</b><b class='flag-5'>或非門</b>邏輯運算特性

    TTL與非門的電壓傳輸特性 TTL與非門的靜態(tài)輸入與輸出特性

    廣泛使用的數(shù)字電路技術,其特點是簡單、可靠且易于實現(xiàn)。本文將詳細介紹TTL與非門的電壓傳輸特性、靜態(tài)輸入與輸出特性以及動態(tài)特性。 一、TTL與非門的電壓傳輸特性 TTL與非門的電壓傳輸
    的頭像 發(fā)表于 01-23 13:52 ?3131次閱讀