Forum: FPGA, VHDL & Co. FPGA Grundlagen XLINX


von Martin (Gast)


Lesenswert?

Hallo Leute!

Bis jetzt habe ich mich mit Mikrocontrollern beschäftigt. Jetzt
versuche ich mich in die FPGA-Welt einzuarbeiten mit VHDL.
Ich habe das V4FX12 Board mit dem XC4VFX12 FPGA.

Die erste Übung mit dem 4-Bit-Counter habe ich erfolgreich
abgeschlossen.
Als ich mich aber mit dem FPGA-Board über den Programm-Adapter
verbunden habe, fand dieser zwei Geräte:
XCF08P und
XC4VFX12

Das erste ist anscheinend ein Flash. In diesem befindet sich ein
Demoprogramm. Dieses gibt auf dem LCD-Display einen Text aus.
Jenes 4-Bit-Counter-Beispielprogramm, welches ich erstellt habe spielt
man in den XC4VFX12 und dort läuft es auch. Nur wenn ich das Board
abschalte und wieder einschalte ist das Programm wieder weg.
Warum?

Und wofür kann man ein Programm in den XCF08P spielen und mit welchem
Tool wird so eines erstellt?

Entschuldigt - Meine Fragen müssen sich für euch Profis echt dumm
anhören, nur das Problem ist, dass man die Hardware und Arbeitsweise
erst kennen lernen muss, ehe man in die ganze Tematik hineinwächst.

Danke im Voraus
Tschüss

Martin

von Xenu (Gast)


Lesenswert?

>Nur wenn ich das Board abschalte und wieder einschalte ist das Programm
>wieder weg. Warum?

Weil der Konfigurationsspeicher Deines FPGAs SRAM-basiert ist.

> Und wofür kann man ein Programm in den XCF08P spielen

Weil der Konfigurationsspeicher Deines FPGAs SRAM-basiert ist.

>und mit welchem Tool wird so eines erstellt?

Impact.

von TheMason (Gast)


Lesenswert?

Hallo Martin,

wie Xenu schon gesagt hat macht man das alles mit dem Impact Tool.
Du mußt zuerst ein PROM-File erstellen (dabei kann man die Option
Auto-Detect für das Flash angeben, ist sehr praktisch). Dieses
PROM-File (mit der endung UCS) wird dann mit dem Impact in das Flash
geschrieben. Dieses Programm bleibt dann auch nach dem Ausschalten
erhalten.
Du hast auch die Möglichkeit das BIT-File (die Grundlage für das
PROM-File) direkt in den FPGA zu spielen. Dann musst du allerdings noch
die Startbedingunen (hauptsächlich eine Clock-Einstellung) ändern. Dann
hast du aber das Problem das nach dem Aus und wieder Einschalten der
FPGA ganz normal vom Flash (also das zuletzt geladene Programm) bootet.
Macht dann sinn wenn du selbst "Herr des JTags" bist. (z.b. booten von
SD/MMC-Karte mittels eines weiteren kleinen FPGAs)

Gruß
TheMason

PS. Hoffe die Informationen sind vollständig. Hab selbst auch nur
mäßige Erfahrung da Hobby-FPGA-Tüddler *gg

von Martin (Gast)


Lesenswert?

Hallo

Ich danke euch für eure treffenden und guten Antworten. Ich habs
geschafft.

Das heißt ich habe einerseits die Möglichkeit das Programm in den
Konfigspeicher zu laden, um schnell mal was zu testen und bei einem
Neustart wird das Flash wieder aktiviert.

Das Programm benötigt bei einem Start ca. 3 Sekunden bis es anläuft.
Sehe ich das richtig, dass das Flash zu Beginn in den Konfigspeicher
geladen wird, um dort ausgeführt zu werden? Ist so die lange Anlaufzeit
des Programmes zu erklären?

Was für mich noch etwas schwierig ist, ist dass ich nicht weiß, was
sich genau alles im FPGA befindet (Was befindet sich auf dem Board und
was im FPGA). Ich meine z.B. befindet sich der Konfigurationsspeicher
im FPGA oder wird hierbei einfach das SRAM benutzt, welches zusätlich
auf dem Board bestückt ist (HYB250512160BF-6)?

Es befindet sich das Prom auf dem Board, welches ich mit Programmen
bespielen kann. Ich habe aber gesehen, dass sich auf dem Board noch ein
Flash befindet, nämlich das AT49BV322A von Atmel. Wofür ist dieses
eigentlich gut?

Danke Tschüss

Martin

von Xenu (Gast)


Lesenswert?

>Sehe ich das richtig, dass das Flash zu Beginn in den Konfigspeicher
>geladen wird, um dort ausgeführt zu werden?

Korrekt.

>Ich meine z.B. befindet sich der Konfigurationsspeicher
>im FPGA oder wird hierbei einfach das SRAM benutzt

Im FPGA.

>Ich habe aber gesehen, dass sich auf dem Board noch ein
>Flash befindet, nämlich das AT49BV322A von Atmel. Wofür ist dieses
>eigentlich gut?

Da schaust Du am Besten mal in die Doku Deines Boards, da sollte das
eigentlich stehen.

von Martin (Gast)


Lesenswert?

Eine Frage habe ich noch:
Ich habe ein ganz einfaches Beispiel mit einem 4-Bit up/down-Zähler.
Dieses Programm hat ca. 20 Zeilen.
Wenn ich jedoch ein Prom-File daraus mache, verbraucht das so
entstandene File 56% des Prom-Flashes.

Wie soll ich in Zukunft ein größeres Projekt realisieren, wenn dieses
Miniprogramm schon 56% belegt?

Gruß, Martin

von Xenu (Gast)


Lesenswert?

>Wie soll ich in Zukunft ein größeres Projekt realisieren, wenn dieses
>Miniprogramm schon 56% belegt?

Programmier halt mal einen 1000-Bit-Zähler und schau nach wieviel
Prozent dann belegt sind.

Ich verrate es Dir: Es sind immer noch 56%.

von Martin (Gast)


Lesenswert?

Dies bedeutet dann wahrscheinlich, dass hier irgendwelche Startroutinen
mitgeflashed werden.

Das dumme ist, dass das Translate und die Generierung der Files
zusammen ca. 4 Minuten benötigen und ich einen 1,6GHZ-Rechner habe.
Zugegeben, es ist nicht das neueste Model, aber auch dieser Rechner
sollte dass in einer halbwegs akzeptablen Zeit schaffen.
Mit 20 Sekunden wäre ich zufrieden.

Gibt es hier einen Trick, um die ganze Sache zu beschleunigen?

Tschüss

Martin

von Xenu (Gast)


Lesenswert?

>Dies bedeutet dann wahrscheinlich, dass hier irgendwelche
Startroutinen
>mitgeflashed werden.

Nein, das bedeutet, daß die Konfigurationsdatei immer gleich lang ist
(solange Du denselben FPGA benutzt).

>Das dumme ist, dass das Translate und die Generierung der Files
>zusammen ca. 4 Minuten benötigen und ich einen 1,6GHZ-Rechner habe.

Für diesen 4-Bit-Zähler? Dann stimmt irgendwas nicht.
Ich hab hier einen 1GHZ-Athlon und für ein deutlich größeres Design
brauche ich 45 Sekunden. Oder hast Du die Zeit zum Programmieren Deines
FPGAs dazu gezählt?

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.