異或門

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
基本邏輯閘
緩衝
與非
或非
異或 同或
蘊含 蘊含非
輸入
A   B
輸出
A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

異或門(英語:Exclusive-OR gate,簡稱XOR gate,又稱EOR gateExOR gate)是數碼邏輯中實現邏輯異或邏輯門,功能見右側真值表。若兩個輸入的電平相異,則輸出為高電平(1);若兩個輸入的電平相同,則輸出為低電平(0)。

這一函數能實現模為2的加法,因此,異或門可以實現電腦中的二進制加法。半加器是由異或門和與門組成的。

概述[編輯]

下列包括邏輯門的3種符號:形狀特徵型符號(ANSI/IEEE Std 91-1984)、IEC矩形國標符號(IEC 60617-12)和不再使用的DIN符號(DIN 40700)。其他的邏輯門符號見邏輯門符號表

表達式 符號 功能表 繼電器邏輯
ANSI/IEEE Std 91-1984 IEC 60617-12 DIN 40700




A B
0 0 0
0 1 1
1 0 1
1 1 0

等價於

異或的運算順序如下:

輸入的順序對輸出沒有影響,因為異或滿足結合律。

與非邏輯實現的異或運算的邏輯表達式如下:

硬件描述和引腳分配[編輯]

異或門是基本的邏輯門,因此在TTLCMOS集成電路中都是可以使用的。標準的4000系列CMOS集成電路為4070,包含四個獨立的2輸入異或門。4070替換了可靠性差的4030,但二者的引腳分配相同。下面是引腳分配表:

4070四異或門DIP封裝集成電路的引腳分配圖
  1. 輸入A1
  2. 輸入B1
  3. 輸出Q1
  4. 輸出Q2
  5. 輸入A2
  6. 輸入B2
  7. VG
  8. 輸入A3
  9. 輸入B3
  10. 輸出Q3
  11. 輸出Q4
  12. 輸入A4
  13. 輸入B4
  14. VCC

包括NXP在內的很多半導體製造商都生產這一元件,封裝方式分為直插DIP封裝SOIC封裝英語small-outline integrated circuit兩種。元件的數據表可在大多數元件資料庫查詢到。

傳輸門連線[編輯]

異或門可以用MOSFET組成。下圖是CMOS實現的異或門。[1]

異或門的傳輸門連線

備選方案[編輯]

CMOS異或門
利用 NOT, AND, OR 組成的異或門

輸入1和1時,XOR會輸出0。因此,不可能只使用AND和OR組成XOR,必須包含反相器(NOT)。

如果沒有特定的邏輯門,我們可以用其他現有的邏輯門構建。顯而易見的一個方法是用同或門後接一個非門來實現異或門。如果按照邏輯表達式,我們可以利用與門或門非門來構建異或門。但是,這種方法需要3種共5個邏輯門。

異或門可利用四個與非門或五個或非門來實現,連線方法見下圖。因為與非門和或非門是「通用的門電路」,因此任何一個邏輯函數都可單獨由與非邏輯或非邏輯來實現。

僅用與非門(NAND)實現的異或門
僅用或非門(NOR)實現的異或門

留意下表,OR和NAND中間兩行輸出跟XOR相同,第一和第四行不同。所以,利用OR和NAND再加上AND可以組成XOR。

 A   B  OR NAND XOR
0 0 0 1 0
0 1 1 1 1
1 0 1 1 1
1 1 1 0 0

2個輸入以上的情況[編輯]

若嚴格的理解邏輯異或的定義,或觀察IEC符號,我們就會提出關於2輸入以上的異或門是否能有正確表現的問題。如果一個邏輯門能有3個或更多的輸入,並能得到正確的輸出,而且輸入中的一個為真,那麼這個邏輯門在效果上是一個單熱英語one-hot檢測器,而其實這是僅有2個輸入的情況。不過,實際中極少用這種方法來實現這一裝置。

將連續相接的輸入接入級聯的異或門是很常見的連接方式。首先將2個訊號作為一個異或門的輸入,然後將其輸出以及第3個訊號作為第二個異或門的輸入,對需要接入的其他訊號反覆進行以上操作,這樣就會得到如下結果:若輸入中高電平(1)的個數是奇數,輸出為高電平(1);若輸入中高電平(1)的個數是偶數,輸出為低電平(0)。這種特性在實際應用中可實現奇偶發生器或模2加法器

例如,74LVC1G386微型集成電路是3輸入異或門,可實現奇偶發生器[2]

Verilog的縮減運算子"^"能將任意位輸入進行從高位到低位逐次異或運算,得到一位輸出。

其他應用[編輯]

加法器[編輯]

半加器電路圖範例

異或門可以作為一位加法器,可將任何2位相加得到1個輸出。若兩個輸入的值均為1,則得到10的結果,而與門由兩個輸入的值控制進位的輸出。以上是半加器的主要原理。

異或密碼[編輯]

安全加密演算法一次性密碼本就是利用異或門實現的。加密的原理是將要加密的檔案(明文)編碼成二進制序列,然後將與被加密的訊息長度相同的隨機二進制序列作為金鑰,再將明文與金鑰的每一位依次進行按位元異或運算,得到密文。若將密文與金鑰的每一位依次進行按位元異或運算,就能得到原文。

異或校驗[編輯]

101 XOR 011 = 110
110 XOR 011 = 101
110 XOR 101 = 011

將兩個3位二進制序列101011進行異或奇偶校驗可得到異或校驗和110(右表第一行右側)。若序列101遺失,我們可以將已知序列011與異或校驗和進行異或運算得到遺失的序列(右表第二行)。

異或門倍頻器[編輯]

數碼訊號倍頻器

將方波訊號和利用RC電路延遲的方波訊號作為異或門的兩個輸入,可以很容易的得到頻率達到100 MHz以上的方波。輸出得到的針尖脈衝是鎖相的,其頻率會與RC電路的時間常數基本保持同步。由於這種倍頻器不需要共振濾波器,輸入訊號可以具有經過調頻的任意占空比,也可以是強訊號。

可控反相器[編輯]

將異或門的一個輸入作為訊號輸入端,另一個輸入作為控制端,若控制端為低電平(0),訊號輸出不變;若控制端為高電平(1),異或門表現為反相器,訊號輸出反相。

參見[編輯]

參考文獻[編輯]

  1. ^ Paul Falstad's Circuit Simulator Applet. [2010-08-04]. (原始內容存檔於2013-01-21). 
  2. ^ 74LVC1G386 互聯網檔案館存檔,存檔日期2009-12-29.數據表英語data sheet
  • Tietze, Ulrich; Schenk, Christoph. Halbleiter-Schaltungstechnik. Springer. 2002年12月. ISBN 3-540-42849-6. 
  • Beuth, Klaus. Digitaltechnik. Vogel. 1998年10月. ISBN 3-8023-1755-6. 
  • Seifart, Manfred; Beikirch, Helmut. Digitale Schaltungen. Technik. 1998年5月. ISBN 3-341-01198-6.