Forum: FPGA, VHDL & Co. Nanoboard3000 (Xilinx) und VGA32 Controller


von Markus H. (dasrotemopped)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich versuche derzeit vergeblich, unter Altium einen TSK3000 Softcore mit 
einem VGA32 Controller zum Laufen zu bringen. Ich habe das FPGA Design 
auf meinem Nanoboard3000 implementiert, testhalber aber auch auf dem 
EvalBoard EB2. Der Softcore läuft einwandfrei ( kann die LEDs auf dem 
Board über einen Port ansprechen), allerdings macht der VGA32 Controller 
nichts. Habe die Registerwerte mehrmals geprüft, kann aber keinen Grund 
finden, warum der VGA Port ohne Funktion bleibt. Hat hier jemand einen 
heissen Tip für mich ? Ich habe die Projektdatei mit angehängt ...

Gruß,

dasrotemopped.

von Duke Scarring (Gast)


Lesenswert?

Kannst Du mal ein Bild (png/pdf) vom Schaltplan hier veröffentlichen?
Wie sieht das Timing auf den SYNC-Leitungen aus?

Duke

von Markus H. (dasrotemopped)


Angehängte Dateien:

Lesenswert?

Hallo Duke,

gerne, aber der Schaltplan ist aus fertigen Bibliotheksbauteilen 
aufgebaut. Timings und so kann man daraus nicht ersehen. Ich habe an der 
VGA Buchse mit dem Oszilloskop nachgemessen, an allen Ausgängen kommt 
nichts raus ( alles auf Low ).
Ein aus Logikgattern aufgebauter VGA Controller (wesendlich simpler als 
das Bibliotheksteil ) funktioniert, auch auf meinem 2. FPGA Board, darum 
schliesse ich einen Hardwaredefekt aus.

Gruß,

dasrotemopped.

von Duke Scarring (Gast)


Lesenswert?

Markus Horbach schrieb:
> Timings und so kann man daraus nicht ersehen.
Ja, aber den prinizpiellen Aufbau.

Welche VGA-Auflösung machte denn das WB_VGA Ding?
Hast Du ein Datenblatt davon?
Die Taktverteilung ist mir in Deinem Design noch etwas schleierhaft.
Gibt es ein Beispieldesign von Altium, welches den WB_VGA verwendet?

> Ich habe an der
> VGA Buchse mit dem Oszilloskop nachgemessen, an allen Ausgängen kommt
> nichts raus ( alles auf Low ).
Hast Du einen integrierten (=im FPGA) Logikanalysator dazu?
Damit könntest Du gucken, ob WB_VGA versucht aus dem Speicher Daten zu 
holen.

Duke

von Markus H. (dasrotemopped)


Lesenswert?

Ich habe das Design nach den Tutorials von Altium aufgebaut :
TU0128 Implementing a 32-bit Processor-based Design in an FPGA.pdf
CR0169 VGA32 - 32-bit VGA Controller.PDF
Gibts auf der Altium Homepage zum Download, Google findet die PDFs 
sofort.
Der VGA Controller kann 640x480 und 800x600, ich bin der Meinung, das 
ich ihn auf 640x480 konfiguriert habe.
Auf dem Board ist eine 50MHz Clock drauf, der speist die CPU und den VGA 
Controller. Die CPU läuft mit 50MHz, der VGA Controller hat interne 
Teiler passend zum VGA Timing.

> Hast Du einen integrierten (=im FPGA) Logikanalysator dazu?
Es gibt in Altium "virtuelle Instrumente" dazu, habe aber noch keine 
Ahnung, wie ich die konfigurieren muss. Kann nicht behaupten, das ich 
schon alle Features von Altium beherrsche.

Gruß,

dasrotemopped.

von Duke Scarring (Gast)


Angehängte Dateien:

Lesenswert?

Markus Horbach schrieb:
> Der VGA Controller kann 640x480 und 800x600, ich bin der Meinung, das
> ich ihn auf 640x480 konfiguriert habe.
> Auf dem Board ist eine 50MHz Clock drauf, der speist die CPU und den VGA
> Controller. Die CPU läuft mit 50MHz, der VGA Controller hat interne
> Teiler passend zum VGA Timing.
Ok.
Die 640x480 brauchen 25 MHz Pixelclock und
die 800x600 arbeiten mit 50 MHz Pixelclock.
Deswegen habe ich gefragt, wo die herkommen.
Aber das steht ja auch alles in CR0169.

Markus Horbach schrieb:
> Es gibt in Altium "virtuelle Instrumente" dazu, habe aber noch keine
> Ahnung, wie ich die konfigurieren muss.
Versuch Dich da mal einzuarbeiten.
Interessant wäre, ob auf den Steuerleitungen WBM_... (im Bild rechts 
oben, bei Dir wm_...) was wackelt.
Die Signale kannst Du Dir zur Not auch zusätzlich auf einen Header legen 
und mit dem Oszi beobachten.


Die Software zur Ansteuerung hast Du aus CR0167?
Mußt Du da evtl. die Adressen anpassen?

Duke

von Markus H. (dasrotemopped)


Lesenswert?

> Mußt Du da evtl. die Adressen anpassen?

Die Header Datei für das C-Programm wird von der Embedded C Umgebung aus 
den Konfigurationsdaten des FPGA Designs erzeugt. Verschiebt man 
Speicher- oder Portadressen, wird das sofort in der Headerdatei 
aktualisiert, sehr komfortabel.
Der C-Code ist aus dem TU0128, nur die Definitionen der VGA Ports sind 
dazugekommen.

> Die Signale kannst Du Dir zur Not auch zusätzlich auf einen Header legen
> und mit dem Oszi beobachten.
Das kann ich mal ausprobieren, so bald ich wieder zu Hause am Rechner 
sitze.

Gruß,

dasrotemopped.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.