www.mikrocontroller.net

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


Autor: Christoph Tenten (tentone)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: 11833 (Gast)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Christoph Tenten (tentone)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Artur Funk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: 11833 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.