Wurstbrot_deluxe Posted February 20, 2017 Share Posted February 20, 2017 (edited) Ich möchte zum Einstand in diesem Forum meine bis dato größte Spielerei mit Redstone vorstellen. Es handelt sich um eine frei programmierbare Anzeige mit 31 Spalten (Bytes) und 8 Zeilen (bit). Jeweils acht übereinander liegende Speicherzellen - also 8 bit - werden unter der gleichen Adresse erreicht und können gleichzeitig beschrieben oder gelöscht werden. Desweiteren gibt es einen total reset über die gesamte Anzeige. Am "Kontrollpult" rechts lassen sich über Hebel die acht Datenleitungen mit Signalen belegen. binär 0 oder 1, also Lampe aus oder Lampe an. Links sind die acht Hebel für die Signale des Adressbus, mit 8 Hebeln sind 256 verschiedene Einstellungen möglich. Mit den Werten 1110000 binär (also E0 hexadezimal) bis 11111110 binär (FE hex) sind die Bytes der Anzeige adressierbar. Die vergebenen Adressen könnte man auch nachträglich ändern mit den vorhandenen Hebeln an der Rückseite des Adressdecoders. Oberhalb der Anzeige gibt es noch Kontrolllampen, die die jeweils aktive Reihe anzeigen. E0hex ist von vorne gesehen rechts, FEhex links. Der Adressdecoder (gelb im zweiten Bild) arbeitet je Reihe mit acht parallelen exklusiv-nicht-oder-Verknüpfungen, die über mehrere Stufen mit Und-Gattern zu einem Ausgangssignal verarbeitet werden. Soll heißen, das Ausgangsssignal liegt nur dann an, wenn die Signale auf dem Adressbus mit den in den XNOR Gattern vorgegebenen Werten exakt übereinstimmen. Das Ausgangssignal des Adressdecoders wird über ein NAND Gate mit dem Schreib Kommando verknüpft und parallel dazu über eine UND Schaltung mit dem Löschkommando. Das Schreibkommando wird über eine weitere UND Verknüpfung mit dem Signal des Datenbus verbunden. Diese Leitungen führen je Bit auf ein RS-NOR Gatter, das ist die zu beschreibende Speicherzelle. Das RS-NOR wurde gewählt, weil es mit einer Grundfläche von 3x3 Blöcken die wohl kompakteste Möglichkeit ist, eine Speicherzelle mit Redstone zu bauen. Das Ausgangssignal der Speicherzelle steuert dann die Redstonelampen der Anzeige an, jeweils vier Stück als Block. Die Herausforderung bestand darin, eine halbwegs kompakte Bauweise zu finden. Der Abstand der einzelnen "Lampenblöcke" des Displays lässt nur eine Breite und Höhe von drei Blöcken zu, nur in der Tiefe besteht Spielraum. In der gesamten Logik gibt es nur Redstonekabel, Redstonefackeln, Verstärker und Redstonelampen. Dazu 16 Hebel und drei Knöpfe am Kontrollpult und 248 Hebel, die für die Adressierung der Speicherreihen verwendet werden. 31Byte * 8bit Adressbusbreite = 248. Diese 248 Hebel werden nur einmal betätigt für die initiale Adressvergabe der Speicherreihe (des Byte), oder wenn man tatsächlich die Adressen der Anzeige ändern möchte. Im Nachhinein habe ich mich etwas geärgert über zwei Defizite. Es wäre schöner gewesen, wenn man den Inhalt der Speicherzellen auch überschreiben könnte, anstatt nur zu löschen und dann neu zu beschreiben. Zudem habe ich es aus Platzmangel nicht mehr geschafft, eine Broadcastfunktion über die Adresse FFhex zu implementieren, mit der man alle Spalten gleichzeitig mit dem selben Wert beschreiben kann. Optimierungspotenzial gibt es hinsichtlich der Menge der verbauten Verstärker im Adress- und Datenbus. Senkrecht nach oben führende Steuersignale der Speicherzellen wurden über Redstonefackeln realisiert, da galt zunächst: Platz einsparen ist wichtiger als Arbeitstempo. Vielleicht ist da noch was mit Redstonewendeltreppen möglich. Gruss wb_d Blick auf das Gesamtkonstrukt, im Vordergrund Adressbus (gelb), Datenbus (blau), Steuersignale (grün und rot) Die Rückseite: gelb: Adressdecoder mit acht XNOR Gattern und kaskadierten UND Verknüpfungen blau: 8 bit Datenbus weiss: Speicherzellen und Ausgabe Kontrollpult: links Hebel für den Addressbus rechts: Datenbus Mitte: Steuersignale gesamte Anzeige löschen, aktuelles Byte löschen und Daten in Speicher schreiben Adressbus: 11100011, also E3 hexadezimal, damit wird das dritte Byte von rechts auf der Anzeige angesprochen Die Kontrollleuchte oberhalb des Displays (da wo das Fadenkreuz ist) zeigt die gewählte Reihe an Auf dem Datenbus ist 11101000 eingestellt, das soll ein ! ergeben. Mit Druck auf den grünen Knopf (memory write) wird der Wert des Datenbus in die Reihe geschrieben. Voila! fertig. Edited February 22, 2017 by Wurstbrot_deluxe typofehler, ergänzung Link to comment Share on other sites More sharing options...
boomer41 Posted February 20, 2017 Share Posted February 20, 2017 Sehr nice Bist du zufällig E-Technik interessiert? Link to comment Share on other sites More sharing options...
Wurstbrot_deluxe Posted February 20, 2017 Author Share Posted February 20, 2017 gelernt ist gelernt, wenn auch über ein viertel Jahrhundert her. Link to comment Share on other sites More sharing options...
Softwerker Posted February 20, 2017 Share Posted February 20, 2017 Ich mach ja auch gerne mal was mit redstone, aber das ist schon echt gut. Du solltest mal den Mod "Super Circuit Maker" ausprobieren - da haste bestimmt deine helle Freude dran. :-) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now