Hallo Ich bin Student und schreibe gerade eine Arbeit über "JTAG basierte Fehlerüberprüfung". Meine Aufgabe ist es mit einem Tricore Board, ein Feedback-Shiftregister auf einem Virtex 5 ML506 zu überwachen. Leider finde ich nix dazu, wie man am besten die JTAG Schnittstelle anspricht. Ich wollte deswegen hier fragen, ob wer eine gute Quelle kennt, wo man sich dazu Wissen aneignen kann. Das ganze sollte über C oder C++ laufen und muss auch nicht direkt aufs Tricore, sondern kann erstmal über den Rechner geschehen. Nur finde ich leider nix, wie ich in der Virtex 5 ML506 Evaluation Platform über die JTAG Schnittstelle auf bestimmte Ports zugreifen kann. Ich würde mich sehr über eine Antwort freuen. Gruß Daniel
Naja, so ganz wer ich aus deiner Anfrage nicht schlau. Willst du ein laufendes Design per JTAG quasi debuggen? Das ginge über ChipScope an einfachsten, allerdings eben nicht open source. Ansonsten gibts für die Virtex so ein internes Modul, mit dem zu eigene JTAG Instruktionen implementieren kannst, und eine interne JTAG Kette zur Verfügung hast. "The BSCAN_VIRTEX5 component allows access to and from internal logic by the JTAG Boundary Scan logic controller. This allows for communication between the internal running design and the dedicated JTAG pins of the FPGA."
Also ich habe auf dem Virtex Board ein 4-Bit-Feedback-Shiftregister implementiert. Dieses will ich nun eigentlich mit dem Tricore-Board überwachen. Aber für den Anfang reicht es auch, wenn ich es mit dem PC-überwache. Überwachen bedeuten, dass ein Programm schreiben möchte, welches ebenfalls dieses Shiftregister hat und weiß wann welcher Zustand sein sollte und somit Fehler in dem Register erkennt (welche ich auf dem Virtex-Board gezielt einspeisen kann). Damit ich nun aber dieses Programm zum laufen bringen kann, muss ich erstmal was finden, wie ich mit dem Virtex Board über den JTAG-Anschluss kommuniziere und das schlägt bei mir schon fehl. Ich habe das Virtex Board zwar über die JTAG komponente Programmiert, aber dafür gibt es von Xilinx ja vorgefertigte Lösungen. Ich möchte hier auch keine fertige Lösung, sondern mehr Quellen, wo ich mich gescheit anlesen kann, da meine Suche bisher sonst erfolglos blieb. Ich hoffe, dass es nun verstndlicher war.
Hm, naja, JTAG machts nicht gerade einfach...aber der BSCAN Block ist schon mal der Ansatz. Wenn du das ohne ChipScope machen willst, musst du dann natürlich einen JTAG TAP Controller implementieren. Eine Quelle, wo eine Beispiel-Implementierung ist, weiß ich jetzt aber auch nicht. Und nochmal zum Verständnis: Der Tricore soll den JTAG Master spielen und auf interne Daten des FPGA zugreifen? Auf jeden Fall bekommst du dann wahrscheinlich ein kleines Geschindigkeits-Problem, denn der FPGA errechnet die SR-Werte sicherlich um Größenordnungen schneller, als du die per JTAG übertragen kannst. Oder du speicherst halt die Werte in einem Blockram und liest sie anschließend über JTAG langsam aus....
Hallo, wenn Du mit dem PC was mit JTAG machen möchtest, dann könnte das hier vielleicht was sein, Amontec JTAGkey: http://www.amontec.com/jtagkey.shtml Damit hättest Du schon mal eine Schnittstelle am PC. Für das Programm musst Du aber selber sorgen.
Hi, zum Thema JTAG gibt es eine kostenlose Java-Software namens "gojtag". Läuft mit einigen FT2232-basierten JTAG-Adaptern, Goepel hat solche sogar eine Weile lang mal verschenkt. Das nette ist, dass man ohne Debugger auch schon mit boundary-Scan-Dateien im Simulationsmodus rumexperimentieren kann. Dokumentation gibts leider wenig, habe nur mal eine kleine Appnote geschrieben, siehe ICEbear-Manual (http://www.section5.ch/dsp/icebear/ICEbear-manual.pdf) Sonst gibt es auch die urjtag-Library, ist zwar kein Ausbund an Geschwindigkeit, aber unterstützt immerhin einige Billig-Adapter. Kann im Prinzip auch so viel wie gojtag, aber zusätzlich auch Scripting. Um ein einfaches shift-Register zu debuggen, reichen vermutlich die USER1/USER2 Scanchains der Xilinx-BSCAN-Primitiven. Dazu sollte es einige Appnotes geben. Allerdings habe ich einen andern Ansatz gewählt und einen generischen JTAG-Controller und TAP (Test-Access-Port) Modul selber geschrieben. Gebe den VHDL-Code auch für nicht kommerzielle Nutzung raus. Allerdings macht der Ansatz nur Sinn, wenn man einen etwas komplexeren Core (Softcore-CPU) debuggen will und dazu mehrere Scanchains (Instruction register) braucht. Grüsse, - Strubi
Ich danke für die schnellen Antworten, werde nun die kommenden Tage mal alles durch gehen. Das Geschwindigkeitsproblem ist ein Punkt um den es dann in meiner Arbeit geht. Ich soll dann rausbekommen, wie schnell man das Register Takten kann, damit Fehler noch erkannt werden und nicht falsche Fehlermeldungen kommen. Vielen dank nochmal.
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.