-
Technisches Umfeld
-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren zur Unterscheidung
zwischen verschiedenen Typen von Abtastfehlern, computerlesbaren
Code, der ein Anzeigegerät
veranlasst, einen oder mehrere simulierte Abtastausgabedatensätze in Abhängigkeit
von der Zeit grafisch darzustellen, sowie eine rechnerbasierte Schaltungsemulation
und ein Fehlerdetektionssystem.
-
Hintergrund
-
Integrierte
Schaltungen haben in Bezug auf Komplexität, Betriebsgeschwindigkeit
und Nützlichkeit rasch
zugelegt. Ein Verfahren zur Spezifizierung einer integrierten Schaltung
ist die Verwendung einer Hardwarebeschreibungssprache (Hardware
Description Language; HDL) wie VHDL. Eine Hardwarebeschreibungssprache
ermöglicht
die Darstellung des Entwurfs einer integrierten Schaltung auf einer
logischen Ebene und schafft eine problemorientierte Entwurfssprache.
Eine integrierte Schaltung wird in mehreren verschiedenen Ebenen
dargestellt, die unterschiedliche Abstraktionsschichten umfassen.
Um eine abschließende
Implementierung zu erreichen, werden Syntheseprogramme umfassende „Silicon-Compiler" verwendet, wobei
die Programme genügend
Details erzeugen, um direkt zur Siliziumfertigung überzugehen.
-
Ein
Kompilierer erzeugt während
der Verarbeitung eines HDL-Programms eine Netzliste mit generischen
Grundzellen. Eine Netzliste ist eine Liste aller Netze oder eine
Sammlung der Anschlussstifte in einer Schaltung, die elektrisch
verbunden werden müssen.
Die Netzliste besteht aus einer detaillierten Liste mit Schaltverbindungen
und logischen Komponenten und kann Grundzellen wie XOR-Gatter, NAND-Gatter,
Signalspeicher und D-Flipflops sowie deren zugehörige Schaltverbindungen enthalten.
-
Der „Silicon-Compiler" erzeugt zunächst eine
Netzliste von unabhängigen
Zellen und wendet dann in einem als „Mapping" bezeichneten Verfahren eine bestimmte
Zellbibliothek auf die resultierende generische Netzliste an. Dadurch
wird eine abhängige
abgebildete Netzliste erzeugt, die innerhalb einer Zellbibliothek
vorhandene und für
das Computersystem zur Verfügung
stehende Standardschaltungen verwendet. „Silicon-Compiler" und Mapping-Programme sind dem Fachkundigen
vertraut und werden in zahlreichen Patenten beschrieben, darunter
in den US-amerikanischen Patentschriften 5.406.497 und 5.831.868.
-
Mit
zunehmender Schaltungskomplexität
ist es schwieriger und teurer geworden, die Funktionalität integrierter
Schaltungen zu testen. Zu den Strategien, die entwickelt wurden,
um dies zu bewältigen,
gehört
ein testfreundliches Design für
elektronische Baugruppen (Design for Testability; DFT), eine in
einer integrierten Schaltung platzierte Funktion, wodurch die Schaltung
mittels zuvor festgelegter Teststeuersignale in einen Testbetrieb
gebracht wird. Indem spezielle Testeingabesignale von einem automatischen
Testmustergenerator (ATPG) an Eingänge der integrierten Schaltung
angelegt werden, wird ein Satz von Ausgangssignalen erzeugt. Die
Ausgangssignale werden mit erwarteten Werten verglichen, um festzustellen,
ob die integrierte Schaltung die erwarteten Werte liefert. Falls
eine Abweichung zwischen den Ausgangssignalen und den erwarteten
Werten festgestellt wird, muss ermittelt werden, wie diese Abweichung
entstand, um eine Reparatur-, Neuentwicklungs- oder andere Abhilfemaßnahme vorschlagen
zu können.
-
Bei
manchen Arten von DFT werden, nachdem die integrierte Schaltung
mit Hilfe des Testsignals in den Testbetrieb gebracht wurde, sequenzielle
und kombinatorische Logikschaltungen getestet, indem ausgewählte Flipflops
innerhalb der integrierten Schaltung im Testbetrieb mit Hilfe von
Multiplexern zu einem Schieberegister (auch bekannt als ein „Scan-Register") zusammengeschaltet
werden. Ein Testvektor, der bekannte Eingangssignale enthält, wird
auf Teile der integrierten Schaltung angewandt, und die daraus resultierenden Ausgangssignale
werden zunächst
parallel in den Scan-Registern erfasst und dann seriell aus den
Scan-Registern ausgetaktet („Scan
Shifting").
-
Neue
integrierte Schaltungen zu entwerfen und herzustellen ist teuer.
Insbesondere teuer ist es, Prototypen von integrierten Schaltungen
herzustellen, die nicht wie erwartet oder wie erwünscht funktionieren.
Daher ist es allgemein üblich,
den Betrieb neuer Entwürfe
während
ihrer Entwicklung zu simulieren, um zu versuchen, so viele potenzielle
Fehler oder Probleme wie möglich
zu ermitteln, bevor man den Prototypenentwurf abschließt und dann
herstellt.
-
Typische
Simulationssoftware, wie sie beispielsweise von Mentor Graphics
(Wilsonville, OR) oder Synopsys (Mountain, CA) erhältlich ist,
liefert eine Textdateiausgabe mit Informationen in Bezug auf das
simulierte Scan-Shifting. Häufig
sind viel Zeit und Mühe
erforderlich, um Fehlerkennzeichen in diesen Textdateien mittels
Netzlisten-Syntaxanalyse
und Berechnungen zurückzuverfolgen,
um festzustellen, wo das Problem tatsächlich liegt. Zudem ist dieses
Verfahren hinreichend kompliziert, um zumindest teilweise fehleranfällig zu sein,
weil es keinerlei intuitiven Hinweis darauf liefert, wo das Problem
liegt.
-
Zu
den Problemen, die beim simulierten Erfassen des Ausgangssignals
auftreten können,
gehören
unter anderem eine schlechte Abtastung durch das Flipflop während eines
Erfassungszyklus aufgrund eines laufzeitbedingten Konflikts oder
eines anderen Problems, falsches Taktverhalten und falsches Rücksetzverhalten, wobei
beide der letztgenannten Zustände
durch Taktsignalspitzen verursacht werden können. Zu den Problemen, die
beim simulierten Scan-Shifting auftreten können, gehören unter anderem Taktsignalverzögerungen (Clock-Skew),
die zum Datenverlust im Register führen, eine unerwartete Rücksetzung,
die einige der Abtastdaten zerstört,
ein ausbleibender Taktimpuls aufgrund einer Fehlfunktion in der
Taktsteuerung (Clock-Gating) oder eine Unterbrechung der Scan-Kette, die auf eine
schlechte Austastung oder Multiplexierung zurückzuführen ist.
-
Was
benötigt
wird, ist ein Werkzeug, das ein intuitives Verständnis für den Signalfluss in einer
automatisierten Simulation von neuen integrierten Schaltungsentwürfen schafft
und eine fertige und rasche Unterscheidung zwischen simulierten
verschiebungsinduzierten Fehlern und simulierten Signalerfassungsfehlern
in integrierten Schaltungsentwürfen
mit einem testfreundlichen Design unterstützt.
-
Beschreibung der Erfindung
-
Die
Erfindung wird durch die unabhängigen
Ansprüche
definiert. Die abhängigen
Ansprüche
definieren vorteilhafte Ausführungsformen.
-
Kurze Beschreibung der
Zeichnungen
-
Im
Folgenden werden bevorzugte Ausführungsformen
der Erfindung unter Bezugnahme auf die nachfolgenden begleitenden
Zeichnungen beschreiben. Es zeigen:
-
1 eine
schematische Darstellung einer Schaltung mit einer kombinatorischen
Logikschaltung und Scan-Flipflops gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
2 eine
vereinfachte schematische Darstellung eines der Scan-Flipflops aus 1 gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
3 ein
vereinfachtes Blockschaltbild eines an eine integrierte Schaltung
gekoppelten CAD-Systems (Computer Aided Design) gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
4 ein
vereinfachtes Blockdiagramm des Entwurfsprozesses für eine integrierte
Schaltung mit DFT-Merkmalen gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
5 ein
vereinfachtes Ablaufdiagramm, das die Funktion eines beispielhaften
Softwaremoduls zur Verarbeitung und Anzeige von simulierten, zur
Schaltung aus 1 gehörenden Testdaten über das
System aus 3 veranschaulicht, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
6 ein
vereinfachtes Kurvenblatt, das die unter Verwendung des Verfahrens
aus 5 über
das System aus 3 erhaltenen, zur Schaltung
aus 1 gehörenden
korrekten simulierten Testergebnisse zeigt, gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
7 ein
vereinfachtes Kurvenblatt, das die unter Verwendung des Verfahrens
aus 5 über
das System aus 3 erhaltenen, auf ein Verschiebungsproblem
bei der Schaltung aus 1 hindeutenden simulierten Testergebnisse
zeigt, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
8 ein
vereinfachtes Kurvenblatt, das die unter Verwendung des Verfahrens
aus 5 über
das System aus 3 erhaltenen, auf ein Erfassungsproblem
bei der Schaltung aus 1 hindeutenden simulierten Testergebnisse
zeigt, gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
Beste Methoden für die Ausführung der
Erfindung und Beschreibung der Erfindung
-
Die
vorliegende Erfindung beinhaltet Verfahren und Geräte für eine beschleunigte
Analyse simulierter Testergebnissen von integrierten Schaltungen,
die Merkmale für
ein testfreundliches Design (DFT) aufweisen. Genauer gesagt erlaubt
die vorliegende Erfindung die grafische Anzeige simulierter Testergebnisse
in einer Weise, die eine rasche und robuste Bestimmung einer Fehlerstelle
vereinfacht und eine intuitive Fehlerlokalisierung unterstützt.
-
In
der folgenden Beschreibung werden zahlreiche spezielle Einzelheiten
dargelegt, wie beispielsweise eine bestimmte Architektur, Hardwarekonfiguration
usw., um ein umfassendes Verständnis
für die
vorliegende Erfindung zu schaffen. Für einen Fach kundigen wird es
allerdings offensichtlich sein, dass sich die vorliegende Erfindung
auch ohne diese speziellen Einzelheiten anwenden lässt. In
anderen Fällen
werden allgemein bekannte Verfahren und Hardwarekonfigurationen
nicht ausführlich
beschrieben, um die vorliegende Erfindung nicht undeutlich zu machen.
-
Die
vorliegende Erfindung geht Probleme an, die beim simulierten Testen
von modernen, hochintegrierten Schaltungen mit DFT-Merkmalen auftreten.
Ursache für
die Probleme sind die während
der Testsimulation erzeugte große
Datenmenge und der fehlende intuitive Ansatz zum Sortieren und Analysieren
der simulierten Testdaten.
-
Die 1 und 2 beschreiben
den Betrieb und die Konstruktion integrierter Schaltungen unter
Verwendung von DFT-Techniken. Die 3 und 4 beschreiben
die für
den Simulationsbetrieb derartiger integrierter Schaltungen verwendete
Hardware und Software. 5 beschreibt ein Verfahren für die Interpretation
der Testergebnisse, und die 6 bis 8 zeigen
Ergebnisse des Verfahrens aus 5.
-
1 zeigt
eine vereinfachte schematische Darstellung einer Schaltung 20 mit
einer kombinatorischen Logikschaltung 22 und Scan-Flipflops 24 gemäß einer
Ausführungsform
der vorliegenden Erfindung. Die dargestellte Schaltung 20 enthält eine
kombinatorische Logikschaltung 22, die mit mehreren Flipflops 24 und
Steuerschaltungen 26 gekoppelt ist, auch als Verbindungslogik
bekannt. Die einzelnen Flipflops 24 sind in 1 mit
FF0 bis FF8 bezeichnet. Die Signale von den Q-Ausgängen der
Flipflops 24, die den erfassten Daten von der kombinatorischen
Logikschaltung 22 entsprechen, werden als „Flops" bezeichnet. In anderen Ausführungsformen
kann die Schaltung 20 in vielen Konfigurationen realisiert
werden, zum Beispiel als ASICs, Steuereinheiten usw., einschließlich einer
anderen kombinatorischen Logikschaltung 22. Die dargestellten Flipflops 24 umfassen
Scan-Flipflops und bilden zusammen ein Schieberegister, auch bekannt
als Scan-Register 28.
Das Scan-Register 28 zusammen mit der mit dem Scan-Register 28 verbundenen
kombinatorischen Logik 22 ist als eine „Scan-Kette" bekannt. In anderen
Schaltungsanordnungen können
weitere Flipflop- oder Einrichtungskonfigurationen benutzt werden,
zum Beispiel pegelempfindliche Scan-Entwürfe (Level Sensitive Scan Designs;
LSSD). Beispiele für
verschiedene Arten von Scan-Ketten, einschließlich der in LSSD verwendeten,
werden in der US-amerikanischen Patentschrift 5.920.575 mit dem
Titel „VLSI
Test Circuit Apparatus And Method" und ausgegeben an Gregor et al., sowie
in der US-amerikanischen
Patentschrift 5.909.453 mit dem Titel "Lookahead Structure For Fast Scan Testing" und ausgegeben an
Kelem et al., beschrieben.
-
2 zeigt
eine vereinfachte schematische Darstellung der Scan-Flipflops 24 aus 1 gemäß einer Ausführungsform
der vorliegenden Erfindung. Die einzelnen Scan-Flipflops 24 enthalten
jeweils einen internen Multiplexer 30, der mit einem internen
D-Flipflop 32 gekoppelt ist. Das dargestellte Scan-Flipflop 24 hat
einen Eingang D und einen Scan-in-Eingang Si, die mit dem Multiplexer 30 gekoppelt
sind. Ein Ausgang S des Multiplexers 30 ist mit einem Eingang
D des Flipflops 32 gekoppelt. Ein Aktivierungssignal SCANENABLE
wird an einen Scan-Aktivierungseingang Se des dargestellten Scan-Flipflops 24 und
an den Multiplexer 30 angelegt, um die Weiterleitung der
Daten entweder vom Eingang D oder vom Scan-in-Eingang Si an den
Eingang D des Flipflops 32 zu steuern. Auch ein Taktsignal
kann an einen Takteingang CK des dargestellten Scan-Flipflops 24 und
an Flipflop 32 angelegt werden, um die Funktionen des Scan-Flipflops 32 zeitlich
abzustimmen. Der Ausgang Q des Flipflops 32 bildet einen
Ausgang Q des Scan-Flipflops 24. In der Abbildung enthält das dargestellte
Scan-Flipflop 24 auch einen Steuereingang mit einem Rücksetzeingang.
In einzelnen Scan-Flipflops 32 können weitere Steuereingänge vorhanden
sein, zum Beispiel ein Setzeingang.
-
Scan-Flipflop-Konfigurationen
können
eingesetzt werden, um eine höhere
Flexibilität
in Schaltungsentwürfen
zu schaffen. Beispielsweise können
Scan-Flipflops 24 verwendet werden, um Testmodusoperationen
in Reaktion auf die Ausgabe eines Testmodussignals TESTMODE (nicht
dargestellt) zu implementieren. In der beschriebenen Ausführungsform
wird das Signal TESTMODE selektiv durch ein externes Schaltungsprüfgerät (unten
unter Bezugnahme auf die 3 und 4 besprochen)
aktiviert. Beispielsweise arbeitet die Schaltung 20 aus 1 in
einem normalen Funktionsmodus, wenn das Signal TESTMODE logisch „0" ist. Alternativ
arbeitet die Schaltung 20 in einem Testmodus, wenn das
Signal TESTMODE logisch „1" ist.
-
Zusätzlich kann
das Signal SCANENABLE verwendet werden, um den Betrieb der Scan-Flipflops 24 zu
steuern. Wenn das Signal SCANENABLE im Testmodus beispielsweise
logisch „0" ist, werden die
Operationen in einem Erfassungsmodus bereitgestellt. Wenn alternativ
dazu das Signal SCANENABLE logisch „1" ist, werden die Operationen in einem
Scan-Modus bereitgestellt, der auch als Shift-Modus bezeichnet wird.
-
Im
Allgemeinen steuert das Signal SCANENABLE die Weiterleitung der
Daten von Eingang D oder von dem Scan-in-Eingang Si an den Ausgang
Q der einzelnen Scan-Flipflops 24 entsprechend der Funktion
im Erfassungs- bzw. Abtastmodus. Die Daten werden während des
Erfassungsmodus von der kombinatorischen Logikschaltung 22 in
den Flipflops 24 empfangen. Derartige Daten können anschließend durch
das Scan-Register 28 abgetastet und im Abtastmodus an das
FF0-Flipflop 24 ausgegeben werden. Alternativ dazu werden
die Scan-in-Daten im Abtastmodus an die Scan-Flipflops 24 und
damit an die kombinatorische Logikschaltung 22 weitergeleitet.
-
Wenn
das Signal SCANENABLE logisch „0" ist, wird der mit
dem Multiplexer 30 gekoppelte Eingang D des Scan-Flipflops 24 mit
dem Eingang D des Flipflops 32 verbunden. Wenn das Signal
SCANENABLE logisch „1" ist, wird der mit
dem Multiplexer 30 gekoppelte Scan-in-Eingang Si des Scan-Flipflops 24 mit
dem Eingang D des Flipflops 32 verbunden. Entsprechend
können
normale Daten von der Logikschaltung 22 selektiv über den
Eingang D an die Scan-Flipflops 24 weitergeleitet werden.
Alternativ dazu können
Abtastdaten mit Hilfe des Scan-in-Eingangs Si selektiv in die Scan-Flipflops 24 eingegeben
werden.
-
Erneut
Bezug nehmend auf 1 arbeitet die Schaltung 20 in
einem Funktionsmodus und einem Testmodus wie zuvor beschrieben.
Die Schaltung 20 arbeitet im Normalbetrieb im Funktionsmodus,
zum Beispiel mit einer zugehörigen
Vorrichtung in einer bestimmten Anwendung. Die Schaltung 20 kann
mit einem Schaltungsprüfgerät (unten
unter Bezugnahme auf die 3 und 5 beschrieben)
verbunden werden, das im Testmodus Prüfoperationen durchführt.
-
Die
kombinatorische Logikschaltung 22 ist mit einzelnen Steuerschaltungen 26 verbunden.
Die Steuerschaltungen 26 umfassen in der beschriebenen
Ausführungsform
ODER-Gatter, die entsprechend der Rücksetzeingänge der Scan-Flipflops 24 „aktiv
niedrig" sind. Alternativ
können
die Steuerschaltungen 26 UND-Gatter umfassen, wenn die
Rücksetzeingänge der
Scan-Flipflops 24 „aktiv
hoch" sind. Es sind
auch andere Konfigurationen für
die Steuerschaltungen 26 möglich. Die kombinatorische
Logikschaltung 22 ist so konfiguriert, dass sie Steuersignale
erzeugt, um die Operationen innerhalb der jeweiligen Scan-Flipflops 24 zu
steuern. Beispielhafte Operationen umfassen in der dargestellten
Ausführungsform
unter anderem Rücksetzoperationen. In
anderen Konfigurationen kann die kombinatorische Logikschaltung 22 weitere
Funktionen der zugehörigen Scan-Flipflops 24 steuern.
-
Die
Steuerschaltungen 26 haben jeweils einen Eingang, um Steuersignale
von der kombinatorischen Logikschaltung 22 zu empfangen.
Vorzugsweise sind die Steuerschaltungen 26 so konfiguriert,
dass sie derartige empfangenen Steuersignale selektiv an die Steuereingänge der
jeweiligen Scan-Flipflops 24 liefern, während die Schaltung 20 im Testmodus
getestet wird. Wie nachstehend beschrieben, können die Steuerschaltungen 26 vorzugsweise
auch so betrieben werden, dass sie selektiv die Weiterleitung der
von der Logikschaltung 22 empfangenen Steuersignale an
die jeweiligen Steuereingänge
der Scan-Flipflops 24 deaktivieren,
während
die Schaltung 20 getestet wird. In der beschriebenen Ausführungsform
sind die Steuerschaltungen 26 auch dafür konfiguriert, die von der
Logikschaltung 22 empfangenen Steuersignale an die jeweiligen Steuereingänge der
Scan-Flipflops 24 weiterzuleiten,
während
sich die Schaltung 20 im Funktionsmodus befindet.
-
Die
Steuerschaltungen 26 haben weiterhin jeweils einen Eingang,
der für
den Empfang eines Aktivierungssignals eingerichtet ist, um die selektive
Weiterleitung der von der Logikschaltung 22 empfangenen
Steuersignale an die Steuereingänge
der jeweiligen Scan-Flipflops 24 zu steuern, während die
Schaltung 20 getestet wird. Ein beispielhaftes Signal ist
das RESETnENABLE-Signal, wobei der Buchstabe „n" angibt, dass zusätzlich zu der Scan-Kette, die
zu der Schaltung 20 gehört,
möglicherweise
eine oder mehrere weitere Scan-Ketten vorhanden sind.
-
Obwohl
auf einzelne Ausgänge
oder Flops der Scan-Flipflops 24 normalerweise nicht zugegriffen
werden kann, wenn eine integrierte Schaltung einschließlich der
Schaltung 20 aus 1 hergestellt
wird, können diese
Ausgänge,
in 1 als „Flop[0]" bis „Flop[8]" bezeichnet, während des
Simulationsbetriebs der Schaltung 20 verfügbar gemacht
werden. Da es wünschenswert
ist, die Anzahl der Eingangs/Ausgangsstifte in der integrierten
Schaltung bei ihrer Herstellung zu reduzieren, wurde die Scan-Kette
als Schieberegister konfiguriert. Diese Konfiguration macht es möglich, dass
viele unterschiedliche Ausgänge
der kombinatorischen Logikschaltung 22 aus 1 sequentiell
von einem einzelnen mit dem Ausgang Q des FF0-Scan-Flipflops 24 verbundenen
Ausgangsstift gelesen werden. Der Umfang der simulierten Ausgangsdaten
beinhaltet jedoch sehr große
Datenmengen, die den simulierten Betrieb der Schaltung beschreiben,
sowie die Signale „Flop[0]" ... „Flop[8]". Diese Ausgangsdatensignale
werden üblicherweise
als Textdateien erzeugt, und es ist extrem schwierig und zeitaufwändig, die
Schaltungsbeschreibung zusammen mit den simulierten Ausgangsdaten
syntaktisch zu analysieren, um die Art und Position eines Fehlers
im vorgeschlagenen Entwurf zu bestimmen. 3 zeigt
ein vereinfachtes Blockdiagramm eines Computersystems, das neuartige
Aspekte der vorliegenden Erfindung beinhaltet, die mit dem Bezugszeichen 40 angegeben
sind. Das Computersystem 40 ist dafür konfiguriert, ein System
zur elektronischen Design-Automatisierung (EDA) 42 zu implementieren,
das den Betrieb eines Entwurfs für
die Schaltung 20 aus 1 simu lieren
kann. Ein Schaltungsentwickler gibt den Entwurf einer integrierten
Schaltung ein, der Merkmale für
ein testfreundliches Design enthält,
bestätigt
den Entwurf, platziert die Komponenten auf einem Chip und legt die
Verbindungen zwischen den Komponenten an. Gemäß einer Konstruktion umfasst
eine in der Entwicklung und Prüfung
befindliche integrierte Schaltung 46 eine anwendungsspezifische
integrierte Schaltung (ASIC) 48.
-
Das
System zur elektronischen Design-Automatisierung (EDA) 42 beinhaltet
eine Zentraleinheit (CPU) oder einen Prozessor 50, einen
Speicher 52 und eine Datenspeichervorrichtung 54,
die alle über
einen Bus 47 mit anderen Elementen des Systems 42 gekoppelt
sind. In einer Ausführungsform
umfasst der Speicher 52 einen Direktzugriffsspeicher 56,
einen Festwertspeicher 58 und eine Datenspeichervorrichtung 54.
In einer Ausführungsform
umfasst die Datenspeichervorrichtung 54 ein Festplattenlaufwerk.
Die CPU 50 dient dazu, ein Betriebssystem und Anwendungsprogramme
wie EDA- und ATPG-Programme
zu implementieren. Darüber
hinaus dient die CPU 50 zur Implementierung der neuartigen
Merkmale der vorliegenden Erfindung.
-
Über eine
Tastatur 60 und/oder eine die Schreibmarke beeinflussende
Berührungseingabevorrichtung 62,
zum Beispiel eine Maus oder ein Berührungsfeld, gibt ein Konstrukteur,
Benutzer oder Bediener Entwurfsinformationen in das System 42 ein.
Es versteht sich jedoch, dass auch andere Formen von Eingabevorrichtungen
benutzt werden können,
einschließlich
Spracherkennungssysteme, Steuerhebel, Grafiktabletts, Datenlesegeräte, Kartenlesegeräte, magnetische
und optische Lesegeräte,
andere Computersysteme usw. Über eine
Ausgabevorrichtung 64 erhält der Konstrukteur eine optische
Rückmeldung
zu dem Entwurfsvorgang. Gemäß einer
Konstruktion umfasst die Ausgabevorrichtung 64 eine grafische
Bildschirmstation, zum Beispiel eine Anzeige mit Kathodenstrahlröhre oder
eine Flüssigkristallanzeige.
Während
der Synthese und Prüfung
einer Konstruktion dient der Speicher 52 dazu, Logikentwurfsinformationen
für eine
in der Konstruktion befindliche integrierte Schaltung 46 zu
speichern.
-
Im
Betrieb spezifiziert der Konstrukteur den Logikentwurf der integrierten
Schaltung 48 über
eine kommerziell verfügbare
Form einer Entwurfserfassungssoftware 76, wie beispielsweise
die im Handel erhältliche Software
von Synopsis, Inc. und Cadence Design Systems, Inc. Von der Entwurfserfassungssoftware 76 wird eine
Verhaltensbeschreibungsdatei 78 ausgegeben. Die Verhaltensbeschreibungsdatei 78 wird
in einer Hardwarebeschreibungssprache (HDL) wie VHDL geschrieben.
Die Verhaltensbeschreibungsdatei 78 stellt den Logikentwurf
einer vorgeschlagenen Konstruktion auf einer Register-Transfer-Ebene dar.
-
Die
Verhaltensbeschreibungsdatei 78 liefert eine Eingabe für ein Logikentwurf-Syntheseprogramm 80, zum
Beispiel einen VHDL-Design-Compiler 81. Das Logikentwurf-Syntheseprogramm 80 ist
in der Lage, die erforderlichen Schaltungen und Gatter zu schaffen,
um einen von der Verhaltensbeschreibungsdatei 78 spezifizierten
Entwurf zu realisieren. Ein im Handel erhältlicher VHDL-Design-Compiler
wird von Synopsis, Inc. verkauft. Der VHDL-Design-Compiler arbeitet
zusammen mit dem Logik-Synthese-Design-Compiler 78,
um eine ausführliche
Beschreibungsdatei 82 zu erzeugen. Die ausführliche
Beschreibungsdatei 82 enthält eine Gatterebenen-Definition
des Logikentwurfs für
den vorgeschlagenen Entwurf der integrierten Schaltung. Die ausführliche
Beschreibungsdatei 82 umfasst eine Netzliste für den in
Erwägung
gezogenen Entwurf.
-
Die
ausführliche
Beschreibungsdatei 82 wird sowohl in verschiedene EDA-Systemprogramme,
zum Beispiel ein Programm zur automatischen Erzeugung eines Testmusters
(ATPG) 84, als auch in Platzierungs- und Verdrahtungswerkzeuge,
Timing-Analysatoren
und Simulationsprogramme eingegeben. Das ATPG-Programm 84 erzeugt
Testmuster, die im System 42 verwendet werden, um die Funktion
eines vorgeschlagenen Entwurfs für
die integrierte Schaltung 20 aus 1 zu simulieren,
wobei eine Netzliste in Form der ausführlichen Beschreibungsdatei 82 benutzt
wird, die in das ATPG-Programm 84 eingegeben wird. Nach
dem Stand der Technik gibt das System 42 die simulierten
Daten als Textdatei aus.
-
5 zeigt
ein vereinfachtes Ablaufdiagramm, das die Funktion eines beispielhaften
Softwaremoduls für
die Verarbeitung und Anzeige der Ausgabedatei, einschließlich der
zur Schaltung 20 aus 1 gehörenden simulierten
Testdaten, mit Hilfe des EDA-Systems 42 aus den 3 und 4 gemäß einer
Ausführungsform der
vorliegenden Erfindung veranschaulicht. Die hierin benutzte Bezeichnung „Modul" beinhaltet Codezeilen, die
durch ein vom Hauptprogramm getrenntes Unterprogramm definiert sein
können
oder nicht.
-
5 veranschaulicht
einen Prozess „P1", der vom Konstrukteur
im Anschluss an oder zeitgleich mit der Benutzung des ATPG-Programms 84 aus 4 über den
Computer 40 aus 3 eingeleitet wird. Gemäß Schritt „S1" wird das Abtastaktivierungssignal „SCANENABLE" aus 1 simuliert.
Nach Ausführung
von Schritt „S1" wird der Prozess „P1" mit Schritt „S2" fortgesetzt.
-
In
Schritt „S2" simuliert der Prozess „P2" ein Datenerfassungssignal,
zum Beispiel das Signal RESETnENABLE aus 1. Nach
Ausführung
von Schritt „S2" wird der Prozess „P1" mit Schritt „S3" fortgesetzt.
-
In
Schritt „S3" simuliert der Prozess „P1" mit Hilfe des ATPG-Programms
Scan-Kettendaten. Nach Ausführung
von Schritt „S3" wird der Prozess „P1" mit Schritt „S4" fortgesetzt.
-
In
Schritt „S4" extrahiert der Prozess „P1" simulierte Scan-Flops
aus den vom ATPG-Programm aus 4 ausgegebenen
Simulationsdaten. Die extrahierten Scan-Flops können Daten enthalten, die zum
Beispiel den Signalen „Flop[0]" bis „Flop[8]" aus 1 entsprechen.
Nach Ausführung
von Schritt „S4" wird der Prozess „P1" mit Schritt „S5" fortgesetzt.
-
In
Schritt „S5" sortiert der Prozess „P1" die simulierten
Scan-Flops. In einer Ausführungsform
beinhaltet der Schritt „S5" das Sortieren der
simulierten Scan-Flops in geordnete Gruppen, wobei jede Gruppe von Scan-Flops
einer bestimmten Scan-Kette in der simulierten Schaltung 20 entspricht.
In einer Ausführungsform werden
die simulierten Signale in sequentieller Ordnung sortiert, z.B. „Flop[0]", „Flop[1]", ... „Flop[8]". Nach Ausführung von
Schritt „S5" wird der Prozess „P1" mit Schritt „S6" fortgesetzt.
-
In
Schritt „S6" identifiziert der
Prozess „P1" Kennungen (z.B. „Flop[0]" usw.) für jedes
der simulierten Signale. Nach Ausführung von Schritt „S6" wird der Prozess „P1" mit Schritt „S7" fortgesetzt.
-
In
Schritt „S7" zeigt der Prozess „P1" die vom Konstrukteur
gewählten
simulierten Signale (und ihre Kennungen) als Funktion der Zeit grafisch
an. In einer Ausführungsform
zeigt der Prozess „P1" ferner die Testmodussignale
an, zum Beispiel das Rücksetzaktivierungssignal
RESETnENABLE oder das Abtastaktivierungssignal SCANE-NABLE aus 1,
um die Interpretation der Scan-Flop-Daten zu vereinfachen und die Identifizierung
des Erfassungszyklus zu ermöglichen
(siehe 4 bis 6 und den zugehörigen Text).
In einer Ausführungsform
zeigt der Prozess „P1" optional auch die
erwarteten Resultate von einem der Scan-Flops an, zum Beispiel die
erwarteten Abtastausgabedaten von FF0 aus 1. Nach
Ausführung
von Schritt „S7" wird der Prozess „P1" mit Schritt „S8" fortgesetzt.
-
In
Schritt „S8" ermittelt der Prozess „P1", ob der Konstrukteur
zu einer anderen Scan-Kette gehörende simulierte
Daten anzeigen möchte.
Wenn der Konstrukteur keine zusätzlichen
simulierten Daten anzeigen möchte,
endet der Prozess „P1 ". Wenn der Konstrukteur
zusätzliche
simulierte Daten anzeigen möchte,
wird der Prozess „P1" mit Schritt „S9" fortgesetzt.
-
In
Schritt „S9" ermittelt der Prozess „P1 ", welche simulierten
Daten der Konstrukteur angezeigt haben möchte, und wiederholt die Schritte „S4" bis „S8", bis der Konstrukteur
festlegt, dass keine weiteren simulierten Daten mehr angezeigt zu
werden brauchen.
-
In 6 ist
ein vereinfachtes Kurvenblatt dargestellt, das die korrekten simulierten
Testergebnisse der Schaltung 20 aus 1 zeigt,
die über
das System 42 aus 3 unter
Verwendung des Prozesses „P1" aus 5 gemäß einer
Ausführungsform
der vorliegenden Erfindung erhalten wurden. Die oberste Kurve entspricht
dem Rücksetzaktivierungssignal
RESETnENABLE aus 1 und gestattet dem Konstrukteur
die Identifizierung der dem Erfassungszyklus entsprechenden Zeitperiode
(siehe vertikale Strichlinien, die dem auf logisch „0" gehenden Signal
RESETnENABLE entsprechen). Die simulierten Signale „Flop[8]" bis „Flop[0]" (siehe 1)
sind der Reihe nach unter dem Rücksetzsignal
RESETnENABLE dargestellt. Die unterste Kurve entspricht den erwarteten
Abtastausgabedaten, in diesem Fall aus der Simulation eines erwarteten
ScanOut-Signals (1).
-
Wie
durch den von dem Signal „Flop[8]" diagonal nach unten
und rechts verlaufenden und am Signal „Flop[0]" endenden gestrichelten Pfeil beispielhaft
veranschaulicht, pflanzen sich die zu den Flops 8 bis 0 gehörenden Daten
in einer geordneten Weise durch das Scan-Register 28 (1)
fort. Zu beachten ist, dass der gestrichelte Pfeil seitlich verschoben
werden kann und weiterhin eine korrekte Datenfortpflanzung durch
das Scan-Register 28 zeigt. Dies weist darauf hin, dass
in dieser Simulation keine Verschiebeprobleme im Scan-Register 28 auftreten.
-
Ein
Vergleich des Signals „Flop[0]" mit dem erwarteten
Abtastausgabedatensignal zeigt ebenfalls, dass die simulierten Daten
aus dem Schieberegister mit den erwarteten Abtastausgabedaten identisch
sind. Dies weist darauf hin, dass die Simulation der Schaltung 20 aus 1 auf
eine korrekte Funktion dieser Scan-Kette in diesem Test hinweist,
und diese wiederum keine Probleme mit der Simulation der kombinatorischen
Logikschaltung 22 oder der Kette, einschließlich des
Scan-Registers 28, zu erkennen vermag.
-
In 7 ist
ein vereinfachtes Kurvenblatt mit simulierten Testresultaten dargestellt,
die auf ein Verschiebeproblem mit der Schaltung 20 aus 1 hindeuten
und über
das System 42 aus 3 unter
Verwendung des Prozesses „P1" aus 5 gemäß einer
Ausführungsform
der vorliegenden Erfindung erlangt wurden. Die Kurven sind wie oben
unter Bezugnahme auf 6 beschrieben angeordnet. In 7 zeigt
ein Vergleich der unteren beiden Kurven, dass das Signal "Flop[0]" von den erwarteten
Abtastausgabedaten abweicht. Dieser Vergleich, der automatisch ausgeführt werden
kann, zeigt unmittelbar, dass in der Simulation eine Art von Fehler
aufgetreten ist, und es kann eine Fehlermeldung erzeugt und angezeigt
werden, um darauf hinzuweisen, dass die Simulation einen Fehler
erkannt hat.
-
Ein
Vergleich der Signale „Flop[2]" und „Flop[3]" zeigt, dass diese
beiden Signale identisch sind. Dieser Vergleich, der automatisch
ausgeführt
werden kann, indem jedes mögliche
Paar benachbarter Flops verglichen wird, um festzustellen, ob zwei
benachbarte Flops identisch sind, ist ein klarer Hinweis auf ein
Verschiebeproblem. Es kann eine Fehlermeldung erzeugt und angezeigt
werden, um darauf hinzuweisen, dass die Simulation ein Verschiebeproblem
erkannt hat, und um anzugeben, welches Paar von Flops mit dem Verschiebeproblem
zusammenhängt.
Im gezeigten Beispiel wird sich bei einer Prüfung der Taktsignale „Flop[2]" und „Flop[3]" wahrscheinlich eine
große
Phasenverschiebung zwischen diesen Signalen zeigen. Durch Festlegen oder
Vermeiden der Taktsignalphasenverschiebung (Clock-Skew), zum Beispiel,
indem man einen Lockup-Latch einfügt oder den Verteilungsbaum
(Clock-Tree) gleichmäßig belastet,
kann das Problem behoben werden. In jedem Fall wurde das Problem
rasch erkannt, ohne dass man auf eine große Textdatei zurückgreifen
und die Netzliste syntaktisch analysieren musste oder dergleichen.
-
In 8 ist
ein vereinfachtes Kurvenblatt mit simulierten Testresultaten dargestellt,
die auf ein Erfassungsproblem mit der Schaltung 20 aus 1 hindeuten
und über
das System 42 aus 3 unter
Verwendung des Prozesses „P1" aus 5 gemäß einer
Ausführungsform
der vorliegenden Erfindung erlangt wurden. Die Kurven sind wie oben
unter Bezugnahme auf die 6 und 7 beschrieben
angeordnet, wobei jedoch die Kurve der erwarteten Abtastausgabedaten
unterschiedlich ist und entweder einem unterschiedlichen Eingabevektor
oder einer unterschiedlichen kombinatorischen Logikschaltung 22 (1)
entspricht. Da sich das fehlerhafte simulierte Signal durch die
Scan-Kette (Scan-Register 28 in 1), wie
durch den gestrichelten Pfeil gezeigt, fortgepflanzt hat, ist das
Abtastverhalten korrekt. Dies deutet auf ein Datenerfassungsproblem
im FF7 Flipflop 24 aus 1 hin, und
eine Fehlermeldung weist darauf hin, dass ein Datenerfassungsproblem
mit dem Flipflop 24 vorliegt, das das Signal „Flop[7]" liefert. Eine Überprüfung der
simulierten Eingangssignale zum FF7 Flipflop 24 wird sehr
wahrscheinlich die Quelle des Problems aufdecken. Dadurch kann das
Problem durch die Scan-Kette zurückverfolgt
werden, ohne dass der Konstrukteur eine komplexe Textdatei interpretieren
muss, ohne dass die zur Schaltung 20 gehörende Netzliste
syntaktisch analysiert werden muss, und ohne jegliche Berechnungen.
Infolgedessen werden sowohl die Geschwindigkeit als auch die Genauigkeit
verbessert, mit der das Problem identifiziert werden kann.
-
Text in den Figuren
-
-
-
-
-
-
-