21.07.2013 Aufrufe

DIPLOMARBEIT - FG Mikroelektronik, TU Berlin

DIPLOMARBEIT - FG Mikroelektronik, TU Berlin

DIPLOMARBEIT - FG Mikroelektronik, TU Berlin

MEHR ANZEIGEN
WENIGER ANZEIGEN

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).

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!