-
Das
vorliegende Dokument enthält
Material, das sich auf das Material der mitanhängigen, gemeinsam eingereichten
U.S.-Patentanmeldungen
Anwaltsaktenzeichen 100111221-1 mit dem Titel System And Method For
Determining Wire Capacitance For A VLSI Circuit; Anwaltsaktenzeichen
100111227-1 mit dem Titel System And Method For Determining Applicable
Configuration Information For Use In Analysis Of A Computer Aided
Design; Anwaltsaktenzeichen 10011228-1 mit dem Titel Systems and
Methods Utilizing Fast Analysis Information During Detailed Analysis
Of A Circuit Design; Anwaltsaktenzeichen 100111230-1 mit dem Titel Systems
And Methods For Determining Activity Factors Of A Circuit Design;
Anwaltsaktenzeichen 100111233-1 mit dem Titel System And Method
For Determining Connectivity Of Nets In A Hierarchical Circuit Design;
Anwaltsaktenzeichen 100111234-1 mit dem Titel System And Method
Analyzing Design Elements In Computer Aided Design Tools; Anwaltsaktenzeichen
100111235-1 mit dem Titel System And Method For Determining Unmatched
Design Elements In A Computer-Automated Design; Anwaltsaktenzeichen
100111236-1 mit dem Titel Computer Aided Design Systems And Methods
With Reduced Memory Utilization; Anwaltsaktenzeichen 100111238-1
mit dem Titel System And Method For Iteratively Traversing A Hierarchical
Circuit Design; Anwaltsaktenzeichen 100111257-1 mit dem Titel Systems
And Methods For Establishing Data Model Consistency Of Computer
Aided Design Tools; Anwaltsaktenzeichen 100111259-1 mit dem Titel
Systems And Methods For Identifying Data Sources Associated With
A Circuit Design; und Anwaltsaktenzeichen 100111260-1 mit dem Titel
Systems And Methods For Performing Circuit Analysis On A Circuit
Design bezieht, wobei die Offenbarungen derselben hierdurch durch
Bezugnahme aufgenommen sind.
-
Ein
elektronisches Tool für
einen computergestützten
Entwurf („E-CAD"; E-CAD = electronic
computer-aided design) wird verwendet, um einen Schaltungsentwurf
zu erzeugen, der einen VLSI-Schaltungsentwurf umfaßt (VLSI
= Very Large Scale Integration = Höchstintegration). Der Schaltungsentwurf
umfaßt
eine Netzliste, die eine Sammlung von Netzen definiert, die für den Schaltungsentwurf
spezifisch sind. Jedes „Netz" ist ein einzelner
elektrischer Weg in einer Schaltung, die an allen ihren Punkten
dieselben elektrischen Charakteristika aufweist. Zum Beispiel ist
eine Sammlung von Drähten,
die dasselbe Signal zwischen Komponenten trägt, ein Netz. Wenn die Komponenten
ermöglichen,
daß das
Signal unverändert
durchläuft
(wie in dem Fall eines Anschlusses), dann setzt sich das Netz auf
nachfolgend angeschlossenen Drähten
fort. Wenn die Komponente das Signal jedoch modifiziert (wie in
dem Fall eines Transistors oder eines Logikgatters), dann endet
das Netz bei dieser Komponente und ein neues Netz beginnt auf der
anderen Seite. Ein „Netzname" identifiziert ein
bestimmtes Netz innerhalb der Netzliste. Komponenten werden innerhalb
des Schaltungsentwurfs als „Entwurfselemente" identifiziert.
-
Eine
wesentliche Charakteristik einer VLSI und anderer Schaltungsentwurfstypen
ist das Vertrauen auf die hierarchische Beschreibung. Ein primärer Grund
für das
Verwenden einer hierarchischen Beschreibung ist das Verdecken des
großen
Detailbetrags bei einem Entwurf. Durch Reduzieren der ablenkenden
Details auf ein einzelnes Objekt, das niedriger in der Hierarchie
ist, können
viele E-CAD-Operationen
bedeutend vereinfacht werden. Zum Beispiel können Simulation, Verifizierung,
Entwurfsregelprüfung
und Layouteinschränkungen
alle von der hierarchischen Darstellung profitieren, die sie rechentechnisch
besser bearbeitbar macht. Da viele Schaltungsentwürfe zu kompliziert
sind, um einfach in ihrer Gesamtheit betrachtet zu werden, wird
ein vollständiger
Entwurf häufig
als eine Sammlung von Entwurfselementaggregaten betrachtet, die
weiter auf rekursive und hierarchische Weise in Teilaggregate unterteilt
werden. Bei VLSI-Schaltungsentwürfen
werden diese Aggregate häufig
als Entwurfs-Blöcke
(oder -Zellen) bezeichnet. Die Verwendung eines Entwurfsblocks auf
einer gegebenen Ebene der Hierarchie wird eine „Instanz" genannt. Jeder Entwurfsblock weist
eines oder mehrere „Tore" auf, wobei jedes
derselben einen Verbindungspunkt zwischen einem Netz innerhalb des
Entwurfsblocks und einem Netz außerhalb des Entwurfsblocks
liefert. Ein Netz, das mit einem Tor in einem Entwurfsblock verbunden
ist, wird als ein „mit
einem Tor versehenes" Netz
bezeichnet.
-
Ein
Signalname höchster
Ebene („HLSN"; HLSN = Highest
Level Signal Name) ist der eindeutige Signalname, der eine Sammlung
von verbundenen Netzen oder „hierarchischen
Netzstücken" identifiziert. Zum Beispiel
ist ein hierarchisches Netzstück
ein mit einem Tor versehenes Netz in einem Entwurfsblock; das mit einem
Tor versehene Netz wird mit einem mit einem Tor versehenen Netz
eines anderen Entwurfsblocks verbunden, um den HLSN zu bilden. Der
HLSN leitet seine Identität
aus dem Namen des hierarchischen Netzstücks auf der höchsten hierarchischen
Ebene in dem Schaltungsentwurf her.
-
Üblicherweise
bestimmt während
einer Analyse eines Schaltungsentwurfs ein E-CAD-Analyse-Tool bzw.
-Werkzeug (z. B. ein Analyse-Tool, das einen Schaltungsentwurf analysiert,
um Feldeffekttransistor-Leckströme
(„FET"-Leckströme) zu schätzen) einen
HLSN für
ein bestimmtes Netz in dem Schaltungsentwurf. Konfigurationsbefehle
und andere Parameter des Schaltungsentwurfs werden häufig unter
Verwendung eines HLSN eines Netzes als Referenz spezifiziert. Es
ist daher wichtig, den HLSN für
ein gegebenes Netz zu identifizieren, um zu bestimmen, ob ein bestimmter
Konfigurationsbefehl auf das Netz anwendbar ist. Bei einem Beispiel
erreicht das E-CAD-Analyse-Tool
während
einer Analyse des Schaltungsentwurfs einen Transistoranschluß (oder
einen anderen Vorrich tungsanschluß) auf einer hierarchischen
Ebene des Schaltungsentwurfs. Der HLSN von einem oder mehreren Netzen,
die mit anderen Anschlüssen
des Transistors verbunden sind, wird benötigt, um entsprechende Konfigurationsbefehle
anzuwenden. Ferner, bei der Fertigstellung der Analyse, werden die
Analyseergebnisse häufig
relativ zu jedem HLSN in dem Schaltungsentwurf berichtet, da solche
Informationen häufig
nützlicher
für Entwurfstechniker
sind als Informationen, die sich auf individuelle Netze des Schaltungsentwurfs
beziehen.
-
Bekannte
E-CAD-Analyse-Tools erzeugen üblicherweise
eine „Abbildung", die jedes Netz
(durch den identifizierenden Netznamen) mit seinem entsprechenden
HLSN in Verbindung bringt. Wenn der Schaltungsentwurf Milliarden
von Komponenten aufweist, verbraucht dieser Abbildungsprozeß einen
beträchtlichen
Zeitbetrag und verbraucht einen beträchtlichen Speicherbetrag. Somit
wird der Entwurfsprozeß verzögert und Computerressourcen
werden an die Abbildung übertragen,
wodurch die Ressourcenverfügbarkeit
für andere Tools
bzw. Werkzeuge und Programme reduziert wird.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren zum Bestimmen
eines Signalnamens auf höchster
Ebene in einem hierarchischen Schaltungsentwurf und ein System und
ein Verfahren zum Bestimmen eines Signalnamens auf höchster Ebene
für ein
ausgewähltes
Netz in einem hierarchischen Schaltungsentwurf und ein Softwareprodukt
mit Anweisungen mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1, ein Verfahren
gemäß Anspruch
3 und 8, ein System gemäß Anspruch
10 und 12 und ein Softwareprodukt gemäß Anspruch 14 gelöst.
-
Bei
einem Ausführungsbeispiel
bestimmt ein Verfahren einen Signalnamen höchster Ebene in einem hierarchischen
Schaltungsentwurf. Ein Signalweg wird in eine hierarchisch niedrigere
Ebene des Schaltungsentwurfs von einem vorbestimmten Netz in dem
Schaltungsentwurf zu einer vorbestimmten Anschlußinstanz verfolgt, während Hinweise
hinzugefügt
werden, zu einer Instanzhistorienliste, von jeder angetroffenen
nachfolgenden Instanz. Eine Torinstanz wird an der Anschlußinstanz
bestimmt, die einem ausgewählten
Netz zugeordnet ist, für
das der Signalname höchster
Ebene bestimmt werden soll. Das ausgewählte Netz wird als das aktuelle
Netz bezeichnet. Für
alle gespeicherten Hinweise in der Instanzhistorienliste wird das
Netz, das mit dem aktuellen Netz in einem hierarchischen Elternteil
der Instanz verbunden ist, identifiziert durch die Hinweise, bestimmt,
um ein nächstes
aktuelles Netz einzurichten. Wenn eine Bedingung existiert, bei
der keine Verbindung von dem aktuellen Netz zu einer Instanz auf
hierarchisch höherer
Ebene vorliegt, wird das aktuelle Netz als der Signalname höchster Ebene
für das
ausgewählte
Netz eingerichtet.
-
Bei
einem anderen Ausführungsbeispiel
bestimmt ein Verfahren einen Signalnamen höchster Ebene (HLSN) für ein ausgewähltes Netz
bei einem hierarchischen Schaltungsentwurf. Ein Signalweg wird von
einem Netz in einer Instanz bei dem Entwurf zu einer Anschlußinstanz
auf einer hierarchisch niedrigen Ebene des Entwurfs verfolgt. Hinweise
jeder Instanz, die angetroffen werden, werden in einer Instanzhistorienliste
gespeichert. Die Schritte des Verfolgens und Speicherns werden wiederholt,
bis ein vorbestimmter Spur-Endpunkt angetroffen
wird. Eine ausgewählte
Torinstanz, für
die der HLSN bestimmt werden soll, wird für die ausgewählte Anschlußinstanz
bestimmt. Ein aktuelles Netz wird an der ausgewählten Torinstanz bestimmt.
Das Tor, das mit dem aktuellen Netz verbunden ist, wird bestimmt.
Die zuletzt gespeicherten Indizes werden aus der Instanzhistorienliste
entfernt. Die Torinstanz an der Instanz, die durch die zuletzt gespeicherten
Indizes identifiziert ist, was eine Instanzierung des Tors ist,
das mit dem aktuellen Netz verbunden ist, wird als eine nächste Torinstanz
bestimmt. Das Netz, das mit der nächsten Torinstanz verbunden
ist, wird als das aktuelle Netz bestimmt. Die vorangehenden vier
Schritte werden wiederholt, bis ein Rückverfolgungs-Endpunkt (retrace
endpoint) angetroffen wird, um das aktuelle Netz als den HLSN für die ausgewählte Torinstanz
einzurichten.
-
Bei
einem anderen Ausführungsbeispiel
bestimmt ein Verfahren einen Signalnamen höchster Ebene (HLSN) für ein ausgewähltes Netz
in einem hierarchischen Schaltungsentwurf. Eine erste Torinstanz
an einem ersten Netz wird ausgewählt.
Eine Verfolgungs-Operation bestimmt die Eigeninstanz für die erste
Torinstanz; speichert Hinweise der Eigeninstanz als eine gespeicherte
Instanz in einer Instanzhistorienliste; bestimmt das nächste Netz,
das mit dem Tor an dem Beschreibungsblock der Eigeninstanz verbunden
ist; verwendet das nächste
Netz als das anfängliche
Netz für
eine nächste
Iteration der Verfolgungsoperation; und wählt eine neue erste Torinstanz
an dem anfänglichen
Netz aus. Die Verfolgungsoperation wird wiederholt, wenn die Eigeninstanz
kein vorbestimmter Verfolgungs-Endpunkt ist. Eine ausgewählte Torinstanz
wird bestimmt, für
die der HLSN bestimmt werden soll. Ein aktuelles Netz wird an der
ausgewählten
Torinstanz bestimmt. Eine Rückverfolgungsoperation
bestimmt dann das Tor, das mit dem aktuellen Netz verbunden ist;
entfernt aus der Instanzhistorienliste die zuletzt gespeicherten
Hinweise; bestimmt als eine nächste
Torinstanz die Torinstanz an der Instanz, die durch den zuletzt
gespeicherten Hinweis identifiziert wird, der eine Instanzierung
des Tors ist, das mit dem aktuellen Netz verbunden ist; und bestimmt
das Netz als das aktuelle Netz, das mit der nächsten Torinstanz verbunden
ist. Die Rückverfolgungsoperation
wird wiederholt, bis ein Rückverfolgungs-Endpunkt
angetroffen wird.
-
Bei
einem anderen Ausführungsbeispiel
bestimmt das System einen Signalnamen höchster Ebene (HLSN) für ein ausgewähltes Netz
in einem hierarchischen Schaltungsentwurf. Ein Prozessor ist mit
einer Speicherungseinheit gekoppelt, die den hierarchischen Schaltungsentwurf
enthält,
und mit einem Computerspeicher. Eine Instanzhistorienliste ist in
dem Computerspeicher gespeichert. Ein Weg-Verfolgungs-Modul, das
in dem Computerspeicher gespeichert ist, wird durch den Prozessor
ausgeführt,
um den hierarchischen Schaltungsentwurf zu analysieren, um den HLSN
für das
ausgewählte
Netz zu bestimmen. Durch das Weg-Verfolgungs-Modul wird ein Signalweg
in eine hierarchisch niedrigere Ebene des Schaltungsentwurfs verfolgt,
von einem vorbestimmten Netz in dem Entwurf zu einer vorbestimmten
Anschlußinstanz,
während Hinweise
zu der Instanzhistorienliste von jeder nachfolgenden Instanz hinzugefügt werden,
die während
des Verfolgens angetroffen wird; eine Torinstanz, die dem ausgewählten Netz
zugeordnet ist, für
das der HLSN bestimmt werden soll, wird bestimmt; das ausgewählte Netz
wird als das aktuelle Netz bezeichnet; für alle gespeicherten Hinweise
in der Instanzhistorienliste wird das Netz bestimmt, das mit dem
aktuellen Netz in einem hierarchischen Elternteil der Instanz verbunden
ist, identifiziert durch den Hinweis, um ein nächstes aktuelles Netz einzurichten;
wenn eine Bedingung besteht, bei der keine Verbindung von dem aktuellen
Netz zu einer Instanz auf hierarchisch höherer Ebene vorliegt, wird
das aktuelle Netz als der Signalname höchster Ebene für das ausgewählte Netz
eingerichtet.
-
Bei
einem anderen Ausführungsbeispiel
bestimmt ein System einen Signalnamen höchster Ebene in einem hierarchischen
Schaltungsentwurf, der folgende Merkmale aufweist: Eine Einrichtung
zum Verfolgen eines Signalwegs von einem Netz in einer Instanz in
dem Schaltungsentwurf zu einer Anschlußinstanz auf einer hierarchisch
niedrigeren Ebene des Entwurfs; eine Einrichtung zum Speichern,
in einer Instanzhistorienliste, von Hinweisen jeder Instanz, die
durch die Einrichtung zum Verfolgen angetroffen wird, wobei Operationen
des Verfolgens und Speicherns wiederholt werden, bis ein vorbestimmter
Verfolgungsendpunkt angetroffen wird; eine Einrichtung zum Einrichten
einer aktuellen Torinstanz, innerhalb der Anschlußinstanz,
für die
der HLSN bestimmt werden soll, und zum Bezeichnen des ausgewählten Netzes
als das aktuelle Netz; und eine Einrichtung zum Durchführen einer
Rückverfolgungsoperation,
die folgende Merkmale aufweist: Eine Einrichtung zum Bestimmen des
Netzes, das mit dem aktuellen Netz in einem hierarchischen Elternteil
der Instanz verbunden ist, die durch den Hinweis identifiziert wird,
um ein nächstes
aktuelles Netz einzurichten; und eine Einrichtung zum Einrichten
des aktuellen Netzes als den Signalnamen höchster Ebene für das ausgewählte Netz.
Die Einrichtung zum Durchführen
einer Rückverfolgungsoperation
wird für
alle gespeicherten Hinweise in der Instanzhistorienliste ausgeführt, bis
ein Rückverfolgungsendpunkt
angetroffen wird.
-
Bei
einem anderen Ausführungsbeispiel
umfaßt
ein Softwareprodukt Anweisungen, die auf einem computerlesbaren
Medium gespeichert sind, wobei die Anweisungen, wenn sie durch einen
Computer ausgeführt
werden, die Schritte zum Bestimmen eines Signalnamens höchster Ebene
in einem hierarchischen Schaltungsentwurf durchführen, die folgende umfassen:
Anweisungen zum Verfolgen eines Signalwegs in eine hierarchisch
niedrigere Ebene des Schaltungsentwurfs von einem vorbestimmten
Netz in dem Schaltungsentwurf zu einer vorbestimmten Anschlußinstanz,
während
Hinweise zu einer Instanzhistorienliste hinzugefügt werden, von jeder nachfolgenden
Instanz, die während
des Verfolgens angetroffen wird; Anweisungen zum Bestimmen einer
Torinstanz, die einem ausgewählten
Netz zugeordnet ist, für
das der Signalname höchster
Ebene bestimmt werden soll; Anweisungen zum Bestimmen einer Torinstanz,
die dem ausgewählten
Netz zugeordnet ist, für
das der Signalname höchster
Ebene bestimmt werden soll; Anweisungen zum Bezeichnen des ausgewählten Netzes
als das aktuelle Netz; und für
alle gespeicherten Hinweise in der Instanzhistorienliste: Anweisungen
zum Bestimmen eines aktuellen Netzes bei der aktuellen Torinstanz;
und Anweisungen zum Bestimmen einer nächsten aktuellen Torinstanz
bei der letzten Instanz, die eine Instanzierung des Tors ist, das
mit dem aktuellen Netz verbunden ist; und wenn eine Bedingung existiert,
bei der keine Verbindung von dem aktuellen Netz zu einer Instanz
auf hierarchisch höherer
Ebene vorliegt, dann Anweisungen zum Einrichten des aktuellen Netzes
als den Signalnamen höchster
Ebene für
das ausgewählte
Netz.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein CAD-System zum Bestimmen
eines Signalnamens höchster
Ebene in einem hierarchischen VLSI-Entwurf;
-
2 ein Flußdiagramm,
das einen Satz von exemplarischen Schritten darstellt, die während einer Operation
des Systems aus 1 ausgeführt werden;
-
3 einen exemplarischen Entwurf,
der durch das Verfahren analysiert werden soll, das in 2 gezeigt ist; und
-
4 einen weiteren exemplarischen
Entwurf, der durch das Verfahren analysiert werden soll, das in 2 gezeigt ist; und
-
5 ein Flußdiagramm,
das einen Prozeß zum
Bestimmen eines Signalnamens höchster
Ebene für ein
ausgewähltes
Netz in einem hierarchischen Schaltungsentwurf darstellt.
-
1 zeigt ein exemplarisches
Ausführungsbeispiel
eines computergestützten
Entwurfssystems („CAD"-Systems) 100,
das zum Durchqueren hierarchisch verknüpfter Entwurfselemente eines
Schaltungsentwurfs 109 konfiguriert ist, um einen Signalnamen
höchster
Ebene („HLSN" = Highest Level
Signal Name) relativ zu einem bestimmten Netz in einem Schaltungsentwurf 109 zu
bestimmen. Das CAD-System 100 umfaßt ein Computersystem 101 und
ein CAD-Tool 107. Das CAD-Tool 107 ist z. B. ein
elektronisches CAD-Tool („E-CAD"-Tool), das zum Analysieren
von VLSI-Schaltungsentwürfen
geeignet ist. Wie in 1 gezeigt
ist, steuert das Computersystem 101 das CAD-Tool 107,
um den Schaltungsentwurf 109 zu analysieren. Der Schaltungsentwurf 109 ist
z. B. ein hierarchischer VLSI-Schaltungsentwurf. Das Computersystem 101 umfaßt einen
Prozessor 102, einen Computerspeicher 104 und
eine Speicherungseinheit 106; der Prozessor 102 ist mit
dem Computerspeicher 104 und mit der Speicherungseinheit 106 gekoppelt.
Bei einem Ausführungsbeispiel
liegt das CAD-Tool 107 anfänglich in der Speicherungseinheit 106 als
Softwareanweisungen vor. Nach der Initialisierung wird das CAD-Tool 107 in
den Computerspeicher 104 geladen. Zumindest ein Teil des
Entwurfs 109, der eine Netzliste 110 des Schaltungsentwurfs 109 umfaßt, kann
ferner in den Computerspeicher 104 nach der Initialisierung
des CAD-Tools 107 geladen werden. Der Prozessor 102 führt dann
ein Signalweg-Verfolgungs-Nebentool
innerhalb des CAD-Tools 107 aus, um einen oder mehrere
HLSNs in einem Abschnitt des Entwurfs 109 zu bestimmen,
wie nachfolgend beschrieben wird.
-
Bei
einem exemplarischen Ausführungsbeispiel
ist das Wegverfolgungsmodul 105 (das ein Neben-Tool des
CAD-Tools 107 sein kann) konfiguriert zum Speichern von
Hinweisen von Blockinstanzen in den Schaltungsentwurf 109,
die angetroffen werden, wenn eine bestimmte hierarchische Verbindung
zu niedrigeren Ebenen der Hierarchie verfolgt wird. Genauer gesagt,
wenn ein Signal von Netz zu Netz durch zugeordnete Tore und Torinstanzen
verfolgt wird (wird nachfolgend erklärt), wird ein Zeiger zu einem
Objekt, das die Instanz von Interesse darstellt, zu einer Instanzhistorienliste 108 hinzugefügt. Die
Instanzhistorienliste 108 arbeitet als eine Speicherungsvorrichtung
(Stapel) vom Typ Last-In-First-Out
(zuletzt hinein zuerst heraus) und enthält Zeiger zu Instanzen von
Blöcken
(hierin einfach „Instanzen"), die hinein verfolgt
wurden, während
sie der hierarchischen Verbindung folgen. Die Instanzhistorienliste 108 wird
dann verwendet, um die hierarchische Verbindung zu höheren Ebenen
der Hierarchie zurückzuverfolgen.
Der HLSN eines Netzes, das während
der Verfolgung erreicht wird, kann gefunden werden, durch entfernen
des Zeigers der letzten Instanz aus der Instanzhistorienliste 108,
Bestimmen einer zugeordneten Torinstanz und Wiederholen des Prozesses
für ein
Netz, das mit dieser Torinstanz verbunden ist, bis ein Endpunkt
angetroffen wird.
-
2 ist ein Flußdiagramm,
das einen Satz von exemplarischen Schritten darstellt, die während der Operation
des Systems 100 aus 1 durchgeführt werden. 3 zeigt einen exemplarischen
Schaltungsentwurf 300, der durch das Verfahren analysiert
werden kann, das in 2 gezeigt
ist. Die Operation des Systems 100 ist am besten verständlich durch
Betrachten der 2 und 3 in Verbindung miteinander.
-
Der
Schaltungsentwurf 109 kann als eine Sammlung von Komponentenaggregaten
betrachtet werden, die weiter in Teilaggregate auf rekursive und
hierarchische Weise unterteilt sind. Bei einem VLSI-Schaltungsentwurf
werden diese Aggregate üblicherweise
als Blöcke
oder Zellen bezeichnet. Die Verwendung eines Blockes auf einer gegebenen
hierarchischen Ebene wird als „Instanz" bezeichnet. Jeder
Block weist eines oder mehrere „Tore" auf, wobei jedes derselben einen Verbindungspunkt
zwischen einem Netz innerhalb des Blocks und einem Netz außerhalb
des Blocks liefert. Die Ausdrücke „Block", „Instanz", „Tor" und „Torinstanz" werden nachfolgend
erklärt,
unter Verwendung eines Schaltungsentwurfs 300 in 3 als Referenz. Wie in 3 gezeigt ist, umfaßt die Schaltung 300 Blockinstanzen
i0, i1, i2 und i3. Die Instanzen i0 und i1 sind hierarchisch durch
Netze „a" und GND (Masse)
verbunden. Die Instanzen i1 und i2 sind hierarchisch durch Netze „pass", „up_vdd" und „dn_gnd" verbunden. Instanz
i1, wenn sie aus der Perspektive einer oberen Ebene in der Teilhierarchie
betrachtet wird, dargestellt durch test_block_i1 und test_block_i2,
wird selbst als ein Block betrachtet, d. h., test block_i1, in diesem
bestimmten hierarchischen Kontext. In demselben Kontext enthält der Block test_block_i1
die Instanz i2, die, wenn sie aus einer Perspektive innerhalb des „Kastens" betrachtet wird (i2/test_block_i2),
der in 3 gezeigt ist,
als der Block test_block_i2 bezeichnet werden würde.
-
Es
ist somit ersichtlich, daß die
Definitionen von „Block" und Block-„Instanz" davon abhängen, ob
eine bestimmte „Box" bzw. ein „Kasten" (ein Block oder
eine Instanz des Blocks) von einem internen oder externen Standpunkt
betrachtet werden, d. h., die entsprechende Nomenklatur hängt von
der hierarchischen Perspektive ab, aus der der „Kasten" betrachtet wird. Jeder „Kasten" (Block oder Instanz)
weist eine Mehrzahl von „Toren" (ports) und entsprechenden
Torinstanzen („portinsts") auf, wobei jedes
Paar derselben einen Verbindungspunkt zwischen einem Netz innerhalb
des Blocks und einem Netz außerhalb
des Blocks liefert. Ein „port/portinst" weist somit zwei
angrenzende Teile auf, einen ersten Teil, der eine „portinst" genannt wird, was eine
Torinstanz ist, die außerhalb
einer Kasten- (oder Instanz-) Grenze angeordnet ist; und einen zweiten
Teil, genannt ein „port", das innerhalb der
Kasten- (oder Block-) Grenze angeordnet ist.
-
Wie
aus 3 ersichtlich ist,
sind die portinsts bzw. Torinstanzen die Hälfte von „port/portinst" an der Außenseite
eines „Kastens" bzw. einer „Box" (z. B. Artikel 312),
und Tore sind die Hälfte
der „port/portinst" an der Innenseite
einer „Box" (z. B. Artikel 313).
Ein Tor nimmt denselben Namen an wie das Netz, mit dem er verbunden
ist, und Torinstanzen weisen denselben Namen auf wie ihr beschreibendes
Tor (d. h., den selben Namen wie das Netz in dem beschreibenden
Block). Wenn eine Netzliste untersucht wird, wie z. B. die Netzliste 110,
kann portinst 312 bei dem Entwurf 300 in der Netzliste
als „net
pass -> port inst
in" bei dem Block test_block_i1
beschrieben werden. Dieser Netzlisteneintrag zeigt an, daß das Netz „pass" mit der portinst
bzw. Torinstanz „in" 312 bei
Instanz „i2" verbunden ist. Das
entsprechende Tor bei test_block_i2 ist Tor 313, das den Namen „in" aufweist, da es
mit dem Netz „in" bei test_block_i2
verbunden ist. Bei einem exemplarischen Ausführungsbeispiel wird ein hierarchisches
Modell, das als Teil des Schaltungsentwurfs 109 gespeichert
ist, verwendet, um die Hierarchie des Entwurfs 300 darzustellen,
und die Differenz zwischen einer portinst und einem port wird ohne
weiteres durch die Verwendung von objektorientierten Techniken bestimmt,
bei denen port und portinst unterschiedliche Objekte sind und unterschiedliche
Typen von Objekten dieselben besitzen.
-
Wie
in 2 gezeigt ist, verfolgt
anfänglich
bei Schritt 205 das Wegverfolgungsmodul 105 eine
Verbindung (einen Signalweg) in eine hierarchisch niedrigere Ebene
des Schaltungsentwurfs 109 von einem vorbestimmten Startpunkt,
der ein gewünschtes
Netz in dem Entwurf sein kann. Bei Schritt 210, wenn das
Wegverfolgungsmodul 105 jede neue Instanz antrifft, wird
ein Zeiger zu der Instanz (ein „Instanzzeiger") zu der Instanzhistorienliste 108 hinzugefügt. Genauer
gesagt können
die Schritt 205 und 210 wie folgt beschrieben
werden. Die Verfolgung startet bei einem vorbestimmten HLSN oder
einem anderen anfänglichen
Netz. Die Eigeninstanz für
die Torinstanz bei diesem Netz wird dann bestimmt. Wenn die Eigeninstanz
kein vorbestimmter Verfolgungsendpunkt ist, wird die Eigeninstanz
auf die Instanzhistorienliste 108 gedrückt. Das Netz, das mit dem Tor
an dem Beschreibungsblock der Instanz verbunden ist (d. h. das Netz,
das mit dem Tor innerhalb der Instanz verbunden ist), wird dann
bestimmt und als das anfängliche
Netz für
die Netziteration des Wegverfolgungsprozesses verwendet.
-
Bei
Schritt 215, wenn das Wegverfolgungsmodul 105 auf
einen anfänglichen
Endpunkt der Verfolgung trifft (d. h. einen vorbestimmten Endpunkt
eines bestimmten Netzes), dann fährt
die Verarbeitung bei Schritt 217 fort; anderweitig werden
die Schritte 205 und 210 für die Netze wiederholt, die
mit einer oder mehreren aufeinanderfolgenden hierarchisch niedrigeren
Ebenen des Schaltungsentwurfs 109 verbunden sind, bis ein vorbestimmter
Verfolgungsendpunkt erreicht wird. Der Verfolgungsendpunkt ist eine
ausgewählte
Abschlußinstanz
oder „Anschlußinstanz", die ein Netz oder
mehrere Netze verbinden kann, für
die der HLSN bestimmt werden soll. Dieses Netz kann mit einem Anschluß einer
Vorrichtung verbunden sein, wie z. B. eines Transistors, für den der
HLSN von einem der anderen Anschlüsse dieser Vorrichtung erwünscht ist.
-
Sobald
das Wegverfolgungsmodul 105 einen Signalweg zu dem ausgewählten Verfolgungsendpunkt verfolgt
hat, kann der HLSN eines beliebigen Netzes innerhalb des Blocks,
der analysiert wird, dann bestimmt werden, durch Durchführen des
nachfolgenden Rückwärts-Verfolgungs-Verfahrens
(Retrace-Verfahrens; Retrace = Reverse-Trace). Zuerst wird eine
Torinstanz (einem ausgewählten
Netz zugeordnet) ausgewählt,
für die
der HLSN bestimmt werden soll, bei Schritt 217. Als nächstes wird
der Zeiger der letzten Instanz, der in der Instanzhistorienliste 108 gespeichert
ist, aus der Instanzhistorienliste 108 bei Schritt 220 „entnommen" (entfernt), durch
das Wegverfolgungsmodul 105, um das Netz zu bestimmen,
das mit dem aktuellen Netz bei dem hierarchischen Elternteil der
letzten (zuletzt) angetroffenen Instanz verbunden ist. Genauer gesagt
kann Schritt 220 wie folgt beschrieben werden. Bestimme
das aktuelle Netz an der ausgewählten
Torinstanz. Dann Bestimmte das Tor, das mit dem aktuellen Netz verbunden
ist. Als nächstes,
Entnehme die letzte Instanz aus der Instanzhistorienliste 108.
Als nächstes,
Bestimme die zugeordnete Torinstanz bei dieser letzten Instanz,
die eine Instanzierung (d. h. angrenzend an das) des Tors ist, das
mit dem aktuellen Netz verbunden ist. Schließlich, Bestimme das Netz, das
mit der Torinstanz verbunden ist. Der Prozeß des Bestimmens der zugeordneten Torinstanz
und des Wiederholens des Prozesses für das Netz, das mit dieser
Torinstanz verbunden ist, wird fortgesetzt, bis ein Rückverfolgungsendpunkt
angetroffen wird, wie im Hinblick auf Schritt 225 erklärt wird.
-
Bei
Schritt 225 wird eine Prüfung durchgeführt, um
zu bestimmen, ob ein Rückverfolgungsendpunkt angetroffen
wurde.
-
Ein
Endpunkt des Rückverfolgungsprozesses
wird angetroffen, wenn eine der nachfolgenden Bedingungen auftritt:
- – die
Instanzhistorienliste 108 ist leer: der obere Block in
der Hierarchie wurde erreicht, so daß das aktuelle Netz der Verfolgungsendpunkt
ist;
- – das
aktuelle Netz ist nicht mit einem Tor außerhalb eines Blocks versehen,
d. h. es liegt kein Signalweg höher
in der Hierarchie vor, so daß das
aktuelle Netz der Endpunkt ist;
- – es
besteht kein Netz, das mit der Torinstanz verbunden ist, das an
der Instanz angeordnet ist, in der das aktuelle Netz existiert.
In dieser Situation liegt ein Konnektivitätsfehler vor. Das vorliegende
System kann trotzdem das aktuelle Netz als das HLSN-Netz zurücksenden,
da dies das Netz höchster
Ebene ist, das in der Hierarchie bestimmt werden kann.
-
Das
Wegverfolgungsmodul 105 fährt dann mit der Rückverfolgung
fort, und führt
die Schritte 220 und 225 aus, bis ein Rückverfolgungsendpunkt
angetroffen wurde. An diesem Punkt hat die Verfolgung die Instanz in
der Hierarchie erreicht, die den HLSN des Netzes enthält, ausgewählt bei
Schritt 217. Der HLSN für
das ausgewählte
Netz (oder das Netz-„Objekt", unter Verwendung
einer objektorientierten Technik) wird dann auf der Instanzhistorienliste 108 bei
Schritt 230 bestimmt, durch Verkettung mit dem aktuellen
Netznamen, den Namen jeder Instanz (auf die gezeigt wird) in der
Instanzhistorienliste 108, um den HLSN für das ausgewählte Netz
zu bestimmen.
-
Bevor
ein spezifisches Beispiel präsentiert
wird, das die Operation des vorliegenden Systems zeigt, wird ein
exemplarischer Pseudocode nachfolgend ausgeführt, um zu zeigen, wie der
Verfolgungs- und Rückverfolgungs-Prozeß codiert
werden kann, um die Ausführung
durch einen Prozessor zu ermöglichen,
wie z. B. den Prozessor
201. Anfänglich wird eine rekursive
Funktion („recurse") verwendet, um eine
Instanzhistorienliste
108 für den ausgewählten HLSN
zu erzeugen:
-
Es
wird darauf hingewiesen, daß der „is_primitive"-Ruf für eine Instanz
entlang der Hierarchie „true" (wahr) sein kann;
dieser Ruf ist eine Funktion, um zu bestimmen, wann eine Instanz,
die zum Verarbeiten ausgewählt
wurde, gefunden wird. Sobald eine ausgewählte Instanz lokalisiert wurde,
kann eine Verarbeitungsfunktion, wie z. B. ProcessInstance(), die
nachfolgend gezeigt ist, aufgerufen werden:
-
Um
besser zu verstehen, wie die Funktion ReverseTraceHier-Net funktioniert,
ist nachfolgend ein exemplarischer Pseudocode für diese Funktion umfaßt:
-
An
diesem Punkt wurde das Tor (das "port
object" (Torobjekt),
unter Verwendung einer objektorientierten Technik) an dem aktuellen
Netz bestimmt. Als nächstes
wird das Torinstanzobjekt bei der ersten Instanz in der Instanzhistorie,
die diesem Tor entspricht, bestimmt:
-
Unter
Verwendung von 2 und 3 als eine Referenz, kann
eine exemplarische Signalverfolgung ausgeführt werden, beginnend bei dem
HLSN "top_GND" in "top_block_1", und weiter bei
dem Transistor NFET1 in Instanz i2. Bei dem vorliegenden Beispiel
sei daher angenommen, daß Instanz "i2" als die Abschlußverfolgungsinstanz
(der Verfolgungsendpunkt) ausgewählt
ist. Daher trifft die Verfolgung das Netz "GND" bei
Instanz i0, das Netz "dn_gnd" bei Instanz i1 und
endet bei dem Netz "gnd" bei Instanz i2.
-
Eine
exemplarische Instanzhistorienliste 108 wird erzeugt, durch
das Wegverfolgungsmodul 105, für die Verfolgung beginnend
bei dem HLSN top GND, auf nachfolgende Weise:
Erste Iteration
der Verfolgungsoperation:
Für
Torinstanz 319 bei Netz top GND, erhalte die Eigeninstanz
für die
Torinstanz (= Instanz"i0").
Da die Instanz „i0" kein Verfolgungsendpunkt
ist, drücke
die Eigeninstanz auf die Instanzhistorienliste 108 (list =
[i0]).
Erhalte das Tor bei dem Beschreibungsblock (test block
i0) der Instanz (tor = 318).
Erhalte das Netz, das
mit dem Tor (= GND) verbunden ist.
-
Zweite
Iteration:
Für
Torinstanz 317 bei dem Netz GND, erhalte die Eigeninstanz
für Torinstanz
(= i1).
Weil die Instanz „i1" kein Verfolgungsendpunkt
ist, drücke
die Eigeninstanz auf die Instanzhistorienliste 108 (Liste
jetzt = [i0, i1]).
Erhalte das Tor an dem Beschreibungsblock
der Instanz (Tor = 316)
Erhalte das Netz, das mit
dem Tor verbunden ist (Netz = dn_gnd).
-
Dritte
Iteration:
Für
die Torinstanz 315 bei Netz dn gnd, erhalte die Eigeninstanz
für die
Torinstanz (= i2).
-
Da
die Instanz i2 ein ausgewählter
Verfolgungsendpunkt ist, wird eine Rückverfolgungsfunktion („ProcessInstance(instance_list", owning_inst, portinst)
bei dem vorliegenden exemplarischen Ausführungsbeispiel) aufgerufen,
um die Instanzhistorienliste 108 (die momentan [i0, i1]
ist) auf die richtige hierarchische Ebene „abzuwickeln".
-
Die
Rückverfolgungsfunktion
bestimmt den HLSN für
eine ausgewählte
Torinstanz oder ein ausgewähltes
Netz, das einer bestimmten Torinstanz zugeordnet ist. Die Torinstanzen,
die für
eine Analyse bei dem vorliegenden Beispiel ausgewählt sind,
sind Torinstanzen 312 und 320 (unter der Annahme,
daß der
Weg, der anfänglich
in den aktuellen Block verfolgt wird, ignoriert wird). Der Signalweg
wird „aufwärts" in der Hierarchie zurückverfolgt,
wodurch er an den Endpunkten HLSNs „top_net_a" bzw. „i0/i1/up_vdd" ankommt, wie nachfolgend
detailliert erklärt
wird.
-
Bei
dem vorliegenden Beispiel beginnt der Rückverfolgungsprozeß bei Instanz „i2", um die HLSNs zu bestimmen,
die mit der ausgewählten
Instanz verbunden sind. Die Instanzhistorienliste 108 soweit
(unter der Annahme, daß die
anfängliche
Durchquerung mit einer leeren Liste bei „top GND" gestartet wird) ist [i0, i1]. Dann,
beginnend bei jeder Torinstanz bei Instanz „i2" navigiert das Wegverfolgungsmodul 105 nach
oben durch die Hierarchie, für
jede Torinstanz, auf die folgende Weise: Wähle Torinstanz 312 aus.
Als nächstes,
Erhalte das aktuelle Netz bei der ausgewählten Torinstanz 312 (=
Netz „pass" bei test_block_i1).
Dann Erstelle eine Kopie der Instanzhistorie, da die rekursive Funktion
(„recurse") die Inhalte von „instance_hist" ändern wird. Copy_inst_hist
= [i0, i1].
-
Erste
Iteration der Rückverfolgungs-Operation:
Erhalte
das Tor, das mit dem aktuellen Netz verbunden ist (= Tor 311 bei
Netz „pass").
Entferne
die letzte Instanz von dem Objekt copy_instance_hist (= Instanz „i1"; copy_instance_hist
jetzt = [i0].
Erhalte die Torinstanz bei „i1", die eine Instanzierung von Tor 311 ist
(= portinst 309).
Erhalte das Netz, das mit portinst 309 verbunden
ist (= Netz „a" bei test_block_i0).
Dieses
Netz wird zu dem „aktuellen
Netz" für die nächste Iteration.
Recurse („a", copy_instance_hist).
-
Zweite
Iteration:
Erhalte das Tor, das mit dem aktuellen Netz verbunden
ist (= Tor 308 bei Netz „a").
Entferne die letzte Instanz
von dem copy instance_– hist_object
(= Instanz „i0", copy_instance_hist
jetzt = []).
Erhalte die Torinstanz bei „i0", die eine Instanzierung von Tor 308 ist
(= portinst 307).
Erhalte das Netz, das mit portinst 307 verbunden
ist (= „top_net_a" bei top_block_1).
Recurse
(„top_net_a", copy_instance_hist).
-
Dritte
Iteration:
Das aktuelle Netz („top_net_a") ist nicht mit einem Tor zu einer höheren hierarchischen
Ebene versehen, so daß das
aktuelle Netz „top_net_a" mit der leeren Liste
von Instanzen in der Kopie der Instanzhistorienliste „copy_instance_hist" verkettet ist, um „top_net_a" als den HLSN des
Startnetzes „i0/i1/pass" zu erzeugen.
-
Als
nächstes
wird der HLSN für
das Netz „up_vdd" wie folgt bestimmt:
Wähle Torinstanz 320.
Erhalte
das Netz bei Torinstanz 320 (bringt „up_vdd" zurück
bei test_block_i1).
Erstelle eine Kopie der Instanzliste, da
die rekursive Funktion die Inhalte ändern wird. Copy_inst_hist
= [i0, i1].
-
Erste
Iteration:
Erhalte das Tor, das mit diesem Netz verbunden ist
(= 323).
Entferne die letzte Instanz von dem Objekt
copy_instance hist (bringt „i1" zurück, copy_instance
hist jetzt = [i0]).
Erhalte die Torinstanz bei „i1", die eine Instanzierung
von Tor 323 ist (ein Konnektivitätsfehler wird zurückgesendet,
wie angezeigt durch die Abwesenheit einer Verbindung zu Torinstanz
ce2).
Da dieses Netz nicht an dem Elternteil angeschlossen
ist (aufgrund des Konnektivitätsfehlers),
ist das aktuelle Netz der HLSN, da dieses Netz das Netz höchster Ebene
ist, das in der Hierarchie bestimmt werden kann.
Drücke die
Instanz „i1" zurück auf das
Objekt copy_instance_hist, da die Rückverfolgung nicht an dieser
Instanz vorbei fortgeschritten ist. Copy_instance_hist jetzt = [i0,
i1].
Das aktuelle Netz „up_vdd" wird dann mit der
Liste von Instanzen in der Kopie der Instanzhistorienliste verkettet,
um „i0/i1/up
vdd" als den HLSN
für das
Netz „up_vdd" zu erzeugen.
-
4 zeigt einen anderen exemplarischen
Entwurf, der durch das Verfahren analysiert werden soll, das in 2 gezeigt ist. Es sei angenommen,
für das
vorliegende Beispiel, daß die
Verfolgungsoperation bei top_net_B in 4 beginnt,
und daß die
gewünschte
Abschlußverfolgungsinstanz
(der ausgewählte
Verfolgungsendpunkt), die ein Netz oder ein anderes Element in einem
Schaltungsentwurf sein kann, FET „F1" ist. Es wird darauf hingewiesen, daß identische
Blöcke
in den Instanzen i1 und i2 mit demselben Namen vorliegen, d. h. „NFET_1". Somit liegen zwei
Verfolgungsendpunkte mit demselben Namen vor. Es ist daher ersichtlich, aus
dem nachfolgenden Beispiel, warum die Verfolgungshistorie nützlich ist,
um die Rückverfolgungsoperation auszuführen.
-
Erste
Iteration der Verfolgungsoperation:
Für Torinstanz 408 bei
Netz top_net_B, erhalte die Eigeninstanz für die Torinstanz (= Instanz „i0").
Da die Instanz „i0" kein Verfolgungsendpunkt
ist, drücke
die Eigeninstanz auf die Instanzhistorienliste (Liste = [i0]).
Erhalte
das Tor an dem Beschreibungsblock (Sub_block") der Instanz (Tor = 407).
Erhalte
das Netz, das mit dem Tor verbunden ist (= „out").
-
Zweite
Iteration:
Da zwei portinsts mit dem Netz „out" verbunden sind (406 und 414),
muß ferner
eine „sub_iteration" (Teiliteration)
für die
zweite portinst 414 bei dem aktuellen Netz durchgeführt werden,
unter der Annahme, daß alle
Verbindungen bei dem Schaltungsentwurf aus 4 verfolgt werden müssen. Aufgrund der Einfachheit
jedoch stellt das vorliegende Beispiel die Verfolgung nur durch
portinst 406 dar. In jedem Fall trifft die Verfolgung auf FET „F1".
Für Torinstanz 406 bei
Netz „out", erhalte die Eigeninstanz
für die
Torinstanz (= i1)
Da die Instanz „i1" kein Verfolgungsendpunkt ist, drücke die
Eigeninstanz auf die Instanzhistorienliste (Liste jetzt = [i0, i1])
Erhalte
das Tor an dem Beschreibungsblock der Instanz (Tor = 405)
Erhalte
das Netz, das mit dem Tor verbunden ist (Netz = „A4")
Für Torinstanz 416 bei
Netz „A4", erhalte die Eigeninstanz
für die
Torinstanz (= NFET_1).
Erhalte das Tor an dem Beschreibungsblock
der Instanz (Tor = 415).
Erhalte das Netz, das mit
dem Tor verbunden ist.
-
An
diesem Punkt wird FET „F1" angetroffen. Da
FET „F1" der ausgewählte Verfolgungsendpunkt
ist, wird die Rückverfolgungsfunktion
(„ProcessInstance
(instance_list",
owning_inst, portinst) aufgerufen, um die Instanzhistorienliste 108 auf
die richtige Ebene der Hierarchie „abzuwickeln", um den HLSN für das ausgewählte Netz
zu bestimmen. Bei dem vorliegenden Beispiel sei angenommen, daß der Rückverfolgungsprozeß bei „i0/i1/net_A" gestartet wird,
um den HLSN zu bestimmen, der mit diesem ausgewählten Netz verbunden ist. Das
aktuelle Netz ist somit „i0/i1/net_A", aber es wird darauf
hingewiesen, daß zwei
Instanzierungen des aktuellen Blocks (NFET_1) vorliegen, daher muß zuerst
die spezifische Torinstanz zur Verwendung für die Rückverfolgung bestimmt werden.
Die geeignete Torinstanz, die mit „i0/i1/net_A" verbunden ist, kann
nicht bestimmt werden, außer
die bestimmte Instanzierung des Tors an dem Netz ist bekannt, um
in der Lage zu sein, das Netz auf der nächsten Ebene der Hierarchie
zu finden. Daher muß die
spezifische Instanzierung von „net_A" bestimmt werden,
um ein Verfolgen aus der korrekten Instanzierung heraus zu ermöglichen.
Bei dem vorliegenden Fall, da das Netz „A" als der Rückverfolgungsstartpunkt ausgewählt ist,
muß die
entsprechende Torinstanz (d. h. die Torinstanz, die eine Instanzierung
des Tors ist, das mit dem aktuellen Netz „A" verbunden ist), bestimmt werden. Die
erste Iteration der Rückverfolgungsoperation
(unten) zeigt, daß eine
Bezugnahme auf die Instanzhistorie ermöglicht, daß die Rückverfolgung mit net_A1 anstelle
von net_A2 beginnt.
-
Die
Instanzhistorienliste 108 ist soweit [i0, i1]; daher, die
Kopie der Instanzhistorie (copy_inst_hist) = [i0, i1].
-
Erste
Iteration der Rückverfolgungsoperation:
Zuerst,
Erhalte das Tor, das mit dem ausgewählten Netz verbunden ist, „net_A" (= Tor 404).
Es wird darauf hingewiesen, daß das
entsprechende Tor bei Instanz „i2" (sowie alle anderen
Tor- und Torinstanz-Namen bei i2) denselben Namen aufweisen wie
das entsprechende Tor bei Instanz „i1", da diese Instanzen zwei Instanzierungen
desselben Blocks sind, NFET1.
Entnehme die letzte Instanz aus
dem Objekt copy_instance_hist (= Instanz „i0"; copy_instance_hist jetzt = [i1].
Erhalte
die Torinstanz bei „i1", die eine Instanzierung
von Tor 404 ist (= portinst 403).
Erhalte
das Netz, das mit portinst 403 verbunden ist (= Netz „net_A1" bei „Sub_Block").
Dieses Netz
wird zu dem „aktuellen
Netz" für die nächste Iteration.
Recurse
(„net_A1", copy_instance_hist)
-
Zweite
Iteration:
Erhalte das Tor, das mit dem ausgewählten Netz
verbunden ist, „net_A1" (= Tor 402).
Entnehme
die letzte Instanz aus dem Objekt copy_instance hist (= Instanz „i0"; copy_instance_hist
jetzt = []).
Erhalte die Torinstanz bei „i1", die eine Instanzierung von Tor 402 ist
(= portinst 401).
Erhalte das Netz, das mit portinst 401 verbunden
ist (= Netz „top_net_A1" bei „Top_Block").
Dieses Netz
wird zu dem „aktuellen
Netz" für die nächste Iteration.
Recurse
(„top_net_A1", copy_instance_hist)
-
Dritte
Iteration:
Das aktuelle Netz („top_net_A1") ist nicht mit einem
Tor zu einer höheren
hierarchischen Ebene versehen, so daß das aktuelle Netz „top_net_A1" mit der leeren Liste
von Instanzen in der Kopie der Instanzhistorienliste verkettet ist,
um „top_net_A1" als den HLSN des
Startnetzes „i0/i1/net_A" zu erzeugen.
-
5 ist ein Flußdiagramm,
das einen Prozeß 500 zum
Bestimmen eines Signalnamens höchster Ebene
bei einem hierarchischen Schaltungsentwurf darstellt. Bei Schritt 502 wird
ein Signalweg in eine hierarchisch niedrigere Ebene des Schaltungsentwurfs
von einem vorbestimmten Netz in dem Schaltungsentwurf zu einer vorbestimmten
Anschlußinstanz
verfolgt. Hinweise werden zu einer Instanzhistorienliste für jede nachfolgende
Instanz hinzugefügt,
die bei Schritt 502 angetroffen wird. Bei Schritt 504 wird
eine Torinstanz bei der Anschlußinstanz
bestimmt, die einem ausgewählten
Netz zugeordnet ist, für
das der Signalname höchster Ebene
bestimmt werden soll. Bei Schritt 506 wird das ausgewählte Netz
als das aktuelle Netz bezeichnet. Bei Schritt 508 wird
das Netz, das mit dem aktuellen Netz bei einem hierarchischen Elternteil
der Instanz verbunden ist, die durch den Hinweis identifiziert wird,
bestimmt, um ein nächstes
aktuelles Netz einzurichten. Bei Schritt 510, wenn eine
Bedingung existiert, bei der keine Verbindung von dem aktuellen
Netz zu einer Instanz auf hierarchisch höherer Ebene vorliegt, wird
das aktuelle Netz als der Signalname höchster Ebene für das ausgewählte Netz
eingerichtet.
-
Anweisungen,
die die Operationen aus 2 und/oder 5 ausführen, können auf einem computerlesbaren
Speicherungsmedium gespeichert sein. Diese Anweisungen können wiedergewonnen
und durch einen Prozessor ausgeführt
werden, wie z. B. Prozessor 102 aus 1, um den Prozessor anzuweisen, gemäß dem vorliegenden
System zu arbeiten. Diese Anweisungen können auch in Firmware gespeichert
sein. Beispiele eines Speicherungsmediums umfassen Speichervorrichtungen,
Bänder,
Platten, integrierte Schaltungen und Server.
-
Bestimmte Änderungen
können
an den oben genannten Verfahren und Systemen durchgeführt werden,
ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen.
Es wird darauf hingewiesen, daß alle
Gegenstände,
die in der obigen Beschreibung enthalten oder in den beiliegenden
Zeichnungen gezeigt sind, in einem darstellenden und nicht einschränkenden
Sinn interpretiert werden sollen. Zum Beispiel können die Artikel, die in 1 gezeigt sind, in anderen
Konfigurationen aufgebaut, verbunden, angeordnet und/oder kombiniert
werden, und der Satz aus Schritten, der in 2 und/oder 5 dargestellt
ist, kann in einer unterschiedlichen Reihenfolge ausgeführt werden,
ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen.