DE102012210408A1 - Verfahren zum Ansteuern einer Zustandsmaschine - Google Patents

Verfahren zum Ansteuern einer Zustandsmaschine Download PDF

Info

Publication number
DE102012210408A1
DE102012210408A1 DE102012210408A DE102012210408A DE102012210408A1 DE 102012210408 A1 DE102012210408 A1 DE 102012210408A1 DE 102012210408 A DE102012210408 A DE 102012210408A DE 102012210408 A DE102012210408 A DE 102012210408A DE 102012210408 A1 DE102012210408 A1 DE 102012210408A1
Authority
DE
Germany
Prior art keywords
state machine
jtag
command
data
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102012210408A
Other languages
English (en)
Inventor
Gert Maier
Frank Lustig
Bernhard Haible
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102012210408A priority Critical patent/DE102012210408A1/de
Priority to US13/922,604 priority patent/US9304165B2/en
Publication of DE102012210408A1 publication Critical patent/DE102012210408A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/045Programme control other than numerical control, i.e. in sequence controllers or logic controllers using logic state machines, consisting only of a memory or a programmable logic device containing the logic for the controlled machine and in which the state of its outputs is dependent on the state of its inputs or part of its own output states, e.g. binary decision controllers, finite state controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23289State logic control, finite state, tasks, machine, fsm

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

Es wird ein Verfahren und eine Anordnung zum Ansteuern einer Zustandsmaschine (13) vorgestellt. Bei dem Verfahren wird ein Skript eingesetzt, mit dem jeder beliebige Pfad in der Zustandsmaschine (13) beschrieben werden kann, wobei das Skript mit einer Sprache erstellt wird, welche den Befehl Data umfasst, wobei der Befehl Data ein Lesen und Schreiben von Daten ermöglicht.

Description

  • Die Erfindung betrifft ein Verfahren zum Ansteuern einer Zustandsmaschine und eine Anordnung zur Durchführung des Verfahrens.
  • Stand der Technik
  • Eine Zustandsmaschine, die auch als endlicher Automat bezeichnet wird, stellt ein Modell eines Systems dar, welches aus Zuständen, Zustandsübergängen und Aktionen besteht. Als endlich wird der Automat bezeichnet, wenn die Menge an Zuständen, die der Automat einnehmen kann, endlich ist.
  • Ein Zustand speichert die Informationen über die Vergangenheit, d.h. er reflektiert die Änderungen der Eingabe seit dem Systemstart bis zum aktuellen Zeitpunkt. Ein Zustandsübergang zeigt eine Änderung des Zustands des Automaten an und wird durch eine logische Bedingung beschrieben, die erfüllt sein muss, um den Zustandsübergang zu ermöglichen. Eine Aktion ist die Ausgabe des Automaten, die in einer bestimmten Situation erfolgt.
  • Eine Zustandsmaschine kann als Zustandsübergangsdiagramm dargestellt werden. Zusätzlich können unterschiedliche Typen von Übergangstabellen benutzt werden.
  • Zustandsmaschinen werden vornehmlich in der Entwicklung digitaler Schaltungen und der Modellierung des Applikationsverhaltens von Steuerungen sowohl bei Hardware, Software als auch bei gemischten Systemen eingesetzt.
  • Zum Testen von elektronischen Einheiten bzw. von elektronischer Hardware ist eine Anzahl von Verfahren bekannt. Diese haben zum Ziel, Fehler in der Hardware zu erkennen und diese zu beseitigen, was auch als Debuggen bezeichnet wird.
  • Die sogenannte Joint Test Action Group (JTAG) bezeichnet einen Standard, der eine Ansammlung von Verfahren zum Testen und Debuggen von elektronischer Hardware direkt in der Schaltung beschreibt. Ein derzeit verbreitetes Verfahren ist der sogenannte Boundary Scan Test.
  • Das Verfahren dient dazu, integrierte Schaltungen auf Funktion zu testen, während diese sich bereits in ihrer Arbeitsumgebung befinden. Hierzu kann diese bspw. auf einer Platine verlötet sein. Ein JTAG-fähiges IC kann Komponenten besitzen, die im Normalbetrieb vollkommen abgetrennt sind und somit die Funktion des Bauteils nicht beeinträchtigen. Erst durch Aktivierung der JTAG-Funktion durch eine Sequenz wird die Kontrolle bestimmter Funktionen an JTAG übergeben. Die Schnittstelle von JTAG zur Außenwelt ist in der Regel als Schieberegister implementiert.
  • Eine JTAG-Komponete besteht im Wesentlichen aus folgenden Teilen:
    Dem Test Access Port (TAP) mit Steuerleitungen, der auch als JTAG Port oder JTAG-Schnittstelle bezeichnet wird.
  • Dem TAP-Controller, der eine Zustandsmaschine bzw. State-Machine darstellt, welche die Testlogik steuert.
  • Zwei Schieberegistern, dem Instruction Register (IR) und dem Data Register (DR).
  • Der Test Access Port (TAP) umfasst fünf Steuerleitungen:
    • 1. Test Data Input (TDI): serieller Eingang der Schieberegister,
    • 2. Test Data Out (TDO): serieller Ausgang der Schieberegister,
    • 3. Test Clock (TCK): das Taktsignal für die gesamte Testlogik,
    • 4. Test Mode Select Input (TMS): diese Leitung bestimmt, in welchen folgenden Zustand die Zustandsmaschine des Test Access Port bei der nächsten positiven Signalflanke des TCK-Signals springt,
    • 5. Test Reset (Reset der Testlogik): dieses Signal ist optional.
  • An eine JTAG-Schnittstelle können mehrere integrierte Schaltungen angeschlossen werden. Es kommt dabei zu einer Reihenschaltung der Schieberegister der beteiligten ICs.
  • Der TAP-Controller ist ein von TCK getakteter und von der TMS-Leitung gesteuerter Zustandsautomat. Die TMS-Leitung bestimmt dabei, in welchem Folgezustand beim nächsten Takt gesprungen wird. Der TAP-Controller hat sechs stabile Zustände, d.h. Zustände, in denen mehrere Takte über verblieben werden kann.
  • JTAG stellt somit eine zumindest zum Teil standardisierte Schnittstelle zur Verfügung. Über diese Schnittstelle kann ohne Unterstützung eines Mikrocontrollers auf diesen zugegriffen werden.
  • Für den Zugriff auf den Mikrocontroller über die standardisierte Schnittstelle, dem TAP mittels des TAP-Controllers, der als Zustandsmaschine beschrieben werden kann, sind unterschiedliche Methoden bzw. Sprachen bekannt. Eine solche Sprache bzw. Dateiformat ist bspw. das sogenannte Serial Vector Format (SVF).
  • SVF ist ein Dateiformat zum Austausch von Boundary Scan Testvektoren. Es wurde mit dem Ziel einer herstellungsunabhängigen Beschreibung von JTAG-Operationen entwickelt.
  • SVF-Dateien enthalten eine Folge von SVF-Anweisungen, die beschreiben, wie die JTAG-State-Machine durchlaufen werden soll. Die beiden wesentlichen Kommandos sind die Schiebeanweisung SIR (Scan Instruction Register) und SDR (Scan Data Register). SIR führt eine Schiebeoperation in das Instruction Register, SDR eine Schiebeoperation in das momentan aktive Datenregister durch, jeweils mit einer angegebenen Anzahl an Bits.
  • SVF ist ein ASCII-Format, das leicht zu lesen und zu modifizieren ist.
  • Nachteilig bei SVF ist, dass nur auf vorbestimmte Weise die Zustände der Zustandsmaschine des TAP-Controllers durchlaufen werden können. Wenn dies nicht ausreichend ist, kann SVF nicht verwendet werden.
  • Offenbarung der Erfindung
  • Vor diesem Hintergrund werden ein Verfahren zum Ansteuern einer elektronischen Einheit gemäß Patentanspruch 1 und eine Anordnung zur Durchführung des Verfahrens mit den Merkmalen des Anspruchs 7 vorgestellt. Weitere Ausgestaltungen der Erfindung ergeben sich aus den abhängigen Patentansprüchen und der Beschreibung.
  • Das vorgestellte Verfahren ermöglicht, eine Zustandsmaschine anzusteuern und dabei nicht nur vorgegebene Pfade abzulaufen bzw. zu beschreiben. Dies ist insbesondere bei der Ansteuerung eines TAP-Controllers als JTAG-Schnittstelle von Bedeutung.
  • Über die JTAG-Schnittstelle wird auf einen Mikrocontroller zugegriffen, ohne dass dessen Unterstützung notwendig ist. SVF, das ein bekanntes Skript darstellt, das standardisiert ist, kann in diesem Fall nicht verwendet werden. Mit dem vorgestellten Verfahren kann jeder beliebige Pfad innerhalb der Zustandsmaschine beschritten werden. Dies ist insbesondere bei Mikrocontrollern von Bedeutung, die einen Pfad durch den TAP-Controller erfordern, der nicht durch SVF abgedeckt ist.
  • Bei dem Verfahren wird ein Skript eingesetzt, das mit einer Sprache bzw. einer Programmiersprache erstellt wird. Eine solche Sprache wird auch als Skriptsprache bezeichnet. Skriptsprachen sind Programmiersprachen, die vor allem für kleine und überschaubare Programmieraufgaben eingesetzt werden. Programme, die in einer Skriptsprache geschrieben sind, werden als Skripte bzw. Scripts bezeichnet.
  • Die eingesetzte Sprache ermöglicht es, Skripte zu generieren, die einen Prozesshersteller und Chip unabhängigen Zugriff über eine dazu ausgebildete Anordnung, eine Hardware, auf die JTAG-Schnittstelle ermöglichen.
  • Ein Vorteil des vorgestellten Verfahrens ist die volle Flexibilität durch Generierung beliebiger, hardwarenaher Sequenzen für den JTAG-TAP Controller des Mikrocontrollers, d.h. es muss keine Firmware geändert werden, um z.B. neue Derivate des Mikrocontrollers oder andere Hersteller des Mikrocontrollers mit neuen oder unterschiedlichen JTAG-Kommandos zu unterstützen. Eine Werkzeug gestützte Generierung der entsprechenden Skripte (ASCII-File) wird ermöglicht.
  • Allerdings ist eine genaue Kenntnis der Hardware (JTAG TAP Controller) für die Generation der richtigen Sequenzen erforderlich.
  • Grundsätzlich können zwei Befehle verwendet werden, nämlich "Step", der einen Weg vornimmt, ohne Daten auszutauschen, und "Data Transfer" bzw. "Data", bei dem ein Weg vorgenommen wird und Daten ausgetauscht werden. Weiterhin ist ein Schleifenmechanismus durchführbar.
  • Befehl:
    step
  • Parameter:
    TDI-Wert
    Anzahl an Schritten
    TMS Sequenz bzw. Bitfolge
  • Eigenschaften:
    erzeugt eine Anzahl an steigenden TCK-Flanken und die spezifizierte TMS-Sequenz
    TDI bleibt wie spezifiziert konstant
  • Befehl:
    Data Transfer
  • Parameter:
    Anzahl der Bits
    TMS Sequenz
    TDI Sequenz
    erwartete TDO Sequenz
    TDO Bit-Maske
  • Retry Count (x)
    Definition einer Step- bzw. Schrittsequenz, um den TAP-Controller zurück zum Beginn der Datenübertragung zu bewegen, damit wird die Anzahl der Wiederholungen dieser Schrittsequenz angezeigt
  • Eigenschaften:
    erzeugt eine Anzahl an TCK-Takt-Flanken mit den spezifizierten TMS und TDI Signalen
    eine Datenübertragung wird wiederholt durchgeführt, bis TDO mit dem erwarteten Wert übereinstimmt oder eine Anzahl von Wiederholungen überstiegen wird
  • Weitere Befehle können sein:
    Befehl:
    Request JTAG
  • Parameter:
    Anfangswerte für TMS, TDI
  • Eigenschaften:
    JTAG-Signale werden nicht während der Befehlsausführung geändert (d.h. keine Erzeugung einer TCK-Flanke, TCK hoch) Businhaberschaft bleibt, bis zur expliziten Freigabe über Befehl Release JTAG
  • Befehl:
    Release JTAG
  • Parameter:
    keine
  • Eigenschaften:
    JTAG-Signale werden nicht während der Befehlsausführung geändert (d.h. keine Erzeugung einer TCK-Flanke, TCK hoch) Businhaberschaft wird freigegeben
  • Die Befehle Request und Release sind nur notwendig, wenn mehrere konkurrierende Schnittstellen-Geräte an einer JTAG-Schnittstelle angeschlossen sind.
  • Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen.
  • Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt in einem Zustandsdiagramm einen TAP-Controller.
  • 2 zeigt eine Ausführung einer Anordnung zur Durchführung des vorgestellten Verfahrens in einer schematischen Darstellung.
  • 3 zeigt eine Ausführung eines Schnittstellen-Controllers.
  • 4 zeigt Signalverläufe beim Befehl Request/Release JTAG Bus.
  • 5 zeigt Signalverläufe beim Befehl Step.
  • 6 zeigt die Befehlsstruktur des Befehls Data.
  • 7 zeigt Signalverläufe des Befehls Data.
  • 8 zeigt Signalverläufe des Befehls Data.
  • Ausführungsformen der Erfindung
  • Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird nachfolgend unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
  • In 1 ist in einem Zustandsdiagramm 10 ein TAP-Controller 11 dargestellt, der dazu dient, eine Testlogik zu steuern. Dieser TAP-Controller 11 stellt eine Zustandsmaschine 13 dar, deren Verhalten durch das Zustandsdiagramm 10 beschrieben wird. Die Darstellung zeigt eine Anzahl von Zuständen und Zustandsübergänge. Gezeigte Zustände sind: TEST-LOGIC-RESET 12, RUN-TEST/IDLE 14, SELECT-DR-SCAN 16, CAPTURE-DR 18, SHIFT-DR 20, EXIT1-DR 22, PAUSE-DR 24, EXIT2-DR 26, UPDATE-DR 28, SELECT-IR-SCAN 30, CAPTURE-IR 32, SHIFT-IR 34, EXIT1-IR 36, PAUSE-IR 38, EXIT2-IR 40, UPDATE-IR 42.
  • Eine Dateneingabe und Datenausgabe erfolgt bei den mit Bezugsziffer 20 und 34 bezeichneten Zuständen. Das dargestellte Zustandsdiagramm 10 entspricht dem JTAG-Standard.
  • Eine Sequenz, d.h. eine Abfolge von Zustandsübergängen, die nicht mit SVF dargestellt werden kann ist folgende:
    Zustand 14 – Zustand 16 – Zustand 18 – Zustand 20 – Zustand 22 – Zustand 24 – Zustand 26 – Zustand 28 – Zustand 14
  • 2 zeigt eine Ausführung einer Anordnung zur Durchführung des vorgestellten Verfahrens, die insgesamt mit der Bezugsziffer 50 bezeichnet ist. Die Darstellung zeigt ein Werkzeug 52, auf dem ein Skript abgelegt ist. Weiterhin ist eine Zugangshardware 54 mit einer Recheneinheit 56 und eine Schnittstelle 58 wiedergegeben. Diese Schnittstelle 58, bspw. eine JTAG-Schnittstelle, stellt die Verbindung zu einem Gerät 60 dar.
  • Das Skript in dem Werkzeug 52 definiert auf relativ abstraktem Niveau, welche Daten über die Schnittstelle 58 an das Gerät 60 übertragen werden. Die Recheneinheit 56 führt das Skript aus und nutzt dazu die in der Zugangshardware 54 vorhandene Schnittstelle 58.
  • 3 zeigt das Gerät 60 aus 2 und dabei insbesondere die Schnittstelle 58 in detaillierter Ansicht. Diese ist als Multi-Core-Controller ausgebildet und umfasst eine JTAG HW IF (IF: Interface; Schnittstelle) 72, einen JTAG (TAP Master) 74, einen JTAG-Kern (TAP Core 1) 76, einen JTAG-Kern (TAP Core 2) 78 und einen JTAG-Kern (TAP Core 3) 80. An die JTAG-Schnittstelle 72 werden die Steuerleitungen TCK, TMS, TDI, TDO und optional TRST angelegt. den JTAG- Kernen 76, 78 und 80 sind jeweils Register zugeordnet.
  • Zu beachten ist, dass jedes JTAG IF im Controller (TAP) den JTAG-Zustandsautomaten implementiert. JTAG HW IF 72 terminiert in einem JTAG Master 74. Um den Zugriff vom JTAG Master 74 zu einem anderen JTAG TAP zu lenken, gibt es häufig spezielle Befehle. Um den Zugriff von einem JTAG TAP zurück zum Master 74 oder zu einem anderen TAP zu lenken, muss in der Regel der JTAG Zustandsautomat in einer speziellen Sequenz durchlaufen werden.
  • 3 stellt eine Möglichkeit einer JTAG-Implementierung dar, bei der eine spezielle Sequenz durchlaufen werden muss, die mit SVF nicht dargestellt werden kann.
  • 4 stellt ein Zeitdiagramm für den Request JTAG Befehl dar. Die Darstellung zeigt neben dem Verlauf der Signale an den Steuerleitungen die Struktur des Befehls dar, nämlich in einer ersten Reihe 100 die allgemeine Befehlsstruktur und in einer zweiten Reihe 102 die konkrete Befehlsstruktur. In der ersten Reihe enthält ein erster Block 104 den Befehlsbezeichner (Command Identifier (7 Bits), ein nächster Block 106 die Zuweisungsvorschrift 1 = Request, 0 = Release (1 Bit) und ein dritter Block 108 eine Zuweisung für Anfangswerte (Initial values for TMS, TDI (8 Bits). In der zweiten Reihe 102 umfasst ein erster Block 110 den Befehlsbezeichner (Command Identifier (7 Bits), ein zweiter Block 112 die Zuweisung "1" = "Request" und ein dritter Block 114 die Zuweisungen TMS = "0", TDI = "0".
  • Die entsprechenden Verläufe der Signale an den Steuerleitungen sind darunter dargestellt, nämlich TCK 120, TMS 122, TDI 124, BREQ 126 und BGRANT 128.
  • 5 stellt ein Zeitdiagramm für ein Beispiel des Step Befehls dar. In einer ersten Reihe 150 ist die grundsätzliche Befehlsstruktur dargestellt. Eine zweite Reihe 152 umfasst eine konkrete Befehlsstruktur.
  • Die erste Reihe 150 umfasst einen ersten Block 154 für den Befehlskennzeichner (Command Identifier (8 Bits)), einen zweiten Block 156 für den TDI-Wert (TDI value (8 Bits)), einen dritten Block 158 für die Feldbreite (Field width m in Bytes (8 Bits)), einen vierten Block 160 für die Anzahl an Schritten (Number of steps n (8 Bits)) und einen fünften Block 162 für eine Zuweisung (N TMS Bits (N ≤ m·8)).
  • Die zweite Reihe 152 umfasst einen ersten Block 180 mit einem Befehlskennzeichner (Command Identifier (8 Bits)), einen zweiten Block 182 mit einer Zuweisung TDI = "0", einen dritten Block 184 mit einer Zuweisung Field width = 0x2, einen vierten Block 186 mit einer Zuweisung Number of steps = 0xE und einen fünften Block 188 mit einer Zuweisung TMS = 0x1803.
  • Die entsprechenden Verläufe der Signale an den Steuerleitungen sind darunter dargestellt, nämlich TCK 190, TMS 192 und TDI 194.
  • In 6 stellt in einer ersten Reihe 200 die allgemeine Befehlsstruktur des Data-Befehls und in einer zweiten Reihe 202 eine konkrete Struktur des Befehls Data dar.
  • Die erste Reihe 200 umfasst einen ersten Block 204 mit einem Befehlsbezeichner (Command Identifier (8 Bits)), einen zweiten Block 206 mit einer Zuweisung zur Feldbreite (Field width m in Bytes (8 Bits)), einen dritten Block 208 mit Angabe der Datenbits (Data Bits n (8 Bits)), einen vierten Block 210 mit einer Zuweisung (n TMS Bits (m·8 Bits)), einen fünften Block 212 mit einer Zuweisung (n TDI Bits (m·8 Bits)), einen sechsten Block 214 mit einer Zuweisung (n expected TDO Bits (m·8 Bits)), einen siebten Block 216 mit einer Zuweisung (n TDO mask Bits (m·8 Bits)), einen achten Block 218 mit der Zuweisung (TDI repeat value (8 Bits)), einen neunten Bock 220 mit einem Wiederholungszähler (Repeat count x (8 Bits), einen zehnten Block 222 zur Angabe der Feldbreite (Field width p in Bytes (8 Bits)), einen elften Block 224 zur Angabe der Anzahl an Schritten (Number of steps q for repeat sequence (8 Bits)) und einen zwölften Block 226 mit einer Zuweisung (q TMS Bits for repeat sequence (p·8 Bits)).
  • Die zweite Reihe 202 umfasst einen ersten Block 234 mit einem Befehlsbezeichner (Command Identifier (8 Bits)), einen zweiten Block 236 mit einer Zuweisung zur Feldbreite = 0x1 (Field width = 0x1), einen dritten Block 238 mit Angabe der Datenbits = 0x8(Data Bits = 0x8), einen vierten Block 240 mit einer Zuweisung (TMS = 0x80), einen fünften Block 242 mit einer Zuweisung (TDI = 0x48), einen sechsten Block 244 mit einer Zuweisung (expected TDO = 0x2A), einen siebten Block 246 mit einer Zuweisung (TDO mask = 0x0F), einen achten Block 248 mit der Zuweisung (repeat count x = 0xA), einen neunten Bock 250 mit der Zuweisung (TDI repeat value = "0", einen zehnten Block 252 zur Angabe der Feldbreite (Field width = 0x1), einen elften Block 254 zur Angabe der Anzahl an Schritten (Number of steps = 0x4) und einen zwölften Block 256 mit einer Zuweisung (TMS = 0x03).
  • Die entsprechenden Verläufe an den Signaleingängen sind in 7 dargestellt, nämlich TCK 260, TMS 262, TDI 264 und TDO 266. Dies bedeutet, dass an den Signalen die dargestellten Signalverläufe anzulegen sind, um den genannten Befehl auszuführen.
  • 7 stellt folglich ein Zeitdiagramm für ein Beispiel des Data Transfer Befehls mit erfolgreichem Abschluss dar, d.h. der TDO-Wert entspricht dem erwarteten TDO-Wert unter Berücksichtigung der Maske. Dies wird zu einem Zeitpunkt 270 ermittelt.
  • 8 entspricht 7, lediglich mit nicht erfolgreichem Abschluss, d.h. der Zugriff wird wiederholt, sofern die maximale Anzahl noch nicht erreicht ist. Hierbei sind wieder die Verläufe an den Signaleingängen wiedergegeben, nämlich TCK 280, TMS 282, TDI 284 und TDO 286. Der Ablauf wird beispielsweise bis zu zehnmal wiederholt (Pfeil 290). Die Überprüfung des TDO-Werts erfolgt zu einem Zeitpunkt 294
  • Das vorgestellte Verfahren ermöglicht es, einen Pfad von einem Zustand zu einem nächsten Zustand explizit vorzugeben. Im Gegensatz zu SVF werden keine impliziten Übergänge bestimmt.
  • Auf diese Weise kann von außen gezielt Einfluss auf das zu testende Gerät, das Software und/oder Hardware umfassen kann, genommen werden. Dies kann einem Testen des Geräts dienen, mögliche Anwendungen sind jedoch nicht darauf beschränkt. Somit kann das Verhalten eines Steuergeräts geändert werden, ohne dass dieses den Vorgang aktiv unterstützen muss.

Claims (8)

  1. Verfahren zum Ansteuern einer Zustandsmaschine (13), bei dem ein Skript eingesetzt wird, bei dem jeder beliebige Pfad in der Zustandsmaschine (13) beschrieben werden kann, wobei das Skript mit einer Sprache erstellt wird, welche den Befehl Data umfasst, wobei der Befehl Data ein Durchschreiten der Zustandsmaschine (13) in beliebiger Art mit Datenaustausch ermöglicht, wobei die Zustandsmaschine (13) dazu verwendet wird, eine Schnittstelle (58, 72) anzusteuern, über die eine elektronische Einheit bzw. ein Gerät (60) getestet wird.
  2. Verfahren nach Anspruch 1, wobei die Sprache einen Befehl Step umfasst, der ein Durchschreiten der Zustandsmaschine (13) in beliebiger Art ermöglicht.
  3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem Testschritte abhängig vom Ergebnis in der elektronischen Einheit wiederholt werden können.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Zustandsmaschine (13) einen TAP-Controller (11) beschreibt, mit dem eine JTAG-Schnittstelle (72) gesteuert wird, um eine elektronische Einheit anzusteuern.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Sprache zusätzliche Befehle Request und Release umfasst.
  6. Anordnung zum Ansteuern einer Zustandsmaschine (13), insbesondere zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 5, auf der ein Skript ausgeführt wird, mit dem jeder beliebige Pfad in der Zustandsmaschine (13) beschrieben werden kann, wobei das Skript mit einer Sprache erstellt ist, welche den Befehl Data umfasst, wobei der Befehl Data ein Durchschreiten der Zustandsmaschine (13) in beliebiger Art mit Datenaustausch ermöglicht.
  7. Anordnung nach Anspruch 6, die dazu dient, einen Mikrocontroller über eine Schnittstelle (58, 72) anzusteuern, ohne dass der Mikrocontroller dies aktiv unterstützen muss.
  8. Anordnung nach Anspruch 6, bei dem die Schnittstelle ein Test Access Port (TAP) einer JTAG-Schnittstelle (72) ist.
DE102012210408A 2012-06-20 2012-06-20 Verfahren zum Ansteuern einer Zustandsmaschine Pending DE102012210408A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102012210408A DE102012210408A1 (de) 2012-06-20 2012-06-20 Verfahren zum Ansteuern einer Zustandsmaschine
US13/922,604 US9304165B2 (en) 2012-06-20 2013-06-20 Method for controlling a state machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012210408A DE102012210408A1 (de) 2012-06-20 2012-06-20 Verfahren zum Ansteuern einer Zustandsmaschine

Publications (1)

Publication Number Publication Date
DE102012210408A1 true DE102012210408A1 (de) 2013-12-24

Family

ID=49713700

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012210408A Pending DE102012210408A1 (de) 2012-06-20 2012-06-20 Verfahren zum Ansteuern einer Zustandsmaschine

Country Status (2)

Country Link
US (1) US9304165B2 (de)
DE (1) DE102012210408A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201706300D0 (en) * 2017-04-20 2017-06-07 Microsoft Technology Licensing Llc Debugging tool

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW484016B (en) * 1999-07-28 2002-04-21 Hitachi Ltd Semiconductor integrated circuit and recording medium
US6961884B1 (en) * 2000-06-12 2005-11-01 Altera Corporation JTAG mirroring circuitry and methods
KR100394575B1 (ko) * 2001-04-11 2003-08-14 삼성전자주식회사 반도체 메모리의 테스트용 핀을 통한 내부정보 선택적출력방법 및 그에 따른 출력회로
US6829730B2 (en) * 2001-04-27 2004-12-07 Logicvision, Inc. Method of designing circuit having multiple test access ports, circuit produced thereby and method of using same
KR100896538B1 (ko) * 2001-09-20 2009-05-07 엔엑스피 비 브이 전자 장치
US6925583B1 (en) * 2002-01-09 2005-08-02 Xilinx, Inc. Structure and method for writing from a JTAG device with microcontroller to a non-JTAG device
JP3484181B1 (ja) * 2002-09-02 2004-01-06 沖電気工業株式会社 半導体テスト回路
US20040158784A1 (en) * 2003-02-06 2004-08-12 Transwitch Corporation Microprocessor based self-diagnostic port
US8280687B2 (en) * 2004-03-31 2012-10-02 Mentor Graphics Corporation Direct fault diagnostics using per-pattern compactor signatures
EP1922555B1 (de) * 2005-08-09 2014-10-08 Texas Instruments Incorporated Wählbarer jtag- oder trace-zugriff mit datenspeicher und ausgabe
US7417449B1 (en) * 2005-11-15 2008-08-26 Advanced Micro Devices, Inc. Wafer stage storage structure speed testing
US8044676B2 (en) * 2008-06-11 2011-10-25 Infineon Technologies Ag IDDQ testing
JP2010009642A (ja) * 2008-06-24 2010-01-14 Toshiba Corp 半導体記憶装置およびそのテスト方法
US8386867B2 (en) * 2009-07-02 2013-02-26 Silicon Image, Inc. Computer memory test structure

Also Published As

Publication number Publication date
US20130346817A1 (en) 2013-12-26
US9304165B2 (en) 2016-04-05

Similar Documents

Publication Publication Date Title
DE4313594C2 (de) Mikroprozessor
DE102006009224B4 (de) Auswahl eines Testalgorithmus in einer Steuerung für eingebauten Speicherselbsttest
DE69226001T2 (de) Hochgeschwindigkeitsprüfung einer integrierten Schaltung mit JTAG
DE69915377T2 (de) Auf-chip fehlersuchsystem
DE10333817B4 (de) Emulationsschnittstellensystem
DE3903835C2 (de)
DE3787431T2 (de) Verfahren zur Generierung einer Kandidatenliste von fehlerhaften Schaltungselementen und Verfahren zur Isolierung von Fehlern in einer logischen Schaltung unter Verwendung dieser Kandidatenliste.
DE60211659T2 (de) Verfahren und vorrichtung zur diagnose von ausfällen in einer integrierten schaltung unter verwendung von techniken des typs design-for-debug (dfd)
DE69033360T2 (de) Simulation von ausgewählten Logik-Schaltungsentwürfen
EP0186724B1 (de) Prüf- und Diagnoseeinrichtung für Digitalrechner
DE69226937T2 (de) Prüfverfahren für Leiterplatten
DE60208442T2 (de) Topologierekonfiguration einer prüfschaltung und verwendungsverfahren
DE102004009693A1 (de) Technik zum Kombinieren eines Abtasttests und eines eingebauten Speicherselbsttests
DE10127170A1 (de) Fehlersuchverfahren und Fehlersuchvorrichtung
DE102016116717A1 (de) Scan-Ketten-Schaltung, die eine Injektion eines logischen Selbsttestmusters während der Laufzeit unterstützt
DE102006019292A1 (de) Modellieren programmierbarer Einrichtungen
DE60009709T2 (de) Verfahren und vorrichtung für eine abtastprüfung mit flexibele auswahl
DE69219662T2 (de) Verfahren zur On-Line-Modifizierung von komprimierten digitalen Prüfvektoren
EP3306295A1 (de) Verfahren und vorrichtung zum testen elektronischer steuerungen, insbesondere zum testen von automobilsteuerungen
EP1469320B1 (de) Verfahren zur Generierung von Testersteuerungen
DE102012210408A1 (de) Verfahren zum Ansteuern einer Zustandsmaschine
DE102009012768A1 (de) JTAG Nachrichtenbox
EP2653850B1 (de) Verfahren und IT-System zum Durchführen von Gesamtfahrzeugtests
DE102020213809A1 (de) Verfahren zum Betreiben eines Steuergeräts beim Testen einer Software des Steuergeräts und Verfahren zum Betreiben eines Testcomputers beim Testen einer Software eines Steuergeräts
DE102008022750B4 (de) Verbesserte JTAG-Schnittstelle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings
R125 Request for further processing filed
R126 Request for further processing allowed
R084 Declaration of willingness to licence