FPGA Grundlagen XLINX

Gast #252150
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
Gast #252151
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.
Gast #252152
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
Gast #252153
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
Gast #252154
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.
Gast #252155
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
Gast #252156
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%.
Gast #252157
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
Gast #252158
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren