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
>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.
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
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
>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.
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
>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%.
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
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.