條目中某些資訊已經不符合目前版本情況。
Template:Mcrs diagrams
鎖存器(Latch)與觸發器(Flip-flop)是相當有效的一位(1bit)儲存單元。與一般的單個或多個邏輯門在輸出訊號時會隨著輸入訊號而實時改變不同,鎖存器與觸發器允許儲存輸入資料,並在可控的一段時間後輸出。我們可以利用這些組件搭建函數,即使輸入不變時,也會得到輸出的結果,這樣的電路可以被稱為「時序邏輯」。這樣使得僅僅透過邏輯門的依次級聯無法建成的計數器、長週期時鐘與大規模的複雜儲存裝置成為可能。
「鎖存器」與「觸發器」是兩種不同的裝置。但「鎖存器」可以被製作成「觸發器」,它們的其中一些區別與聯繫在於:
- 「鎖存器」指對輸入訊號的某個狀態產生反應的電路,一般用於資料儲存或隔離,基本上為電平觸發-輸入改變輸出直接改變,是無時序元件,作用只是維持一個端口的電平,「鎖存」住訊號;
- 「觸發器」指對輸入訊號的變化產生反應的電路。一般用於在觸發條件滿足之後對輸出進行特定操作,以邊沿觸發居多-有時鐘端,由時鐘觸發,根據輸入端狀態改變輸出端狀態;
每個紅石鎖存器或觸發器的核心為RS或非鎖存器。由於其在觸發器與鎖存器內的基礎地位,所以在一些教科書內也會稱之為「RS基本觸發器」。RS或非鎖存器由兩個輸入與輸出彼此接成環的或非門組成(見下)。RS或非鎖存器的對稱性帶來了對究竟哪一種狀態代表「設定(Set)」一個任意結果的選擇問題(除非其他的邏輯結構被接入以建立複雜結構)。鎖存器通常有兩個輸入,一個叫做「設定(Set)」輸入,另一個叫做「復位(Reset)」輸入。這兩個輸入端被用以控制儲存資料。觸發器的原理是在RS鎖存器周圍環繞邏輯門以實現特定功能。
RS或非鎖存器與輸入穩定器
RS或非鎖存器的設計方案
RS或非鎖存器(RS NOR Latch)(又與RS或非鎖存器統稱為RS基本觸發器,或SR基本觸發器)的S端收到訊號真後,Q端訊號將為真且永久保持,直到R端收到訊號真,Q端才為假。
RS或非鎖存器的最常見應用是把控制脈衝轉化為穩定紅石訊號——就像控制桿一樣。這樣,只需要將兩個按鈕、壓力板、絆線鈎之類的方塊連接到鎖存器的兩個輸入端,就可以分別實現開/關的動作。
這個也許是Minecraft裡可以製作的最小的儲存器裝置。 須知 Q 表示Q的反相,也就是說,如果 Q 表示為真,則 Q 是假,反之亦然。這表示,在某些情況下,你可以簡單地選擇你要的輸出時正相還是反相,而不在需要要求反相輸出時在Q後面額外的加入一個非門了。
一個很基礎的例子是用它來製作一個警報系統,當作為傳感器的壓力板被玩家或怪物踩上後,一個警告燈(比如紅石火把)會亮起,並且將一直亮下去,直到有人按下復位按鈕。
在真值表中,輸入端 S 和 R 是禁止同時為真的,因為這就破壞了輸出端 Q 與 Q 互反的規則。並且,在一些設計版本(比如B和D)中,輸入端訊號非隔離於輸出端訊號,會導致輸出訊號 Q 和 Q 同時顯示為真。只有當 S 或者 R 為假後,輸出訊號才會重新變為正確值。然而,如果 S 和 R 在同一週期同時變為假,則輸出結果將不可預測,可能是 Q,也可能是 Q,取決於遊戲的機制。在實際使用中,這種使得輸出值無法預測的輸入狀態應該避免使用。在設計版本E中,如果 S 與 R 同時為真,則 Q 和 Q 同時為假。
除了傳統紅石電路設計,RS或非鎖存器還可以用黏性活塞來實現。如果一個紅石中繼器連接著自己本身,並且給他一個初始電源,則這個電力將一直在電路中循環直到電路被斷路。如果一個粘著方塊的黏性活塞來切斷電路,那麼它就可以作為重設輸入端 R,來重設整個鎖存器電路。這個方法比傳統的紅石電路設計要簡單,不過需要佔據更多的空間。在Minecraft 1.0之後您可以製作更壓縮的RS或非鎖存器:當活塞在水平面放置時電路尺寸為2x5x2,當活塞縱向放置時電路尺寸為2x3x4
| S | R | Q | Q |
|---|---|---|---|
| 1 | 1 | 無定義 | 無定義 |
| 1 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 |
| 0 | 0 | 保持狀態 | 保持狀態 |
| 設計 | A | B | C | D | F | H | I | J | K |
|---|---|---|---|---|---|---|---|---|---|
| 尺寸 | 3x3x1 | 2x3x2 | 3x3x3 | 4x2x2 | 4x2x1 | 1x3x3 | 2x1x3 | 5x1x3 | 4x1x3 |
| 紅石火把數量 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 0 |
| 紅石粉數量 | 4 | 4 | 8 | 6 | 4 | 4 | 0 | 7 | 4 |
| 輸入獨立? | 是 | 否 | 是 | 否 | 是 | 否 | 是 | 是 | 否 |
| 輸出獨立? | 是 | 是 | 否 | 否 | 是 | 否 | 是 | 是 | 否 |
| 兩輸入端朝向 | 相對 | 相對 | 相鄰 | 相對 | 相對 | 相對 | 相對 | 垂直 | 垂直 |
啟用/停用RS或非鎖存器
啟用/停用RS或非鎖存器可以由在鎖存器的兩個輸入端(S 和 R)均放上一個與門來實現。兩個與門的輸入端連到第三個輸入端 E 上。如果 E 為真,則鎖存器正常執行。否則,鎖存器將不會改變輸出狀態。這又被稱為門控RS鎖存器。
輸入穩定器單元
輸入穩定器電路
這個裝置可以穩定輸入訊號,一旦收到輸入訊號就能一直保持它(即使輸入訊號源已經關閉)。本質上,它就是一個中繼器自供電的無R端的RS或非鎖存器。比如用該裝置可以將按鈕或者壓力板所產生的一次性短促訊號變為永久訊號。
這個裝置可以改裝為RS或非鎖存器。一個方法是在圖示的頂行,放置兩個串聯的非門(紅石火把)。當第二個非門被啟動後(也就是非門輸出為假),裝置的狀態回到假。除此之外,也可以用活塞來實現這個改裝。 本裝置對於壓力板觸發的陷阱較為有用,因為被困住的玩家即使破壞壓力板也無法重設陷阱。
如果您需要重設這種電路,您可以直接改用RS或非鎖存器,將R端隱藏到某個控制室即可。
RS與非鎖存器
RS與非鎖存器的設計。
由於非門和與非門都是通用邏輯門,設計一個RS與非鎖存器(RS NAND Latch)其實就是設計一個在輸入和輸出端都反相的RS或非鎖存器。RS與非鎖存器在相同的輸入情況下,邏輯上與RS或非鎖存器的輸出是相同的。由於在Minecraft中一個紅石火把就是一個非門,所以RS與非鎖存器的設計在遊戲中沒有實用意義。
當 S 和 R 同時為假(也就是 S 和 R 同時為真)時, Q 和 Q 同時為真。 當 S 為真, 不過 R 為假, Q 會輸出真。 當 R 為真, 但是 S 為假, Q 會輸出真。 當 S 和 R 同時為真,Q 和 Q 將不做改變,會保持條件前的狀態。
| S | R | Q | Q |
|---|---|---|---|
| 1 | 1 | 保持狀態 | 保持狀態 |
| 1 | 0 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 0 | 0 | 無定義 | 無定義 |
| 設計版本 | A | B |
|---|---|---|
| 尺寸 | 6x3x3 | 6x2x3 |
| 紅石火把數量 | 6 | 6 |
| 紅石粉數量 | 10 | 8 |
| 輸入端方向 | 鄰近 | 相對 |
D觸發器與門控D鎖存器
一個門控D鎖存器和D觸發器
D觸發器(D Flip-flop)(英文中「D」代表「Data」,「資料」之意),是對輸入時鐘脈衝邊沿訊號敏感的裝置。只有在檢測到邊沿訊號,才設定輸出訊號與輸入端D相同。比如時鐘的訊號由假變為真(上邊沿訊號),或時鐘的訊號由真變為假(下邊沿訊號)。一個觸發器一般被稱為是邊沿觸發裝置,鎖存器被稱為電平觸發裝置(在時鐘訊號真或假時一直觸發)。一個基礎的電平觸發裝置是門控D鎖存器(Gated D Latch)(設計版本A),它只在時鐘訊號為假時設定輸出訊號,在時鐘訊號為真時忽略輸入端訊號 D 的改變,保持輸出端訊號 Q 不變。
將一個D鎖存器轉換成D觸發器只需要加入一個邊沿觸發器。設計版本B裡就帶有一個上邊沿訊號觸發器,它只會在時鐘訊號由假變為真的時候,根據輸入端訊號 D ,設定輸出端訊號。
在這些設計方案中,它們的輸出端訊號都是非隔離的。這就允許異步R和S端輸入(會覆寫時鐘訊號並且強制設定輸出狀態)。如果要使輸出端隔離,可以不使用輸出端 Q, 取而代之的是使用 Q 端且加一個非門。
縱向的D鎖存器
設計方案C就是比設計版本A寬一格,並且用了正相時鐘的設計版本。它會在時鐘訊號為真時持續的設定輸出訊號。我們可以設計多個這樣的觸發器,並且並行放置在最小的空間裏。一個時鐘訊號可以分配給所有這些觸發器,這樣就允許多個觸發器共用一個時鐘邊沿訊號。輸出端 Q 在反方向上和輸入端一道比較容易連接。
壓縮的D鎖存器
設計方案E就是一個更緊湊版的設計版本A,同時仍具有相同的高度需求。設計方案E'允許邊沿觸發器在高電平輸入時被觸發。設計版本F在時鐘訊號為真時保持狀態,時鐘訊號變為假時輸出D的狀態。注意圖中有一個用於斷路的在紅石線之上的方塊,用黃色斜線表示。中繼器在此用來同步訊號,為此它必須處於啟動狀態。
設計方案G採用了在1.4正式版中新加入的紅石中繼器鎖存特性,在時鐘訊號為高電平時維持狀態。且比起其他之前的D觸發器設計方案而言壓縮程度大大提高。設計方案H相當於兩部分G方案的組合,一個為高電平觸發,一個為低電平觸發,這樣組合起來就是上升沿觸發。如果將方塊與紅石火把對調,得到的就是下降沿觸發。
| 設計方案 | A | B | C | D | E | E' | F | G | H |
|---|---|---|---|---|---|---|---|---|---|
| 尺寸 | 7x2x3 | 7x2x7 | 6x5x1 | 2x4x5 | 3x2x5 | 3x2x5 | 6x2x3 | 2x1x1 | 3x2x1 |
| 紅石火把數量 | 4 | 8 | 5 | 6 | 4 | 5 | 4 | 0 | 1 |
| 紅石粉數量 | 11 | 18 | 5 | 6 | 10 | 9 | 7 | 0 | 0 |
| 中繼器數量 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 4 |
| 觸發方式 | 電平 | 邊沿 | 電平 | 電平 | 電平 | 電平 | 電平 | 電平 | 邊沿 |
| 輸出獨立? | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 是 | 是 |
| 輸入獨立? | 是 | 是 | 只有C端 | 是 | 是 | 是 | 否 | 是 | 是 |
BUD型D觸發器
基於活塞BUD的D觸發器
有玩家[1]利用活塞BUD的原理製作了規模極小的D觸發器,可以大規模的應用於集成紅石電路中,但應用時應當注意除了D觸發器本身之外,活塞周圍的方塊不能作為電路組件使用,否則會干擾該觸發器的正常運作。
圖中控制桿作為D輸入端的例子,中間伸出的紅石線為時鐘觸發訊號輸入(上邊沿觸發),左側的紅石線為輸出端。中間的地板門只是作為BUD觸發的輔助物,在Java版1.5失效,應換成活塞、動力鐵軌、觸發鐵軌、音階盒或鐘。
JK觸發器與鎖存器
JK觸發器設計方案
JK觸發器(JK Flip-flop)可以作為另一種形式的記憶單元。其功能為:只有當時鐘訊號C「從假變真」異或「從真變假」(邊沿觸發,設計方案A與B)或者當時鐘持續在某一電平位置(電平觸發鎖存,設計方案C)時啟動觸發。當觸發器被觸發:如果輸入J=1且K=0,那麼輸出Q=1;如果J=0且K=1,那麼Q=0;如果J=K=0,那麼JK觸發器保持目前狀態;如果J=K=1,那麼輸出會反向變化——例如,如果觸發前Q=1,那麼觸發後Q=0。下方的真值表總結了這些狀態的變化——請注意Q(t)為出發後的新輸出,Q(t-1)為觸發前的輸出。
JK觸發器的取反功能 (J=K=1) 只有對於邊沿觸發的JK觸發器才是有意義的——邊沿觸發是一種瞬時觸發態。如果讓電平觸發的觸發器(比如設計方案C)具有取反功能,保持時鐘訊號為真的話會使觸發器不停地取反。雖然這個取反的速度還不足以讓紅石火把燃盡,但對於電平觸發的觸發器來說,取反功能依然不適用。
| J | K | Q(t) |
|---|---|---|
| 0 | 0 | Q(t-1) |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | Q(t-1) |
| 設計方案 | A | C | D | E |
|---|---|---|---|---|
| 尺寸 | 9x2x11 | 7x4x5 | 5x2x7 | 14x10x1 |
| 火把數量 | 12 | 11 | 8 | 10 |
| 紅石粉數量 | 30 | 23 | 16 | 24 |
| 中繼器數量 | 0 | 0 | 6 | 6 |
| 存在Q輸出? | 否 | 是 | 是 | 否 |
| 觸發方式 | 邊沿 | 電平 | 邊沿 | 邊沿 |
設計方案E是基於設計方案A的一個縱向的JK觸發器設計。整個電路可以成組地建造在一起——只要您遵循一定的建造方向,電路與電路之間有一方格之隔便可。如果將K端與Q端一起輸入一個與門,與門輸出端接到下一級觸發器的J與K端,您可以得到一個二進制計數器。如果要追求佔地面積的壓縮,您可以利用將紅石線以中繼器代替的方法來使輸入端K越過所碰到的那個方塊,然後在另一邊用紅石線連接K到Q即可。也有足夠的空間讓您建立縱向的與門以將結果輸出到Q的右側。
T觸發器
T觸發器設計方案
更多T觸發器設計方案
T觸發器(T Flip-flop)(在英文中「T」代表「Toggle」,「轉換」之意)一般只要T端從假變為真(如果觸發器為上升沿觸發條件),輸出就會取反。在Minecraft中一個比較實用的T觸發器應用是連接按鈕到輸入端,只要按鈕被按下一次,輸出就會轉換(比如一個門就會開啟或關閉),而且按鈕彈起的時候輸出不會變化。(設計方案D並不具有邊沿觸發的能力。一旦開始觸發,輸出就會不斷進行反相直到觸發電平被撤除)由於T觸發器具有「二分頻」的能力,即把每兩個輸入脈衝變為一個,所以它同時也是所有二進制計數器與時鐘的核心。
設計方案B不太適用於長脈衝。
在Java版中,黏性活塞具有一個十分有用的特性:如果一個黏性活塞被寬度只有1刻的脈衝啟動,它會一次性地推/拉一個方塊,但不會再把方塊拉/推回來。黏性活塞的這個特性使得其非常適合建造壓縮的T觸發器。設計方案Z1具有最小的佔地面積(黏性活塞與可移動方塊在位於第一層的火把之上的第二層)Z1的教學;設計方案Z2是高度最矮的——只有一格高;設計方案Z3為縱向設計;設計方案Z4由於其半埋藏的特點成為佔地面積最小的方案(3x2x2)。Z4的教學如果您想使用按鈕或者壓力板連接設計方案Z4,第一個中繼器與其右側的方塊可以被省略——只要您在那方塊右側的方塊(第二層)上附著按鈕或者壓力板即可。
設計方案L2、L3、L4與L5均依賴於1.4正式版加入的紅石中繼器鎖存特性。L3比起L2規模小,但反應慢。L4最小,但需要活塞,而且在下降沿觸發。L5與L3佔地面積相同,上升沿觸發,反應速度同L2,但高度為2格。
鐵軌型T觸發器
鐵軌型T觸發器
另一種鐵軌型T觸發器設計方案
鐵軌型T觸發器是使用鐵軌與紅石構造T觸發器的方法。鐵軌型T觸發器比傳統的T觸發器慢,但在某些情況下可能更加適應地形。
在鐵軌拐角處的木質方塊為壓力板,他們是用來切換底部RS或非鎖存器的狀態的。
發射器型T觸發器
發射器型T觸發器
1.3正式版之後,發射器可以射出/吸回水源方塊了。可以利用這一點與方塊更新感應器製作簡單的T觸發器。但這種設計的原料耗費無疑比傳統的純活塞T觸發器要大。現在水還可以換成熔岩或粉雪。
不如用紅石比較器輸出。
中繼器型T觸發器
紅石中繼器在同一遊戲刻先解鎖再收到上升沿從而建立切換狀態的計劃刻,執行計劃刻後再鎖定。