• Keine Ergebnisse gefunden

Interface – Pseudo-Random-Number-Generator (PRNG)

Im Dokument Das 8-Bit-Waffeleisen (Seite 61-68)

6.4.1 Dokumentation und Arbeitsentwicklung Theorie

Linear r¨uckgekoppeltes Schieberegister Zur Erzeugung einer pseudozuf¨alligen Bitfolge eignen sich linear r¨uckgekoppelte Schieberegister . Das folgende Bild zeigt ein linear r¨uckgekoppeltes Schieberegister mit n = 4 Stellen; diese seien mitr1, r2, r3, r4 Element 0, 1 vorbesetzt. Diese Werte werden mit dem Seed a1, a2, a3, a4 Element 0, 1 multipliziert (logisches Und) und anschließend modulo 2 addiert (logisches Exklusiv-Oder). Das Ergebnis wird im n¨achsten Takt an die Stelle von r1 ¨ubernommen; die vorherigen Werte werden alle um eine Stelle nach links weitergeschoben, r4 wird ausgegeben [39].

Abbildung 34: Prinzip eines linear r¨uckgekoppelten Schieberegisters

Rihane Youssef

Rihane Youssef

Funktion der Gruppe Die Aufgabe der Untergruppe PRNG besteht darin, ein linear r¨uckgekoppeltes Schieberegister aufzubauen, das st¨andig Pseudo-Random Numbers (216-1 Kombinationen) gene-riert. Daf¨ur werden Zwei Seriellen 8-Bits-Schieberegister, Die ¨uber eine Logikschaltung r¨uckgekoppelt sind.

Abbildung 35: Blockschaltbild f¨ur den PRNG [4]

Die Schieberregistern bekommen ein regelm¨aßiges Clocksignal, wobei bei jedem Clockimpuls ein zuf¨alliges Bit zu dem STM32 r¨uckgesendet wird.

Der Seed (16 Bits) wird durch init. seriell in den dazu geh¨origen Schieberegistern gespeichert.

Der Reset Signal dient dazu alle Speicherelemente von den Schieberegistern auf 0 zu Setzen.

Rihane Youssef

Steckbrett Realisierung des PRNG als 4-Bit Version Die Untergruppe PRNG hat zun¨achst einen Prototypen der Schaltung f¨ur den PRNG auf einem Steckbrett mit 74xx-Logikgattern als 4-Bit Version aufgebaut. Dieser Versuch dient der ¨Uberpr¨ufung der Machbarkeit, bevor das Layout der Platine erstellt wird.

(a) Prototyp PRNG in 4-Bit Version. (b) Verdrahtetes Schieberegister 74xx-Logik.

(c) Versorgung, Clck-Signal und Oszilloskop zur Si-gnaldarstellung.

(d) Signalverlauf des erzeugten zuf¨alligen Bit-Musters.

Abbildung 36: Versuchsaufbau eines Prototypen des PRNG in einer 4-Bit Version auf Grund-lage von 74xx-Logik.

In der Abbildung 6.4.1 ist der gebaute Prototyp dargestellt. In Teilabbildung 36(a) ist der verdrah-tete Steckbrettaufbau des Prottyp dargestellt. Die Schaltung ist in 74xx-Logik realisiert. Von Links nach rechts sind ein Schieberegister ein 4x2er AND-Gatter und ein 4x2er XOR-Gatter verbaut. Die Versorgungsspannung liegt bei 5 V, die Logik-Pegel liegen bei 3.3 V. In der Teilabbildung 36(b) ist das verdrahtete Schieberegister dargestellt. Die R¨uckkopplung erfolgt ¨uber den grauen Draht.

Zur Versorgung und um die Logik-Pegel zu realisieren wird eine Laborspannungsquelle, in Teilab-bildung 36(c) dargestellt verwendet. Die Clock des Schieberegisters wird ¨uber ein Signalgenerator (Rechteck + Offset) simuliert. Das erzeugte Signal wird ¨uber einen Oszilloskop dargestellt. In Teilabbildung 36(d) ist das erzeugte Bitmuster dargestellt. Der Prototyp funktioniert wie erwartet, sodass er im folgenden verwendet wird, um die auf dem STM32 zu realisieren Funktion zu testen.

Lukas Karal

6.4.2 Schaltplan

Abbildung 37: Schaltplan f¨ur den PRNG [40]

In dieser Schaltung wird der Seed1 , welcher festlegt welche And-Gatter auf ”high”gesetzt werden nicht fest verdrahtet, sondern kann vom Mikrocontroller variabel ¨uber eine 16bit-Sequenz in die Schieberegister geladen werden. Der Seed dient dazu, die And-Gatter zu steuern und somit die Ver-kn¨upfung festzulegen durch welche der Datenstrom, welcher dann eine neue Zufallszahl generiert, l¨auft. Die neue Zufallszahl entsteht durch die logische Verkn¨upfung des Seeds und der Zahl aus dem Datenstrom, welche Takt f¨ur Takt durch die linear r¨uckgekoppelten Shiftregister durchl¨auft.

1Der Seed ist die Startsequenz, aus der dass System gestartet wird. dieses darf nicht die Nullsequenz sein, da die Shiftregister nicht aus diesem Zustand heraus kommen und somit immer die Nullsequenz ausgeben.

Hierbei entsteht am letzten Ausgang des linear r¨uckgekoppelten Shiftregister [41] eine neue Pseudo-Zufallszahl, welche einerseits wieder mit dem Seed per AND und XOR Gatter verkn¨upft wird und ebenso als Data Out an den Mikrocontroller zur¨uckgegeben wird und dort eingelesen werden kann.

Durch die lineare R¨uckkopplung, also das Verbinden des letzten Ausgangspin mit dem dem Eingang durchlaufen die Zufallszahlen willk¨urlich eine Folge von 216−1 Zust¨ande. Wobei diese Stark von der Startsequenz, also dem Seed abh¨angt und immer wieder die gleiche Folge durchl¨auft. Deshalb wurde in diesem Projekt der Seed variabel gew¨ahlt, um nicht immer wieder in den Spielen die selben Ereignisse hervorzurufen. Die Schaltung wurde hierbei aus einem Design [39] ¨ubernommen und f¨ur 16bit erstellt.

Markus Pohl

6.4.3 Layout

In Abbildung 38 ist das mit EAGLE erstellte Layout der Platine dargestellt. Es wurde sich f¨ur eine THD Realisierung entschieden. Das Routing erfolgte nach den im ProjektLabor vermittelten Standards.

Lukas Karal

Abbildung 38: Layout des PRNG

6.4.4 Platine

In Abbildung 6.4.4 ist die ge¨atzte und best¨uckte Platine dargestellt. Es wurde der typische BUS-Stecker verbaut um die Platine im Rack des Geh¨auses zu verbauen. In Abbildung 39(a) ist die Oberseite der Platine abgebildet. Auf der Oberseite sind alle verwendeten Bauteile zu erkennen.

Die Bauform der 74xxx-Logik ist im 14-poligen DIP-Geh¨ause gew¨ahlt worden. Die Platine ist aus-schließlich in THD (Through-Hole-Design) umgesetzt. Auf Grund des umfangreichen Schaltplans mussten viele Vias gesetzt werden.

Lukas Karal

(a) Oberseite der ge¨atzten und best¨uckten Platine des PRNG.

6.4.5 Zusammenfassung

Die GruppePRNG hat die Aufgabe eine Schaltung zu realisieren, welche Pseudo-Zufallszahlen er-zeugt, speichert und f¨ur die andere Untergruppen zur Verf¨ugung stellt. Die Steuerung des PRNG erfolgt ¨uber den STM32 der Entertainment-Gruppe. Es wurde ein PRNG mit 4-Bit als Testschal-tung auf einem Steckbrett aufgebaut. Parallel dazu wird das Platinen-Layout entworfen und die ben¨otigten Funktionen auf einem STM32-Entwicklungsboard geschrieben und getestet.

Lukas Karal

Im Dokument Das 8-Bit-Waffeleisen (Seite 61-68)