Forum: FPGA, VHDL & Co. Coolrunner II Konfigurieren über FPGA


von Christoph T. (tentone)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@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

von 11833 (Gast)


Lesenswert?

Verstehe ich auch nicht.
Den FPGA musst du doch auch mindestens einmal Programmieren (...per 
JTAG...)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> 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 ;-)

von Christoph T. (tentone)


Lesenswert?

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

von Artur Funk (Gast)


Lesenswert?

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?

von Falk B. (falk)


Lesenswert?

@ 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

von Christian R. (supachris)


Lesenswert?

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.

von Morin (Gast)


Lesenswert?

> 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.

von 11833 (Gast)


Lesenswert?

>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
Noch kein Account? Hier anmelden.