邏輯電路(Logic Circuit)可認為是一個會返回輸出結果的裝置,輸出結果由輸入訊號以及邏輯門的規則決定。舉個例子,若且唯若兩個輸入到與門的訊號都為 '真'/'開'/'啟動的'/'高電平'/'1'時,與門才將'真'/'開'/'啟動的'/'高電平'/'1'作為輸出結果。
有許多不同種類的邏輯門,每種邏輯門都有很多不同的設計方案。不同的方案也各自有優缺點,如電路規模、複雜度、執行速度、維護難易度以及花費等。下面的章節會對每一種邏輯門列出很多不同的設計方案供讀者參考。
概念[]
A | 開 | 開 | 關 | 關 | (輸出為真時)等效文字邏輯表達 |
---|---|---|---|---|---|
B | 開 | 關 | 開 | 關 | |
A反 | 關 | 關 | 開 | 開 | A為假嗎? |
A或B | 開 | 開 | 開 | 關 | 有一個輸入為真嗎? |
A或非B | 關 | 關 | 關 | 開 | 兩個輸入都為假嗎? |
A及B | 開 | 關 | 關 | 關 | 兩個輸入都為真嗎? |
A與非B | 關 | 開 | 開 | 開 | 有一個輸入為假嗎? |
A異或B | 關 | 開 | 開 | 關 | 兩個輸入不同嗎? |
A同或B | 開 | 關 | 關 | 開 | 兩個輸入相同嗎? |
A蘊含B | 開 | 關 | 開 | 開 | A是真、B是假不滿足嗎? |
如果忽略邏輯門本身的少量延遲,我們可以認為邏輯門的輸出可以立即對輸入的狀態產生反應。
- 交換輸入
- 大多數2輸入邏輯門中,交換A端與B端並不影響輸出結果。
- 交換蘊含門的輸入端會對輸出造成影響,除此之外,非門只有一個輸入端。
- 層疊輸入
- 與門,或門與異或門可以透過輸入端兩兩樹狀層疊完成多輸入改造。這樣改造後的輸入端彼此依然可以交換。
- 異或門這樣改造後,只有輸入端為真的個數為奇數,輸出才為真。
- 邏輯門的選擇
- 如果不清楚應該用哪種邏輯門,你可以像右邊一樣列一張表(只留一行輸出就夠了)。列出所有輸入訊號的可能組合以及期望對應的輸出,然後可以將你列出的表與下面的表進行對比,看看哪一種符合即可選用。列表也給出了每種運算的對應數學符號。
邏輯門[]
邏輯門(Logic Gate)為最基本的邏輯電路。
非門[]
A | 開 | 關 |
---|---|---|
A反 | 關 | 開 |
非門(NOT Gate)即「反相器」,會將所輸入的真值反相,也就是當輸入為假時輸出為真,反之亦然。
- 火把反相器
- 1格寬,平面,靜音,可並列
- 電路延遲:1刻
- 火把反相器是最古老、最常見的非門,其具有低原材料消耗、小體積、高靈活性與極容易建造等特點。
- 火把反相器的最大缺點就是當其傳輸時鐘寬度小於3刻(即3刻高電平3刻低電平循環)的時鐘訊號(稱為3刻時鐘)時,火把會產生「燃盡」效果而暫時無法正常工作。一定隨機時間間隔之後才會恢復正常,這樣會造成難以預測的電路響應。
- 活塞反相器
- 極其簡單,極其便捷。缺點:噪音極其大。
- 減法反相器
- 平面,靜音
- 電路延遲:1刻
- 減法反相器能夠響應2刻時鐘,但無法響應更快的時鐘——因為比較器本身的限制。
- 替代方案: 拉下的控制桿可以替換為任何永遠啟動的電源元件(例如紅石火把、紅石方塊);如果放置電源元件不方便,用裝滿的容器替代也是可以的。.
- 中繼器的作用是確保輸入訊號比比較器的末端輸入更強。如果輸入訊號強度已知,那麼中繼器可以在拉下的控制桿被能夠產生相同訊號強度的容器替換的前提下移除。你也可以在確保輸出端連接的紅石線長到足以將訊號反相的前提下移除中繼器。
- 瞬時反相器
- 瞬時
- 電路延遲:0
- 瞬時反相器是大型瞬時電路的基礎部分。
- 「地面版」具有最大的占地面積,但較矮小,而且能與其他平面電路相適應。「高版」占地面積與用料均最小,但輸入和輸出端的位置不甚理想。「長版」較大,但輸入和輸出端的位置方便與其他電路相接。
- 「高版」的輸出端也可以從半磚下面的方塊引出,但這樣的話只有輸入的上邊沿訊號才能做到無延遲。
- 表現: 瞬時反相器有兩個黏性活塞——一個用於切斷輸出,另一個用於移動紅石方塊電源。
- 輸入為假時,紅石方塊啟動輸出端。輸入為真時,紅石方塊馬上被移走,切斷輸出端訊號(即立即對輸入進行反相)。同時,紅石中繼器啟動,但在其能啟動輸出端之前,另一個方塊就會及時移動切斷輸出。
- 輸入為真時,紅石比較器嘗試啟動輸出,但輸出會被移來的方塊切斷。輸出一被切斷,方塊縮回,馬上使得訊號透過(即立即對輸入進行反相)。中繼器只會在其熄滅之前啟動輸出端2刻,但這點時間已經足夠讓紅石方塊回到原先位置接替中繼器繼續啟動輸出端。
- 替代方案: 將瞬時反相器作為大型電路的一部分時,可能需要移動輸入輸出端,此時,兩個黏性活塞和紅石中繼器必須同時啟動。「長版」讓這三個部件可以透過充能一個方塊同時啟動,但其餘瞬時反相器方案就需要玩家自己布線連接三個部件了。
- 除此之外,只要紅石方塊以及其粘附的活塞能夠被輸入端無延遲啟動,且能夠在中繼器之後2刻之內伸出啟動輸出端,紅石方塊以及其粘附的活塞可以挪到任何合適的地方。
或門[]
A | 開 | 開 | 關 | 關 |
---|---|---|---|---|
B | 開 | 關 | 開 | 關 |
A或B | 開 | 開 | 開 | 關 |
或門(OR Gate)在邏輯學裡又稱為「選言」,運算方法是只要有一個輸入訊號為真,輸出即為真;所有輸入都為假時,輸出才會為假。
或運算可以層疊,或門可以樹狀首尾自由組合,之間的順序與層級不會影響最終的運算結果。
方案A是最簡單的或門:僅僅是一個直接連接輸出端和輸入端的紅石線。不過這也導致這個或門的輸入變得很「暴露」,因此同一輸入端只能被接在這一個或門上面。圖示中的例子用了一個固體方塊替代了紅石線,這樣就不會有這個問題了。
如果你想把輸入用在其他地方,輸入端必須隔離,或是像上面一樣穿過一個方塊,或是利用紅石火把/中繼器,這樣就產生了方案B。其實這個方案就是一個輸出被反相的或非門。
方案C用中繼器隔離了輸入端。可以在水平方向將輸入端數量擴展到至多15個,比方案B快一刻。如果想擴展更多輸入訊號,就需要用額外的中繼器加強了。然而,由於一個紅石中繼器需要三個紅石粉來製作,故版本C需要較多的紅石粉(還有石頭)。
方案D1格寬的縱向設計,中繼器用於隔離輸入輸出。本版本只能有兩個輸入,當然你可以透過層疊或門達到變相擴展輸入端數量。
方案E利用了諸如倒置半磚與螢光石塊等透明方塊的特性:他們鋪設紅石線時只能向上傳導,而無法向下傳導。本設計與C方案都具有相當強的可擴展性。
或非門[]
A | 開 | 開 | 關 | 關 |
---|---|---|---|---|
B | 開 | 關 | 開 | 關 |
A或非B | 關 | 關 | 關 | 開 |
或非門(NOR gate)即為或的反面,也就是只要有一個輸入為真,輸出即為假。當所有輸入都為假時,才會輸出真。
或非門可以由一個紅石火把來實現,所以在Minecraft中算是非常基礎的邏輯門。(單輸入時為非門,無輸入時為「同閘」即電源)
一個火把很容易透過方案A那樣實現三輸入,而方案B透過長度加長實現了四輸入。如果想實現更多輸入端,可以像或門那樣層疊,最後再經過一個非門。
與門[]
A | 開 | 開 | 關 | 關 |
---|---|---|---|---|
B | 開 | 關 | 開 | 關 |
A及B | 開 | 關 | 關 | 關 |
與門(AND gate)在邏輯學中又稱為「且」,只有在所有輸入都為真時,才會輸出真。和或門類似,三輸入與門可以自由層疊。
與門的典型應用是建造一個可以鎖住的門,如果要開門,就需要同時按鈕按下以及鎖(通常是控制桿)打開的情況下啟動按鈕。
很多與門類似於「三態緩衝器」,輸入端B就像一個開關,但它關閉後,輸入端A就與電路其他部分斷路了。不過與現實生活中的三態緩衝器不同的是,Minecraft裡不可以驅動低電流。(請參考維基百科:三態邏輯獲知更多資訊)
與非門[]
A | 開 | 開 | 關 | 關 |
---|---|---|---|---|
B | 開 | 關 | 開 | 關 |
A與非B | 關 | 開 | 開 | 開 |
與非門(NAND gate)簡單來說就是「不全是即真」,也就是與門的對立。在所有的輸入都為真時,輸出假。
「與非門」跟「或非門」類似,任選一個就可以構建出所有的邏輯門。
與非門也可以透過層疊與門,最後再取反相,來實現輸入端擴展。
異或門[]
A | 開 | 開 | 關 | 關 |
---|---|---|---|---|
B | 開 | 關 | 開 | 關 |
A異或B | 關 | 開 | 開 | 關 |
異或門(XOR gate)為只要輸入訊號有不同時,就輸出真,所有輸入訊號都相同時,才輸出假。
異或門一般能滿足在多地控制同一機械的需要。控制端(通常為控制桿)用異或門組合,切換任意一個控制端都會改變異或門的輸出(類似於現實生活中控制同一個燈泡的兩個開關——你可以用任意一個開關控制燈泡的亮暗)。
類似與門、或門,異或門也可以自由層疊。只不過輸入端為1的數量為奇數時,最終輸出才為1。
方案D很簡潔,但只能用控制桿作為輸入。加深的方塊在另一個固體方塊的頂層,同時被兩個控制桿和一個紅石火把附著。
方案F為純紅石火把方案中最常用的,但一些包括新元件的方案的效能比這個方案更好。方案H採用了活塞,響應速度更快,更節省空間。
除了火把和活塞之外,不同的中繼器可以實現相對壓縮與便宜的異或門方案。方案I依照可用空間任意選擇輸入端中繼器的來向,下方也可以。方案J使用了便宜的透明方塊。
Minecraft 1.5 紅石比較器的引入使得異或門擁有了新的設計思路:「減法異或門」,平面,響應速度快,靜音,建造容易。唯一局限是在生存模式裡你需要花時間開採地獄石英。
每個輸入端與和其距離最近的比較器的側面與尾部距離均相同,這樣可以單個輸入端無法使得和其距離最近的比較器輸出訊號,但能夠使距離較遠的那個比較器輸出訊號。因此,整個減法異或門若且唯若只有一個輸入端啟動時,輸出端才有訊號。
然而,這種情況必須保證原始輸入訊號強度完全相同(相差不超過1也可以),否則會出現一側訊號過強將另一側壓制的情況。在保證原始輸入訊號強度相同的前提下,你才可以使用「基礎版」。否則就必須採取方法平衡兩邊的強度。常用的方法包括「中繼版」與「反相版」。
減法異或門圖示
同或門[]
A | 開 | 開 | 關 | 關 |
---|---|---|---|---|
B | 開 | 關 | 開 | 關 |
A同或B | 開 | 關 | 關 | 開 |
同或門(XNOR gate)在邏輯學裡又稱為「雙條件」,或稱為「若且唯若」(if and only if)。所有輸入訊號都相同時才輸出真,只要有一個以上不相同時就輸出假,也就是異或門的對立。
跟異或門類似,兩個輸入訊號中的任何一個發生改變,輸出訊號都會發生改變。
在異或門的輸出端或者其中一個輸入端加非門,可以很方便的等效實現同或門。
方案A為純火把設計。如果不需要外部輸入端,朝後的兩個火把可以用控制桿代替,即方案B。方案F較大,但邏輯思路清晰,方案I實際就是異或門方案H的非門改造產物。
蘊含門[]
B開 | B關 | |
---|---|---|
A開 | 輸出 | 不輸出 |
A關 | 輸出 | 輸出 |
蘊含門(IMPLIES Gate)在邏輯學裡又稱為「實質條件」,簡單來說就是「若A則B」。
在A → B的所有四種結果中,只有在A為真,但B為假的狀況下,蘊含門才會輸出訊號為假。其他狀況蘊含門都輸出為真。
如果1代表真,0代表假,蘊含門也可以理解為「A小於等於B」(A<=B)。
方案C和F在輸出為真時需要2刻,輸出為假時只需要1刻;方案E輸出為真時需要1刻,輸出為假時瞬時反應;其他的方案在輸出為真時瞬時反應,輸出為假時需要1刻。如果你必須同步輸出週期,一般會用紅石中繼器來對「較快的」輸入端延遲1個紅石週期從而使輸出同步(對於C和F而言就是輸入端A,對於其他方案而言就是輸入端B)。
方案E和F都是利用紅石比較器的減法模式做成的蘊含門。如果想要使用E方案,就必須確保兩個輸入端輸入的能量相同(不然會出現A和B都為真之後,蘊含門仍然輸出能量的情況),否則就要想辦法平衡兩個輸入端的能量,比如使用方案F。
參見[]
- 維基百科:邏輯門
- 教學/活塞電路
語言