-
Die Erfindung betrifft ein Verfahren zum Einfügen von Repeatern in einem integrierten Schaltkreis gemäß dem Oberbegriff des Patentanspruchs 1. Die Erfindung betrifft ferner einen Datenträger mit einem Computerprogramm, das zur Ausführung eines solchen Verfahrens eingerichtet ist.
-
Verfahren zum Entwurf integrierter Schaltkreise sind beispielsweise aus der
US 2003/0229878 A1 , der
US 6,662,349 B2 bekannt. Hierbei werden ausgehend von einem vorgegebenen Schaltplan Bauelemente auf einer Schaltkreisfläche, z. B. einem Substrat, platziert. Bei hochintegrierten Schaltkreisen kann eine solche Platzierung aus Aufwandsgründen nicht mehr manuell erfolgen. Daher wird die Platzierung durch Software automatisiert durchgeführt. Hierbei werden Platzierungsalgorithmen verwendet, die eine optimierte Platzierung der Bauelemente erlauben.
-
Zur Erzielung hoher Verarbeitungsgeschwindigkeiten bei solchen integrierten Schaltkreisen werden ergänzend zu den durch den Schaltplan vorgegebenen Bauelementen an bestimmten Stellen so genannte Repeater eingefügt. Die Repeater dienen dabei als Signalverstärker. Daher können Repeater z. B. auch als Signalregeneratoren bezeichnet werden. Bei bisherigen Entwurfsverfahren integrierter Schaltungen werden die Repeater sozusagen auf Vorrat in die Schaltung eingefügt, z. B. in äquidistanten Abständen. Hieraus ergibt sich ein erhöhter Schaltungsaufwand sowie ein erhöhter Platzaufwand, da grundsätzlich Platz für Repeater vorgesehen sein muss, auch wenn eine abschließende Timing-Analyse ergibt, dass nicht alle Repeater erforderlich sind.
-
Der Erfindung liegt daher die Aufgabe zu Grunde, ein Verfahren zum Einfügen von Repeatern in einem integrierten Schaltkreis anzugeben, dass die vorhandene Schaltkreisfläche effizienter nutzt.
-
Diese Aufgabe wird durch das in dem Anspruch 1 angegebene Verfahren gelöst. Die Unteransprüche geben vorteilhafte Ausgestaltungen der Erfindung an.
-
Mit dem in Anspruch 1 angegeben Verfahren wird ein neuer Ansatz zum Einfügen von Repeatern in einem integrierten Schaltkreis angegeben, bei dem die Platzierungsschritte, die Timing-Analyse und das Einfügen von Repeatern quasi simultan in kleinen Stufen erfolgen können. Hierbei wird insbesondere das Einfügen von Repeatern in Abhängigkeit vom Ergebnis der Timing-Analyse durchgeführt. Hierdurch wird es möglich, Repeater nur dann und nur dort einzufügen, wo eine Verbesserung des Zeitverhaltens des integrierten Schaltkreises erwartet werden kann. Im Vergleich zu bekannten Verfahren werden somit keine überflüssigen Repeater eingefügt, so dass auch keine Platzhalter für Repeater vorgesehen werden müssen. Im Gegensatz zu bekannten Verfahren, bei denen der Platzierungsalgorithmus mit sämtlichen Platzierungsschritten zunächst vollständig durchgeführt wurde und erst danach z. B. eine Timing-Analyse oder eine Verdrahtung durchgeführt wurde, wird hiermit ein integrierter Ansatz vorgestellt, bei dem diese Verfahrensschritte in kleinen Stufen ineinander verschachtelt ausgeführt werden. Hierdurch lässt sich eine sehr präzise Anpassung der tatsächlichen Verteilung der Repeater an das tatsächliche Zeitverhalten des integrierten Schaltkreises realisieren.
-
Als Timing-Analyse sei eine Analyse des zu erwartenden Zeitverhaltens des integrierten Schaltkreises im praktischen Betrieb verstanden.
-
Die Erfindung hat den Vorteil, dass Schaltungsdesigns auch mit einer großen Anzahl an Repeatern beherrscht werden. Die Timing-Informationen können direkt während der Platzierung berücksichtigt werden. Insgesamt werden Repeater nur dort eingefügt, wo es erforderlich ist, so dass keine Platzhalter notwendig sind. Zusätzlich können durch die verringerte Anzahl an Repeatern integrierte Schaltkreise realisiert werden, die einen geringeren Energieverbrauch aufweisen.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird im Verlaufe der Ausführung der Schritte a) bis c) des Anspruch 1 eine Globalverdrahtung der Bauelemente durchgeführt. Die Globalverdrahtung beinhaltet eine Mehrzahl von Globalverdrahtungsschritten. Hierbei kann vor dem Schritt a) wenigstens ein Globalverdrahtungsschritt ausgeführt werden, ggf. können auch mehrere Globalverdrahtungsschritte ausgeführt werden. Dies hat den Vorteil, dass auch die Verdrahtung in kleinen Schritten und quasi simultan mit der Platzierung der Bauelemente und der Einfügung der Repeater durchgeführt wird. Hierdurch wird auch die Globalverdrahtung bereits in den Ablauf der Schritte a) bis c) integriert. Dies erlaubt ist eine realistischere Abschätzung des tatsächlichen Verlaufs der Verdrahtung zwischen den Bauelementen möglich, was wiederum ermöglicht, bei der Timing-Analyse während der Platzierung bereits den Einfluss der Verdrahtung zu berücksichtigen. Bei bekannten Verfahren wurde dagegen lediglich eine Verdrahtung nach Abschluss der gesamten Platzierung der Bauelemente durchgeführt.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung werden während der Globalverdrahtung lediglich Flächensegmente der Schaltkreisfläche reserviert, die für die Verdrahtung der Bauelemente und der Repeater vorgesehen sind. Nach Durchführung des Iterationsverfahrens gemäß Anspruch 1 wird eine Detailverdrahtung der Bauelemente und der Repeater durchgeführt, bei der elektrische Verbindungen bei den Bauelementen und/oder Repeatern innerhalb der reservierten Flächensegmente angeordnet werden. Hierdurch kann der Einfluss der späteren Verdrahtung bereits frühzeitig während der Ausführung der Platzierungsschritte und der Timing-Analyse berücksichtigt werden. Die eigentliche Verdrahtung, d. h. die Herstellung elektrischer Verbindungen zwischen den Bauelementen und/oder den Repeatern, kann dann abschließend als Detailverdrahtung durchgeführt werden, wobei die elektrischen Verbindungen in den zuvor reservierten Flächensegmenten vorgesehen werden. Hierdurch kann der Entwurf und die Realisierung integrierter Schaltkreise weiter optimiert werden.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung werden die Flächensegmente nur in zueinander parallelen und orthogonalen Längsrichtungen angeordnet. Hierdurch werden schräg verlaufende Verbindungen vermieden. Dies erlaubt eine automatische Verdrahtungserstellung durch Verdrahtungsalgorithmen mit höherer Effizienz. Insbesondere bei hochkomplexen integrierten Schaltkreisen kann das Problem minimiert werden, dass automatische Verdrahtungsalgorithmen aufgrund von Leitungskreuzungen an ihre Grenzen gelangen und im Endeffekt keine vollständige Verdrahtung durchführen können.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird ein Globalverdrahtungsschritt nur bedarfsweise und nicht in jedem Durchlauf des Iterationsverfahrens durchgeführt. Der Globalverdrahtungsschritt bzw. die Globalverdrahtungsschritte sind damit optional vorgesehen und werden nur ausgeführt, wenn sie erforderlich sind.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird als Timing-Analyse eine Statische Timing-Analyse durchgeführt, mit der der kritische Signalpfad ermittelt wird. Hierbei wird eine Breitensuche durch den Signalgraph der Schaltung durchgeführt. Dies erlaubt die Ermittlung des kritischen Signalpfads, welcher eine Maßzahl für die Anzahl und Platzierung einzufügender Repeater darstellt. Mittels einer Statischen Timing-Analyse ist eine Analyse des Zeitverhaltens des integrierten Schaltkreises relativ schnell durchführbar, so dass sich dieses Verfahren besonders eignet, in dem Iterationsverfahren gemäß Anspruch 1 vielfach während der Platzierung der Bauelemente durchgeführt zu werden.
-
Die Statische Timing-Analyse (STA) ist ein Standardverfahren, um Timing-Anforderungen von integrierten Schaltkreisen zu untersuchen. Bisher wurde die Statische Timing-Analyse nicht während der Platzierung ausgeführt. Prinzipiell ist die Integration in das Platzierungsverfahren möglich aufgrund der niedrigen Laufzeitkomplexität, welche O(v + e) beträgt, mit der Anzahl Knoten v und Kanten e des Timing-Graphen.
-
Die Timing-Informationen werden durch den Slack Δs repräsentiert. Er wird berechnet aus der Differenz der spätesten Signalankunftszeit auf dem Pfad (Latest Arrival Time, LAT) und der benötigten Signalankunftszeit (Required Arrival Time, RAT): Δs = RAT – LAT. Negativer Slack bedeutet, dass die Timing-Bedingungen verletzt sind. Mit anderen Worten ausgedrückt stellt der Slack eine gewisse Zeitreserve bei der Signalübermittlung dar. Das Einfügen von Repeatern soll bewirken, dass durch geringere Verzögerungszeiten zwischen den Zellen der Slack steigt. Die Ausgabe der implementierten Statischen Timing-Analyse ist eine aufsteigend nach Slack sortierte Liste der einzelnen Timing-Pfade und wird hier verwendet, um Repeater an Timing-kritischen Stellen einzufügen. Der Pfad mit dem geringsten Slack wird als kritischer Pfad bezeichnet.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung ist als Platzierungsalgorithmus ein quadratisches kräftebasiertes Verfahren vorgesehen. Ein solches Verfahren erlaubt eine platzoptimierte und zeitverhaltensoptimierte Platzierung der Bauelemente auf der Schaltkreisfläche.
-
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird im Schritt c) ein Repeater nur eingefügt, wenn die Timing-Analyse einen Bedarf dafür ergibt.
-
In einer vorteilhaften Weiterbildung der Erfindung wird die Gesamtzahl der eingefügten Repeater auf ein viertel der Anzahl aller Zellen des integrierten Schaltkreises begrenzt. Als Zellen kommen z. B. die Bauelemente der Schaltung in Frage.
-
In einer vorteilhaften Weiterbildung der Erfindung werden jeweils eine Mehrzahl von Platzierungsschritten und/oder Timing-Analysen durchgeführt, bevor eine oder mehrere Repeater in die Schaltung eingefügt werden. So können beispielsweise Repeater erst nach ca. 70 Iterationen des Platzierungsschrittes eingefügt werden. Vorteilhaft wird ein Repeater eingefügt, wenn die Timing-Bedingungen der Statischen Timing-Analyse verletzt sind. Vorteilhaft werden für jede Timing-kritische Verbindung Repeater in einem vorgegebenen Abstand mehrfach eingefügt.
-
In einer vorteilhaften Weiterbildung der Erfindung verwendet der Platzierungsalgorithmus als Basisalgorithmus ein quadratisches kräftebasiertes Verfahren, welches im Wesentlichen der neuen Version des Platzierungswerkzeugs ”Kraftwerk” entspricht (beschrieben in: P. Spindler and F. Johannes. Fast and accurate routing demand estimation for efficient routability-driven placement. In DATE ’07: Proceedings of the conference on Design, automation and test in Europe, Seiten 1226–1231, San Jose, CA, USA, 2007. EDA Consortium). Das zu Grunde liegende Konzept und die Eigenschaften dieses Platzierungsverfahrens werden im Folgenden kurz vorgestellt.
-
Das Platzierungsverfahren basiert auf der Minimierung der quadratischen euklidischen Distanz zwischen den zu platzierenden Zellen. Die Kostenfunktion Γcost beinhaltet die Summe aller Beiträge für jede Zweipunktverbindung zwischen zwei Zellen. Jeder dieser Beiträge kann einzeln gewichtet werden. Zum Beispiel führt die Verbindung zwischen den zwei Zellen i und j mit den Koordinaten (xi, yi) und (xj, yj) und der Gewichtung wi,j zu den Kosten ci,j = wi,j·⌊(xi – xj)2 + (yi – yj)2⌋.
-
Die Kostenfunktion lässt sich wie folgt schreiben: Γcost = p →T·C ↔·p → + 2·d →T·p → + rconst
-
Die Platzierung wird beschrieben durch den Vektor p → = (x1, ..., xn, y1, ..., yn)T, der die Koordinaten der n Zellen der Schaltung enthält. Die 2n×2n Matrix C ↔ und der 2n-dimensionale Vektor d → beinhalten die gewichteten Verbindungskosten zwischen beweglichen und nicht beweglichen Zellen. Der konstante Beitrag rconst resultiert aus Verbindungen zwischen nicht beweglichen Zellen (Pad-Zellen). Die Minimierung der Kostenfunktion führt zu dem linearen Gleichungssystem C ↔·p → + d → = 0 →. Die Lösung dieses Gleichungssystems wird interpretiert als Kräftegleichgewicht von Federkräften F →net(p →) = C ↔·p → + d → zwischen den Zellen. Die Gewichte der einzelnen Kosten entsprechen dann Federkonstanten.
-
Der grundlegende Ansatz der kräftebasierten Platzierung ist die Einführung von zusätzlichen Kräften, welche eine Verteilung der Zellen auf der Layoutfläche bewirken. Das Optimierungsziel ist, die Überlappungen der Zellen zu minimieren. Die zusätzlichen abstoßenden Kräfte F →
e werden aus einem virtuellen elektrischen Feld gewonnen, welches berechnet wird, indem virtuelle Flächenladungen in den Bereichen der Zellen aufgetragen werden. Nach dieser ursprünglichen Implementierung werden die Kräfte aufsummiert und iterativ neu berechnet, was zu folgender Gleichung führt:
-
Das hier vorgeschlagene Verfahren verwendet den Ansatz der kräftebasierten Platzierung. Nach diesem werden die abstoßenden Kräfte F →e nicht direkt in das Gleichungssystem eingefügt. Stattdessen werden weitere Federkräfte F →m verwendet. So genannte Zielpunkte (oder Target Points) werden für jede Zelle berechnet und mit dieser verbunden. Es wird eine spezielle Federkonstante wm verwendet. Die Position der Zielpunkte wird bestimmt aus den abstoßenden Kräften F →e mit einem Skalierungsfaktor k, so dass gilt: Ptarget(p →) = p → + k·F →e(p →). Die Kräfte F →m berechnen sich zu F →m = C ↔m·(p → + p →target).
-
Die Matrix C ↔m ist eine Diagonalmatrix und enthält den Eintrag wm auf der Hauptdiagonalen. Die Positionen der Zielpunkte ptarget werden iterativ aus den Zellpositionen berechnet. Der Vektor F →m wird für jede Iteration neu aus den Zielpunkten bestimmt und nur für die jeweils aktuelle Iteration angewendet. Damit die aus der Kraftgleichung neu gewonnenen Zellpositionen erhalten bleiben, werden so genannte Haltekräfte F →hold nach folgender Gleichung eingeführt: F →hold(p →) = –F →net(p →) = C·p→ – d →
-
Das Gleichungssystem zur Berechnung des Platzierungsvektors p → erhält man aus dem Gleichgewicht der drei Kräfte F →hold + F →m + F →net = 0 →. Die Initiallösung ergibt sich aus dem ursprünglichen Gleichungssystem: C ↔·p →(0) + d → = 0 →
-
Die Vorschrift zur iterativen Bestimmung der neuen Platzierung p →(i+1) lautet i > 0: (C ↔+ C ↔m)·(p →(i+1) – p →(i)) + C ↔m·P →target(p →(i)) = 0 → mit P →target(p →(i)) = p →i + k·F →e(p →(i))
-
Diese neue Implementierung der quadratischen kräftebasierten Platzierung zeigt ein günstigeres Konvergenzverhalten. Darüber hinaus ermöglicht die Anwendung von Haltekräften ein konsistentes Einfügen von zusätzlichen Zellen in die aktuelle Platzierung. Verbindungen zwischen Zellen können während der iterativen Berechnung beliebig verändert werden, ohne dass sich die Platzierung abrupt ändert. Die grundsätzlichen Eigenschaften der kräftebasierten Platzierung (gewichtete Netzkräfte und abstoßende Kräfte) bleiben dabei erhalten. Damit ist dieses Platzierungsverfahren bestens geeignet, Repeaterstufen im Laufe der Platzierung einzufügen beziehungsweise zu entfernen.
-
Um die Verzögerungszeit auf den Leitungen abzuschätzen, kann z. B. ein einfaches Leitungsmodell (Wire-Load-Modell) mit Widerstandbelag R'W und Kapazitätsbelag C'W verwendet werden. Die Verzögerungszeit der Leitungen wird im verwendeten Ansatz mit dem Elmore-Delay abgeschätzt. Diese einfache Abschätzung wird verwendet, weil die Verdrahtung während der Platzierung noch nicht festgelegt ist. Für das vorgeschlagene Verfahren zum Einfügen von Repeatern können auch andere, beliebige Berechnungsmethoden und Modelle für die Abschätzung der Verzögerungszeit auf den Leitungen verwendet werden.
-
Die Erfindung betrifft ferner einen Datenträger mit einem Computerprogramm, das zur Ausführung eines Verfahrens der zuvor beschriebenen Art eingerichtet ist. Der Datenträger kann ein üblicher im Handel erhältlicher Datenträger sein, wie z. B. eine Diskette, eine CD oder DVD oder ein Speicherstick. Der Datenträger kann auch ein an ein Netzwerk, z. B. das Internet, angeschlossener Computer oder ein unvernetzter Computer sein.
-
Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Verwendung von Zeichnungen näher erläutert. Es zeigen:
-
1 Die Platzierung von Bauelementen auf einer Schaltkreisfläche in schematischer Darstellung; und
-
2 ein Verfahren zum Einfügen von Repeatern in einem integrierten Schaltkreis.
-
Gemäß 1 sind auf einer Schaltkreisfläche 8 Bauelemente 1, 2, 3 angeordnet. Die Bauelemente 1, 2, 3 sind mittels eines Platzierungsalgorithmus positioniert worden. Als Bauelemente 1, 2, 3 können übliche elektronische Bauelemente vorgesehen sein, wie z. B. Kondensatoren, Widerstände, Transistoren oder auch Standardzellen, Logikgatter etc.
-
Zwischen den Bauelementen 2, 3 ist ein Repeater 4 vorgesehen. Zur Erstellung elektrischer Verbindungen zwischen den Bauelementen 1, 2, 3 und dem Repeater 4 wurden im Laufe des Verfahrens des Entwurfs des integrierten Schaltkreises zunächst Flächensegmente 5, 6 im Rahmen einer Globalverdrahtung vorgesehen. Diese Flächensegmente 5, 6 stellen Reservierungsflächen für zum Abschluss der Erstellung des integrierten Schaltkreises vorzusehende elektrische Verbindungen 9 zwischen den Bauelementen 1, 2, 3 und dem Repeater 4 dar. Wie erkennbar ist, werden die Flächensegmente 5, 6 als horizontal verlaufende Flächensegmente 5 und als vertikal verlaufende Flächensegmente 6 realisiert, so dass die Flächensegmente in Längsrichtung immer zueinander parallel oder orthogonal sind. Die zwischen den Bauelementen 1, 2 dargestellte gestrichelte Linie zeigt zum Vergleich schematisch eine bei konventionellem Schaltkreisentwurf erstellte elektrische Verbindung, die in einem Winkel als direkte Verbindungslinie zwischen den Bauelementen 1, 2 vorgesehen ist.
-
Gemäß 2 weist ein Verfahren zum Einfügen von Repeatern in einem integrierten Schaltkreis zunächst einen Schritt 20 der Initialplatzierung auf. Hierbei wird zunächst eine irgendwie geartete Platzierung der Bauelemente vorgesehen, z. B. nach ihrer Nummerierung im Schaltplan. Sodann folgt als erster Schritt eines Iterationsverfahrens ein Abfrageschritt 30, in dem geprüft wird, ob die Ausführung eines optionalen Globalverdrahtungsschritts erforderlich ist. Hierdurch kann der Globalverdrahtungsschritt lediglich bedarfsweise ausgeführt werden und muss nicht in jedem Durchlauf des Iterationsverfahrens ausgeführt werden. Sofern ein Globalverdrahtungsschritt nicht erforderlich ist, wird von dem Abfrageschritt 30 direkt zu einem Schritt 23 verzweigt. Die Schritte 21, 22 werden dabei übersprungen.
-
Sofern ein Globalverdrahtungsschritt erforderlich ist, wird nach dem Abfrageschritt 30 ein Schritt 21 ausgeführt, in dem eine Verdrahtungstopologie festgelegt wird. Hierauf folgt ein Schritt 22, in dem ein Verdrahtungsmodell aktualisiert wird. Die Schritte 21, 22 sind Teile eines Globalverdrahtungsschritts. Hierbei werden die Flächensegmente 5, 6, wie in 1 dargestellt, platziert. Hiernach erfolgt in einem Schritt 23 eine neue Platzierung der Bauelemente 1, 2, 3 gemäß einem oder mehreren Platzierungsschritten des als Platzierungsalgorithmus verwendeten quadratischen kräftebasierten Verfahrens und eine Bestimmung des prinzipiellen Verdrahtungsverlaufs. In einem darauf folgenden Schritt 24 wird eine Timing-Analyse des integrierten Schaltkreises gemäß der zu diesem Zeitpunkt erfolgten Platzierung der Bauelemente und der Globalverdrahtung durchgeführt. In einem Schritt 25 wird die Timing-Analyse dahingehend ausgewertet, dass geprüft wird, ob ein Repeater 4 oder ggf. eine Mehrzahl von Repeatern erforderlich ist. Sofern Repeater erforderlich sind, wird direkt zu einem Schritt 26 verzweigt, in dem entsprechende Repeaterstufen eingefügt werden. Andernfalls wird der Schritt 26 übersprungen und mit einem Schritt 27 fortgefahren.
-
Im Schritt 27 wird geprüft, ob die Schritte 21 bis 26 wiederholt werden sollen oder die Schleife abgebrochen werden kann. Sofern im Schritt 27 festgestellt wird, dass der Schaltplan noch nicht vollständig umgesetzt ist, wird zurückverzweigt zum Schritt 21. Andernfalls wird mit einem Schritt 28 fortgefahren, in dem eine Detailplatzierung der Bauelemente 1, 2, 3 und der Repeater 4 durchgeführt wird. Schließlich wird in einem nachfolgenden Schritt 29 eine Detailverdrahtung durchgeführt. Hierbei werden elektrische Verbindungen zwischen den Bauelementen 1, 2, 3 und/oder den Repeatern innerhalb der in den Schritten 21 und 22 reservierten Flächensegmente angeordnet.
-
Als Ergebnis liefert das Verfahren eine Netzliste, die direkt in einen Herstellungsautomaten für integrierte Schaltkreise eingespeist werden kann. Vorteilhaft enthält die Netzliste zusätzlich zu den Bauelementen, d. h. den logischen Gattern der Schaltung, die eingefügten Repeaterzellen. Im Ergebnis wird eine Netzliste für einen integrierten Schaltkreis erzeugt, die vorgegebenen Timing-Anforderungen genügt.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 2003/0229878 A1 [0002]
- US 6662349 B2 [0002]
-
Zitierte Nicht-Patentliteratur
-
- P. Spindler and F. Johannes. Fast and accurate routing demand estimation for efficient routability-driven placement. In DATE ’07: Proceedings of the conference on Design, automation and test in Europe, Seiten 1226–1231, San Jose, CA, USA, 2007. EDA Consortium [0020]