Hallo Leute, Ich stecke in den letzten Zügen meines Designs. Jetzt muss ich nur noch die Konfigurationsdaten auf meine CPLDs bringen. Ich habe folgen Philosophie: Auf der Backplane sitzt ein FPGA (Spartan3AN) der über eine USB Schnittstelle einfach über Impact programmiert werden kann. Auf dieser Backplane sitzen vier VG-Leisten in die die Einschubkarten kommen. Damit ich jetzt nicht zig USB Schnittstellen für das JTAG brauche habe ich mir folgendes Überlegt. Der FPGA holt sich über LAN die Konfigurationsdaten für die CPLDS (sitzen auf den Einschubkarten) und lädt sie in den CPLD ein (muss ja nur einmal geschehen). Meine Frage ist nun, wie realisiere ich das. Weis jemand wie ich einen JTAG-Controller in den FPGA programmieren kann. Da ja die Coolrunner nur JTAG-Interface haben? Danke für eure Hilfe!!! Gruß Tentone
@Christoph Tenten (tentone) >Der FPGA holt sich über LAN die Konfigurationsdaten für die CPLDS >(sitzen auf den Einschubkarten) und lädt sie in den CPLD ein (muss ja >nur einmal geschehen). Was soll der Unsinn? Schon mal was von JTAG gehört? Schleif alles ICs in die JTAG Kette ein, mach nen Stecker aufs Board und programmir über IMPACT. Fettig. MFG Falk
Verstehe ich auch nicht. Den FPGA musst du doch auch mindestens einmal Programmieren (...per JTAG...)
> Weis jemand wie ich einen > JTAG-Controller in den FPGA programmieren kann. Schau dir mal die Appnote xapp058 an. Da ist ein C-Programm beschrieben, mit dem per Bitwackeln an den JTAG-Pins die JTAG-Vektoren (SVF) in ein CPLD oder Config-PROM geladen werden kann. Das könnte eine Ausgangsbasis für deine weiteren Überlegungen sein. Diese APPnote wird von Xilinx bestens gepflegt und aktuell gehalten. Ich verwende das für automatische CPLD- und Config-PROM Updates im Kundenmaschinen (und wehe, einer schaltet dabei die Spannung ab ;-)
Hallo Ihr, danke mal für eure Antworten. Das mit der JTAG-Kette ist mir schon klar. Aber die Karten hängen parallel am FPGA. Der FPGA wird natürlich über die JTAG/USB Interface über xilinx Impact programmiert. Kann ich dann die Jtag-Kette auch parallel betreiben. Obwohl jede CPLD-Karte ein anderes Konfig hat? Dann ist das auch kein Problem. Oder kann ich die JTAG-Kette nur seriell betreiben? Vor allem möchte ich mir durch diese Art der Konfiguration viele USB-Stecker vermeiden. Klar habt Ihr recht und wenn es keine andere Möglichkeit gibt oder meine Idee nicht funktioniert bekommt halt jede einzelne Karte einen seperaten USB Anschluss. Nur den möchte ich eigentlich vermeiden. Gruß Tentone
Du kannst doch von jeder Karte das JTAG Interface auf die Backplane rausführen. Im Daisy Chain Modus reicht dir deine FPGA Karte, die die Daten durchschleift. Hat Falk ja bereits geschrieben. Oder verstehe ich da was falsch?
@ Christoph Tenten (tentone) >Das mit der JTAG-Kette ist mir schon klar. Das bezweifle ich. >Aber die Karten hängen parallel am FPGA. Ja und? Was hat das mIt JTAG zu tun? JTAg ist im Normalberieb inaktiv, da ist es vollkommen gal wie die Karten wo dra nhängen. JATG läift parallel zu Anwenderlogik. >Der FPGA wird natürlich über die JTAG/USB Interface über xilinx >Impact programmiert. Na dann häng in diese JTAG-Kette die CPLDs und fertig. >Kann ich dann die Jtag-Kette auch parallel betreiben. Nö. >Oder kann ich die JTAG-Kette nur seriell betreiben? Ja., Dais Chain, sprich verkettet. Der Ausgang eines ICs ist der Eingang des nächsten. >Vor allem möchte ich mir durch diese Art der Konfiguration viele >USB-Stecker vermeiden. MIt US hat das GAR NICHTS zu tun. Nur weil das PRogrammierkabel am USB hängt, ist JTAG kein bisschen damit verknüpft. >Klar habt Ihr recht und wenn es keine andere Möglichkeit gibt oder meine >Idee nicht funktioniert bekommt halt jede einzelne Karte einen seperaten >USB Anschluss. Befasse dich mal mit den Grundlagen von JTAG im Allgemeinen und desen Nutzung zu CPLD-Konfiguration im Speziellen. Das läuft anders, als du denkst. http://de.wikipedia.org/wiki/JTAG MFG Falk
Ich glaub, er lädt den FPGA gar nicht über JTAG, sondern irgendwie über einen extra USB Controller, vielleicht im Slave Serial Modus oder sowas. Normalerweise baut man bei sowas einen Platform Flash ein, der in der JTAG Kette mit den CPLDs hängt. Der FPGA holt sich per Master Serial Mode seine Konfig aus dem Platform Flash, die PLDs werden ja nur einmal programmiert, ebenso der Platform Flash. Fertig.
> Das mit der JTAG-Kette ist mir schon klar. > Aber die Karten hängen parallel am FPGA. Das beißt sich. Die JTAG-Kette heißt nicht umsonst Kette, da wird nix parallel angeschlossen. Die Späteren Datenleitungen können ohne weiteres "parallel" am FPGA hängen, egal wie das nun genau passiert. Aber die JTAG-Leitungen müssen die Chips verketten. Dann kannst du sie nacheinander programmieren.
>Der FPGA wird natürlich über die JTAG/USB Interface über xilinx Impact programmiert. Du meinst vermutlich den USB Programmer, der an das JTAG Interface des FPGAs angeschlossen wird. Bitte recherchiere mal den Unterschied zwischen USB und JTAG. Mitnichten hat jeder CPLD eine eigene USB Buchse nötig. Was du machen musst ist alle JTAG Pins deiner CPLDs (wie schon beschrieben) auf die Backplane verdrahten, und dort zu einer seriellen Chain verschalten. Genauso hängst du das das JTAG Interface deines FPGAs mit in die Chain rein. Dann machst du dir EINEN JTAG Pinheader aufs Board, schließt dort deinen USB-JTAG Adapter von Xilinx an, drückst in Impact auf "Scan" und siehst ALLE CPLDs und den FPGA auf einmal - vorausgesetzt die Chain ist richtig verdrahtet. Dann lädst du für jedes Bauteil das entsprechende Image, und kannst alle Bausteine gleichzeitig flashen.
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.