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 Ereignisabdeckungsanalyse

Info

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
Application number
DE10157854A
Other languages
English (en)
Inventor
Clinton M Ramsey
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE10157854A1 publication Critical patent/DE10157854A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/31835Analysis of test coverage or failure detectability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design 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).
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.
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.
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.
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.
5. Verfahren gemäß Anspruch 4, das ferner folgenden Schritt aufweist:
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.
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.
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.
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.
15. System gemäß Anspruch 14, das ferner folgendes Merkmal aufweist:
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.
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.
DE10157854A 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 Withdrawn DE10157854A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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