Forum: FPGA, VHDL & Co. keine gemeinsame JTAG-chain


von Hendrik (Gast)


Lesenswert?

Hallo zusammen,

in der Praxis habe ich es noch nicht erlebt, dass unterschiedliche 
JTAG-fähige Komponenten wie z.B. FPGAs und DSPs in einer JTAG-chain 
sind. Ist JTAG nicht gleich JTAG?

Gruß
Hendrik

von Strubi (Gast)


Lesenswert?

Hi Hendrik,

Ausser der 4 pins ist bei JTAG nix wirklich standardisiert ausser die 
State machine und der BYPASS-Befehl. Sogar die Spannungen können 
unterschiedlich sein (und nicht 3.3V tolerant)
Blackfins und Xilinx-FPGA hänge ich eigentlich andauernd in die Chain. 
Das Hauptproblem bei nicht-homogenen Chains (d.h. aus Chips 
unterschiedlicher Hersteller) ist meistens nur, dass die "billigen" 
Tools damit nicht klarkommen, man also zu eher teuren Lösungen greifen 
oder sich mit wackligen Opensource-Lösungen für interconnection tests 
herumquälen muss.
Manche Chips (ältere msp430) lassen sich aufgrund von Bugs nicht 
verketten.
Bei den meisten ARM-Kernen sollte es mit OpenOCD keine Probleme mit DSPs 
geben.

Gruss,

- Strubi

von Christian R. (supachris)


Lesenswert?

Doch das klappt, das machen wir hier ständig. Zum Beispiel die TI DSPs 
in einer Kette mit Xilinx FPGAs. Man braucht dann nur die BSDL Files der 
Bausteine bzw. mindestens die Länge des Instruction Registers, damit die 
in den BYPASS Modus geschaltet werden können.

von nuess0r (Gast)


Lesenswert?

Wenn es schon hier erwähnt wird:

Christian R. schrieb:
> Doch das klappt, das machen wir hier ständig. Zum Beispiel die TI DSPs
> in einer Kette mit Xilinx FPGAs.

Setzen hier auch viele TI DSPs ein und neu auch Lattice FPGAs. Die 
Sachen setze ich auch in einer JTAG Chain zusammen, damit irgendwann mal 
jemand bei uns die JTAG Option des Flying-Probers nutzen kann.

Meine Frage ist aber eine andere:
Wie programmiert ihr die Bausteine in der Produktion?

Meine Recherchen haben ergeben, dass es kaum Hersteller gibt, die TI 
DSPs programmieren können. Und genau diese können dann wieder nichts mit 
FPGAs (oder nur schon SVF Dateien) umgehen (Was alle anderen können ohne 
die TI DSPs...).
Heisst dass wir für zwei Chips zwei Programmier Adapter und zwei Script 
Dateien benötigen und umgesteckt werden muss...

von Strubi (Gast)


Lesenswert?

nuess0r schrieb:
> Meine Frage ist aber eine andere:
> Wie programmiert ihr die Bausteine in der Produktion?

Entweder per Emulation (ladbares, per JTAG ferngesteuertes back end) 
oder Boundary Scan. Erstere Methode ist typischerweise schneller, 
funktioniert aber nur für gewisse Prozessorfamilien. BSCAN ist bei einer 
langen chain für die Massenfertigung meist zu langsam, klappt aber für 
fast jede Architektur.
Der Trick für die meisten Plattformen ist dann ein kleiner first stage 
bootloader, der über eine andere (schnellere) Schnittstelle Code 
nachlädt.

Bei TI war bisher der Wildwuchs an Chiparchitekturen für generische 
Emulationslösungen ein Hemmnis, zudem sind die Debugging-Spezifikationen 
m.W. nicht alle offen. Drum sind spezifische optimierte 
Programmierlösungen auch immer recht aufwendig..

Grüsse,

- Strubi

von Christian R. (supachris)


Lesenswert?

Wir machen ja keine Massenproduktion. Die DSPs werden hier erstmalig im 
Rahmen der Inbetriebnahme per JTAG programmiert und dann bei Bedarf über 
die Anwendungssoftware neu programmiert.
Bei Xilinx ist das ähnlich, da wird im Rahmen des Boundary Scan Tests 
mit der Göpel Software gleich beim Abschlusstest beim Auftragsfertiger 
der Flash mit programmiert und ist dann per Software aktualisierbar.

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.