Piston-Logik

Aus Wurmfarm Wiki
Zur Navigation springen Zur Suche springen

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.

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

Piston not.png

Piston not side.png

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

Piston and.png

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

Pist or.png

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

Piston xor.png

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

Piston xnor.png

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.

Redstone piston rs.png

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.

Redstone piston t.png

Clocks / Taktgeber

Piston-Clock