www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Frage zu Boundary Scan


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

kann mir jmd. mal genau erklären, wie der Boundary-scan funktioniert?
Soweit ich verstanden habe, wird eine Testumgebung geschrieben, die
mittels JTAG nacheinander alle Boundary Register des jeweiligen I/O's
setzt (0,1,z) und es werden alle übrigen Boundary-Register auf ihren
Zustand geprüft ob er den Erwartungen entspricht.
Ist das so korrekt?
Wenn ja, muß ich beim Layout irgendwas Wichtiges bezüglich boundary
scan beachten? Was mache ich z.B. mit unbenutzten IO's?

Danke für Antwort,
Daniel

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die IOs sind kein Problem, da Du die von aussen beobachten und damit
auch testen kannst. Die boundary scan Technik wurde ja entwickelt, um
ein Schaltwerk gezielt in einen Zustand bringen zu können ohne es
funktionell durchtakten zu müssen: Man lädt die FFs derart mit Werten
voll, daß sich Fehler (beim nächsten Takt) äussern können. Damit kann
man theoretisch alle Funktionen abstrakt durchtesten ohne funktionell
vorgehen zu müssen, um alle möglichen Zustände "abzuklappern".

Folge: Man braucht keine IOs um Fehler zu sehen.

Ws die IOs selbst angeht: Wenn Du sie nicht benutzt, musst Du sie auch
nicht testen. Du könntest allerhöchstens den Treiber davor testen. Wenn
Du für Deine Appl aber noch IOs über hast, kannst Du sie als logische
Testpins herausführen.

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen, danke erstmal für die schnelle Antwort!
Ok, das habe ich soweit verstanden. Aber es geht doch hauptsächlich
darum, nicht auf "Nadelbretter" angewiesen zu sein und mit den 4
Leitungen der JTAG-Schnittstelle sämtliche Funktionen testen zu können
ohne an den Pins messen zu müssen. Ob ich nun alle Möglichkeiten
abklapper oder gezielte Funktionen durchteste sei erst mal dahin
gestellt.
Aber prinzipiell ist es doch richtig, das mittels JTAG dann nur noch
die jeweiligen Register ausgelesen/geschrieben werden müssen und nicht
mehr gemessen werden muß, oder?
Sehe ich das von Prinzip her richtig?

Danke, Daniel

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAG unterstützt das, sicher (sofern es der Proz / das FPGA ebenso tut).
Man braucht aber auch noch eine Testsoftware, die man mit Testmustern
füttert, welche dann per BS eingeschrieben, durchführt und geprüft
werden. Die Testmuster kommen dabei (hoffentlich) aus deiner
Designsoftware und wurden entsprehend optimiert. Um das Optimieren
ranken sich indes eine Reihe theoretischer Abhandlungen. Womit arbeiest
Du ?

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jürgen,
war länger nicht da. Die Testsoftware ist erstmal nebensächlich und
soll hinterher erstellt werden. Ich entwerfe ein Design für einen
Spartan2. Hierbei soll sichergestellt werden, daß Boundary scan
gewährleistet ist. Sobald das FPGA läuft habe ich damit nichts mehr zu
tun, denn das Erstellen der Testsoftware geschieht extern. Ich muß nur
gewährleisten das es möglich ist. Daher muß ich mir Gedanken über die
JTAG Schnittstelle (evt. Daisy Chain) machen. Bin wohl auch lange nicht
so fit in programmierbarer Logik wie Du es zu sein scheinst.
Ich arbeite mit ISE7.1 von Xilinx. Muß ich denn jetzt schon, im Zuge
des Designentwurfs, die Testmuster erstellen/berücksichtigen?
Ich dachte das kann nachher geschehen.

Danke erstmal, Daniel

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, die Testmuster als Testsatz kommen aus einer Fehlersimulation des
fertigen Designs. Unter Annahme von möglichen "stuck-at"-Fehlern wird
dabei geprüft, ob ein bestimmter Zustandsübergang geeignet ist, einen
angenommenen Fehler an einem Ausgang zu zeigen oder nicht. Man
optimiert die Testmnuster nun so, daß mit möglichst wenig
Zustandwechseln gleichzeitig möglichst viele Fehler beobachtbar sind -
sich also bei dem angenommenen Fehelr an den beobachteten Ausgängen
eine anderes Ergebnis zeigt, als es in der Gutsimulation der Fall sein
muss.

Was Du hardwaretechnisch realsieren musst: Die BS-fähigen Zellen (über
JTAG) zugriffsfähig machen. Je nach Synthesetool wird das aber
automatisiert durchgeführt / bzw ist einstellbar. Welchen Baustein
benutzt Du denn ?

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal.
Ich benutze einen Spartan2.
Aber was meinst Du mit zugriffsfähig machen? Lt. Datenblatt sind alle
I/O's irgendwelchen internen Registern zugeordnet, die ich dann über
JTAG auslesen kann- oder sehe ich das falsch?

Daniel

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.