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