Hallo zusammen, ich habe jetzt das erste Mal mit JTAG zu tun. Ich habe mich etwas in die Materie eingelesen, aber mir fehlt die Praxis. Ich soll ein Board in meiner Firma testen, auf dem ein FPGA und ein DSP draufsind. Beide sind JTAG-fähig und in einer JTAG-Kette. Ich möchte JTAG unter anderem dafür nutzen, um sämtliche Verbindungen zwischen den Bausteinen zu prüfen. Der erste Baustein in der Kette ist das FPGA. Geb ich für einen Verbindungstest an dessen Eingang Initialwerte vor, die dann über die Schnittstelle zum DSP weitergeleitet werden? Gruß Simon
Das Stichwort nach denen du sucht heisst Boundary Scan (IEEE Standard 1149.1-2001). Was du brauchts sind die BSDL Dateien der beteiligten Bauteile und ein Tool das diese interpretieren kann und mit deinem JTAG Adapter kompatibel ist. (BSDL = Boundary Scan Description Language, ist eine Untermenge von VHDL).
Sowas von Hand zu machen ist recht aufwendig. Du musst die BSDL Files interpretieren, da steht drin, welche Pins überhaupt testbar sind. Manche sind nur Ausgang, manche nur Eingang, manche bidirektional. Dann musst du Testvektoren erstellen um möglichst viel in möglichst wenig Testschritten heraus zu bekommen. Leitung offen, Kurzschluss nach GND, VCC oder andere Leitung, Output ddefekt, Input defekt.... Für sowas gibts Programme, die das alles aus der Netzliste der Platine, den Bauteile-Bibliotheken, und den BSDL Files erzeugen. Wir nutzen das System von Göpel Electronic. Ist schon stark automatisiert, aber bis man zum Testprogramm mit möglichst hoher Abdeckung kommt, braucht man auch eine Weile.
vielen Dank für eure schnellen Antworten. Das ist gut zu wissen, dass die Debugger-Tools einem die Arbeit abnehmen. Da muss ich mich mal schlaumachen, welchen Debugger wir verwenden und mich dann in BSDL einarbeiten.
Simon T. schrieb: > Das ist gut zu wissen, dass > die Debugger-Tools einem die Arbeit abnehmen. Nein, das hat mit den üblichen Debuggertools nicht das geringste zu tun. Es gibt dafür eine eigene Klasse von Testtools. (Das schliesst natürlich nicht aus dass ein Debuggertool das auch kann)
Lattice User schrieb: > Schau mal hier unter allegemeine Tools: > > http://www.mikrocontroller.net/articles/JTAG Einzig das ohne weiteren Kommentar aufgeführte "Universal Scan" scheint Boundary Scan Test zu machen. Der Rest der Seite ist dahingehend leider nicht weiterführend. Neben dem schon erwähnten Göpel gibt es z.B. auch noch JTAG Technologies, deren Tools wir einsetzen. Die Tools lesen üblicherweise die Netzliste Deines Designs ein und erstellen mit den Modellen der JTAG-fähigen, aber auch der nicht JTAG-fähigen Bauteile, einen Testplan. Damit kann man in erster Linie die Verbindungen zwischen JTAG-fähigen Bauteilen testen. Aber auch andere Bausteine, z.B. Speicher oder Digitallogik kann man testen, wenn die Software entweder Modelle davon mitbringt oder man als Entwickler sich Ansteuermuster überlegt. Man kann das ganze auch auf die Spitze treiben und im Rahmen der "Tests" auch gleich noch die ganzen nichtflüchtigen Speicherbausteine über JTAG beschreiben lassen, ohne auf die herstellerspezifischen Programmer von FPGA, DSP, etc angewiesen zu sein.
Hi, wenn Du JTAG lernen willst, kannst Du quasi offline (ohne echte Hardware) mit der freien Java-Software "goJTAG" (www.gojtag.org) herumspielen. Auf der echten Hardware geht das dann mit FT2232 basierten Adaptern. Boundary-Scan-Features wie Abfrage eines Pins oder Toggeln einer LED per JTAG sind manuell recht einfach. Beispiele dazu im Manual zum ICEbear (JTAG adapter): http://www.section5.ch/dsp/icebear/ICEbear-manual.pdf Dann gibt's noch urjtag im Sinne von mehr low-level-Kommandozeile. Allerdings ist der Code ein Brei von zuvielen Köchen geworden und nicht mehr so mein Geschmack. Für 'echte' Systemtests mit vielen tausend Testvektoren reicht goJTAG aber nicht. Dazu sind dann eher teurere Tools (wie oben beschrieben) notwendig, weil das auch in die Tausende gehen kann, kann man's auch gleich selber mit den entsprechenden APIs selber programmieren. Die ganzen Systemtests mache ich z.B. per Python. Grüsse, - Strubi
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.