VGA Grafik mit RAPTOR2000 - uni-paderborn.de

34
VGA Grafik mit RAPTOR2000 Projektgruppe SS03 Tim Kaulmann, Christian Hilker, Jens Hagemeyer betreut durch Dipl.-Ing. M. Franzmeier Heinz Nixdorf Institut Universit¨ at Paderborn

Transcript of VGA Grafik mit RAPTOR2000 - uni-paderborn.de

Page 1: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

VGA Grafik mit RAPTOR2000

Projektgruppe SS03

Tim Kaulmann, Christian Hilker, Jens Hagemeyer

betreut durch

Dipl.-Ing. M. Franzmeier

Heinz Nixdorf Institut

Universitat Paderborn

Page 2: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

Inhaltsverzeichnis

1 Einleitung 1

2 Teilsysteme 4

2.1 Lokalbus to Wishbone Bridge (lbs wbm.vhd) . . . . . . . . . . . . . . . . 4

2.2 Schnittstelle zum SDRAM (mc wb.vhd) . . . . . . . . . . . . . . . . . . 5

2.3 I2C-Bridge (i2c master top.vhd) . . . . . . . . . . . . . . . . . . . . . . . 7

2.4 VGA-Core (vga enh top.v) . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.5 Wishbone-Matrix (wb interconn.vhd) . . . . . . . . . . . . . . . . . . . . 8

3 Simulation, Synthese und Place&Route 10

3.1 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2 Synthese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3 Place and Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 Gesamtsystem 12

4.1 Takte und Adressierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2 Anwendungsbeispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5 Hardware und Software 19

5.1 DVI Adapter Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.2 Software VGA Control v1.0 . . . . . . . . . . . . . . . . . . . . . . . . . 20

6 Zusammenfassung 22

A Anhang 23

A.1 Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

A.2 Schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

i

Page 3: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

Abbildungsverzeichnis 30

Tabellenverzeichnis 31

ii

Page 4: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

1. Einleitung

Das am Fachgebiet Schaltungstechnik entwickelte RAPTOR2000-System ist eine sehr leis-

tungsfahige Plattform fur den prototypischen Entwurf mikroelektronischer Schaltungen.

Fur Demonstrationszwecke ist es wunschenswert, die Datenverarbeitung der Plattform

grafisch aufzubereiten und darzustellen. Die Aufbereitung und Darstellung soll in Zu-

kunft vom RAPTOR2000-System ohne einen externen PC geleistet werden. Zu diesem

Zweck soll in dieser Projektarbeit ein zusatzliches System entwickelt werden, das ohne

weitere externe Hardware eine VGA-Ausgabe des RAPTOR2000-Systems auf Standard-

Bildschirmen bereitstellt.

Als Grundlage des VGA-Systems wird das am Fachbereich vorhandene DB-VS Modul

zuruckgegriffen, welches ein FPGA VirtexE-600 und 128 MB SDRAM bereitstellt. Zusatz-

lich wird ein DB-VGA Zusatzmodul entwickelt, welches die eigentliche VGA-Schnittstelle

und weitere zum Betrieb erforderliche Komponenten enthalt.

Wishbone-Interconnect-Matrix

LB / WB

BridgeVGA Core

I2C BridgeSDRAM

Controller

EEPROM DVI Converter

PLL ClockChip

SDRAM

VirtexE-600

RAPTOR DB-VS

RAPTOR DB-VGA

Abbildung 1.1: Schematische Darstellung des Gesamtsystems

Da das VGA-System den wesentlichen Teil aus dem VGA-Core bezieht, ist hier der

prinzipielle Aufbau des Gesamtsystems dargestellt (siehe Abbildung 1.1).

Die zusatzliche Platine ist erforderlich, da der FPGA weder analoge Signale darstellen (im

1

Page 5: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

2

Fall einer”normalen“, analogen Schittstelle), noch digitale Signale mit der erforderlichen

Geschwindigkeit erzeugen kann (im Fall von serieller Ubertragung uber DVI). Weiterhin

ist auf dem DB-VGA ein PLL-Chip zur Erzeugung der variablen Pixelclock und ein

EEPROM zur Datenspeicherung vorhanden.

Das HDL-Design setz sich zusammen aus VHDL und VERILOG, da in diesem bereits fer-

tige Komponenten vom Fachgebiet Schaltungstechnik und OpenCores verwendet wurden,

welche in unterschiedlichen HDL-“Dialekten“ vorlagen. Verwendet wurden:

VGA/LCD Core 2.0 Richard Herveille (www.opencores.org) / Verilog, Der eigentliche

VGA-Core, fur die Verwendung im Design modifiziert.

I2C Master Core Richard Herveille (www.opencores.org) / Verilog, Fur die Ansteue-

rung der Bausteine des DB-VGA, mit leichten Modifikationen verwendet.

SDRAM Controller Boris Kettelhoid / VHDL, Als Komponente im SDRAM-Controller.

LokalbusSlaveSimple Rainer Schmidt / VHDL, Als Komponente in der RAPTOR-

Lokalbusschnittstelle.

Im Folgenden werden die Fahigkeiten des VGA-Cores kurz vorgestellt, da dieser maßgeb-

lichen Einfluss auf die Funktionalitat des Systems hat.

Hardware Cursor 0

X,Y Postition

Base Adress

Colormode

Colorlookuptable

Hardware Cursor 1

X,Y Postition

Base Adress

Colormode

Colorlookuptable

Framebuffer 0

Base Adress

Framebuffer 1

Base Adress

Colorlookuptable 0

256 x 24 Bit

Colorlookuptable 1

256 x 24 Bit

Colordepth

Colorizer

Pixel Processor

Logic

Abbildung 1.2: Schematische Darstellung des VGA-Cores

Page 6: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

3

Der in Abbildung 1.2 dargestellte VGA-Core besteht aus:

2 Framebufferpointer

2 Colorlookuptables

2 Hardwarecursor

Der Anwender hat die Moglichkeit, zwei oder mehr separate Buffer zu beschreiben und

abwechselnd darzustellen. Dieses kann mit Hilfe der beiden Framebufferpointer geschehen.

Um einen flackerfreien Bildaufbau zu erreichen ist es sinnvoll die Interrupts des Cores

zu nutzen. Dieser stellt verschiedene Interupts zur Verfugung, welche vorerst nur durch

Polling benutzt werden konnen. Eine gangige Methode ist, zwei Buffer im RAM des

FPGA Moduls zu reservieren und dort abwechselnd Daten zu schreiben, wahrend der

gerade nicht beschriebene Buffer angezeigt wird (Doublebuffering).

Bei diesem Betrieb werden zuerst beide Buffer gefullt, der Core aktiviert und dann das

Video-Bufferswitch Signal gesendet. Die Bufferpointer mussen hierbei auf die jeweiligen

Bufferadressen zeigen. Ist der erste Buffer vollstandig ausgelesen, wird vom Core der

Interrupt gesetzt. Nun kann man den ausgelesenen Buffer erneut fullen und anschliessend

das Video-Bufferswitch Signal senden. Sendet man es nicht, wird solange der andere Buffer

ausgelesen und so verhindert, dass der Core ein halbes Bild dastellt.

Auf die selbe Weise konnen auch die Colorlookuptables genutzt werden (nur Doublebuffe-

ring). Eine Colorlookuptable (CLUT) nimmt eine Farbpalette fur ein indiziertes Bild auf.

Indizierte Bilder haben in der Regel einen geringeren Datenaufwand da sie nur Indizes

anstatt Farbwerten im Bild speichern.

Page 7: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

2. Teilsysteme

2.1 Lokalbus to Wishbone Bridge (lbs wbm.vhd)

Dual

Ported

BlockRam

Dual

Ported

BlockRam

Read

FIFO

Write

FIFO

FIFO

Controller

Wishbone

Master

Localbus

Slave

Simple

Abbildung 2.1: Bridge Lokalbus Slave auf Wishbone Master

Diese Komponente beinhaltet hauptsachlich drei Funktionen. Zum einen stellt sie die

Schnittstelle zwischen dem Lokalbus des RAPTOR2000-Systems und dem Wishbone Bus

des Designs dar. Zum anderen wird die Komponente zur korrekten Ubermittelung zwi-

schen Lokalbustakt LCLK13 und dem Takt des Wishbone-Bussystems, mit LCLK23 be-

zeichnet, benotigt. Schliesslich wird auch die Bildung der 32 Bit breiten Wishboneadresse

in dieser Komponente ausgefuhrt. Wie in Abbildung 2.1 dargestellt, wird die unmittelba-

re Schnittstelle zum Lokalbus durch die Entity LokalbusSlaveSimple von Rainer Schmidt

realisiert. LokalbusSlaveSimple stellt hier die Tristatebuffer fur den Lokalbus bereit und

fuhrt eine Vorverarbeitung der Signale des Lokalbus durch. LokalBusSlaveSimple.vhd ist

als Komponente in lbs wbm.vhd instanziert. Die Entity lbs wbm.vhd selbst besteht aus

zwei Zustandsautomaten, wobei einer mit Lokalbusfrequenz LCLK13 und die andere mit

Wishbonefrequenz LCLK23 getaktet ist. Weiter ist ein Prozess zur Umsetzung der Lokal-

busadressen auf die Wishboneadressen implementiert. Die Datenubermittelung zwischen

den beiden Automaten erfolgt uber zwei aysnchrone FIFOs, welche in der Sythese als

Blackboxmodule eingebunden werden, da diese mit dem Xilinx CoreGenerator erzeugt

wurden. Die Dauer eines Zugriffs auf die Bridge ist abhangig davon, ob es sich um einen

Lese, oder Schreibzugriff handelt. In Bezug auf Schreibzugriffe unterstutzt die Bridge

4

Page 8: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

2.2. Schnittstelle zum SDRAM (mc wb.vhd) 5

Lokalbus-Bursts. Schreibzugriffe konnen somit, unter der Voraussetzung eines nicht vol-

len Schreib-FIFOs, in einem Takt abgeschlossen werden. Der Schreibvorgang wird als

beendet angesehen, sobald das entsprechende Datenwort im FIFO liegt. Die Tatsache,

dass ein Schreibvorgang auf dem Lokalbus abgeschlossen ist, stellt somit nicht sicher,

dass das System bereits uber die Information verfugt. Dieses stellt aber kein Problem

dar, solange die Reihenfolge der Schreibzugriffe eingehalten wird, was durch Verwendung

eines FIFO der Fall ist. Im Fall eines Lesezugriffs ergibt sich ein anders Verhalten. Da das

System die benotigte Information erst uber den Wishbonebus bereitstellen muss, dauert

ein einzelner Lesezugriff in jedem Fall langer als ein Takt und ist abhangig vom VerhaltnisLCLK13LCLK23

, der Auslastung des Wishbonebusses und der Komponente selbst.

2.2 Schnittstelle zum SDRAM (mc wb.vhd)

Abbildung 2.2: Schematische Darstellung der SDRAM-Schnittstelle

Wie aus Abbildung 2.2 hervorgeht, stellt die Entity mc wb.vhd die Schnittstelle zwi-

schen dem eigentlichem SDRAM-Controller und dem Wishbonebus dar. Die Schnittstelle

besteht dabei im wesentlichen aus zwei endlichen Zustandsautomaten(Finite State Ma-

schine), wobei ein Automat das Wishbone-Interface bildet und der andere den SDRAM-

Page 9: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

2.2. Schnittstelle zum SDRAM (mc wb.vhd) 6

Controller steuert. Weiterhin ist ein Dual-Ported-BlockRAM als Cachespeicher integiert.

Die beiden Zustandsautomaten sind hier notwendig, obwohl SDRAM-Controller als auch

Wishbonebus mit der gleichen Frequenz laufen, da es, z.B. aufgrund der Refreshzyklen

des Controllers oder aufgrund der Caching-Funktionalitat von mc wb.vhd, zu paralle-

len, gleichzeitig ablaufenden Prozessen kommen kann. Die Verbindung zwischen den Zu-

standsautomaten wird durch eine Reihe von Registern realisiert, die jeweils von einer

Statemaschine gesetzt und von der anderen zuruckgesetzt werden. Aus dem Grund der

parallelen Prozesse ist ebenfalls erforderlich, Dual-Ported-BlockRAM’s fur die Implemen-

tierung des Caches zu benutzen.

Die Schnittstelle unterstutzt sieben verschiedene Zugriffsmoglichkeiten, wobei vier da-

von auf das Lesen und Schreiben der Parameterregister des SDRAM-Controllers entfal-

len. Diese Zugriffe werden durch Schreib und Lesevorgange an die Wishbone-Adressen

0x60000000 und 0x60000004 durchgefuhrt. Zum eigentlichen Zugriff auf SDRAM-Inhalte

stellt die Schnittstelle Single-Writes, Single-Reads und Burst-Reads bereit. Die Unter-

scheidung zwischen Single- und Burst-Read erfolgt dabei uber das CTI-Signal (Cycle

Type Identifier) der Wishboneschittstelle. Im Wishboneprotokoll sind verschiede Burst-

Modi spezifiziert, die uber das BTE-Signal (Burst Type Extension) unterschieden werden,

allerdings unterstutzt mc wb.vhd nur lineare Bursts (BTE = 000), hier Leseoperationen

auf zusammenhangende Adressbereiche. Im folgenden wird der Ablauf der Schreib und

Lesezugriffe erlautert.

Ein Cacheeintrag besteht dabei aus 32 Bit-Daten, 20 Bit-Tag und einem Valid Bit. Bei

einem Single-Read wird zunachst auf den gleichen Tag der aktuellen Adresse und des

entsprechenden Cacheeintrages sowie auf ein gesetztes Valid-Bit gepruft. Abhangig da-

von, wie der Vergleich ausfallt, wird das entsprechende Datum aus dem SDRAM oder

aus dem Cache gelesen. Der Inhalt des Cache wird in keinem Fall verandert. Im Fall eines

Burst-Read wird bei jedem Datum wie im Fall des Single-Read auf Miss oder Hit gepruft.

Tritt ein Miss auf, so wird der aktuelle Burst temporar unterbrochen und die entsprechen-

den Daten aus dem SDRAM gelesen. Der Wishbone Burst wird, nachdem die Daten zur

Verfugung stehen, normal ausgefuhrt, allerdings liest der Memory-Controller alle Daten

bis zum Ende der aktuellen Page weiter und speichert diese im Cache. Eine Page hat eine

Grosse von 1024 Byte, entsprechend ist die Große des BlockRAM’s gewahlt, welches als

Cache verwendet wird. Da vom VGA-Core lineare Zugriffe (ansteigende Adressen auf den

Speicher) zu erwarten sind, wird durch diese Strategie eine hohe Hitrate erwirkt, was sich

positiv auf die Latenz beim SDRAM-Zugriff und letztendlich auch auf den Datendurch-

satz auswirkt. Bei Schreibzugriffen wird, ahnlich wie beim Single-Read, zunachst auf einen

Hit gepruft, allerdings wird das Valid-Bit hierbei ignoriert. Im Fall eines Miss wird das

Datum nur in das SDRAM, im Fall eines Hit zusatzlich in den Cache geschrieben. Durch

diese Strategie wird ein ungultiger Cacheinhalt verhindert. Wenn in jedem Fall auch in

den Cache geschrieben wurde, konnte dieses negativen Einfluss auf die Hitrate haben, da

eventuell komplette Pages im Cache durch einzelne Eintrage, die nicht in der Page liegen,

zerstort werden. Im SDRAM-Controller, in mc wb.vhd als Komponente eingebunden, be-

findet sich, ebenfalls als Komponente eingebunden, das Modul clock gen.vhd, welches eine

Page 10: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

2.3. I2C-Bridge (i2c master top.vhd) 7

Verdopplung des Taktes bewirkt und die Taktruckfuhrung des SDRAM einbindet. Diese

Komponente wurde fur die Verwendung im System nicht benutzt, da die entsprechenden

(und andere) Funktionalitaten bereits in clock ctrl.vhd implementiert sind. Anderungen

im Code bestehender Module wurden mit dem Kommentar”sct-mod“ versehen.

2.3 I2C-Bridge (i2c master top.vhd)

Der verwendeten Wishbone-I2C Bridge wurde ein Modul von OpenCores zugrunde gelegt.

Dieses Modul musste zur Nutzung im System modifiziert werden, um Fehler bei Simu-

lation und Synthese zu beseitigen. Die I2C-Bridge ist im Gegensatz zum Wishbone-Bus

nur fur 8 Bit-Datenbreite ausgelegt. Soll ein Zugriff vom Wishbonebus auf den I2C-Bus

erfolgen, konnen auf dem Wishbonebus nur die unteren 8 Bit genutzt werden, da in der

I2C-Bridge keinerlei Umsetzung der 32 Bit-Daten auf vier einzelne 8 Bit-Zugriffe im-

plementiert ist. Die Datenrate auf dem I2C-Bus wurde mit 400kHz gewahlt, da Chips

mit gleicher Spezifikation als Slaves eingesetzt wurden. Die Bridge unterstutzt einen 10

Bit-Adressierungsmodus, der der erweiterten I2C-Spezifikation entspricht. Dieser Modus

ist abwartskompatibel zum 7 Bit-Adressierungsmodus, so dass hier Chips beider Adres-

sierungsarten eingesetzt werden konnten. Ein Konfigurations-Manager, der die Bridge

benutzen soll, wurde in dieser Version in die parallel entwickelte Software integriert. Die-

ser Teil, sowie die I2C Bridge sollen in einer nachsten Version des VGA-Systems durch

einen eingebetteten Xilinx MicroBlaze-Core vollstandig ersetzt werden. Neben der reinen

Bridge-Funktion und dem Konfigurations-Management kann der MicroBlaze Prozessor

auch fur weitere Aufgaben, wie z.B. einen geplanten Textmodus, eingesetzt werden.

2.4 VGA-Core (vga enh top.v)

Eine schematische Darstellung des Cores ist in Abbildung 2.3 abgebildet. Zur Verwen-

dung im System musste der VGA-Core modifiziert werden, da einige Konstrukte im

Core nicht auf die Zielarchitektur abgebildet werden konnten oder in der Simulation

nicht funktionierten. Die Anderungen im Code wurden mit dem Kommentar”sct-mod“

gekennzeichnet. Die der Implementierung zugrundeliegende Version ist am 01.08.2003

auf www.opencores.org veroffentlicht worden, die Anderungen der aktuellen Version vom

23.09.2003 sind nicht berucksichtigt, enthalten allerdings nach einer”ersten Durchsicht“

keine gravierenden Anderungen. Die Anderungen beziehen sich vor allem auf die nach-

folgenden Punkte:

Der Line-Fifo, welcher die Umsetzung auf die Pixeltaktdomane bewerkstelligt, wur-

de aufgrund von Problemen bei der Simulation durch ein Blackboxmodul aus dem

Xilinx CoreGenerator ersetzt. Da der FIFO durch ein Dual-Ported-Memory reali-

siert wurde, wurde auch generic dpram.v uberflussig.

Page 11: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

2.5. Wishbone-Matrix (wb interconn.vhd) 8

Abbildung 2.3: Schematische Darstellung des VGA-Cores

Die Implementierung der Single-Ported-Memorys, realisiert durch generic spram.v,

welche fur die Implementierung der Color-Lookuptable(vga csm pb.v) und des Cur-

sorBuffers(vga curproc.v) zustandig waren, wurden ebenfalls durch Blackboxmodu-

le ersetzt, die direkt in den entsprechenden Modulen instanziert werden.

Die Funktionen in vga fifo.v, welche eine allgemeine Implementierung des FIFOs er-

lauben, wurden aufgrund von Problemen im Synthesetool FC2 durch entsprechende

spezielle Varianten ersetzt.

Mehrere Anderungen in vga pgen.v und vga wb master.v, um Probleme mit nicht

vorhandenen Signalen in Simulation und Synthese zu beheben.

Die Hardwarecursor sowie der Cursorschatten konnen in vga defines.v durch entspre-

chende Verilog-Preprocessordirektiven in die Synthese eingebunden werden. Da es in den

Sythesetools teilweise Probleme mit dem Gultigkeitsbereich dieser defines gab, wurde

diese in den entsprechenden Modulen nochmals gesetzt.

2.5 Wishbone-Matrix (wb interconn.vhd)

Die Wishbone-Matrix, dargestellt in Abbildung 2.4 (in der Wishbone-Spezifikation wird

ein solches System auch Wishbone-Interconnect-Matrix genannt), stellt eine exklusive

Verbindung zwischen einem Master und einem Slave her. Es konnen mehrere Master-Slave

Verbindungen gleichzeitig existieren, solange die beteiligten Master-Slave Paare disjunkt

Page 12: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

2.5. Wishbone-Matrix (wb interconn.vhd) 9

SDRAM

Slave

0

VGA

Slave

I2C

Slave

VGA

Master

Localbus

Master

0

0

0

0

Abbildung 2.4: Darstellung der Wishbone-Interconnectmatrix

sind. In diesem System wurde der Ansatz der Wishbonematrix vor allem aufgrund des

vereinfachten Routings im Vergleich zur Shared-Bus Implementierung gewahlt. Da der

Prozess der Arbitrierung aufgrund der Implementierung als Moore-Automat eine Latenz

von einem Takt aufweist, sind alle Master, die keine Bursts unterstutzen (hier nur der

Lokalbusmaster), zur Verkurzung des kritischen Pfades durch ein Register gebuffert.

Page 13: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

3. Simulation, Synthese und

Place&Route

3.1 Simulation

Die Simulation des System wurde mit Cadence durchgefuhrt. Fur die Simulation ist es

notwendig, eine Verhaltenbeschreibung fur die Blackboxmodule zur Verfugung zu haben.

Fur alle Module, die mit dem Xilinx CoreGenerator erzeugt wurden, ist dieses moglich,

da entsprechende Modelle in den entsprechenden Modulen instanziert werden, und im

CoreGeneratorSystem als Sourcen zur Verfugung stehen. Um auch Verhaltsbeschreibun-

gen fur die verwendeten DLLs und Buffer zu haben, ist die Verwendung der Unisim-

Libary notwendig. Da diese nicht uberall zur Verfugung steht, wurde eine auf die fur das

System benotigten Komponenten reduzierte Version der Unisim-Libary erstellt, die den

Sourcen beliegt (unisim VCOMP.vhd, unisim vital.vhd, unisim vpkg.vhd). Neben den

Verhaltensmodellen der CoreGeneratorModelle und den Unisim-Sourcen ist weiterhin ein

Modell zur Simulation des SDRAM und ein Modell zur Simulation eines I2C-Slaves vor-

handen, welches in den Testbenchen (vga cp tb2.vhd und vga cp tb3.vhd) entsprechend

eingebunden wird. Da die Unisim-Libary ein eigenes Package erstellt, das von anderen

Komponenten dann benotigt wird, ist es notwendig, zunachst die oben genannten Entitys

zu ubersetzen, um im Verzeichnis”work“ ein entsprechendes Package zur Verfugung zu

haben (die Option”-smartorder“ hilft hier nicht). Die Testbench vga tb 2.vhd initiali-

siert das System uber das Lokalbusinterface und simuliert danach einen I2C-Zugriff. Die

Testbench vga tb 3.vhd initialisiert das System und schreibt danach eine Bitfolge, welche

in der Datei testv2 gespeichert ist, in das SDRAM. Nach dem anschliessenden Auslesen

der Werte wird der VGA-Core aktiviert. Dieser gibt die Werte entsprechend der aktu-

ellen Konfiguration aus. Alle fur die Simulation benotigten Dateien sind im Verzeichnis

”Simulation“ zu finden.

3.2 Synthese

Die Synthese wurde mit den Tools Synopsys FPGA Compiler II in den Versionen 3.6.1

und 3.7.2 sowie Synplicity Synplify Pro 7.3.0 durch gefuhrt. Als Zielarchitektur wurde

ein VirtexE600-8 in BG560-Bauform verwendet. Bei Verwendung des FC2 ist darauf zu

achten, dass die Option”Merge Duplicate Registers“ deaktiviert und die Treiberstarke

der Ausgangsbuffer auf”F 24 LVTTL“ eingestellt ist, um ein moglichst gunstiges Ti-

mingverhalten zu erzielen. Bei Verwendung von Synplify sind die Optionen”Retiming“

sowie”Pipelining“ zu aktivieren. Optimiert wurde in beiden Fallen auf Zeit, die Vorgabe

fur alle Takte ist 80 MHz. Als Toplevel-Modul ist allen Fallen vga cp.v zu verwenden.

Alle fur die Synthese benotigten Dateien sind im Verzeichnis”Synthese“ zu finden.

10

Page 14: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

3.3. Place and Route 11

3.3 Place and Route

Als Place and Route Tool wurde vorwiegend ISE Foundation 5.2.03i verwendet. Neben

dem EDF-File, welches aus der Synthese gewonnen wurde, mussen noch die Module

eingebunden werden, die in der Sythese als Blackboxmodule eingesetzt wurden. Dieses

geschieht in Form von EDN-Files. Diese sind im ISE-Verzeichnis zu finden. Weiterhin ist

die Verwendung eines UCF-Files unabdingbar, um die Zuordnung der Pads zu den Pins zu

gewahrleisten und Timing-Constrains zu setzen. Aufgrund unterschiedlicher Netzlisten-

Formate verwenden FC2 und Synplify auch unterschiedliche Formate in den UCF-Files.

Die entsprechenden UCF-Files sind im Verzeichnis UCF zu finden. Weiterhin kann noch

angemerkt werden, dass sich die Synthese mit Synplify sehr viel angenehmer als mit FC2

gestaltet, was vor allem an den ausfuhrlicheren Warnungen und Anmerkungen liegt. In

Tabelle 3.1 sind die Ergebnisse der verschiedenen Synthesetools gegenubergestellt. Zum

weiteren Vergleich wurde ein kompletter XST-Flow mit ISE 6.1.01i durchgefuhrt, bei

dem Synthese und Place and Route in einem Werkzeug kombiniert sind. Generell ist zu

beachten, dass die maximale Wishbonefrequenz LCLK23 vom Place and Route Tool nicht

richtig ausgegeben wird, da hier auch sogenannte”False-Paths“ berucksichtigt werden,

also Pfade, welche in der wirklichen Schaltung nie aktiviert werden. Zur Ermittlung der

maximalen Frequenz ist somit eine Betrachtung der entsprechenden Pfade erforderlich.

In allen Fallen wurde das Place and Route Tool so parametrisiert, dass die Schaltung auf

Geschwindigkeit optimiert wurde.

Synplify FC2-3.6.1 FC2-3.7.2

ISE 5.2ISE 6.1 XST

Große EDF-File 4700119 7817588 6774723 -

max. LCLK13 79,051 75,826 54,110 63,691

max. LCLK23 52,083 50,813 51,052 55,624

max. CLK DB 72,595 74,750 92,859 93,826

Slice FFs 2192 3467 3455 1987

LUTs 3312 6099 5170 3482

Total equiv. Gate-Count 641484 651261 643299 637077

Block-RAMs 34 34 34 34

GCLKs 3 3 3 3

GCLKIOBs 4 4 4 4

DLLs 3 3 3 3

Tabelle 3.1: Vergleich der Synthesetools

Page 15: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

4. Gesamtsystem

4.1 Takte und Adressierung

Die Kommunikation der einzelnen Komponeten erfolgt uber das Wishbone-Protokoll.

Zum Betrieb des System sind drei verschiedene Taktfrequenzen notig, die Lokalbusfre-

quenz, die Wishbonefrequenz und die Pixelfrequenz. Die Taktfrequenzen sind prinzipiell

unabhangig voneinander wahlbar, allerdings muss gewahrleistet werden, dass der Wish-

bonebus die fur den VGA-Core bei gegebener Pixelfrequenz notwendige Datenrate trans-

portieren kann. In Tabelle 4.1 sind die Taktfrequenzen, Signalnamen und Taktquellen

zusammengefasst.

Signalname Quelle

Lokalbustakt LCLK13 RAPTOR-Systemtakt (linker Sockel)

Wishbonetakt LCLK23 2. Taktsockel des Raptorboards (rechter Sockel)

Pixeltakt CLK DB Sockel auf DB-VS

Tabelle 4.1: Taktsignale des Systems

Die Frequenzen fur Wishbonetakt und Pixeltakt werden vom DB-VGA generiert und

auf die entsprechenden Sockel zuruckgefuhrt. Der Wishbone und Pixeltakt werden dabei

zunachst uber eine DLL (Delay-Locked-Loop) vom Takteingang entkoppelt. Dieses ist

moglich, da auf diese Bereiche des Systems keine Signale von ausserhalb des FPGAs

einwirken (keine externen Eingange). Realisiert wird dieses in der Entity clock-ctrl.vhd,

gleichzeitig wird auch das Taktsignal fur den Ausgang zum DVI-Transmitter generiert

und die Taktruckfuhrung des SDRAM in das System eingebunden. Dadurch wird erreicht,

dass die Bausteine des SDRAM synchron zum Wishbonetakt angesprochen werden. Das

System arbeitet intern mit 32 Bit-Adressen, wobei die Register der einzelnen Module

sowie des SDRAMs in diesem Speicherbereich aufgeteilt sind. In Tabelle 4.2 sind die

Bereiche dargestellt.

Die Adressierung erfolgt gemass Wishbone-Spezifikation zwar Byteweise, allerdings sind

nur 32 Bit-Worte als Datum zugelassen, wodurch sich die Sprunge in den Adressen er-

klaren. Da der I2C-Core intern nur mit 8 Bit-Worten arbeitet, wird beim Zugriff auf

diesen nur das unterste Byte des 32 Bit-Datenwortes ausgewertet. Beim lesendem Zugriff

auf die Bridge werden die obersten Stellen als Nullen gelesen, beim Schreibem igno-

riert. Der Zugriff auf das System durch ein Host-System erfolgt durch den Lokalbus des

RAPTOR2000 Systems. Auf diesem ist fur ein Daughterboard allerdings nur eine 21

Bit-Adresse vorgesehen. Um trotzdem den gesamten Adressbereich des Moduls anspre-

chen zu konnen, werden die oberen 12 Bit der 32 Bit-Adresse in einem Register der

12

Page 16: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

4.1. Takte und Adressierung 13

Modul Adressbereich Beschreibung

SDRAM-Contr. 0x00000000 - 0x07FFFFFC 128 MB - SDRAM

SDRAM-Contr. 0x08000000 - 0x5FFFFFFC -reserved-

SDRAM-Contr. 0x60000000 Parameterregister 1

SDRAM-Contr. 0x60000004 Parameterregister 2

SDRAM-Contr. 0x60000008 - 0x7FFFFFFC -reserved-

VGA-Core 0x80000000 Controll-Register

VGA-Core 0x80000004 Status-Register

VGA-Core 0x80000008 Horizontal Timing Register

VGA-Core 0x8000000C Vertikal Timing Register

VGA-Core 0x80000010 Horiz. + Vert. Length Register

VGA-Core 0x80000014 SDRAM Base Addr. Register A

VGA-Core 0x80000018 SDRAM Base Addr. Register B

VGA-Core 0x8000001C - 0x8000002C -reserved-

VGA-Core 0x80000030 Cursor0 X,Y Register

VGA-Core 0x80000034 Cursor0 Base Address Register

VGA-Core 0x80000038 - 0x8000003C -reserved-

VGA-Core 0x80000040 - 0x8000005C Cursor0 Color Register

VGA-Core 0x80000060 - 0x8000006C -reserved-

VGA-Core 0x80000070 Cursor1 X,Y Register

VGA-Core 0x80000074 Cursor1 Base Address Register

VGA-Core 0x80000078 - 0x8000007C -reserved-

VGA-Core 0x80000080 - 0x8000009C Cursor1 Color Register

VGA-Core 0x800000A0 - 0x800007FC -reserved-

VGA-Core 0x80000800 - 0x80000FFC Color Lookup Table

VGA-Core 0x80001000 - 0xBFFFFFFC -reserved-

I2C-Core 0xC0000000 Prescaler-Low Byte

I2C-Core 0xC0000004 Prescaler-High Byte

I2C-Core 0xC0000008 Prescaler-Controll Byte

I2C-Core 0xC000000C Transmit/Recieve Register

I2C-Core 0xC0000010 Command/Status Register

I2C-Core 0xC0000014 - 0xFFFFFFFC -reserved-

Tabelle 4.2: 32 Bit-Adressbereich des Systems

Lokalbus/Wishbone Bridge gespeichert, und die eigentliche Adresse beim Zugriff durch

den Host generiert. In Tabelle 4.3 ist der Zusammenhang dargestellt. Mit dem Pagere-

gister ist es so moglich, den gesamten Adressraum des Systems zu adressieren. Es wird

eine Pagegroße von 1 MB verwendet. Im restlichem Adressbereich des Lokalbus werden

wichtige Bereiche des Systems gespiegelt, um auf diese ohne erneutes Schreiben des Page-

registers zugreifen zu konnen. Beim Beschreiben des Pageregisters ist zu beachten, dass

nur die oberen 12 Bit des Datenworts ausgewertet werden. Die unteren 20 Bit werden

Page 17: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

4.2. Anwendungsbeispiele 14

Adressbereich(Lokalbus) Adressbereich(System) Beschreibung

0x000000 - 0x00FFFC ((Page-Reg20)+Lokalbusadresse) Gesamtes System

0x100000 - 0x100FFC 0x80000000 - 0x80000FFC VGA-Core

0x101000 - 0x101004 0x60000000 - 0x60000004 SDRAM-Parameterreg.

0x101008 - 0x101FFC 0x60000008 - 0x60001FFC -reserved-

0x102000 - 0x102010 0xC0000000 - 0xC0000010 I2C-Core

0x102014 - 0x1FFFF8 0x80000000 - 0x801FFFF8 -reserved-

0x1FFFFC - Pageregister

Tabelle 4.3: Adressbereich des Lokalbus

als Nullen gelesen und beim Schreiben ignoriert. Uber die I2C-Bridge des Systems wer-

den die ICs des DB-VGA parameterisiert und gesteuert. Der I2C-Core ubernimmt dabei

die Generierung der I2C-Signale, allerdings muss der Ablauf des I2C-Zugriffs uber das

Hostsystem gesteuert werden (siehe dazu auch die Beispiele im nachsten Kapitel oder

die Datenblatter im Anhang). Das I2C-Protokoll ist dabei so aufgebaut, dass zunachst

die Slaveadresse, dann die Adresse innerhalb des Slaves, welche 8 oder 16 Bit breit sein

kann, ubertragen wird. Danach werden die entsprechenden Daten geschrieben oder ge-

lesen. In Tabelle 4.4 sind die Adressen der I2C-Slaves zusammengefasst. Zur Bedeutung

Slaveadresse IC Beschreibung

0x70 TI - TFP410 DVI-Transceiver write

0x71 TI - TFP410 DVI-Transceiver read

0xA0 Fairchild - FM24C256 EEPROM write

0xA1 Fairchild - FM24C256 EEPROM read

0xD2 Cypress - CY22395 PLL-Chip write

0xD3 Cypress - CY22395 PLL-Chip read

Tabelle 4.4: I2C-Slaveadressen

der Subadressen innerhalb der Module wird auf die Datenblatter der IC-Hersteller oder

die Anwendungsbeispiele verwiesen.

4.2 Anwendungsbeispiele

Der VGA-Core ist so aufgebaut, dass es theoretisch moglich ist, jede denkbare Auflosung

darzustellen. Weiterhin existiert scheinbar kein bindender Standard, vielmehr haben sich

verschiedene”Quasi-Standards“ etabliert. In Tabelle A.1 sind die vertikalen und in Ta-

belle A.2 die horizontalen Timinginformationen mit erforderlichen Parametern fur aus-

gewahlte Auflosungen dargestellt. Die erforderlichen Parameter fur die Timing-Register

Page 18: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

4.2. Anwendungsbeispiele 15

des VGA-Core (0x80000008 - 0x80000010) ergeben sich dabei aus den Werten fur den

Synchronization-Pulse, den Back-Porch, der Active-Time sowie der Gesamtzeit fur einen

kompletten Bildaufbau bzw. eine Zeile. Der Front-Porch spielt hierbei keine Rolle, da

er sich aus den anderen Werten ergibt. Anzumerken ist noch, dass die Position des Bil-

des durch Variation der Back/Front-Porch-Zeiten (Lines/Pixel) verandert werden kann,

wobei die Summe der beiden Werte allerdings konstant ist.

Zur Veranschaulichung der Zusammenhange wird im folgenden davon ausgegangen, dass

eine Auflosung von 640x480 bei 60Hz dargestellt werden soll. Das Bild soll dabei im

24 Bit-Format (4/3 Datenworte pro 32 Bit-Wort) vorliegen. Nach Tabelle A.2 muss

die Pixelclock CLK DB = 25, 125 MHz betragen. Fur die Wishbonefrequenz werden

LCLK23 = 55 MHz angenommen, die Lokalbusfrequenz LCLK13 beeinflusst das Sys-

tem nicht wesentlich, die Eingangsfrequenz des PLL-Chips betrage 20 MHz. Zunachst

muss das System initialsiert werden.

Initialisierung des Systems

Als erstes ist es nach einem Reset des Systems notwendig, die Parameterregister des

SDRAM (0x60000000-0x60000004) neu zu setzen. Die Berechnungen, welche hierzu not-

wendig sind, finden sich im Handbuch des SDRAM-Controllers. In Tabelle 4.5 sind diese

nochmals zusammengefasst. In der letzten Spalte ist der Wert der benotigten Konstanten

fur das Infinieon-SDRAM auf dem DB-VS angegeben, auf welchem das System lauft.

Parameter Bezeichnung Berechnung fur System

CL CAS Latency Datenblatt 2

RCD RAS to CAS delay tRCD · fLCLK23 tRCD = 20 ns

RC Row Active Time tRC · fLCLK23 tRC = 70 ns

RP Row Precharge Time tRP · fLCLK23 tRP = 20 ns

WA Write Access Time TWR + tRP · fLCLK23 − 1 TWR = 2

BL Burst Length - 0x01

NZeilen = 8192REF PERIOD Refreshperiode tREF

NZeilen· fLCLK23 tREF = 64ms

PAGE SIZE Pagegrosse - 0x400

Tabelle 4.5: Parameter fur Initialisierung des SDRAM

Mit diesen Parametern ergibt sich:

Adresse Lokalbusadresse Wert

0x60000000 0x101000 0x00001E4A

0x60000004 0x101004 0x004001AD

Page 19: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

4.2. Anwendungsbeispiele 16

Es ist wichtig, dass diese Register nach jedem Reset neu initialisiert werden, bevor das

SDRAM mit Daten gefullt wird. Weiterhin muss nach jedem Reset der I2C-Core neu

initialisiert werden. Der Wert des Prescalers errechnet sich nach Gleichung 4.1.

Prescaler =

⌈fLCLK23

5 · fI2C

⌉− 1 (4.1)

Der Prescaler wird in ein Low- und ein High-Byte zerlegt. Es wird dabei fI2C = 400KHz

gesetzt. Es ergibt sich somit:

Adresse Lokalbusadresse Wert

0xC0000000 0x102000 0x0000001B

0xC0000004 0x102004 0x00000000

0xC0000008 0x102008 0x00000080

Durch den Schreibvorgang an Adresse 0xC0000008 wird der Core aktiviert. Es ist wichtig,

dass Anderungen am Prescaler nur im deaktivierten Zustand durchgefuhrt werden.

Parametrisierung des Systems

Die in letzen Kapitel beschriebene Initialisierung ist nur einmal nach einem Reset er-

forderlich. Weiterhin muss das System bei einem Auflosungswechsel neu parametrisiert

werden. Dieses heisst vor allem, dass die Register des PLL und DVI-Chips neu gesetzt,

und die Register des VGA-Cores geandert werden mussen. Zunachst wird der Ablauf

eines I2C-Schreibzugriffs kurz allgemein dargestellt:

Schritt Aktion Adresse

1 Schreibe I2C-Adresse-Gerateadresse (write) 0xC000000C

2 Setze Write-Bit und Start-Bit 0xC0000010

3 Warte auf TIP-Bit 0xC0000010

4 Lese ACK-Bit 0xC0000010

5 Schreibe I2C-Registeradresse 0xC000000C

6 Setze Write-Bit 0xC0000010

7 Warte auf TIP-Bit 0xC0000010

8 Lese ACK-Bit 0xC0000010

9 Schreibe Datum 0xC000000C

10 Setze Write-Bit und Stop-Bit 0xC0000010

11 Warte auf TIP-Bit 0xC0000010

12 Lese ACK-Bit 0xC0000010

Der Zugriff erfolgt also sequenziell, wobei das TIP-Bit wahrend eines Transfers standig

gelesen werden muss, um das Ende zu erkennen (Polling). Fur weitergehende Informa-

tionen sei auf die entsprechende Dokumention des I2C-Cores oder der betroffenen ICs

Page 20: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

4.2. Anwendungsbeispiele 17

verwiesen. Zur Vollstandigkeit wird nun noch ein I2C-Lesezugriff vorgestellt. Der Ablauf

unterscheidet sich vor allem dadurch vom Schreibzugriff, dass eine Restart-Condition

erforderlich wird:

Schritt Aktion Adresse

1 Schreibe I2C-Adresse-Gerateadresse (write) 0xC000000C

2 Setze Write-Bit und Start-Bit 0xC0000010

3 Warte auf TIP-Bit 0xC0000010

4 Lese ACK-Bit 0xC0000010

5 Schreibe I2C-Registeradresse 0xC000000C

6 Setze Write-Bit 0xC0000010

7 Warte auf TIP-Bit 0xC0000010

8 Lese ACK-Bit 0xC0000010

9 Schreibe I2C-Adresse-Gerateadresse (read) 0xC000000C

10 Setze Write-Bit und Start-Bit 0xC0000010

11 Warte auf TIP-Bit 0xC0000010

12 Lese ACK-Bit 0xC0000010

13 Setze Read-Bit und Stop-Bit und Ack-Bit 0xC0000010

14 Warte auf TIP-Bit 0xC0000010

15 Lese Datum 0xC0000010

Den zur Programmierung des PLL-Chips erforderlichen Bitstream kann man am einfachs-

ten mit der CyClocksRT-Software erzeugen, wobei der Pixeltakt CLK DB vom zweiten

PLL erzeugt wird. Da die einzelnen Werte zur Konfiguration in verschiedenen Registern

liegen und somit nur sequentiell aktualisiert werden konnen, ist es erforderlich, zunachst

alle Register zu schreiben und dann das entsprechende Enable-Bit des PLLs zu setzen

(siehe Datenblatt des CY22395). Vor einer Rekonfiguration ist ebenfalls das Deaktiviern

des zweiten PLLs erforderlich. In der folgenden Tabelle sind alle Bytes dargestellt, die

zur Rekonfiguration erforderlich sind; Die I2C-Adresse ist dabei 0xD2:

Sub-Adresse Wert Kommentar

0x13 0x24 PLL2 deaktivieren

0x0A 0x0A Divider setzen

0x0B 0x00 Divider setzen

0x0E 0x06 Phase einstellen

0x0F 0x50 Treiberstarke einstellen

0x10 0x57 Treiberstarke einstellen

0x11 0x02 PLL2 Q setzen

0x12 0x23 PLL2 P setzen

0x13 0x64 PLL2 aktivieren

Weiterhin ist es erforderlich, den DVI-Transceiver zu aktivieren. Hier reicht das Schreiben

eines einzelnen Bytes (siehe Datenblatt TFP410); Die I2C-Adresse ist hierbei 0x70:

Page 21: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

4.2. Anwendungsbeispiele 18

Sub-Adresse Wert Kommentar

0x13 0x24 PLL2 deaktivieren

Nachdem die Bildinformation in den SDRAM geschrieben worden ist (bei 640x480x24

ergibt sich eine Datensatzgroße von 900 KB, ein Wechsel der Page ist somit nicht erfor-

derlich), kann der VGA-Core parameterisiert und aktiviert werden. Die dazu notwendigen

Parameter konnen direkt aus Tabellen A.1 und A.2 entnommen werden. Damit ergeben

sich die folgenden Werte:

Adresse Lokalbusadr. Wert Kommentar

0x80000000 0x100000 0x00000580 Kontrollregister setzen

0x80000008 0x100008 0x5F2F027F horizontales Timing

0x8000000C 0x10000C 0x011E01DF vertikales Timing

0x80000010 0x100010 0x031F020B gesamte Langen

0x80000000 0x100000 0x00000581 VGA-Core aktivieren

Nach dem Setzen des letzten Wertes fangt das System an, die Bildinformationen, begin-

nend mit Adresse 0x00000000 einzulesen und auszugeben. Fur weitere Fahigkeiten des

System sei auf die entsprechende Dokumentation verwiesen, da dieses Beispiel, wie oben

bereits angemerkt, nur zur Erlauterung der Zusammenhange dienen kann.

Page 22: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

5. Hardware und Software

5.1 DVI Adapter Modul

Das in diesem Projekt entwickelte DVI Adapter Modul besteht im Wesentlichen aus den

Komponenten

TFP410 DVI Transceiver

CYP22395 PLL Programmable Clock Generator

256Kbit I2C EEPROM (FM24C256)

Eine Darstellung der ersten Version der Platine ist in Abbildung 5.1 gegeben.

Abbildung 5.1: Platine DB-VGA

19

Page 23: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

5.2. Software VGA Control v1.0 20

Zur Ausgabe des vom FPGA erzeugten Datenstroms wird ein DVI-Transceiver eingesetzt.

Diser erzeugt ein DVI-konformes, serielles, differentielles Signal, welches von gangigen

TFT-Monitoren angezeigt werden kann.

Die DVI-Buchse ist nur als digitaler Kanal zu nutzen, der analoge Kanal entfallt. Fur

die Erzeugung einer variablen Pixel-Clock, die vom VGA-Core benotigt wird, wird ein

Programmable Clock Generator des Herstellers Cypress (CY22395) benutzt. Der Clock-

Generator erzeugt mit Hilfe von PLLs aus einer Referenzfrequenz eine beliebige andere

Frequenz. Zusatzlich wurde ein 256 kBit-EEPROM vorgesehen, um verschiedene Konfi-

gurationen der Kpmponenten des VGA-Systems abspeichern zu konnen.

Alle Einheiten konnen uber einen I2C-Bus konfiguriert werden. Auf dem Layout wurde

fur jedes Device ein separater I2C-Bus vorgesehen.

Die erste Version der Platine wird links neben dem FPGA Modul aufgesetzt. Sie selbst

kann nicht uber Broadcast oder Lokalbus angesprochen werden.

Uber den Jumper JP1 wird die Referenzspannung fur den Eingangspegel der Daten- und

Clock-Eingange des TFP410 festgelegt. Diese kann wahlweise fest auf 3.3V (Stellung A)

oder auf den Ausgangspegel des FPGAs (Stellung B) gelegt werden.

5.2 Software VGA Control v1.0

Die zum Betrieb des VGA-Systems benotigte Software ist an einem Beispiel in Abbildung

5.2 gezeigt. Dargestellt ist eine Registerkarte zur Auswahl und Definition verschiedener

Hardware-Cursor, welche vom VGA-Core unterstutzt werden.

Die Software bietet auf den einzelnen Registerkarten folgende Funktionen:

Tools

BIT File Download, RESET.

Register View

Im Register-Tab werden alle relevanten und definierbare 32 Bit-Register angezeigt und

konnen manuell aktualisiert werden.

Video Settings

Hier konnen die Details fur den VGA-Core eingestellt werden. Es ist moglich, Presets zu

laden und zu speichern. Zusatzlich konnen hier die Zeiger auf die Color-Lookup-Tables

und die Videobuffer verandert werden, um beispielsweise Doublebuffering zu realisieren.

Picture Load

Auf dem Picture Load-Tab kann man BMP-Dateien an wahlbare Positionen im FPGA-

Modul RAM schreiben.

Hardware Cursor

Hier konnen die beiden vom VGA-Core unterstutzten Hardware-Cursor geladen, konfi-

guriert und getestet werden.

Page 24: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

5.2. Software VGA Control v1.0 21

Abbildung 5.2: Screenshot der Steuersoftware fur das VGA-System

Demo

Auf dem Demo-Tab stehen einige fertige Prasentations-Modi zur Verfugung.

Slideshow

Hier konnen Slideshows zusammengestellt werden. Die Bilder werden auf die gewahlte

Auflosung skaliert und anschliessend anzeigt.

Leider konnte die Funktionalitat der Software aufgrund der fehlenden Hardware noch

nicht endgultig getestet werden. Aus diesem Grund sind die Funktionen Picture Load

und Slideshow noch nicht fertiggestellt. In der beigefugten Version der Software sind die

Funktionen zur Ansteuerung des RAPTOR2000 Boards entfernt.

Page 25: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

6. Zusammenfassung

Ziel der Projektarbeit war die Entwicklung eines Daughterboards fur Grafikausgabe auf

dem RAPTOR2000 System. Zur Entwicklung konnte auf bereits bestehende Module von

OpenCores zuruckgegriffen werden. Im Rahmen dieser Arbeit wurde zunachst spezifiziert,

welche Grafikmodi das Gesamtsystem, bestehend aus DB-VS und einer Zusatzplatine

(DB-VGA), unterstutzen soll. Diese Spezifikation hat wesentlichen Einfluss auf die Ge-

schwindigkeit, die interne Bussysteme erreichen mussen sowie die Auswahl der verwende-

ten Chips. Anschliessend wurde das Projekt in die Arbeitsbereiche VHDL-Entwicklung,

Softwareentwicklung und PCB Design aufgeteilt. Im Rahmen der VHDL-Entwicklung

wurden eine Localbus-Wishbone Bridge, Bus- und Arbitrierungsstrukturen sowie ein auf

lineare Speicherzugriffe optimierter SDRAM-Controller entwickelt. Zusatzlich mussten

an den OpenCores-Modulen einige Veranderungen vorgenommen werden, da sie nicht

direkt auf die Architektur des eingesetzten FPGA abgebildet werden konnten. Als Er-

gebnis des PCB Design ist eine zusatzliche Platine enstanden, die auf einen freien Steck-

platz neben einer FPGA Platine des RAPTOR2000-Boards aufgesteckt werden muss. Die

zusatzliche Platine enthalt neben der Hardware zur Ansteuerung eines Bildschirms mit

DVI-Anschluss auch den fur unterschiedliche Bildschirmauflosungen notwendigen pro-

grammierbaren Clock-Chip sowie ein EEPROM, in dem verschiedene Konfigurationen

des Daughterboards abgelegt werden konnen. Alle programmierbaren Chips des Daugh-

terboards sind uber einen I2C-Bus an die FPGA-Platine, die den eigentlichen VGA-Core

enthalt, angebunden. Die parallel entstandene Software wurde bereits in dieser ersten

Version mit grafischer Benutzeroberflache ausgelegt. Sie erlaubt die Konfiguration und

den Betrieb des VGA-Systems uber die Lokalbusschnittstelle des RAPTOR2000-Boards.

In dieser Version wird auch das Konfigurations-Management allein uber die Software

realisiert. In der nachsten Stufe der Projektarbeit soll zunaechst das vorhandene Design

in Betrieb genommen werden, was aufgrund eines Fertigungsfehlers im Modul DB-VGA

bis jetzt noch nicht moglich war. Weiterhin soll ein Xilinx MicroBlaze-Prozessor auf das

FPGA implementiert werden, mit welchem, neben der Funktion als Konfigurationsmana-

ger, dann auch die Funktion der I2C-Bridge vollstandig realisiert wird und auch andere

Aufgaben, wie z.B. der Verwaltung eines bisher vom VGA-Core nicht unterstutzten Text-

modus implementiert werden konnen. Weiteres Ziel der nachsten Projektgruppe ist ein

komplettes Redesign des eingesetzen VGA-Core zur Steigerung der Performanz, wobei in

diesem Schritt das gesamte Design VHDL erfolgen soll und auch der oben schon erwahn-

te Textmodus in das Design integiert wird. Die vorhandenen Bussysteme werden dabei

durch leistungsfahigere, an die jeweilige Aufgabe angepasste Bussysteme ersetzt.

22

Page 26: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

A. Anhang

A.1 Tabellen

Sync/ Back Active Front

Name TypRefresh

Pol Porch Time PorchGesamt

[Hz] [lines] [lines] [lines] [lines] [lines]

EGA 640x350x70 70 2/neg 60 350 37 449

VGA 640x400x70 70 2/pos 35 400 12 449

VGA 640x480x60 60 2/neg 31 480 11 524

VGA 640x480x72 72 3/neg 28 480 9 520

VESA 640x480x75 75 2/neg 32 480 11 525

VESA 640x480x85 85 3/neg 25 480 1 509

VGA 720x350x70 70 2/neg 59 350 38 449

VGA 720x400x70 70 2/neg 34 400 13 449

SVGA 800x600x56 56 4/neg 14 600 1 619

VESA 800x600x60 60 4/pos 23 600 1 628

VESA 800x600x72 72 6/pos 23 600 37 666

VESA 800x600x75 75 2/pos 21 600 1 624

VESA 800x600x85 85 3/pos 27 600 1 631

VESA 1024x768x60 60 6/neg 29 768 3 806

VESA 1024x768x70 70 6/neg 29 768 3 806

VESA 1024x768x75 75 3/pos 28 768 1 800

VESA 1024x768x85 85 3/pos 36 768 1 808

VESA 1152x864x75 75 3/pos 32 864 1 900

VESA 1152x864x85 85 3/pos 43 864 1 911

VESA 1152x882x70 70 3/pos 44 882 1 930

VESA 1152x882x85 85 3/pos 39 882 1 925

VESA 1280x1024x60 60 3/pos 38 1024 1 1066

VESA 1280x1024x75 75 3/pos 38 1024 1 1066

VESA 1280x1024x85 85 3/pos 44 1024 1 1072

VESA 1600x1200x60 60 3/pos 46 1200 1 1250

VESA 1600x1200x70 70 3/pos 46 1200 1 1250

VESA 1600x1200x75 75 3/pos 46 1200 1 1250

VESA 1600x1200x80 80 3/pos 46 1200 1 1250

VESA 1600x1200x85 85 3/pos 46 1200 1 1250

Tabelle A.1: Zusammenstellung ausgewahlter Timinginformationen des verti-

kalen Bildaufbaus

23

Page 27: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

A.1. Tabellen 24

Sync/ Back Active Front

Name TypP-Clock

Pol Porch Time PorchGesamt

[MHz] [pixel] [pixel] [pixel] [pixel] [pixel]

EGA 640x350x70 25.175 96/neg 48 640 16 800

VGA 640x400x70 25.175 96/neg 48 640 16 800

VGA 640x480x60 25.175 96/neg 48 640 16 800

VGA 640x480x72 31.5 40/neg 128 640 24 832

VESA 640x480x75 31.5 96/neg 48 640 16 800

VESA 640x480x85 36 48/neg 112 640 32 832

VGA 720x350x70 28.322 108/neg 54 720 18 900

VGA 720x400x70 28.322 108/neg 54 720 18 900

SVGA 800x600x56 38.1 128/neg 128 800 32 1088

VESA 800x600x60 40 128/pos 88 800 40 1056

VESA 800x600x72 50 120/pos 64 800 56 1040

VESA 800x600x75 49.5 80/pos 160 800 16 1056

VESA 800x600x85 56.25 64/pos 152 800 32 1048

VESA 1024x768x60 65 136/neg 160 1024 24 1344

VESA 1024x768x70 75 136/neg 144 1024 24 1328

VESA 1024x768x75 78.75 96/pos 176 1024 16 1312

VESA 1024x768x85 94.5 96/pos 208 1024 48 1376

VESA 1152x864x75 108 128/pos 256 1152 64 1600

VESA 1152x864x85 128.94 224/pos 224 1152 64 1664

VESA 1152x882x70 94.5 96/pos 200 1152 32 1480

VESA 1152x882x85 121.5 128/pos 232 1152 64 1576

VESA 1280x1024x60 108 112/pos 248 1280 48 1688

VESA 1280x1024x75 135 144/pos 248 1280 16 1688

VESA 1280x1024x85 157.5 160/pos 240 1280 48 1728

VESA 1600x1200x60 162 192/pos 304 1600 64 2160

VESA 1600x1200x70 189 192/pos 304 1600 64 2160

VESA 1600x1200x75 202.5 192/pos 304 1600 64 2160

VESA 1600x1200x80 216 192/pos 304 1600 64 2160

VESA 1600x1200x85 229.5 192/pos 304 1600 64 2160

Tabelle A.2: Zusammenstellung ausgewahlter Timinginformationen des hori-

zontalen Bildaufbaus

Page 28: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

A.1. Tabellen 25

Name Bauteil Bauform Lieferant

U1 TFP410

U2 IC Sockel DIP-8

U3 CY22935

C1 47 µF Elko MILF.B

C2 47 µF Elko MILF.B

C3 47 µF Elko MILF.B

C4 47 µF Elko MILF.B

C5 100 nF 0603

C6 100 nF 0603

C7 100 nF 0603

C8 100 nF 0603

C9 100 nF 0603

C10 100 nF 0603

C11 100 nF 0603

C12 100 nF 0603

C13 100 nF 0603

C14 100 nF 0603

CON1 SMA Connector 112-3794 RS-Components

CON2 SMA Connector 112-3794 RS-Components

DVI CON Molex 9014J

JP1 3 polige Stiftleiste

L1 Ferrit 300 Ω bei 100 MHz 0805 RK 300 V

L2 Ferrit 300 Ω bei 100 MHz 0805 RK 300 V

L3 Ferrit 300 Ω bei 100 MHz 0805 RK 300 V

L4 Ferrit 300 Ω bei 100 MHz 0805 RK 300 V

L5 Ferrit 300 Ω bei 100 MHz 0805 RK 300 V

P1 Mictor 228 Steckerleiste

P2 Mictor 228 Steckerleiste

Q1 QuarzSockel DIP-8

R1 Pullup 10 kΩ 0603

R2 Pullup 10 kΩ 0603

R3 Pullup 10 kΩ 0603

R4 Pullup 10 kΩ 0603

R5 Pullup 10 kΩ 0603

R6 Pullup 10 kΩ 0603

Tabelle A.3: Bestuckungsliste

Page 29: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

A.1. Tabellen 26

Name Bauteil Bauform Lieferant

R7 47 Ω 0603

R8 47 Ω 0603

R9 47 Ω 0603

R10 Referenz 510 Ω 0603

R11 Pullup 10 kΩ 0603

R12 Pullup 10 kΩ 0603

R13 Pulldown 10 kΩ 0603

R14 Pulldown 10 kΩ 0603

R15 Pulldown 10 kΩ 0603

R16 Pulldown 10 kΩ 0603

R17 wahlweise Bestuckung (< 47 Ω) 0603

R18 wahlweise Bestuckung (< 47 Ω) 0603

R19 wahlweise Bestuckung (< 47 Ω) 0603

R20 wahlweise Bestuckung (< 47 Ω) 0603

R21 wahlweise Bestuckung (< 47 Ω) 0603

R22 wahlweise Bestuckung (< 47 Ω) 0603

R23 wahlweise Bestuckung (< 47 Ω) 0603

R24 wahlweise Bestuckung (< 47 Ω) 0603

S1 SWITCH DIP 4

Tabelle A.4: Bestuckungsliste

Page 30: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

A.2. Schematic 27

A.2 Schematic

1

1

2

2

3

3

4

4

L L

K K

J J

I I

H H

G G

F F

E E

D D

C C

B B

A A

D1

D2

D3

D4

D5

D6

D7

D8

D9

D10

D11

D12

D13

D14

D15

D16

D17

D18

D19

D20

D21

D22

D23

D24

D25

D26

D27

D28

D29

D30

D31

D32

D33

D34

D35

D36

D37

D38

D39

D40

D41

D42

D43

D44

D45

D46

D47

D48

D49

D50

D51

D52

D53

D54

D55

D56

D57

D58

D59

D60

D61

D62

D63

D64

D65

D66

D67

D68

D69

D70

D71

D72

D73

D74

D75

D76

D77

D78

D79

D80

D81

D82

D83

D84

D85

D86

D87

D88

D89

D90

D91

D92

D93

D94

D95

D96

D97

D98

D99

D100

D101

D102

D103

D104

D105

D106

D107

D108

D109

D110

D111

D112

D113

D114 D 115D 116D 117D 118D 119D 120D 121D 122D 123D 124D 125D 126D 127D 128D 129D 130D 131D 132D 133

D 134D 135D 136D 137D 138D 139D 140D 141D 142D 143D 144D 145D 146D 147D 148D 149D 150D 151D 152

D 153D 154D 155D 156D 157D 158D 159D 160D 161D 162D 163D 164D 165D 166D 167D 168D 169D 170D 171

MIC

TO

R 2

28A

BD

E

D 172D 173D 174D 175D 176D 177D 178D 179D 180D 181D 182D 183D 184D 185D 186D 187D 188D 189D 190

D 209

D 191D 192D 193D 194D 195D 196D 197D 198D 199D 200D 201D 202D 203D 204D 205D 206D 207D 208

D 227D 228

D 210D 211D 212D 213D 214D 215D 216D 217D 218D 219D 220D 221D 222D 223D 224D 225D 226

FC

P1

D1

D2

D3

D4

D5

D6

D7

D8

D9

D10

D11

D12

D13

D14

D15

D16

D17

D18

D19

D20

D21

D22

D23

D24

D25

D26

D27

D28

D29

D30

D31

D32

D33

D34

D35

D36

D37

D38

D39

D40

D41

D42

D43

D44

D45

D46

D47

D48

D49

D50

D51

D52

D53

D54

D55

D56

D57

D58

D59

D60

D61

D62

D63

D64

D65

D66

D67

D68

D69

D70

D71

D72

D73

D74

D75

D76

D77

D78

D79

D80

D81

D82

D83

D84

D85

D86

D87

D88

D89

D90

D91

D92

D93

D94

D95

D96

D97

D98

D99

D100

D101

D102

D103

D104

D105

D106

D107

D108

D109

D110

D111

D112

D113

D114 D 115D 116D 117D 118D 119D 120D 121D 122D 123D 124D 125D 126D 127D 128D 129D 130D 131D 132D 133

D 134D 135D 136D 137D 138D 139D 140D 141D 142D 143D 144D 145D 146D 147D 148D 149D 150D 151D 152

D 153D 154D 155D 156D 157D 158D 159D 160D 161D 162D 163D 164D 165D 166D 167D 168D 169D 170D 171

MIC

TO

R 2

28A

BD

E

D 172D 173D 174D 175D 176D 177D 178D 179D 180D 181D 182D 183D 184D 185D 186D 187D 188D 189D 190

D 209

D 191D 192D 193D 194D 195D 196D 197D 198D 199D 200D 201D 202D 203D 204D 205D 206D 207D 208

D 227D 228

D 210D 211D 212D 213D 214D 215D 216D 217D 218D 219D 220D 221D 222D 223D 224D 225D 226

FC

P2

MOD1REQ1MOD1GNT1

MOD1CS1#

ADS#W/R#

LCLK13

LRESET#

READY#

LINT#

BLAST#

MOD1EOT#

D0D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15D16D17D18

D19D20D21D22D23D24D25D26D27

A2A3A4A5A6A7A8A9A10A11A12A13A14A15A16A17A18A19A20

A21A22A23A24A25A26A27A28A29A30A31

WAIT#

BUSY#WRITECONF_CS

MOD1DREQ0#DACK0#

BE0#BE1#BE2#BE3#

LCLK23

MOD1CONFLED

BROAD61BROAD62BROAD63BROAD64BROAD65BROAD66BROAD67BROAD68BROAD69

BROAD70BROAD71BROAD72BROAD73BROAD74

D28D29D30D31

CTRL2MOD1_0CTRL2MOD1_1CTRL2MOD1_2CTRL2MOD1_3

BROADSRAMCS#SA0/BROAD0SA1/BROAD1SA2/BROAD2SA3/BROAD3SA4/BROAD4SA5/BROAD5SA6/BROAD6SA7/BROAD7SA8/BROAD8SA9/BROAD9SA10/BROAD10SA11/BROAD11SA12/BROAD12SA13/BROAD13SA14/BROAD14

SA15/BROAD15SA16/BROAD16SD0/BROAD17SD1/BROAD18SD2/BROAD19SD3/BROAD20SD4/BROAD21SD5/BROAD22SD6/BROAD23SD7/BROAD24SD8/BROAD25SD9/BROAD26SD10/BROAD27SD11/BROAD28SD12/BROAD29SD13/BROAD30SD14/BROAD31SD15/BROAD32SD16/BROAD33

SD17/BROAD34SD18/BROAD35SD19/BROAD36SD20/BROAD37SD21/BROAD38

SD22/BROAD39SD23/BROAD40SD24/BROAD41SD25/BROAD42SD26/BROAD43SD27/BROAD44SD28/BROAD45SD29/BROAD46SD30/BROAD47SD31/BROAD48SD32/BROAD49SD33/BROAD50

SD34/BROAD51SD35/BROAD52SBE0#/BROAD53SBE1#/BROAD54SBE2#/BROAD55SBE3#/BROAD56SCLK/BROAD57SADS#/BROAD58SR/W#/BRAOD59CNTEN#/BROAD60

MOD1BREQ#

TDOTDI

TCKTMS

INITCCLKDONE

CONF_D0/DIN

PROGRAM

LEFT_0LEFT_1LEFT_2LEFT_3LEFT_4LEFT_5LEFT_6LEFT_7LEFT_8LEFT_9LEFT_10LEFT_11LEFT_12LEFT_13LEFT_14LEFT_15LEFT_16LEFT_17LEFT_18

LEFT_19LEFT_20LEFT_21LEFT_22LEFT_23LEFT_24LEFT_25LEFT_26LEFT_27LEFT_28LEFT_29LEFT_30LEFT_31LEFT_32LEFT_33LEFT_34LEFT_35LEFT_36LEFT_37

LEFT_38LEFT_39LEFT_40LEFT_41LEFT_42LEFT_43LEFT_44LEFT_45LEFT_46LEFT_47LEFT_48LEFT_49LEFT_50LEFT_51LEFT_52LEFT_53LEFT_54LEFT_55LEFT_56

LEFT_57LEFT_58LEFT_59LEFT_60LEFT_61LEFT_62LEFT_63LEFT_64LEFT_65LEFT_66LEFT_67LEFT_68LEFT_69LEFT_70LEFT_71LEFT_72LEFT_73LEFT_74LEFT_75

LEFT_76LEFT_77LEFT_78LEFT_79LEFT_80LEFT_81LEFT_82LEFT_83LEFT_84LEFT_85LEFT_86LEFT_87LEFT_88LEFT_89LEFT_90LEFT_91LEFT_92LEFT_93LEFT_94

LEFT_95LEFT_96LEFT_97LEFT_98LEFT_99

Right_0Right_1Right_2Right_3Right_4Right_5Right_6Right_7Right_8Right_9Right_10Right_11Right_12Right_13Right_14Right_15Right_16Right_17Right_18

Right_19Right_20Right_21Right_22Right_23Right_24Right_25Right_26

Right_28Right_29Right_30Right_31Right_32Right_33Right_34Right_35Right_36Right_37

Right_38Right_39Right_40Right_41Right_42Right_43Right_44Right_45Right_46Right_47Right_48Right_49Right_50Right_51Right_52Right_53Right_54Right_55Right_56

Right_57Right_58Right_59Right_60Right_61Right_62Right_63Right_64Right_65Right_66Right_67Right_68Right_69Right_70Right_71Right_72Right_73Right_74Right_75

Right_76Right_77Right_78Right_79Right_80Right_81Right_82Right_83Right_84Right_85Right_86Right_87Right_88Right_89Right_90Right_91Right_92Right_93Right_94

Right_95Right_96Right_97Right_98Right_99

Left Plug Right Plug

M0M1M2

CONF_D1CONF_D2CONF_D3CONF_D4CONF_D5CONF_D6CONF_D7

+3,3V

Right_27

Sideconnector Shematics

Abbildung A.1: Schematic: Sideconnectoren

Page 31: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

A.2. Schematic 28

D D

C C

B B

A A

211

Pow

er

CY2293x

U3B

3 14

APo

wer

CY2293x

U3C

Po

wer

4 8

FM24C256

U2B

TP

ower

26 29

TFP410

U1B

DP

ower

3348

TFP410

U1C

PP

ower

17 18

TFP410

U1D

+3,3VGND

100n

C7

100n

C12

100n

C5

100n

C11

100n

C10

TV

DD

DV

DD

PVD

DC

YV

DD

100n

C6

100n

C9100n

C8

47uF

C2

47uF

C3

47uF

C1

47uF

C4

L5

L2

L3

L4

100n

C14

CAP

C13

L14 8

QUARZOSZI

Q1B

Powersupply

Abbildung A.2: Schematic: Powersupply

Page 32: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

A.2. Schematic 29

Right_27

DATA 2- 1

DATA 2+2

DATA 2/4 shield3

DATA 4- 4

DATA 4+ 5

DDC CLOCK6

DDC DATA7

VSync8

DATA 1-9

DATA 1+ 10

DATA 1/3 shield11

DATA 3-12

DATA 3+13

+5 V14GND

15

HPD 16

DATA 0-17

DATA 0+18

DATA 0/5 shield19

DATA 5-20

DATA 5+21

CLOCK shield22

CLOCK+ 23CLOCK- 24

an. REDC1

an. GREENC2

an. BLUEC3

HSyncC4

an. GNDC5

DVI_CON

CLK_C1

XTALOUT5

XTALIN4

XBUF6

CLK_D 7

CLK_B9

CLK_E 8

CLK_A10

SDAT12

SCLK13

S215

OE 16CY2239x

U3A

A01

A1 2

A2 3

SDA5

SCL6

WP7

FM24C256

U2A

DE2

VREF3

HSYNC4

VSYNC5

CTL3/A3/DK36

CTL2/A2/DK27

CTL1/A1/DK18

EDGE/HTPLG9

PD10

MSEN/PO111

ISEL/!RST13

DSEL/SDA14

BSEL/SCL15

TFADJ19

TXC-21

TXC+22

TX0-24

TX0+25

TX1-27

TX1+28

TX2-30

TX2+31

DKEN35

DATA2336DATA2237DATA2138

DATA20 39DATA19 40DATA18

41DATA1742DATA1643

DATA15 44DATA14 45DATA13

46DATA1247DATA1150

DATA10 51DATA9 52DATA8

53DATA754DATA655

IDCK-56

IDCK+57

DATA5 58DATA4 59DATA3

60DATA261DATA162

DATA0 63

TFP410

U1A

10K

R4

10K

R5

+3,3V

47

R7

47

R847

R9

510

R10

CLKA

CLKB

+3,3V

GND

+5V

321

JUMPER3

JP1

R12

R11+3,3V

10K

R1

10K

R2

5

QUARZOSZI

Q1A

GND

10K

R3

10K

R6

+3,3V

Right_84

Rig

ht_

82R

ight

_83

Right_86R17

R18

R19

R20

R21

R22

R23

R24

Right_87Right_88Right_89Right_90

Rig

ht_

91

Rig

ht_

92

Right_39

Right_40

Right_41

Right_42

Right_39

Right_40

Right_41

Right_42

CYVDD

Right_36

Right_25

Right_29Right_31Right_33Right_35Right_37

Right_44Right_45Right_46Right_48Right_50

Right_52Right_54Right_56Right_57Right_59

Right_61Right_63Right_65Right_67Right_69

Right_71Right_73

Righ

t_75

Rig

ht_

76

Rig

ht_

77

Right_79

Right_0Right_2Right_4Right_6Right_8

Right_10

Right_12Right_14Right_16

Right_18Right_19

Right_21

Right_23

1234

8765

SW DIP-4

S1

+3,3VR13

R14

R15

R16

GND

GND

GND

GND

CTR

L2M

OD

1_0

CTR

L2M

OD

1_1

CTR

L2M

OD

1_2

CTR

L2M

OD

1_3

Components

R17 - R24 Brückenwiderstände

Abbildung A.3: Schematic: Komponenten

Page 33: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

Abbildungsverzeichnis

1.1 Schematische Darstellung des Gesamtsystems . . . . . . . . . . . . . . . 1

1.2 Schematische Darstellung des VGA-Cores . . . . . . . . . . . . . . . . . . 2

2.1 Bridge Lokalbus Slave auf Wishbone Master . . . . . . . . . . . . . . . . 4

2.2 Schematische Darstellung der SDRAM-Schnittstelle . . . . . . . . . . . . 5

2.3 Schematische Darstellung des VGA-Cores . . . . . . . . . . . . . . . . . . 8

2.4 Darstellung der Wishbone-Interconnectmatrix . . . . . . . . . . . . . . . 9

5.1 Platine DB-VGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.2 Screenshot der Steuersoftware fur das VGA-System . . . . . . . . . . . . 21

A.1 Schematic: Sideconnectoren . . . . . . . . . . . . . . . . . . . . . . . . . 27

A.2 Schematic: Powersupply . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

A.3 Schematic: Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

30

Page 34: VGA Grafik mit RAPTOR2000 - uni-paderborn.de

Tabellenverzeichnis

3.1 Vergleich der Synthesetools . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.1 Taktsignale des Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2 32 Bit-Adressbereich des Systems . . . . . . . . . . . . . . . . . . . . . . 13

4.3 Adressbereich des Lokalbus . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.4 I2C-Slaveadressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.5 Parameter fur Initialisierung des SDRAM . . . . . . . . . . . . . . . . . . 15

A.1 Timinginformationen des vertikalen Bildaufbaus . . . . . . . . . . . . . . 23

A.2 Timinginformationen des horizontalen Bildaufbaus . . . . . . . . . . . . . 24

A.3 Bestuckungsliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

A.4 Bestuckungsliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

31