FPGA Praktikum WS2000/2001 6.Woche: VHDL Tips Ein Schläger für das Spiel.

Slides:



Advertisements
Ähnliche Präsentationen
Abschluss Gegeben Menge F von funktionalen Abhängigkeiten.
Advertisements

ACM ICPC Praktikum Kapitel 8: Backtracking. Übersicht Backtracking Aufzählung aller Teilmengen Aufzählung aller Permutationen n-Königinnen-Problem.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Rekursionen Erstellt von J. Rudolf im November 2001 /
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
FH-Hof Formale Sprachen - Maschinenmodelle Richard Göbel.
Übung 6.1Turing-Maschine 1.Machen Sie sich mit der Funktionsweise des Busy Beaver-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tabelle.
Funktionen.
= Zahl: 5 2. Zahl: 5 3. Zahl: 5 4. Zahl: 5 Prüfe auf: 1.Gleichheit aller Zahlen 2.Gleichheit mind. 2er Zahlen 3.Ungleichheit.
Rechneraufbau & Rechnerstrukturen, Folie 7.1 © 2006 W. Oberschelp, G. Vossen.
Der letzte Schliff für Abfragen Übersicht über die Aggregatfunktionen.
= 4x x nach links, Zahl nach rechts! -2x 4x -2x + 52x – 2x x -2x = 2x – 2x x Zahl 2x= = 2x -15 x = - 10 = 4x + 52x -15 Beispiel.
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Primzahlen Primzahlen sind natürliche Zahlen, die nur durch sich selbst und durch 1 teilbar sind? Bedingung: Die Zahl muss größer sein als 1.
Das Pascalsche Dreieck
Informatik 1 Übung 2.
Dateien Datei = File (engl.) Mögliche Inhalte einer Datei
VHDL-Synthese für Fortgeschrittene
FPGA... ein Versuch. Uli Schäfer 1. Historie: PLD Uli Schäfer 2 Schaltungsgrösse wächst drastisch mit Zahl der Eingänge CPLD = Array + Flipflops + macro.
Es ist ein professionelles Vielzahl von Catch Wrestling, zu den beliebtesten in den Vereinigten Staaten, Japan, Kanada, Mexiko und Großbritannien Es ist.
Spielprogrammierung mit LabView
VHDL 3: Sequential Statements (Process)
Synthetisierbares VHDL
VHDL 7: Automaten 1.
VHDL 8: Automaten 2.
VHDL 4: Getaktete Logik (D-FF, Zähler, Automaten)
School of Engineering DT2 Projekt-2: Baud Rate Generator & GPS Decoder.
PHP Basic.
Geschachtelte Verbindung (1) Geschachtelte Schleife, in der jeder Datensatz in Datei R (hier: BUCHUNG) mit jedem Datensatz in S (hier: FLUG) verglichen.
Algorithmen und Datenstrukturen Übungsmodul 3
Santésuisse – Die Schweizer Krankenversicherer Zahlen & Fakten, Oktober 2001, Grafik Nr. 1.
Kapitel 4: Das Lagerplanspiel
Die Zeitadverbien Für Die Vergangenheit
1.Woche: Organisation Synthetisierbares VHDL
6.Woche: VGA Monitoransteuerung
Linear Rückgekoppelte Schieberegister und Tristate Treiber
Die Praktikumsplatine Handhabung der Platine LEDs, CLK und Taster Konfiguration des FPGA Aufgaben.
Gib die Zahl 4 ein!. VB-Skript ColTrue = RGB(0, 255, 0) ColFalse = RGB(255, 0, 0) ColSelected = RGB(255, 255, 0) TextBox1.BackColor = ColSelected If Not.
FPGA Praktikum WS2000/ Woche: Die Experimentierplatine Aufgaben.
FPGA Praktikum WS2000/ Woche: FPGA Architektur Simulationsskripte Aufgaben.
FPGA Praktikum WS2000/ Woche: Ein Ball Blöcke zum Abräumen Projektvorschläge.
Hypothetical Statements Wenn + subjunctive, conditional.
2.Woche: FPGA Architektur Simulationsskripte Aufgaben
Projekt: Komprimierung von FPGA Bitstreams Ralph Kuhnert.
Das Wetter Spiel Directions: View each slide carefully, then quietly and purposefully walk to the corner (They are labelled) that you think signifies.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
2. Woche: Timingmodelle Synthetisierbares VHDL Aufgaben
Wie würden Sie die abgebildete Aufgabe lösen? Müssen Sie bestimmte Rechenoperationen zuerst durchführen? Gehört ein Rechenzeichen zur vorhergehenden oder.
Delphi Chars und Strings
Mechanik I Lösungen.
Die Wunde wird bleiben
III c WINF 1 Mag. Edwin Schädler. Symbolleiste für den Schnellzugriff anpassen.
Fallunterscheidung und Iteration Programmierung I Prof. Dr. Michael Löwe.
X. Übungsblatt – Aufgabe X In dieser Aufgabe soll ein synchron getakteter Steuerungsautomat für den in Abbildung 1 dargestellten Prozessor-Chip mit geringem.
FPGA Praktikum WS2000/ Woche: BlockRAM CoreGen CPU Informationen Aufgaben.
Einführung in Esterel Imperative Synchrone Parallele Programmiersprache für Reaktive Systeme.
Volume 1, Chapter 9.
ADDITION von natürlichen Zahlen
SELTSAM ! Hier eine kleine mathematische Übung, die viele zum Staunen bringen wird...
SELTSAM ! Hier eine kleine mathematische Übung, die viele zum Staunen bringen wird...
Viel Spaß wünschen euch das Jugend-Team
Durchschnitt (verbal)
SELTSAM ! Hier eine kleine mathematische Übung, die viele zum Staunen bringen wird...
Die Punkteliste von Kniffel
Gib die Zahl 4 ein!.
Die programmierte Lösung
EKG c Die folgenden Abbildungen dienen als Hilfestellung.
Endstand Endstand Disziplin Spieler 1 Spieler 2 Disziplin Spieler 1
Schnuck Schnack Schnick Stein-Schere-Papier Projekt INGOLSTADT.
Klicke auf eine Zahl..
 Präsentation transkript:

FPGA Praktikum WS2000/ Woche: VHDL Tips Ein Schläger für das Spiel

Zählergrenzen zWieviele Zustände hat der folgende Zähler? zif rising_edge(clk) then if count < 2 then count <= count + 1; else count <= “00“; end if; end if;

Zählergrenzen zDer Zähler hat die Zustände 0, 1 und 2, da er beim Zustand 1 (<2) noch um eins weiter zählt. zEinige eurer Abgagen zählen deshalb einen Schritt zu weit. zif rising_edge(clk) then if count < 2 then count <= count + 1; else count <= “00“; end if; end if;

Asynchroner Reset zSo sieht die beste Formulierung für einen Aynchronen Reset eines Registers aus: zif reset=‘1‘ then out <= “010010“; else if rising_edge(clk) then out <= in; end if; zDer gewählte Reset Wert wird auch beim Reset-On-Configuration des FPGAs eingestellt.

Wieder versteckte Latches zSei count eine 5-Bit Zahl. Anstelle dieses SR-Latches yif count = 8 then-- 5-Bit Vergleich sync <= ‘1‘; -- set latch end if; if count = 16 then -- 5-Bit Vergleich sync <= ‘0‘;-- reset latch end if;  läßt sich diese Logik bauen. yif (count >= 8) and (count <16)then sync <= ‘1‘; else sync <= ‘0‘; end if; zäquivalent dazu ist: ysync <= (not count(4)) and count(3);

Aufgaben 6. Woche

Aufgabe 6.1 zDiese Woche geht es richtig los, mit dem Bau des Computerspiels. zEs wird ein von der Tastatur gesteuerter Schläger eingeführt. zDa der VHDL Code im Laufe der Wochen immer weiter wachsen wird, sollte er erstmal so umstrukturiert werden, daß er leichter zu handhaben ist. zDie Aufteilung ist im Moment natürlich noch etwas albern, wird aber später hilfreich sein. zMan kann auf diese Weise z.B. Teile der Schaltung getrennt simulieren, was erheblich schneller geht. yMan muß dann natürlich mit dem Simulationskript die Signale die von anderen Komponenten kommen vortäuschen. zAchtet darauf, die richtigen Komponenten zu synthetisieren und zu implementieren!

Aufgabe Fortsetzung zTeilt den VHDL Text zunächst in zwei Komponenten auf: z1. VGA Timing Generator z2. Grafikdarstellung Timing v_sync h_syncx y Grafik rgb clk

Aufgabe Fortsetzung zDer Timing-Block beinhaltet die Zähler für die x und y Koordinate und generiert die Sync Signale. zDer Grafik Block gibt abhängig von y die Farbstreifen aus. zTestet, ob nach der Aufteilung das Bild noch genauso aussieht wie vorher.

Aufgabe 6.2 zErzeugt eine neue Komponente „state“. zDiese gibt bei jedem v_sync impuls eine neue Koordinate racket_x für den Schläger aus. racket_x ist in dieser Aufgabe konstant 100. zErweitert die Grafikkomponente so, daß sie am unteren Bildrand ein 64x8 Pixel Rechteck als Schläger ausgibt zracketx gibt die Position der linken Kante des Schlägers an. Timing v_sync h_sync x y Grafik rgb clk State racketx

Aufgabe 6.3 zErzeugt eine neue Komponente „control“. zControl steuert mit zwei signalen „left“ und „right“ an State die Bewegung des Schlägers Timing v_sync h_sync x y Grafik rgb clk State left control right

Aufgabe Fortsetzung zState erhöht die x-Position des Schlägers nur dann, wenn das Signal „right“ aktiv ist. zState reduziert die x-Position des Schlägers nur dann, wenn das Signal „left“ aktiv ist. zFalls beide Signale gesetzt sind, ist das Verhalten undefiniert. zDer Schläger muß am linken und rechten Rand anhalten. y(0 < racket_x < 192) yDafür ist die Komponente State verantwortlich zBaut eine control Komponente, die den Schläger hin und her fahren läßt. yz.B. 128 Bilder rechts, 128 Bilder links yDazu kann man einfach einen 8-Bit Zähler laufen lassen, und anhand des obersten Bits entscheiden, ob recht oder links aktiv ist.

Aufgabe 6.4 zJetzt wird es ernst: zSchließt die Tastatursignale an control an und denkt daran, das UCF-File zu ergänzen Timing v_sync h_sync x y Grafik rgb clk State kb_clk control kb_data

Aufgabe Fortsetzung zFügt euren Tastatur Code aus Woche vier in den control Block ein und modifiziert ihn wie folgt: zWenn die Taste „R ARROW“ oder „Keypad 6“ gedrückt wird, wird das „right“ Signal aktiviert. (Tastenkode 0x74) zWenn die Taste „L ARROW“ oder „Keypad 4“ gedrückt wird, wird das „left“ Signal aktiviert. (Tastenkode 0x6B) zDadurch läßt sich der Schläger von links nach rechts steuern, er bleibt allerdings nicht stehen, wenn man die Taste loslässt.

Aufgabe (optional) zUm den Schläger beim Loslassen der Taste anzuhalten, muß der Brakecode ausgewertet werden. zDazu muß das Tastatur schieberegister auf die doppelte länge erweitert werden (22 Bit). zDie Signale „left“ und „right“ werden nur aktiv wenn in der unteren Hälfte des Registers der Code 0x6B oder 0x74 steht, und in der oberen Hälfte nicht der break code 0xF0 steht. zStart und Stop Bits müssen natürlich nach wie vor berücksichtigt werden. zWie wäre es, beim Drücken der „Esc“ Taste (0x76), die anderen Komponenten zu resetten?