DIPLOMARBEIT - FG Mikroelektronik, TU Berlin
DIPLOMARBEIT - FG Mikroelektronik, TU Berlin
DIPLOMARBEIT - FG Mikroelektronik, TU Berlin
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Technische Universität <strong>Berlin</strong><br />
Institut für <strong>Mikroelektronik</strong><br />
Lukas Bauer<br />
Diplomarbeit<br />
Hochleistungs-Grafikprozessor in Speedchart-VHDL<br />
Abschnitt 3.4<br />
Seite 20<br />
Auf Abbildung 70 (S. 103) ist ein Simulationsergebnis für den Halbbildbetrieb zu sehen. In den<br />
Serrationsphasen (IPHASE=2 und IPHASE=3) werden an CSYNC out kurze Equalisationspulse<br />
generiert.<br />
Das DPYNEXT-Register (vgl. Tabelle 16, S. 67), das die Adresse des ersten Pixels der nächsten<br />
auszugebenden Zeile enthält, wird ebenfalls von S HCNT kontrolliert. Es ändert sich analog<br />
zu den Abbildungen 7, 9 und 14 mit dem Beginn der horizontalen Blank-Periode (nach<br />
HCOUNT=HSBLNK).<br />
Im Vollbildbetrieb und für gerade Halbbilder wird DPYNEXT auf den Wert von DPYSTRT initialisiert,<br />
wenn das Ende der vertikalen Blank-Periode bevorsteht. Für ungerade Halbbilder wird<br />
DPYNEXT zu diesem Zeitpunkt mit (DPYSTRT+DPYINC) geladen, da das Halbbild mit Zeile<br />
1 beginnt. Falls jedoch Zooming in Y-Richtung aktiv ist, wird auch bei ungeraden Halbbildern<br />
DPYNEXT=DPYSTRT gesetzt, da dann Zeile 0 in der ersten Zeile beider Halbbilder ausgegeben<br />
wird. Gleichzeitig mit DPYNEXT wird die Variable VLINE auf 0 bzw. auf 1 gesetzt, und<br />
RELAREA wird ’1’, was die Bildregion kennzeichnet, in der Reloads durchgeführt werden (noch<br />
immer T2 im Diagramm S HCNT, Seite 82).<br />
Beim normalen Vollbild wird DPYNEXT mit jedem Zeilenwechsel um den Wert DPYINC erhöht.<br />
Bei Halbbildern wird 2·DPYINC hinzugezählt, da jede zweite Zeile übersprungen wird. Ist Zooming<br />
in Y-Richtung aktiv, so sorgt der Zähler YZOOMCNT dafür, daß jede Zeile bis zu 128 mal<br />
wiederholt wird und sich DPYNEXT in dieser Zeit nicht ändert. YZOOMCNT wird auf den Wert<br />
YZOOMST (im Halbbildbetrieb YZOOMST/2) initialisiert, der im Diagramm S VCNT (S. 83 asynchron<br />
aus dem Zoom-Faktor YZ berechnet wird. Nur bei einem Zählerüberlauf von YZOOMCNT<br />
wird DPYNEXT um DPYINC erhöht.<br />
Am Beginn der vertikalen Blank-Periode wird VLINE auf 0xFFFF und RELAREA auf ’0’ gesetzt,<br />
da keine Reloads mehr nötig sind.<br />
Schließlich werden noch die Signale RELAT10 und RELAT6 erzeugt, die kennzeichnen, daß ein<br />
Reload am Ende einer Bildzeile bevorsteht. Gesetzt werden die Signale 10 bzw. 6 VClk-Zyklen vor<br />
Beginn des Reloads. Dies ist für die Arbitrierungslogik (s. Abschnitt 4.5.5) notwendig.<br />
Bei externer Synchronisation ist nicht die Bedingung HCOUNT=HTOTAL, sondern ein externer<br />
Sync-Puls Auslöser für einen Zeilenwechsel. Hierbei werden die Transitionen T3 und T4<br />
wichtig. Das asynchron erzeugte Signal HS Wait ist aktiv ’1’, wenn die horizontale Synchronisation<br />
durch ein externes Signal erfolgen soll. Das Signal HS Coming wird kurzzeitig aktiv ’1’, wenn ein<br />
gültiges externes Sync-Signal kommt, wobei dies je nach Modus ein Signal an CSYNC oder VSYNC<br />
sein kann.<br />
Ein gültiges Sync-Signal setzt sofort HCOUNT=SETHCNT und leitet damit die neue Zeile ein.<br />
Kommt am Zeilenende kein Sync-Signal, so bleibt HCOUNT wegen Transition T4 auf dem Wert<br />
HTOTAL, bis die externe Synchronisation erfolgt. HCOUNT wird auf den Wert des Registers<br />
SETHCNT und nicht auf 0 gesetzt, damit leichte Verschiebungen zwischen externen und internen<br />
Signalen ausgeglichen werden können.<br />
Ist CSYNC Eingang, so werden nur die fallenden Flanken von CSYNC in am Zeilenanfang akzeptiert.<br />
CSYNC-Flanken in der Zeilenmitte setzen den Horizontalzähler nicht zurück. Möglich wird<br />
dies durch das Signal HS Enable, das erst zu Beginn der horizontalen Blank-Periode aktiv ’1’ und<br />
mit erfolgtem Zeilenwechsel wieder ’0’ wird. Es maskiert das CSYNC in-Signal.<br />
3.4.2 Steuerung des vertikalen Timings<br />
Das Diagramm S VCNT (Seite 83) steuert das Vertikaltiming, also VHOUNT, VSYNC und<br />
VBLANK, sowie im Halbbildbetrieb den Wechsel zwischen geraden und ungeraden Halbbildern<br />
und den Ablauf der Videophasen (Serration, Equalisation, Bildphase).