-
Diese Anmeldung steht in Bezug mit
der gemeinsam angemeldeten U.S. Patentanmeldung Nummer 09/322,696
für "Using Budgeted Required
Time During Technology Mapping".
-
GEBIET DER ERFINDUNG
-
Diese Erfindung betrifft das Gebiet
der Elektronikentwurfsautomatisierung. Insbesondere betrifft diese Erfindung
den Betrieb eines Technologieabbildungswerkzeugs.
-
HINTERGRUND DER ERFINDUNG
-
Moderne Logik-Schaltkreise sind so
komplex, dass Designer im Allgemeinen computerbasierte Techniken
benötigen,
um bei ihrem Entwurf zu helfen. Während des Entwurfs eines komplexen
Logik-Schaltkreises, wird ein "Technologie-Mapping" genannter Prozess
verwendet, um eine abstrakte Darstellung eines Entwurfs in eine
technologieabhängige
Netzliste zu transformieren, welche eine Darstellung des Entwurfs
ist, die Zellen einer technologiespezifischen Zielbibliothek verwendet.
Die abstrakte Darstellung des Entwurfs besteht im Allgemeinen aus
kombinatorischen Blöcken,
die von sequentiellen Blöcken
getrennt sind. Ein kombinatorischer Block stellt eine boolesche
Gleichung mit mehreren Eingängen
dar, bei der die Ausgabe eine logische Kombination der Eingangssignale
ist, und wird oft mittels gerichteter azyklischer Graphen (Directed
Acyclic Graphs, DAGs) dargestellt. Ein sequentieller Block ist einer,
der eine Zustandsrepräsentation
enthält,
so dass die Ausgabe nicht einfach eine logische Kombination der
Eingaben sind.
-
Das Technologie-Mapping kann in einer
Folge von Schritten ausgeführt
werden. In einem ersten Schritt partitioniert der Technologie-Mapper
einen DAG in eine Menge gekoppelter Logik-Konen und Pufferbäume. Ein
Logik-Konus ist eine Menge verzweigungsfreier gekoppelter 2-Eingang-UND-Knoten und 2-Eingang-ODER-Knoten,
begrenzt von Mehrfachverzweigungsknoten, Invertern und Puffern.
Ein Pufferbaum ist eine Menge gekoppelter Inverter und Puffer (manchmal
reduziert auf eine einfache Mehrfachverzweigungsleitung), begrenzt
von 2-Eingang-UND-Knoten und 2-Eingang-ODER-Knoten, und von DAG-Endpunkten.
In 1 ist ein DAG so
dargestellt, dass er in drei Logik-Konen und acht Pufferbäume partitioniert
worden ist. Nachdem der DAG partitioniert worden ist, werden die
Logik-Konen und die Pufferbäume
in eine Vorwärts-Breitensuche-(Breadth
First Search, BFS)Reihenfolge sortiert.
-
Die Logik-Konen werden einer nach
dem anderen überkachelt,
entsprechend der BFS-sortierten Reihenfolge. Während des Überkachelungsschrittes wird
angenommen, dass die Eingaben jedes Logik-Konus sowohl in direkter
als auch in invertierter Form verfügbar sind. Ferner wird die Überkachelung
für jeden
Logik-Konus sowohl in direkter als auch in invertierter Form unternommen,
wobei die beste Überkachelung
beibehalten wird. An jedem Knoten eines Logik-Konus iteriert der Technologie-Mapper über alle
der verfügbaren Bibliothekszellen,
um zu ermitteln, ob die jeweilige Zelle den aktuellen Knoten überdecken
kann. Dies bezieht ein, festzustellen, ob ein Überdecken in direkter oder
invertierter Form möglich
ist. Wenn dies der Fall ist, wird eine Zuordnung zwischen den aktuellen
Zelleneingangsanschlüssen
und den Eingangsknoten, die die Zelle ansteuern, festgelegt. Die
Polarität
der Anschlüsse
wird ebenfalls definiert. Wenn der Technologie-Mapper den Wurzelknoten
eines Logik-Konus (dessen Ausgabe die Ausgabe des Logik-Konus ist)
erreicht, ermittelt er die beste Überdeckung für den gesamten
Logik-Konus. Diese Auswahl induziert eine Polarität auf dem
Logik-Konus, sowie auf allen Logik-Konus-Eingangsanschlüssen.
-
Die Pufferbäume werden dann einer nach
dem anderen gepuffert, basierend auf: (i) der Anfangspolarität der Logik--Konus-Eingangsanschlüsse, die
von dem Pufferbaum angesteuert werden, (ii) die vom Überkachler
erzeugte Polarität
der Logik-Konus-Eingangsanschlüsse,
die von dem Pufferbaum angesteuert werden, und (iii) die vom Überkachler
erzeugte Polarität
der Logik-Konus-Ausgangsanschlüsse,
die den Pufferbaum ansteuern. Das Ergebnis der Überkachelung und der Pufferung
ersetzt die abstrakte Darstellung des kombinatorischen Blocks in
dem Entwurf.
-
Bei dem obigen Überkachelungsschritt besucht
der Technologie-Mapper Knoten innerhalb eines Logik-Konus in einer
BFS-Reihenfolge von den Eingängen
hin zu dem Ausgang. An jedem besuchten Knoten ruft der Technologie-Mapper
einen Matcher in einer ersten Phase mit einer gegebenen matchbaren
Bibliothekszelle auf. Der Matcher erzeugt eine Liste von Matches,
wobei jedes aus der folgenden Information zusammengesetzt ist:
-
-
Zum Beispiel würde in dem Fall von 2a der für Knoten n aufgerufene Matcher
ein Match erzeugen, das Information, wie beispielsweise die in 2b dargestellte, aufweist.
Ein Kinderknoten ist einer, der einen Ausgang aufweist, der mit
einem Eingang des aktuellen Knotens gekoppelt ist.
-
Nachdem die Erzeugung der Liste der
Matches abgeschlossen ist, werden potentielle Knotenüberdeckungen
bestimmt. Eine Knotenüberdeckung
ist rekursiv definiert als ein Match plus eine Überdeckung für jeden
Kinderknoten des Matches. Eine Knotenüberdeckung kann als eine Menge
gekoppelter Komponenten gesehen. werden, die erforderlich sind,
um die Funktionalität
dieses Knotens ab den Logik-Konus-Eingangsanschlüssen zu überdecken.
Eine Knotenüberdeckung
weist die folgende Information auf:
-
-
Wie hier verwendet, weist die Güte einer Überdeckung
die Fläche
der Überdeckung
und den Schlupf der Überdeckung
auf. Der Schlupf der Überdeckung
wird automatisch gefolgert, indem die Anstieg/Abfall-Ankunftszeiten
des überdeckten
Knotens mit den eingeplanten benötigten
Zeiten des überdeckten
Knotens verglichen werden. In einigen Fällen ist auch das Potential
in die Güte
einbezogen, physikalische Probleme (d. h. Routing-Probleme) zu schaffen.
Eine Logik-Konus-Wurzelknoten-Überdeckung
kann eine Logik-Konus-Überdeckung
genannt werden, weil die vollständige Überdeckung
des Logik-Konus mittels rekursiven Besuchens der Kinderknotenüberdeckungen
dieser Überdeckung
deutlich gemacht wird.
-
Der Überkachelungsprozess generiert
viele potentielle Überdeckungen
und es ist eine schwierige Aufgabe, die beste von diesen auszuwählen. Die
Aufgabe ist zum Teil deshalb schwierig, weil Überdeckungen schwierig zu vergleichen
und abzustimmen sind. Zum Beispiel ist es nicht klar, ob eine kleinere
und langsamere Überdeckung
einer größeren und
schnelleren Überdeckung
bevorzugt werden soll. Dennoch existiert ein Minderwertigkeitsverhältnis zwischen
einigen Überdeckungen,
das einen einfachen Vergleich dieser Überdeckungen erlaubt. Eine Überdeckung
wird als minderwertig gegenüber
einer anderen Überdeckung
betrachtet, wenn sie schlechter (d. h. größer, schlechterer Schlupf,
schwieriger zu place-and-route) als die andere Überdeckung in mindestens einem
Aspekt ist und nicht besser als die andere Überdeckung in jeglichem anderen Aspekt
ist. Minderwertige Überdeckungen
können
im Allgemeinen sofort beim Überkachelungsprozess
zurückgewiesen
werden.
-
Eine Kinderknotenüberdeckung heißt Logik-Entwurf-Regel(LDR)-kompatibel
mit einer Knotenüberdeckung,
wenn die Kopplung der Kinderüberdeckung
mit der Knotenüberdeckung
keine LDR-Verletzung schafft.
-
Zwei Überdeckungen werden als Timing-äquivalent
betrachtet, wenn der Unterschied zwischen ihren Schlupfen kleiner
als eine gewisse Schwelle τ ist.
Das physikalische Konzept hinter dem Parameter τ ist die Tatsache, dass unter
einer gewissen Schwelle das innerhalb einer Timing-Maschine gemessene
Timing nicht sinnvoll ist. Man beachte, dass die direkte Wirkung
des Parameters τ ist,
dass nicht minderwertige Überdeckungen
als minderwertig betrachtet werden können. Zum Beispiel, wenn die Überdeckung
a einen um τ/2
besseren Schlupf erzeugt als Überdeckung
b und wenn Überdeckung
b kleiner ist als Überdeckung
a, dann wird die Überdeckung
a der Überdeckung
b gegenüber
als minderwertig betrachtet und wird zurückgewiesen. Diese Zurückweisung
ist sinnvoll bis zu einer gewissen Schwelle, weil die Auswahl kleinerer Überdeckungen
die Endgröße des Entwurfs
verringert und somit die durchschnittliche Verdrahtungskapazität des Entwurfs
verringert.
-
In einer zweiten Phase ordnet der
Technologie-Mapper Überdeckungen
den Matches zu, die von dem Matcher erzeugt wurden und bewertet
die Güte
dieser Überdeckungen.
Die Güte
einer Überdeckung,
die ausschließlich
von Logik-Konus-Eingangsanschlüssen angesteuert
wird, kann wie folgt berechnet werden:
- – die Fläche ist
die Fläche
der gematchten Zelle; und
- – der
Schlupf wird berechnet als die Differenz zwischen der von der Timing-Maschine
eingeplanten benötigten
Zeit und der von der Timing-Maschine berechneten Ankunftszeit an
dem Ausgangsknoten der gematchten Zelle.
-
Während
des Erzeugens der unterschiedlichen Überdeckungen vergleicht der
Technologie-Mapper die Güte
der Überdeckungen,
wobei er zurückweisbare Überdeckungen
aussondert, wie beispielsweise Überdeckungen,
die nicht einer Logik-Entwurf-Regel gehorchen, Überdeckungen, die Gatter überdecken,
die sehr weit voneinander entfernt platziert sind, und minderwertige Überdeckungen.
-
Die Güte einer Überdeckung, die nicht ausschließlich von
Logik-Konus-Eingangsanschlüssen
angesteuert wird, wird wie folgt berechnet:
- – die Fläche ist
die Summe der Fläche
der gematchten Zelle plus die Flächen
der Überdeckungskinderknotenüberdeckungen;
und
- – der
Schlupf wird berechnet als die Differenz zwischen der von der Timing-Maschine
eingeplanten benötigten
Zeit und der von der Timing-Maschine berechneten Ankunftszeit an
dem Ausgangsknoten der gematchten Zelle.
-
Sobald der Logik-Konus-Ausgangsknoten
besucht worden ist und sobald die Überdeckungsgütewerte bekannt
sind, wählt
der Technologie-Mapper die geeignetste Logik-Konus-Überdeckung
(die, welche am besten den Nebenbedingungen genügt) für diesen Logik-Konus. Diese
Auswahl impliziert die Polarität
des Logik-Konus-Eingangsanschlusses. Die Kinderknotenüberdeckungen
werden rekursiv gefunden, indem die Überdeckungskinderknotenüberdeckungen
besucht werden: Diese rekursiven Besuche implizieren die Logik-Konus-Eingangsanschluss-Polarität.
-
3a stellt
einen typischen Logik-Konus dar. Die Knoten n und m sind schon überkachelt
worden und die direkten Überdeckungen
sind wie in 3b beziehungsweise 3c gezeigt. Beim Überkacheln
von Knoten p erzeugt der Matcher eine Folge von potentiellen Matches,
wobei eines von diesen ein 2-Eingang-UND-Gatter
ist. Das Ziel des Matchers ist es, die Überdeckungen zu finden, welche
die beste Güte
für den
aktuellen Logik-Konus zur Folge haben. Ein Problem ist es, dass
die Güte
des Logik-Konus erst bekannt ist, sobald er vollständig überkachelt
wurde. Somit kann die beste Überdeckung
für einen
gegebenen Knoten erst dann bekannt sein, nachdem der Logik-Konus überkachelt
wurde. Für
jeglichen Zwischenknoten muss der Matcher die Güte aller möglichen Überdeckungen berechnen und
alle nicht minderwertigen Überdeckungen abspeichern.
In dem in 3 dargestellten
Fall würde
der Matcher Überdeckung 1 (n)
mit Überdeckung 1 (m), Überdeckung 1 (n)
mit Überdeckung 2 (m), Überdeckung 2 (n)
mit Überdeckung 1 (m)
und Überdeckung 2 (n) mit Überdeckung 2 (m)
versuchen. Im allgemeinen Fall müssen
eine große
Anzahl von Überdeckungsgüten für jeden
Knoten berechnet werden. Man beachte auch, dass die Überdeckungsgüteberechnung
selbst ein CPU-intensiver Prozess ist. Sie besteht primär aus dem
Platzieren einer gematchten Zelle, dem Berechnen der Verdrahtungskapazität und dem
Berechnen des Timings der Überdeckung.
Die Ortsangabe der gematchten Zelle ist erforderlich, weil die Verdrahtungskapazität aus der
Verdrahtungslänge
zwischen der gematchten Zelle und anderen gematchten Zellen berechnet
wird. Um die Verdrahtungslänge
zu berechnen, ist die Ortsangabe der gematchten Zellen erforderlich.
-
Üblicherweise
sind zwei Verfahren benutzt worden, um die Platzierung einer gematchten
Zelle aus einer anfänglichen
globalen Platzierung zu berechnen:
- – Center
of Mass of Covered Nodes-Verfahren (CM-of-Covered-Verfahren);
- – Center
of Mass of Fan-Verfahren (CM-of-Fan-Verfahren).
-
Das CM-of-Covered-Verfahren weist
das Platzieren eines gematchten Gatters in dem Massenzentrum der
Positionen der unterschiedlichen Basisgatter auf, die von der gematchten
Zelle überdeckt
werden. Das CM-of-Fan-Verfahren weist das Platzieren der gematchten
Zelle in dem Massenzentrum der Verbindungsleitungen der gematchten
Zelle auf, so dass die gesamte Leitungslänge minimiert wird, die erforderlich
ist, um diese gematchte Zelle anzuschließen. Diese Verfahren sind in
Pedram, Massoud et al. "Layout
Driven Technology Mapping",
28. ACM/IEEE Entwurfsautomatisierungskonferenz, 1991, beschrieben.
Ein Nachteil des CM-of-Covered-Verfahrens ist es, dass die Platzierung
einer gematchten Zelle unabhängig
von den Verbindungsleitungen der gematchten Zelle ist. Ein Nachteil
des CM-of-Fan-Verfahrens ist es, dass, um die Länge der Verbindungsleitungen
zu minimieren, die Positionen der Gatter erforderlich sind, die
mit der gematchten Zelle gekoppelt sind, aber die Position des Gatters,
das von der aktuellen gematchten Zelle angesteuert wird, noch nicht
bekannt ist. Ebenso, weil mehrere Überdeckungen für jeden Kinderknoten
beibehalten werden, sind die Positionen der Gatter, die die aktuelle
gematchte Zelle ansteuern, nicht bekannt.
-
Ein weiteres Problem mit herkömmlichen
Verfahren ist, dass eine große
Anzahl potentieller Überdeckungen
für jeden
Knoten in einem Logik-Konus aufrechterhalten werden muss. Wenn der
Logik-Konus größer wird,
wächst
auch die Menge der Überdeckungsinformation,
die gespeichert werden muss. Jede folgende Knotengüteberechnung
erfordert eine größer werdende
Menge von Rechenressourcen. Die Komplexität herkömmlicher Verfahren scheitert
dabei, gut mit zunehmender Größe von Logik-Konen
und Zell-Bibliotheken zu skalieren. Was erforderlich ist, ist ein
System und ein Verfahren zum Berechnen der Platzierung einer gematchten
Zelle aus einer globalen Platzierung, die die Verbindungsleitungen
der gematchten Zelle berücksichtigt,
die aber keine Information über
die Position der Zellen benötigt,
die mit der gematchten Zelle gekoppelt sind. Was ebenfalls erforderlich
ist, ist ein System und ein Verfahren zur Auswahl von Überdeckungen
für jeden Knoten,
das nicht rechnerisch schwer wird, wenn Logik-Konus- und Zellbibliotheksgrößen groß werden.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Ein System und ein Verfahren zum
Berechnen der Position einer gematchten Zelle werden dargelegt, die
die Zusammenschaltungen dieser Zelle berücksichtigen, ohne sich auf
die Ortsangaben von Zellen zu stützen,
die mit der gematchten Zelle gekoppelt sind. Das neue Verfahren
wird als das Weighted Center of Mass of Covered-Verfahren (kurz
WCM-of-Covered-Verfahren)
bezeichnet. Bei diesem Verfahren werden verschiedenen Knoten Gewichte
gegeben, die Teil des Matches sind. Diese Gewichte basieren auf
der Anzahl von Kopplungen zwischen den Knoten und Kinderknoten des
Matches. Die Platzierung der gematchten Zelle basiert auf den Anfangspositionen,
die den das Match bildenden Knoten gegebenen ist, und den für diese
Knoten berechneten Gewichten.
-
Ein System und ein Verfahren zur
Auswahl, welche Überdeckungen
für jeden
Knoten beizubehalten sind, reduziert die Rechenlast für große Logik-Konen
und große
Zell-Bibliotheken.
An jedem Knoten werden nur K Überdeckungen
beibehalten. Diese Überdeckungen
haben Timing-Güten,
die um die ideale Timing-Güte für diesen
Knoten zentriert sind, und weisen keine minderwertigen Überdeckungen
auf. Die Rechenlast bei der Auswahl der Überdeckungen für jeden
Knoten basiert auf der Zahl K und der Anzahl von Eingaben für diesen Knoten.
-
KURZBESCHREIBUNG
DER FIGUREN
-
1 stellt
die Partitionierung eines DAG in Logik-Konen und Pufferbäume dar.
-
2a und 2b stellen die Beziehung
zwischen Knoten eines Logik-Konus und möglichen Matches für diese
Knoten dar.
-
3a, 3b und 3c stellen die Beziehung zwischen Knoten
eines Logik-Konus und mögliche Überdeckungen
bei diesen Knoten dar.
-
4 stellt
ein Flussdiagramm des Ablaufs einer Ausführungsform der Erfindung dar.
-
5 stellt
die Gewichte dar, die Knoten einer gematchten Zelle zugeordnet sind.
-
6 stellt
das Weighted Center of Mass-Verfahren dar.
-
7 stellt
die Beziehung zwischen einem Match und den Kinderknoten des Matches
dar.
-
8a und 8b stellen die Timing-Gütematrix
P dar.
-
DETAILIERTE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Die Eingabe eines Technologie-Mappers
ist eine zerlegte Netzliste, die aus (i) Grund-2-Eingang-UND-Gattern,
(ii) Grund-2-Eingang-ODER-Gattern, (iii) Invertern und (iv) sequentiellen
Elementen besteht. Logik-Konen dieser Netzliste werden identifiziert
und der Technologie-Mapper arbeitet auf jeder dieser Logik-Konen.
In der dargestellten Ausführungsform
wurde die Netzliste auf eine Timinggesteuerte Art konstruiert, so
dass keine Restrukturierung der Netzliste erforderlich ist. Jetzt
bezugnehmend auf 4,
stellt ein Flussdiagramm den Ablauf eines Technologie-Mappings gemäß einer
Ausführungsform
der Erfindung dar. Der Technologie-Mapper durchläuft eine Schleife 400 über jeden
Knoten des Logik-Konus in BFS-Reihenfolge. Zuerst werden alle Eingangsknoten
gebildet, dann jede folgende Knotenschicht. Der Ausgangsknoten des
Logik-Konus wird als Letztes gebildet. An jedem Knoten werden Matches
aus einer Bibliothek matchbarer Zellen gefunden 402. Jede
Zelle der Bibliothek, die den aktuellen Knoten matchen kann, in
direkter oder invertierter Form, wird einer Liste potentieller Matches
für diesen
Knoten hinzugefügt.
Jedes Match weist die Funktionalität des aktuellen Knotens und
Null oder mehr Kinderknoten des aktuellen Knotens auf. Die Information,
die jedes Match bildet, kann aufweisen: den aktuellen Knoten, die
gematchte Bibliothekszelle, die Polarität des Matches des entsprechenden
Knotenausgangsanschlusses, die Kinderknoten, die von diesem Match
erreicht werden, die Zuordnung zwischen den Kinderknoten und den
Gattereingangsanschlüssen
und die Polarität
von jedem der Kinderknoten.
-
Der Technologie-Mapper durchläuft dann
eine Schleife 404 über
alle der potentiellen Matches für
diesen Knoten. Für
jeden Knoten muss die Platzierung der Bibliothekszelle, die diesem
Match entspricht, berechnet werden 406. Um dies zu tun,
wird eine gematchte Zelle in dem Massenzentrum der gewichteten Positionen der
unterschiedlichen Grundgatter platziert, die von der gematchten
Zelle überdeckt
werden (der aktuelle Knoten und Kinderknoten, die von dem Match überdeckt
werden). Wie in 5 dargestellt,
werden die Gewichte an diese Knoten gemäß der Anzahl von Verbindungen
von diesen Knoten zu Knoten verteilt, die nicht Teil des Matches
sind. In der exemplarischen Ausführungsform
der Erfindung sind die Gewichte:
- – Gewicht
0 für einen
Knoten, der keinen anderen Knoten außerhalb der gematchten Zelle
berührt
(zum Beispiel der Knoten b in 5);
- – Gewicht
1 für einen
Knoten, der genau einen Knoten außerhalb der gematchten Zelle
berührt
(zum Beispiel die Knoten a und c in 5);
und
- – Gewicht
2 für einen
Knoten, der genau zwei der Knoten außerhalb der gematchten Zelle
berührt
(zum Beispiel die Knoten d, e und f in 5).
-
In dieser Ausführungsform wird kein Gewicht
für Knoten
festgelegt, die drei oder mehr Gematchte-Zelle-Anschlüsse berühren, weil
in diesem Fall die gematchte Zelle nur einen einzigen Knoten überdeckt
und keine Gewichtung erforderlich ist. Für andere Ausführungsformen,
in denen Knoten mit mehr als drei anderen Knoten in Kontakt stehen
können,
würde ein
Gewicht für
Knoten festgelegt werden, die mehr als zwei Knoten außerhalb
der gematchten Zelle berühren.
-
Die gematchte Zelle wird dann im
Massenzentrum der gewichteten Knoten platziert, die das Match bilden.
Jene Knoten mit einem Gewicht von 2 üben den zweifachen Einfluss
von Knoten mit Gewicht 1 aus. Jene Knoten mit einem Gewicht von
0 üben
keinerlei Einfluss aus. 6 stellt
die Implementierung einer Gewichtetes-Massenzentrum-Berechnung dar.
Zuerst wird ein Referenzkoordinatenpunkt bestimmt, beispielsweise Punkt
o. Dann wird für
jeden gewichteten Knoten (a, b und c) ein zweidimensionaler Vektor
(va, vb und vc) von dem Referenzpunkt o zu dem Knoten
berechnet. Die Zahl auf jedem Knoten von 6 zeigt das Gewicht auf diesem Knoten.
Der Betrag jedes Vektors (va, vb und
vc) wird multipliziert mit dem Gewicht des
zugeordneten Knotens und die multiplizierten Vektoren werden summiert.
Der Betrag des summierten Vektors wird dann durch die Summe aller
Knotengewichte geteilt, was einen Vektor V liefert, der zu dem gewichteten
Massenzentrum der Knoten zeigt.
-
Dieses Verfahren hat den Vorteil,
dass Verbindungsleitungen berücksichtigt
werden, ohne dass Information über
die Position der Knoten erforderlich ist, die den gematchten Knoten
ansteuern und die von ihm angesteuert werden. Es hat auch den Vorteil,
dass es relativ leicht zu implementieren ist. Man beachte, dass in
anderen Ausführungsformen
die Gewichtswerte in den Fällen
von einer oder zwei berührten
Zellkopplungen auf andere Werte als 1 und 2 gesetzt werden können.
-
Nachdem der Ort der gematchten Zellen
berechnet wurde, wird die Pin-to-Pin-Timing-Güte jeder Kinderüberdeckung
des Matches berechnet 408. Im allgemeinen Fall gibt es
Knoten, die nicht Teil des Matches sind, aber die Kinderknoten von
Knoten sind, die Teil des Matches sind. Wie in 7 dargestellt, werden die Knoten n und
m als Kinderknoten des Matches betrachtet. Wenn es solche Kinderknoten
gibt, werden sie vor dem aktuellen Knoten von dem Technologie-Mapper
besucht worden sein und eine Menge von K Überdeckungen wird für jede dieser
Matchkinderknoten bestimmt worden sein. Um die Pin-to-Pin-Timing-Güte für jede Kinderüberdeckung
des Matches zu berechnen, ist es erforderlich zu wissen, wo das
Match sich befinden wird, weil die Entfernung von der Kinderüberdeckung
zu dem Match die Kapazität
und somit das Timing der Kopplung zwischen ihnen beeinflusst. Da
die Match-Stelle
berechnet worden ist 406, kann die Timing-Güte für jede Überdeckung
jedes Kinderknotens des Matches direkt berechnet werden. Um das
zu häufige
Wiederberechnen der Timing-Güte
zu vermeiden, kann die Timing-Güte
für jede Überdeckung
mit der Kapazitätslast,
die verwendet wurde, in einen Cache aufgenommen werden, so dass,
wenn irgendwelche künftigen
Berechnungen der Timing-Güte
für die Überdeckung
eine ähnliche
Kapazität
haben, die Timing-Güte
aus dem Cache gelesen werden kann.
-
Aus diesen Match-Überdeckungs-Timing-Güten wird
eine Timing-Gütematrix
bestimmt 410. Eine Timing-Gütematrix P ist definiert als
eine N-kreuz-K-Matrix, wobei jedes Element Pij die
Timing-Güte
des Matches aufgrund der j-ten Überdeckung
des i-ten Kinderknotens des Matches ist. Diese Guten werden berechnet,
indem die Kinderrüberdeckungs-Timing-Güte auf dem
Match-Timing-Bogen von dem Kinderknoten zu dem Match-Ausgangsknoten fortgepflanzt
wird. Wie hier verwendet, ist ein Timing-Bogen ein Pfad von einem Eingang
eines Matches zu dem Ausgang des Matches. Die Guten jeder Zeile
der Matrix P, die zu einem einzelnen Kinderknoten korrespondieren,
werden von am besten zu am schlechtesten geordnet, wie in 8a dargestellt. Eine sortierte
Liste von Überdeckungen
für den
aktuellen Knoten wird von am besten zu am schlechtesten konstruiert.
Wie oben angedeutet, wird jede Überdeckung
nicht nur ein spezielles Match einbeziehen, sondern auch eine spezielle Überdeckung
für jeden
Kinderknoten des Matches. Die schlechteste Überdeckung für das aktuelle
Match wird die sein, die die Kinderknotenüberdeckungen in der Spalte
der Matrix P verwendet, die zu den schlechtesten Timing-Guten korrespondiert.
In 8a ist dies die ganz
rechte Spalte, die aus den Timings 3, 4, 9, 7 und 6 ns
besteht. Das langsamste dieser Timings, 9 ns, ist die Timing-Güte für die Überdeckung,
die diese Kinderknotenüberdeckungen
verwendet. Diese Überdeckung
wird konstruiert 412, indem das aktuelle Match mit jeder
der spezifizierten Überdeckungen
für die
Kinderknoten kombiniert wird. Ein Test wird durchgeführt 414 zum
Bestimmen, ob es schon mindestens K Überdeckungen innerhalb einer
vordefinierten Gütespanne Δ gibt und
ob die aktuelle Überdeckung
außerhalb
von Δ ist.
In einer Ausführungsform der
Erfindung ist es bevorzugt, K Überdeckungen
innerhalb einer Spanne Δ einer "idealen" Gütezeit zu
finden. Solch eine ideale Gütezeit
kann mittels Durchführen
eines Null-Schlupf-Algorithmus (Zero Slack Algorithm, ZSA) oder
einer Iterative-Minimax-PERT-(Iterative Minimax-PERT, IMP) Berechnung
erhalten werden. Die ZSA- und IMP-Algorithmen sind in Youssef, Habib
et al., "Bounds
on Net Delays for VLSI Circuits",
IEEE Transactions on Circuits and Systems, Vol. 39, No. 11, November
1992, beschrieben. Der IMP-Algorithmus verteilt Schlupf als eine
Funktion von Gewichten, die auf Gatter-Timing-Bogen festgelegt sind.
Im Kontext dieser Ausführungsform
können
diese Gewichte automatisch als eine Funktion der Flexibilität des Logik-Konus, von dem das
Gatter ein Teil ist, generiert werden.
-
Güte-Timings,
die viel langsamer als die ideale sind, resultieren in nicht erfüllten Timing-Güten-Kriterien
Güten-Timings,
die viel schneller als die ideale sind, resultieren oft in nicht
optimalen Timing- und Flächen-Tradeoffs. Nachdem
K Überdeckungen
innerhalb Δ bestimmt
worden sind, ist es nicht länger
erforderlich, Überdeckungen
zu berücksichtigen,
die nicht in Δ sind.
In einer Ausführungsform
der Erfindung ist Δ gleich
K mal τ.
Wenn beide dieser Tests positiv sind, dann gibt es keine weiteren Überdeckungen
des aktuellen Matches für
die Überdeckungsliste
und das Ende der Schleife für
das aktuelle Match 422 wurde erreicht. Ansonsten wird ein
weiterer Test durchgeführt 416,
um zu bestimmen, ob die aktuelle Überdeckung minderwertig gegenüber einer
anderen Überdeckung
in der Liste ist. Eine Überdeckung
kann zum Beispiel als minderwertig betrachtet werden, wenn sie langsameres
Timing als eine andere Überdeckung
aufweist und sie eine Fläche
hat, die mindestens so groß wie
die andere Überdeckung
ist. In diesem Stadium können
andere Kriterien angewendet werden, um zu bestimmen, ob die Überdeckung
beibehalten werden soll. Wenn die Überdeckung zum Beispiel irgendwelche
Logik-Entwurf-Regeln verletzt oder wenn die Überdeckung Platzierungsprobleme schafft,
soll die Überdeckung
zurückgewiesen
werden als ob sie minderwertig wäre.
Wenn die aktuelle Überdeckung
nicht zurückgewiesen
wird, dann wird die Überdeckung
zu der Überdeckungsliste
für dieses
Match hinzugefügt 418.
-
Nach dem Hinzufügen der Überdeckung 418 (im
Falle nicht-zurückgewiesener Überdeckungen)
oder nach Bestimmen 416, dass eine Überdeckung minderwertig ist,
wird die Matrix P angepasst 420, um die aktuelle Überdeckung
zu entfernen. Jede Instanz der aktuellen Timing-Güte, in diesem
Fall die 9 ns Timing-Güte, wird
aus Matrix P entfernt und jede solche Zeile wird nach rechts verschoben,
wie in 8b. Die neue
rechte Spalte korrespondiert zu einer anderen Überdeckung mit einer besseren
Timing-Güte,
in diesem Fall 8 ns. Eine neue Überdeckung wird für diese
Spalte konstruiert 412 und der Prozess wird wiederholt,
bis mindestens eine Zeile vollständig
entfernt wurde, in diesem Fall nachdem die 4ns-Überdeckung
zu der sortierten Liste hinzugefügt
worden ist.
-
An diesem Punkt ist das aktuelle
Match fertig 422 und die Ausführung fährt mit dem nächsten Match 404 fort.
Dieser Prozess wird fortgesetzt, indem Überdeckungen zu der Überdeckungsliste
für den
aktuellen Knoten hinzugefügt
werden, bis alle Matches verbraucht worden sind.
-
An diesem Punkt ist die Überdeckungsliste
fertig. Die K Überdeckungen,
die dem idealen Güte-Timing am
nächsten
sind, werden beibehalten 424 und die anderen Überdeckungen
werden gelöscht.
In einer Ausführungsform
ist K 3 und Δ wird
als K*τ berechnet,
wobei τ die
Hälfte
des Pin-to-Pin-Verzögerungstimings
des schnellsten Inverters der Zell-Bibliothek ist.
-
Nach Bestimmen der finalen Liste
von K Überdeckungen
für den
aktuellen Knoten ist das Ende der Knotenschleife 426 erreicht
und die Ausführung
fährt mit
dem nächsten
Knoten 400 fort. Nachdem alle Knoten überdeckt worden sind, hat der
letzte besuchte Knoten, der "Wurzelknoten", K individuelle Überdeckungen, wobei
jede ein spezielles Match für
jeden Knoten des Baumes impliziert. Die optimale Wurzelknotenüberdeckung
wird zum Beispiel ausgewählt,
indem bestimmt wird, welche der idealen Timing-Güte für den gesamten Baum am nächsten ist.
Diese Wurzelknotenüberdeckung
weist die gesamte Information auf, die erforderlich ist, um zu bestimmen,
welches Match für
jeden Knoten des Baumes geeignet ist.
-
Die obige Beschreibung ist eingefügt, um den
Ablauf exemplarischer Ausführungsformen
zu illustrieren und ist nicht dazu beabsichtigt, den Anwendungsbereich
der Erfindung zu beschränken.
Der Anwendungsbereich der Erfindung ist nur von den folgenden Ansprüchen zu
beschränken.
Aus der obigen Beschreibung werden viele Variationen für einen
Fachmann ersichtlich sein, die noch von dem Anwendungsbereich der
Erfindung umfasst wären.