-
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 4–7 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).
-
-
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.