FPGA: Pseudo Random Generator (PRNG) von Prof. Dr.-Ing. Dirk Rabe



Ähnliche Dokumente
FPGA: Pseudo Random Generator (PRNG) von Prof. Dr.-Ing. Dirk Rabe

5. Aufgabenblatt mit Lösungsvorschlag

Laborübung 3. Latches, Flipflops, Counter

Praktikum Digitaltechnik SS Versuch 2

Tutorial Vivado/Verilog Teil 5 Zyklisches Schieberegister

18 Schieberegister. Serieller Serieller Eingang 5 Stufen Ausgang. 1. Takt. 2. Takt

Laborübung 4. Zustandsautomaten (Finite State Machines)

Computergestützter IC- Entwurf

Lösung Versuch Nr. 4

Zeitabhängige binäre Schaltungen. Prof. Metzler

Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch

Multiplexer und Schieberegister

Bereiten Sie für alle Schaltungen einen Verdrahtungsplan vor unter Verwendung der Pin-Belegung aus den Datenblättern der verwendeten Bausteine.

Protokoll zum Versuch Flip-Flop

Klausur - Digitaltechnik

Drücken Sie (später) bei Speichere Änderungen in der Bibliothek default? auf Nein.

Hard- und Softwaretechnik. Schieberegister. Andreas Zbinden. Gewerblich-Industrielle Berufsschule Bern, GIBB

Versuch 3: Sequenzielle Logik

Zeitabhängige binäre Schaltungen. Prof. Metzler 1

Speicherung digitaler Signale

Digitaltechnik II SS 2007

Semestralklausur Einführung in Computer Microsystems

Vorlesungsprüfung aus. Digitales Design. 2. Juni 2015

HARDWARE-PRAKTIKUM. Versuch L-1. Schaltnetze. Fachbereich Informatik. Universität Kaiserslautern

VHDL - Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

VHDL Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010

Gruppe: Teilnehmer: Vortestate: Testat:

E Q 1 Q 0 D 1 D X X X X

Electronic Design Automation (EDA) Register-Transfer-Synthese

3.1 Schaltungselemente 129. b) Tragen Sie in nachfolgende Abbildung die Realisierung eines 1 Bit 4-auf-1 Multiplexers aus Logikgattern ein.

Speichern von Zuständen

Aufbau und Funktionsweise eines Computers - II

17 Zähler. Hochschule für Angewandte Wissenschaften Hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK DIGITALTECHNIK 17-1

Hochschule Emden / Leer. Ausarbeitung. Speicherung digitaler Signale

Versuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit

Carry Lookahead Adder

Sequentielle Schaltungen 37 SS 96. Steuerpfad

Grundlagen der Technischen Informatik

2.2 Register-Transfer-Synthese

Digitaltechnik Grundlagen 8. Register

5.2 Endliche Automaten

Tutorial Vivado/Verilog Teil 6 Zählerbasierter Taktgenerator

Endliche Automaten 1 WS 00/01. Steuerautomaten

1 Entwurf und Verhalten einfacher, synchroner Automaten

Vorlesungsprüfung aus. Digitales Design. 2. Juni 2015

GAL 16V8. 4. Laboreinheit - Hardwarepraktikum SS 2002 VCC / +5V. Eingang / Clock. 8 konfigurierbare Ausgangszellen. 8 Eingänge GND / 0V.

3.1 Schaltwerke als Reihenschaltung von Flipflops

HARDWARE-PRAKTIKUM. Versuch L-2. Fehlersuche in digitalen Schaltungen. Fachbereich Informatik. Universität Kaiserslautern

Kapitel 5 - Datenübertragung

In diesem Abschnitt werden wir einige Schaltwerke kennenlernen, die als Basisbauteile überall im Aufbau digitaler Schaltungen verwendet werden.

ERA-Zentralübung 11. Maximilian Bandle LRR TU München Maximilian Bandle LRR TU München ERA-Zentralübung 11

Grundlagen der Digitaltechnik GD. Aufgaben und Musterlösungen

DIGITALTECHNIK 10 SCHIEBEREGISTER

Zur Multiplikation von Gleitkommazahlen müssen die Mantissen inkl. führender 1, als Festkommazahlen multipliziert werden.

Tutorial Vivado/VHDL Teil 3 7-Segment-Anzeige

Praktikum Rechnerarchitektur. Seite 1 Prof. Dr.-Ing. Ulrich Schmidt 2011 Praktikum Rechnerarchitektur

Praktikum Digitaltechnik

Design 1. Protokoll. Stefan Krulj, Markus Schütz,

Praktikum Digitaltechnik SS Versuch 3 (alte Art)

Klausur ( ) : Technische Grundlagen der Informatik 1 Digitale Systeme WS 2010/2011

Oliver Liebold. NAND (negierte Undverknüpfung) L L H L H H H L H H H L

Automaten. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Aufgabe 1: Kombinatorische Schaltungen

D.6 Versuchsreihe 6: Registersatz und Programmzähler

Musterlösungen. zu den Übungsaufgaben vom

Eingebettete Systeme

Eine Schaltung, deren Ausgänge von der Belegung der Eingänge und ihrem inneren Zustand abhängt, wird ein Schaltwerk genannt.

Handelt es sich um ein taktzustands- oder taktflankengesteuertes D-Flipflop?

DIGITALTECHNIK 08 FREQUENZ-ZÄHLER

Outline Schieberegister Multiplexer Zähler Addierer. Rechenschaltungen. Marc Reichenbach und Michael Schmidt

Grundlagen der Informatik 2. Grundlagen der Digitaltechnik. 5. Digitale Speicherbausteine

Minimierung nach Quine Mc Cluskey

3. Prozesse in VHDL 1

Minimierung nach Quine Mc Cluskey Ermitteln der Primtermtabelle

WS 2012/13 Klausur zur Digitaltechnik. Donnerstag,

Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009

- Zustandsvariable z i werden durch binäre Speicherelemente Flipflops FF realisiert, die entweder 1 gesetzt oder auf 0 rückgesetzt werden

TECHNISCHE UNIVERSITÄT CHEMNITZ FAKULTÄT FÜR INFORMATIK

Grundlagen der Digitaltechnik GD. Aufgaben

Versuch: D2 Zähler und Ampelschaltung

Praktikum Digitaltechnik SS Versuch 1

Kapitel 5: Schieberegister. Anwendungen von Schieberegistern. Grundschaltung eines Schieberegisters. Kapitelverzeichnis (Buch Künzli)

Einführung in die technische Informatik

Tutorial Vivado/Verilog Teil 3 7-Segment-Anzeige

Speicherung von Signalen - Flipflops, Zähler, Schieberegister

Grundlagen der Digitaltechnik GD. Aufgaben und Musterlösungen

FPGA-Entwurf mit VHDL. Serie 3

Martin V. Künzli Marcel Meli. Vom Gatter zu VHDL. Eine Einführung in die Digitaltechnik. : iasms!wil5i-8sb*l!f. 3. Auflage. zh aw

Kapitel 4. Versuch 415 T-Flipflop

LED. Elektronikpraktikum. 10 Flip-Flops und Zähler. Fachbereich Physik. Stichworte. Schriftliche Vorbereitung JK-Flipop. V cc.

Aufgabe 4 Nennen Sie wenigstens 3 Programmierverfahren für programmierbare Logik.

Digitaltechnik II SS 2007

Klausuraufgaben: Flip-Flops

Grundlagen der Informationsverarbeitung:

Lösung 4.1 Stuck-at-Fehler

14.3 Kontrollogik. Allgemeines: Kontrollogik wird in 3 Stufen realisiert: Clock - Erzeugung. 2 Uhrzeit. PALs. /ck. Kontrollsignale.

Logik mit Gedächtnis : Sequentielle Logik

Transkript:

Praktikum Digitaltechnik FPGA: Pseudo Random Generator (PRNG) von Prof. Dr.-Ing. Dirk Rabe Gruppe: Teilnehmer: Vortestat: Testat: Benutzte Geräte:

1 1 Einleitung und Überblick 1 Einleitung und Überblick Dieser Versuch behandelt drei Themen: 1) Den Logikanalysator als Messgerät zur Fehleranalyse. 2) Den Pseudo-Random-Generator (PRNG). 3) Den Entwurf des PRNG als Repräsentant sequentieller Schaltungen mit VHDL. Teile dieser Versuchsanleitung entstammen der Versuchsanleitung von Prof. Dr.-Ing. Ingo H. Karlowsky. Verglichen mit dem bei Herrn Karlowsky durchgeführten Laborversuch wird hier der Fokus auf die Hardwarerealisierung in einem FPGA gelegt. V 1.0 / 2008-09-05 FPGA-Einführung und Hardwareentwurf mit VHDL

2 2 Der Logikanalysator Logikanalysatoren sind ein sehr nützliches Hilfsmittel bei der Erprobung und Analyse digitaler Schaltungen. Im Unterschied zu Oszilloskopen sollen sie nicht die Kurvenform der Eingangssignale möglichst authentisch wiedergeben, sondern den zeitlichen Ablauf der Eingangspegel bzw. der damit kodierten Binärsignale. Dazu wird ein Speicher benötigt, in den die Eingangssignale mit hoher Geschwindigkeit eingeschrieben werden, weiter ein auswertender Teil gebraucht, der die gespeicherte elektrische Information in ein entsprechendes Bild umsetzt. Übliche Abbildungen sind das Impuls- oder Zeitdiagramm und die Darstellung in Zahlen (binär, oktal, hexadezimal). Die Anzahl der Pins digitaler Schaltungen kann mehrere hundert betragen (z.b. hat das auf dem Experimentierboard DE2 verwendete FPGA 475 Pins). Die Anzahl der Signale, die gleichzeitig aufgezeichnet werden können hängt vom Logikanalysator (und damit den Anschaffungskosten) ab (neben weiteren Parametern wie die maximale Abtastrate und die Speichertiefe). Von besonderer Bedeutung ist die Triggerung eines Logikanalysators, das heißt, wann er damit beginnt, die Eingangsdaten in den Speicher zu schreiben. Was nützt es einem schließlich, wenn die Messung wegen "Memory overflow" beendet ist, bevor der interessierende Bereich überhaupt angefangen hat? Die im Versuch verwendeten Geräte sind eine Kombination aus Oszilloskopen und einfachen Logikanalysatoren. Professionelle Logikanalysatoren weisen typischerweise wesentlich umfangreichere Trigger- und Verarbeitungsmöglichkeiten auf. Die Triggerverfahren lassen sich grundsätzlich in zwei Gruppen einteilen: Triggerung zu einem bestimmten Zeitpunkt, Triggerung bei einem bestimmten Bitmuster an den Eingangsleitungen, "Triggerwort" genannt. Genau genommen ist die zweite Gruppe eine Untergruppe der ersten, denn auch ein Triggerwort repräsentiert einen bestimmten Zeitpunkt, der Unterschied liegt eher in der Anwendung. Ein Zeitdiagramm braucht einen Anfangszeitpunkt, der meistens durch ein einzelnes Signal festgelegt ist. Die Aufnahme einer Pegeltabelle, dargestellt z.b. durch binäre Zahlen, wird dagegen in der Mehrzahl der Fälle einem Triggerwort gestartet, ab dem weitere Zustände abzubilden sind. Das exakte Timing ist hierbei weniger wichtig. Die Übergänge sind allerdings fließend. Niemand wird es einem verbieten, ein Zeitdiagramm mit einem Triggerwort zu starten (mehrere Signale bestimmen den Anfangspunkt) oder den Anfang für die Pegeltabelle von einem Signal festlegen zu lassen, dass anders als das Triggerwort nichts mit den abzubildenden Eingangssignalen zu tun hat. FPGA-Einführung und Hardwareentwurf mit VHDL V 1.0 / 2008-09-05

3 3 Der Pseudo Random Number Generator (PRNG) 3 Der Pseudo Random Number Generator (PRNG) 3.1 Einleitung Sehr häufig werden in der Technik Zufallszahlen benötigt (z.b. zur Untersuchung von dynamischen Systemen, zum Testen vom RAM-Speichern, für kryptographische Verfahren,...). Solche Generatoren lassen sich sehr gut mit rückgekoppelten Schieberegistern aufbauen. Abbildung 1 zeigt den Hardwareaufbau eines 4 Bit Generators und die 2 4-1=15 Bitmuster, die sich durch Taktung des rückgekoppelten Schieberegisters ergibt. 1101 1010 0101 1011 1110 0110 1111 0111 1100 1001 1 0 0 0 0011 0010 0001 1000 0100 Abbildung 1: Sequenz eines 4-Bit LFSRs (linear Feedback Shift Registers) Mit jedem Clock(Takt)-Impuls wird der gesamte Inhalt des Schieberegisters um eine Stelle nach links verschoben (Multiplikation mit 2). Das Exklusiv-Oder-Verknüpfte Signal wird dabei in die Bitposition 1 (SL-Eingang) rückgekoppelt. Der Inhalt der Bitposition 4 (MSB) geht dabei verloren. Auf diese Weise entsteht mit jedem Taktimpuls ein neues Bitmuster im Schieberegister. Erst nach 2 4-1 = 15 Taktimpulsen wiederholt sich die ursprüngliche Bitkombination (Pseudo-Zufallszahlen). Für längere Schieberegister mit geeigneter Rückkoppelung erhöht sich die Anzahl der Bitkombinationen entsprechend (2 n -1). 3.2 Optimale Rückkopplung eines Schieberegisters Für die gewählte Struktur des LFSRs (Linear Feedback Shift Register - linear rückgekoppeltes Schieberegister) mit maximaler Periodizität gibt es 2 mögliche Bitfolgesequenzen: eine Bitfolgesequenz der Länge 2 n -1 (siehe Abb. 1), eine Bitfolgesequenz der Länge 1: sämtliche Bits sind 0. Den Nullzustand muss man in jedem Fall vermeiden, wenn man ein LFSR mit maximaler Periodizität haben möchte. Bei der Realisierung mit Flipflops sollten damit nicht alle Flipsflops den Reset-Zustand 1 haben. Der Zustand des Schieberegisters (also das Bitmuster sämtlicher Register zum aktuellen Zeitpunkt) ist nicht als Pseudozufallszahl zu betrachten. Lediglich das Eingangsbit ist als Zufallsbit zu betrachten. In der hier gewählten Realisierung wird das Bit von der ersten Position nämlich einfach bis zur letzten Position des Schieberegisters propagiert. Kennt man also zum V 1.0 / 2008-09-05 FPGA-Einführung und Hardwareentwurf mit VHDL

3.2 Optimale Rückkopplung eines Schieberegisters 4 Zeitpunkt t das in den Registern gespeicherte Bitmuster, so wird zum Zeitpunkt t+1 (also nach der nächsten steigenden Taktflanke) dieses Muster lediglich um eine Position weiter geschoben. Dabei fällt der Wert des höchstwertigen Registers heraus und das niederwertigste Bit wird aus der Modulo-2-Verknüpfung (EXOR) anderer Register gebildet. Nun stellt sich die Frage welche Bits man per EXOR zurück koppeln muß, um ein LFSR mit maximaler Periodizität zu erhalten. Dies kann man mathematisch berechnen (Z-Transformation) oder aus Tabellen entnehmen. Die Rückkoppelungen werden mit einem Rückkopplungspolynom beschrieben. Dies ist in Abbildung 2 für ein 16-Bit LFSR mit einer Periodizität von 2 16-1=65535 beschrieben. Die 1 im Polynom kennzeichnet die Rückkopplung auf das 1.Bit. 1 11 13 14 16 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 P=x 16 +x 14 +x 13 +x 11 +1 Abbildung 2: 16-Bit-LFSR maximaler Periodizität und das zugehörige Rückkopplungspolynom P In Tabelle 1 sind für mehrere LFSR-Längen (n) die Rückkoppelungspolynome angegeben, die eine maximale Periodizität ergeben. Rückkoppelungspolynom Periodenlänge n 2 n 1 4 x 4 + x 3 + 1 15 5 x 5 + x 3 + 1 31 6 x 6 + x 5 + 1 63 7 x 7 + x 6 + 1 127 8 x 8 + x 6 + x 5 + x 4 + 1 255 9 x 9 + x 5 + 1 511 10 x 10 + x 7 + 1 1023 11 x 11 + x 9 + 1 2047 12 x 12 + x 11 + x 10 + x 4 + 1 4095 Tabelle 1: Rückkoppelungspolynome, die ein LFSR maximaler Periodizität liefern FPGA-Einführung und Hardwareentwurf mit VHDL V 1.0 / 2008-09-05

5 3 Der Pseudo Random Number Generator (PRNG) Rückkoppelungspolynom Periodenlänge n 2 n 1 13 x 13 + x 12 + x 11 + x 8 + 1 8191 14 x 14 + x 13 + x 12 + x 2 + 1 16383 15 x 15 + x 14 + 1 32767 16 x 16 + x 14 + x 13 + x 11 + 1 65535 17 x 17 + x 14 + 1 131071 18 x 18 + x 11 + 1 262143 19 x 19 + x 18 + x 17 + x 14 + 1 524287 Tabelle 1: Rückkoppelungspolynome, die ein LFSR maximaler Periodizität liefern V 1.0 / 2008-09-05 FPGA-Einführung und Hardwareentwurf mit VHDL

3.2 Optimale Rückkopplung eines Schieberegisters 6 4 Beschreibung sequentieller Schaltungen in VHDL Im Gegensatz zu den bisher verwendeten kombinatorischen Schaltungen haben sequentielle Schaltungen ein Gedächtnis (vergleiche auch Automaten). Das Herzstück dieser sequentieller Schaltungen sind speichernde Schaltungselemente. Als speichernde Schaltungselemente werden typischerweise taktflankengesteuerte Flipflops verwendet. Es stellt sich nun die Frage wie man das Verhalten von Flipflops in VHDL beschreiben kann. Flipflops werden im architecture-body in einem Prozess beschrieben. In Abbildung 3 ist ein D- Flipflop mit asynchronem Reset beschrieben. In der Sensitivity-Liste ist das Taktsignal clk und das Signal für den asynchronen Reset (rst_n) beschrieben. D.h., dass Änderungen am Eingang d nicht zu einer Neubewertung vom Ausgangssignal q führt. Wenn das Signal rst_n 0 ist, so wird der Ausgang q auf 0 gehalten. Sollte rst_n von 1 auf 0 wechseln so wird unabhängig vom Takt der Ausgang unmittelbar auf 0 gesetzt. Ist rst_n= 1 so wird bei jeder steigenden Taktflanke der Eingang D übernommen (elsif clk event and clk= 1 - also Signalwechsel an clk und der neue Wert soll 1 sein). In dem Bereich zwischen diesem elsif und dem end if wird hier nur d auf q zugewiesen. In diesem Bereich können auch komplexere Ausdrücke stehen. Bei Automaten könnte hier z.b. der Folgezustand kodiert werden. Außerdem können hier auch mehrere Bits - wie z.b. Vektoren - zugewiesen werden. Beim PRNG kann hier nun die Schiebefunktion und die Rückkopplung beschrieben werden. Abbildung 3: Verhaltensbeschreibung eines taktflankengesteuerten D-Flipflops FPGA-Einführung und Hardwareentwurf mit VHDL V 1.0 / 2008-09-05

7 5 Aufgabenstellung 5 Aufgabenstellung Es soll ein PRNG in VHDL realisiert werden. 5.1 Vorbereitung (vor dem Praktikumstermin) Bestimmen Sie die Bitmuster für ein 5-Bit LFSR mit folgenden 2 Polynomen: 1) ein Polynom, das ein LFSR mit maximaler Periodizität liefert - Zusatzfrage: Was passiert, wenn Sie mit der Bitfolgenkombination 00000 starten? 2) P=x 5 +x 1 +1: 2.1) Beginnen Sie mit der Bitkombination 11111! 2.2) Beginnen Sie mit einer Bit-Kombination, die Sie unter Punkt 2.1 nicht erreichen konnten und die nicht 00000 ist! Überprüfen Sie hier die Periodizität und protokollieren Sie die Bitfolgen! Hinweis: Die Bitfolgen lassen sich sehr einfach mit einer EXCEL-Tabelle bestimmen: pro Bit eine Spalte verwenden die Bits, die nur geschoben werden, können über eine sehr einfache Formel realisiert werden ein xor kann man über folgende Funktion realisieren: =rest(wert1+wert2;2) 5.2 VHDL-Kodierung, Synthese, FPGA-Programmierung und Erprobung 1) Wählen Sie zunächst eine Schieberegisterlänge von 5 Bits. 1.a) Editieren Sie das prng.vhd-file! Versuchen Sie zunächst den Aufbau des VHDL-Codes zu verstehen! Hinweis: Über den generischen Parameter reg_width_g können Sie in der entity prng die Schieberegisterbreite anpassen (Anmerkung: der generische Parameter reg_width_g in der entity reg_core wird automatisch in der Instanziierung überschrieben). 1.b) Passen Sie zunächst die Schieberegisterbreite an die Aufgabenstellung an! 1.c) Ergänzen Sie die architecture, die das Verhalten von prng.vhd beschreibt! Verwenden Sie ein Rückkopplungspolynom, so dass ein LFSR mit maximaler Periodizität entsteht (siehe Aufgabenvorbereitung Punkt 1)! 1.d) Schalten Sie zunächst den Takt auf den Druckschalter 0! 1.e) Erproben Sie die VHDL-Implementierung auf dem DE2-Board! Überprüfen Sie die Periodizität des LFSRs und protokollieren Sie die einzelnen Bitfolgen bzw. vergleichen Sie die Sequenz mit Ihren Erwartungswerten aus der Aufgabenvorbereitung! 1.f) Ändern Sie das Rückkopplungspolynom wie folgt: - P=x 5 +x 1 +1 (vergleiche Versuchsvorbereitung Punkt 2) - Überprüfen Sie die Periodizität und protokollieren Sie die Bitfolgen bzw. vergleichen Sie die Sequenz mit Ihren Erwartungswerten aus der Aufgabenvorbereitung! - Ändern Sie die den Reset-Wert des Schieberegisters, auf eine Bit-Kombination, die V 1.0 / 2008-09-05 FPGA-Einführung und Hardwareentwurf mit VHDL

5.3 Hinweise zum Protokoll 8 Sie bei diesem Polynom nicht erreichen konnten und die nicht 00000 ist! Überprüfen Sie hier die Periodizität und protokollieren Sie die Bitfolgen bzw. vergleichen Sie die Sequenz mit Ihren Erwartungswerten aus der Aufgabenvorbereitung! 2) Ändern Sie den VHDL-Code wie folgt: - Schieberegister mit 15 Flipflops (Rückkopplungspolynom ändern!) - Verwendung eines auf dem DE2-Board generierten 27MHz Clock 2.a) Implementieren Sie die Hardware auf das FPGA! 2.b) Beobachten Sie das Verhalten mit dem Logikanalysator! 2.c) Triggern Sie auf eine beliebige 15-Bit-Kombination! Welches ist das Vorgänger- und das Nachfolger-Bitmuster? Hinweise: Das Pin-Map-File muß die benötigten Pins enthalten! 5.3 Hinweise zum Protokoll Folgende Punkte müssen im Protokoll enthalten sein: Dokumentation des Source-Codes Bitfolgen zu Aufgabe 1 Antworten zu o.a. Fragen (2.c) Dokumentation des Logikanalysatorbilds FPGA-Einführung und Hardwareentwurf mit VHDL V 1.0 / 2008-09-05