DE69533567T2 - Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen - Google Patents

Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen Download PDF

Info

Publication number
DE69533567T2
DE69533567T2 DE69533567T DE69533567T DE69533567T2 DE 69533567 T2 DE69533567 T2 DE 69533567T2 DE 69533567 T DE69533567 T DE 69533567T DE 69533567 T DE69533567 T DE 69533567T DE 69533567 T2 DE69533567 T2 DE 69533567T2
Authority
DE
Germany
Prior art keywords
path
signal
gate
input
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.)
Expired - Fee Related
Application number
DE69533567T
Other languages
English (en)
Other versions
DE69533567D1 (de
Inventor
Ramachandra P. Milpitas Kunda
Saied Belmont Bozorgui-Nesbat
Hong Sunnyvale Hao
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69533567D1 publication Critical patent/DE69533567D1/de
Publication of DE69533567T2 publication Critical patent/DE69533567T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/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/318328Generation of test inputs, e.g. test vectors, patterns or sequences for delay tests
    • 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
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

  • Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Identifizieren von falschen Synchronisationspfaden (False-Timing-Paths) in digitalen Schaltungen, wobei wenigstens ein stimuliertes Pfadelement, das auf einem Signalpfad liegt, mit wenigstens einem pfadabseitigen Signal assoziiert ist.
  • Die vorliegende Erfindung betrifft insbesondere den Bereich Design, Layout und Optimierung digitaler Schaltungen.
  • Computer werden in CADCAM-Anwendungen (rechnergestützte Konstruktion und Fertigung) als Werkzeug für Ingenieure und Designer eingesetzt. Eine Anwendung, für die Computer eingesetzt werden, ist das Design-, Layout- und Optimierungsverfahren für digitale Schaltungen. Bevor eine integrierte Schaltung (IC) tatsächlich gefertigt wird, kann ihr Schaltungsdesign auf einem Computer simuliert und getestet werden. Fehler im Design können dann identifiziert und korrigiert werden, ohne den Chip tatsächlich zu fertigen und zu testen. Dadurch werden Entwicklungskosten minimal gehalten und die Zeit bis zur Vermarktung wird verkürzt. Ferner werden Computer zum Optimieren von IC-Layout eingesetzt, um die Chipgröße zu reduzieren. Die Reduzierung der Chipgröße ist deshalb wichtig, weil eine geringere Chipgröße bedeutet, dass von einem bestimmten Wafer mehr Chips hergestellt werden können. Dies wiederum bedeutet unmittelbar geringere Herstellungskosten pro Chip.
  • IC-Testtools des Standes der Technik haben derzeit die Fähigkeit, False-Timing-Paths zu identifizieren. Ein False-Timing-Path wird als ein Synchronisationspfad definiert, der niemals logisch benutzt wird. Mit anderen Worten, unabhängig davon, welche Kombination von Signalen an die IC angelegt wird, der False-Timing-Path wird niemals implementiert. Der Grund, warum das Identifizieren von False-Timing-Paths wichtig ist, ist der, dass False-Timing-Paths nicht mehr optimiert zu werden brauchen, wenn sie einmal bekannt sind. Schaltungsdesigns können zuweilen hunderte von False-Timing-Paths haben. Diese False-Timing-Paths nicht alle optimieren zu müssen bedeutet weniger Designaufwand und verkürzt die Designzyklen.
  • Im Stand der Technik wurden Vektoren in dem Bemühen eingesetzt, False-Timing-Paths zu identifizieren. So kann beispielsweise beim Entwerfen eines Addierers, der zwei digitale Zahlen miteinander addiert, der Ingenieur oder Designer Gruppen von Zahlen (z. B. Vektoren) einführen, die miteinander addiert werden, um das Schaltungslayout zu testen. Das Problem der Anwendung eines Vektorenansatzes besteht darin, dass der Ingenieur oder Designer zunächst die spezifischen Vektoren identifizieren muss, die auf ein bestimmtes Schaltungsdesign anzuwenden sind. Dies kann eine zeitaufwändige und mühsame Aufgabe sein. Darüber hinaus ist es, wenn nicht eine erschöpfende Anzahl von Vektoren verwendet wird, praktisch unmöglich, jeden potentiellen Fall zu testen. Darüber hinaus werden einige Elemente einer Schaltung möglicherweise von mehreren verschiedenen Pfaden gemeinsam genutzt, wodurch die Komplexität des Testvorgangs erhöht wird.
  • Darüber hinaus werden ICs immer komplexer. So können beispielsweise anwendungsspezifische ICs (ASICs) und Gate-Arrays tausende von Gates enthalten. In der Tat haben moderne Mikroprozessoren Millionen von Transistoren. Der Trend geht immer mehr in Richtung auf noch komplexere Logik und ICs höherer Dichte. In dem Bemühen, mit diesen Fortschritten Schritt zu halten, werden immer schnellere und leistungsfähigere Computer entwickelt. Außerdem werden die Anwendungsprogramme für Schaltungsdesigns immer fortschrittlicher. Selbst mit Hilfe von Computern wird es zu einer recht komplizierten und aufwändigen Aufgabe, eine IC zu entwerfen, anzuordnen, zu optimieren und zu testen. Der Trend geht in Richtung auf den Aufwand von immer größeren Mengen an Zeit, Betriebsmitteln und Geld zum Testen neuer Halbleiterdesigns.
  • Es besteht im Stand der Technik Bedarf an einem zuverlässigen und effizienten Mechanismus zum Identifizieren von False-Timing-Paths in digitalen Schaltungen, um die Aufgabe des Testens eines neuen Halbleiterdesigns zu minimieren. Ein solcher Mechanismus soll für seinen Betrieb vorzugsweise nur ein Minimum an menschlicher Interaktion erfordern.
  • Die Proceedings of the IEEE/ACM International Conference on Computer Aided Design (ICCAD), Santa Clara, 8.–12. November 1992, Nr. Conf. 10, Institute of Electrical and Electronics Engineers, Seiten 258–262, XP000370793 Brashear R. B. et al. 'ETA: Electrical Level Timing Analysis', erkennen die Notwendigkeit, False-Timing-Paths im Design-Layout und in der Optimierung einer logischen Schaltung zu eliminieren. In diesem Dokument wird ein Synchronisationsanalysegerät beschrieben, das eine Synchronisationsanalyse unter Berücksichtigung von Details auf elektrischem Niveau durchführt und dabei auch Pfadsensibilisierung berücksichtigt.
  • Eine Synchronisationsanalyse auf elektrischem Niveau verläuft in zwei Phasen: (1) Logik- und Verzögerungsvorcharakterisierung und (2) Längster-Pfad-Analyse. In der Vorcharakterisierungsphase wird jedes Gate analysiert, um seine boolesche Funktion und seine Last auf Transistorlevel zu erhalten. Während dieser Längster-Pfad-Analysephase werden Pfade von jedem Primäreingang nummeriert und separat untersucht. Jeder potentiell längste Pfad wird auf Sensibilisierbarkeit auf Gate-Ebene geprüft, bis ein sensibilisierbarer längster Pfad gefunden ist.
  • Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Identifizieren von False-Timing-Paths in einer digitalen Schaltung. Zunächst wird eine Liste von Pfaden erzeugt, die der digitalen Schaltung entsprechen. Für jeden Pfad der digitalen Schaltung wird eine AND-Funktion erzeugt. Für jedes Element in dem Pfad werden die pfadabseitigen Signale der Schaltung, die den Elementen des Pfades entsprechen, mit dem Eingang der AND-Funktion gekoppelt. Es wird eine Mehrzahl von verschiedenen Signalen in die digitale Schaltung eingegeben, in einem Versuch, eine „1" am Ausgang der AND-Funktion zu erzeugen. Wenn die AND-Funktion keine „1" für eine mögliche Eingangskombination der Schaltung ausgeben kann, dann ist dieser Pfad als False-Timing-Path identifiziert. Dieser Vorgang wird für jeden Pfad der digitalen Schaltung wiederholt, um alle False-Timing-Paths zu identifizieren.
  • In einer Ausgestaltung gibt ein Benutzer eine Netzliste, Pfadinformationen und eine Bibliothekstabelle in ein Computersystem ein, um die False-Timing-Paths für die verschiedenen Module eines neuen Halbleiterchipdesigns zu identifizieren. Die Netzliste gibt die elektrischen Kennwerte der verschiedenen Module vor. Diese Netzliste wird durch Addieren eines AND-Gate-Schaltkomplexes modifiziert, um jeden der mit einem bestimmten Modul assoziierten Pfade zu validieren. Diese modifizierte Netzliste wird als Überwachungsschaltung bezeichnet. Die Pfadinformationen definieren die Verbindungen zwischen den elektrischen Elementen einer Überwachungsschaltung. Die Bibliothekstabelle enthält die Informationen, die zum Verbinden der AND-Gates für jeden Pfad der Überwachungsschaltung notwendig sind. Somit existieren für jedes Modul Pfade von jedem Eingang zu jedem Ausgang dieses Moduls.
  • Dann werden Testsignale an diese Überwachungsschaltung angelegt. Wenn eines der Testsignale über einen der Pfade propagieren kann, dann wird dieser Pfad als aktiv bezeichnet. Dieser Vorgang wird für jeden der Pfade der Überwachungsschaltung wiederholt. Durch Implementieren einer booleschen Funktion für jeden der Eingänge der Überwachungsschaltung wird ermittelt, ob ein Pfad aktiviert wurde oder nicht. Der Ausgang der Überwachungsschaltung ist „1 ", wenn der Pfad aktiviert ist, ansonsten „0". Wenn ein bestimmter Pfad der Überwachungsschaltung nach einer vorbestimmten Zahl von verschiedenen Testsignalen nicht aktiviert werden kann, dann wird dieser Pfad als False-Timing-Path bezeichnet. Nach dem Identifizieren aller False-Timing-Paths kann dieses neue Design effizienter optimiert werden, indem die identifizierten False-Timing-Paths unberücksichtigt bleiben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird beispielhaft, und nicht einschränkend, in den Figuren der Begleitzeichnungen illustriert, und ähnliche Elemente erhielten gleiche Bezugsziffern. Dabei zeigt:
  • 1 ein typisches Computersystem, das zum Identifizieren von False-Timing-Paths gemäß der vorliegenden Erfindung verwendet wird;
  • 2 den Ablauf des False-Path-Identifikationsprozesses der vorliegenden Erfindung;
  • 3 ein Fließschema, das die Schritte zum Erzeugen der Bibliothekstabelle aus der Grundstrukturkomponenten-Bibliotheksdatei beschreibt;
  • 4a einen pfadabseitigen Innennetzeingang vom Kegel zum Gate-Monitor;
  • 4b eine Überwachungsschaltung für eine Grundstrukturkomponente, die ein internes pfadabseitiges Netz enthält;
  • 5 ein Beispiel für eine Gate-Monitor-Schaltung;
  • 6a Tristate-Elemente, die auf dem Pfad liegen;
  • 6b eine Überwachungsschaltung, die für Tristate-Elemente eingesetzt werden kann;
  • 6c eine alternative Ausgestaltung einer Überwachungsschaltung für die Verwendung mit "Tristate-Elementen;
  • 6d die derzeit bevorzugte Ausgestaltung einer Überwachungsschaltung, die vom Bibliotheksgenerator erzeugt wurde;
  • 7a eine AND-OR-Implementation eines XOR-(Exclusive-Or-)Gates;
  • 7b die Pfadüberwachungsschaltung für das durch Gates propagierende B-Signal;
  • 7c die Eliminierung eines auf dem Pfad liegenden Eingangs für ein XOR-Gate;
  • 7d die Reduzierung der Pfadüberwachungsschaltung zu einem einzelnen Puffer;
  • 8 eine Schaltung mit zwei Pfaden zum Ausgang;
  • 9 einen Ein-Ausgangsmonitor mit Übergangspolaritätsvorkehrung;
  • 10 ein Fließschema, das die Schritte zum Identifizieren der Pfade beschreibt, die nicht erregt werden können und von denen gefunden wurde, dass sie die Synchronisationsbeschränkungen überschreiten;
  • 11 ein Blockdiagramm, das für einen Teil einer integrierten Schaltung und eine entsprechende False-Path-Identifikationsschaltung repräsentativ ist;
  • 12 eine typische Überwachungsschaltung, wie sie für Elemente in einem Pfad eingesetzt werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden eine Vorrichtung und ein Verfahren zum Identifizieren von False-Timing-Paths beschrieben. In der nachfolgenden Beschreibung werden zur Erläuterung zahlreiche spezifische Einzelheiten dargelegt, wie z. B. Gates, Subroutinen, Netzlisten usw., um ein tiefgreifendes Verständnis der vorliegenden Erfindung zu vermitteln. Es wird für die Fachperson jedoch offensichtlich sein, dass die vorliegende Erfindung auch ohne diese spezifischen Einzelheiten umgesetzt werden kann. In anderen Fällen werden allgemein bekannte Strukturen und Bauelemente nur in Blockdiagrammform dargestellt, um unnötige Details zu vermeiden, die die vorliegende Erfindung undeutlich machen.
  • 1 zeigt ein typisches rechnergestütztes System zum Identifizieren von False-Timing-Paths gemäß der vorliegenden Erfindung. Es ist ein Computer 101 dargestellt, der drei Hauptkomponenten umfasst, einschließlich Ein-/Ausgabe-(E/A)Schaltung 102, Zentraleinheit (CPU) 103 und Speicher 104. Diese letzteren beiden Elemente sind in den meisten Universalcomputern und in fast allen Spezialcomputern zu finden. In der Tat sollen die mehreren in dem Computer 101 enthaltenen Elemente für diese breite Kategorie von Datenprozessoren repräsentativ sein. Spezifische Beispiele für geeignete Datenprozessoren, die die Rolle des Computers 101 erfüllen, sind u. a. Maschinen, die von Sun Microsystems, Inc. aus Mountain View in Kalifornien hergestellt werden. Andere Computer mit ähnlichen Fähigkeiten können natürlich auf einfache Weise zur Ausführung der nachfolgend beschriebenen Funktionen angepasst werden.
  • 1 zeigt auch ein Eingabegerät 105, das in der typischen Ausgestaltung eine Tastatur ist. Es ist jedoch zu verstehen, dass das Eingabegerät tatsächlich auch ein Kartenleser, ein Magnetband- oder Papierstreifenleser oder ein anderes bekanntes Eingabegerät sein kann (natürlich auch ein anderer Computer). Ein Massenspeichergerät 106 ist mit der E/A-Schaltung 102 gekoppelt und bietet zusätzliche Speicherfähigkeit für den Computer 101. Der Massenspeicher kann andere Programme und dergleichen enthalten und kann die Form eines Magnetband- oder Papierstreifenlesers oder eines anderen bekannten Gerätes haben. Es ist klar, dass die im Massenspeicher 106 gespeicherten Daten in geeigneten Fällen auch auf standardmäßige Weise als Teil des Speichers 104 im Computer 101 gespeichert werden können.
  • Darüber hinaus wird ein Anzeigemonitor 107 illustriert, der zum Anzeigen von Meldungen oder anderen Mitteilungen für den Benutzer verwendet wird. Ein solcher Anzeigemonitor kann die Form eines beliebigen aus einer Reihe bekannter verschiedener CRT-Displays haben. Mit einem Cursor 108 werden Befehlsarten ausgewählt und die Eingabedaten bearbeitet, und er stellt im Allgemeinen ein praktischeres Mittel zum Eingeben von Informationen in das System dar.
  • 2 zeigt den Ablauf des False-Timing-Path-Identifikationsprozesses der vorliegenden Erfindung. Ein Bibliotheksgenerator 201 wird zum Erstellen einer Bibliothekstabelle 202 verwendet, die in den False-Timing-Path-Vorbereitungsblock 205 eingegeben wird. Die Bibliothekstabelle 202 beinhaltet die Netzliste, die auf die ursprüngliche Netzliste erweitert wird, um bei der Suche von False-Timing-Paths behilflich zu sein. Die erweiterte Netzliste wird als Überwachungs-(Monitor-)-schaltung bezeichnet. Für jedes Modul in der Bibliothekstabelle 202 gibt es Pfade von jedem Eingang zu jedem der Ausgänge. Ein Übergang kann nur dann über einen Pfad propagieren, wenn bestimmte Bedingungen erfüllt sind. Wenn ein Übergang über einen Pfad propagieren kann, dann wird dieser Pfad als aktiviert bezeichnet. Die Überwachungsschaltung, die eine boolesche Funktion der Moduleingänge implementiert, gibt an, ob ein Pfad aktiviert wurde oder nicht. Der Ausgang der Überwachungsschaltung ist „1", wenn der Pfad aktiviert ist, ansonsten „0". Um zu ermitteln, ob es eine Eingangskombination gibt, die einen Pfad aktiviert, wird die Überwachungsschaltung durch einen ATPG-Block 208 gespeist, um einen Eingangsvektor zu finden, der bewirkt, dass die Ausgangsüberwachungsschaltung „1" ist. Die Bibliothekstabelle 202 enthält die Informationen, die zum Erzeugen der AND-Funktion für jeden Pfad benötigt werden. Die Informationen in Bibliothekstabellen 202 für jede Grundstruktur befinden sich zwischen einem Anfangs- und einem Ende-Statement. Jede Zeile der Informationen, die eine Grundstruktur bilden, enthält vier Felder: ein auf dem Pfad liegendes Ausgangssignal, ein auf dem Pfad liegendes Eingangssignal, eine hinzuzufügende Netzliste und die herzustellende Verbindung. Die Pfadliste 203 führt alle Pfade auf, die als falsch oder nicht falsch identifiziert werden sollen. Die Netzliste 204 enthält die ursprüngliche Netzliste. Der False-Path-Vorbereitungsblock 205 modifiziert eine Netzliste für eine False-Timing-Path-Identifikation. Darin können eine Netzliste, Pfadinformationen und eine Bibliothekstabelle eingehen. Er modifiziert dann die Netzliste durch Hinzufügen des AND-Funktionsschaltkomplexes zum Validieren jedes Pfades. Der Ausgang vom False-Timing-Path-Vorbereitungsblock 205 ist eine aktualisierte Netzliste 206 und eine Fehlerliste 207. Die aktualisierte Netzliste 206 enthält die modifizierte Netzliste mit Modifikationen wie z. B. neue Eingänge in der Moduldefinition, ein neues Ausgangsstatement für jeden Pfad und ein neues AND-Gate für jeden Pfad. Die Eingänge zur AND-Funktion sind die pfadabseitigen Signale, die von der Bibliothekstabelle 202 abgeleitet werden. Die Fehlerliste 207 enthält die Ausgänge aller AND-Gates, die von dem False-Path-Vorbereitungsblock 205 erzeugt wurden. Die resultierenden identifizierten falschen Pfade sind in Block 209 enthalten.
  • 3 zeigt ein Fließschema, das die Schritte zum Erzeugen der Bibliothekstabelle von der Bibliotheksdatei beschreibt. Zunächst wird die Bibliothek gelesen (Schritt 301). Dann werden die Kommentare entfernt und die CMOS-Gates werden auf ihre äquivalenten NMOS- und PMOS-Gates erweitert (Schritt 302). Als Nächstes werden Instanznamen für jedes) unbenannte Gate oder Modulinstanz erzeugt (Schritt 303). Alle Module werden dann abgeflacht (Schritte 304). Man beachte, dass Schritt 304 fakultativ ist. Danach werden die Pfade von jedem Eingang zu jedem Ausgang in jedem Modul aufgezählt (Schritt 305). Für jeden Pfad wird eine Überwachungsschaltung erzeugt (Schritt 307). Diese Überwachungsschaltung wird dann auf die Bibliothekstabelle geschrieben (Schritt 308).
  • Für jedes Ein-Ausgangspaar in einem Modul wird eine Überwachungsschaltung erzeugt. Ein Eingang kann mehrere Pfade haben, die ihn mit diesem Ausgang verbinden, oder auch überhaupt keine Pfade. Um einen Übergang von einem Eingang eines Gates zu seinem Ausgang zu propagieren, müssen die anderen Eingänge, pfadabseitig genannt, auf bestimmte Werte gesetzt werden. Für Puffer und Inverter gibt es keine anderen Eingänge. Für AND- und NAND-Gates müssen die anderen Eingänge auf 1 gesetzt werden. Andererseits werden, wenn der Übergang vom Steuereingang zum Ausgang propagiert, alle anderen mit demselben Ausgangsknoten verbundenen Tristate-Elemente untersucht.
  • Um zu ermitteln, ob diese Bedingungen erfüllt sind, werden die abseitigen Pfade mit einem neuen Gate gekoppelt, Gate-Monitor genannt. Der Gate-Monitor gibt eine 1 aus, wenn die Bedingungen erfüllt sind, ansonsten eine 0. Für AND- und NAND-Gates ist der Gate-Monitor ein Puffer, wenn es nur einen pfadabseitigen Eingang gibt. Ansonsten werden alle pfadabseitigen Eingänge einem AND-Vorgang unterzogen. Für OR- und NOR-Gates wird der Gate-Monitor umgekehrt, wenn es nur einen pfadabseitigen Eingang gibt. Ansonsten ist dies das NOR aller pfadabseitigen Eingänge.
  • Pfadabseitige Eingänge können im Allgemeinen keine Primäreingänge des Moduls sein. Es besteht die Möglichkeit, dass diese internen pfadabseitigen Eingänge für ein Higher-Level-Modul nicht zugängig sind. Daher sollten die Bedingungen an diesen internen Netzen nur in Abhängigkeit vom Primäreingang extrahiert werden. Der Bibliotheksgenerator extrahiert diese Information durch Ausschneiden und Einfügen des den pfadabseitigen Eingang erzeugenden Blocks. Dieser Kegel wird an die Überwachungsschaltung angehängt. Ein Inverter wird zwischen den Kegel und die Überwachungsschaltung eingefügt, wenn die benötigte Bedingung eine 0 am pfadabseitigen Eingang ist. 4a zeigt einen internen pfadabseitigen Netzeingang vom Block 401 zum Gate-Monitor 402. Der Gate-Monitor 402 akzeptiert auch Eingangssignale von den Gates 403 und 404. 4b zeigt eine Überwachungsschaltung für den Gate-Monitor 406 mit einem pfadabseitigen Monitor 405.
  • Jeder Pfad ist eine Serie von zusammengeschalteten Gates. Um einen Übergang über einen Pfad zu propagieren, müssen die pfadabseitigen Eingänge der Gates in dem Pfad einen nichtsteuernden Wert haben. Um diese Bedingung zu erfüllen, müssen alle Gate-Monitore für die Gates über den Pfad einen Ausgang von 1 haben. Dadurch wird gewährleistet, dass der Pfadmonitor das AND der Ausgänge dieser Gate-Monitore ist. Unter bestimmten Umständen kann ein bestimmter Eingang auch von mehr als einem Pfad mit einem bestimmten Ausgang verbunden werden. Wenn dies der Fall ist, dann wird durch Aktivieren eines beliebigen Pfades gewährleistet, dass ein Übergang von diesem Eingang zu diesem Ausgang propagiert. Somit reicht eine 1 auf einem beliebigen Pfadmonitor aus, und die Ein-Ausgangs-Überwachungsschaltung für dieses Ein-Ausgangspaar ist das OR aller Pfadmonitore für die Pfade, die diesen Eingang mit diesem Ausgang verbinden.
  • 5 zeigt ein Beispiel für eine Gate-Monitor-Schaltung. Es gibt zwei Pfade 501 und 502 zwischen Eingang und Ausgang. Pfad 501 beinhaltet Gates 518 und 503505, Pfad 502 beinhaltet Gates 505507. Diese Pfade und Gates umfassen die Überwachungsschaltung. Die ursprüngliche Schaltung besteht aus Gate-Monitoren 508514, Pfadmonitoren 515516 und Ein-Ausgangsmonitor 517. Man beachte, dass Gate-Monitore 511 und 512 verschiedene Eingänge haben. Die Pfadmonitore 515 und 516 sind jeweils die Pfadmonitore für Pfad 501 bzw. 502. Der Ausgang des Ein-Ausgangsmonitors 517 ist nur dann 1, wenn ein Übergang vom Eingang zum Ausgang propagieren kann.
  • In der derzeit bevorzugten Ausgestaltung werden CMOS-Übertragungsgates durch ihre äquivalenten PMOS- und NMOS-Gates ersetzt, wenn die Netzliste geparst wird. Wenn ein Eingang zu einem Gate in der Netzliste eine Konstante oder eine Speisespannung ist, dann reduziert der Bibliotheksgenerator das Gate entweder durch Eliminieren des Eingangs oder durch Eliminieren des gesamten Gate (aufgrund eines konstanten Ausgangs), je nach Gate-Typ und Eingangskonstante. Wenn ein Eingang auf diese Weise eliminiert wurde, dann kann der Gate-Typ geändert werden (z. B. wenn ein Eingang zu einem AND-Gate mit 2 Eingängen an eine Konstante 1 gebunden ist, dann wird dieser Eingang eliminiert und das Gate wird zu einem Puffer). Wenn ein Gate eliminiert wird, dann wird der Effekt des konstanten Ausgangs zu denjenigen Gates propagiert, deren Eingänge mit diesem Ausgang verbunden sind. Diese Gates werden dann aufgrund des neuen konstanten Eingangs weiter reduziert. Diese Reduzierungen sind in Tabelle 2 unten zusammengefasst.
  • Tabelle 2: Reduzierungen von konstanten Eingängen
    Figure 00100001
  • Man beachte, dass, wenn der Dateneingang eines Tristate-Elementes konstant ist, der Ausgang entweder ein konstanter Logikwert oder eine hohe Impedanz ist. Wenn beispielsweise der Dateneingang eines NOTIF0 Gates 1 ist, dann ist der Ausgang 0, wenn Control 0 ist, und der Ausgang ist eine hohe Impedanz, wenn Control 1 ist. Der Ausgang kann nicht 1 sein. Wenn dieses Tristate-Element denselben Ausgangsknoten mit anderen Tristate-Elementen in der Schaltung gemeinsam nutzt, dann kann dieses Tristate-Element reduziert werden. Wenn der Ausgang des Tristate-Elementes jedoch nicht gemeinsam genutzt wird, dann setzt der Bibliotheksgenerator den Ausgang des Tristate-Elementes so, dass er entweder der Steuereingang oder sein Komplement ist.
  • Wenn sich der Steuereingang eines Tristate-Elementes auf dem Pfad befindet, dann kann dieses Tristate-Element keinen Übergang während der Ausgangsperiode garantieren. Der Grund ist, dass ein Übergang auf dem Control des Tristate-Elementes bewirkt, dass dieses von „aus" auf „ein" oder umgekehrt schaltet, wobei der Ausschaltzustand eine hohe Impedanz ist. Der Einschaltszustand ist entweder der Dateneingang oder sein Komplement. Wenn der Ausgang des Tristate-Elementes mit anderen Tristate-Elementen gemeinsam genutzt wird und wenn jeweils genau ein Tristate-Element eingeschaltet ist, dann wird gewährleistet, dass dieser Ausgang nicht im Hochimpedanzzustand ist.
  • 6a zeigt auf dem Pfad liegende Tristate-Elemente. Tristate-Elemente 602 und 603 nutzen denselben Ausgang wie das Tristate-Element 601. Wenn der Übergang durch das Control von Element 602 von „aus" auf „ein" geschaltet wird, dann muss, um zu gewährleisten, dass ein Übergang am Ausgang auftritt, der Ausgang von Element 601 das Komplement des Ausgangs von Element 602 sein. Dies gilt nur dann, wenn das XOR der beiden Ausgänge gleich 1 ist. Im Hinblick auf Eingänge ist, wenn beide Elemente 601 und 602 invertierend oder wenn beide nicht invertierend sind, das XOR der Ausgänge mit dem XOR der Eingänge äquivalent. Wenn ein Tristate-Element invertierend ist, während das andere nicht invertierend ist, dann ist das XOR der Ausgänge mit dem XNOR der Eingänge äquivalent. 6b zeigt eine Überwachungsschaltung, wie sie für Tristate-Elemente eingesetzt werden kann. Die Überwachungsschaltung besteht aus einem XOR/XNOR-Gate 604. 6c zeigt eine alternative Ausgestaltung einer Überwachungsschaltung für die Verwendung mit Tristate-Elementen. Angenommen, dass das Element 603 anstatt 602 schaltet, gibt es nur auf der Basis von rein kombinatorischen Schaltungen keine Möglichkeit zu erfassen, ob Element 602 oder 603 schaltet, weil zum Erfassen eines Übergangs ein Speicher benötigt wird. Demzufolge werden flankengetriggerte Flipflops 605608 benutzt, um positive oder negative Übergänge auf dem Steuerelement zu erfassen. Es wird angenommen, dass die Dateneingänge a–a3 während dieses Übergangs stabil sind. Die Flipflops 605608 werden so initialisiert, dass sie vor dem Übergang gleich a1 sind. Die Ausgänge des Flipflop 605606 werden vom OR-Gate 609 zusammen einem OR-Vorgang unterzogen. Dann wird vom XOR-Gate 611 ein XOR-Vorgang mit a1 durchgeführt. Ebenso werden die Ausgänge der Flipflops 607608 vom OR-Gate 610 zusammen einem OR-Vorgang unterzogen. Ein XOR-Vorgang wird dann vom XOR-Gate 612 an a1 durchgeführt. Die Ausgänge der XOR-Gates 611612 werden vom OR-Gate 613 zusammen einem OR-Vorgang unterzogen. 6d zeigt die derzeit bevorzugte Ausgestaltung einer Überwachungsschaltung, die vom Bibliotheksgenerator erzeugt wurde. Um die Überwachungsschaltung zu vereinfachen, werden keine sequentiellen Elemente verwendet. Es wird davon ausgegangen, dass die Übergänge an den Steuerelementen wie gezeigt vorhanden sind. So werden beispielsweise a1 und a2 in das XOR-Gate 614 eingegeben, während a1 und a3 in das XOR-Gate 615 eingegeben werden. Die Ausgänge der XOR-Gates 614 und 615 werden vom OR-Gate 616 zusammen einem OR-Vorgang unterzogen.
  • Nachfolgend wird die pfadabseitige Abhängigkeit von einem auf dem Pfad befindlichen Eingang beschrieben. Ein pfadabseitiges Eingangssignal s, das ein internes Netz ist, kann durch eine Funktion von Primäreingängen ersetzt werden. Diese Primäreingänge können den auf dem Pfad befindlichen Eingang beinhalten. Dies bedeutet, dass es einen anderen Pfad gibt, wo Signal s auf dem Pfad liegt. Beim Aufbauen der Pfadüberwachungsschaltung für den ersten Pfad können also alle Netze in der pfadabseitigen Überwachungsschaltung, die tatsächlich auf dem Pfad liegen, fallen gelassen werden, weil sie eingerechnet werden, wenn die Pfadüberwachungsschaltung für den zweiten Pfad erzeugt wird.
  • 7a zeigt eine AND OR Implementation eines XOR-Gates. Die Gates 701703 sind die ursprüngliche Schaltung, während die Gates 704705 die Überwachungsschaltung umfassen. 7b zeigt die Pfadüberwachungsschaltung für den b-Signal-Pfad, der durch die Gates 701703 propagiert. Es ist ersichtlich, dass die pfadabseitige Überwachungsschaltung von dem auf dem Pfad befindlichen Eingang b abhängig ist. Somit kann dieser Eingang fallen gelassen werden und das AND-Gate wird wie in 7b gezeigt zu einem Puffer. Eine weitere Reduzierung dieser Schaltung führt zu einem einzelnen Puffer, wie in den 7c und 7d dargestellt ist. Ebenso umfasst die reduzierte Pfadüberwachungsschaltung oder der durch die Gates 705 und 703 propagierende b-Signal-Pfad einen einzelnen Inverter 701. Daher ist der Ein-Ausgangsmonitor für das Eingangssignal b und den Ausgang Out a + a' = 1. Dies bedeutet, dass der Übergang vom Eingang b zu Out propagieren kann, unabhängig vom Zustand von Signal a.
  • Wenn es mehr als einen Pfad von einem Eingang a zu einem Ausgang Out gibt und wenigstens ein Pfad den Übergang invertiert, während der andere es nicht tut, dann besteht die Möglichkeit, dass diese beiden Pfade gleichzeitig aktiviert werden. Wenn dies der Fall ist, dann können sich die beiden Pfade gegenseitig auslöschen oder eine Statikgefahr verursachen. 8 zeigt eine Schaltung mit zwei Pfaden zum Ausgang. Es ist ersichtlich, dass Eingang b zwei Pfade zum Ausgang Out hat: einen durch Gate 801, einen anderen durch Gate 802. Wenn sowohl a als auch c1 sind und ein positiver Übergang an b angelegt wird, dann ist der Ausgang entweder eine statische 1 oder es kann eine Statikgefahr vorliegen, je nach dem relativen Timing der Gates. Da der Bibliotheksgenerator davon ausgeht, dass der Übergang durchpropagiert wird, wenn wenigstens ein oder mehrere Pfade aktiviert sind, dann kann er fälschlicherweise diesen Löschungsfall als gültigen Aktiverungszustand ansehen. Um diesen Zustand zu verhüten, sollten komplementierende und nicht komplementierende Pfade getrennt werden. Die Ein-Ausgangsüberwachungsschaltung wird dann das XOR der komplementierenden Pfadüberwachungsschaltung und der nicht komplementierenden Pfadüberwachungsschaltung. Dadurch soll verhindert werden, dass komplementierende und nicht komplementierende Pfade gleichzeitig aktiviert werden. 9 zeigt einen Ein-Ausgangsmonitor mit Übergangspolaritätsmöglichkeit. Der positive Ein-Ausgangsmonitor 901 sammelt alle positiven (nicht komplementierenden) Übergänge, während der negative Ein-Ausgangsmonitor 902 alle negativen (komplementierten) Übergänge sammelt. Undeterministische Polaritätspfade sollten sowohl in den positiven Ein-Ausgangsmonitor 901 als auch in den negativen Ein-Ausgangsmonitor 902 einbezogen werden.
  • 10 zeigt ein Fließschema, das die Schritte zum Identifizieren der Pfade beschreibt, die nicht erregbar sind und von denen gefunden wurde, dass sie die Timing-Beschränkungen überschreiten. In Schritt 1001 wird eine Liste von Pfaden erzeugt. Für jeden Pfad werden Schritte 10031009 durchgeführt. In Schritt 1003 wird ein AND-Gate erzeugt. Für jeden Knoten des Pfades werden Schritte 10051009 durchgeführt. In Schritt 1005 werden die pfadabseitigen Signale mit dem Eingang des AND-Gates verbunden. Als Nächstes wird ein Haftet-bei-Null-Fehler am Eingang des AND-Gates erzeugt (Schritt 1006). Der Ausgang des AND-Gates wird zur Primärausgangsliste addiert (Schritt 1007). Es wird ein Test für den Haftet-bei-Null-Fehler generiert (Schritt 1008). Wenn der Test nicht existiert, dann handelt es sich um einen falschen Pfad. Ansonsten handelt es sich um einen wahren Pfad (Schritt 1009).
  • 11 zeigt ein Blockdiagramm, das für einen Teil einer integrierten Schaltung und einer entsprechenden False-Path-Identifikationsschaltung repräsentativ ist. Bei fünf E/A-Punkten 11011105 kann es zahlreiche Pfade geben, die diese E/A-Punkte untereinander verbinden. Innerhalb jedes Pfades kann es zahlreiche Elemente wie z. B. die Elemente 11081113 geben. So beinhaltet beispielsweise der von E/A 1101 bis E/A 1103 verlaufende Pfad die Elemente 1108, 1110 und 1111. Der Pfad von E/A 1104 bis E/A 1105 beinhaltet die Elemente 11061109. Es ist ersichtlich, dass diese beiden Pfade das Element 1108 gemeinsam nutzen. Für jedes Element wird eine Gate-Monitor- Schaltung hinzugefügt, um zu ermitteln, ob dieser Pfad ein False-Timing-Path ist. So beinhaltet beispielsweise der Pfad von E/A 1104 zu E/A 1105 vier Gate-Monitor-Schaltungen 11141117, die den vier Elementen 11061109 in diesem Pfad entsprechen. Die Ausgänge von den Gate-Monitor-Schaltungen 11141117 werden in das AND-Gate 1118 gespeist. Wenn es möglich ist, eine 1 vom AND-Gate 1118 auszugeben, dann wird dieser Pfad als ein wahrer Pfad bezeichnet. Wenn jedoch nach einer vorbestimmten Zeitperiode keine 1 vom AND-Gate 1118 ausgegeben werden kann, dann wird dieser Pfad als falscher Pfad angesehen.
  • 12 zeigt eine Gate-Monitor-Schaltung, die für Elemente in einem Pfad eingesetzt werden kann. Angenommen, dass dieses Element 1106 ein Multiplexer ist, besteht die Gate-Monitor-Schaltung aus einem XOR-Gate 1201, einem Inverter 1202 und einem AND-Gate 1203. Das XOR-Gate 1201 wird mit den Eingängen a und b des Multiplexers 1106 gekoppelt. Inverter 1202 wird mit dem Steuersignal zum Multiplexer 1106 gekoppelt. Die Ausgänge von XOR 1201 und Inverter 1202 werden mit den Eingängen des AND-Gates 1203 gekoppelt. Somit gibt das AND-Gate 1203 nur dann eine 1 aus, wenn die Eingänge zum Multiplexer 1106 0 1 oder 1 0 sind und das Steuersignal zum Multiplexer 1106 eine 0 ist. Wenn diese Bedingungen nicht erfüllt sind, dann gibt das Gate 1203 keine 1 aus. Infolgedessen gibt das AND-Gate 1114 keine 1 aus. Dies würde bedeuten, dass der Pfad von E/A 1104 zu E/A 1105 ein falscher Pfad ist.
  • Somit wurden eine Vorrichtung und ein Verfahren zum Identifizieren von False-Timing-Paths in digitalen Schaltungen offenbart.

Claims (19)

  1. Computergestütztes Designverfahren zum Identifizieren von falschen Synchronisationspfaden (False-Timing-Paths) in einer simulierten digitalen Schaltung, wobei wenigstens ein stimuliertes Pfadelement, das auf einem Signalpfad liegt, mit wenigstens einem pfadabseitigen Signal assoziiert ist, wobei das genannte Verfahren die folgenden Schritte umfasst: a) Erzeugen einer simulierten Gate-Monitor-Schaltung zum Überwachen des Pfadelementes in dem Signalpfad, wobei die Gate-Monitor-Schaltung wenigstens einen Eingang zum Empfangen eines pfadabseitigen Signals von dem Pfadelement aufweist, und Erzeugen eines vorbestimmten Ausgangslogikwertes als Reaktion auf den wenigstens einen Eingang, immer wenn ein Signalübergang durch das Pfadelement propagiert; b) Erzeugen einer simulierten Pfad-Monitor-Schaltung, die dem Signalpfad entspricht, wobei die Pfad-Monitor-Schaltung wenigstens einen Eingang hat, der mit wenigstens einer Gate-Monitor-Schaltung für ein Pfadelement in dem Signalpfad gekoppelt ist, und Erzeugen eines vorbestimmten Ausgangslogikwertes als Reaktion auf den wenigstens einen Eingang, immer wenn ein Signalübergang durch den Signalpfad propagiert; gekennzeichnet durch c) Identifizieren des Signalpfades als False-Timing-Path, wenn die Pfad-Monitor-Schaltung den vorbestimmten Ausgangslogikwert nicht innerhalb einer vorbestimmten Zeitperiode nach dem Stimulieren der digitalen Schaltung mit einem Satz von Testsignalen erzeugt; d) Wiederholen von Schritt c für mehrere Sätze von Testsignalen; und e) Wiederholen der Schritte a–d für mehrere Signalpfade durch die digitale Schaltung.
  2. Verfahren nach Anspruch 1, ferner umfassend den Schritt des Erzeugers einer Liste von Pfaden (308).
  3. Verfahren nach Anspruch 1, wobei der genannte Ermittlungsschritt aus dem Schritt des Koppelns eines Faulting-Mechanismus mit einem Ausgang der genannten Pfad-Monitor-Schaltung besteht, wobei der genannte Faulting-Mechanismus das genannte False-Timing-Path-Signal dann erzeugt, wenn der Ausgang der genannten Pfad-Monitor-Schaltung am Komplement des genannten vorbestimmten Ausgangslogikwertes unverändert bleibt.
  4. Verfahren nach Anspruch 1, ferner umfassend den Schritt des Ermittelns, ob die genannte Mehrzahl von Elementen ein komplexes Gate umfasst, wobei dann, wenn die genannte Mehrzahl von Elementen das genannte komplexe Gate umfasst, die genannte Mehrzahl von Elementen zu wenigstens einem einfachen Gate reduziert wird.
  5. Verfahren nach Anspruch 4, ferner umfassend die folgenden Schritte: Suchen aller CMOS-Gates, die dem genannten False-Timing-Path-Signal entsprechen; Ersetzen der genannten CMOS-Gates durch äquivalente PMOS- und NMOS-Gates.
  6. Verfahren nach Anspruch 5, ferner umfassend die folgenden Schritte: Ermitteln, ob ein Eingang zu der genannten Mehrzahl von Elementen eine konstante Speisespannung ist; Eliminieren des genannten Eingangs, wenn der genannte Eingang die genannte konstante Speisespannung ist.
  7. Verfahren nach Anspruch 6, ferner umfassend den Schritt des Eliminierens eines Elementes, das eine konstante Speisespannung an einem seiner Eingänge hat.
  8. Verfahren nach Anspruch 7, wobei das genannte Element ein Tristate-Element mit einer On-Path-Control und einem gemeinsam genutzten Ausgang ist.
  9. Verfahren nach Anspruch 1, ferner umfassend die folgenden Schritte: Trennen der komplementierenden und nicht komplementierenden Pfade; Unterziehen eines Ausgangs einer komplementierenden Pfad-Monitor-Schaltung und eines Ausgangs einer nicht komplementierenden Pfad-Monitor-Schaltung einem XOR-Vorgang.
  10. Computersystem, das so gestaltet ist, dass es False-Timing-Paths einer simulierten digitalen Schaltung identifiziert, wobei wenigstens ein stimuliertes Pfadelement, das auf einem Signalpfad liegt, mit wenigstens einem pfadabseitigen Signal assoziiert ist, wobei das genannte System Folgendes umfasst: einen Bus; einen Speicher, der mit dem genannten Bus gekoppelt ist, um eine Mehrzahl von simulierten Schaltungselementen zu speichern, Verbindungen zwischen den Schaltungselementen und Funktionen der Schaltungselemente, wobei die Schaltungselemente und Verbindungen wenigstens einen Signalpfad in der simulierten digitalen Schaltung definieren; und einen Prozessor, der mit dem Speicher gekoppelt ist, mit der Aufgabe: a) eine simulierte Gate-Monitor-Schaltung zum Überwachen des Pfadelementes in dem Signalpfad zu erzeugen, wobei die Gate-Monitor-Schaltung wenigstens einen Eingang zum Empfangen eines pfadabseitigen Signals von dem Pfadelement aufweist, und Erzeugen eines vorbestimmten Ausgangslogikwertes als Reaktion auf den wenigstens einen Eingang, immer wenn ein Signalübergang durch das Pfadelement propagiert; dadurch gekennzeichnet, dass der Prozessor ferner so gestaltet ist, dass er: b) eine simulierte Pfad-Monitor-Schaltung erzeugt, die dem Signalpfad entspricht, wobei die Pfad-Monitor-Schaltung wenigstens einen Eingang hat, der mit wenigstens einer Gate-Monitor-Schaltung für ein Pfadelement in dem Signalpfad gekoppelt ist, und Erzeugen eines vorbestimmten Ausgangslogikwertes als Reaktion auf den wenigstens einen Eingang, immer wenn ein Signalübergang durch den Signalpfad propagiert; gekennzeichnet durch c) Identifizieren des Signalpfades als False-Timing-Path, wenn die Pfad-Monitor-Schaltung den vorbestimmten Ausgangslogikwert nicht innerhalb einer vorbestimmten Zeitperiode nach dem Stimulieren der Digitalschaltung mit einem Satz von Testsignalen erzeugt; d) Wiederholen von Schritt c für mehrere Sätze von Testsignalen; und e) Wiederholen der Schritte a–d für mehrere Signalpfade durch die digitale Schaltung.
  11. Vorrichtung nach Anspruch 10, ferner umfassend einen zweiten Generator (1001) zum Erzeugen einer Liste von Pfaden.
  12. Vorrichtung nach Anspruch 10, ferner umfassend einen Faulting-Mechanismus (1005), der mit einem Ausgang des genannten AND-Gates gekoppelt ist, wobei der genannte Faulting-Mechanismus das genannte False-Timing-Signal erzeugt, wenn der Ausgang des genannten AND-Gates unverändert bei „0" bleibt.
  13. Vorrichtung nach Anspruch 10, die ferner Folgendes umfasst: eine erste Logik zum Ermitteln, ob ein Element der genannten Überwachungsschaltung ein komplexes Gate ist, wobei das genannte Element zu wenigstens einem einfachen Gate reduziert wird, wenn das genannte Element aus dem genannten komplexen Gate besteht.
  14. Vorrichtung nach Anspruch 13, die ferner Folgendes umfasst: eine zweite Logik zum Suchen aller CMOS-Gates, die dem genannten Pfad entsprechen; eine dritte Logik (302) zum Ersetzen der genannten CMOS-Gates mit äquivalenten PMOS- und NMOS-Gates.
  15. Vorrichtung nach Anspruch 14, ferner umfassend ein Mittel zum Ermitteln, ob ein Eingang zu dem genannten Element eine konstante Speisespannung ist, wobei der genannte Eingang eliminiert wird, wenn der genannte Eingang eine konstante Speisespannung ist.
  16. Vorrichtung nach Anspruch 15, ferner umfassend eine Schaltung zum Eliminieren eines Gates, das dem genannten Eingang entspricht, wenn der genannte Eingang die genannte konstante Speisespannung ist.
  17. Vorrichtung nach Anspruch 16, wobei das genannte Element ein Tristate-Element mit einer On-Path-Control und einem gemeinsam genutzten Ausgang ist.
  18. Vorrichtung nach Anspruch 10, ferner umfassend ein Mittel zum Trennen der komplementierenden und nicht komplementierenden Pfade, wobei ein Ausgang einer komplementierenden Pfad-Monitor-Schaltung mit einer nicht komplementierenden Pfad-Monitor-Schaltung einem XOR-Vorgang unterzogen wird.
  19. Computersystem mit der Aufgabe, False-Timing-Paths einer digitalen Schaltung zu identifizieren, wobei wenigstens ein stimuliertes Pfadelement, das auf einem Signalpfad liegt, mit wenigstens einem pfadabseitigen Signal assoziiert ist, umfassend eine Vorrichtung nach einem der Ansprüche 10 bis 18 und ferner Folgendes umfassend: einen Generator, der mit dem genannten Prozessor gekoppelt ist und die Aufgabe hat, eine Mehrzahl von Testsignalen zu erzeugen, die in die genannte Mehrzahl von Monitorschaltungen eingegeben werden; und eine Testeinheit, die mit dem genannten Prozessor gekoppelt ist und die Aufgabe hat, ein False-Timing-Path-Signal zu erzeugen, das dem genannten Pfad entspricht, wenn ein mit der genannten Mehrzahl von simulierten Schaltungselementen gekoppeltes AND-Gate keinen vorgegebenen Zustand ausgibt.
DE69533567T 1994-08-09 1995-07-27 Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen Expired - Fee Related DE69533567T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US28796594A 1994-08-09 1994-08-09
US287965 1994-08-09

Publications (2)

Publication Number Publication Date
DE69533567D1 DE69533567D1 (de) 2004-11-04
DE69533567T2 true DE69533567T2 (de) 2005-11-24

Family

ID=23105146

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69533567T Expired - Fee Related DE69533567T2 (de) 1994-08-09 1995-07-27 Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen

Country Status (4)

Country Link
US (1) US5675728A (de)
EP (1) EP0697668B1 (de)
JP (1) JPH08180098A (de)
DE (1) DE69533567T2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3246865B2 (ja) * 1996-05-10 2002-01-15 株式会社東芝 スタティックタイミング解析装置及びその方法
US6018813A (en) * 1997-04-21 2000-01-25 Nec Usa, Inc. Identification and test generation for primitive faults
US6131080A (en) * 1998-08-17 2000-10-10 Motorola, Inc. Method of monitoring a computer simulation of an electrical circuit
JP2000133718A (ja) * 1998-10-23 2000-05-12 Mitsubishi Electric Corp 配線容量改善支援装置、配線容量改善支援方法および配線容量改善支援プログラムを記録した媒体
US6625745B1 (en) * 1999-03-17 2003-09-23 Hewlett-Packard Development Co.Lp Network component failure identification with minimal testing
JP3370304B2 (ja) * 2000-01-28 2003-01-27 シャープ株式会社 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体
US6952812B2 (en) * 2001-02-13 2005-10-04 Freescale Semiconductor, Inc. Design analysis tool for path extraction and false path identification and method thereof
JP4128131B2 (ja) * 2003-11-19 2008-07-30 富士通株式会社 フォールスパス検出プログラム
JP2005293349A (ja) * 2004-04-01 2005-10-20 Nec Electronics Corp 回路設計支援システム、設計方法及びプログラム
US7509605B2 (en) * 2005-12-12 2009-03-24 International Business Machines Corporation Extending incremental verification of circuit design to encompass verification restraints
DE602006011177D1 (de) * 2006-10-23 2010-01-28 Onespin Solutions Gmbh Überprüfung und Erzeugung von Zeitfehlern
US8818741B2 (en) * 2009-04-03 2014-08-26 Raytheon Company Method of detecting changes in integrated circuits using thermally imaged test patterns
JP5359655B2 (ja) * 2009-07-30 2013-12-04 富士通セミコンダクター株式会社 生成方法
US10275561B2 (en) * 2016-05-27 2019-04-30 Taiwan Semiconductor Manufacturing Company Limited Method for eliminating false paths of a circuit unit to be implemented using a system
US10331826B2 (en) 2017-04-20 2019-06-25 Texas Instruments Incorporated False path timing exception handler circuit

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4556840A (en) * 1981-10-30 1985-12-03 Honeywell Information Systems Inc. Method for testing electronic assemblies
US4763289A (en) * 1985-12-31 1988-08-09 International Business Machines Corporation Method for the modeling and fault simulation of complementary metal oxide semiconductor circuits
ATE87754T1 (de) * 1986-06-06 1993-04-15 Siemens Ag Verfahren zur simulation eines verzoegerungsfehlers in einer logikschaltung und anordnungen zur durchfuehrung des verfahrens.
JPH0682520B2 (ja) * 1987-07-31 1994-10-19 株式会社東芝 半導体メモリ
US4924430A (en) * 1988-01-28 1990-05-08 Teradyne, Inc. Static timing analysis of semiconductor digital circuits
US5095454A (en) * 1989-05-25 1992-03-10 Gateway Design Automation Corporation Method and apparatus for verifying timing during simulation of digital circuits
US5023485A (en) * 1989-12-04 1991-06-11 Texas Instruments Incorporated Method and circuitry for testing a programmable logic device
US5200907A (en) * 1990-04-16 1993-04-06 Tran Dzung J Transmission gate logic design method
US5191541A (en) * 1990-05-14 1993-03-02 Sun Microsystems, Inc. Method and apparatus to improve static path analysis of digital circuits
US5319646A (en) * 1991-09-18 1994-06-07 Ncr Corporation Boundary-scan output cell with non-critical enable path
US5377197A (en) * 1992-02-24 1994-12-27 University Of Illinois Method for automatically generating test vectors for digital integrated circuits
US5387825A (en) * 1992-08-20 1995-02-07 Texas Instruments Incorporated Glitch-eliminator circuit
US5448497A (en) * 1992-09-08 1995-09-05 Nec Research Institute, Inc. Exploiting multi-cycle false paths in the performance optimization of sequential circuits
EP0600608B1 (de) * 1992-10-29 1999-12-22 Altera Corporation Verfahren zum Prüfen von Entwürfen für programmierbare Logikschaltungen
US5452239A (en) * 1993-01-29 1995-09-19 Quickturn Design Systems, Inc. Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system

Also Published As

Publication number Publication date
EP0697668A1 (de) 1996-02-21
US5675728A (en) 1997-10-07
JPH08180098A (ja) 1996-07-12
DE69533567D1 (de) 2004-11-04
EP0697668B1 (de) 2004-09-29

Similar Documents

Publication Publication Date Title
DE69533567T2 (de) Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen
DE10196310B4 (de) Vorrichtung und Verfahren zum Verifizieren eines Chip-Designs und zum Testen eines Chips
DE60103608T2 (de) Verfahren und Vorrichtung zur Analyse der Wellenform eines Quellenstroms in einer integrierten Halbleiterschaltung
DE68929518T2 (de) Verfahren zur Verwendung einer elektronisch wiederkonfigurierbaren Gatterfeld-Logik und dadurch hergestelltes Gerät
DE10392497T5 (de) Herstellungsverfahren und Herstellungsvorrichtung zum Vermeiden eines Prototypen-Aufschubs bei der ASIC/SOC-Herstellung
DE3338333A1 (de) Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur
DE60314530T2 (de) Verfahren und system zum debuggen unter verwendung duplizierter logik
DE602004000228T2 (de) Integrierte Halbleiterschaltungsanordnung mit Signalregenerator für Prüfsignale und dazugehörige automatische Entwurfs-Vorrichtung, -Verfahren und -Programme
DE102012202747B4 (de) Doppeltrigger-Niedrigenergie-Flip-Flop-Schaltung
DE19903633A1 (de) Implementierung von Boolescher Erfüllbarkeit mit nichtchronologischer Rückwärtsverarbeitung in rekonfigurierbarer Hardware
Chen et al. The second generation MOTIS mixed-mode simulator
DE2346617A1 (de) Verfahren zur pruefung der laufzeitverzoegerung einer funktionalen logischen einheit
DE2349324A1 (de) Verfahren und vorrichtung zum pruefen funktioneller logischer schaltungen
DE10063307B4 (de) Auffangschaltung für Daten und deren Ansteuerungsverfahren
DE102019117226A1 (de) Schaltkreis mit adaptiven speicherassistenzfähigkeiten
DE10393176T5 (de) Verfahren zum Evaluieren eines kernbasierten Systems auf einem Chip
DE4335245A1 (de) Vektorlogikverfahren und dynamisches Logikgatter für eine selbstzeitgebende, monotone Logikprogression
DE102017117496A1 (de) Zell-Bewusste Fehlstellen-Charakterisierung und Wellenformanalyse mithilfe mehrerer Strobe-Punkte
DE102021123889B3 (de) Integrierte schaltung, testanordnung und verfahren zum testen einer integrierten schaltung
DE4327660C2 (de) Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung
DE19741915A1 (de) Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen
DE10205559B4 (de) Integrierte Schaltung und Verfahren und Vorrichtung zum Entwurf einer integrierten Schaltung
DE19530669A1 (de) Verfahren zum automatischen Auswählen eines taktsteuernden Signalpfads in umprogrammierbaren Systemen zur Hardware-Emulation
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
EP1430320B1 (de) Elektronischer baustein und verfahren zu dessen qualifizierungsmessung

Legal Events

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