DE10300699A1 - Analyseverfahren für eine integrierte Schaltung und Programmprodukt - Google Patents
Analyseverfahren für eine integrierte Schaltung und ProgrammproduktInfo
- Publication number
- DE10300699A1 DE10300699A1 DE10300699A DE10300699A DE10300699A1 DE 10300699 A1 DE10300699 A1 DE 10300699A1 DE 10300699 A DE10300699 A DE 10300699A DE 10300699 A DE10300699 A DE 10300699A DE 10300699 A1 DE10300699 A1 DE 10300699A1
- Authority
- DE
- Germany
- Prior art keywords
- latches
- latch
- blocks
- path
- global
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
Ein Verfahren zum Analysieren integrierter Schaltungen (IC) weist den Schritt eines Unterteilens der Schaltung in eine Mehrzahl einzelner Blöcke, die miteinander verbunden sind, auf. Jeder Block weist eine Mehrzahl von Latchen und Pfade auf, die die Latche verbinden. Die Blöcke werden durch ein Entfernen aller Details komprimiert, die nicht zum Durchführen eines Zeitgebungsmodellierens mit einer globalen Transparenz benötigt werden.
Description
- Die vorliegende Erfindung bezieht sich auf Programmprodukte und Verfahren zum Entwickeln und Testen eines Schaltungsaufbaus. Insbesondere bezieht sich die vorliegende Erfindung auf Verfahren und Programmprodukte zum Durchführen einer Zeitgebungsanalyse bei integrierten Schaltungen.
- Da integrierte Schaltungen ("ICs") in ihrer Komplexität zugenommen haben, wird die Entwicklung und das Testen der Schaltungen zunehmend schwierig und anspruchsvoll. Moderne ICs können Transistoren und dergleichen, deren Anzahlen in die Millionen gehen, mit einem Vielfachen dieser Anzahl an Transistorverbindungspfaden aufweisen. In ICs muß sich ein Signal durch eine Anzahl von Gattern und Latche ausbreiten, bis es schließlich seinen Zielort erreicht. Gatter kann man sich als einfache Logikschalter vorstellen, die entweder offen oder geschlossen sind. Latche weisen allgemein eines oder mehrere Gatter auf und sind in der Lage, ein Eingangssignal zu speichern oder zu "halten", bis ein erwünschtes Ereignis auftritt, wie z. B. ein Takt-Zyklus, wobei dann das "gehaltene" Signal freigegeben wird. Ein Latch kann z. B. ein erstes Eingangssignal empfangen und dasselbe "halten", bis ein zweites Eingangssignal ankommt, wobei dann das Latch das "gehaltene" erste Signal sendet.
- Wenn sich ein Signal durch die IC ausbreitet, trifft es auf verschiedene Verzögerungen, allgemein in der Form einer "Gatterverzögerung" oder einer "Leitungsverzögerung".
- Gatterverzögerung bezieht sich auf die Zeit, die Transistoren, wie z. B. "UND-Gatter", "ODER-Gatter", "Weder-Noch- Gatter" usw. zum Operieren benötigen, Leitungsverzögerung bezieht sich auf eine Verzögerung, die durch den Widerstandswert des tragenden Mediums und anderer Widerstände, Kondensatoren und dergleichen bewirkt wird, die zwischen Gattern zu finden sind. Insgesamt können die Gatterverzögerung und die Leitungsverzögerung, die entlang eines Verbindungspfades zwischen Latchen auftreten, als die "Pfadverzögerung" zwischen diesen Latchen bezeichnet werden.
- Übermäßige Verzögerungen können für eine IC verheerend sein. Die IC kann unter Umständen nicht in der Lage sein, eine erwünschte Anwendung durchzuführen, wenn sie zu langsam antwortet, da Latche außerhalb der Reihenfolge operieren. Außerdem erhöht eine Verzögerung, die geringer als vorhergesagt ist, die Möglichkeit einer sogenannten Wettkampf-Bedingung, die auftritt, wenn ein Signal an einem erwünschten Ziel außerhalb der Reihenfolge mit einem anderen Signal ankommt. Ein ordnungsgemäßes Sequenzieren und ein Stapeln sind für eine IC-Leistung wesentlich.
- Schaltungen sind allgemein mit einem Taktsignal zum Steuern der Sequenz von Schaltungsoperationen versehen. Das Taktsignal in ICs weist allgemein ein kontinuierliches Rechteckwellensignal auf, das zwischen einem hohen und einem niedrigen Spannungspegel abwechselt. Dass Taktsignal kann verwendet werden, um die Sequenz der IC--Logik durch z. B. neue Daten zu steuern, die an den Eingängen verschiedener Schaltungen jedes Mal präsentiert werden, wenn das Taktsignal von hoch nach niedrig geht. Es ist wesentlich für einen IC- Hersteller, ICs zu liefern, die ihre spezifizierte Taktgeschwindigkeit erfüllen.
- Verschiedene Systeme und Verfahren sind zum Bestimmen von IC-Taktgeschwindigkeiten und zum Sicherstellen dessen bekannt, daß der Chip in der korrekten Zeitgebungssequenz operiert. Für moderne, heutige, komplexe ICs nehmen diese Systeme und Verfahren üblicherweise die Form von Softwareschaltungsmodellierungswerkzeugen bzw. -tools an. Diese Zeitgebungstools operieren allgemein durch ein Bestimmen der Pfadverzögerung zwischen Latchen, wenn sich das Signal durch die IC ausbreitet, um eine Gesamtverzögerung zu bestimmen.
- Da Schaltungen zunehmend größer und komplexer werden, sind Probleme bei diesen Softwarezeitgebungsmodellierungssystemen und -verfahren offensichtlich geworden. Viele dieser Probleme beziehen sich auf die zur Verwendung der Systeme erforderlichen Ressourcen. Ein Laufenlassen eines Zeitgebungsmodells z. B., um eine Höchstintegrations-IC (VLSI-IC) mit ihren Millionen von Pfaden und Latchen zu testen, kann enorme Speichermengen erfordern und eine unverhältnismäßige Prozessorzeit verbrauchen. Oft sind die Speicher- und Verarbeitungsanforderungen so groß, daß sie zweckgebundene und teure Speichersysteme erfordern. Außerdem kann ein erforderlicher Speicher während des Laufens so groß werden, daß verfügbare Ressourcen überschritten werden und das Testprogramm abstürzt.
- Lösungen für diese Probleme wurden vorgeschlagen. Die Komplexität einer Zeitgebungsanalyse z. B. kann durch ein Modellieren einer IC als eine Sammlung von miteinander verbundenen Teilschaltungen reduziert werden. Sogenannte "Blackbox"-Zeitgebungsmodelle analysieren diese Teilschaltungen einzeln, um eine rein "interne" Teilschaltungsverzögerung zu bestimmen. Eine Gesamtverzögerung wird jeder Teilschaltung zugewiesen. Um die Zeitgebung der Gesamt-IC oder die "globale" Zeitgebung zu analysieren, betrachten diese Blackbox-Verfahren dann die Verzögerung auf den Pfaden, die die einzelnen Teilschaltungen miteinander verbinden, oder den "globalen Pfaden", ohne einen internen Betrieb der Teilschaltungen außer der Verwendung der zuvor bestimmten Gesamtverzögerung zu berücksichtigen.
- Während diese einfachen Blackbox-Modelle die Speicheranforderungen zum Laufenlassen globaler Zeitgebungstests reduzieren können, hat sich herausgestellt, daß dieselben für einige Zwecke nachteilig sind. Durch ein Beseitigen einer Berücksichtigung einer internen Teilschaltungszeitgebung z. B. sind diese Modelle nicht in der Lage, Transparenzwirkungen zu modellieren.
- Ein Modellieren von Transparenzwirkungen betrachtet allgemein die Zeitgebung durch transparente Latche. Latche können flankengesteuert oder pegelgesteuert sein. Flankengesteuerte Vorrichtungen tasten allgemein ein Signal nur auf die Erfassung der vorauseilenden Flanke eines hohen oder niedrigen Taktsignals hin ab. Flankengesteuerte Latche werden allgemein als einer festen Zeitgebung unterzogen bezeichnet, wobei die Zeit, zu der ein Signal kommuniziert wird, bekannt und gleich der Erfassung der Flanke des Takt- Hoch-Signals ist. Pegelgesteuerte Latche andererseits können als für Zeitgebungszwecke transparent bezeichnet werden. Pegelgesteuerte Latche werden aktiviert und sind die gesamte Zeit, die das Taktsignal in entweder seinem hohen (oder niedrigen) Zustand ist, in einem "An"-Zustand. Signale werden zu jeder Zeit, zu der dieselben empfangen werden, kommuniziert und das Latch ist in dem An-Zustand. Pegelgesteuerte Latche können dadurch beschrieben werden, um ein Zeitgebungs-"Fenster" aufzuweisen, um Signale zu empfangen, wobei das Fenster zu Beginn des Takt-Hoch- (oder Niedrig-) Pegel-Signals beginnt und an dem Ende des Hoch- (oder Niedrig-) Pegel-Signals endet.
- Zusätzlich zu Blackbox-Modellen besteht eine zusätzliche vorgeschlagene Lösung für Probleme, die für Zeitgebungsmodelle erforderlichen Ressourcen zugeordnet sind, darin, sogenannte "Abschneiden"-Techniken zu verwenden, um die Komplexität von ICs zu reduzieren. Mit diesen Verfahren werden bei einem Latch, das eine Mehrzahl von Pfaden aufweist, die zu demselben führen, alle Pfade bis auf denjenigen, der die größte Verzögerung aufweist, nicht betrachtet oder "abgeschnitten". Das Zeitgebungsmodell wird dann unter Betrachtung nur dieser größten Verzögerung laufengelassen. Allgemein ist die zugrundeliegende Annahme derartiger Abschneide-Praktiken die, daß eine globale Zeitgebung nur durch den Pfad eines ungünstigsten Falls, der die größte Verzögerung aufweist, beeinflußt wird. Als Beispiel werden drei globale Pfade angenommen, die drei unterschiedliche Latche aus drei unterschiedlichen Blöcken mit einem einzelnen Latch in einem vierten Block verbinden. Ein Abschneiden würde alle Pfade bis auf den Pfad, der die größte Verzögerung aufweist, aus einer Betrachtung ausschließen.
- Obwohl ein Abschneiden die Komplexität von ICs zum Modellieren reduziert, ist diese Praktik, wie sie heute bekannt ist, nicht ohne Probleme. Sekundäre globale Pfade z. B., die abgeschnitten wurden, auch wenn sie nicht der ungünstigste Fall sind, können dennoch eine derartige große Verzögerung aufweisen, die denselben zugewiesen ist, daß dieselben "unterbrochen" sind. Dies bedeutet, daß die Verzögerung bei einem abgeschnittenen Pfad ausreichend groß sein kann, daß sie verhindert, daß die Schaltung ihre erforderliche Geschwindigkeit erzielt. Wenn der Pfad jedoch abgeschnitten ist, wird er aus dem Modell entfernt und sein unterbrochener Status wird nicht erfaßt.
- Eine weitere vorgeschlagene Lösung weist sogenannte "Graubox"-Modelle ("Graybox"-Modelle) auf. Ein Graubox-Modell kann man sich als ein Blackbox-Modell mit zusätzlichen Blockdetails vorstellen. Insbesondere weisen Graubox- Modelle allgemein Blockmodelle auf, die summierte Pfadverzögerungen für jeden Pfad in dem Block aufweisen. Während diese Modelle ausreichend Details enthalten können, um eine globale Zeitgebungsmodellierung durchzuführen, hat sich herausgestellt, daß der Detailpegel, den dieselben enthalten, wesentliche Speicher- und Verarbeitungsressourcen erfordert. Für wesentliche Schaltungen, wie z. B. VLSI-ICs, haben Graubox-Modelle tatsächlich Probleme dargestellt, die auf übermäßige Speicher- und Verarbeitungsressourcenanforderungen bezogen sind.
- Diese und weitere Probleme in der Technik sind bisher ungelöst.
- Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren zum Herstellen eines Integrierte-Schaltung-Modells, ein Verfahren zum Herstellen eines Integrierte-Schaltung- Zeitplanungsmodells oder ein Computerprogrammprodukt zu schaffen, die eine Pfadverzögerungsanalyse bei komplexen integrierten Schaltungen erleichtern.
- Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1, 9 oder 10 oder ein Computerprogrammprodukt gemäß Anspruch 11, 17 oder 20 gelöst.
- Die vorliegende Erfindung richtet sich auf Verfahren und Programmprodukte zum Modellieren integrierter Schaltungen. Ein Ausführungsbeispiel eines Verfahrens der Erfindung weist den Schritt eines Unterteilens der Schaltung in eine Mehrzahl verbundener Blöcke auf, wobei jeder der Blöcke eine Mehrzahl interner Latche aufweist, und zumindest einer einen globalen Pfad aufweist, der mit einem Latch an einem unterschiedlichen Block verbunden ist. Das Verfahrensausführungsbeispiel weist ferner den Schritt eines Komprimierens der Blöcke durch ein Entfernen aller Latche aus jedem Block, die nicht zum Modellieren einer globalen Transparenz erforderlich sind, auf.
- Folglich liefern Ausführungsbeispiele der Erfindung Verfahren zum Modellieren integrierter Schaltungen in einem komprimierten Format, um vorzugsweise erforderliche Speicher- und Prozessorressourcen zu reduzieren. Einige Verfahrensausführungsbeispiele können zu Speichereinsparungen gegenüber Schaltungsmodellierungsverfahren des Stands der Technik in der Größenordnung eines Faktors von zehn resultieren. Ferner behalten Verfahrensausführungsbeispiele in ihren komprimierten Formaten einen Pegel von Schaltungsdetails, die für ein genaues Modellieren der Schaltungszeitgebung und für ein Modellieren einer globalen Transparenz erforderlich sind. Verfahren der vorliegenden Erfindung lösen dadurch viele bisher ungelöste Bedarfe in der Technik.
- Für Fachleute auf diesem Gebiet ist es ersichtlich, daß sich Ausführungsbeispiele der Erfindung gut zur Praktizierung in der Form von Computerprogrammprodukten eignen. Folglich ist zu erkennen, daß die vorliegende Erfindung Computerprogrammproduktausführungsbeispiele aufweist, die allgemein computerausführbare Instruktionen zum Bewirken dessen aufweisen, daß ein Computer Verfahren der Erfindung ausführt.
- Die obige kurze Beschreibung legt einige Merkmale der vorliegenden Offenbarung dar, so daß die folgende detaillierte Beschreibung besser verstanden werden kann. Es gibt natürlich zusätzliche Merkmale der Offenbarung, die später beschrieben werden, die den Gegenstand der Erfindung weiter beschreiben. Diesbezüglich wird darauf verwiesen, daß die Offenbarung in ihrer Anwendung nicht auf die Details des Aufbaus und die Anordnungen beschränkt ist, die in der folgenden Beschreibung dargelegt oder in den Zeichnungen dargestellt sind. Die vorliegende Erfindung ist zu anderen Ausführungsbeispielen in der Lage, wie für Fachleute auf diesem Gebiet ersichtlich ist. Außerdem wird darauf verwiesen, daß die Phraseologie und Terminologie, die hierin verwendet werden, zur Beschreibung und nicht zur Einschränkung dienen.
- Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beigefügten Zeichnungen näher erläutert. Es zeigen:
- Fig. 1 ein Flußdiagramm, das Schritte eines Erfindungsausführungsbeispiels darstellt;
- Fig. 2 ein Schema eines Abschnitts einer integrierten Schaltung, das nützlich zur Darstellung eines Erfindungsausführungsbeispiels ist;
- Fig. 3 ein Schema, das einen Abschnitt der integrierten Schaltung aus Fig. 2 detaillierter zeigt;
- Fig. 4 ein Flußdiagramm, das einen Satz von Schritten eines Verfahrens der Erfindung darstellt; und
- Fig. 5(a) und 5(b) Schemata eines Abschnitts einer integrierten Schaltung vor bzw. nach einer Praktizierung eines Abschneiden-Schrittes eines Erfindungsausführungsbeispiels.
- Bezug nehmend auf die Zeichnungen ist Fig. 1 ein Flußdiagramm, das allgemein die Schritte eines Verfahrensausführungsbeispiels 100 der Erfindung darstellt. Dieses Verfahren 100 weist den Schritt eines Unterteilens der zu modellierenden Schaltung in eine Mehrzahl miteinander verbundener Blöcke (Schritt 102) auf. Jeder der Blöcke weist eine Mehrzahl interner Latche und Pfade auf, die die Latche verbinden. Wie der Ausdruck "Latch" hierin verwendet wird, ist er beabsichtigt, um sich allgemein auf jede Elektronikkomponente zum Empfangen eines Signals, Speichern oder "Halten" des Signals und Übertragen des gespeicherten oder "gehaltenen" Signals auf ein Empfangen eines zweiten Signals hin oder nach einem Empfangen desselben zu beziehen. Außerdem weist jeder Block zumindest einen globalen Pfad auf, der zu demselben führt und der von einem anderen Block ausgeht. Es ist zu erkennen, daß der Ausdruck "global", wie er hierin verwendet wird, um einen Pfad zu beschreiben, sich auf einen Pfad beziehen soll, der die Grenzen eines oder mehrerer Blöcke kreuzt, um Latche von den jeweiligen Blöcken miteinander zu verbinden.
- Für Fachleute auf diesem Gebiet ist es ersichtlich, daß es viele unterschiedliche bestimmte Weisen gibt, auf die eine bestimmte integrierte Schaltung in eine Mehrzahl von Blöcken unterteilt werden kann. Für Fachleute auf diesem Gebiet ist es ebenso ersichtlich, daß Blöcke vorzugsweise auf eine funktionell und/oder architektonisch hierarchische Weise aus einer Schaltung erzeugt werden. Ferner kann eine bestimmte Schaltung in jede Anzahl von Blöcken, wie dies praktisch und/oder wünschenswert ist, unterteilt sein.
- Die einzelnen Blöcke, wenn sie anfänglich erzeugt werden, können alle Details der integrierten Schaltung halten. Interne Pfade zwischen Latchen in jedem Block weisen dadurch Details auf, die z. B. eine Drahtgeometrie entlang des Pfades, Gatter entlang des Pfades und Verzögerungen, die dem Draht (Leitungsverzögerung) und Gatter (Gatterverzögerung) zugeordnet sind, die ein Signal antrifft, das sich entlang des Pfades ausbreitet, aufweisen können. Eine Leitungsverzögerung, wie sie hierin verwendet wird, ist beabsichtigt, um sich allgemein auf jede Verzögerung zu beziehen, die Materialien zugeordnet ist, die sich zwischen Latchen befinden, mit der Ausnahme von Gattern. Eine Leitungsverzögerung weist z. B. eine Verzögerung auf, die angetroffenen Widerständen und Kondensatoren zugeordnet ist, sowie einen Widerstandswert, der dem Trägermedium zugeordnet ist (z. B. Widerstandswert eines aufgebrachten Metallschichtträgers zwischen Latchen in einer chipbasierten integrierten Schaltung). Außerdem soll sich der Ausdruck Gatterverzögerung, wie er hierin verwendet wird, allgemein auf alle Verzögerungen beziehen, die einem Signal zugeordnet sind, das durch ein Gatter, wie z. B. einen Transistor, gelangt.
- Der Block kann außerdem Informationen hinsichtlich der Latch-Verzögerung, die jedem Latch zugeordnet ist, enthalten. Wie der Ausdruck Latch-Verzögerung hierin verwendet wird, soll er sich allgemein auf jede Verzögerung beziehen, die einem Latch zugeordnet ist. Als Beispiel kann die Latch-Verzögerung die Verzögerung aufweisen, die den Gattern zugeordnet ist, die das Latch aufweisen, oder dergleichen.
- Sobald die Schaltung in die Mehrzahl von Blöcken unterteilt wurde, weist das Verfahrensausführungsbeispiel 100 ferner ein Komprimieren jedes der Blöcke durch ein Berechnen einer repräsentativen Verzögerung für jeden Pfad unter Verwendung der einzelnen Gatter- und Leitungs-Verzögerungen, die diesem Pfad zugeordnet sind, (Block 104) auf. Die Verzögerung kann z. B. ein Summieren der einzelnen Leitungsverzögerungen und Gatterverzögerungen aufweisen, wobei der resultierende einzelne Verzögerungswert dann dem Pfad zugeordnet ist. Weitere Details hinsichtlich einzelner Gatter, Widerstände, Kondensatoren und dergleichen entlang des Pfades werden daher nicht benötigt. Die Menge von Informationen, die in jedem der Blöcke enthalten sind, wird dadurch wesentlich reduziert.
- Das Verfahrensausführungsbeispiel 100 weist ferner den Schritt eines Bestimmens auf, welche der Mehrzahl von Latchen in jedem Block zum Modellieren einer Transparenz erforderlich sind (Block 106). Ein Satz von Schritten zum Durchführen dieser Bestimmung weist allgemein ein Folgen eines Signals, wie sich dasselbe in einem Block ausbreitet, und ein Bestimmen der Zeit auf, zu der dasselbe an jedem Latch ankommt. Eine Latch-Ankunftszeit für jedes der Latche wird mit einer Latch-"An-Zustand"-Startzeit verglichen, bis ein Latch gefunden wird, das eine Startzeit aufweist, die später als die jeweilige Latch-Ankunftszeit ist. Dieses Latch wird als ein letztes Latch bestimmt, wobei alle nachfolgenden Block-Latche zur globalen Zeitgebung nicht notwendig sind. Das Verfahrensausführungsbeispiel 100 weist ferner den Schritt eines Entfernens dieser nicht notwendiger Latche (Block 108) auf.
- Ein zusätzlicher Schritt des Verfahrensausführungsbeispiels 100 weist ein Abschneiden jedes der Blöcke auf, um alle Pfade, die in jedes Latch führen, bis auf den Pfad zu entfernen, der die größte Verzögerung aufweist (Block 110). Globale Pfade werden jedoch vorzugsweise nicht abgeschnitten. Es hat sich herausgestellt, daß ein Abschneiden der globalen Pfade ungünstigerweise Pfade aus einer Betrachtung ausschließen kann, die eine wesentliche Wirkung auf die globale Zeitgebung haben. Folglich weist das Verfahrensausführungsbeispiel 100 ein Abschneiden von nur blockinternen Pfaden auf.
- Verschiedene Aspekte eines exemplarischen Erfindungsausführungsbeispiels können durch ein detailliertes Praktizierungsbeispiel des Ausführungsbeispiels 100 ersichtlich werden. Folglich wird Bezug auf das Schema aus Fig. 2 genommen, das einen Abschnitt einer integrierten Schaltung, zusätzlich zu dem Flußdiagramm aus Fig. 1, darstellt. Fig. 2 stellt Abschnitte eines ersten Blocks 2 und eines zweiten Blocks 6 dar, die beabsichtigt sind, um zwei Blöcke aufzuweisen, die durch den Ausführungsbeispielsschritt des Unterteilens der integrierten Schaltung in eine Mehrzahl von Blöcke (Block 102) erzeugt wurden. Es ist ersichtlich, daß die beiden Blöcke 2 und 6 nur zur Bequemlichkeit dargestellt wurden, und daß in der Praxis die Anzahl erzeugter Blöcke von zwei bis zu Tausenden, Hunderttausenden, Millionen oder mehr reichen kann. Der globale Pfad vier verbindet die beiden Blöcke 2 und 6.
- In einem zusätzlichen Schritt des Verfahrensausführungsbeispiels wird jeder der Blöcke durch ein Reduzieren der Details von Informationen hinsichtlich der Verzögerung komprimiert (Block 104). Insbesondere wird eine repräsentative Verzögerung unter Verwendung der einzelnen Leitungsverzögerungen und Gatterverzögerungen entlang interner Pfade berechnet, um die Menge von Details zu reduzieren, die mit dem Block vorgelegt werden. Als Beispiel wird Bezug auf Fig. 3 genommen, die einen Abschnitt der Schaltung aus Fig. 2 detaillierter zeigt. Insbesondere sind Latche 8 und 12 dargestellt, wobei der Pfad 10, der die Latche verbindet, detaillierter gezeigt ist. Die Latche 8 und 12 können Transistoren, wie z. B. Feldeffekttransistoren (FET), oder dergleichen aufweisen, und können mit einem Taktsignal (CLK) verbunden sein. Der Pfad 10 weist eine Mehrzahl von Widerständen 30 und Kondensatoren 32 auf, wobei jeder derselben einzelne Verzögerungen aufweist, die denselben zugeordnet sind. Gatter sind ebenfalls entlang des Pfades verteilt, einschließlich des Invertier-Gatters 34, des NAND-Gatters 36 und des NOR-Gatters 38.
- Die Komponenten sind entlang der Länge des Pfades 10 verteilt, um Informationen hinsichtlich dessen zu liefern, wo der Widerstand/Kapazität und Gatter anzutreffen sind. Jede der einzelnen Verzögerungen, die dem leitenden Medieriträger zugeordnet sind, wie z. B. Metallschichten, den einzelnen Kondensatoren und Widerständen, kann als eine Leitungsverzögerung kategorisiert werden. Die Verzögerung, die den Gattern 34-38 zugeordnet ist, wird als Gatterverzögerung kategorisiert. Es ist ersichtlich, daß ein Widerstandswert dem leitenden Medium selbst zugeordnet ist, das die Latche 8 und 12 verbindet, und daß dieser Widerstandswert als einer der dargestellten Widerstände 30 dargestellt werden kann. Außerdem weist jedes der Latche 8 und 12 einzelne Gatterverzögerungen auf, die denselben zugeordnet sind.
- Das Verfahrensausführungsbeispiel 100 weist ein Komprimieren der für jeden Block erforderlichen Datenmenge durch den Schritt eines Berechnens einer repräsentativen Pfadverzögerung unter Verwendung der einzelnen Gatter- und/oder Leitungsverzögerungen auf (Block 104). Die vorliegende Erfindung betrachtet eine Anzahl unterschiedlicher Verfahren zum Berechnen dieser repräsentativen Verzögerung. Die einzelnen Komponenten der Leitungsverzögerung z. B. können summiert werden und dann zu dem summierten Gesamtwert der Gatterverzögerungen addiert werden, mit dem Ergebnis, daß ein einzelner Verzögerungswert jedem Pfad zugewiesen werden kann. Ferner können die Gatter, die die Latche bilden, in Leitungsverzögerungsberechnungen eingeschlossen werden. Es sei denn, es ist anderweitig spezifiziert, sollte der Ausdruck "Pfadverzögerung", wie er hier verwendet wird, allgemein interpretiert werden, um sich auf die Gesamtverzögerung zu beziehen, auf die ein Signal trifft, wenn es sich durch alle angetroffenen Komponenten ausbreitet.
- Zusätzlich zu einem Komprimieren der Blockdaten durch ein Bestimmen repräsentativer Verzögerungsdaten können Verfahrensausführungsbeispiele der Erfindung ferner Schritte eines Bestimmens, welche Latche zum Modellieren einer globalen Transparenz erforderlich sind (Fig. 1, Block 106), und eines Entfernens aller unnötiger Latche (Block 108) aufweisen. Fig. 4 stellt ein exemplarisches Verfahrensausführungsbeispiel 150 zum Erzielen dieser Aufgaben dar.
- Allgemein modelliert dieses Ausführungsbeispiel 150 ein Signal, wenn es sich durch einen Block und Latche im Inneren des Blocks ausbreitet. Es wird angemerkt, daß der Ausdruck "ausbreitet", wie er hierin verwendet wird, wenn er in diesem Kontext verwendet wird, beabsichtigt ist, um sich allgemein auf eine Kommunikation des Signals entlang eines oder mehrerer Pfade und Latche zu beziehen. Das Ausführungsbeispiel 150 modelliert die Zeitgebung des Signals, wenn es sich ausbreitet, und berechnet die Zeit, zu der das Signal an bestimmten Latchen ankommt. Diese Ankunftszeiten werden mit der "Startzeit" verglichen, bei der das Latch in einen "An"-Zustand kommt, bis ein Latch bei einer Latch-Ankunftszeit erreicht wird, die früher als die An-Zeit ist. Dieses Latch wird bestimmt, um das letzte Latch zu sein, das zum Modellieren einer Transparenz erforderlich ist, wobei alle nachfolgenden Latche entfernt werden können.
- Im Folgenden wird zusätzlich zu dem Schema aus Fig. 2 für eine detailliertere Darstellung des Ausführungsbeispiels 150 aus Fig. 4 mittels eines Beispiels Bezug auf die Tabellen 1(a) und 1(b) unten genommen. In einer weiteren Darstellung des exemplarischen Ausführungsbeispiels 150 sind außerdem die folgenden Definitionen vorgesehen:
Latch-An-Zustand:
Latchbetriebszustand, bei dem Signale durch das Latch gelangen (z. B. Latchschalter in geschlossener Position für eine durchgehende Schaltung durch das Latch)
Latch-Aus-Zustand:
Gegenteil des An-Zustandes; in dem Aus-Zustand gelangen Signale nicht durch das Latch (z. B. Latchschalter in einer offenen Position, so daß die Schaltung durch das Latch unterbrochen ist)
Latch-Startzeit:
Zeit, zu der ein An-Zustand des Latches beginnt
Latch-Endzeit:
Zeit, zu der der An-Zustand des Latches endet und den Aus-Zustand beginnt (z. B. verbleibt ein pegelgesteuertes Latch von einer Startzeit, zu der der Auslösepegel erstmals erfaßt wird, bis zu einer Endzeit, zu der der Auslösepegel aufhört, in einem An-Zustand; An- Zustand existiert während eines "Zeitgebungsfensters" zwischen der Latch-Startzeit und der Latch- Endzeit; ähnlich kann ein flankengesteuertes Latch gesetzt sein, um einen An-Zustand bei der Erfassung einer vorauseilenden Flanke eines Hoch-Signals zu beginnen und in einem An-Zustand zu verbleiben, bis eine abfallende Flanke erfaßt wird)
Latchsignalankunftszeit:
Zeit, zu der das Signal an dem jeweiligen Latch erstmals empfangen wird ("ankommt") Tabelle 1(a) Beispiel-Latchdaten für Fig. 2
Tabelle 1(b) Beispiel-Latchdaten für Fig. 2
- Das darstellende Beispiel zum Ausführen des exemplarischen Ausführungsbeispiels 150 beginnt durch ein Setzen einer Erstes-Latch-Ankunftszeit gleich der Latch-Endzeit für das erste Latch 8 des Blocks 6 (Block 152). Der Ausdruck "erstes Latch" ist beabsichtigt, um sich auf das anfängliche Latch in einem Block zu beziehen, das ein globales eingehendes Signal empfängt. Ein Setzen der Latchsignalankunftszeit gleich der Erstes-Latch-Signalendzeit nimmt in der Hauptsache eine konservative Schätzung der Ankunftszeit zum Modellieren an. Bezug nehmend auf die Tabelle 1(a) wird diese Ankunftszeit dadurch auf 1,8 gesetzt. Wie dies für Fachleute auf diesem Gebiet ersichtlich ist, kann die Zeit in Einheiten von Millisekunden, Mikrosekunden oder einem anderen Faktor von Sekunden ausgedrückt werden, oder kann sich einfach auf einen relativen Standard, wie z. B. Taktsignal-"-Zyklen" oder dergleichen beziehen. Zu Zwecken des vorliegenden darstellenden Beispiels sind die bestimmten Einheiten nicht wichtig.
- Die Latchsignalankunftszeit wird nachfolgend für das nächste Latch bestimmt (Block 154). Dies bedeutet, daß die Zeit, zu der das Signal an dem Latch 12 ankommt, bestimmt wird. Dies wird durch ein Addieren der Pfadverzögerungszeit über den Pfad 10 zu der Latchsignalankunftszeit von dem Latch 8 erzielt. Bezug nehmend auf die Tabellen 1(a) und (b) wird eine Latchsignalankunftszeit für das Latch 12 dadurch auf 2,3 berechnet. Es wird angemerkt, daß zu Zwecken des vorliegenden Beispiels die Pfadverzögerungszeiten aus Tabelle 1(b) als ein repräsentativer Einzelverzögerungswert angenommen wird, der alle Leitungsverzögerungen und Gatterverzögerungen beinhaltet.
- Die Verfahrensschritte 150 weisen als nächstes den Schritt eines Vergleichens der Latchsignalankunftszeit mit der Latchstartzeit auf (Block 156). Wenn bestimmt wird, daß die Ankunftszeit früher als die Latch-An-Zeit ist (Block 158), wird das Latch als das letzte Latch gesetzt (Block 160), wobei alle nachfolgenden Latche als nicht notwendig zum Modellieren einer globalen Zeitgebung aus dem Block entfernt werden (Block 162). Wenn die Ankunftszeit nicht früher als die Latch-Startzeit ist, wird das nächste stromabwärts gelegene Latch analysiert (Block 159). Allgemein treffen diese Schritte eine Entscheidung hinsichtlich dessen, ob ein Signal an einem bestimmten Latch ankommt, bevor der Latch-An-Zustand begonnen hat. Falls dies der Fall ist, wird das Signal nicht unmittelbar durch das Latch übertragen, sondern muß statt dessen auf den An-Zustand "warten" (z. B. auf die Latch-Startzeit warten, bevor fortgefahren wird). Wenn das Signal während des Latch-An- Zustandes ankommt (z. B. nach der Latch-Startzeit), wird dasselbe natürlich unmittelbar stromabwärts kommuniziert.
- In zusätzlichen Schritten dieses Erfindungsausführungsbeispiels wird das Auftreten eines Signals berücksichtigt, das nach der Latch-Endzeit ankommt (z. B. nach einem "Fenster" ankommt, das geschlossen wird, wenn das Latch in einem Aus- Zustand ist). Insbesondere wird, wenn bestimmt wird, daß die Ankunftszeit nach der Endzeit ist (Block 164), die Ankunftszeit gleich der Latch-Endzeit gesetzt (Block 166). Tatsächlich wird die Ankunftszeit einer "Rück-Verschiebung" ("Slide Back") unterzogen. Diese Rückverschiebung wird dahingehend als akzeptabel erachtet, daß das Ausführungsbeispiel eine bestimmte Zeitgebungs-"Pufferzeit" aufweist, um daraus zu profitieren, daß es die anfängliche Ankunftszeit in dem Block konservierend gleich der Endzeit des ersten Latches setzt. Zusätzliche Latche werden dann analysiert (Blöcke 168, 154-158).
- Bezug nehmend auf die Tabellen 1(a) und (b) ist die Latchsignalankunftszeit für das Latch 12 von 2,3 größer als die Latch-Startzeit von 1,9 und kleiner als die Endzeit von 2,5, so daß die Schritte 150 mit einer Analyse des nächsten stromabwärts gelegenen Latches fortfahren (Blöcke 156, 158 und 159). Folglich wird eine Latchsignalankunftszeit von 3, für das Latch 16 durch ein Addieren der Pfadverzögerung von 0,7 zu der Latchsignalankunftszeit von 2,3 für das Latch 12 berechnet (Block 156). Diese Latchsignalankunftszeit wird mit der Latch-Startzeit von 2,7 verglichen (Block 156) und als später bestimmt (Block 158). Die Ankunftszeit wird dann mit der Endzeit von 3 verglichen (Block 164). Folglich wird das nächste Latch geprüft (Block 168).
- Eine Latchsignalankunftszeit von 3,2 wird für das Latch 20 berechnet (Block 154). Wenn die Ankunftszeit mit der Latch- Startzeit von 3,3 verglichen wird (Block 156), wird dieselbe bestimmt, um früher als die Startzeit zu sein (Block 158). Als ein Ergebnis wird das Latch 20 als das "letzte Latch" gesetzt (Block 160), wobei alle nachfolgenden stromabwärts gelegenen Latche aus dem Block entfernt werden (Block 162). Es wird angemerkt, daß Latche, die einen globalen Pfad aufweisen, nicht entfernt werden, selbst dann nicht, wenn sie stromabwärts von dem letzten Latch sind. Latche, die globale Pfade aufweisen, werden natürlich zur globalen Zeitgebungsmodellierung benötigt.
- Vorzugsweise tritt das Entfernen interner Latche erst auf, nachdem alle eingehenden globalen Pfade für einen Block bewertet wurden. Insbesondere wird ein "letztes" Latch für jedes eingehende globale Signal bestimmt, wenn es sich über verschiedene aufeinanderfolgende Pfade und Latche in den Block ausbreitet. Nachdem alle letzten Latche für jedes eingehende globale Signal bestimmt wurden, das sich durch den Block ausbreitet, werden alle verbleibenden internen Blöcke stromabwärts von allen letzten Latchen entfernt.
- Das Ausführungsbeispiel 150 resultiert in einem Blockmodell, das ein wesentlich komprimiertes Format aufweist, um im wesentlichen reduzierte Speicher- und Verarbeitungsanforderungen zu erzielen. Alles, was in dem Block verbleibt, ist ein Modell einer "Grenzzone" von Latchen, die potentielle Signale empfangen können, während sie in ihrem An- Zustand sind. Außerdem wird diese Grenzzone mit komprimierten Verzögerungsdaten dargestellt. Diese Grenzzone ermöglicht ein effektives Modellieren einer globalen Transparenz. Folglich haben die Schritte 150 zu der Erzeugung eines komprimierten Modells geführt, das vorzugsweise verkürzte Daten enthält, jedoch ausreichende Details zum Modellieren einer globalen Transparenz behält. Probleme des Stands der Technik werden dadurch gelöst.
- Wieder Bezug nehmend auf Fig. 1 weist ein Verfahrensausführungsbeispiel 100 ferner den Schritt eines Abschneidens der Blöcke auf, um alle eingehenden Pfade zu einem bestimmten Latch bis auf den Pfad zu entfernen, der die größte Verzögerung aufweist (Block 110). Das Abschneiden der internen Pfade kann durch ein Analysieren jedes Latches und jedes internen Pfades, der an dem jeweiligen Latch endet, erzielt werden. Das Abschneiden wird vorzugsweise hinsichtlich der einzelnen Blöcke praktiziert, um nur interne Pfade zu entfernen, und nicht, um globale Pfade zu entfernen. Die Entfernung globaler Pfade hat sich unter einigen Umständen als nachteilig herausgestellt, da u. U. Pfade abgeschnitten werden können, die, obwohl sie nicht die größte Verzögerung aufweisen, trotzdem eine ihnen zugewiesene Verzögerung in einer Menge aufweisen, die im wesentlichen ausreichend ist, um eine globale Zeitgebung zu beeinflussen.
- Viele gegenwärtig verfügbaren IC-Modellierungstools bzw. -werkzeuge, wie z. B. kommerzielle Programmprodukte, ermöglichen kein selektives Abschneiden von nur blockinternen Pfaden gegenüber globalen Pfaden. Folglich weist ein Ausführungsbeispiel der vorliegenden Erfindung zusätzliche Verfahrensschritte auf, die nützlich für ein wirksam "modifizierendes" Praktizieren gegenwärtig verfügbarer Modellierungstools sind, so daß nur blockinterne Pfade abgeschnitten werden.
- Diese Ausführungsbeispielsschritte weisen allgemein ein Identifizieren von Latchen in jedem der Blöcke, die mit mehr als einem eingehenden globalen Pfad verbunden sind, ein Erzeugen eines "Klon"-Latches für jeden der globalen Pfade größer als 1 und ein Verbinden jedes der globalen Pfade größer als 1 mit einem der Klon-Latche auf. Dies bedeutet, daß jedes Latch, das mehr als einen eingehenden globalen Pfad aufweist, alle globalen Pfade aufweist bis auf einen, der entfernt wurde. Jeder der entfernten globalen Pfade wird mit jeweils einem neu erzeugten Klon-Latch verbunden. Als ein Ergebnis endet jeder globale Pfad an einem Latch, das nur einen eingehenden globalen Pfad aufweist. Wenn das Abschneiden ausgeführt wird, wird so kein Pfad entfernt und jeder einzelne globale Pfad wird berücksichtigt.
- Diese Schritte können weiter durch ein Beispiel dargestellt werden. Fig. 5(a) stellt einen Abschnitt einer IC mit drei Blöcken 50, 52 und 54 dar, die alle Latche aufweisen, die einen globalen Pfad zu einem einzelnen Latch 58 bei einem zweiten Block 56 senden. Folglich weist das Latch 58 drei eingehende globale Pfade auf. Das Abschneiden durch die Ausführungsbeispielsschritte der Erfindung fährt durch ein erstes Identifizieren des Latches 58 fort, das mehr als einen eingehenden globalen Pfad aufweist. Bei einem zusätzlichen Schritt wird ein Klon-Latch für jeden eingehenden globalen Pfad größer als 1 erzeugt. Fig. 5(b) stellt Klon- Latche 60 und 62 dar, die erzeugt wurden. Ein nachfolgender Ausführungsbeispielsschritt weist ein Entfernen jeweils eines der eingehenden globalen Pfade größer als 1 aus dem Latch 58 und ein Anbringen jeweils eines derselben an jeweils eines der erzeugten Klon-Latche auf. Dieses Ergebnis ist in dem Schema aus Fig. 5(b) gezeigt, bei dem jedes Latch 58, 60 und 62 einen eingehenden globalen Pfad aufweist, der mit denselben verbunden ist, wobei kein Latch mehr als einen eingehenden globalen Pfad aufweist.
- Es wird angemerkt, daß "Klon-Latche", wie sie hierin verwendet werden, beabsichtigt sind, um sich auf virtuelle oder anderweitig nicht physisch existierende Latche zu beziehen, die nützlich zu Modellierungszwecken sind, jedoch kein tatsächliches physisches Gegenstück in der IC aufweisen. Die Klon-Latche 60 und 62 können betrachtet werden, um stromabwärts mit dem ursprünglichen Latch 58 über einen Pfad verbunden zu sein, der zu Modellierungszwecken eine Null-Verzögerung aufweist, mit dem Ergebnis, daß an dem Klon-Latch 60 oder 62 empfangene Signale stromabwärts konsistent damit modelliert werden, daß sie an dem ursprünglichen Latch 58 empfangen wurden.
- Für Fachleute auf diesem Gebiet ist es ersichtlich, daß die vorliegende Erfindung gut für eine Praktizierung in der Form eines Computerprogrammproduktes geeignet ist. Folglich weisen Ausführungsbeispiele der vorliegenden Erfindung Computerprogrammprodukte auf, die computerausführbare Instruktionen aufweisen, die in ein computerlesbares Medium eingebettet sind, die, wenn sie ausgeführt werden, bewirken, daß ein Computer die Schritte der Verfahrensausführungsbeispiele der Erfindung ausführt. Es ist deshalb ersichtlich, daß eine Besprechung, die hierin Bezug nehmend auf Verfahrensausführungsbeispiele der Erfindung gemacht wird, gleichermaßen auf Programmproduktausführungsbeispiele zutreffen kann, wobei es ersichtlich ist, daß die Verfahrensschritte durch einen Computer ausgeführt werden können, der ein Programmprodukt der Erfindung ausführt.
- Für Fachleute auf diesem Gebiet ist es ersichtlich, daß Computerprogrammproduktausführungsbeispiele computerlesbare Instruktionen aufweisen können, die unter Verwendung von Programmiersprachen erzeugt wurden, wie z. B.. Fortran, Visual Basic, C++, Perl, SGML und dergleichen, die zusammengestellt wurden oder anderweitig in einem maschinenlesbaren Format existieren. Diese Instruktionen können in ein computerlesbares Medium eingebettet sein, das beispielhaft magnetische oder optische Medien, wie z. B. Platten und dergleichen, aufweisen kann. Es ist ebenfalls ersichtlich, daß Computerprogrammprodukte der Erfindung Computer- oder Kommunikationsnetze verwenden können, wobei ein Beispiel das Internet ist, so daß dieselben entfernt über ein Netz betreibbar sein können. Bei derartigen Fällen kann ein Programmproduktausführungsbeispiel eine Internetprotokoll- Funktionsfähigkeit aufweisen.
- Es wird darauf verwiesen, daß der Ausdruck "Computer", wie er hierin verwendet wird, beabsichtigt ist, um sich allgemein auf prozessorbasierte Vorrichtungen zu beziehen, die in der Lage sind, computerlesbare Instruktionen auszuführen. Ein "Computer", wie er hierin verwendet wird, ist deshalb nicht auf Tischcomputer, Laptop-Computer, Hauptcomputer und dergleichen beschränkt, sondern kann auch Vorrichtungen aufweisen, wie z. B. zweckgebundene Schaltungstestvorrichtungen und dergleichen.
- Für Fachleute auf diesem Gebiet ist es ersichtlich, daß die vorliegende Erfindung nicht auf die hierin beschriebenen und erläuterten bestimmten Ausführungsbeispiele beschränkt ist. Tatsächlich erweist sich die vorliegende Erfindung in einer breiten Vielzahl von Anwendungen, die nicht hierin beschrieben und erläutert sind, als wertvoll. Als ein Beispiel wird darauf verwiesen, daß die vorliegende Erfindung nicht auf die Praktizierung in der Form eines Verfahrens und/oder Programmproduktes eingeschränkt ist, das darauf beschränkt ist, Zeitgebungsanalysen von ICs auszuführen.
Claims (20)
1. Verfahren zum Herstellen eines Integrierte-Schaltung-
Modells für eine integrierte Schaltung, mit folgenden
Schritten:
Unterteilen (102) der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von einem zweiten der Mehrzahl von Blöcken verbunden ist; und
Komprimieren (104) jedes der Blöcke durch ein Entfernen aller Latche von jedem der Blöcke, die nicht zum Modellieren einer globalen Transparenz erforderlich sind.
Unterteilen (102) der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von einem zweiten der Mehrzahl von Blöcken verbunden ist; und
Komprimieren (104) jedes der Blöcke durch ein Entfernen aller Latche von jedem der Blöcke, die nicht zum Modellieren einer globalen Transparenz erforderlich sind.
2. Verfahren zum Herstellen eines Integrierte-Schaltung-
Modells gemäß Anspruch 1, bei dem jeder der Blöcke
eine Mehrzahl von Latchen aufweist, wobei jedes
derselben einen An-Zustand aufweist, der zwischen einer
Latch-Startzeit und einer Latch-Endzeit definiert ist,
wobei zumindest ein erstes der Latche mit einem
eingehenden globalen Pfad verbunden ist, und wobei der
Schritt eines Entfernens (108) von Latchen aus jedem
der Blöcke, die nicht zum Modellieren einer globalen
Transparenz erforderlich sind, folgende Schritte
aufweist:
Zuweisen (152) einer Erstes-Latch-Signalankunftszeit für ein eingehendes globales Signal gleich der Erstes- Latch-Endzeit;
Bestimmen (154) einer Signalankunftszeit für andere der Latche, wenn sich das Signal durch den Block ausbreitet;
Vergleichen (156) der Signalankunftszeit für jeweilige der Latche mit den Latch-Startzeiten für die jeweiligen der Latche, bis ein letztes Latch gefunden wird, das eine Latch-Startzeit aufweist, die später als eine Latch-Ankunftszeit für das letzte Latch ist; und
Entfernen aller Latche aus dem Block, die stromabwärts von dem letzten Latch sind, mit der Ausnahme von Latchen, die mit einem globalen Pfad verbunden sind.
Zuweisen (152) einer Erstes-Latch-Signalankunftszeit für ein eingehendes globales Signal gleich der Erstes- Latch-Endzeit;
Bestimmen (154) einer Signalankunftszeit für andere der Latche, wenn sich das Signal durch den Block ausbreitet;
Vergleichen (156) der Signalankunftszeit für jeweilige der Latche mit den Latch-Startzeiten für die jeweiligen der Latche, bis ein letztes Latch gefunden wird, das eine Latch-Startzeit aufweist, die später als eine Latch-Ankunftszeit für das letzte Latch ist; und
Entfernen aller Latche aus dem Block, die stromabwärts von dem letzten Latch sind, mit der Ausnahme von Latchen, die mit einem globalen Pfad verbunden sind.
3. Verfahren zum Herstellen eines Integrierte-Schaltung-
Modells gemäß Anspruch 2, bei dem jedes der Latche in
jedem der Blöcke mit anderen der Latche in dem
jeweiligen Block durch interne Pfade verbunden ist, die
eine Pfadverzögerung aufweisen, und bei dem der Schritt
des Bestimmens einer Latchsignalankunftszeit ein
Hinzufügen der Pfadverzögerungszeit für den Pfad zwischen
einem vorherigen der Latche und einem nächsten der
Latche zu der Latch-Ankunftszeit für das vorherige der
Latche aufweist, um die Latchsignalankunftszeit für
das nächste der Latche zu bestimmen.
4. Verfahren zum Herstellen eines Integrierte-Schaltung-
Modells gemäß Anspruch 2 oder 3, wobei das Verfahren
ferner den Schritt eines Einstellens der Latch-
Ankunftszeit gleich der Latch-Endzeit für eines oder
mehrere der Latche aufweist, bei denen bestimmt wurde,
daß eine Latch-Ankunftszeit nach der Latch-Endzeit
ist.
5. Verfahren zum Herstellen eines Integrierte-Schaltung-
Modells gemäß einem der Ansprüche 1 bis 4, bei dem
jedes der Latche in jedem der Blöcke zumindest einen
internen Pfad aufweist, der mit anderen der Latche in
dem Block verbunden ist, und wobei das Verfahren
ferner den Schritt eines Bestimmens einer repräsentativen
Pfadverzögerung für jeden der internen Pfade durch ein
Summieren der Gatterverzögerungen und der
Leitungsverzögerungen entlang jedes der Pfade aufweist.
6. Verfahren zum Herstellen eines Integrierte-Schaltung-
Modells gemäß einem der Ansprüche 1 bis S. bei dem die
zumindest einigen der Latche eingehende interne Pfade
aufweisen, wobei die eingehenden internen Pfade eine
Pfadverzögerung aufweisen, und wobei das Verfahren
ferner den Schritt eines Abschneidens der Blöcke durch
ein Entfernen aller eingehenden internen Pfade für
jedes der Latche in jedem der Blöcke mit Ausnahme des
eingehenden internen Pfades aufweist, der die größte
Pfadverzögerung aufweist.
7. Verfahren zum Herstellen eines Integrierte-Schaltung-
Modells gemäß einem der Ansprüche 1 bis 6, das ferner
folgende Schritte aufweist:
Identifizieren der Latche in jedem der Blöcke, die mit mehr als einem eingehenden globalen Pfad verbunden sind; und
Erzeugen eines Klon-Latches für jeden der eingehenden globalen Pfade größer als 1 für jedes der identifizierten Latche, Bewegen eines der eingehenden globalen Pfade von jedem der identifizierten Latche zu einem der Klon-Latche, wodurch jedes der identifizierten Latche und jedes der Klon-Latche mit einem eingehenden globalen Pfad verbunden wird.
Identifizieren der Latche in jedem der Blöcke, die mit mehr als einem eingehenden globalen Pfad verbunden sind; und
Erzeugen eines Klon-Latches für jeden der eingehenden globalen Pfade größer als 1 für jedes der identifizierten Latche, Bewegen eines der eingehenden globalen Pfade von jedem der identifizierten Latche zu einem der Klon-Latche, wodurch jedes der identifizierten Latche und jedes der Klon-Latche mit einem eingehenden globalen Pfad verbunden wird.
8. Verfahren zum Herstellen eines Integrierte-Schaltung-
Modells gemäß Anspruch 7, wobei das Verfahren ferner
den Schritt eines Abschneidens des Integrierte-
Schaltung-Modells durch ein Entfernen aller
eingehenden Pfade mit Ausnahme des Pfades, der die größte
Verzögerung aufweist, aus dem Latch aufweist.
9. Verfahren zum Herstellen eines Integrierte-Schaltung-
Zeitgebungsmodells zum Modellieren einer globalen
Transparenz, mit folgenden Schritten:
Unterteilen der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von einem zweiten der Mehrzahl von Blöcken verbunden ist, wobei jedes der Latche in jedem der Blöcke zumindest einen internen Pfad aufweist, der mit anderen der Latche in dem Block verbunden ist, und wobei jeder der internen Pfade eine Gatterverzögerung und eine Leitungsverzögerung aufweist;
Summieren der Gatterverzögerungen und der Leitungsverzögerungen für jeden der Pfade, um eine Pfadverzögerung für jeden der internen Pfade zu bestimmen;
Entfernen von Latchen aus jedem der Blöcke, die nicht für ein Modellieren einer globalen Transparenz benötigt werden; und
Abschneiden der Blöcke durch ein Entfernen aller eingehenden internen Pfade für jedes der Latche in jedem der Blöcke mit Ausnahme des eingehenden Pfades, der zu der größten Pfadverzögerung führt.
Unterteilen der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von einem zweiten der Mehrzahl von Blöcken verbunden ist, wobei jedes der Latche in jedem der Blöcke zumindest einen internen Pfad aufweist, der mit anderen der Latche in dem Block verbunden ist, und wobei jeder der internen Pfade eine Gatterverzögerung und eine Leitungsverzögerung aufweist;
Summieren der Gatterverzögerungen und der Leitungsverzögerungen für jeden der Pfade, um eine Pfadverzögerung für jeden der internen Pfade zu bestimmen;
Entfernen von Latchen aus jedem der Blöcke, die nicht für ein Modellieren einer globalen Transparenz benötigt werden; und
Abschneiden der Blöcke durch ein Entfernen aller eingehenden internen Pfade für jedes der Latche in jedem der Blöcke mit Ausnahme des eingehenden Pfades, der zu der größten Pfadverzögerung führt.
10. Verfahren zum Herstellen eines Integrierte-Schaltung-
Zeitgebungsmodells, mit folgenden Schritten:
Unterteilen der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von einem zweiten der Mehrzahl von Blöcken verbunden ist, wobei jedes der Latche in jedem der Blöcke zumindest einen internen Pfad aufweist, der mit anderen der Latche in dem Block verbunden ist, wobei jeder der internen Pfade eine Gatterverzögerung aufweist, wobei jeder der internen Pfade eine Leitungsverzögerung aufweist, wobei eine Mehrzahl der Latche von jedem der Blöcke einen An-Zustand aufweist, der zwischen einer Latch-Startzeit und einer Latch-Endzeit definiert ist, und wobei zumindest ein erstes der Latche mit einem eingehenden globalen Pfad verbunden ist;
Komprimieren jedes der Blöcke durch ein Berechnen einer repräsentativen Pfadverzögerung für jeden Pfad unter Verwendung der Gatterverzögerungen und der Leitungsverzögerungen;
Entfernen von Latchen aus jedem der Blöcke, die nicht für ein Modellieren einer globalen Transparenz benötigt werden, durch ein Zuweisen einer Erstes-Latch- Ankunftszeit für ein eingehendes globales Signal für jeden der Blöcke, Bestimmen einer Signalankunftszeit für die Latche, wenn sich das Signal durch jeden der Blöcke ausbreitet, Vergleichen der Signalankunftszeit für jeweilige der Latche mit Latch-Startzeiten für die jeweiligen der Latche, bis ein letztes Latch gefunden wird, das eine Latch-Startzeit aufweist, die später als die Signalankunftszeit für das letzte Latch ist, und Entfernen aller Latche in jedem der Blöcke, die stromabwärts von dem letzten Latch sind, mit Ausnahme von Latchen, die mit einem globalen Pfad verbunden sind;
Abschneiden der Blöcke durch ein Entfernen aller eingehenden internen Pfade für jedes der Latche in jedem der Blöcke mit Ausnahme des eingehenden Pfades, der zu der größten Pfadverzögerung führt;
Identifizieren der Latche in jedem der Blöcke, die mit mehr als einem eingehenden globalen Pfad verbunden sind; und
Erzeugen eines Klon-Latches für jeden der eingehenden globalen Pfade größer als 1 für jedes der identifizierten Latche, Bewegen eines der eingehenden globalen Pfade von jedem der identifizierten Latche zu einem der Klon-Latche, wodurch jedes der identifizierten Latche und jedes der Klon-Latche mit einem eingehenden globalen Pfad verbunden wird.
Unterteilen der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von einem zweiten der Mehrzahl von Blöcken verbunden ist, wobei jedes der Latche in jedem der Blöcke zumindest einen internen Pfad aufweist, der mit anderen der Latche in dem Block verbunden ist, wobei jeder der internen Pfade eine Gatterverzögerung aufweist, wobei jeder der internen Pfade eine Leitungsverzögerung aufweist, wobei eine Mehrzahl der Latche von jedem der Blöcke einen An-Zustand aufweist, der zwischen einer Latch-Startzeit und einer Latch-Endzeit definiert ist, und wobei zumindest ein erstes der Latche mit einem eingehenden globalen Pfad verbunden ist;
Komprimieren jedes der Blöcke durch ein Berechnen einer repräsentativen Pfadverzögerung für jeden Pfad unter Verwendung der Gatterverzögerungen und der Leitungsverzögerungen;
Entfernen von Latchen aus jedem der Blöcke, die nicht für ein Modellieren einer globalen Transparenz benötigt werden, durch ein Zuweisen einer Erstes-Latch- Ankunftszeit für ein eingehendes globales Signal für jeden der Blöcke, Bestimmen einer Signalankunftszeit für die Latche, wenn sich das Signal durch jeden der Blöcke ausbreitet, Vergleichen der Signalankunftszeit für jeweilige der Latche mit Latch-Startzeiten für die jeweiligen der Latche, bis ein letztes Latch gefunden wird, das eine Latch-Startzeit aufweist, die später als die Signalankunftszeit für das letzte Latch ist, und Entfernen aller Latche in jedem der Blöcke, die stromabwärts von dem letzten Latch sind, mit Ausnahme von Latchen, die mit einem globalen Pfad verbunden sind;
Abschneiden der Blöcke durch ein Entfernen aller eingehenden internen Pfade für jedes der Latche in jedem der Blöcke mit Ausnahme des eingehenden Pfades, der zu der größten Pfadverzögerung führt;
Identifizieren der Latche in jedem der Blöcke, die mit mehr als einem eingehenden globalen Pfad verbunden sind; und
Erzeugen eines Klon-Latches für jeden der eingehenden globalen Pfade größer als 1 für jedes der identifizierten Latche, Bewegen eines der eingehenden globalen Pfade von jedem der identifizierten Latche zu einem der Klon-Latche, wodurch jedes der identifizierten Latche und jedes der Klon-Latche mit einem eingehenden globalen Pfad verbunden wird.
11. Computerprogrammprodukt zum Modellieren einer
integrierten Schaltung, das computerausführbare
Instruktionen aufweist, die in einem computerlesbaren Medium
gespeichert sind, die, wenn sie ausgeführt werden,
bewirken, daß ein Computer folgende Schritte durchführt:
Unterteilen (102) der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von einem zweiten der Mehrzahl von Blöcken verbunden ist, und wobei jedes der Latche in jedem der Blöcke zumindest einen internen Pfad aufweist, der mit anderen der Latche in dem Block verbunden ist; und
Komprimieren jedes der Blöcke durch ein Entfernen aller Latche, die nicht für ein Modellieren einer globalen Transparenz benötigt werden.
Unterteilen (102) der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von einem zweiten der Mehrzahl von Blöcken verbunden ist, und wobei jedes der Latche in jedem der Blöcke zumindest einen internen Pfad aufweist, der mit anderen der Latche in dem Block verbunden ist; und
Komprimieren jedes der Blöcke durch ein Entfernen aller Latche, die nicht für ein Modellieren einer globalen Transparenz benötigt werden.
12. Computerprogrammprodukt gemäß Anspruch 11, bei dem die
Programminstruktionen, wenn sie ausgeführt werden,
ferner bewirken, daß der Computer folgenden Schritt
durchführt:
Bestimmen einer Pfadverzögerung für jeden der internen Pfade in jedem der Blöcke durch ein Summieren von Gatter- und Leitungsverzögerungen entlang jeweiliger jedes der internen Pfade.
Bestimmen einer Pfadverzögerung für jeden der internen Pfade in jedem der Blöcke durch ein Summieren von Gatter- und Leitungsverzögerungen entlang jeweiliger jedes der internen Pfade.
13. Computerprogrammprodukt gemäß Anspruch 11 oder 12, bei
dem jeder der Blöcke eine Mehrzahl von Latchen
aufweist, die einen An-Zustand aufweisen, der zwischen
einer jeweiligen Latch-Startzeit und einer jeweiligen
Latch-Endzeit definiert ist, wobei zumindest ein
erstes der Latche mit einem eingehenden globalen Pfad
verbunden ist, und wobei die
Computerprogramminstruktionen, wenn sie bewirken, daß der Computer alle
Latche aus jedem der Blöcke entfernt, die nicht zum
Modellieren einer globalen Transparenz erforderlich
sind, bewirken, daß der Computer folgende Schritte
durchführt:
Zuweisen einer Erstes-Latch-Ankunftszeit für ein eingehendes globales Signal gleich der Erstes-Latch- Endzeit;
Bestimmen einer Signalankunftszeit für die Latche, wenn sich das Signal durch den Block ausbreitet;
Vergleichen der Signalankunftszeit für jeweilige der Latche mit Startzeiten für die jeweiligen der Latche, bis ein letztes Latch gefunden wird, das eine Latch- Startzeit aufweist, die später als eine Latch- Ankunftszeit für das letzte Latch ist; und
Entfernen aller Latche aus dem Block, die stromabwärts von dem letzten Latch sind, mit Ausnahme von Latchen, die mit einem globalen Pfad verbunden sind.
Zuweisen einer Erstes-Latch-Ankunftszeit für ein eingehendes globales Signal gleich der Erstes-Latch- Endzeit;
Bestimmen einer Signalankunftszeit für die Latche, wenn sich das Signal durch den Block ausbreitet;
Vergleichen der Signalankunftszeit für jeweilige der Latche mit Startzeiten für die jeweiligen der Latche, bis ein letztes Latch gefunden wird, das eine Latch- Startzeit aufweist, die später als eine Latch- Ankunftszeit für das letzte Latch ist; und
Entfernen aller Latche aus dem Block, die stromabwärts von dem letzten Latch sind, mit Ausnahme von Latchen, die mit einem globalen Pfad verbunden sind.
14. Computerprogrammprodukt gemäß Anspruch 13, bei dem
jeder der internen Pfade eine Pfadverzögerung
aufweist, und bei dem bei einem Bewirken dessen, daß der
Computer eine Signalankunftszeit für ein nächstes der
Latche bestimmt, die Computerprogramminstruktionen,
wenn sie ausgeführt werden, bewirken, daß der Computer
die Pfadverzögerungszeit für einen Pfad von einem
vorherigen der Latche zu dem nächsten der Latche zu der
Signalankunftszeit für das vorherige Latch addiert.
15. Computerprogrammprodukt gemäß einem der Ansprüche 11
bis 14, bei dem die Computerprogramminstruktionen,
wenn sie ausgeführt werden, ferner bewirken, daß der
Computer folgenden Schritt durchführt:
Abschneiden der Blöcke durch ein Entfernen aller eingehenden internen Pfade für jedes der Latche in jedem der Blöcke mit Ausnahme des eingehenden Pfades, der zu der größten Pfadverzögerung führt.
Abschneiden der Blöcke durch ein Entfernen aller eingehenden internen Pfade für jedes der Latche in jedem der Blöcke mit Ausnahme des eingehenden Pfades, der zu der größten Pfadverzögerung führt.
16. Computerprogrammprodukt gemäß einem der Ansprüche 11
bis 15, bei dem die Computerprogramminstruktionen,
wenn sie ausgeführt werden, ferner bewirken, daß der
Computer folgende Schritte durchführt:
Identifizieren der Latche in jedem der Blöcke, die mit mehr als einem eingehenden globalen Pfad verbunden sind;
Erzeugen eines Klon-Latches für jeden der eingehenden globalen Pfade größer als 1 für jedes der identifizierten Latche, Bewegen eines der eingehenden globalen Pfade von jedem der identifizierten Latche zu einem der Klon-Latche, wodurch jedes der identifizierten Latche und jedes der Klon-Latche mit einem eingehenden globalen Pfad verbunden wird; und
Abschneiden des Integrierte-Schaltung-Modells durch ein Entfernen aller eingehenden Pfade zu jedem Latch mit Ausnahme des Pfades, der die größte Verzögerung aufweist.
Identifizieren der Latche in jedem der Blöcke, die mit mehr als einem eingehenden globalen Pfad verbunden sind;
Erzeugen eines Klon-Latches für jeden der eingehenden globalen Pfade größer als 1 für jedes der identifizierten Latche, Bewegen eines der eingehenden globalen Pfade von jedem der identifizierten Latche zu einem der Klon-Latche, wodurch jedes der identifizierten Latche und jedes der Klon-Latche mit einem eingehenden globalen Pfad verbunden wird; und
Abschneiden des Integrierte-Schaltung-Modells durch ein Entfernen aller eingehenden Pfade zu jedem Latch mit Ausnahme des Pfades, der die größte Verzögerung aufweist.
17. Computerprogrammprodukt zum Modellieren einer
integrierten Schaltung, das computerausführbare
Instruktionen aufweist, die auf einem computerlesbaren Medium
gespeichert sind, die, wenn sie ausgeführt werden,
bewirken, daß ein Computer folgende Schritte durchführt:
Unterteilen der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von Einem zweiten der Mehrzahl von Blöcken verbunden ist, wobei jedes der Latche in jedem der Blöcke zumindest einen internen Pfad aufweist, der mit anderen der Latche in dem Block verbunden ist, wobei jeder der Pfade eine Gatterverzögerung gleich der Summe der Verzögerungen für alle Gatter entlang des Pfades aufweist, wobei jeder der internen Pfade eine Leitungsverzögerung aufweist, und wobei zumindest ein erstes der Latche mit einem eingehenden globalen Pfad verbunden ist; und
Komprimieren jedes der Blöcke durch ein Berechnen einer repräsentativen Pfadverzögerung für jeden Pfad unter Verwendung der Gatterverzögerungen und der Leitungsverzögerungen, Entfernen von Latchen für jeden der Blöcke, die nicht zum Modellieren einer globalen Transparenz erforderlich sind, und Abschneiden der Blöcke durch ein Entfernen aller eingehenden internen Pfade für jedes der Latche in jedem der Blöcke mit Ausnahme des eingehenden Pfades, der zu der größten Pfadverzögerung führt.
Unterteilen der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von Einem zweiten der Mehrzahl von Blöcken verbunden ist, wobei jedes der Latche in jedem der Blöcke zumindest einen internen Pfad aufweist, der mit anderen der Latche in dem Block verbunden ist, wobei jeder der Pfade eine Gatterverzögerung gleich der Summe der Verzögerungen für alle Gatter entlang des Pfades aufweist, wobei jeder der internen Pfade eine Leitungsverzögerung aufweist, und wobei zumindest ein erstes der Latche mit einem eingehenden globalen Pfad verbunden ist; und
Komprimieren jedes der Blöcke durch ein Berechnen einer repräsentativen Pfadverzögerung für jeden Pfad unter Verwendung der Gatterverzögerungen und der Leitungsverzögerungen, Entfernen von Latchen für jeden der Blöcke, die nicht zum Modellieren einer globalen Transparenz erforderlich sind, und Abschneiden der Blöcke durch ein Entfernen aller eingehenden internen Pfade für jedes der Latche in jedem der Blöcke mit Ausnahme des eingehenden Pfades, der zu der größten Pfadverzögerung führt.
18. Computerprogrammprodukt gemäß Anspruch 17, bei dem
jeder der Blöcke eine Mehrzahl von Latchen aufweist,
die einen An-Zustand aufweisen, der zwischen einer
jeweiligen Latch-Startzeit und einer jeweiligen Latch-
Endzeit definiert ist, und wobei die
Computerprogramminstruktionen, wenn sie bewirken, daß der Computer
alle Latche aus jedem der Blöcke entfernt, die nicht zum
Modellieren einer globalen Transparenz erforderlich
sind, bewirken, daß der Computer folgende Schritte
durchführt:
Zuweisen einer Erstes-Latch-Ankunftszeit für ein eingehendes globales Signal gleich der Erstes-Latch- Endzeit;
Bestimmen einer Signalankunftszeit für die Latche, wenn sich das Signal durch den Block ausbreitet;
Vergleichen der Signalankunftszeit für jeweilige der Latche mit Startzeiten für die jeweiligen der Latche, bis ein letztes Latch gefunden wird, das eine Latch- Startzeit aufweist, die später als eine Latch- Ankunftszeit für das letzte Latch ist; und
Entfernen aller Latche aus dem Block, die stromabwärts von dem letzten Latch sind, mit der Ausnahme von Latchen, die mit einem globalen Pfad verbunden sind.
Zuweisen einer Erstes-Latch-Ankunftszeit für ein eingehendes globales Signal gleich der Erstes-Latch- Endzeit;
Bestimmen einer Signalankunftszeit für die Latche, wenn sich das Signal durch den Block ausbreitet;
Vergleichen der Signalankunftszeit für jeweilige der Latche mit Startzeiten für die jeweiligen der Latche, bis ein letztes Latch gefunden wird, das eine Latch- Startzeit aufweist, die später als eine Latch- Ankunftszeit für das letzte Latch ist; und
Entfernen aller Latche aus dem Block, die stromabwärts von dem letzten Latch sind, mit der Ausnahme von Latchen, die mit einem globalen Pfad verbunden sind.
19. Computerprogrammprodukt zum Modellieren einer
integrierten Schaltung gemäß Anspruch 18, bei dem die
Programminstruktionen, wenn sie ausgeführt werden, ferner
bewirken, daß der Computer die Latch-Ankunftszeit
zurück auf die Latch-Endzeit für jedes der Latche
einstellt, bei denen bestimmt wurde, daß sie eine Latch-
Ankunftszeit nach der Latch-Endzeit aufweisen.
20. Computerprogrammprodukt zum Modellieren einer
integrierten Schaltung, das computerausführbare
Instruktionen aufweist, die auf einem computerlesbaren Medium
gespeichert sind, die, wenn sie ausgeführt werden,
bewirken, daß ein Computer folgende Schritte durchführt:
Unterteilen der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von einem zweiten der Mehrzahl von Blöcken verbunden ist, wobei jedes der Latche in jedem der Blöcke zumindest einen internen Pfad aufweist, der mit anderen der Latche in dem Block verbunden ist, wobei jeder der Pfade eine Gatterverzögerung gleich der Summe der Verzögerungen für alle Gatter entlang des Pfades aufweist, wobei jeder der internen Pfade eine Leitungsverzögerung aufweist, und wobei zumindest ein erstes der Latche mit einem eingehenden globalen Pfad verbunden ist; und
Komprimieren jedes der Blöcke durch ein Berechnen einer repräsentativen Pfadverzögerung für jeden Pfad unter Verwendung der Gatterverzögerungen und der Leitungsverzögerungen, Entfernen von Latchen für jeden der Blöcke, die nicht für ein Modellieren einer globalen Transparenz benötigt werden, Abschneiden der Blöcke durch ein Entfernen aller eingehenden internen Pfade für jedes der Latche in jedem der Blöcke mit Ausnahme des eingehenden Pfades, der zu der größten Pfadverzögerung führt, Identifizieren der Latche in jedem der Blöcke, die mit mehr als einem eingehenden globalen Pfad verbunden sind, Erzeugen eines Klon-Latches für jeden der eingehenden globalen Pfade größer als 1 für jedes der identifizierten Latche, Bewegen eines der eingehenden globalen Pfade von jedem der identifizierten Latche zu einem der Klon-Latche, wodurch jedes der identifizierten Latche und jedes der Klon-Latche mit einem eingehenden globalen Pfad verbunden wird.
Unterteilen der integrierten Schaltung in eine Mehrzahl verbundener Blöcke, wobei jeder Block eine Mehrzahl von Latchen aufweist, wobei zumindest eines der Latche auf jedem der Blöcke einen globalen Pfad aufweist, der mit einem Latch von einem zweiten der Mehrzahl von Blöcken verbunden ist, wobei jedes der Latche in jedem der Blöcke zumindest einen internen Pfad aufweist, der mit anderen der Latche in dem Block verbunden ist, wobei jeder der Pfade eine Gatterverzögerung gleich der Summe der Verzögerungen für alle Gatter entlang des Pfades aufweist, wobei jeder der internen Pfade eine Leitungsverzögerung aufweist, und wobei zumindest ein erstes der Latche mit einem eingehenden globalen Pfad verbunden ist; und
Komprimieren jedes der Blöcke durch ein Berechnen einer repräsentativen Pfadverzögerung für jeden Pfad unter Verwendung der Gatterverzögerungen und der Leitungsverzögerungen, Entfernen von Latchen für jeden der Blöcke, die nicht für ein Modellieren einer globalen Transparenz benötigt werden, Abschneiden der Blöcke durch ein Entfernen aller eingehenden internen Pfade für jedes der Latche in jedem der Blöcke mit Ausnahme des eingehenden Pfades, der zu der größten Pfadverzögerung führt, Identifizieren der Latche in jedem der Blöcke, die mit mehr als einem eingehenden globalen Pfad verbunden sind, Erzeugen eines Klon-Latches für jeden der eingehenden globalen Pfade größer als 1 für jedes der identifizierten Latche, Bewegen eines der eingehenden globalen Pfade von jedem der identifizierten Latche zu einem der Klon-Latche, wodurch jedes der identifizierten Latche und jedes der Klon-Latche mit einem eingehenden globalen Pfad verbunden wird.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/059,486 US6996792B2 (en) | 2002-01-29 | 2002-01-29 | Integrated circuit analysis method and program product |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE10300699A1 true DE10300699A1 (de) | 2003-08-14 |
Family
ID=27609811
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE10300699A Withdrawn DE10300699A1 (de) | 2002-01-29 | 2003-01-10 | Analyseverfahren für eine integrierte Schaltung und Programmprodukt |
Country Status (2)
| Country | Link |
|---|---|
| US (2) | US6996792B2 (de) |
| DE (1) | DE10300699A1 (de) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7395524B2 (en) * | 2003-08-28 | 2008-07-01 | International Business Machines Corporation | Method, system and program product providing a configuration specification language having clone latch support |
| US7308664B1 (en) | 2004-02-09 | 2007-12-11 | Altera Corporation | Method and apparatus for utilizing long-path and short-path timing constraints in an electronic-design-automation tool for routing |
| US7207020B1 (en) * | 2004-02-09 | 2007-04-17 | Altera Corporation | Method and apparatus for utilizing long-path and short-path timing constraints in an electronic-design-automation tool |
| US7191419B2 (en) * | 2004-07-22 | 2007-03-13 | International Business Machines Corporation | Method of timing model abstraction for circuits containing simultaneously switching internal signals |
| US7389490B2 (en) | 2004-07-29 | 2008-06-17 | International Business Machines Corporation | Method, system and program product for providing a configuration specification language supporting selective presentation of configuration entities |
| US7386825B2 (en) | 2004-07-29 | 2008-06-10 | International Business Machines Corporation | Method, system and program product supporting presentation of a simulated or hardware system including configuration entities |
| US7334204B2 (en) * | 2005-12-29 | 2008-02-19 | Lsi Logic Corporation | System for avoiding false path pessimism in estimating net delay for an integrated circuit design |
| US8443313B2 (en) | 2010-08-18 | 2013-05-14 | International Business Machines Corporation | Circuit design optimization |
| US8386230B2 (en) | 2010-08-18 | 2013-02-26 | International Business Machines Corporation | Circuit design optimization |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| US5740347A (en) * | 1995-05-01 | 1998-04-14 | Synopsys, Inc. | Circuit analyzer of black, gray and transparent elements |
| US5790830A (en) * | 1995-12-29 | 1998-08-04 | Synopsys, Incorporated | Extracting accurate and efficient timing models of latch-based designs |
| US6378113B1 (en) * | 1999-10-27 | 2002-04-23 | Synopsys, Inc. | Black box transparency in a circuit timing model |
| US6581197B1 (en) * | 2001-08-10 | 2003-06-17 | Hewlett-Packard Development Company, L.P. | Minimal level sensitive timing representative of a circuit path |
-
2002
- 2002-01-29 US US10/059,486 patent/US6996792B2/en not_active Expired - Fee Related
-
2003
- 2003-01-10 DE DE10300699A patent/DE10300699A1/de not_active Withdrawn
-
2005
- 2005-10-27 US US11/261,951 patent/US7370308B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US20060048086A1 (en) | 2006-03-02 |
| US7370308B2 (en) | 2008-05-06 |
| US6996792B2 (en) | 2006-02-07 |
| US20030145298A1 (en) | 2003-07-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3689538T2 (de) | Integrierte Schaltung und Optimierungsverfahren dafür. | |
| DE69718084T2 (de) | Gerät zur Schätzung des Leistungsverbrauchs eines Mikroprozessors | |
| DE69024515T2 (de) | Gerät zur Streckenmessung und -analyse zur Leistungsabschätzung von Software-Entwürfen | |
| DE112017007656T5 (de) | Verschobene aktualisierung von datenbank-hashcode in einer blockchain | |
| DE3338333A1 (de) | Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur | |
| DE3685711T2 (de) | Anordnung zur simulation von rechnerfunktionen von grossrechenanlagen. | |
| DE19925411A1 (de) | Controller-basiertes Powermanagement für sequentielle Schaltungen mit geringer Leistungsaufnahme | |
| DE69532307T2 (de) | Ausdrucks-Propagierung für hierarchisches Netzlisten | |
| DE10039538A1 (de) | Vorrichtung und Methode zum Analysieren der Leistung eines Computerprogramms | |
| DE69433907T2 (de) | Autonomes, evolutionsartiges Hardwareentwurfssystem | |
| DE112019004358T5 (de) | Verfahren zur takt-gate-analyse von entwürfen für elektronische systeme und zugehörige systeme, verfahren und vorrichtungen | |
| DE10300699A1 (de) | Analyseverfahren für eine integrierte Schaltung und Programmprodukt | |
| DE69533567T2 (de) | Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen | |
| DE102009004726A1 (de) | Systeme und Verfahren zum Verfolgen von Befehlszeigern und Datenzugriffen | |
| DE69127798T2 (de) | Verfahren und Gerät zum Organisieren und Analysieren von Zeitsteuerungsinformationen | |
| EP2366146B2 (de) | Verfahren und datenverarbeitungssystem zur simulation eines eingebetteten systems | |
| DE10255142A1 (de) | Diagnose von Datenpaketübertragungs-Fehlern unter Verwendung von Einschränkungen | |
| DE102021100598A1 (de) | Ursachenanalyse bei synchronisierung von echtzeitfähigen mit nicht-echtzeitfähigen teilsimulationen | |
| DE112018006331B4 (de) | Testfallgenerierungsvorrichtung, Testfallgenerierungsverfahren und Testfallgenerierungsprogramm | |
| DE102006041444B4 (de) | Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem | |
| EP3812949A1 (de) | Konfigurierbarer digitaler zwilling | |
| DE19924242C2 (de) | Vektorrestauration mit beschleunigter Validation und Verfeinerung | |
| DE10355141A1 (de) | System und Verfahren zum Schätzen eines Leistungsverbrauchs für zumindest einen Abschnitt einer integrierten Schaltung | |
| DE4410731A1 (de) | Logiksimulator | |
| DE3750602T2 (de) | Verfahren zur Aufnahme von Zeitparametern in der Synthesis von logischen Schaltungsentwürfen. |
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 |