Forum: FPGA, VHDL & Co. Cyclone 3 : EPCS-Programmierung via JTAG in VHDL


von Locke (Gast)


Lesenswert?

Hallo,

ich versuche mich gerade an meinem ersten FPGA-Projekt.
Mein Ziel ist es, einen EPCS über die JTAG-Schnittstelle zu 
programmieren.
Mein Plan ist, zunächst einen EPCS-Controller in VHDL zu schreiben, der 
Schreib- und Leseoperationen ausführen kann. Danach will ich die
JTAG-Schnittstelle in dieses Programm einbinden.
Nun weiß ich nicht, wie ich auf den EPCS zugreifen kann, da ich in
den Datenblättern nichts dazu finde.
Hat dies schon jemand gemacht und kann mir erklären, was zu tun ist?
Zudem hätte ich gerne eure Meinung zu meinem Vorhaben. Ist dies 
sinnvoll,
oder gibt es eine andere, einfachere Methode mein Ziel zu erreichen?

von Horst (Gast)


Lesenswert?

Evtl. verstehe ich das Ziel welches du verfolgst nicht ganz, aber wieso 
versucht du ein EPCS Device nachzubauen? Die gibt es doch fertig von 
Altera?

Kannst du etwas genauer auf deinen Aufbau eingehen und was du mit 
welchem Schritt erreichen willst?

Grüße

von Andi (chefdesigner)


Lesenswert?

Ich habe seinerzeit den Altera Flashloader verwendet, den es als Beigabe 
zu einem Design gab. Den würde ich benutzen, an Deiner Stelle. Ich 
musste nur in einem Sonderfall einen eigenen Loader schreiben, weil der 
im Programm zu implementieren war, wegen Checksumme etc. und sich auf 
ein nicht unterstütztes Flash bezog.

Das Ganze ist allerdings 5 Jahre her! Geht denn das nicht auch bei 
Altera inzwischen automatisch, z.B. über den Altera Programmer?

Bei Xilinx wird nach der Anwahl eines SPI-Flashs im Impact ein MCS 
direkt über den FPGA ins Flash geladen, vorausgesetzt, er ist korrekt am 
FPGA angeschlossen. Dazu wird vom Impact ein Flashloader runtergeladen.

von Locke (Gast)


Lesenswert?

Also, ich entschuldige mich erstmal dafür, dass ich mich nicht gut genug 
ausgedrückt habe.

Die aktuelle Lage sieht folgender Maßen aus:
Es existiert ein Programm für eine Steuerung. Dieses soll natürlich bei 
jedem Anschaltvorgang vom Konfigurationsspeicher in den FPGA geladen und 
ausgeführt werden. Nun geht es um die Programmierung dieses 
Konfigurationsspeichers. Aktuell wird dieser Konfigurationsspeicher 
(müsste ein EPCS sein; korrigiert mich bitte wenn ich falsch liege) über 
Boundary-Scan programmiert. Da diese Methode aber mehrere Minuten 
dauert, wird nach einer schnelleren gesucht. Das Programm soll somit 
eine Art Bootloader darstellen. Dieser soll in den SRAM des FPGAs 
geladen werden und schließlich von einem Master-System das Programm für 
die Steuerung via JTAG-Schnitstelle erhalten und mit diesem den 
Konfigurationsspeicher beschreiben. Nach dem Abschalten der 
Versorgungsspannung sollte der Bootloader gelöscht sein und das Programm 
sollte sich im Konfigurationsspeicher befinden.

Nun wollte ich ein Programm in VHDL schreiben, das dieses Ziel erreicht. 
Leider bin ich ein absoluter Anfänger bzgl. FPGAs und habe somit nur 
geringe Kenntisse in VHDL. Somit war meine Idee, eine Art Flash-Loader 
zu schreiben, der mir den Konfigurationsspeicher via JTAG-Schnitstelle 
schnell beschreiben kann, um die Programmierung zu beschleunigen. Wie 
genau das Ziel erreicht wird, ist ersteinmal egal. Meine Idee war halt 
einen EPCS-Controller zu schreiben, indem ich die JTAG-Schnittstelle 
einbinde, damit dies klappt.

Nun war meine erste Frage, ob dies überhaupt möglich und sinnvoll ist? 
Oder kennt jemand eine bessere Methode, wie ich mein Ziel erreichen 
kann?
Gibt es eventuell Tools, die ich verwenden und bei Bedarf modifizieren 
kann? Ich bin für jeden Rat dankbar, auch wenn ich meine Idee über den 
haufen werfen muss.

Gruß

von Horst (Gast)


Lesenswert?

Vielen Dank für die ausführlicherer Beschreibung. Nun ist einigermaßen 
klar auf was du abzielst.

Auf der Altera Webseite ist beschrieben welche Methoden du für die 
Programmierung von EPCS Chips nutzen kannst:

http://www.altera.com/support/devices/programming/configuration/prg-configuration.html

Wenn auf auf JTAG abzielst ist das Dokument 
http://www.altera.com/literature/an/an370.pdf genau was du suchst...

Grüße

von Locke (Gast)


Lesenswert?

Vielen Dank Horst.

Ich versuche es mal mit dem Serial Flash Loader.

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.