DE10157854A1 - Verfahren und Vorrichtung zum Erzeugen eines transaktionsbasierten Stimulus für eine Simulation von VLSI-Schaltungen unter Verwendung einer Ereignisabdeckungsanalyse - Google Patents
Verfahren und Vorrichtung zum Erzeugen eines transaktionsbasierten Stimulus für eine Simulation von VLSI-Schaltungen unter Verwendung einer EreignisabdeckungsanalyseInfo
- Publication number
- DE10157854A1 DE10157854A1 DE10157854A DE10157854A DE10157854A1 DE 10157854 A1 DE10157854 A1 DE 10157854A1 DE 10157854 A DE10157854 A DE 10157854A DE 10157854 A DE10157854 A DE 10157854A DE 10157854 A1 DE10157854 A1 DE 10157854A1
- Authority
- DE
- Germany
- Prior art keywords
- logic
- events
- event
- test cases
- circuit
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
- G01R31/318357—Simulation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
- G01R31/31835—Analysis of test coverage or failure detectability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Tests Of Electronic Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Die vorliegende Erfindung wendet eine genetische algorithmische Erzeugung von Testfällen auf die Simulation von VLSI-Logikschaltungsblocks (VLSI-Logikschaltung 101) an. Die vorliegende Erfindung erzeugt eine Anzahl von Originaltestfällen. Diese Anhäufung von Lösungen wird einem Schaltungssimulator zugeführt. Die Ergebnisse des Simulators werden in einer Matrix oder Tabelle aufrechterhalten. Die Ergebnisse geben genau die Anzahl von Malen an, an denen diese bestimmten Logikzustände oder -ereignisse (Ereignis 1, Ereignis 2, Ereignis 3, Ereignis N), die dem VLSI-Block zugeordnet sind, durch bestimmte Testfälle simuliert wurden. Die Anhäufung von Lösungen und die Simulationsergebnisse werden daraufhin durch den genetischen Algorithmus analysiert. Vorzugsweise identifiziert der genetische Algorithmus Zustände, die der Schaltungssimulation zugeordnet sind und nicht durch die Originaltestfälle erzeugt wurden. Der genetische Algorithmus kombiniert daraufhin Charakteristika diverser Testfälle, um neue Testfälle zu erzeugen. Die neuen Testfälle werden dem Schaltungssimulator zugeführt, wodurch ein höherer Vertrauensgrad geschaffen wird, daß der gesamte VLSI-Chipentwurf simuliert wurde.
Description
Diese Erfindung bezieht sich allgemein auf eine genetische
algorithmische gerichtete Erzeugung von Transaktionsstimu
lizuständen, und spezieller auf den Aufbau neuer Teststimu
li aus bereits auftretenden Teststimuli über einen geneti
schen Algorithmus, wodurch neu aufgebaute Zustände erreicht
werden, die nicht durch bereits auftretende Stimuli erzeugt
werden.
Ein Simulieren integrierter Schaltungen erwies sich als ein
sehr nützlicher Prozeß zum Ermitteln von Schaltungsent
wurfsproblemen vor einer Produktfreigabe. Insbesondere wa
ren bekannte Testtechniken bisher auf CPUs (Zentraleinhei
ten) und zugeordnete Busse gerichtet. Beim Testen von VLSI-
Schaltungen (Schaltungen mit sehr hohem Integrationsgrad)
wie diesen wird eine große Anzahl von unterschiedlichen
Testfällen verarbeitet, um Problemzustände aufzudecken. Ein
Beispiel von Testfällen läßt sich in dem an Ransom et al.
erteilten US-Patent Nr. 5,956,476 finden, das durch Bezug
nahme in dieses Dokument aufgenommen ist. Bei früheren An
sätzen konnte eine große Anzahl von Fällen durch ein
Spezifizieren einer gewichteten Mischung von
Transaktionstypen (z. B. Lese-, Schreibtypen) zufällig
erzeugt werden. Beispielsweise konnte eine Mischung aus 20%
Lesetypen und 80% Schreibtypen erzeugt werden. Jedoch
ist die Zeitgebungsbeziehung zwischen jeglichen der
Ereignisse weder spezifiziert noch steuerbar, wenn eine
zufällige Erzeugung verwendet wird.
Fig. 1 veranschaulicht eine beispielhafte Topologie, die
durch bekannte Schaltungssimulationstechniken verwendet
wird. VLSI 101 ist zwei separaten Stimuli zugeordnet: einem
internen Bus 102 und einem externen Bus 104 einer Bus
schnittstelleneinheit 103. Es ist angemessen, eine Anzahl
von Testzuständen zu erzeugen, die diesen beiden Stimuli
zugeordnet sind. Die meisten Stimulipaare führen zu keiner
lei Problemen. Dementsprechend ist es angemessen, die Pro
blemzustände (d. h. Stimulipaare), die zu einer Schaltungs
fehlfunktion führen, zu isolieren. Ferner versteht es sich,
daß ein zusätzlicher Freiheitsgrad mit Problemzuständen
verbunden ist. Insbesondere können Problemzustände, die in
bezug auf die Zeit getrennt sind, trotzdem zu einem proble
matischen Schaltungsverhalten führen.
Wie zuvor angemerkt wurde, können Testfälle für eine Anwen
dung auf eine derartige Systemtopologie zufällig erzeugt
werden. Eine zufällige Erzeugung ist bei Cox, P., et al.
"Statistical Modeling for Efficient Parametric Yield Esti
mation of MOS VLSI Circuits", IEEE Trans. Electron. Devi
ces, Vol. ED-32 Nr. 2,471-478, 1985, offenbart, wobei die
ses Dokument durch Bezugnahme hierin aufgenommen ist. Ein
weiteres Beispiel einer zufälligen Erzeugung von Testfällen
findet sich in dem Chang et al. erteilten US-Patent Nr.
6,018,623, das durch Bezugnahme hierin aufgenommen ist.
Ferner umfassen bekannte Techniken, die verwendet werden,
um Problemzustände festzustellen, eine manuelle Entwicklung
von Testfällen. Beispielsweise kann eine Transaktion zum
Zeitpunkt t0 an einem externen Bus aufgebaut werden, und
daraufhin kann eine Transaktion zu einem Zeitpunkt t = t0-tA
in den internen Bus eingespeist werden. Ferner wird tA an
fänglich eingestellt, um gleich t1 zu sein, und anschlie
ßend variiert, bis t gleich der Zeit t0 ist. Ferner wird tA
variiert, bis es -t1 erreicht. Die Hypothese lautet, daß,
wenn zwischen den beiden Transaktionen eine wichtige Zeit
gebungsbeziehung besteht, diese Beziehung durch ein umfas
sendes Wiederholen der relativen Zeiten der beiden Transak
tionen entdeckt würde.
Eine zufällige Erzeugung von Testzuständen erfolgt ziemlich
automatisch. Der Rechenaufwand, der nötig ist, um gewünsch
te Ereignisse abzudecken, kann jedoch sehr groß sein. Eine
zufällige Erzeugung ist auch insofern problematisch, als es
oft schwierig ist, Problemzustände zu wiederholen. Wenn
sich z. B. bei der Ausführung des Modells der zu testenden
Schaltung etwas ändert, kann es sein, daß eine rein zufäl
lige Kette von Transaktionen dieses Ereignis nicht erneut
auslöst. Alternativ dazu kann es sein, daß eine handge
schriebene Erzeugung von Testzuständen Problemzustände
leichter identifiziert. Eine handgeschriebene Erzeugung von
Zuständen erfordert jedoch eine umfassende Handcodierung
durch eine Person, die über eine umfassende Kenntnis des zu
testenden Systems verfügt. Insbesondere erfordert diese
Technik einen beträchtlichen Aufwand seitens einer hochqua
lifizierten Bedienperson bzw. seitens hochqualifizierter
Bedienpersonen.
Es ist die Aufgabe der vorliegenden Erfindung, ein Verfah
ren zum Simulieren einer Schaltung, ein System zum Simulie
ren sowie ein Computerprogrammprodukt zu schaffen, so daß
die Simulation unaufwendiger wird.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1,
ein System gemäß Anspruch 11 sowie ein Computerprogrammpro
dukt gemäß Anspruch 19 gelöst.
Dementsprechend besteht in der Technik ein Erfordernis det
automatischen Erzeugung von Testzuständen, während Logik
blockschaltungen vollständig simuliert werden. Insbesondere
besteht in der Technik ein Erfordernis eines Systems und
eines Verfahrens einer Testzustandserzeugung, das einen mi
nimalen Aufwand seitens einer hochqualifizierten Bedienper
son bzw. seitens hochqualifizierter Bedienpersonen erfor
dert und dabei eindeutige und wiederholbare Testergebnisse
liefert.
Die vorliegende Erfindung ist auf ein System und ein Ver
fahren ausgerichtet, das verwendet wird, um neue Testzu
stände aus einem bestehenden Satz von Testzuständen und Er
gebnisdaten aufzubauen. Das System und das Verfahren werden
vorzugsweise über eine genetische algorithmische Erzeugung
von Testzuständen implementiert, um einen Testsatz zu lie
fern, der wiederum Ausgabe- bzw. Ausgangszustände erzeugt.
Ein genetischer Algorithmus ist ein Algorithmus, der vor
handene nicht-optimale Lösungen, die einen Nützlichkeits
grad liefern, verwendet, um andere Lösungen zu bilden, die
einen höheren Nützlichkeitsgrad liefern. Insbesondere ana
lysiert ein genetischer Algorithmus vorhandene Lösungen und
Charakteristika, die diesen Lösungen zugeordnet sind. Vor
teilhafte Charakteristika aus einer Anzahl von vorhandenen
Lösungen werden kombiniert, um neue Lösungen zu bilden, die
wiederum auf eine spezifische Anwendung angewandt werden.
Ein genetischer Algorithmus beinhaltet im allgemeinen ein
Erzeugen einer systematischen Codierungsnomenklatur zum Be
schreiben von Lösungen. Überdies beinhaltet ein genetischer
Algorithmus im allgemeinen ein Bereitstellen eines Mecha
nismus zum Auswerten von Lösungen. Ferner liefern geneti
sche Algorithmen einen Mechanismus zum Beschreiben von Cha
rakteristika der diversen Lösungen.
Bei dem vorliegenden System und dem vorliegenden Verfahren
wird die genetische algorithmische Erzeugung vorzugsweise
auf die Simulation von VLSI-Logikschaltungsblocks ange
wandt. Das System und das Verfahren verwenden vorzugsweise
die in der verwandten Anmeldung, US-Patentanmeldung Serien
nummer [Anwaltszeichen 10002360-1] mit dem Titel "METHOD
AND APPARATUS FOR ENCODING AND GENERATING TRANSACTION-BASED
STIMULUS FOR SIMULATION OF VLSI CIRCUITS", dargelegte Lö
sungsnomenklatur, wobei diese Offenbarung durch Bezugnahme
in dieses Dokument aufgenommen ist. Ferner erzeugen das Sy
stem und das Verfahren vorzugsweise eine Anzahl von Origi
naltestfällen (Lösungen), wie sie in der vorhergehenden
verwandten Anmeldung beschrieben wurden. Alternativ dazu
können Originaltestfälle zufällig oder durch gerichtetes
bzw. gelenktes Paaren von Anweisungen erzeugt werden. Diese
Anhäufung von Lösungen wird einem Schaltungssimulator be
reitgestellt. Die Ergebnisse des Simulators werden vorzugs
weise in einer Matrix oder Tabelle aufrechterhalten. Die
Ergebnisse geben vorzugsweise die Anzahl von Malen, an de
nen bestimmte Logikzustände oder Ereignisse, die dem VLSI-
Block zugeordnet sind, durch bestimmte Testfälle stimuliert
wurden, ausführlich an. Die Anhäufung von Lösungen und die
Simulationsergebnisse werden daraufhin durch den geneti
schen Algorithmus analysiert. Der genetische Algorithmus
identifiziert vorzugsweise Zustände, die der Schaltungssi
mulation zugeordnet sind und nicht durch die Originaltest
fälle erzeugt wurden. Der genetische Algorithmus kombiniert
daraufhin Charakteristika diverser Testfälle, um neue Test
fälle zu erzeugen. Die neuen Testfälle werden daraufhin dem
Schaltungssimulator geliefert, wodurch ein höherer Vertrau
ensgrad bereitgestellt wird, daß der gesamte VLSI-
Chipentwurf simuliert wurde.
Im Vorstehenden wurden die Merkmale und technischen Vortei
le der vorliegenden Erfindung eher grob umrissen, damit die
folgende ausführliche Beschreibung der Erfindung besser
verstanden wird. Im folgenden werden zusätzliche Merkmale
und Vorteile der Erfindung beschrieben, die den Gegenstand
der Ansprüche der Erfindung bilden. Fachleute sollten er
kennen, daß die offenbarte Konzeption bzw. das offenbarte
spezifische Ausführungsbeispiel ohne weiteres als Grundlage
zum Modifizieren oder Entwerfen anderer Strukturen zum
Durchführen derselben Zwecke der vorliegenden Erfindung
dienen kann. Fachleute sollten ferner erkennen, daß solche
äquivalenten Konstruktionen nicht von der Wesensart und dem
Schutzbereich der Erfindung, die bzw. der in den beigefüg
ten Ansprüchen dargelegt ist, abweichen. Die neuartigen
Merkmale, die als für die Erfindung charakteristisch gehal
ten werden, sowohl in bezug auf ihre Organisation als auch
die Arbeitsweise, zusammen mit weiteren Zielen und Vortei
len sind aus der folgenden Beschreibung besser ersichtlich,
wenn sie in Zusammenhang mit den beigefügten Zeichnungen
betrachtet werden. Es versteht sich jedoch ausdrücklich,
daß jede der Figuren lediglich zum Zwecke der Veranschauli
chung und Beschreibung bereitgestellt wird und nicht als
Definition der Beschränkungen der vorliegenden Erfindung
gedacht ist.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend Bezug nehmend auf die beiliegenden
Zeichnungen näher erläutert. Es zeigen:
Fig. 1 eine emulierte VLSI-Schaltung-Topologie;
Fig. 2 mehrere "Schrittlängen", wobei jede Schrittlänge
einem Transaktionstyp bei dem Schrittlängeninter
vall zugeordnet ist;
Fig. 3 eine Tabelle von Ereignissen als Funktion von
Testfällen, welche die Anzahl von Malen angibt,
an denen diese Ereignisse durch die diversen
Testfälle stimuliert worden sind;
Fig. 4A Testfälle, die aus diversen Anweisungen zusammen
gesetzt sind;
Fig. 4B eine gewichtete Anweisungstabelle; und
Fig. 5 ein Blockdiagramm eines Computersystems, das aus
gelegt ist, um die vorliegende Erfindung zu ver
wenden.
Die vorliegende Erfindung verwendet vorzugsweise einen ge
netischen Algorithmus. In der Regel suchen genetische Algo
rithmen eine einzelne beste Lösung. Beispielsweise kann ein
genetischer Algorithmus verwendet werden, um einen optima
len Düsenmotor zu entwerfen, indem Parameter wie beispiels
weise die Anzahl von Lüfterschaufeln, die Größe von Lüfter
schaufeln und/oder dergleichen variiert werden. Für eine
Testfallerzeugung, die einer VLSI-Blockschaltung-Simulation
zugeordnet ist, gibt es keinen einzelnen Testfall, der die
in der Prüfung befindliche Schaltung vollständig testet.
Dementsprechend verwendet die vorliegende Erfindung vor
zugsweise einen genetischen Algorithmus, der eine große
Menge verschiedener Lösungen, nicht eine einzige Lösung,
erzeugt. Überdies verwendet der genetische Algorithmus vor
zugsweise eine Mehrzahl von Lösungen, um neue Lösungen zu
erzeugen. Der genetische Algorithmus verwendet vorzugsweise
eine ganze Simulationshistorie, die eine große Menge von
Lösungen sein kann, die sich alle "in der Nähe" des er
wünschten Ausgabeereignisses befinden können. Neue Testzu
stände werden vorzugsweise auf der Basis der Simulationshi
storie erzeugt.
Die vorliegende Erfindung wird vorzugsweise über eine gene
tische algorithmische Erzeugung von Testzuständen implemen
tiert, um einen Testsatz zu liefern, der wiederum Ausgabe
zustände erzeugt. Ein genetischer Algorithmus ist ein Algo
rithmus, der vorhandene nicht-optimale Lösungen verwendet,
die einen Nützlichkeitsgrad liefern, um andere Lösungen zu
bilden, die einen größeren Nützlichkeitsgrad liefern. Ins
besondere analysiert ein genetischer Algorithmus vorhandene
Lösungen und Charakteristika, die diesen Lösungen zugeord
net sind. Vorteilhafte Charakteristika aus einer Anzahl
vorhandener Lösungen werden kombiniert, um neue Lösungen zu
bilden, die wiederum auf eine spezifische Anwendung ange
wandt werden. Ein genetischer Algorithmus beinhaltet im
allgemeinen ein Erzeugen einer systematischen Codierungsno
menklatur, um Lösungen zu beschreiben. Zudem beinhaltet ein
genetischer Algorithmus im allgemeinen ein Bereitstellen
eines Mechanismus zum Auswerten von Lösungen. Ferner lie
fern genetische Algorithmen einen Mechanismus zum Beschrei
ben von Charakteristika der diversen Lösungen.
Bei dem vorliegenden System und dem vorliegenden Verfahren
wird die genetische algorithmische Erzeugung vorzugsweise
auf die Simulation von VLSI-Logikschaltungsblocks ange
wandt. Das System und das Verfahren verwenden vorzugsweise
die in der verwandten Anmeldung, US-Patentanmeldung Serien
nummer [Anwaltszeichen 10002360-1] mit dem Titel "METHOD
AND APPARATUS FOR ENCODING AND GENERATING TRANSACTION-BASED
STIMULUS FOR SIMULATION OF VLSI CIRCUITS", dargelegte Test
fallnomenklatur. Ferner erzeugen das System und das Verfah
ren vorzugsweise eine Anzahl von Originaltestfällen (Lösun
gen), wie sie in der vorhergehenden verwandten Anmeldung
beschrieben wurden. Alternativ dazu können Originaltestfäl
le zufällig oder durch gelenktes Paaren von Anweisungen er
zeugt werden. Diese Anhäufung von Testfällen wird einem
Schaltungssimulator bereitgestellt. Die Ergebnisse des Si
mulators werden vorzugsweise in einer Matrix oder Tabelle
aufrechterhalten. Die Ergebnisse geben vorzugsweise die An
zahl von Malen, an denen bestimmte Fälle diverse Logikzu
stände, die dem simulierten VLSI-Block zugeordnet sind,
verursachen oder stimulieren, ausführlich an. Die Anhäufung
von Lösungen und die Simulationsergebnisse werden daraufhin
durch den genetischen Algorithmus analysiert. Der geneti
sche Algorithmus identifiziert vorzugsweise Zustände, die
der Schaltungssimulation zugeordnet sind und nicht durch
die Originaltestfälle erzeugt wurden. Der genetische Algo
rithmus kombiniert daraufhin Charakteristika diverser Test
fälle, um neue Testfälle zu erzeugen. Die neuen Testfälle
werden daraufhin dem Schaltungssimulator geliefert, wodurch
ein höherer Vertrauensgrad bereitgestellt wird, daß der ge
samte VLSI-Chipentwurf simuliert wurde.
Wie zuvor angemerkt wurde, verwenden das vorliegende System
und das vorliegende Verfahren vorzugsweise den Testfaller
zeugnismechanismus, der bei der vorhergehenden Anmeldung
verwendet wurde. Kurz gesagt ordnet ein Testerzeugungsalgo
rithmus Transaktionstypen (A, B, C, D, E, F, G, H) diversen
"Schrittlängen" (101, 137, 173, 211, 251, 283, 337, 379)
zu, wie in Fig. 2 gezeigt ist. Die "Schrittlängen" sind ein
konzeptionelles Konstrukt, das das relative Auftreten di
verser Transaktionen definiert. Beispielsweise ist der
Transaktionstyp A der Schrittlänge 101 zugeordnet. Dement
sprechend wird der Transaktionstyp A alle 101 Simulations
zyklen über einen Simulator ausgeführt. Es ist ferner wich
tig, anzumerken, daß die Schrittlängen vorzugsweise zuein
ander relativ teilerfremd sind. Insbesondere besitzen die
Schrittlängen vorzugsweise keine gemeinsamen Faktoren.
Durch ein Verwenden von Schrittlängen auf diese Weise kann
die relative Zeitgebung der diversen Transaktionen auf eine
effiziente und umfassende Weise wiederholt bzw. iteriert
werden. Überdies ist zu erkennen, daß jede Transaktion
nicht unbedingt eine einzelne Operation an dem Bus oder ei
nen einzelnen Betriebszustand darstellen muß. Statt dessen
kann jeder Transaktion eine Anzahl von Zuständen zugeordnet
sein oder eine Anzahl von Anweisungen oder Operationen zu
geordnet sein. Beispielsweise kann der Zustand A1 bei dem
Simulationszyklus 101 implementiert sein; Zustand A2 kann
bei dem Simulationszyklus 102 implementiert sein; Zustand
A3 kann bei dem Simulationszyklus 103 implementiert sein.
Die Anzahl von Transaktionszuständen kann wie gewünscht auf
willkürliche Weise definiert sein, um eine bestimmte VLSI-
Block- oder eine andere Schaltung zu testen. Es ist ferner
zu erkennen, daß eine beliebige Anzahl von Schrittlängen
verwendet werden kann. Die vorliegende Erfindung beschränkt
die Anzahl von Schrittlängen lediglich, um die Erörterung
der Erfindung zu erleichtern.
Der Schaltungssimulationsvorgang beginnt durch ein Erzeugen
von Testfällen. Die Entwicklung eines Testfalles beinhaltet
ein Zuweisen von bestimmten Anweisungen, Operationen, An
weisungszuständen und/oder Betriebszuständen zu bestimmten
Transaktionstypen des Erzeugungsalgorithmus. Beispielsweise
kann dem Transaktionstyp A eine spezifische Lade- oder
Schreibanweisung zugewiesen werden. Für Beschreibungszwecke
ist der Testfall 1 durch Zuweisen einer Anweisung R zu der
Schrittlänge 101, einer Anweisung W zu der Schrittlänge 137
und einer Anweisung T zu der Schrittlänge 173 definiert.
Dementsprechend kann der Testfall 1 unter Verwendung des
folgenden Formats beschrieben werden: (TC1::R:101; W:137;
T:173). Es ist zu erkennen, daß tatsächliche Testfälle eine
willkürliche Anzahl von Anweisungen, Operationen,
Anweisungszuständen und/oder Betriebszuständen aufweisen
sungszuständen und/oder Betriebszuständen aufweisen können,
die jeweils diversen Schrittlängen zugeordnet sind. Die
vorliegende Beschreibung beschränkt die Anzahl von Anwei
sungen lediglich, um die vorliegende Erörterung zu verein
fachen.
Die diversen Testfällen zugeordneten Anweisungen sind in
Fig. 4A dargelegt. Fig. 4A veranschaulicht, daß bei dem
Testfall 1 die Anweisung R der Schrittlänge 101 zugeordnet
ist, der Anweisungstyp W der Schrittlänge 137 zugeordnet
ist und der Anweisungstyp T der Schrittlänge 173 zugeordnet
ist. Ähnlich ist bei dem Testfall 2 die Anweisung Q der
Schrittlänge 101 zugeordnet, die Anweisung R der Schritt
länge 137 zugeordnet und die Anweisung W der Schrittlänge
173 zugeordnet. Bei dem Testfall 3 ist die Anweisung M der
Schrittlänge 101 zugeordnet, die Anweisung N der Schritt
länge 137 zugeordnet und die Anweisung Q der Schrittlänge
173 zugeordnet. Bei dem Testfall N ist die Anweisung R der
Schrittlänge 101 zugeordnet, die Anweisung 5 der Schritt
länge 137 zugeordnet und die Anweisung T der Schrittlänge
173 zugeordnet.
Der Simulationsvorgang beginnt durch Einspeisen der durch
die diversen Testfälle erzeugten Anweisungen in einen
Schaltungssimulator. Die Ergebnisse der Simulation werden
vorzugsweise in einer Tabelle oder Matrix aufrechterhalten.
Fig. 3 veranschaulicht eine Veranschaulichungstabelle. Die
Reihen veranschaulichen alle Ausgabeereignisse, die für den
Betrieb des Logikblocks wichtig sind. Diese Ausgabeereig
nisse stellen Logikzustände dar, die dem Logikblock zuge
ordnet sind. Diese Ausgabeereignisse werden überwacht, um
zu bestimmen, ob der Logikblock ordnungsgemäß funktioniert.
Es kann eine willkürliche Anzahl von Ausgabeereignissen
überwacht werden.
Zu Beispielszwecken werden die folgenden Ereignisse verwen
det:
Ereignis 1 = (Ev1) = J + K + U = (J und K und U);
Ereignis 2 = (Ev2) = J + K - U = (J und K und nicht U);
Ereignis 3 = (Ev3) = K + U = (K und U); und
Ereignis N = (EvN) = X + Y + J = (X und Y und J).
Ereignis 1 = (Ev1) = J + K + U = (J und K und U);
Ereignis 2 = (Ev2) = J + K - U = (J und K und nicht U);
Ereignis 3 = (Ev3) = K + U = (K und U); und
Ereignis N = (EvN) = X + Y + J = (X und Y und J).
Die Spalten der Tabelle werden durch jeden Testfall, der
bei der Schaltungssimulation verwendet wird, indexiert. Die
Einträge der Tabelle stellen die Anzahl von Malen dar, an
denen ein bestimmter Testfall bewirkt, daß ein spezifisches
Ereignis auftritt. Zu Veranschaulichungszwecken wurde ange
nommen, daß ein gesamter Satz von Testfällen durchlaufen
und eine Gesamtzahl aller Ereignisse berechnet wurde. Dem
entsprechend stimulierte der Testfall 1, wie in Fig. 3 ge
zeigt, nicht den dem Ereignis 1 zugeordneten Logikzustand.
Jedoch stimulierte der Testfall 1 das Ereignis 2 zehnmal.
Der Testfall 1 stimulierte das Ereignis 3 siebenmal. Des
gleichen stimulierte der Testfall 1 das Ereignis N zwanzig
mal.
Es ist zu erkennen, daß ein Ereignis eine Teilmenge oder
eine Übermenge eines anderen Ereignisses sein kann. Alter
nativ dazu kann ein Ereignis als das Komplement, die Nega
tion oder Inversion eines oder mehrerer Logikausdrücke ei
nes anderen ähnlichen Ereignisses beschrieben werden. Bei
spielsweise ist bei Fig. 3 Ereignis 2 = (J + K - U) oder
anschaulich gesagt J und K und nicht U. Ferner ist Ereignis
1 = (J + K + U) oder anschaulich gesagt J und K und U. Die
Ereignisse sind deutlich insofern miteinander verwandt, als
eine der logischen Variablen invertiert ist. Desgleichen
ist Ereignis 3 (K + U) oder anschaulich gesagt K und U.
Folglich ist das Ereignis 3 eine Übermenge des Ereignisses
2.
Nach einem Tabellieren der Anzahl von Malen, an denen die
diversen Ereignisse durch die jeweiligen Testfälle stimu
liert wurden, ist es wünschenswert, Ereignisse, die nicht
mit ausreichender Häufigkeit stimuliert wurden, zu identi
fizieren, um einen annehmbaren Vertrauensgrad zu liefern,
daß der Logikblock bezüglich dieser Ereignisse angemessen
arbeitet. Dementsprechend kann der Identifizierungsvorgang
durch das folgende zusammengefaßt werden. Zunächst wird die
Ergebnistabelle durchsucht, um ein Ereignis zu identifizie
ren, das nicht aufgetreten ist oder selten aufgetreten ist.
Dieses Ereignis wird mit anderen Ereignissen in der Tabelle
verglichen, die mit einem bestimmten Häufigkeitsgrad aufge
treten sind. Insbesondere wird die Logikdefinition des
nichtauftretenden Ereignisses analysiert, um zu bestimmen,
inwieweit sie mit der Logikdefinition der häufiger auftre
tenden Ereignisse übereinstimmt. Es können mehrere Kriteri
en verwendet werden, um zu bestimmen, inwieweit solche De
finitionen übereinstimmen. Beispielsweise kann die Anzahl
von Ausdrücken, die zwischen einzelnen Definitionen diffe
rieren, untersucht werden. Alternativ dazu kann das Ausmaß
einer Überlappung zwischen einer Übermenge und einer ver
wandten Teilmenge untersucht werden. Dieser Vorgang wird
für jedes Ereignis in der Tabelle, das nicht aufgetreten
ist oder nur selten aufgetreten ist, iterativ wiederholt.
Bei diesem Beispiel wurde das Ereignis 1 durch keinen der
Testfälle stimuliert. Es ist jedoch wünschenswert, diesen
Zustand zu stimulieren, um die VLSI-Schaltung vollständig
zu testen. Um einen Testfall aufzubauen, der eine gewisse
Wahrscheinlichkeit aufweist, das nichtauftretende Ereignis
(Ereignis 1) zu stimulieren, durchsuchen das vorliegende
System und das vorliegende Verfahren die Liste von Ereig
nissen nach anderen Logikereignissen, die ähnliche Charak
teristika wie das nichtauftretende Ereignis aufweisen. Die
zugrundeliegende Annahme lautet, daß diese ähnlichen Zu
stände in gewissem Sinne "in der Nähe" des nichtauftreten
den Ereignisses vorliegen. Wie zuvor angemerkt wurde, kön
nen mehrere Kriterien durch diverse Softwareroutinen ver
wendet werden, um annehmbare in Frage kommende Ereignisse
zu identifizieren. In diesem Fall würde die Übereinstim
mungsfunktionalität das Ereignis 3 als wahrscheinlichen
Kandidaten für eine Analyse identifizieren, da es eine
Übermenge des Ereignis 1 ist. Ferner würde die Übereinstim
mungsfunktionalität das Ereignis 2 als Kandidaten identifi
zieren, da seine logische Definition lediglich um einen
einzigen Ausdruck von der logischen Definition des Ereignis
1 abweicht. Ferner würde die Übereinstimmungsfunktionalität
vorzugsweise das Ereignis N identifizieren, da seine logi
sche Definition ebenfalls den Logikzustand J erfordert.
An diesem Punkt ist es angemessen, zu bestimmen, welche
Testfälle die identifizierten ähnlichen Ereignisse (Ereig
nis 2, Ereignis 3 und Ereignis N) stimuliert haben. Durch
Untersuchen des Testfalls 1 wird beobachtet, daß er jedes
der ähnlichen Ereignisse (Ereignis 2, Ereignis 3 und Ereig
nis N) stimuliert hat. Umgekehrt hat nun der Testfall 2 le
diglich das Ereignis N stimuliert. Der Testfall 2 hat je
doch das Ereignis N veranlaßt, eine beträchtliche Anzahl
von Malen aufzutreten. Der Testfall 3 hat sowohl das Ereig
nis 2 als auch das Ereignis 3 jeweils zweimal stimuliert.
Der Testfall 4 hat lediglich das Ereignis 2 fünfmal stimu
liert.
Die Testfälle werden untersucht und ihre Charakteristika
gewichtet. Insbesondere werden die den ähnlichen Testfällen
zugeordneten Anweisungen einzeln gewichtet, um einen neuen
Testfall oder neue Testfälle aufzubauen. Fachleute können
viele Gewichtungsalgorithmen implementieren. Solche Algo
rithmen können eine beliebige Anzahl von Kriterien verwen
den. Beispielsweise liefert die Nähe oder Ähnlichkeit einer
bestimmten Logikdefinition eines identifizierten Ereignis
ses zu bzw. mit der Logikdefinition des nichtauftretenden
Ereignisses vorzugsweise einen bedeutenden Gewichtungsfak
tor. Mit anderen Worten werden Anweisungen, die Ereignissen
zugeordnet sind, die einem gewünschten Ereignis sehr nahe
stehen, schwerer gewichtet. Auch die relative Häufigkeit,
mit der ein Testfall mit seinen zugeordneten Anweisungen
die ähnlichen Ereignisse stimuliert hat, liefert vorzugs
weise einen bedeutenden Gewichtungsfaktor.
Ein beispielhafter Gewichtungsalgorithmus kann die Nähe-
Gewichtungsfaktoren von 2, 2, bzw. 1 für Ereignis 2, Ereig
nis 3 bzw. Ereignis N liefern, da Ereignis 2 und Ereignis 3
zwei Logikausdrücke gemeinsam mit dem Ereignis 1 verwenden,
während das Ereignis N lediglich einen einzigen Logikaus
druck gemeinsam verwendet. Dieser Nähe-Gewichtungsfaktor
wird für die ähnlichen Ereignisse mit Stimulationsauf
trittseinträgen multipliziert. Der multiplizierte Faktor
wird jeder Anweisung bereitgestellt, indem über Testfälle,
die die jeweiligen Anweisungen enthalten, summiert wird.
Beispielsweise stimuliert der Testfall 1 das Ereignis 2
zehnmal; das Ereignis 3 siebenmal und das Ereignis N 20mal.
Unter Verwendung der jeweiligen Gewichtungsfaktoren von 2,
2 und 1 liefert dieser Gewichtungsvorgang eine erste Wer
tung 54. Der Testfall 2 stimuliert das Ereignis N 50mal,
was zu einer zweiten Wertung von 50 führt. Der Testfall 3
stimuliert das Ereignis 2 zweimal, das Ereignis 3 zweimal
und das Ereignis N zweimal, was zu einer dritten Wertung
von 10 führt. Der Testfall 4 stimuliert das Ereignis 2
fünfmal, was zu einer vierten Wertung von 10 führt. Die er
ste, die zweite und die vierte Wertung werden summiert, was
ein Gesamtgewicht von 114 für die Anweisung R ergibt, da
sie in den Testfällen 1, 2 und 4 enthalten ist. Ähnliche
Berechnungen werden für die Anweisungen W, T, Q, S, M, N
durchgeführt, um jeweilige Wertungen von 104, 64, 58, 10,
10 und 10 zu erzeugen. Zu Veranschaulichungszwecken ist in
Fig. 4B eine beispielhafte Gewichtungstabelle bereitge
stellt.
Nun werden die gewichteten Anweisungen verwendet, um einen
neuen Testfall oder neue Testfälle aufzubauen. In der Pra
xis wird eine große Anzahl von Anweisungen in der gewichte
ten Tabelle enthalten sein, da bei typischen Implementie
rungen tatsächliche Testfälle eine beträchtliche Anzahl von
Anweisungen aufweisen. Es können diverse Verfahren verwen
det werden, um aus der gewichteten Tabelle aufgebaute Test
fälle auszuwählen. Beispielsweise kann ein Zufallszahlener
zeugungsalgorithmus in Verbindung mit der gewichteten Ta
belle verwendet werden. In dieser Situation wird jeder Ein
trag der gewichteten Tabelle durch die Summe aller Einträge
der gewichteten Tabelle dividiert. Dies liefert ein Wahr
scheinlichkeitsgewicht für jeden Tabelleneintrag. Die An
weisungen können daraufhin gemäß den Wahrscheinlichkeitsge
wichten der Anweisungseinträge zufällig ausgewählt werden.
Es ist zu erkennen, daß eine einzelne Anweisung bei einem
Testfall mehrere Male verwendet werden kann. Beispielsweise
erhielt die Anweisung R eine sehr hohe gewichtete Wertung.
Dementsprechend kann es angemessen sein, durch Verwenden
des Testfalles (R:101, W:137; R:173) R zu wiederholen. Es
kann ferner angemessen sein, höher gewichtete Anweisungen
niedrigeren Schrittlängen zuzuweisen. Es ist ferner zu er
kennen, daß es angemessen ist, die aufgebauten Testfälle zu
filtern. Insbesondere sollten die aufgebauten Testfälle mit
bestehenden Testfällen abgeglichen werden, um sicherzustel
len, daß eine Wiederholung einer bereits durchgeführten Si
mulation nicht auftritt.
Zudem ist es möglich, Zeitgebungsinformationen, die auf di
verse Anweisungen bezogen sind, beizubehalten. Beispiels
weise ist die Anweisung R für den Testfall 1 und den Test
fall 4 der Schrittlänge 101 zugeordnet. Desgleichen ist die
Anweisung R für den Testfall 2 der Schrittlänge 137 zuge
ordnet. Da R mit einer relativ hohen Häufigkeit in die Si
mulationen eingespeist wurde, kann es sich als wertvoll er
weisen, bei dem aufgebauten Testfall R einer niedrigeren
Schrittlänge zuzuordnen. Unter Verwendung eines weiteren
Gewichtungsalgorithmus können Zeitgebungsbeziehungen selek
tiv Anweisungen zugeordnet werden. Durch Implementieren ei
nes solchen Ansatzes können Zeitgebungsinformationen, die
sich auf die Anweisungen beziehen, eventuell beibehalten
werden.
Durch Verwenden der aufgebauten Testfälle kann eine be
trächtliche Verbesserung einer VLSI-Simulation erreicht
werden. Auf der Basis einer tatsächlichen Simulation mit
6000 Ereignissen wurde eine ursprüngliche Menge von Test
fällen zufällig erzeugt. Dieser zufälligen Erzeugung gelang
es, etwa 67% der Ereignisse zu simulieren. Durch Anwenden
des genetischen Algorithmus, um aufgebaute Testfälle zu er
zeugen, die auf die verbleibenden nichtauftretenden Erei
gnisse abzielten, wurden 10% der angestrebten Ereignisse
simuliert. Dementsprechend liefert die Verwendung aufgebau
ter Testfälle ein viel größeres Maß an Vertrauen bezüglich
des automatisierten Schaltungssimulationsvorgangs.
Wenn sie in Software implementiert sind, sind die Elemente
der vorliegenden Erfindung im wesentlichen die Codesegmente
zum Durchführen der notwendigen Aufgaben. Die Programm-
oder Codesegmente können in einem prozessorlesbaren Medium
gespeichert oder durch ein Computerdatensignal, das in ei
ner Trägerwelle verkörpert ist, oder durch ein durch einen
Träger moduliertes Signal über ein Übertragungsmedium über
tragen werden. Das "prozessorlesbare Medium" kann jedes be
liebige Medium sein, das Informationen speichern oder über
tragen kann. Beispiele des prozessorlesbaren Mediums umfas
sen eine elektronische Schaltung, eine Halbleiter-
Speichervorrichtung, einen ROM, einen Flash-Speicher, einen
löschbaren ROM (EROM), eine Floppy-Diskette, eine Compact-
Disk (CD-ROM), eine Bildplatte, eine Festplatte, ein faser
optisches Medium, eine Hochfrequenz-Verbindung
(RF-Verbindung), usw. Das Computerdatensignal kann ein beliebi
ges Signal sein, das sich über ein Übertragungsmedium, wie
beispielsweise elektronische Netzwerkkanäle, Lichtwellen
leiter, Luft-, elektromagnetische, Hochfrequenz-
Verbindungen, usw., ausbreiten kann. Die Codesegmente kön
nen über Computernetzwerke, wie z. B. das Internet, Intra
net, usw., heruntergeladen werden.
Fig. 5 veranschaulicht ein Computersystem 500, das ausge
legt ist, um die vorliegende Erfindung zu verwenden. Eine
Zentraleinheit (CPU - central processing unit) 501 ist mit
einem Systembus 502 gekoppelt. Die CPU 501 kann eine belie
bige Mehrzweck-CPU sein, wie beispielsweise eine HP PA-8500
oder ein Intel-Pentium-Prozessor. Die vorliegende Erfindung
ist jedoch nicht durch die Architektur der CPU 501 einge
schränkt, solange die CPU 501 die erfindungsgemäßen Opera
tionen, wie sie hierin beschrieben sind, unterstützt. Der
Bus 502 ist mit einem Direktzugriffsspeicher (RAM) 503 ge
koppelt, der ein SRAM, DRAM oder SDRAM sein kann. Ein ROM
504 ist ebenfalls mit dem Bus 502 gekoppelt, der ein PROM,
EPROM oder EEPROM sein kann. Der RAM 503 und der ROM 504
halten Benutzer- und Systemdaten- und -programme, wie in
der Technik hinreichend bekannt ist.
Der Bus 502 ist ferner mit einer Eingabe/Ausgabe-
Steuerkarte (I/O-Steuerkarte) 505, einer Kommunikations
adapterkarte 511, einer Benutzerschnittstellenkarte 508 und
einer Anzeigekarte 509 gekoppelt. Die I/O-Karte 505 ist mit
den Speichervorrichtungen 506, beispielsweise einem oder
mehreren der folgenden: dem Festplattenlaufwerk, dem CD-
Laufwerk, dem Floppy-Disk-Laufwerk, dem Bandlaufwerk, mit
dem Computersystem verbunden. Die Kommunikationskarte 511
ist ausgelegt, um das Computersystem 500 mit einem Netzwerk
512 zu koppeln, das entweder ein Telefonnetzwerk, ein loka
les Netzwerk (LAN) und/oder ein Weitverkehrsnetzwerk (WAN),
Ethernet-Netzwerk und/oder Internet-Netzwerk sein kann. Die
Benutzerschnittstellenkarte 508 koppelt Benutzereingabevor
richtungen, beispielsweise eine Tastatur 513 und eine Zei
gevorrichtung 507, mit dem Computersystem 500. Die Anzeige
karte 509 wird durch die CPU 501 getrieben, um die Anzeige
an der Anzeigevorrichtung 510 zu steuern.
Claims (20)
1. Verfahren zum Simulieren einer Schaltung, das folgende
Schritte aufweist:
Identifizieren eines Satzes von Logikereignissen, die der Schaltung zugeordnet sind, wobei die Logikerei gnisse als Datenobjekte, die Logikgleichungen darstel len, dargestellt sind;
Erzeugen einer Mehrzahl von Eingangstestfällen;
Simulieren eines Betriebs der Schaltung unter Verwen dung der Mehrzahl von Eingangstestfällen;
Tabellieren von Anzahlen von Malen, an denen jeder Eingangstestfall Logikereignisse stimuliert; und
Identifizieren von Logikereignissen, die nicht häufi ger als eine vorbestimmte Schwelle stimuliert wurden, als nichtauftretende Ereignisse.
Identifizieren eines Satzes von Logikereignissen, die der Schaltung zugeordnet sind, wobei die Logikerei gnisse als Datenobjekte, die Logikgleichungen darstel len, dargestellt sind;
Erzeugen einer Mehrzahl von Eingangstestfällen;
Simulieren eines Betriebs der Schaltung unter Verwen dung der Mehrzahl von Eingangstestfällen;
Tabellieren von Anzahlen von Malen, an denen jeder Eingangstestfall Logikereignisse stimuliert; und
Identifizieren von Logikereignissen, die nicht häufi ger als eine vorbestimmte Schwelle stimuliert wurden, als nichtauftretende Ereignisse.
2. Verfahren gemäß Anspruch 1, das ferner folgende
Schritte aufweist:
Auswählen eines Ereignisses aus den nichtauftretenden Ereignissen; und
Vergleichen einer Logikgleichung des einen Ereignisses mit Logikgleichungen von Logikereignissen, die häufi ger als eine vorbestimmte Schwelle stimuliert wurden.
Auswählen eines Ereignisses aus den nichtauftretenden Ereignissen; und
Vergleichen einer Logikgleichung des einen Ereignisses mit Logikgleichungen von Logikereignissen, die häufi ger als eine vorbestimmte Schwelle stimuliert wurden.
3. Verfahren gemäß Anspruch 2, bei dem der Schritt des
Vergleichens folgenden Teilschritt aufweist:
Zuweisen von Wertungen zu verglichenen Ereignissen, wobei die Wertungen eine Ähnlichkeit mit dem einen Er eignis darstellen.
Zuweisen von Wertungen zu verglichenen Ereignissen, wobei die Wertungen eine Ähnlichkeit mit dem einen Er eignis darstellen.
4. Verfahren gemäß Anspruch 3, das ferner folgenden
Schritt aufweist:
Verwenden der Wertungen und der Anzahlen von Malen, um in den Eingangstestfällen enthaltene Anweisungen zu gewichten.
Verwenden der Wertungen und der Anzahlen von Malen, um in den Eingangstestfällen enthaltene Anweisungen zu gewichten.
5. Verfahren gemäß Anspruch 4, das ferner folgenden
Schritt aufweist:
Aufbauen eines neuen Testfalles aus den gewichteten Anweisungen.
Aufbauen eines neuen Testfalles aus den gewichteten Anweisungen.
6. Verfahren gemäß Anspruch 5, bei dem jeder Testfall ei
ne Mehrzahl von Anweisungen besitzt, wobei jede Anwei
sung jeweils Erzeugungsschrittlängen zugeordnet ist.
7. Verfahren gemäß Anspruch 6, bei dem die Erzeugungs
schrittlängen zueinander relativ teilerfremd sind.
8. Verfahren gemäß einem der Ansprüche 5-7, bei dem der
Schritt des Tabellierens den Teilschritt eines Auf
zeichnens von Anzahlen von Malen in einer Matrix auf
weist.
9. Verfahren gemäß Anspruch 7 oder 8, bei dem der Schritt
des Aufbauens den folgenden Teilschritt aufweist:
Zuweisen von stark gewichteten Anweisungen zu niedri geren Schrittlängen.
Zuweisen von stark gewichteten Anweisungen zu niedri geren Schrittlängen.
10. Verfahren gemäß einem der Ansprüche 7-9, bei dem der
Schritt des Aufbauens den Teilschritt eines Gewichtens
von Schrittlängen, die bestimmten Anweisungen zugeord
net sind, aufweist.
11. System zum Simulieren, das folgende Merkmale aufweist:
eine Datenstruktur, die einen Satz von Logikereignis sen umfaßt, die der Schaltung zugeordnet sind, wobei die Logikereignisse als Datenobjekte, die Logik gleichungen darstellen, dargestellt sind;
eine erste Softwareroutine, die eine Mehrzahl von Ein gangstestfällen erzeugt;
eine zweite Softwareroutine, die die Mehrzahl von Ein gangstestfällen an einem Schaltungssimulator anlegt;
eine dritte Softwareroutine, die die Anzahl von Malen tabelliert, an denen jeder Eingangstestfall Logikerei gnisse stimuliert; und
eine vierte Softwareroutine, die Logikereignisse iden tifiziert, die nicht häufiger als eine vorbestimmte Schwelle stimuliert worden sind, als nichtauftretende Ereignisse.
eine Datenstruktur, die einen Satz von Logikereignis sen umfaßt, die der Schaltung zugeordnet sind, wobei die Logikereignisse als Datenobjekte, die Logik gleichungen darstellen, dargestellt sind;
eine erste Softwareroutine, die eine Mehrzahl von Ein gangstestfällen erzeugt;
eine zweite Softwareroutine, die die Mehrzahl von Ein gangstestfällen an einem Schaltungssimulator anlegt;
eine dritte Softwareroutine, die die Anzahl von Malen tabelliert, an denen jeder Eingangstestfall Logikerei gnisse stimuliert; und
eine vierte Softwareroutine, die Logikereignisse iden tifiziert, die nicht häufiger als eine vorbestimmte Schwelle stimuliert worden sind, als nichtauftretende Ereignisse.
12. System gemäß Anspruch 11, das ferner folgende Merkmale
aufweist:
eine fünfte Softwareroutine, die ein Ereignis der nichtauftretenden Ereignisse auswählt; und
eine sechste Softwareroutine, die eine Logikgleichung des einen Ereignisses mit Logikgleichungen von Logik ereignissen vergleicht, die häufiger als eine vorbe stimmte Schwelle stimuliert worden sind.
eine fünfte Softwareroutine, die ein Ereignis der nichtauftretenden Ereignisse auswählt; und
eine sechste Softwareroutine, die eine Logikgleichung des einen Ereignisses mit Logikgleichungen von Logik ereignissen vergleicht, die häufiger als eine vorbe stimmte Schwelle stimuliert worden sind.
13. System gemäß Anspruch 12, bei dem die sechste Soft
wareroutine verglichenen Ereignissen Wertungen zu
weist, wobei die Wertungen eine Ähnlichkeit mit dem
einen Ereignis darstellen.
14. System gemäß Anspruch 13, das ferner folgendes Merkmal
aufweist:
eine siebte Softwareroutine, die die Wertungen und die Anzahlen von Malen verwendet, um in den Eingangstest fällen enthaltene Anweisungen zu gewichten.
eine siebte Softwareroutine, die die Wertungen und die Anzahlen von Malen verwendet, um in den Eingangstest fällen enthaltene Anweisungen zu gewichten.
15. System gemäß Anspruch 14, das ferner folgendes Merkmal
aufweist:
eine achte Softwareroutine, die einen neuen Testfall aus den gewichteten Anweisungen aufbaut.
eine achte Softwareroutine, die einen neuen Testfall aus den gewichteten Anweisungen aufbaut.
16. System gemäß Anspruch 15, bei dem jeder Testfall eine
Mehrzahl von Anweisungen aufweist, wobei jede Anwei
sung jeweils Erzeugungsschrittlängen zugeordnet ist.
17. System gemäß Anspruch 16, bei dem die Erzeugungs
schrittlängen zueinander relativ teilerfremd sind.
18. System gemäß einem der Ansprüche 15-17, bei dem die
dritte Softwareroutine die Anzahlen von Malen in einer
Matrix aufzeichnet.
19. Computerprogrammprodukt mit einem computerlesbaren Me
dium, auf dem eine programmierbare Logik aufgezeichnet
ist, zum Testen einer Schaltung, wobei das Computer
produkt folgende Merkmale aufweist:
eine Einrichtung zum Darstellen eines Satzes von Logikereignissen, die der Schaltung zugeordnet sind, als Datenobjekte, die Logikgleichungen darstellen;
eine Einrichtung zum Erzeugen einer Mehrzahl von Ein gangstestfällen für ein Anlegen an einen Schaltungssi mulator;
eine Einrichtung zum Tabellieren von Anzahlen von Ma len, an denen jeder Eingangstestfall Logikereignisse stimuliert;
eine Einrichtung zum Identifizieren von Logikereignis sen, die nicht häufiger als eine vorbestimmte Schwelle stimuliert wurden, als nichtauftretende Ereignisse;
eine Einrichtung zum Auswählen eines Ereignisses aus den nichtauftretenden Ereignissen; und
eine Einrichtung zum Vergleichen einer Logikgleichung des einen Ereignisses mit Logikgleichungen von Logik ereignissen, die häufiger als eine vorbestimmte Schwelle stimuliert wurden.
eine Einrichtung zum Darstellen eines Satzes von Logikereignissen, die der Schaltung zugeordnet sind, als Datenobjekte, die Logikgleichungen darstellen;
eine Einrichtung zum Erzeugen einer Mehrzahl von Ein gangstestfällen für ein Anlegen an einen Schaltungssi mulator;
eine Einrichtung zum Tabellieren von Anzahlen von Ma len, an denen jeder Eingangstestfall Logikereignisse stimuliert;
eine Einrichtung zum Identifizieren von Logikereignis sen, die nicht häufiger als eine vorbestimmte Schwelle stimuliert wurden, als nichtauftretende Ereignisse;
eine Einrichtung zum Auswählen eines Ereignisses aus den nichtauftretenden Ereignissen; und
eine Einrichtung zum Vergleichen einer Logikgleichung des einen Ereignisses mit Logikgleichungen von Logik ereignissen, die häufiger als eine vorbestimmte Schwelle stimuliert wurden.
20. Computerprogrammprodukt gemäß Anspruch 19, das ferner
folgende Merkmale aufweist:
eine Einrichtung zum Gewichten von Anweisungen, die in den Eingangstestfällen enthalten sind, unter Verwen dung eines Ausgabesignals von der Einrichtung zum Ver gleichen und der Anzahlen von Malen; und
eine Einrichtung zum Aufbauen eines neuen Testfalles aus den gewichteten Anweisungen.
eine Einrichtung zum Gewichten von Anweisungen, die in den Eingangstestfällen enthalten sind, unter Verwen dung eines Ausgabesignals von der Einrichtung zum Ver gleichen und der Anzahlen von Malen; und
eine Einrichtung zum Aufbauen eines neuen Testfalles aus den gewichteten Anweisungen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/727,188 US6859770B2 (en) | 2000-11-30 | 2000-11-30 | Method and apparatus for generating transaction-based stimulus for simulation of VLSI circuits using event coverage analysis |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10157854A1 true DE10157854A1 (de) | 2002-06-20 |
Family
ID=24921685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10157854A Withdrawn DE10157854A1 (de) | 2000-11-30 | 2001-11-26 | Verfahren und Vorrichtung zum Erzeugen eines transaktionsbasierten Stimulus für eine Simulation von VLSI-Schaltungen unter Verwendung einer Ereignisabdeckungsanalyse |
Country Status (2)
Country | Link |
---|---|
US (1) | US6859770B2 (de) |
DE (1) | DE10157854A1 (de) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6889199B2 (en) * | 2000-11-30 | 2005-05-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus for encoding and generating transaction-based stimulus for simulation of VLSI circuits |
US20020133325A1 (en) * | 2001-02-09 | 2002-09-19 | Hoare Raymond R. | Discrete event simulator |
US7092868B2 (en) * | 2001-10-30 | 2006-08-15 | International Business Machines Corporation | Annealing harvest event testcase collection within a batch simulation farm |
US6918098B2 (en) * | 2002-07-16 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | Random code generation using genetic algorithms |
US6918099B2 (en) * | 2003-02-19 | 2005-07-12 | Sun Microsystems, Inc. | Method and system for entropy driven verification |
US20050086565A1 (en) * | 2003-10-01 | 2005-04-21 | Thompson Ryan C. | System and method for generating a test case |
US7093218B2 (en) * | 2004-02-19 | 2006-08-15 | International Business Machines Corporation | Incremental, assertion-based design verification |
US7996200B2 (en) * | 2004-10-04 | 2011-08-09 | Synopsys, Inc. | Transaction-based system and method for abstraction of hardware designs |
US7565333B2 (en) * | 2005-04-08 | 2009-07-21 | Caterpillar Inc. | Control system and method |
US20060229854A1 (en) * | 2005-04-08 | 2006-10-12 | Caterpillar Inc. | Computer system architecture for probabilistic modeling |
US8364610B2 (en) | 2005-04-08 | 2013-01-29 | Caterpillar Inc. | Process modeling and optimization method and system |
US8209156B2 (en) * | 2005-04-08 | 2012-06-26 | Caterpillar Inc. | Asymmetric random scatter process for probabilistic modeling system for product design |
US7877239B2 (en) * | 2005-04-08 | 2011-01-25 | Caterpillar Inc | Symmetric random scatter process for probabilistic modeling system for product design |
US20060229852A1 (en) * | 2005-04-08 | 2006-10-12 | Caterpillar Inc. | Zeta statistic process method and system |
US20060229753A1 (en) * | 2005-04-08 | 2006-10-12 | Caterpillar Inc. | Probabilistic modeling system for product design |
US20060230097A1 (en) * | 2005-04-08 | 2006-10-12 | Caterpillar Inc. | Process model monitoring method and system |
US20070061144A1 (en) * | 2005-08-30 | 2007-03-15 | Caterpillar Inc. | Batch statistics process model method and system |
US8352428B2 (en) * | 2005-10-17 | 2013-01-08 | Freescale Semiconductor, Inc. | Network file update mechanism with integrity assurance |
US7409654B2 (en) * | 2005-10-17 | 2008-08-05 | Freescale Semiconductor, Inc. | Method and apparatus for performing test pattern autograding |
US7308658B2 (en) * | 2005-10-17 | 2007-12-11 | Freescale Semiconductor, Inc. | Method and apparatus for measuring test coverage |
US8161449B2 (en) * | 2005-10-17 | 2012-04-17 | Freescale Semiconductor, Inc. | Improving test pattern coverage through parallel discard, flow control, and quality metrics |
US7900183B2 (en) * | 2005-10-17 | 2011-03-01 | Freescale Semiconductor, Inc. | Vendor independent method to merge coverage results for different designs |
US8255861B2 (en) * | 2005-10-17 | 2012-08-28 | Freescale Semiconductor, Inc. | Efficient replaying of autograded coverage regressions and performance verification with directed testcases |
US7487134B2 (en) * | 2005-10-25 | 2009-02-03 | Caterpillar Inc. | Medical risk stratifying method and system |
US20070118487A1 (en) * | 2005-11-18 | 2007-05-24 | Caterpillar Inc. | Product cost modeling method and system |
WO2007057296A2 (en) * | 2005-11-18 | 2007-05-24 | International Business Machines Corporation | Test effort estimator |
US7499842B2 (en) | 2005-11-18 | 2009-03-03 | Caterpillar Inc. | Process model based virtual sensor and method |
US7505949B2 (en) * | 2006-01-31 | 2009-03-17 | Caterpillar Inc. | Process model error correction method and system |
US20070203810A1 (en) * | 2006-02-13 | 2007-08-30 | Caterpillar Inc. | Supply chain modeling method and system |
US8478506B2 (en) | 2006-09-29 | 2013-07-02 | Caterpillar Inc. | Virtual sensor based engine control system and method |
US7483774B2 (en) * | 2006-12-21 | 2009-01-27 | Caterpillar Inc. | Method and system for intelligent maintenance |
US20080154811A1 (en) * | 2006-12-21 | 2008-06-26 | Caterpillar Inc. | Method and system for verifying virtual sensors |
US7787969B2 (en) * | 2007-06-15 | 2010-08-31 | Caterpillar Inc | Virtual sensor system and method |
US7831416B2 (en) * | 2007-07-17 | 2010-11-09 | Caterpillar Inc | Probabilistic modeling system for product design |
US7788070B2 (en) * | 2007-07-30 | 2010-08-31 | Caterpillar Inc. | Product design optimization method and system |
US7542879B2 (en) * | 2007-08-31 | 2009-06-02 | Caterpillar Inc. | Virtual sensor based control system and method |
US20090077541A1 (en) * | 2007-09-19 | 2009-03-19 | Myron Jeffries | Method and apparatus for testing and monitoring systems using reconfigurable hardware and software resources |
US7593804B2 (en) * | 2007-10-31 | 2009-09-22 | Caterpillar Inc. | Fixed-point virtual sensor control system and method |
US8036764B2 (en) | 2007-11-02 | 2011-10-11 | Caterpillar Inc. | Virtual sensor network (VSN) system and method |
US8224468B2 (en) | 2007-11-02 | 2012-07-17 | Caterpillar Inc. | Calibration certificate for virtual sensor network (VSN) |
US20090293457A1 (en) * | 2008-05-30 | 2009-12-03 | Grichnik Anthony J | System and method for controlling NOx reactant supply |
US8086640B2 (en) * | 2008-05-30 | 2011-12-27 | Caterpillar Inc. | System and method for improving data coverage in modeling systems |
US7917333B2 (en) * | 2008-08-20 | 2011-03-29 | Caterpillar Inc. | Virtual sensor network (VSN) based control system and method |
JP5669630B2 (ja) * | 2011-03-04 | 2015-02-12 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | テスト・ケース生成方法、プログラム及びシステム |
US8386974B2 (en) * | 2011-04-14 | 2013-02-26 | Synopsys, Inc. | Accelerating coverage convergence using symbolic properties |
US8793004B2 (en) | 2011-06-15 | 2014-07-29 | Caterpillar Inc. | Virtual sensor system and method for generating output parameters |
US20130054218A1 (en) * | 2011-08-24 | 2013-02-28 | Ameen Ashraf | Method and Software Tool for Automatically Testing a Circuit Design |
US8443316B1 (en) | 2011-11-09 | 2013-05-14 | Synopsys, Inc. | Accelerating coverage convergence and debug using symbolic properties and local multi-path analysis |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0561931A (ja) * | 1991-08-30 | 1993-03-12 | Mitsubishi Electric Corp | シミユレーシヨン装置 |
US5528516A (en) * | 1994-05-25 | 1996-06-18 | System Management Arts, Inc. | Apparatus and method for event correlation and problem reporting |
US5729554A (en) * | 1996-10-01 | 1998-03-17 | Hewlett-Packard Co. | Speculative execution of test patterns in a random test generator |
US5956476A (en) | 1996-10-31 | 1999-09-21 | Hewlett Packard Company | Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns |
US6018623A (en) | 1997-10-10 | 2000-01-25 | Hewlett-Packard Company | Method and system for determining statistically based worst-case on-chip interconnect delay and crosstalk |
US6161051A (en) * | 1998-05-08 | 2000-12-12 | Rockwell Technologies, Llc | System, method and article of manufacture for utilizing external models for enterprise wide control |
-
2000
- 2000-11-30 US US09/727,188 patent/US6859770B2/en not_active Expired - Lifetime
-
2001
- 2001-11-26 DE DE10157854A patent/DE10157854A1/de not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US6859770B2 (en) | 2005-02-22 |
US20020065640A1 (en) | 2002-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10157854A1 (de) | Verfahren und Vorrichtung zum Erzeugen eines transaktionsbasierten Stimulus für eine Simulation von VLSI-Schaltungen unter Verwendung einer Ereignisabdeckungsanalyse | |
DE3856079T2 (de) | Verfahren für einen Blockdiagramm-Simulator | |
DE102012102770B9 (de) | System und Verfahren zur Fehlereingrenzung und Fehlerabschwächung basierend auf einer Netzwerkmodellierung | |
DE4110144A1 (de) | Rohstoff-produktgruppen-zuweisungskoordinator | |
DE69532307T2 (de) | Ausdrucks-Propagierung für hierarchisches Netzlisten | |
DE19717716A1 (de) | Verfahren zur automatischen Diagnose technischer Systeme unter Berücksichtigung eines effizienten Wissenserwerbs und einer effizienten Bearbeitung zur Laufzeit | |
DE69218682T2 (de) | Verfahren zum austesten eines softwareprogramms | |
DE102005013302A1 (de) | Proaktiver, systemischer Planer für ressorceneingeschränkte Testsysteme | |
DE112020006021T5 (de) | Auf maschinelles lernen basierendes verfahren und vorrichtung für die berechnung und verifizierung von verzögerungen des entwurfs integrierter schaltungen | |
DE102004036813A1 (de) | Verfahren zum Erzeugen eines Schaltungsmodells | |
DE102013213047A1 (de) | System, Verfahren und Computerprogrammprodukt zum Testen von Vorrichtungsparametern | |
WO2017114883A1 (de) | Verfahren zum konfigurieren einer co-simulation für ein gesamtsystem | |
WO2000026824A1 (de) | Verfahren und anordnung zum vergleich einer ersten eigenschaft mit vorgegebenen eigenschaften eines technischen systems | |
DE102012108407A1 (de) | Verfahren und Vorrichtung zum Ermitteln von Testmengen von Betriebsparameterwerten für eine elektronische Komponente | |
DE60110811T2 (de) | Verfahren zur bereitstellung von bitweisen einschränkungen während einer test-generierung | |
DE69031327T2 (de) | Einrichtung und Verfahren zur rechnergestützten Entscheidungsfindung | |
DE112008001707T5 (de) | Finite-Feld-Operationen verwendender kryptographischer Zufallszahlengenerator | |
DE60224378T2 (de) | Verfahren zur Erzeugung eines Testmusters für die Simulation und/oder Prüfung des Layouts einer integrierten Schaltung | |
DE60218447T2 (de) | Verfahren zur Bearbeitung von Testmustern für einen integrierten Schaltkreis | |
EP3812949A1 (de) | Konfigurierbarer digitaler zwilling | |
DE102017113594A1 (de) | Computerimplementiertes Verfahren zur Simulation einer elektrischen Gesamtschaltung | |
DE10056825C2 (de) | Verfahren, Vorrichtung und Computerprogramm zum Erzeugen eines Zufallstestcodes | |
DE19924242C2 (de) | Vektorrestauration mit beschleunigter Validation und Verfeinerung | |
DE10200833A1 (de) | Gerät und Verfahren für eine Teststimuliverdichtung | |
DE4410731A1 (de) | Logiksimulator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8130 | Withdrawal |