DE60112998T2 - Automatische Prüfmustererzeugung für Funktional Register Transfer Level Schaltungen mit Zuweisungsentscheindungsdiagramme - Google Patents

Automatische Prüfmustererzeugung für Funktional Register Transfer Level Schaltungen mit Zuweisungsentscheindungsdiagramme Download PDF

Info

Publication number
DE60112998T2
DE60112998T2 DE60112998T DE60112998T DE60112998T2 DE 60112998 T2 DE60112998 T2 DE 60112998T2 DE 60112998 T DE60112998 T DE 60112998T DE 60112998 T DE60112998 T DE 60112998T DE 60112998 T2 DE60112998 T2 DE 60112998T2
Authority
DE
Germany
Prior art keywords
test
controllability
register transfer
transfer level
forwarding
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.)
Expired - Fee Related
Application number
DE60112998T
Other languages
English (en)
Other versions
DE60112998D1 (de
Inventor
Indradeep Ghosh
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE60112998D1 publication Critical patent/DE60112998D1/de
Application granted granted Critical
Publication of DE60112998T2 publication Critical patent/DE60112998T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318371Methodologies therefor, e.g. algorithms, procedures
    • 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/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318392Generation of test inputs, e.g. test vectors, patterns or sequences for sequential circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

  • Die vorliegende Erfindung betrifft die Erzeugung von Testmustern für digitale Schaltungen und insbesondere die Erzeugung von Testmustern für funktionale Register-Transfer-Pegel-Schaltungen.
  • Die Erzeugung von Testmustern für digitale Schaltungen, welche dem Wesen nach sequentiell sind, ist oft schwierig. Typischerweise ist eine große Menge an Rechenzeit und Ressourcen erforderlich, um Testmuster zu erzeugen, welche die Detektion von Haftfehlern auf dem logischen Niveau betrifft, selbst für eine moderat dimensionierte digitale Schaltung. Testbarkeits-Entwurfs-Techniken (DFT) wurden vorgeschlagen, welche die Komplexität der digitalen Schaltung durch Verändern der Schaltung vermindern. Obwohl die Testbarkeit der Schaltung zunimmt, kam es jedoch oft zu Einbußen hinsichtlich eines zusätzlichen Bereichs, Einbußen hinsichtlich der Performanz, Einbußen hinsichtlich zusätzlicher Leistung oder zu einer Kombination dieser Einbußen. Somit ist die Verwendung von DFT-Techniken nicht immer eine Option für eine einfachere Erzeugung von Testmustern.
  • Ferner sprechen konventionelle Testmuster-Generatoren die digitale Schaltung oft auf ihrem logischen Pegel an. Auf diesem Pegel kann es unmöglich sein, Testmuster für große sequentielle Schaltungen zu erzeugen, welche eine adäquate Abdeckung von Haftfehlern gewährleisten. Selbst wenn Testmuster mit großer Schwierigkeit erzeugt werden, machen Probleme, die auf diesem Pegel entdeckt werden, den Entwurfs-Prozess nicht einfacher oder reduzieren nicht die Zeit des Entwurfs-Zyklus.
  • Auf dem Register-Transfer-Pegel (RTL) wird die Größe des Problems vermindert, da die Anzahl an primitiven Elementen in der digitalen Schaltung auf diesem Pegel niedriger ist als auf dem logischen Pegel. Als Folge wird das Test-Erzeugungs-Problem vereinfacht. Da der Entwurfs-Prozess oft auf diesem Pegel beginnt, kann die Entdeckung von Fehlern einfacher bewirkt werden als auf dem logischen Pegel.
  • UBAR R ET AL: "Efficient Hierarchical Approach to Test Generation for Digital Systems" TALLIN TECHNICAL UNIVERSITY CONFERENCE PROCEEDING, 20. März 2000 (2000-03-20), Seiten 189–195, offenbart ein Verfahren gemäß dem Oberbegriff des beigefügten Anspruchs 1. In diesem Verfahren wird ein logischer, zu testender Entwurf in einen Datenpfad und Steuerteile partitioniert. Der Datenpfad wird durch das Bilden von Blöcken aufgebaut, welche Register, Multiplexer und funktionale Einheiten sind, welche beliebige, arithmetische oder logische Operationen aufweisen. Der Datenpfad wird durch ein System von Entscheidungsdiagrammen repräsentiert.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zur Erzeugung von Testsätzen zum Testen einer digitalen Register-Transfer-Pegel-Schaltung geschaffen, wobei das Verfahren die Schritte umfasst:
    Erzeugen eines Entscheidungsdiagramms der digitalen Register-Transfer-Pegel-Schaltung;
    Identifizieren von Modulen in dem Entscheidungsdiagramm; und für jedes der identifizierten Module:
    Bestimmen von Testzielen für die identifizierten Module; und
    Einstellen und Weiterleiten der Testziele durch Durchlaufen des Entscheidungsdiagramms in Überein stimmung mit Transformationsregeln, die in einer Verweistabelle gespeichert sind, um eine Testumgebung zu erhalten, wobei der Einstellungs- und Weiterleitungs-Schritt umfasst: das Einstellen von Testzielen von den Eingängen der Module auf die Haupteingänge der digitalen Register-Transfer-Pegel-Schaltung, um Einstellungspfade zu identifizieren, und Weiterleiten von Testzielen von Ausgängen der Module zu Hauptausgängen der digitalen Register-Transfer-Pegel-Schaltung, um Weiterleitungspfade zu identifizieren; und
    Verwenden von vorbestimmten Testvektoren durch die digitale Register-Transfer-Pegel-Schaltung hindurch unter Verwendung der erhaltenen Testumgebung, um einen Testsatz für das Modul zu erhalten;
    dadurch gekennzeichnet, dass das Entscheidungsdiagramm ein Zuweisungs-Entscheidungsdiagramm ist, welches eine Struktur nach Art eines Graphs ist, welche das funktionelle Verhalten der digitalen Register-Transfer-Pegel-Schaltung und eine ungefähre strukturelle Repräsentation der digitalen Register-Transfer-Pegel-Schaltung repräsentiert, und dadurch, dass die identifizierten Module schwarze Kästen umfassen, für welche das Verfahren ferner die Schritte umfasst
    Hinzufügen von vorbestimmten Einstellungs- und Weiterleitungs-Pfaden zu der Verweistabelle;
    Hinzufügen von vorbestimmten Testvektoren zu der Bibliothek;
    Bestimmen, ob der schwarze Kasten sequentiell ist und, falls dies zutrifft, Verwenden einer Testbarkeits-Entwurfs-Technik, um Takte zu manipulieren, welche bereitgestellt werden, einem internen Abschnitt des schwarzen Kastens während der Einstellung und Weiterleitung eines Testvektors von den Haupteingängen zu den Eingängen des internen Abschnitts und zu den Hauptausgängen von den Ausgängen des internen Abschnitts; und
    Testen des schwarzen Kastens unter der Verwendung der vorbestimmten Einstellungs- und Weiterleitungs-Pfade und der vorbestimmten Testvektoren.
  • Somit stellt die vorliegende Erfindung einen Weg dar, um Testmuster in der Form von Testsätzen für Register-Transfer-Pegel-Schaltungen zu erzeugen, indem ein Zuweisungs-Entscheidungsdiagramm der digitalen Register-Transfer-Pegel-Schaltung erzeugt wird. Von dem Zuweisungs-Entscheidungsdiagramm werden Module identifiziert und Ziele bestimmt, beispielsweise mit einer neun-wertigen symbolischen Algebra. Die Ziele werden eingestellt und weitergeleitet, indem das Zuweisungs-Entscheidungsdiagramm durchlaufen wird, um eine Testumgebung zu erhalten. Vorbestimmte Testvektoren werden durch die digitale Register-Transfer-Pegel-Schaltung hindurch unter der Verwendung der erhaltenen Testumgebung weitergeleitet. Das Zuweisungs-Entscheidungsdiagramm umfasst eine Struktur nach Art eines Graphs, welche das funktionelle Verhalten der digitalen Register-Transfer-Pegel-Schaltung und eine ungefähre strukturelle Repräsentation der digitalen Register-Transfer-Pegel-Schaltung repräsentiert. Vorab berechnete Testvektoren für eines der identifizierten Module werden auf die Testumgebung angewandt, um einen Testsatz auf Systemebene für das identifizierte Modul zu erhalten und Testsätze auf Systemebene für jedes der identifizierten Module werden verknüpft, um einen vollständigen Testsatz für die digitale Register-Transfer-Pegel-Schaltung zu erhalten.
  • Es wird nur zum Zwecke der beispielhaften Erläuterung auf die beigefügten Zeichnungen Bezug genommen, in denen:
  • 1 ein Flussdiagramm einer Ausführungsform des Testmuster-Erzeugungs-Prozesses der vorliegenden Erfindung zeigt;
  • 2 eine Ausführungsform eines Zuweisungs-Entscheidungsdiagramms, das durch den Testmuster-Erzeugungs-Prozess der vorliegenden Erfindung verwendet wird, zeigt;
  • 3 eine Ausführungsform einer funktionalen RTL-Schaltung, welche durch eine Hardware-Beschreibungs-Sprache repräsentiert wird, zeigt;
  • 4 eine Ausführungsform eines Zuweisungs-Entscheidungsdiagramms der in 3 dargestellten RTL-Schaltung zeigt;
  • 5 ein Zustands-Transitions-Diagramm für die in 3 dargestellte RTL-Schaltung zeigt;
  • 6 ein Flussdiagramm einer Ausführungsform eines Unterprozesses zeigt, der eine Einstellungs- und Weiterleitungs-Suche eines internen Abschnitts eines Zuweisungs-Entscheidungsdiagramms durchführt;
  • 7 ein Blockdiagramm einer Ausführungsform von Zielen zeigt, welche in einem Unterprozess gespeichert und manipuliert werden, wie in 5 gezeigt ist;
  • 8 ein Flussdiagramm einer Ausführungsform des Unterprozesses, der die gefundene Testumgebung testet, zeigt;
  • 9 ein Flussdiagramm einer Ausführungsform des Unterprozesses zum Testen von in einer digitalen Schaltung identifizierten Speicherelementen zeigt; und
  • 10 ein Flussdiagramm einer Ausführungsform des Unterprozesses zum Testen von in einer digitalen Schaltung identifizierten schwarzen Kästen zeigt.
  • 1 zeigt ein Flussdiagramm einer Ausführungsform eines Testmuster-Erzeugungs-Prozesses der vorliegenden Erfindung. Im Block 101 empfängt der Prozess eine funktionale RTL-Schaltungs-Beschreibung. In Block 103 identifiziert der Prozess jeden Prozess und die gleichzeitigen RTL-Anweisungen in jeder Blatt-Komponente der RTL-Schaltung. In Block 105 wandelt der Prozess die identifizierten RTL-Anweisungen in Zuweisungs-Entscheidungsdiagramme (ADDs) um. Interne Abschnitte oder Module von einem der ADDs werden im Block 107 angesprochen, z.B. arithmetische Module. In Block 109 wird jeder angesprochene interne Abschnitt getestet. Die internen Abschnitte des ADD werden unter Verwendung einer neun-wertigen symbolischen RTL-Einstellung und Weiterleitung getestet. Die RTL-Einstellung und Weiterleitung durchläuft Pfade von den Haupteingängen der Schaltung zu den Eingängen des internen Abschnitts und Pfade von den Ausgängen des internen Abschnitts zu den Hauptausgängen. Die neun-wertige symbolische Algebra, die bei der Einstellung und Weiterleitung verwendet wird, wird weiter unten im Detail diskutiert.
  • In einer Ausführungsform ist die Einstellung und Weiterleitung eine Suche vom Branch-and-Bound-Typ mit Rückwärtsverarbeitung, welche mit einstellbaren Rückwärtsverarbeitungs- und Such-Zeitgrenzen verwendet wird. Falls der Prozess eine hierarchische RTL-Schaltungs-Beschreibung in Block 101 empfängt, wird ein hierarchischer Suchdurchgang verwendet. Alle Transformationen über Operationen basieren auf der neun-wertigen Algebra und werden in einer Verweistabelle gespeichert. In Block 111 bestimmt der Prozess, ob das Testen der internen Abschnitte zu einer Testumgebung führt. Falls in Block 111 der Prozess bestimmt, dass eine Testumgebung nicht gefunden wurde, bestimmt dann der Prozess in Block 113, ob Heuristiken zuvor verwendet wurden. Falls der Prozess bestimmt, dass Heuristiken nicht verwendet wurden, verwendet der Prozess dann Heuristiken in Block 115. Die Verwendung von Heuristiken erhöht den Testumfang des internen Abschnitts. Somit geht der Prozess zum Block 109 zurück, um das Testen der internen Abschnitte des ADD unter Verwendung der in Block 115 bereitgestellten Heuristiken fortzusetzen.
  • Falls der Prozess in Block 113 bestimmt, dass Heuristiken verwendet wurden, und keine Testumgebung in Block 111 gefunden wurde, bestimmt der Prozess dann, dass eine Testumgebung für den angesprochenen internen Abschnitt nicht bestimmt werden kann. Somit setzt sich der Prozess in Block 109 fort, um den nächsten internen Abschnitt anzusprechen.
  • Falls der Prozess in Block 111 bestimmt, dass eine Testumgebung bestimmt wurde, wird ein systembasierter Testsatz für die internen Abschnitte in Block 117 erzeugt. In Block 119 wird der nächste interne Abschnitt des ADD, z.B. andere arithmetische Module, angesprochen. Der Prozess setzt sich auch fort, um die anderen internen Abschnitte des ADD und alle der ADDs (logische Felder, Speichereinheiten, Zwischenverbindungen, zufällige logische Blöcke und schwarze Kästen) zu testen, bis der Prozess in Block 121 bestimmt, dass alle internen Abschnitte der ADDs getestet wurden. In Block 123 werden die systembasierten Testsätze, die für alle (in Block 115) getesteten in ternen Abschnitte erzeugt wurden, verknüpft, um einen vollständigen RTL-Schaltungs-Testsatz zu erzeugen, und der Prozess endet.
  • In Bezug auf den Block 105, in dem der Prozess die RTL-Anweisungen in ein ADD umwandelt, zeigt 2 ein solches Zuweisungs-Entscheidungsdiagramm. Eine digitale Schaltung umfasst Haupteingänge, Hauptausgänge und interne Speicherelemente. Als solches ist das digitale System ein Satz von Berechnungen auf den Werten, die an den Haupteingängen anliegen, wobei die Ergebnisse der Berechnungen in den internen Speicherelementen gespeichert werden oder zu den Hauptausgängen weitergegeben werden. Somit repräsentiert ein Zuweisungs-Entscheidungsdiagramm eine digitale Schaltung als ein Satz von bedingten Zuweisungen zu einem oder mehreren Zielen, in dem die Ziele Speicherelemente oder Ausgangs-Ports eines digitalen Systems repräsentieren.
  • Das Zuweisungs-Entscheidungsdiagramm ist ein uni-direktionaler azyklischer Graph. Das Zuweisungs-Entscheidungsdiagramm umfasst vier Bereiche, einen Zuweisungs-Wert-Bereich 21, eine Zuweisungs-Bedingung 23, eine Zuweisungs-Entscheidung 25 und ein Zuweisungs-Ziel 27. Jeder Bereich umfasst einen oder mehrere Knoten, Lese-Knoten, Schreib-Knoten, Operations-Knoten oder Zuweisungs-Entscheidungs-Knoten. Jeder Knoten weist unterschiedliche Attribute auf und ist mit anderen Knoten verbunden. Verbindungen zwischen Knoten werden durch uni-direktionale Kanten repräsentiert.
  • Der Zuweisungs-Wert-Bereich 21 repräsentiert eine Berechnung von Werten, welche abschließend einem Speicherelement oder einem Ausgangs-Port zugewiesen werden. Jeder Wert wird von den aktuellen Inhalten der Eingangs-Ports, Speicherelemente oder Konstanten berechnet und wird als ein Lese-Knoten repräsentiert, das heißt Lese-Knoten R1 und R2. Die Berechnung wird durch einen Datenfluss-Graphen mit Operations-Knoten O1 und O2 repräsentiert, welche dem Wesen nach beispielsweise logisch oder arithmetisch sind.
  • Der Zuweisungs-Bedingungs-Bereich 23 beinhaltet Lese-Knoten R3–R6, welche mit Operations-Knoten O3–O7 verbunden sind. Der Lese-Knoten R5 repräsentiert ein Zustands-Register, welches eine Speichereinheit repräsentiert, die als ein Steuer-Schritt-Sequenzer für einen Mehrfach-Zustands-Entwurf arbeitet. Das heißt, das Zustands-Register umfasst eine Reihe von Steuer-Instruktionen oder Zuweisungs-Werten, welche durch eine Zuweisungs-Bedingung sequenziert werden. Die Endprodukte der Berechnung AS1 und AS2 sind Boolsche Werte und repräsentieren Zuweisungs-Bedingungs-Selektionen. Als solche fungieren die Endprodukte oder Zuweisungs-Selektionen AS1 und AS2 als Leitbedingungen für den Zuweisungs-Wert-Bereich 21.
  • Der Zuweisungs-Entscheidungs-Bereich 25 umfasst einen Zuweisungs-Entscheidungs-Knoten AD1, der einen Wert aus einem Satz von Werten auswählt, welche an den Eingängen des Zuweisungs-Entscheidungs-Bereichs bereitgestellt werden. Die Eingänge werden von dem Zuweisungs-Wert-Bereich bereitgestellt, und Selektions-Eingaben werden von dem Zuweisungs-Bedingungs-Bereich bereitgestellt. Falls die Zuweisungs-Selektion AS1 wahr ist, wird somit ein Zuweisungs-Eingang AI1 selektiert. Falls die Zuweisungs-Selektion AS2 wahr ist, wird der Zuweisungs-Eingang AI2 selektiert. Falls der Selektions-Eingang AS1 und der Selektions-Eingang AS2 nicht wahr sind, wird weder der Eingang AI1 noch AI2 selektiert. Da nur einer der Eingänge AI1 oder AI2 gleichzeitig selektiert werden kann, setzen sich die Selektions-Eingänge AS1 und AS2 nicht gleichzeitig auf wahr.
  • Der Zuweisungs-Ziel-Bereich 27 umfasst Schreib-Knoten. In der beschriebenen Ausführungsform umfasst der Zuweisungs-Ziel-Bereich Schreib-Knoten WI1. Der Schreib-Knoten empfängt einen Wert von dem Zuweisungs-Entscheidungs-Bereich, das heißt den selektierten Wert von dem Zuweisungs-Entscheidungs-Knoten AD1. Da auch zu einem gegebenen Zeitpunkt nur einer der Zuweisungs-Eingänge zu dem Zuweisungs-Entscheidungs-Knoten nur auf wahr gesetzt ist, wird nur ein Wert dem Zuweisungs-Ziel gleichzeitig zugewiesen. Somit sind alle Zuweisungs-Bedingungen für ein Zuweisungs-Ziel wechselseitig exklusiv.
  • In einer Ausführungsform werden Speichereinheiten mit multiplen Schreib-Ports (nicht gezeigt) durch Mehrfach-Zuweisungs-Entscheidungs-Knoten repräsentiert, wobei jeder Zuweisungs-Entscheidungs-Knoten Zuweisungen zu einem der multiplen Schreib-Ports repräsentiert. Als solches wird ein Zuweisungs-Wert auf einem Lese-Port über den Zuweisungs-Entscheidungs-Knoten nur geschrieben, falls die entsprechende Zuweisungs-Bedingung den Wert wahr annimmt. Speichereinheiten mit multiplen Lese-/Schreib-Ports (nicht gezeigt) werden durch ein zwei-dimensionales Feld mit einem Index repräsentiert, der jedem Lese-/Schreib-Port zugewiesen ist. Der Index identifiziert eine Position, von der ein Zuweisungs-Wert gelesen wird oder auf den der Wert geschrieben wird. Speichereinheiten mit multiplen Lese-Ports werden als Lese-Knoten mit multiplen Ausgangsleitungen repräsentiert, wie z.B. die Lese-Knoten R1 und R2.
  • In einer Ausführungsform ist die Größe des Zuweisungs-Entscheidungsdiagramms proportional zu der Anzahl der bedingten Zuweisungen zu allen Ports und Speichereinheiten. Das Zuweisungs-Entscheidungsdiagramm repräsentiert Bedingungen und Berechnungen nach Art eines konsistenten und nahtlosen Datenflusses. Als solches bildet das Zuweisungs-Entscheidungsdiagramm eine endgültige strukturelle Netzliste, ohne sich auf spezifische Synthese-Entscheidungen zu verlassen, was das Lokalisieren von Haftfehlern erleichtert. Durch die Integration von Steuerung und Daten, wie durch das Zuweisungs-Entscheidungsdiagramm repräsentiert wird, werden auch Separations-Probleme der Steuer- und Datenpfade während des Testens vermieden.
  • Wie insbesondere in Block 101 der zuvor erwähnten 1 gezeigt ist, empfängt der Prozess eine RTL-Schaltungs-Beschreibung. 3 zeigt eine funktionale RTL-Schaltung, welche durch eine Hardware-Beschreibungs-Sprache repräsentiert wird. Von einer Hardware-Beschreibungs-Sprache, wie z.B. VHDL oder Verilog, wird jeder Prozess in ein Zuweisungs-Entscheidungsdiagramm konvertiert für einen Kombinations-Prozess oder einen sequentiellen Prozess einer finiten Zustands-Maschine (FSM) werden die beiden Prozesse in ein Zuweisungs-Entscheidungsdiagramm kombiniert. 4 zeigt das Zuweisungs-Entscheidungsdiagramm der RTL-Schaltungs-Beschreibung der 3. Beispielsweise wird die RTL-Anweisung 301 (3) durch die Lese-Knoten A, B, den Operations-Knoten 63, den Zuweisungs-Entscheidungs-Knoten 41 und den Schreib-Knoten NEXT_F repräsentiert. Reset, APORT, BPORT, CPORT, DPORT, E und Reset repräsentieren Haupteingänge und Oport repräsentieren Hauptausgänge.
  • NEXT_A, NEXT_B, NEXT_C, NEXT_D, NEXT_F, NEXT_G, NEXT_O und NEXT_STATE sind Zuweisungs-Ziele. Current_state repräsentiert ein Zustands-Register, eine Speichereinheit.
  • A, B, C, D, E, F, 0, G, 3 und O sind Zuweisungs-Werte, welche Lese-Knoten repräsentieren. Zusätzlich sind APORT, BPORT, CPORT, DPORT, S0, S1, S2 und S3 Zuweisungs-Werte, welche als Lese-Knoten repräsentiert werden. Verschiedene Operations-Knoten sind mit einigen der Lese-Knoten gekoppelt und repräsentieren Berechnungen, z.B. A + B, A – B, usw. Diese Lese-Knoten und Operations-Knoten sind der Zuweisungs-Wert-Bereich des Zuweisungs-Entscheidungsdiagramms. Der Zuweisungs-Wert-Bereich ist mit einem Zuweisungs-Entscheidungs-Bereich gekoppelt, der Zuweisungs-Entscheidungs-Knoten 31, 33, 35, 37, 39, 41, 43 und 45 beinhaltet. Der Zuweisungs-Bedingungs-Bereich, der den Selektions-Eingang zu dem Zuweisungs-Entscheidungs-Bereich bereitstellt, umfasst Lese-Knoten S0, S1, S2, S3 und RESET und verschiedene Operations-Knoten, die mit dem Lese-Knoten gekoppelt sind.
  • Ein Zustands-Transitions-Graph wird auch für Zustands-Variablen erzeugt, z.B. Current_state, wie in 5 gezeigt ist. Die Zustände, welche durch das Setzen oder Rücksetzen der Eingangsleitungen erreicht werden, sind zurückgesetzte Zustände. Die Zustände, bei denen Daten von RTL-Variablen gelesen werden, welche Eingänge zu dem Prozess sind, wo die FSM existiert, sind Eingangs-Zustände. In 5 ist der zurückgesetzte Zustand der Zustand SO und der Eingangs-Zustand ist der Zustand S0. Der Ausgangs-Zustand ist Zustand S3. Ausgangs-Zustände sind Zustände, bei denen die Ergebnisse der Berechnungen innerhalb der FSM in RTL-Variablen geschrieben werden, welche Ausgänge zu dem Prozess sind, wo der FSM existiert.
  • Insbesondere in Block 109 der zuvor erwähnten 1 wird in einer Ausführungsform eine Neun-Symbol-Algebra verwendet, um symbolische Einstellung und Weiterleitung der RTL-Schaltung durchzuführen. Die neun Symbole umfassen die allgemeine Regelbarkeit Cg, die Regelbarkeit auf null, C0, die Regelbarkeit auf eins, C1, die Regelbarkeit für alle auf eins, Ca1, die Regelbarkeit auf eine Konstante, Cq, die Regelbarkeit auf einen z-Wert, Cz, die Regelbarkeit auf einen Zustand, Cs, die Beobachtbarkeit, O, und die komplementäre Beobachtbarkeit O'. Eine ähnliche symbolische Algebra wurde für eingebaute selbsttestende Schemas auf strukturellen digitalen Schaltungsentwürfen verwendet. Ein solches Schema wird in "A BISTScheme for RTL Circuits Based on Symbolic Testability Analysis" von Gosh et al. beschrieben, dessen Offenbarung hiermit durch Verweis einbezogen wird.
  • Das Symbol für die allgemeine Regelbarkeit einer RTL-Variablen repräsentiert die Fähigkeit des Symbols, seinen Wert auf einen beliebigen Wert zu regeln. Falls beispielsweise ein allgemeines Regelbarkeits-Symbol auf einer bestimmten RTL-Variablen mit einer Byte-Breite "n" bestimmt wird, ist die RTL-Variable dann auf beliebige 2n Werte regelbar, welche für diese RTL-Variable von den Haupteingängen der RTL-Schaltung möglich sind.
  • Das Symbol für die Regelbarkeit auf null einer RTL-Variablen repräsentiert die Fähigkeit, die RTL-Variable auf den Wert null zu regeln. Die Regelbarkeit auf ein Symbol einer RTL-Variablen repräsentiert die Fähigkeit, die RTL-Variable auf einen Wert eins zu regeln. Das Symbol für die Regelbarkeit für alle auf eins einer RTL-Variablen repräsentiert die Fähigkeit, die RTL-Variable auf einen Wert für alle auf eins zu regeln. Beispielsweise haben alle Bits einen Wert von eins für eine Multi-Byte-Variable. Demgegenüber weist für das Symbol der Regelbarkeit auf eins nur ein einzelnes Bit einen Wert von eins für eine Multi-Byte-Variable auf. Jedoch ist das Symbol für die Regelbarkeit für alle auf eins identisch mit dem Symbol für die Regelbarkeit auf eins für eine RTL-Variable mit einem einzelnen Bit. Für eine 2-Komplementär-Arithmetik entspricht die Regelbarkeit für alle auf eins der Regelbarkeit auf einen Minus-Eins-Wert.
  • Das Symbol für die Regelbarkeit auf eine Konstante einer RTL-Variablen repräsentiert die Fähigkeit, die RTL-Variable auf einen festen konstanten Wert zu regeln. Für eine "n"-Byte-RTL-Variable repräsentiert das Symbol für die Regelbarkeit auf eine Konstante beispielsweise die Fähigkeit, die RTL-Variable auf einen einzelnen konstanten Wert aus 2n möglichen Werten zu regeln. Für eine Variable aus einem einzelnen Bit repräsentiert das Symbol für die Regelbarkeit auf eine Konstante die Fähigkeit, die RTL-Variable auf entweder null oder eins zu regeln. Das Symbol für die Regelbarkeit auf einen z-Wert einer RTL-Variablen repräsentiert die Fähigkeit, die RTL-Variable auf einen z-Zustand mit hoher Impedanz zu regeln. Das Symbol für die Regelbarkeit auf einen Zustand einer Zustands-Variablen, welche in einer finiten Zustands-Maschine definiert ist, repräsentiert die Fähigkeit, die Zustands-Variable auf einen bestimmten Zustand zu regeln. Das Symbol für die Beob achtbarkeit einer RTL-Variablen repräsentiert die Fähigkeit, einen Fehler bei einer RTL-Variablen zu beobachten. Beispielsweise zeigt in einer Multi-Byte-RTL-Variablen das Symbol für die Beobachtbarkeit an, dass ein falscher Wert in der RTL-Variablen vorhanden ist, welcher von dem korrekten oder erwarteten Wert abweicht. Das Symbol für die komplementäre Beobachtbarkeit ist anwendbar für RTL-Variablen aus einem einzelnen Bit und zeigt null/einen Fehler an, das heißt der erwartete Wert der RTL-Variablen ist Null und der falsche Wert ist eins.
  • Das Symbol für die allgemeine Regelbarkeit einer RTL-Variablen repräsentiert auch die Symbole für Regelbarkeit auf null, die Regelbarkeit auf eins, die Regelbarkeit für alle auf eins und die Symbole für die Regelbarkeit auf eine Konstante für die gleiche RTL-Variable. Analog repräsentiert entweder das Symbol für die Regelbarkeit auf null, für die Regelbarkeit auf eins oder für die Regelbarkeit für alle auf eins in ähnlicher Weise das Symbol für die Regelbarkeit auf einen konstanten Wert für die gleiche RTL-Variable.
  • Unter Verwendung von neun Symbolen werden Transformations-Regeln für die Einstellung und die Weiterleitungen formuliert. Beispielsweise kann die allgemeine Regelbarkeit an dem Ausgang einer Additions-Operation in ein Symbol für die allgemeine Regelbarkeit an einem Eingang der Additions-Operation und ein Symbol für die Regelbarkeit auf eine Konstante an dem anderen Eingang zu der Additions-Operation transformiert werden. Auf ähnliche Weise kann ein Symbol für die Beobachtbarkeit an einem Eingang einer Multiplikations-Operation transformiert werden in ein Symbol für die Beobachtbarkeit an dem Ausgang der Multipli kations-Operation und ein Symbol für entweder die Regelbarkeit auf eins oder die Regelbarkeit für alle auf eins an dem anderen Eingang der Multiplikations-Operation. In einer Ausführungsform werden Transformations-Regeln in einer Verweistabelle gespeichert.
  • Da digitale Schaltungen oft Busse enthalten, welche sich teilen und verbinden, werden Bit-Indizes zu den RTL-Variablen hinzugefügt. Da die digitale Schaltung dem Wesen nach sequentiell sein kann, werden auch Zeitrahmen in der Neun-Symbol-Algebra eingeführt. Somit wird durch die Verwendung der Neun-Symbol-Algebra eine RTL-Einstellungs-/Weiterleitungs-Aufzeichnung definiert als ein sechs-wertiger Satz umfassend ein ATGP-Ziel, den Variablen-Namen, den oberen Bit-Index und den unteren Bit-Index der Variable, den Zeitrahmenwert und einen Zustandswert. Beispielsweise repräsentiert Cg(a[7:0], 0, –), dass das Ziel der allgemeinen Regelbarkeit einer RTL-Variablen a[7:0] in dem Zeitrahmen 0 erfüllt sein muss. Analog repräsentiert Cs (Current_state, 3, S0), dass das Ziel der Regelbarkeit der Zustands-Variablen Current_state auf den Zustand S0 in dem Zeitrahmen 3 erfüllt sein muss.
  • Als solche können die Einstellungs- und Weiterleitungs-Pfade der RTL-Schaltung unter Verwendung der Neun-Symbol-Algebra beschrieben werden. Beispielsweise spricht der Prozess einen internen Abschnitt des Zuweisungs-Entscheidungsdiagramms an, das heißt z.B. den Operations-Knoten 63, das heißt die Additions-Operation, im Zustand S1 in einem arithmetischen Modul. Die Steuerung von zwei Eingängen, Lese-Knoten A und B, der Additions-Operation, der Operations-Knoten 63, ist erforderlich. Ebenso ist die Beobachtung des Lese-Knotens NEXT_F und das Durchlaufen der finiten Zustands-Maschine erforderlich, um die Einstellungs- und Weiterleitungs-Ziele zu erfüllen. In 5 verläuft das Durchlaufen der finiten Zustands-Maschine von dem Zustand S0, einem rückgesetzten Zustand, zu dem Zustand S1, einem Eingangs-Zustand, zu dem Zustand S3, einem Ausgangs-Zustand.
  • 6 zeigt ein Flussdiagramm einer Ausführungsform des Unterprozesses, der die Einstellungs- und Weiterleitungs-Suche eines internen Abschnitts des Zuweisungs-Entscheidungsdiagramms durchführt. In Block 201 werden anfängliche Ziele für den angesprochenen internen Abschnitt, z.B. den Additions-Operations-Knoten festgelegt. Beispielsweise sind für den Additions-Operations-Knoten 63 anfängliche Ziele die Beobachtbarkeit der Ausgabe der Additions-Operation und die allgemeine Regelbarkeit der zwei Eingänge auf die Additions-Operation. Das CS-Ziel, die Regelbarkeit auf einen Zustand, ist auch umfasst, da die Additions-Operation in dem Zustand S1 ausgeführt wird. In Block 203 leitet der Unterprozess das erste Ziel durch das Zuweisungs-Entscheidungsdiagramm weiter basierend auf der Funktionalität der RTL-Module, die durch das ADD beschrieben werden. In Block 205 bestimmt der Unterprozess, ob ein Haupteingang erreicht wurde. Falls in Block 205 der Unterprozess bestimmt, dass ein Haupteingang erreicht wurde, wird das Ziel als erfüllt eingestuft und somit in einer Tabelle gespeichert, welche die Testumgebung für den internen Abschnitt des angesprochenen ADD repräsentiert. In Block 211 bestimmt der Unterprozess, ob alle Ziele erfüllt worden sind und, falls der Unterprozess bestimmt, dass alle Ziele erfüllt worden sind, geht der Unterprozess zurück. Falls der Unterprozess bestimmt, dass mehrere Ziele verbleiben, wel che erfüllt sein müssen, ruft der Unterprozess dann in Block 209 das nächste Ziel ab und leitet in Block 203 das neue Ziel weiter.
  • Falls in Block 205 der Unterprozess bestimmt, dass ein Haupteingang nicht erreicht wurde, transformiert der Unterprozess dann das Ziel in Block 213. In einer Ausführungsform wird das Ziel basierend auf vorbestimmten Aufzeichnungen in einer Verweistabelle transformiert. Sofern erforderlich, werden auch die Zeitrahmen der Ziele inkrementiert oder dekrementiert. In Block 215 bestimmt der Unterprozess, ob das neue Ziel oder die neuen Ziele mit anderen Zielen im Widerspruch stehen, z.B. mit bereits erfüllten Zielen. Falls der Unterprozess bestimmt, dass die neuen Ziele nicht mit anderen Zielen im Widerspruch stehen, wiederholt der Unterprozess das Durchlaufen des ADD unter der Verwendung der neuen Ziele in Block 203. Falls jedoch in Block 215 der Unterprozess bestimmt, dass ein Widerspruch vorhanden ist, macht der Unterprozess in Block 217 eine Zurückverfolgung. Als solche verfolgt die Suche einen Weg zurück, das heißt sie verwirft eine Zwischenentscheidung und setzt sich in eine neue Richtung fort, falls die Suche in einer Richtung scheitert. In einer Ausführungsform ist ein Limit für die Zurückverfolgung und/oder ein Zeitlimit für jede Suche festgelegt. Der Prozess setzt sich dann wiederholt in Block 213 fort, um neue Ziele zu erzeugen, und der Prozess bestimmt wiederholt im Schritt 215, ob die neuen Ziele wieder mit den anderen Zielen im Widerspruch stehen. Die weitergeleiteten Ziele werden auf ähnliche Weise durch den Unterprozess bestimmt und erfüllt. Jedoch sind in Block 205 statt der Haupteingänge die Hauptausgänge die verwendete Bedingung, um zu bestimmen, ob das Ziel erfüllt ist.
  • 7 zeigt ein Blockdiagramm von Zielen, die in dem Unterprozess der Einstellungs- und Weiterleitungs-Suche gespeichert und manipuliert werden, wie in Bezug auf 6 beschrieben wurde, und zwar zum Testen des arithmetischen Moduls. Die anfänglichen Ziele werden in einen Stapel 551 gelegt. Gemäß der Funktionalität der RTL-Module werden die Ziele von der Oberseite des Stapels transformiert. Wie durch die Markierung 553 angedeutet ist, sind einige Zwischenschritte beim Durchlaufen durch die Steuerlogik zwecks besserer Lesbarkeit nicht gezeigt, da die Anzahl der Zwischenschritte sehr hoch sein kann. Die Markierung 553 zeigt eine multiple Wahlmöglichkeit an, in der eine oder mehrere Wahlmöglichkeiten für die Transformation und die Zurückverfolgung an dem angezeigten Punkt erforderlich sein können. Zur Einstellung wird die Zustands-Sequenz bestimmt, wie in der ersten Reihe der Stapel gezeigt ist, welche Verschiebe-Ziele und Ziele enthält, die erfüllt sind. Die Einstellungs-Pfade von den Operations-Eingängen zu der Additions-Operation zu den Haupteingängen werden bestimmt, wie in den Stapeln 551E–F gezeigt ist. Weiterleitungs-Pfade, welche mit dem in 5 gezeigten Zustands-Transitions-Graphen übereinstimmen, werden auch bestimmt, wie in den Stapeln 551G–M gezeigt ist.
  • In Bezug auf 47 wird das Durchlaufen des Zuweisungs-Entscheidungsdiagramms zur Lösung der Einstellungs-Ziele im folgenden noch detaillierter beschrieben. Wenn das Zuweisungs-Entscheidungsdiagramm durchlaufen wird und falls ein Lese-Knoten erreicht wird und der Lese-Knoten nicht ein Hauptein gang oder ein Eingang zu dem Prozess ist, das heißt ein aktueller Zustand, wird das Ziel auf einen entsprechenden Lese-Knoten verschoben. Beispielsweise wird das Ziel der allgemeinen Regelbarkeit der Variablen B, der Lese-Knoten B, zu dem entsprechenden Schreib-Knoten NEXT_B verschoben. Falls jedoch ein Lese-Knoten erreicht wird und der Lese-Knoten ein Haupteingang ist, ist das Ziel erfüllt. Auch falls der erreichte Lese-Knoten ein Prozess-Eingang ist, wird das Ziel zu dem Schreib-Knoten eines anderen Prozesses oder einer gleichzeitigen RTL-Anweisung, welche den momentanen Prozess speist, verschoben.
  • Alternativ wird, falls ein Schreib-Knoten erreicht ist, das entsprechende Ziel zu einem der Zuweisungs-Wert-Eingänge des Zuweisungs-Entscheidungs-Knotens verschoben, der den erreichten Lese-Knoten speist oder versorgt, und die Regelbarkeit auf ein Ziel ist für die entsprechende Bedingungs-Eingabe zu dem Zuweisungs-Entscheidungs-Knoten erforderlich. Die Anzahl an Wahlmöglichkeiten der Einstellungs-Pfade basiert auf der Anzahl an Eingängen, welche den Zuweisungs-Entscheidungs-Knoten versorgen. Als solches kann eine Zurückverfolgung erforderlich sein, wie in den Stapeln 551A–B gezeigt ist.
  • Falls es einen Taktflanken-Test-Expressions-Unterbaum gibt, das heißt den Unterbaum 331, mit Gewichtungs- oder Ereignis-Anweisungen in dem Expressions-Unterbaum, der die Bedingungs-Eingabe dem Zuweisungs-Entscheidungs-Knoten einspeist, wird dann die Anzahl an Zeitrahmen des Ziels um Eins dekrementiert, wie in dem Stapel 551B und 551D gezeigt ist. Falls ein Ausgang des Operations-Knotens, das heißt Ausgang 51 (3) erreicht ist, wird der Ausgang gemäß der Funktionalität der Operation und der RTL-Algebra transformiert. Transformationen für unterschiedliche RTL- und logische Operationen werden in einer Verweistabelle gespeichert. Das Bestimmen von Weiterleitungs-Pfaden ist ähnlich zu dem oben beschriebenen Bestimmen von Einstellungs-Pfaden, jedoch in Rückwärtsrichtung, welche sich von den Hauptausgängen zu den Operations-Ausgängen fortsetzt. Während des Weiterleitens von dem Steuer-Eingang eines Zuweisungs-Entscheidungs-Knotens zu dem Ausgang des Zuweisungs-Entscheidungs-Knotens müssen auch der entsprechende Zuweisungs-Wert-Eingang und der komplementäre Bedingungswert-Eingang des Zuweisungs-Entscheidungs-Knotens unterschiedliche Werte aufweisen.
  • Neu zugewiesene Ziele können mit Zielen im Widerspruch stehen, welche zuvor erfüllt worden sind. Falls beispielsweise die allgemeine Regelbarkeit auf eine Variable in einem bestimmten Zeitrahmen erforderlich ist, wenn die allgemeine Regelbarkeit der gleichen Variablen in dem gleichen Zeitrahmen schon bestimmt worden ist, kann ein Widerspruch derart entstehen, dass das Regeln einer Variablen auf zwei unterschiedliche beliebige Werte in dem gleichen Zeitrahmen nicht möglich ist. Analog kann die Regelbarkeit auf null einer Variablen mit der Regelbarkeit auf eins für die gleiche Variable im Widerspruch stehen. Somit wird eine Liste von Zielen, welche erfüllt worden sind, aufrechterhalten und derart berücksichtigt, dass neue Ziele, welche einen Widerspruch erzeugen, nicht in den Stapel eingegeben werden.
  • Während der Einstellung und Weiterleitung beginnt die Nummer des Zeitrahmens bei null für die anfänglichen Ziele und dekrementiert während der Einstellung, das heißt wird negativer, und inkrementiert während der Weiterleitung, das heißt wird positiver.
  • Während der Einstellung und Weiterleitung wird eine Einstellungsgrenze in einem Stapel mit den Zielen, welche erfüllt sein müssen, aufrechterhalten. Die Einstellungsgrenze ist ein Satz von Zielen, welche einen Satz von Gattern repräsentiert, deren Ausgangswert bekannt ist, jedoch nicht durch seinen Eingangswert impliziert ist. Auch während der Weiterleitung wird eine O-Grenze aufrechterhalten. Die O-Grenze ist ein Satz von Zielen, welche einen Satz von Gattern repräsentiert, welche einen Ausgabewert aufweisen, der beliebig ist, jedoch einen oder mehrere Fehlerwerte an den Eingängen des Gatters aufweist.
  • Wenn der Satz an Einstellungs- und Weiterleitungs-Pfaden für den angesprochenen internen Abschnitt einmal bestimmt ist, beispielsweise für die Additions-Operation, ist eine Testumgebung für die Additions-Operation gefunden. 8 ist ein Flussdiagramm einer Ausführungsform des Unterprozesses der Verwendung der Testumgebung, um systembasierte Tests zu erzeugen. In Block 301 setzt der Unterprozess den negativsten Zeitrahmen des Ziels in der Einstellungs-/Weiterleitungs-Aufzeichnung, die in dem Einstellungs-/Weiterleitungs-Unterprozess gefunden wurde, auf null. Der Unterprozess aktualisiert auch die anderen Zeitrahmen in den anderen Aufzeichnungen. Beispielsweise wird der negativste Zeitrahmen, minus zwei, auf null gesetzt und die anderen Nummern der Zeitrahmen werden entsprechend aktualisiert, beispielsweise minus eins auf eins, null auf zwei, eins auf drei, usw. In Block 303 setzt der Unterprozess einen maximalen Zeitrahmen fest, das heißt den größten Zeitrahmenwert der aktualisierten Zeitrahmen in Block 301. Ein zuvor berechneter Testsatz für die Additions-Operation wird dann durch den Unterprozess verwendet, um Testvektoren auf die Testumgebung in Block 305 anzuwenden. Falls beispielsweise für die Additions-Operation die Werte von null und fünf jeweils in dem linken und rechten Eingang der Additions-Operation als ein Testvektor erforderlich sind, wird dem Lese-Knoten A null zugewiesen und dem Lese-Knoten B fünf. Die Testumgebung wird dann verwendet, um die Werte auf die Haupteingänge einzustellen, um null an dem Haupteingang APORT und fünf an dem Haupteingang BPORT zu erhalten. Haupteingänge, welche nicht verwendet werden, werden mit zufälligen Werten versorgt.
  • Der Unterprozess in Block 307 leitet die Testvektoren entsprechend den Zielen in den Einstellungs-/Weiterleitungs-Aufzeichnungen für den spezifischen Zeitrahmen weiter. Der Unterprozess in Block 309 ruft die Werte an den Hauptausgängen ab und speichert die Testsequenz in Block 311. Haupteingängen, welche nicht verwendet werden, werden zufällige Werte zugewiesen. Der Unterprozess geht dann zurück. Der Unterprozess wird so oft wie erforderlich für jede Anzahl von Testvektoren wiederholt. Alle aus den Testvektoren des vorher berechneten Testsatzes erhaltenen Testsequenzen werden miteinander verknüpft, um einen systembasierten Testsatz für die Additions-Operation zu erzeugen. Die Länge einer Testsequenz entspricht der größten Zeitrahmennummer in der Testumgebung.
  • In einer Ausführungsform ist der vorher berechnete Testsatz für jeden Typ der arithmetischen Operation in einer Bibliothek für jede mögliche Byte-Breite gespeichert. Der vorher berechnete Testsatz wird in einer Ausführungsform aus einem Testsatz für eine serielle Implementation der arithmetischen Operation in Kombination mit einem Testsatz für eine pa rallele Implementation für die gleiche Operation bestimmt. In einer Ausführungsform werden, sofern verfügbar, die von der Implementation unabhängigen Testsätze anstatt der vorher berechneten Testsätze oder eine Kombination aus beiden verwendet.
  • Wie in der vorher erwähnten 1 gezeigt ist, spricht der Prozess logische Felder an, sobald die arithmetischen Module angesprochen und getestet worden sind. Logische Felder werden auf ähnliche Weise getestet wie arithmetische Module, die zuvor beschrieben wurden. Wenn jedoch eine logische Mehrfach-Byte-Operation oder logische Felder angesprochen und getestet werden, erkennt der Prozess, dass Testsätze immer innerhalb einer Konstanten liegen. Als solche kann jeder Testvektor individuell eingestellt und weitergeleitet werden, ohne das Ziel der allgemeinen Regelbarkeit zu verwenden. Beispielsweise ist für ein OR-Gatter-Feld mit einem linken und einem rechten Eingangs-Bus die Testumgebung {(Ca1, C0), (C0, Ca1), (C0, C0)}.
  • Speicherelemente in der Form von Registern, Signalspeichern und Datenspeichern werden auch durch den Prozess angesprochen und getestet. 9 zeigt ein Flussdiagramm einer Ausführungsform des Unterprozesses zum Testen von Speicherelementen. In Block 401 bestimmt der Unterprozess, ob das Speicherelement bereits getestet wurde. In einer Ausführungsform vergleicht der Unterprozess das aktuelle angesprochene Speicherelement mit einer Liste von zuvor getesteten Modulen, um zu bestimmen, ob das Speicherelement schon getestet wurde. Falls das Speicherelement schon getestet wurde, geht der Unterprozess zurück. Während des Testens von arithmetischen und logischen Modulen, wurden viele der Register und Signalspeicher getes tet. Somit werden diese entsprechenden Signalspeicher und Register nicht nochmals getestet.
  • In einer Ausführungsform wird jeder Port für einen Wert eines Schreib-Knotens, Lese-Knotens und Zuweisungs-Entscheidungs-Knotens gekennzeichnet, beispielsweise mit einer "1" markiert, falls während der Bestimmung der Testumgebung der anderen internen Abschnitte, z.B. der arithmetischen Module, ein Cg-Ziel für die Variable des Ports für den Wert des Schreib-Knotens, Lese-Knotens oder Zuweisungs-Entscheidungs-Knotens erfüllt ist. Falls somit der Prozess bestimmt, dass ein Port für den Wert eines Schreib-Knotens, Lese-Knotens oder Zuweisungs-Entscheidungs-Knotens gekennzeichnet ist, übergeht der Prozess das Testen des Knotens oder des Ports.
  • Falls der Unterprozess in Block 401 bestimmt, dass das Speicherelement nicht getestet worden ist, bestimmt der Unterprozess dann in Block 403, ob das Speicherelement eine Datenspeichereinheit ist. Speicherelemente aus der Sicht des Zuweisungs-Entscheidungsdiagramms sind Schreib-Knoten, welche mit Ausgängen eines Zuweisungs-Entscheidungs-Knotens gekoppelt sind. Falls einer der Bedingungs-Eingänge zu dem Zuweisungs-Entscheidungs-Knoten mit einem Taktflanken-Test-Unterbaum gekoppelt ist, wird dann das Speicherelement als ein Register implementiert, ansonsten wird das Speicherelement als ein Signalspeicher implementiert. Datenspeicher werden typischerweise durch Felddeklarationen in der RTL-Schaltungs-Beschreibung gebildet.
  • Falls der Unterprozess bestimmt, dass das Speicherelement keine Datenspeichereinheit ist, erzeugt der Unterprozess eine Testumgebung für das Speicherelement in Block 405 und lädt ein vorbestimmtes Test muster als einen Testvektor in Block 407, um das Speicherelement zu testen. Der Unterprozess geht dann zurück. Beispielsweise werden alle nicht getesteten Speicherelemente durch Laden von Null-Mustern und Eins-Mustern für jedes der Elemente getestet, und ihre Ausgänge werden beobachtet. Als solches wird eine Testumgebung mit dem Ziel der Steuerbarkeit auf null erhalten, und eine separate Testumgebung mit dem Ziel der Regelbarkeit für alle auf eins wird erhalten.
  • Falls der Unterprozess bestimmt, dass das Speicherelement eine Datenspeichereinheit ist, erzeugt der Unterprozess eine Testumgebung für die Datenspeichereinheit in Block 409. In einer Ausführungsform wird eine Testumgebung durch Verwenden des Ziels der allgemeinen Regelbarkeit an den Daten- und Adress-Leitungen oder Variablen zu dem Datenspeicher gefunden, und zwar zusammen mit einem Ziel der Regelbarkeit auf eins an dem rechten Steuer-Port oder einem Ziel der Steuerbarkeit auf null, falls der Steuer-Port geringe Aktivität aufweist. Nachfolgend wird eine andere Testumgebung gefunden, und zwar unter Verwendung des Ziels der allgemeinen Regelbarkeit an der Adress-Variablen des Datenspeichers und eines Ziels der Regelbarkeit auf eins (Regelbarkeit auf null bei geringer Aktivität) an dem Lese-Steuer-Port und einem Ziel der Beobachtbarkeit an dem Ausgangs-Port des Datenspeichers. In Block 411 testet der Unterprozess die Testumgebung der Datenspeicher-Einheit durch Laden eines Testmusters in den Datenspeichern und durch Auslesen des Musters. Der Unterprozess geht dann zurück. Der Unterprozess wird für jedes angesprochene Speicherelement wiederholt.
  • Der Unterprozess spricht die Zwischenverbindungen an und testet diese, wie in 1 gezeigt ist.
  • Zwischenverbindungen in einer Schaltung liegen in der Form von entweder Bussen oder Multiplexern vor. Beispielsweise wird ein Multiplexer mit zwei Eingängen als ein Zuweisungs-Entscheidungs-Knoten mit einer Zwei-Zuweisung durch Eingänge und einen komplementären Bedingungs-Eingang repräsentiert. Die Zuweisungs-Wert-Eingänge zu dem Zuweisungs-Entscheidungs-Knoten sind in diesem Beispiel V1 und V2, und der Bedingungs-Eingang ist S, so dass, falls S den Wert eins annimmt, der Eingang V1 ausgewählt wird und, falls S den Wert null annimmt, der Wert-Eingang V2 ausgewählt wird. Somit sind vier Testumgebungen {[Ca1(V1), C1(S)], [Ca1(V2), C0(S)], [C0(V1), Ca1(V2), C1(S)] und [Ca1(V1), C0(V2), C0(S)]} erforderlich für eine vollständige Testbarkeit des Multiplexers. Im Falle eines Registers wird der Registerzustand typischerweise repräsentiert als ein Zuweisungs-Entscheidungs-Knoten mit zwei Eingängen an der Oberseite eines Schreib-Knotens, der die Register-Variable repräsentiert. Als solcher testet der Test des Zuweisungs-Entscheidungs-Knotens auch die Register-Zustands-Leitung.
  • Für das Testen von komplexen Mehrfach-Eingangs-ADN-Knoten wird eine Testumgebung gefunden unter Verwendung des Ca1-Erfordernisses für jeden der Wert-Eingänge zu dem ADN-Knoten und eines C1-Erfordernisses für den entsprechenden Bedingungs-Eingang. Beispielsweise wird für einen komplexen Mehrfach-Eingangs-ADN-Knoten mit fünf Bedingungs-Eingängen S1, S2, S3, S4 und S5 und Werte-Eingängen V1, V2, V3, V4 und V5 die Testumgebung gefunden unter der Verwendung der folgenden Ziele: {[Ca1(V1), C1(S1)], [Ca1(V2), C1(S2)], [Ca1(V3), C1(S3)], [Ca1(V4), C1(S4)], [Ca1(V5), C1(S5)]}. In einer Ausführungsform wird der ADN in einen Mehrfach-Eingangs-Multiplexer-Baum synthetisiert. Da die Reihenfolge der Eingänge des Multiplexer-Baums unbekannt sein kann, kann ein Selektions-Leitungs-Hafttest nur unter den Bedingungen von CO an einem der Wert-Eingänge, beispielsweise C0(V1), und C1 an dem entsprechenden Bedingungs-Eingang, beispielsweise C1(s1), durchgeführt werden. Dementsprechend werden in diesem Fall, bei dem das obige Beispiel eines 5-Eingang-ADN-Knotens verwendet wird, folgende Ziele ebenfalls verwendet, um die Testumgebung zu finden: ([C0(V1), C1(S1)], [C0(V2), C1(S2)], [C0(V3), C1(S3)], [C0(V4), C1(S4)], [C0(V5), C1(S5)]}.
  • Zufällige logische Blöcke werden auch angesprochen und durch den Prozess getestet. Die zufälligen logischen Blöcke werden repräsentiert als logische Steuerung der Bedingungs-Ports zu den Zuweisungs-Entscheidungs-Knoten, oder, falls Wert-Eingänge zu einem Zuweisungs-Entscheidungs-Knoten und die Zuweisungs-Entscheidungs-Knoten konstant sind, werden dann die Zuweisungs-Entscheidungs-Knoten als ein zufälliger logischer Block synthetisiert. Die zufälligen logischen Zuweisungs-Entscheidungs-Knoten werden somit identifiziert und getestet durch das Steuern von jedem Bedingungs-Eingangs-Signal zu den Zuweisungs-Entscheidungs-Knoten auf eins und durch das Bedienen des Schreib-Knotens des Ausgangs des Zuweisungs-Entscheidungs-Knotens.
  • In der vorliegenden Erfindung umfasst die getestete RTL-Schaltung Komponenten, welche als schwarze Kästen bezeichnet werden, z.B. Komponenten, deren RTL-Entwurf nicht öffentlich bekannt ist. Als solche ist der Prozess nicht in der Lage, die Einstellungs- und Weiterleitungs-Pfade zu bestimmen, welche sich über die Grenzen der schwarzen Kästen hinweg erstrecken, ohne dass eine zusätzliche Information zur Verfügung gestellt wird. Die erforderliche zusätzliche Information umfasst eine Beschreibung, welche identifiziert, wie jeder Eingang des schwarzen Kastens zu einem oder mehreren Ausgängen innerhalb einer festen Anzahl von Zyklen weitergeleitet wird. Als solche kann die O-Grenze, die durch den Prozess aufrechterhalten wird, über den schwarzen Kasten unter Verwendung dieser zusätzlichen Information weitergeleitet werden. In einer Ausführungsform umfasst die erforderliche zusätzliche Information, wie jeder Ausgang des schwarzen Kastens von einem Eingang oder einer Kombination von Eingängen in einer festen Anzahl von Zyklen eingestellt werden kann. Falls es jedoch bekannt ist, dass der schwarze Kasten dem Wesen nach kombinatorisch ist und ein Testfeld verfügbar ist, kann der Prozess den schwarzen Kasten als eine arithmetische Operation testen, und zwar durch das Auffinden einer Testumgebung, welche Ziele der allgemeinen Regelbarkeit an den Eingängen des Kastens und der Beobachtbarkeit an den Ausgängen des Kastens verwendet. Falls der schwarze Kasten dem Wesen nach sequentiell ist, können die Einstellung und die Weiterleitung der Testvektoren mehrere Zyklen erfordern, und als solche können zusätzliche Testbarkeits-Entwurfs-Vorrichtungen oder Techniken erforderlich sein.
  • In 10 ist eine Ausführungsform des Unterprozesses gezeigt, der die angesprochenen schwarzen Kästen testet. In Block 601 fügt der Unterprozess vorbestimmte Einstellungs- und Weiterleitungs-Pfade zu der für die Transformationen verwendeten Verweistabelle hinzu. In Block 603 fügt der Unterprozess vorbestimmte Testsätze der Testsatz-Bibliothek hinzu.
  • In Block 605 bestimmt der Unterprozess, ob die schwarzen Kästen sequentiell sind. Falls der Unterprozess bestimmt, dass die schwarzen Kästen sequentiell sind, wird dann eine Vorrichtung für den Test-Entwurf (DFT) in Block 607 verwendet, um die Takte zu manipulieren, welche dem internen Abschnitt während der Einstellung und der Weiterleitung eines Testvektors von den Haupteingängen zu den Eingängen des internen Abschnitts und zu den Hauptausgängen von den Ausgängen des internen Abschnitts bereitgestellt werden. In Block 609 testet der Unterprozess den schwarzen Kasten unter der Verwendung von vorbestimmten Einstellungs- und Weiterleitungs-Pfaden und Testsätzen, und der Unterprozess geht dann zurück.
  • Da jeder interne Abschnitt des Zuweisungs-Entscheidungsdiagramms durch den Prozess angesprochen und getestet wird, wie in Bezug auf 1 beschrieben wurde, können auch andere Bedingungen auftreten. Beispielsweise trifft der Prozess in einer Ausführungsform auf Bus-Teilungen und/oder Vereinigungen, in denen der Prozess verschiedene Transformations-Regeln basierend auf der RTL-Algebra verwendet, um diese Busse zu verarbeiten.
  • Das heißt, wenn der Prozess den ADD während der Einstellung und Weiterleitung durchläuft, identifiziert der Prozess sich teilende und vereinende Knoten und führt die geeignete Transformation durch. Falls beispielsweise während der Einstellung zwei Bit-Leitungen zusammenlaufen, um einen Bus b[1:0] zu bilden, transformieren sich die Ziele C1(b[0:0]) und C1(b[1:1]) zu Ca1(b[1:0]). Falls sich während der Weiterleitung ein Bus a[3:0] beispielsweise in vier individuelle Bit-Linien teilt, wird das Ziel O(a[3:0]) auf ähnliche Weise transformiert zu [O(a[0:0]) & O(a[1:1]) & O(a[2:2]) & O(a[3:3])]. Falls sich in einem weiteren Beispiel ein Bus b[5:2] in vier individuelle Bus-Linien während der Weiterleitung teilt, transformiert sich das Ziel O(b[5:2]) zu [O(b[5:5]) & O(b[4:4]) & O(b[3:3]) & O(b[2:2])]. Die Tabelle 1 beschreibt weitere Beispiele von Transformationen von Zielen, wenn sich während der Einstellung eine oder mehrere Bit-Linien vereinen (Zeilen eins und zwei) und wenn sich während der Weiterleitung eine oder mehrere Bit-Linien vereinen (Zeilen drei und vier).
  • Figure 00310001
    Tabelle 1
  • In einigen Fällen, wenn ein Bus-Ziel als Ganzes nicht weitergeleitet oder eingestellt wird, werden die Ziele als solche in Form von Zielen auf Bit-Ebene expandiert, beispielsweise durch das Expandieren eines Cg-Ziels auf einen zufälligen Satz von C1- und C0-Zielen, und anschließend eingestellt und weitergeleitet.
  • In einem anderen Beispiel tritt ein Register mit einem asynchronen Setz-/Rücksetz-Wert auf. Um den a synchronen Setz-/Rücksetz-Wert in dem Zuweisungs-Entscheidungsdiagramm zu repräsentieren, wird der Schreib-Knoten, welcher der in dem Register gespeicherten Variablen entspricht, durch einen Zuweisungs-Entscheidungs-Knoten gespeist, der einen Bedingungs-Eingang aufweist, der keine Takt-Baum-Expression in seinem transitiven Eingangs-Last-Faktor aufweist. Falls während der Weiterleitung und Einstellung der Zuweisungs-Wert-Eingang zu dem ausgewählten Zuweisungs-Entscheidungs-Knoten dem Bedingungs-Eingang entspricht, wird der Zeitrahmen dann nicht verändert, beispielsweise nicht inkrementiert oder dekrementiert. Somit wird das asynchrone Verhalten aufrechterhalten.
  • Falls in einer Ausführungsform der Prozess bestimmt, dass die Einstellung einer Variablen von der gleichen Variablen in dem vorangegangenen Zeitrahmen in sich wiederholende Art und Weise abhängt und andere Möglichkeiten für die Einstellung aufgebraucht wurden, bestimmt der Prozess, dass eine Zähl-Variable detektiert wurde. Falls beispielsweise die Einstellungs-Ziele ein Muster von Cg(a[3:0], 0), Cg(a[3:0], –2), Cg(a[3:0], –4) aufweisen, identifiziert der Prozess die Variable a[3:0] als eine Zähl-Variable. Sobald der Prozess die Zähl-Variable identifiziert, lokalisiert der Prozess die Rücksetz-Leitung der Zähl-Variable, setzt den Zähler zurück und führt den Zähler für eine feste Anzahl von Zyklen aus, um den Ausgang des Zählers zu einem Hauptausgang weiterzuleiten.
  • In einer Ausführungsform ist die RTL-Schaltung dem Wesen nach hierarchisch. Der Prozess verarbeitet den hierarchischen Entwurf unter Verwendung von Dateien zur Verbindbarkeit auf höchster Ebene, welche die Verbindbarkeit unter den unterschiedlichen Komponenten spezifizieren. Wenn während der Einstellung die Einstellungs-Grenze die Eingänge einer Komponente erreicht hat, wird die Verbindbarkeit verwendet, um die Einstellungs-Grenze zu dem Ausgang einer anderen Blatt-Komponente oder zu einem Haupteingang zu übertragen. Als solches tritt Testen in allen Blatt-Komponenten der RTL-Schaltung auf. Während des Weiterleitens arbeitet der Prozess auf ähnliche Weise, um einen Hauptausgang zu erreichen. Um das hierarchische Durchlaufen zu unterstützen, werden Ziele mit einem Hierarchie-String gekennzeichnet. Beispielsweise wird die allgemeine Regelbarkeit einer Variablen A, Cg(A), im Falle, dass A in der Komponente X ist, welche in der Komponente Y ist, welche in der Komponente Z ist, gekennzeichnet als Cg(A) mit dem Hierarchie-String X.Y.Z.
  • In einer Ausführungsform ist der Prozess nicht in der Lage, eine Testumgebung aufzufinden, und somit werden Heuristiken verwendet. In einer Ausführungsform wird die heuristische partielle Einstellung und Weiterleitung verwendet. Als solche wird eine partielle Testumgebung gefunden, und zwar basierend auf der Erfüllung von einigen Einstellungs- und Weiterleitungs-Zielen, die erforderlich waren. Die partielle Testumgebung wird dann verwendet, um eine Test-Sequenz zu erzeugen.
  • Falls ein Weiterleitungs-Ziel nicht erfüllt ist, wird eine Weiterleitungs-Heuristik verwendet, in der eine vorbestimmte Anzahl von zufälligen Testvektoren zu einer partiellen Testumgebung basierend auf der Einstellung hinzugefügt werden und somit versuchen, den Fehler zu einem Hauptausgang weiterzuleiten.
  • Demzufolge stellt die vorliegende Erfindung einen Prozess zum Erzeugen eines Testmusters und ein entsprechendes System für RTL-Schaltungen bereit. Obwohl diese Erfindung in bestimmten speziellen Ausführungsformen beschrieben wurde, sind für einen Fachmann viele zusätzliche Modifikationen und Variationen ersichtlich. Es wird somit deutlich, dass diese Erfindung auch auf andere als die speziell beschriebene Weise durchgeführt werden kann. Somit sollen die vorliegenden Ausführungsformen der Erfindung in jeder Hinsicht nur beschreibend und nicht einschränkend sein. Der Schutzbereich der Erfindung wird durch die beigefügten Ansprüche und deren Äquivalente und nicht durch die vorangegangene Beschreibung bestimmt.

Claims (17)

  1. Verfahren zur Erzeugung von Testsätzen zum Testen einer digitalen Register-Transfer-Pegel-Schaltung, wobei das Verfahren die Schritte umfasst: Erzeugen (101, 105) eines Entscheidungsdiagramms der digitalen Register-Transfer-Pegel-Schaltung; Identifizieren (107) von Modulen in dem Entscheidungsdiagramm; und für jedes der identifizierten Module: Bestimmen (109, 111) von Testzielen für die identifizierten Module; Einstellen und Weiterleiten von Testzielen durch Durchlaufen (203) des Entscheidungsdiagramms in Übereinstimmung mit Transformationsregeln, die in einer Verweistabelle gespeichert sind, um eine Testumgebung zu erhalten, wobei der Einstellungs- und Weiterleitungs-Schritt umfasst das Einstellen von Testzielen von den Eingängen der Module auf die Haupteingänge der digitalen Register-Transfer-Pegel-Schaltung, um Einstellungspfade zu identifizieren, und Weiterleiten von Testzielen von den Ausgängen der Module zu Hauptausgängen der digitalen Register-Transfer-Pegel-Schaltung, um Weiterleitungspfade zu identifizieren; und Verwenden von vorbestimmten Testvektoren durch die digitale Register-Transfer-Pegel-Schaltung hindurch unter Verwendung der erhaltenen Testumgebung, um einen Testsatz für das Modul zu erhalten; dadurch gekennzeichnet, dass das Entscheidungsdiagramm ein Zuweisungs-Entscheidungsdiagramm ist, welches eine Struktur nach Art eines Graphs ist, welche das funktionelle Verhalten der digitalen Register-Transfer-Pegel-Schaltung und eine ungefähre strukturelle Repräsentation der digitalen Register-Transfer-Pegel-Schaltung repräsentiert, und dadurch, dass die identifizierten Module schwarze Kästen umfassen, für welche das Verfahren ferner die Schritte umfasst: Hinzufügen (601) von vorbestimmten Einstellungs- und weiterleitungs-Pfaden zu der Verweistabelle; Hinzufügen (603) von vorbestimmten Testvektoren zu der Bibliothek; Bestimmen (605), ob der schwarze Kasten sequentiell ist und, falls dies zutrifft, Verwenden (607) einer Testbarkeits-Entwurfs-Technik, um Takte zu manipulieren, welche bereitgestellt werden einem internen Abschnitt des schwarzen Kastens während der Einstellung und Weiterleitung eines Testvektors von den Haupteingängen zu den Eingängen des internen Abschnitts und zu den Hauptausgängen von den Ausgängen des internen Abschnitts; und Testen (609) des schwarzen Kastens unter der Verwendung der vorbestimmten Einstellungs- und Weiterleitungs-Pfade und der vorbestimmten Testvektoren.
  2. Verfahren nach Anspruch 1, bei welchem der Schritt (101, 105) des Erzeugens des Zuweisungs-Entscheidungsdiagramms umfasst das Empfangen (101) einer Hardware-Beschreibungssprachen-Repräsentation der digitalen Register-Transfer-Pegel-Schaltung und das Umwandeln (105) der Hardware-Beschreibungssprachen-Repräsentation der digitalen Register-Transfer-Pegel-Schaltung in das Zuweisungs-Entscheidungsdiagramm.
  3. Verfahren nach Anspruch 1 oder 2, bei welchem die identifizierten Module arithmetische Operationen, logische Felder, zufällige logische Blöcke, Speicherelemente und Zwischenverbindungen zusätzlich zu den schwarzen Kästen umfassen.
  4. Verfahren nach Anspruch 1, 2 oder 3 bei welchem die Ziele symbolische Variablen umfassen, welche Werte an den Eingängen und Ausgängen der digitalen Register-Transfer-Pegel-Schaltung und des identifizierten Moduls und eines Rahmenzyklus repräsentieren.
  5. Verfahren nach Anspruch 4, bei welchem die symbolischen Variablen ferner einen Zustand repräsentieren.
  6. Verfahren nach einem vorhergehenden Anspruch, bei welchem der Schritt (109, 111) zum Bestimmen der Testziele eine neun-wertige symbolische Algebra verwendet, welche symbolische Variablen umfasst, welche die Möglichkeit repräsentieren, einen Wert auf einem von einem Wert und einem Zustand zu regeln.
  7. Verfahren nach Anspruch 6, bei welchem die Algebra symbolische Variablen umfasst, welche die Möglichkeit der Beobachtung eines Wertes repräsentieren.
  8. Verfahren nach Anspruch 6 oder 7, bei welchem die Algebra symbolische Variablen umfasst, welche umfassen die Regelbarkeit auf eins, die Regelbar keit auf null, die Regelbarkeit für alle auf eins, die Regelbarkeit auf eine Konstante, die Regelbarkeit auf einen Zustand, die Regelbarkeit auf einen beliebigen Wert, die Regelbarkeit auf einen hohen Impedanzzustand, die Beobachtbarkeit eines Fehlers und die komplementäre Beobachtbarkeit eines Fehlers.
  9. Verfahren nach einem vorhergehenden Anspruch, bei welchem der Schritt (203) des Einstellens und Weiterleitens von Zielen einer Branch-and-Bound-Suchprozedur mit einer Rückwärtsverarbeitung und einem Zeitlimit umfasst.
  10. Verfahren nach einem vorhergehenden Anspruch, bei welchem die Testumgebung eine Satz von Einstellungs- und Weiterleitungs-Pfaden von Haupteingängen zu Hauptausgängen der identifizierten Module umfasst, welcher das Modul ausführt, wenn Testvektoren an den Haupteingängen verwendet werden.
  11. Verfahren nach Anspruch 10, bei welchem die Einstellungs- und Weiterleitungs-Pfade sich über mehrere Taktzyklen erstrecken.
  12. Verfahren nach einem vorhergehenden Anspruch, ferner umfassend die Verwendung (115) von Heuristiken, um die Testumgebung zu erhalten.
  13. Verfahren nach einem vorhergehenden Anspruch, ferner umfassend den Schritt des kontinuierlichen Durchführens des Identifizierens von Modulen, des Bestimmens von Zielen, des Einstellens und Weiterleitens von Zielen und des Verwendens von vorbestimmten Testvektoren für jedes der identifizierten Module und für jede erhaltene Testumgebung, um systembasierte Testsätze für jedes der identifizierten Module zu erhalten.
  14. Verfahren nach Anspruch 13, ferner umfassend den Schritt des Verknüpfens von systembasierten Testsätzen für jedes der identifizierten Module, um einen kompletten Testsatz für die digitale Register-Transfer-Pegel-Schaltung zu erhalten.
  15. Verfahren nach einem vorhergehenden Anspruch, bei welchem die digitale Schaltung eine einzelne Taktleitung umfasst.
  16. Verfahren nach einem vorhergehenden Anspruch, bei welchem der Einstellungs- und Weiterleitungs-Schritt die Verwendung von Testzielen umfasst, welche durch eine neun-wertige Algebra bestimmt werden.
  17. Verfahren nach Anspruch 12, bei welchem die Heuristiken verwendet werden, um die Einstellungs- und Weiterleitungs-Pfade zu identifizieren.
DE60112998T 2000-06-05 2001-06-04 Automatische Prüfmustererzeugung für Funktional Register Transfer Level Schaltungen mit Zuweisungsentscheindungsdiagramme Expired - Fee Related DE60112998T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US20934000P 2000-06-05 2000-06-05
US209340P 2000-06-05
US851708 2001-05-08
US09/851,708 US6823486B2 (en) 2000-06-05 2001-05-08 Automatic test pattern generation for functional register transfer level circuits using assignment decision diagrams

Publications (2)

Publication Number Publication Date
DE60112998D1 DE60112998D1 (de) 2005-10-06
DE60112998T2 true DE60112998T2 (de) 2006-02-23

Family

ID=26904074

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60112998T Expired - Fee Related DE60112998T2 (de) 2000-06-05 2001-06-04 Automatische Prüfmustererzeugung für Funktional Register Transfer Level Schaltungen mit Zuweisungsentscheindungsdiagramme

Country Status (4)

Country Link
US (1) US6823486B2 (de)
EP (1) EP1162472B1 (de)
JP (1) JP2002049655A (de)
DE (1) DE60112998T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823486B2 (en) * 2000-06-05 2004-11-23 Fujitsu Limited Automatic test pattern generation for functional register transfer level circuits using assignment decision diagrams
US7165231B2 (en) * 2000-12-18 2007-01-16 Yardstick Research, Llc Method and system for incremental behavioral validation of digital design expressed in hardware description language
US7168014B2 (en) * 2003-04-01 2007-01-23 Fujitsu Limited Propagating an error through a network
US6877141B2 (en) * 2003-04-01 2005-04-05 Fujitsu Limited Evaluating a validation vector for validating a network design
US7139929B2 (en) * 2003-04-01 2006-11-21 Fujitsu Limited Generating a test environment for validating a network design
JP4565965B2 (ja) * 2004-10-29 2010-10-20 株式会社システム・ジェイディー 抽出装置、抽出方法及びプログラム
KR100736679B1 (ko) * 2006-08-09 2007-07-06 주식회사 유니테스트 반도체 테스트를 위한 패턴 생성 장치 및 패턴 생성 방법
US8001498B2 (en) * 2008-10-27 2011-08-16 Synopsys, Inc. Method and apparatus for memory abstraction and verification using same
DE102011076780B4 (de) * 2011-05-31 2021-12-09 Airbus Operations Gmbh Verfahren und Vorrichtung zur Zustandsüberwachung, Computerprogrammprodukt
CN102662144B (zh) * 2012-03-30 2017-07-25 北京大学 一种基于活性测度的硬件木马检测方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572437A (en) 1990-04-06 1996-11-05 Lsi Logic Corporation Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
US5323108A (en) * 1992-01-23 1994-06-21 Hewlett-Packard Company Method for generating functional tests for printed circuit boards based on pattern matching of models
US5602856A (en) 1993-04-06 1997-02-11 Nippon Telegraph And Telephone Corporation Test pattern generation for logic circuits with reduced backtracking operations
JP2974900B2 (ja) 1993-12-13 1999-11-10 株式会社 エイ・ティ・アール人間情報通信研究所 自律進化型ハードウェア設計システム
US5513123A (en) 1994-06-30 1996-04-30 Nec Usa, Inc. Non-scan design-for-testability of RT-level data paths
US5625630A (en) 1996-04-24 1997-04-29 Lucent Technologies Inc. Increasing testability by clock transformation
US5696771A (en) 1996-05-17 1997-12-09 Synopsys, Inc. Method and apparatus for performing partial unscan and near full scan within design for test applications
US5883809A (en) 1996-07-26 1999-03-16 3 Com Corporation Behavioral language models for testing and verification of digital electronic circuits
US6134705A (en) * 1996-10-28 2000-10-17 Altera Corporation Generation of sub-netlists for use in incremental compilation
US5748647A (en) * 1996-10-31 1998-05-05 Nec Usa, Inc. Low cost testing method for register transfer level circuits
US5875196A (en) 1997-01-03 1999-02-23 Nec Usa, Inc. Deriving signal constraints to accelerate sequential test generation
US5991523A (en) 1997-03-18 1999-11-23 Xilinx, Inc. Method and system for HDL global signal simulation and verification
FR2798472B1 (fr) * 1999-09-15 2001-12-14 Centre Nat Etd Spatiales Procede de localisation d'elements defectueux dans un circuit integre
US6823486B2 (en) * 2000-06-05 2004-11-23 Fujitsu Limited Automatic test pattern generation for functional register transfer level circuits using assignment decision diagrams

Also Published As

Publication number Publication date
JP2002049655A (ja) 2002-02-15
DE60112998D1 (de) 2005-10-06
EP1162472A3 (de) 2004-04-07
EP1162472A2 (de) 2001-12-12
EP1162472B1 (de) 2005-08-31
US20020032889A1 (en) 2002-03-14
US6823486B2 (en) 2004-11-23

Similar Documents

Publication Publication Date Title
DE69231497T2 (de) Massivparalleles rechnersystem mit eingangs-ausgangsanordnung
DE4417575C2 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE69232431T2 (de) Vorrichtung zur Lösung von linearen Gleichungssystem
DE69107463T2 (de) Integrierte Schaltung, System und Verfahren zur Fehlererzeugung.
DE69019555T2 (de) Technik für die serielle Prüfung eingebauter Speicher.
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE69928428T2 (de) Multiplizier-akkumulator-konfiguration zur effizienten planung in einem digitalen signalverarbeitungsrechner
DE69330848T2 (de) Einrichtung und Verfahren zur digitalen Unterschrift
DE69533275T2 (de) Ein Steuergerät zur Durchführung der Abtastprüfung
DE68923086T2 (de) Verfahren zum Testen von hierarchisch organisierten integrierten Schaltungen und integrierte Schaltungen, geeignet für einen solchen Test.
DE2934971A1 (de) Datenverarbeitungssystem
DE3851554T2 (de) Steuerungsanordnung für gemeinschaftlichen Speicher.
DE60112998T2 (de) Automatische Prüfmustererzeugung für Funktional Register Transfer Level Schaltungen mit Zuweisungsentscheindungsdiagramme
DE60309931T2 (de) Verbindung mehrerer testzugriffsportsteuerungsvorrichtungen durch ein einzeltestzugriffsport
DE19903633A1 (de) Implementierung von Boolescher Erfüllbarkeit mit nichtchronologischer Rückwärtsverarbeitung in rekonfigurierbarer Hardware
EP0308660A2 (de) Vorrichtung zur Herstellung einer testkompatiblen, weitgehend fehlertoleranten Konfiguration von redundant implementierten systolischen VLSI-Systemen
DE19914210A1 (de) Verfahren und Vorrichtung für eine gestaffelte Ausführung einer Anweisung
DE69225527T2 (de) Verfahren und System zur automatischen Bestimmung der logischen Funktion einer Schaltung
DE3338333A1 (de) Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur
DE2614000A1 (de) Einrichtung zur diagnose von funktionseinheiten
DE69314824T2 (de) Neuronaler Prozessor mit verteilten synaptischen Zellen
DE3882990T2 (de) Verfahren und gerät zur simulation von m-dimensionalen verbindungsnetzwerken in einem n-dimensionalen netzwerk, worin m kleiner ist als n.
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE3788617T2 (de) Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor.
DE602004009784T2 (de) Datenkomprimierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee