Piston-Logik
In diesem Artikel wird beschrieben, wie man Logik-Gatter und andere Bausteine der Informations- und Elektrotechnik mithilfe von Pistons realisieren kann.
Piston-Bausteine haben gegenüber Redstone-Logik den Vorteil, in den meisten Fällen schneller zu schalten. Dafür brauchen sie teilweise aber mehr Platz und erzeugen in jedem Fall Geräusche.
Inhaltsverzeichnis
Unäre Operatoren
Unäre Operatoren haben einen Eingang und einen Ausgang.
NOT-Baustein (Inverter)
Der NOT-Baustein (Nicht-Baustein oder Inverter) invertiert das Eingangssignal. Bei einer 1 am Eingang gibt er eine 0 aus, bei einer 0 eine 1.
| IN | OUT |
|---|---|
| 1 | 0 |
| 0 | 1 |
Binäre Operatoren
Binäre Operatoren verarbeiten zwei Eingangssignale zu einem Ausgangssignal.
Es gibt 16 verschiedene binäre Operatoren. Hier werden nur die wichtigsten vorgestellt.
AND-Operator
Der AND-Operator (UND) gibt nur dann eine 1 aus, wenn beide Eingangssignale 1 sind.
| A | B | OUT |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
OR-Operator
Der OR-Operator (ODER) gibt dann eine 1 aus, wenn mindestens einer der beiden Eingänge 1 ist.
| A | B | OUT |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
XOR-Operator (UNEQUAL)
Der XOR-Operator (EXCLUSIVE OR) ist genau dann 1, wenn nur exakt einer der beiden Eingänge 1 ist. Oder anders ausgedrückt: Er gibt eine 1 aus, wenn die Eingänge verschieden sind.
| A | B | OUT |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
NAND-Operator
NOR-Operator
XNOR-Operator (EQUAL)
Der XNOR-Operator (EXCLUSIVE NOR) ist genau dann 1, wenn beide Eingänge 1 oder beide Eingänge 0 sind. XNOR wird also 1, wenn die Eingänge gleich sind.
| A | B | OUT |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Speicherbausteine
Ein FlipFlop ist ein Baustein der genau ein Bit an Information speichern kann, also eine 0 oder eine 1.
Ein großer Vorteil des Piston-FlipFlop ist, dass sein Zustand bei einem Neustart des Servers erhalten bleibt. Reine Redstone-FlipFlops werden häufig zurückgesetzt wenn der Server neu startet. Zudem schaltet der Piston-FlipFlop ausgezeichnet schnell und ist platzsparend. Allerdings macht er bedingt durch die Pistons auch Geräusche.
R/S-FlipFlop
Ein R/S-FlipFlop besitzt 2 Eingänge:
- Der S-Eingang (SET) setzt den Wert des FlipFlop auf 1, sobald ein Signal ankommt
- Der R-Eingang (RESET) setzt den Wert des FlipFlop auf 0, sobald ein Signal ankommt
Der Wert des FlipFlop wird am Ausgang Q ausgegeben.
Echte FlipFlops haben oft noch den invertierten Ausgang !Q (NOT Q), dieser fehlt in dieser Implementation. Durch einfaches invertieren der Ausgabe kann man dieses Signal aber dennoch erhalten.
Der Piston R/S-FlipFlop schiebt um dieses Verhalten zu erreichen beim RESET einen beliebigen ganzen Block über eine Redstone-Verbindung, die sich aufwärts verbindet. Diese wird dadurch gekaptt und der Ausgang wird 0. Der zweite Piston schiebt den Block wieder weg und die Redstone-Leitung verbindet sich wieder. Der Ausgang wird 1.
D-FlipFlop
T-FlipFlop
Der T-FlipFlop hat im Gegensatz zum R/S-FlipFlop nur einen Eingang. Jedes Mal wenn dort ein Signal ankommt invertiert er sein Ausgangssignal (er togglet, daher das T).
Der hier vorgestellte Ansatz ist nicht grade platzeffizient, könnte aber unter Umständen noch dahingehend optimiert werden. Dieser T-FlipFlop schaltet um, sobald das Signal am Eingang von 1 auf 0 fällt (Falling Edge). Das Eingangssignal muss also erst wieder verschwinden damit er schaltet. Um das umgekehrte Verhalten zu erreichen (Rising Edge) muss man entsprechend nur den Eingang invertieren.