Mike McBike @ Home / FPGAs / Projekt Pong / H-Sync


{Pong Horizontalsynchronisation} Jedes Arcadespiel benötigt ein gutes Video-Timing, damit daraus ein Monitorbild aufgebaut werden kann. Der erste Schritt hierbei ist die Horizontalsynchronisation. Sie definiert die Lage der Pixel auf der Bildzeile und generiert den Horizontalen Synchronimpuls (15 kHz). Wir fangen wieder mit dem Schaltplan an:

PONG!

{VHDL-Code} In VHDL wird erst einmal beschrieben, was in das Modul an Signalen hinein geht und was herauskommen soll - die sogenannte Entity:

PONG!

Dann werden Signale (sic!) und Prozesse (Signalabhängige Abläufe) beschrieben. Am Ende gibt es noch nebenläufige Zuweisungen, also digitale Signaloperationen, die immer stattfinden. Im Gegensatz zu einer Programmiersprache für Microcontroller findet im FPGA alles gleichzeitig statt. Das ist zu Beginn etwas gewöhnungsbedüftig.

PONG!

... (einige Stufen ausgelassen) ...

PONG!

Wenn das dann compiliert wird, dann macht der Compiler den gewünschten Block daraus:

PONG!

Man sieht oben noch den Taktgeneratorblock und das einsame Toggle-FF zur Teilung durch 2 - und hier das, was im Hsync-Block genau drin ist:

PONG!

Wenn man das Ergebnis mit dem originalen Schaltplan vergleicht, kann man jedes einzelne Gatter und die Flip-Flops wiederfinden, die hier in VHDL beschrieben wurden. Der FPGA wird an dieser Stelle alles genau so machen, wie es die Originalhardware auch macht (nur mit viel schnelleren Flanken, aber dazu später...).


© 2013 - 2016 · W. Robel e-Mail senden