Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

FPGA Praktikum WS2000/2001 6.Woche: Ein Ball Blöcke zum Abräumen Projektvorschläge.

Ähnliche Präsentationen


Präsentation zum Thema: "FPGA Praktikum WS2000/2001 6.Woche: Ein Ball Blöcke zum Abräumen Projektvorschläge."—  Präsentation transkript:

1 FPGA Praktikum WS2000/2001 6.Woche: Ein Ball Blöcke zum Abräumen Projektvorschläge

2 Aufgabe 7.1 zJetzt kommt der Ball ins Spiel zDazu werden zusätzliche Signale benötigt yballx und bally teilen der Grafikkomponente die Position des Balles mit yfire schießt einen neuen Ball ab GrafikState racketx Control left right fire bally ballx

3 Aufgabe 7.1 zDie Grafikkomponente muß so geändert werden, daß an der Position (ballx, bally) ein Punkt angezeigt wird. zState enthält zwei Signale dirx und diry die angeben, in welche Richtung sich der Ball gerade bewegt. zDer Ball soll an allen vier Wänden abprallen ywenn nicht 0 < ballx < 255 ändert sich dirx ywenn nicht 0 < bally < 255 ändert sich diry zDer Ball soll sich in jedem Bild um ein Pixel bewegen. zStartet den Ball nicht an (0,0), daß ist langweilig.

4 Aufgabe 7.2 zIn dieser Variante soll der Ball an der Unterkante nur dann abprallen, wenn er den Schläger getroffen hat. zNicht vergessen: Die Schlägerkante ist nicht bei y=255, sondern etwa bei y=247 zVerläßt der Ball das Spielfeld, erscheint sofort ein neuer

5 Aufgabe 7.3 zIn dieser Variante, merkt sich „State“ zusätzlich mit einem Signal play_on, ob der Ball gerade im Spiel ist. zFalls ja, bewegt sich der Ball wie in 7.1.2 beschrieben. zVerfehlt der Ball den Schläger, geht play_on auf 0 zErst wenn „Control“ das fire Signal sendet, geht das Spiel weiter zDas fire Signal wird beim Drücken der „space“ Taste gesendet. (keycode 0x29)

6 Synchronous Dual Ported RAM zMit dual ported RAM (DPRAM) bezeichnet man Speicher, auf den über zwei Schnittstellen (Ports) mit unabhängigen Adressen zugegriffen werden kann. zXilinx XC4K DPRAMs können über einen Port nur gelesen werden, während über den andere Port gelesen und geschrieben werden kann. zDPRAM benötigen doppelt soviel Platz wie single port RAMs y16 Bits pro CLB (sonst 32 Bits) zSie sind jedoch für viele Anwendungen sehr praktisch: yFIFOs yStacks yCaches yRegister Files

7 Xilinx XC4K DPRAM 256x1 256x1 DPRAM D A(7 downto 0) SPO WE WCLK DPO DPRA(7 downto 0) Port SPort D

8 zDie Verwendung des Leseports D ist einfach: zMan legt an DPRA die Adresse an die man lesen möchte, und der Ausgang DPO ändert sich nach einer gewissen Verzögerung auf den Wert an dieser Adresse. DPRA DPO

9 Port S zLesen von Port S funktioniert genauso, wie von Port D zDaten werden bei den steigenden Flanke von WCLK geschrieben, falls das WE Signal aktiv ist. zAdressen, Daten und WE müssen rechtzeitig vor der WCLK Flanke gültig sein. DPRA, D WCLK 0 1 WE Schreiben an Adresse 0 Schreiben an Adresse 1 Nicht schreiben

10 Generieren eines DPRAM zAnstelle einer riesigen Bibliothek von RAMs, liefert Xilinx einen Modulgenerator „LogiBLOX“ zLogiBLOX ist auch aus dem HDL Editor erreichbar. (Menü „Tools“)

11 LogiBLOX Unwichtig Datei mit den Initialisierungsdaten Anzahl der Worte dual ported Name eurer Wahl 1-Bit breit (others)

12 LogiBLOX zEine Initialisierungsdatei könnt Ihr von der Woche 7 Startseite herunterladen. Sie muß in das Projektverzeichnis kopiert werden zLogiBLOX erstellt ein ram256x1.vhi Datei mit VHDL für die Deklaration und Instanzierung des RAMs. zIhr könnt diese im HDL Editor einfügen.

13 Aufgabe 8.1 zEin 256x1 DPRAM soll in die Schaltung eingefügt werden zSPO wird nicht benötigt GrafikState racketx Control left right fire bally ballx 256x1 DPRAM DPRA DPO A WCLK WE

14 Aufgabe 8.1 zIn dem RAM soll für 16x16 Steine auf dem Spielfeld gespeichert werden, ob sie gerade sichtbar sind. zIn dieser Aufgabe wird das RAM noch nicht geschrieben. WE muß also immer inaktiv sein. zGrafik soll den Inhalt des RAMs als 16x16 Pixel ansehen und in den oberen 256x256 Pixeln des Bildschirms vergrößert darstellen. zDafür werden einfach die oberen Bits der Rasterstrahlposition an das RAM angeschlossen: yDPRA <= x(7 downto 4) & y(7 downto 4); zDer Rasterstrahl erhält eine Farbe eurer Wahl (nicht Schwarz!) wenn im RAM eine 1 steht und schwarz sonst. zFalls y>255 ist (y(8)=‘1‘) soll das Bild nicht angezeigt werden.

15 Bildschirmlayout 256 Pixel 480 Pixel 256 Pixel 16 Pixel

16 Aufgabe 8.2 z„State“ soll so geändert werden, daß der Ball die Steine löscht, wenn er durch sie hindurch fliegt. zDazu werden die oberen Bits der Ballkoordinaten an die Adressen A angeschlossen. zAm besten berechnet Ihr die Ballkoordinaten bei der fallenden Flanke von HSYNC und schließt dann HSYNC als WCLK an das RAM an, so daß bei der steigenden Flanke eine null in das RAM geschrieben wird. zAnschließen des negierten bally(8) an WE verhindert, daß auch Steine gelöscht werden, wenn sich der Ball im unteren Bereich befindet.

17 Aufgabe 8.3 zJetzt soll der Ball von den Steinen abprallen zKommt der Ball auf ein Feld, in dem eine 1 gespeichert ist, passiert folgendes: yIn das Feld wird eine 0 geschrieben yGilt ballx(3 downto 0) = “0000“ oder ballx(3 downto 0)=“1111“ ändert sich die X-Richtung dirx yGilt bally(3 downto 0) = “0000“ oder bally(3 downto 0)=“1111“ ändert sich die Y-Richtung diry


Herunterladen ppt "FPGA Praktikum WS2000/2001 6.Woche: Ein Ball Blöcke zum Abräumen Projektvorschläge."

Ähnliche Präsentationen


Google-Anzeigen