只使用NAND或NOR Gate實現邏輯函數- 電子技術設計
文章推薦指數: 80 %
也就是說,如果使用NAND或NOR Gate代替AND或OR Gate,那麼所使用的電晶體數量可以減少三分之一。
4.關於上一點,AND Gate實際上是由一個NAND Gate後接一個 ...
【7/21直播】基於靈動SPIN系列的高集成平台化電機應用解決方案!報名抽開發板>>
登入
註冊
聯繫
首頁
新聞
TechRoom
IC/電路板/系統設計應用
消費性電子
工業控制應用
軍事應用
電腦/周邊應用
通訊/網路/無線應用
汽車電子
設計揭密
設計實例
產品新知
下載
線上研討會
小測驗
視訊
申請中心
GreenChallenge
研討會與活動
雜誌
各期雜誌線上看
2022年6月雜誌
編輯計劃表
訂閱雜誌
論壇
工具
PCB設計工具
電路圖擷取與佈線
PCBWeb
走線寬度計算器
Internal
External
走線電流計算器
Internal
External
走線電阻計算器
Internal/External
阻抗計算器
Microstrip
EmbeddedMicrostrip
SymmetricStripline
AsymmetricStripline
WireMicrostrip
WireStripline
Edge-CoupledMicrostrip
Edge-CoupledStripline
BroadsideCoupledStripline
RF設計工具
阻抗電路求解器
L-Match
Pi-Match
T-Match
電纜阻抗計算器
Coax
TwistedPair
串擾計算器
Microstrip
Stripline
轉換工具
RFUnitConverter
電路圖設計工具
模擬器
OnlineSPICESimulator
轉換器/檢視器
SchematicConverter/Viewer
線上電路圖擷取工具
SchematicCaptureTool
被動元件設計工具
電阻計算器
4-Band
5-Band
6-Band
標準阻值表
StandardValues
電感計算器
MagneticFieldCalculator
WireSelfInductance
ParallelWires
Coax
WireoverPlane
Loop
RectangleLoop
Coil
Broadside-CoupledTraces
Edge-CoupledTraces
Datasheets查询
SiliconExpert
其他
座標紙格式下載
EngineeringGraphPaper
Log/LogGraphPaper
Semi-LogGraphPaper
SmithChartGraphPaper
數學公式
Overview
Algebra
Geometry
TrigonometryDefinitions
TrigonometryLawsandIdentities
CalculusDerivativesandLimits
CalculusIntegrals
數學計算
計算機
OnlineBasicCalculator
OnlineScientificCalculator
查看所有工具
X
首頁»IC/電路板/系統設計應用»只使用NAND或NORGate實現邏輯函數
只使用NAND或NORGate實現邏輯函數
作者:MaxMaxfield,EEWeb
類別:IC/電路板/系統設計應用
2021-02-01
(0)評論
這篇文章分為三個部分,解讀某個學生在EDN姐妹媒體EEWeb論壇上所提出的一個問題,這個難題的其核心是:他的老師提出了一個布林方程式,要求他創建相應的真值表,然後再告訴他要進行卡諾圖最簡化;最後要他必須只使用NANDGate或只使用NORGate來實現這個電路…
這篇文章分為三個部分,解讀某個學生在EDN姐妹媒體EEWeb論壇上所提出的一個問題,這個難題的其核心是:他的老師提出了一個布林方程式(BooleanEquation),要求他創建相應的真值表,然後再告訴他要進行卡諾圖(Karnaughmap)最簡化;最後要他必須只使用反及閘(NANDGate)或只使用反或閘(NORGate)來實現這個電路。
因此,一開始要做的就是考慮為什麼首先要提出這種問題。
接下來就是更詳細地研究這個學生的特定問題,並將其轉換成最初的AND-OR解決方案。
然後,就是考慮將基於AND-OR電路轉換為與NAND-NOR對應電路的一般概念。
最後,就是用所學的知識來解決這個學生的最初問題。
為什麼只使用NANDGate或NORGate?【樣品申請】第一電阻FirstohmMELFResistors
那麼,為什麼老師都會要求他的學生只使用NANDGate或只使用NORGate來實現布林方程式?(請注意,我特地不說「只使用NAND或NORGate」,因為這有可能被理解成可以使用NAND和NORGate,而不使用AND和ORGate。
)
儘管學生可能對此感到驚訝,但不一定就說明老師是個不成功的人,他生活中唯一的樂趣就是去折磨學生。
話雖這麼說,但回想起我自己還是一名學生的日子,最好不要實際排除這種可能的動機。
我不由自主地想到老師給學生出這個作業可能有以下原因:
1.提出一個用AND或ORGate(以乘積的和或和的乘積形式)描述的電路,然後要求學生將其轉換成只使用NANDGate、只使用NORGate,或者使用NANDGate和NORGate組合的另一種表現形式,是確保讓學生瞭解各種邏輯閘如何工作的好方法,它還有助於確保讓學生瞭解DeMorgan轉換之類的內容。
2.如果你想使用簡單的邏輯元件——例如包含六個NOTGate或四個2輸入AND、OR、NAND或NORGate的雙列直插(DIL)封裝積體電路(IC)——來設計印刷電路板(PCB),而你可能正好沒有ANDGate之類的東西,但是碰巧有一個NANDGate和一個NOTGate備用(或者可能是一個OR和三個NOTGate),那麼在這種情況下,你對邏輯閘的理解就可能節省一天的時間。
3.最簡單的邏輯閘是NOT。
假設我們在討論CMOS電路,那麼一個NOTGate需要兩個電晶體。
NAND和NORGate會複雜一些,其每種包含四個電晶體。
然後是AND和ORGate,這兩種邏輯閘每種包含六個電晶體。
也就是說,如果使用NAND或NORGate代替AND或ORGate,那麼所使用的電晶體數量可以減少三分之一。
4.關於上一點,ANDGate實際上是由一個NANDGate後接一個NOTGate構成(同樣,ORGate是由一個NORGate後接一個NOTGate所組成)。
除了使用4+2=6個電晶體外,這還說明ANDGate(和ORGate)具有兩級延遲。
因此,如果可以使用NANDGate取代ANDGate(或用NORGate取代ORGate),所得到的電路會運作得更快。
5.順便稍微說一句,本文所討論的所有內容在我的書《BeboptotheBooleanBoogie》中都有詳細描述。
實際上,現在已很少有人在閘級(gate-level)進行設計。
取而代之的是以較高的抽象層級攻克設計,然後使用邏輯綜合引擎產生相對應的閘級等效設計,這也說明上述第2點到第4點不再像以前那樣重要。
你可以爭辯說,第1點也是如此,但我不太同意。
我的想法是,它類似於使用計算器進行運算的概念。
如果你有一個計算器,那你實際上就不需要知道如何對整數、實數和浮點數進行加減乘除運算,但是,如果你掌握了這類知識,那麼當你計算器的電池沒電時,它就可以派上用場。
同樣,儘管你可能不需要每天處理布林結構,但是在需要時知道如何處理就會非常方便。
思考問題
所以,以下是那位學生提供給我的資料。
他首先說,老師向班級展示了以下方程式:
那位學生還告訴我,他已經使用這個方程式產生了圖1所示的真值表,但是從這時起,他遇到麻煩因而無法往下進行了。
圖1學生創建的真值表。
好吧,我不得不告訴他,我對他遇到的問題一點都不感到驚訝,因為在他的方程式裡有六個乘積,每個乘積在他的真值表的輸出列中都應該有一個對應的1,但是實際上,他的真值表的輸出列中只有五個1。
我對這個情況進行了反覆思考,並認為潛在的問題是他缺乏對基本原理的理解。
還有一點是,如果有一個學生感到困惑,那麼就很可能不止他一個人。
最後但同樣重要的是,我記得剛開始時有點困惑不解,所以我會花一點時間逐步解決這個問題(如果你感到無聊,請隨時跳過;或者,你也可以隨時試著發現我可能導入任何故意的錯誤,以便瞭解你是否有集中精力)。
我要做的第一件事就是在方程式中對乘積進行編號,以便可以對我們所處的位置和所做的事進行追蹤(若我們是來真的,那麼就不必費心對乘積進行編號):
下一步是創建真值表。
可以從以標準二進位計數表示的所有輸入組合開始,如圖2中的(a)所示;然後將與六個乘積相對應的六個1加起來,如(b)到(g)所示;最後把任何剩餘的輸出「空位」都填入0,如(h)所示。
圖2創建真值表的過程。
這裡要注意的重點是,將方程式轉換為真值表確實一點也不困難。
話雖如此,但無論誰這樣做,都必須瞭解這個過程背後的基本邏輯。
再看一下這個方程式,其本質可以這樣來表達:「如果第一個乘積(第一個AND函數)為真,則輸出為真(邏輯1),或者如果第二乘積為真,則輸出為真,或者如果第三乘積為真……」。
這就是為什麼可以在與每個乘積相對應的輸出列中簡單地填寫1——如果這些乘積中的任何一項為真,則輸出為真(1),否則輸出為假(0)。
下一步是創建卡諾圖。
首先是創建網格本身。
由於總共有三個輸入,因此可以使用兩種方法(選項)來做這一步,如圖3所示。
圖3創建卡諾圖的兩種方法。
選擇使用哪種方案都沒有關係。
這兩種情況下答案都是相同的(如果不是,那就確實有問題)。
這裡本文使用方案1,這種方法我比較喜歡,如果有任何學生正在閱讀本文,我建議你在這步驟完成後從此處開始,自己使用卡諾圖方案2進行重做,以便確保你真正瞭解這個過程。
查看卡諾圖方案1,觀察「AB」所處的位置。
右側是與AB輸入相關的0和1的四種組合:「00」、「01」、「11」和「10」。
請務必注意,這四種組合是以格雷碼(Graycode)形式進行排列,這樣就可以讓我們從一個值移到相鄰值時,只會有單個位元發生變化(圖4)。
這是卡諾圖運作的關鍵。
圖4二進位碼與格雷碼對比。
在二進位碼中,當從01過渡到10時,會有兩個位元發生變化。
相比之下,如果查看格雷碼(01至11)中的相應轉換,則只有單個位元發生變化。
此外,請注意二進位碼的最後一行。
如果要從這一行轉而過渡到第一行(11到00),那麼就會再次有兩位元發生變化。
但是,如果查看格雷碼中的相應行(10到00),則會再次看到只有一位元發生變化。
好了,現在來填充卡諾圖。
這一步是向方程式中的乘積所對應的每個方框中填入1。
這裡再次依照圖5所示的步驟逐步填寫(圓圈中的小數字1到6與初始方程式中的乘積相對應)。
圖5逐步填充卡諾圖。
這裡需要注意的另一點是,不需要真值表即可填充卡諾圖。
這裡要做的只是照著方程式一項一項來,對每個乘積在對應的卡諾圖「方框」中填入1。
下一步是使用卡諾圖來化簡邏輯運算式。
從圖5所得的最終卡諾圖(f)中可立即看出,可以將其簡化為三個項。
如往常一樣,我們一次一次地完成每一步。
觀察圖6中用紅色圈出的兩個1,我們知道,這兩種情況下的輸出均為1。
對於這兩個框中的每個框都有A=0、C=1,因此這兩個值很重要。
但是,這兩個框中有一個是B=0,另一個則是B=1。
這就是說,只要A=0、C=1,那麼就可不在乎B是0還是1。
圖6用卡諾圖化簡邏輯運算式(第一步)。
接下來看一下圖7中用紅色圈出的第二組兩個1。
對於這兩個框中的每個框都有A=1、C=0,因此這兩個值很重要。
但是,這兩個框中也是有一個是B=0,另一個是B=1。
這就表示,只要A=1、C=0,那麼就可不在乎B是0還是1。
圖7用卡諾圖化簡邏輯運算式(第二步)。
最後但同樣重要的是,以下來看圖8中用紅色圈出的一組四個1(卡諾圖的技巧之一是可以將相同的1用作多個組的一部分)。
圖8用卡諾圖化簡邏輯運算式(第三步)。
在這種情況下,這四個框中有兩個框是A=0,另外兩個框則是A=1,這就是說,我們可不在乎A是0還是1。
類似地,這四個框中有兩個框是C=0,另外兩個框是C=1,因此我們就可不在乎C是0還是1。
實際上,對於所有這四個框而言,唯一恆定的輸入是B,它始終為1。
這樣,就可以使用卡諾圖最簡化的運算式來編寫最佳化的乘積和方程,如下所示:
由此就可以使用NOTGate、ANDGate和ORGate輕鬆繪製相應的閘級原理圖,如圖9所示。
圖9用AND、OR、NOTGate實現的邏輯運算式的閘級原理圖。
至此,我知道你會跟我說我們沒有使用!B訊號(這裡使用「!」字元來表示B的NOT,因為在文本裡在字母上畫一條橫線有點難),但我們將在不久的將來使用它。
說到這,未來比你想像的要近。
這是我們必須考慮的重點,因為那位令人討厭的老師他所出的作業是只使用NANDGate或NORGate來展示最終電路。
使用NAND或NORGate實現NOTGate
讓我們從容易的開始,先解決本例中的三個NOTGate。
首先我們先回憶五種常見基本閘的真值表,如圖10所示。
圖10五種常見基本邏輯閘及其真值表。
也就是說,如果將NANDGate的輸入綁(連接)在一起,那麼得到的功能就是NOTGate。
如果將NORGate的輸入綁在一起,那麼得到的結果也相同。
也就是說,圖11中的三個部分功能相同。
圖11NOTGate的NAND和NORGate等效。
對AND、OR、NAND和NORGate進行DeMorgan轉換
AugustusDeMorgan(1806~1871年)是GeorgeBoole的同輩,他在符號邏輯領域做出了重大貢獻,尤其是我們現在用的一組規則—DeMorgan轉換。
為了對布林方程式進行DeMorgan轉換,需要依以下步驟進行:
1.將所有的AND運算子換成OR運算子,反之亦然;
2.將所有的輸入變數反轉,也可將任何0換成1,反之亦然;
3.將整個函數反轉;
4.減少任何多次反轉。
一般而言,我們傾向於對多項式進行DeMorgan轉換,但是也可以對單個閘進行轉換,這樣就得到圖12所示的結論。
圖12AND、OR、NAND和NORGate的DeMorgan轉換。
我不瞭解你,所以沒辦法解釋為什麼會這樣,但是在查看了圖12中的DeMorgan轉換後,我感覺很滿意,並且感覺在(邏輯)世界中一切都是對的。
只用NANDGate表示電路
老實說,現在我們已奠定了基礎,這個部分非常容易。
讓我們回憶使用NOTGate、ANDGate和ORGate實現的電路是什麼樣的(圖13)。
圖13對圖9所示原理圖進行顏色編碼。
我對它們進行了顏色編碼,以便讓我們清楚瞭解自己在做什麼。
以下就做出決定,我們只希望使用NANDGate。
因此,使用前面討論的所有內容,就可以將NOTGate、ORGate和ANDGate換成NANDGate。
和往常一樣,一步步來做。
首先從左邊用粉紅色表示的三個NOTGate開始。
我們知道,可以將這三個閘中的每一個換成一個2輸入NANDGate(它們的輸入綁在一起),所以這裡沒有問題(圖14)。
圖14NOTGate的NANDGate等效。
接下來來研究電路右側用綠色表示的3輸入ORGate。
根據DeMorgan轉換,我們知道,可以用一個3輸入NANDGate(其輸入帶有NOTGate)來代替它,如圖15所示。
圖153輸入ORGate的NOTGate加NANDGate等效。
當然,可以將這三個NOTGate中的每一個再次用一個2輸入NANDGate來替換,如圖16所示。
圖163輸入ORGate的4輸入NANDGate等效。
因此,現在只需要考慮電路中間兩個用藍色表示的ANDGate了。
當然,DeMorgan轉換在這裡幫不上忙,因為ANDGate的等效電路是將NORGate的所有輸入都加上NOTGate,但這個作業不允許我們使用NORGate。
有時,我們傾向於使事情變得比所需要的更複雜。
在這種情況下,要做的就是記住,ANDGate實際上是由NANDGate後接一個NOTGate形成(同樣,ORGate是由NORGate後接一個NOTGate所組成)。
也就是說,可以像圖17這樣來替換ANDGate。
圖17ANDGate是由NANDGate加NOTGate所構成。
當然,由於作業要求只使用NANDGate,因此必須將NOTGate替換成其等效的2輸入NANDGate,如圖18所示。
圖18將圖17中的NOTGate再次用等效的NANDGate替換。
現在,萬事大吉了。
因此,如果把上述所有轉換結合起來,那麼只使用NANDGate的實現就如圖19所示。
圖19將圖13中的AND、OR、NOTGate全部用等效的NANDGate替換。
雖然圖19中的電路可以執行所需的功能,但是這裡有幾個邏輯閘浪費了,因為如圖20中用紅色框框出的部分所示,有兩個地方出現了NOTGate接NOTGate的情況(當然都是用NANDGate實現)。
圖20圖19中有兩處NANDGate浪費。
每當以非函數形式出現偶數次反轉時,都可以用一條簡單的線來代替它們。
因此,稍作修改就得到圖21所示的最終電路。
圖21布林方程式最終NANDGate實現。
如果NOTGate、NANDGate和NORGate分別等於一級延遲,ANDGate和ORGate分別等於兩級延遲,那麼在最初的NOTGate、ANDGate和ORGate電路實現中,最壞情況的輸入到輸出路徑就等於1+2+2=5級延遲。
相比之下,經過最佳化的只使用NANDGate的實現則僅會發生最多1+1+1=3級延遲。
再說一次,如果有任何學生正在閱讀本文,只是為了確保你能100%掌握以上所有內容,建議你用以上的討論為基礎,創建只使用NORGate實現的基礎。
在此期間,歡迎提出任何意見和問題,也希望能有更多有經驗的讀者願意分享任何相關的提示與技巧。
(參考原文:ImplementingLogicFunctionsUsingOnlyNANDorNORGates,byMaxMaxfield)
本文同步刊登於EDNTaiwan2021年1月號數位版雜誌
訂閱EDNTaiwan電子報
加入LINE@,最新消息一手掌握!
分享TwitterFacebookLinkedInMorePrintRedditTumblrPinterestPocketTelegramWhatsAppSkype
Related
文章Tag:
AND-OR解決方案DeMorgan轉換NANDGateNORGateNOTGateORGate布林方程式真值表邏輯閘
發表評論
取消回覆
YoumustRegisteror
Logintopostacomment.
訂閱EDNTaiwan電子報
最新文章
最熱門文章
2022-07-11
‘AIattheEdge’將永遠改變智慧家庭中的物聯網
2022-07-11
25kWSiC直流快充設計指南(VIII):熱管理
2022-07-08
Yole:EV帶動電力電子產業扭轉局面
2022-07-07
遠距形象必修課:專業級虛擬會議攻略
2022-07-07
利用示波器實現基本抖動測量
2019-12-24
智慧商店如何輕鬆搞定購物?
2020-10-27
在月球建網路 為何是4G雀屏中選?
2018-10-03
如何不讓好用的繼電器浪費電?
2017-09-30
拆解藍牙無線條碼掃描器—裡頭鏡中有鏡
2020-03-27
山寨必死? 原廠談2020年TWS耳機發展態勢
2017-06-30
解析看門狗計時器的重要性
2021-07-23
用塑料打造全球首個軟性32位元微處理器
2017-10-30
兒童手錶失而復得的經驗談
2020-05-20
不停自動開關的LED燈問題出在哪?
2018-08-08
智慧音箱拆解:對比EchoDot與HomeMini
最新文章
AI晶片
2022-07-11
‘AIattheEdge’將永遠改變智慧家庭中的物聯網
DC/DC轉換器
2022-07-11
25kWSiC直流快充設計指南(VIII):熱管理
BEV
2022-07-08
Yole:EV帶動電力電子產業扭轉局面
EE人生
2022-07-07
遠距形象必修課:專業級虛擬會議攻略
抖動
2022-07-07
利用示波器實現基本抖動測量
最熱門文章
人工智慧
2019-12-24
智慧商店如何輕鬆搞定購物?
3G
2020-10-27
在月球建網路 為何是4G雀屏中選?
IC/電路板/系統設計應用
2018-10-03
如何不讓好用的繼電器浪費電?
設計揭密
2017-09-30
拆解藍牙無線條碼掃描器—裡頭鏡中有鏡
中國市場
2020-03-27
山寨必死? 原廠談2020年TWS耳機發展態勢
EET電子工程專輯©2022本網站內之全部圖文,係屬於eMediaAsiaLtd所有,非經本公司同意不得將全部或部分內容轉載於任何形式之媒體
關於我們
隱私政策
用戶協議
繼續瀏覽網站
延伸文章資訊
- 1邏輯閘介紹
反及閘(NAND Gate『負責反與及的運算』,具有反閘加上及閘的輸出效能,兩個以上的輸入. 端及一個輸出端,『當任一個輸入端為0時輸出端必為1,只有在輸入端皆為1時 ...
- 2數位邏輯學-第六章
萬用閘NAND GATE互換的應用-1. p7-1.GIF (4135 bytes). 全是NAND GATE之電路,可用AND-OR方式取代. 應用第摩根定律. p7-2.GIF (797 b...
- 3反及閘- 維基百科,自由的百科全書
反及閘(英語:NAND gate)是數位邏輯中實現邏輯與非的邏輯閘。若輸入均為高電平(1),則輸出為低電平(0);若輸入中至少有一個為低電平(0),則輸出為高電平(1) ...
- 4只使用NAND或NOR Gate實現邏輯函數- 電子技術設計
也就是說,如果使用NAND或NOR Gate代替AND或OR Gate,那麼所使用的電晶體數量可以減少三分之一。 4.關於上一點,AND Gate實際上是由一個NAND Gate後接一個 ...
- 5一、第摩根定理與閘門的通用性
若將OR Gate改為AND Gate,而AND Gate改為OR Gate,則可在閘門之所有的腳(不論為輸入腳或輸出腳)上,各加 ... NAND閘. (1), 正邏輯中的NAND閘與倒相輸入...