DE69722425T2 - Verfahren und vorrichtung zum routing von netzen in einem elektronischen gerät - Google Patents

Verfahren und vorrichtung zum routing von netzen in einem elektronischen gerät

Info

Publication number
DE69722425T2
DE69722425T2 DE69722425T DE69722425T DE69722425T2 DE 69722425 T2 DE69722425 T2 DE 69722425T2 DE 69722425 T DE69722425 T DE 69722425T DE 69722425 T DE69722425 T DE 69722425T DE 69722425 T2 DE69722425 T2 DE 69722425T2
Authority
DE
Germany
Prior art keywords
nodes
clusters
logical
subgraphs
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69722425T
Other languages
English (en)
Other versions
DE69722425D1 (de
Inventor
Ilan Algor
Gabriel Bracha
Eytan Weisberger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola Inc filed Critical Motorola Inc
Application granted granted Critical
Publication of DE69722425D1 publication Critical patent/DE69722425D1/de
Publication of DE69722425T2 publication Critical patent/DE69722425T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

    Technisches Gebiet
  • Diese Erfindung betrifft die Konstruktion von elektronischen Geräten, wie etwa einem integrierten Schaltungschip und insbesondere das Führen von Netzen in derartigen Chips, um die Verbindungskosten zu minimieren und die Betriebsgeschwindigkeit zu maximieren.
  • Hintergrund der Erfindung
  • Aus dem Stand der Technik ist eine Reihe von Lösungswegen für das Konstruieren von sehr hochintegrierten ("very large scale integrated = (VLSI)") Schaltungschips bekannt, besonders was das Führen von Netzen zwischen den internen Komponenten eines Chips betrifft. Kanalführung wird bei der Anordnung bzw. dem Layout von integrierten Schaltungen und Leiterplatten häufig verwendet. Es ist ausreichend flexibel, um seine Verwendung in verschiedenen Konstruktionsarten, wie etwa Gate-Arrays, Standardzellen und Makrozellen zuzulassen.
  • Eine Kanalführungseinrichtung ist zum Führen von Netzen konstruiert, die auf zwei entgegengesetzten Seiten eines als Kanal bezeichneten Bereichs befindliche Knotenpunkte miteinander verbinden. Kriterien für einen guten Kanalführer sind, dass er die Verbindungen in einem Minimalbereich führt, wobei die hinzugefügte Länge der Netzverdrahtung ebenfalls minimal ist. Beispiele für Kanalführer gemäß dem Stand der Technik werden beispielsweise beschrieben in "IEEE TRANS-ACTIONS ON COMPUTER-AIDED DESIGN", Band CAD-4, Nr. 3, Juli 1985, Seiten 208-219, von James Reed et al. und in "CHAMELEON: A NEW MULTI-LAYER CHANNEL ROUTER", Douglas Braunt et al., "IEEE, 1986, conference proceedings of the 23rd design automation conference".
  • Um die Gesamtqualität des Führens zu erhöhen, sind Versuche unternommen worden, Informationen über die sogenannten "Durchführungen" ("feed-throughs") in den Prozess der Kanalführung einzubeziehen. Solche Lösungswege sind bekannt aus "FEED THROUGH RIVER ROUTING", A. Joseph et al., INTEGRATION, das VLSI-Journal 8, Seiten 41-50, Verlag El Revier Science Publishers B. V., 1989 und "MULTI CHANNEL OPTIMIZATION IN GATE-ARRAY LSI LAYOUT", K. Aoshima und E. S. Kuh, IEEE, 1983.
  • Da ein ständiger Bedarf besteht, die Verdrahtungsdichte in der VLSI-Technologie weiter zu erhöhen, ist es ein zugrunde liegendes Problem der Erfindung, ein verbessertes Verfahren zum Führen von Netzen für die Konstruktion von elektronischen Geräten zu finden.
  • Des Weiteren zielt die Erfindung auf die Bereitstellung eines verbesserten elektronischen Gerätes, das gemäß dem verbesserten Führungsverfahren geführt wird.
  • Zusammenfassung der Erfindung
  • Das zugrunde liegende Problem der Erfindung wird im Grunde durch die Anwendung der in den unabhängigen Ansprüchen niedergelegten Eigenschaften gelöst. Bevorzugte Ausführungsformen der Erfindung werden in den abhängigen Ansprüchen angegeben.
  • Die Erfindung ist deshalb vorteilhaft, weil sie die Konstruktion einer VLSI-Anordnung zulässt, die ein Minimum an Silizium-Bodenfläche erfordert, was sich positiv auf die Chipausbeute und den Preis auswirkt. Diese extremen Anordnungsdichten können durch eine voll automatisierte Lösung erzielt werden, die hinsichtlich Computerspeicher und Laufzeit lediglich bescheidene Rechenmittel erfordert.
  • Die Erfindung ermöglicht das Erzeugen von getrennten Teilgraphen, die sowohl für die sogenannten "Clusterbereiche" als auch für die "Kanalbereiche" die zu verbindenden Knotenpunkte enthalten. Diese Teilgraphen werden von Eingabedaten abgeleitet, die sowohl die Knotenpunkte von jedem zu führenden Netz als auch die Zuteilung der Knotenpunkte an Cluster umfasst. Zusätzliche logische Knotenpunkte, die mittels eines minimalen Steinerbaumes ("minimal Steiner tree") definiert werden, werden in die Eingabedaten eingefügt, wodurch die Teilgraphen gefunden werden. Wenn die Cluster horizontal ausgerichtet sind, ist es vorteilhaft, geradlinige Steinerbäume ("Steiner trees") zum Definieren solcher zusätzlicher logischer Knotenpunkte zu verwenden.
  • Jeder Cluster weist einen Teilgraphen für jedes zu verdrahtende Netz auf. Analog weist jeder Kanal für jedes Netz einen bestimmten Teilgraphen auf. Da die Teilgraphen für die einzurichtenden Verbindungen deskriptiv sind, kann irgendein Verfahren, einschließlich eines von Hand gefertigten Entwurfs, verwendet werden, um die Teilgraphen tatsächlich zu führen - oder mit anderen Worten - die Teilgraphen auf dem physischen Aufbau des integrierten Schaltungschips abzubilden.
  • Zum Führen des Kanalbereichs sind viele dem bekannten Stand der Technik entsprechende automatisierte Verfahren bekannt. Falls ein solches Verfahren verwendet werden soll, können die Teilgraphen des Kanalbereichs als Eingabedaten für solche dem bekannten Stand der Technik entsprechende Verfahren verwendet werden.
  • Zum Führen der Cluster ist es vorteilhaft, das automatisierte Führungsverfahren zu verwenden, das in den abhängigen Verfahrensansprüchen beschrieben wird. Für dieses Verfahren müssen zuerst die tatsächlichen elektrischen Verknüpfungen beschrieben werden, die zwischen den Knotenpunkten in jedem der Cluster eingerichtet werden können. Dies wird durch eine graphische Darstellung durchgeführt, welche die Grundlage des Intracluster-Führungsverfahrens bildet.
  • Nach diesem Verfahren werden Teilgraphen, welche die erwünschten, zwischen den Knotenpunkten in einem gegebenen Cluster einzurichtenden elektrischen Verbindungen darstellen, auf einem Graphen abgebildet, welcher die potentiellen elektrischen Verknüpfungen innerhalb des gegebenen Clusters darstellt. Zur Ausführung dieses Verfahrens ist keine menschliche Einwirkung erforderlich. Die Schritte des Verfahrens gemäß der Erfindung können realisiert werden durch Programmieren eines digitalen Universalrechners, der mit den erforderlichen Konstruktionsdaten gefüttert wird, d. h. die Plazierung der Cluster, die zu verdrahtenden Netze und die Zuteilung der Knotenpunkte der Netze an die Cluster.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 ist ein schematisches Schaltbild, das den Aufbau einer Bitzelle illustriert;
  • Fig. 2 ist ein vereinfachtes Diagramm zum Illustrieren des Vorgangs des Verknüpfens einzelner Bitzellen und der Clusterführung;
  • Fig. 3 ist ein Bereich eines Schaltbildes, das die Bildung von Clustern und Kanälen zwischen den Clustern illustriert;
  • Fig. 4 ist ein vereinfachtes Schaltbild, das die Definition von logischen Knotenpunkten illustriert;
  • Fig. 5 ist ein Diagramm, das die Umwandlung der Eingabedaten in zwei getrennte Teilgraphen zeigt;
  • Fig. 6 und 7 zeigen die Formgebung der Durchführungen gemäß der Erfindung;
  • Fig. 8 ist ein Flussdiagramm, das die Erzeugung von Teilgraphen für die Cluster- und Kanalführung illustriert;
  • Fig. 9 ist ein Flussdiagramm, das die Erzeugung eines Graphen illustriert, der potentielle Verknüpfungen in einem Cluster darstellt; und
  • Fig. 10 ist ein Flussdiagramm, welches die Intraclusterführung gemäß der Erfindung illustriert.
  • In Fig. 1 wird eine schematische Ansicht der Schaltanordnung der Bitzelle 19 gezeigt. Eine Bitzelle, die manchmal auch "leave cell" genannt wird, ist die grundlegende Baueinheit eines Funktionsblocks in einer integrierten Schaltung, wie etwa ein Datenpfadblock. Allgemein gesagt, wird eine Bitzelle geplant, um eine vorgegebene Funktionalität zu erbringen, eine gewisse Schnittstelle für Verbindungen zu schaffen und durch und/oder über sie selbst eine querende Führung zu unterstützen.
  • Die zellenfunktionalität einer Bitzelle wird mit Hilfe von Geometrien eingerichtet und durch Transistoren vordefiniert. Gewisse Punkte innerhalb einer Bitzelle sind als interne Pins oder potentielle Verbindungspunkte bestimmt. Solche Punkte werden im Folgenden als "Knotenpunkte" bezeichnet. Die Knotenpunkte werden typischerweise in der obersten Metallschicht des Schaltungsaufbaus implementiert, können aber ebenfalls in jeder anderen Schicht implementiert werden.
  • Der typische Weg, eine Verbindung an einen Stift einzurichten, ist durch Durchgänge. Durchgänge sind Anordnungsaufbauten, die das Queren von einer Schicht der Schalttopologie zu einer anderen zulässt. Zur Optimierung des Anordnungsprozesses sind optionale und potentielle Durchgänge in der zugrunde liegenden Struktur des zu konstruierenden elektronischen Gerätes verfügbar. Wenn die patentiellen Durchgänge für die Schaltanordnung nicht erforderlich sind, behindern sie nicht und gestatten anderem Führen das Queren.
  • Außerdem kann man spezielle Pfade benennen, die potentielle Verbindungen des Knotenpunktes einer Bitzelle an die Abgrenzung der Bitzelle sind, oder welche die Bitzelle von einer Seite zu einer anderen queren. Derartige Aufbauten werden als Durchführungen bezeichnet. Diese sind ebenfalls potentielle Geometrien von Verknüpfungen, die nur dann implementiert werden, falls es tatsächlich erforderlich ist, dass sie das Führen zwischen den Knotenpunkten von Bitzellen einrichten oder über eine Bitzelle queren.
  • Als Beispiel weist die Bitzelle 19 eine Reihe von vertikalen Durchführungen 10 und horizontalen Durchführungen 12 auf. Die Durchführungen 10 und 12 definieren potentielle Verdrahtungsgeometrien, die zum Führen der integrierten Schaltung verwendet werden können. Die durch die ausgefüllten gestrichelten Kästchen in Fig. 1 symbolisierten Durchgänge 14 dienen dazu, die Knotenpunkte 18 mit den Durchführungen zu verbinden.
  • Die durch die leeren gestrichelten Kästchen in Fig. 1 symbolisierten Durchgänge 16 definieren potentielle Durchgänge, die nicht direkt einem der Knotenpunkte 18 zugeteilt sind. Also definieren die Durchführungen 10, 12, und die Durchgänge 14, 16 zulässige elektrische Verknüpfungen zum Verbinden der Knotenpunkte 18 innerhalb der Bitzelle 19 mit Knotenpunkten innerhalb derselben Bitzelle 19 oder mit anderen Bitzellen oder externen Pins des in Fig. 1 nicht gezeigten integrierten Schaltungschips.
  • Fig. 2 enthält eine Folge von drei Figur, d. h. Fig. 2A, 2B und 2C zum Illustrieren des Verkettungs- und Führungsprozesses. Fig. 2A zeigt eine Bitzelle 29, die ähnlich der Bitzelle 19 von Fig. 1 ist. Zur Klarheit ist die Anordnung der Bitzelle 29 vereinfacht: Die Bitzelle 29 weist lediglich die Durchführungen 20 und 22 sowie einen Knotenpunkt 28 auf, obwohl in der Praxis typischerweise eine viel größere Reihe von Komponenten und Verdrahtungsgeometrien vorhanden ist.
  • Fig. 2B illustriert, wie eine Mehrzahl von Bitzellen 29 miteinander verkettet werden. Die Durchführungen 20, 22 sind so konstruiert, dass wenn Zellen miteinander verkettet werden oder aneinander angrenzen, grenzen ihre Durchführungen zur Schaffung von längeren und komplexeren potentiellen Pfaden ebenfalls aneinander an, damit die Verknüpfungen ein Raster oder Gitter bilden, das eine Mehrzahl von miteinander verketteten Bitzellen überspannt. Ein derartiges Gitter vereinfacht der Führungssoftware die Aufgabe.
  • Fig. 2C zeigt als Beispiel, wie die miteinander verketteten Bitzellen 29 von Fig. 2B geführt werden. Die schraffierten oder "bemalten" Durchführungen 24 und 26 werden tatsächlich für die physische Implementierung der integrierten Schaltung verwendet, wohingegen die anderen, durch die verbliebenen Durchführungen 20, 22 definierten potentiellen elektrischen Verknüpfungen nicht zur Einrichtung elektrischer Verbindungen zwischen den Knotenpunkten 28 verwendet werden.
  • Fig. 3 zeigt einen Bereich des integrierten Schaltungschips 39. Der integrierte Schaltungschip 39 umfasst eine große Reihe von Cluster. Zur Vereinfachung werden in Fig. 3 nur die Cluster 30, 31 und 32 gezeigt. Jeder der Cluster 30, 31 und 32 umfasst eine Mehrzahl von Bitzellen, die, wie in Fig. 2 gezeigt, miteinander verkettet sind. Die Abstände zwischen den Clustern 30, 31 und 32 werden als Kanäle bezeichnet. Der Kanal 37 liegt zwischen den Clustern 30 und 31; der Kanal 38 liegt zwischen den Clustern 31 und 32. Die Cluster 30, 31 und 32 sind durch die Verdrahtung 36 miteinander verbunden. Die Verdrahtung 36 ist aus horizontalen und vertikalen Führungen sowie Durchgängen, zusammengesetzt.
  • Ein Bereich der Verdrahtung 36 wird innen in den Clustern 30, 31 und 32 implementiert, was als Intraclusterführung bezeichnet wird. Ein weiterer Bereich der Verdrahtung 36 wird in den Kanalbereichen 37, 38 implementiert; dieser Bereich der Verdrahtung 36 wird als Kanalführung bezeichnet. Zur Vereinfachung werden in Fig. 3 lediglich eine kleine Anzahl von Führungen gezeigt.
  • Fig. 4 umfasst eine schematische Darstellung der Cluster 40, 41 und 42 des integrierten Schaltungschips 39. Jeder der Cluster 40, 41 und 42 umfasst eine Reihe von miteinander verketteten Bitzellen. Die Bitzellen des Clusters 40 weisen die Knotenpunkte 1.1, 2.1, 1.2, 2.2 und 2.3 auf; die Bitzellen des Clusters 41 weisen die Knotenpunkte 2.4, 2.5, 1.3, 2.6 und 1.4 auf; die Bitzellen des Clusters 42 weisen die Knotenpunkte 1.5, 2.7, 1.6, 2.8 und 1.7 auf. Diese Knotenpunkte gehören zu unterschiedlichen Netzen: ein Satz von Knotenpunkten, die mit demselben Signal verbunden werden sollen, werden im Folgenden als Netz bezeichnet.
  • Alle Knotenpunkte 1.x gehören zu dem Netz 1, wohingegen alle Knotenpunkte 2.x zu dem Netz 2 gehören. Für den ordnungsgemäßen Betrieb der zu implementierenden integrierten Schaltanordnung ist es wesentlich, dass sich die Führungen von unterschiedlichen Netzen, welche die erforderlichen Knotenpunkte miteinander verbinden, nicht berühren. Andererseits ist für eine gute Nutzung der verfügbaren Silizium-Bodenfläche und für kurze Ausbreitungsverzögerungen eine minimale Gesamtlänge der Schaltungsverdrahtung höchst wünschenswert. Dies trifft sowohl auf die Intraclusterführung der Cluster 40, 41 und 42 als auch auf die Kanalführung zu.
  • In dem hierin angesprochenen Beispiel befinden sich ein Kanalbereich A zwischen den Clustern 40 und 41 und ein Kanalbereich B zwischen den Clustern 41 und 42 sowie die Kanalbereiche C und D in vertikaler Richtung.
  • Zum Führen der Netze in einem ersten Schritt wird ein minimaler Steinerbaum 44 errichtet, der die Knotenpunkte miteinander verbindet, die zu dem Netz 1 aller Cluster des integrierten Schaltkreises, einschließlich der Cluster 30, 31, 32, 40, 41 und 42, gehören. Die Bedingung für den minimalen Steinerbaum 44 ist, dass
  • a) er mindestens einen Knotenpunkt des Netzes 1 von jedem der Cluster miteinander verbindet, vorausgesetzt, dass sich mindestens ein zu dem Netz 1 gehörender Knotenpunkt in einem vorgegebenen Cluster befindet; und dass
  • b) seine Gesamtlänge minimal ist.
  • Dies trifft analog auf Steinerbäume für andere Netze, z. B. Netz 2, zu. Da in der hier berücksichtigten technischen Umgebung nur geradlinige Führungen zulässig sind, muss auch der Steinerbaum 44 geradlinig sein. Die Theorie der Steinerbäume als solches ist aus der Technik bekannt, z. B. von M. Hanan, "ON STEINER MINIMUM TREES WITH RECTILINEAR DISTANCES, SIAM", J. Appl. Math. Band 16, Nr. 1, Seiten 255-265, 1966. Der Gebrauch von geradlinigen Steinerbäumen ist ebenfalls ausgearbeitet in dem US Patent 4,577,276 an Dunlop et al. für das Anordnen von integrierten Schaltungen auf einem Substrat sowie in "IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems", Band 13, Nr. 12, 1. Dezemeber 1994, Seiten 1461 - 1469, XP000491294; C. Chiang et al.: "A weighted Steiner Tree-Based Global Router with Simultaneous Length and Density Minimization" und WO-A-91 06061 (VLSI TECHNOLOGY, INC.).
  • Der Steinerbaum 44 für das Netz 1 verbindet einen zu dem Netz 1 gehörenden Knotenpunkt in jedem der Cluster. Wie in Fig. 4 gezeigt, verbindet der Steinerbaum 44 logisch den Knotenpunkt 1.2 in dem Cluster 40, den Knotenpunkt 1.3 in dem Cluster 41 und den Knotenpunkt 1.6 in dem Cluster 42. Andere Cluster, die mindestens einen zu dem Netz 1 gehörenden Knotenpunkt enthalten, die in Fig. 4 nicht gezeigt werden, werden ebenfalls auf dieselbe Weise durch den Steinerbaum 44 überspannt.
  • Analog wird ein minimaler Steinerbaum ebenfalls für das Netz 2 eingerichtet. Zur Vereinfachung wird der Steinerbaum des Netzes 2 in Fig. 4 nicht gezeigt. In einer praktischen Konstruktion sind weit mehr als 2 Netze vorhanden, so dass eine große Anzahl von Steinerbäumen in einer praktischen Konstruktion eingerichtet wird.
  • In einer praktischen Konstruktion umfassen nicht alle Cluster notwendigerweise einen Knotenpunkt von jedem Netz. Daher existiert für jedes Netz ein Teilsatz aus Clustern. Jeder Cluster, der zu einem solchen Teilsatz gehört, umfasst mindestens einen Knotenpunkt, der zu dem Netz gehört, dem der Teilsatz dieses Clusters zugeteilt ist. In dem hier in Betracht gezogenen mehr allgemeinen Fall muss ein minimaler Steinerbaum von einem der zu führenden Netze alle Cluster dieses Netzes abspannen. Dadurch wird mindestens ein Knotenpunkt von jedem Cluster, der einen zu dem zu führenden Netz gehörenden Knotenpunkt aufweist, mit mindestens einem anderen Knotenpunkt desselben Netzes in den anderen Clustern desselben Teilsatzes von Clustern logisch verbunden.
  • Anzumerken ist, dass die minimalen Steinerbäume, insbesondere der in Fig. 4 gezeigte Steinerbaum 44, nicht direkt die Plazierung der Schaltungsverdrahtung definieren. Sobald die Steinerbäume gefunden sind, d. h. ein minimaler Steinerbaum für jedes Netz, werden zusätzliche logische Knotenpunkte zum Erzeugen einer verbesserten graphischen Darstellung von jedem der zu führenden Netze definiert.
  • Diese logischen Knotenpunkte werden durch die Schnittpunkte der Steinerbäume mit den Abgrenzungen des Kanalbereichs bestimmt. In dem in Fig. 4 in Betracht gezogenen Beispiel sind dies die logischen Knotenpunkte V1, V2, V3, und V4. Der logische Knotenpunkt V1 liegt an dem Schnittpunkt des Steinerbaumes 44 und der unteren Angrenzung des Clusters 40 zu dem Kanalbereich A. Gleichermaßen liegt der logische Knotenpunkt V2 an der oberen Abgrenzung des Clusters 41 zu dem Kanalbereich A; der logische Knotenpunkt V3 liegt an der unteren Abgrenzung des Clusters 41 zu dem Kanalbereich B und der logische Knotenpunkt V4 liegt an der oberen Abgrenzung des Clusters 42 zu dem Kanalbereich B. Der minimale Steinerbaum von jedem der zu führenden Netze bringt derartige logische Knotenpunkte hervor.
  • Fig. 5 zeigt eine graphische Darstellung G&sub1; des in Fig. 4 gezeigten Bereichs des Netzes 1. Die graphische Darstellung G&sub1; umfasst eine Liste der dem Netz 1 zugeteilten Knotenpunkte 1.x. Des Weiteren umfasst die graphische Darstellung topologische Informationen bezüglich der Plazierung der Knotenpunkte 1.x in den Clustern. Diese Informationen werden durch die Sätze 50, 51 und 52 symbolisiert, die den jeweiligen Clustern 40, 41 bzw. 42 von Fig. 4 entsprechen. Die in der graphischen Darstellung G&sub1; enthaltenen Informationen werden als Eingabedaten benötigt.
  • Die zusätzlichen logischen Knotenpunkte V1, V2, V3 und V4, die mittels des minimalen Steinerbaumes 44 gefunden werden, werden in die graphische Darstellung des Netzes 1 einbezogen, so dass die graphische Darstellung G&sub1; in die graphischen Darstellungen Sie und g1CH umgewandelt wird. Diese Umwandlung wird durch Aufnahme der zusätzlichen logischen Knotenpunkte V1, V2, V3 und V4 in die Liste der in der graphischen Darstellung G&sub1; enthaltenen Knotenpunkte ausgeführt.
  • Die zusätzlichen logischen Knotenpunkte werden in den Teilsatz der logischen Knotenpunkte 50, 51 und 52 eingefügt, so dass daraus die Teilgraphen g&sub1;&sub0;, g&sub1;&sub1; und g&sub1;&sub2; resultieren. Die in den Kanalbereichen befindlichen Bereiche des Steinerbaumes 44 werden in der die Teilgraphen g1A und g1B umfassenden graphischen Darstellung g1CH reflektiert. Der Teilgraph g1A ist für die für das Netz 1 über den Kanalbereich A einzurichtenden Verbindungen typisch, wohingegen der Teilgraph g1B für die für das Netz 1 über den Kanalbereich B einzurichtenden Verbindungen typisch ist - die sogenannte Kanalführung.
  • Daher enthält der Teilgraph G1A die logischen Knotenpunkte V1 und V2, die an der Abgrenzung des Kanals A liegen und durch den Steinerbaum 44 miteinander verbunden sind, wohingegen der Teilgraph g1B die miteinander verbundenen Knotenpunkte V3 und V4 enthält, die an der Abgrenzung des Kanalbereichs B liegen.
  • Folglich ergeben sich für das Netz 1 zwei unterschiedliche Sätze von Teilgraphen: der erste Satz von Teilgraphen umfasst die Teilgraphen g&sub1;&sub0;, g&sub1;&sub1;, g&sub1;&sub2;. Was die Knotenpunkte und die logischen Knotenpunkte für das Netz 1 im Inneren dieses Clusters betrifft, deckt jeder von diesen Teilgraphen einen der Cluster ab.
  • Der zweite Satz von Teilgraphen umfasst die Teilgraphen g1A und g1B. Dieser Satz von Teilgraphen deckt die Kanalbereiche A und B ab.
  • Zur Vereinfachung und Klarheit werden die übereinstimmenden Graphen für das Netz 2 in der Fig. 5 nicht gezeigt.
  • Fig. 6 zeigt ein vereinfachtes Beispiel der potentiellen Verknüpfungen, die innerhalb eines Clusterbereichs 60 physisch implementiert werden können. Innerhalb des Clusterbereichs 60 befindet sich ein Knotenpunkt N, der durch einen Durchgang V mit einer Kopfplatte T4 des Durchgangs V verbunden werden kann. Die Kopfplatte T4 kann durch eine der Durchführungen El, F2, F7 und F8 berührt werden. Über die Durchführungen F2 und F7 kann auf die anderen Durchführungen F3, F5, F6 oder F9 zugegriffen werden. Die Durchführungen sowie die Kopfplatte T4 und der Durchgang V definieren zulässige elektrische Verknüpfungen, die durch die Führung zum Verdrahten des Netzes benutzt werden können. Die in Fig. 6 enthaltenen Informationen werden durch die in Fig. 7 gezeigte graphische Darstellung modelliert.
  • Es befinden sich drei unterschiedliche Typen von Rändern bzw. Kanten in dem Graph von Fig. 7: Der erste Randtyp richtet die geometrische Umgebung zwischen seinen Scheiteln bzw. Scheitelpunkten ein. Geometrische Umgebung bedeutet, dass eine potentielle elektrische Verknüpfung zwischen den Scheitelpunkten dieses Randes besteht. Zum Beispiel stellt der Rand 70, der die Scheitelpunkte F5 und F9 verbindet, die Geometrie des Clusterbereichs 60 von Fig. 6 dar, in dem die Durchführungen F5 und F9 aneinander grenzen, so dass eine von den verketteten Durchführungen F5 und F9 Gebrauch machende elektrische Verknüpfung eingerichtet werden kann. Diese Art von geometrischer Umgebung wird durch eine normale gerade Linie zwischen den Scheitelpunkten in Fig. 7 symbolisiert.
  • Der zweite Randtyp richtet mit Bezug auf die unterschiedlichen Netze ein gegenseitiges Ausschlussverhältnis zwischen seinen Scheitelpunkten ein. Dies ist bei den Rändern 71 und 72 der Fall, welche die Scheitelpunkte D, F6 bzw. D, F7 verbinden. Das gegenseitige Ausschlussverhältnis zwischen den Rändern 71 und 72 wird durch den Doppelpfeil 73 zwischen diesen Rändern symbolisiert. Das gegenseitige Ausschlussverhältnis ist für die Tatsache typisch, dass die Zuführungen F6 und F7 nicht für das Verdrahten von unterschiedlichen Netzen verwendet werden können. Dies wird durch die Tatsache begründet, dass sich die Durchführungen in der Topologie der in Fig. 6 gezeigten zulässigen elektrischen Verknüpfungen berühren, so dass beide Durchführungen F6 und F7 nicht für das Verdrahten von unterschiedlichen Netzen mit unterschiedlichen Signalen verwendet werden können. Ansonsten würde sich zwischen den unterschiedliche Signale tragenden Netzen ein Kurzschluss ergeben. Eine derartige Beziehung gegenseitigen Ausschlusses existiert zwischen den Durchführungen F8 und F9 nicht, da sich diese Durchführungen in der in Fig. 6 gezeigten Topologie nicht berühren.
  • Der dritte Randtyp richtet zur Darstellung der zusätzlichen logischen Knotenpunkte ein Kanalgrenzverhältnis ein. Die Scheitelpunkte A, B, C, und D sind Darstellungen von solchen mit den logischen Knotenpunkten V1, V2, V3 und V4 von Fig. 4 analogen logischen Knotenpunkten. Dieser dritte Randtyp symbolisiert eine zulässige elektrische Verknüpfung über eine Durchführung, einen Durchgang oder einen Knotenpunkt mit einem zusätzlichen logischen Knotenpunkt von einem der Kanalbereiche. In dem hier in Betracht gezogenen Beispiel sind dies die durch gestrichelte Linien dargestellten Scheitel 71 bis 76.
  • Beispielsweise verbindet die Durchführung F3 den Cluster 60 direkt mit dem Kanalbereich A und kann folglich behilflich sein beim Einrichten einer Verbindung mit einem logischen Punkt V1, der mittels des minimalen Steinerbaumes 44 (vgl. Fig. 4) gefunden worden ist.
  • Beziehungen gegenseitigen Ausschlusses können nur zwischen Rändern des dritten Typs bestehen.
  • Der in Fig. 7 gezeigte Graph wird verwendet zum Abbilden der Teilgraphen, die typisch sind für die Verbindungen von zu demselben Netz innerhalb eines Clusters gehörenden Knotenpunkten, zum Beispiel g&sub1;&sub0;, g&sub1;&sub1;, g&sub1;&sub2; von Fig. 5, auf die tatsächlich zulässigen elektrischen Verbindungen der vorgegebenen Schaltungstopologie, einschließlich potentieller Verknüpfungen.
  • Fig. 8 ist ein Flussdiagramm, das eine Ausführungsform des Verfahrens gemäß der Erfindung illustriert. Gemäß dieser Ausführungsform wird das Verfahren durch ein Rechnerprogramm ohne menschliche Einwirkung ausgeführt.
  • Bei Schritt 80 werden die Eingabedaten an das Rechnerprogramm überstellt. Die Eingabedaten sind Sätze von Knotenpunkten NOj. Jeder Satz von Knotenpunkten NOj definiert ein zu führendes Netz Ni. Alle Knotenpunkte innerhalb desselben Netzes müssen letztendlich miteinander verbunden werden. Für jeden der Knotenpunkte Nov werden weitere Informationen an den Cluster Ck übermittelt, dem er angehört.
  • Diese Informationen sind äquivalent zu den graphischen Darstellungen G&sub1; von Fig. 5.
  • Bei Schritt 81 wird die Variable i zum Auswählen von einem der Netze Ni zum Führen initialisiert. Bei Schritt 82 wird ein minimaler geradliniger Steinerbaum für das ausgewählte Netz Ni erzeugt. Wie in dem in Fig. 4 beschriebenen Beispiel verbindet der geradlinige minimale Steinerbaum die Knotenpunkte NOj desselben Netzes Ni in unterschiedlichen Clustern über die Kanäle hinweg. Bei Schritt 83 werden die Schnittpunkte des bei Schritt 82 gefundenen Steinerbaumes mit der Abgrenzung zwischen den Kanalbereichen und den Clustern bestimmt.
  • Bei Schritt 84 werden die logischen Knotenpunkte Vik als die Schnittpunkte des Steinerbaumes mit der bei Schritt 82 definierten Kanal-Cluster-Abgrenzung definiert. Dieses ist analog mit der Definition der logischen Knotenpunkte V1, V2, V3 und V4 von Fig. 4.
  • Bei Schritt 85 sind die bei Schritt 84 angetroffenen logischen Knotenpunkte Vik in dem Netz N1 enthalten. Dadurch werden die Teilgraphen gk für die Cluster und die Teilgraphen gCH für die Kanäle auf dieselbe Weise wie in dem Beispiel von Fig. 5 erzeugt, wo die Teilgraphen g&sub1;&sub0;, g&sub1;&sub1;, g&sub1;&sub2; für die Cluster und g1A, g1B für die Kanäle ihren Ursprung haben. Nach der Ausführung des Schritts 85 wird die Variable i zum Auswählen eines weiteren Netzes N1 erhöht. Diese Erhöhung wird bei Schritt 86 durchgeführt. Die oben beschriebene Schleife der Schritte 82 bis 85 wird für alle Netze Ni ausgeführt, bis i seinen durch die Anzahl der eingegebenen Netze definierten Maximalwert erreicht.
  • Wenn i seinen Maximalwert erreicht, werden alle erforderlichen Teilgraphen erzeugt und die Steuerung schreitet zu den Schritten 87 und 88. Bei Schritt 87 wird das Führen der Verbindungen der zu demselben Netz gehörenden Knotenpunkte für den Internbereich eines jeden Clusters ausgeführt - die sogenannte Intraclusterführung - wohingegen bei Schritt 88 bei jedem der zu unterschiedlichen der Netze Ni gehörenden Teilgraphen die Kanalführung ausgeführt wird.
  • Diese Aufgabe der Teilgraphen gk und gCH kann beschrieben werden als das Abbilden der Teilgraphen auf die tatsächliche Schaltungstopologie, die eine gewisse Anzahl von zulässigen elektrischen Verknüpfungen aufweist. Die Aufgabe des Führens -oder mit anderen Worten, Abbildens - der Teilgraphen gk und gCH kann mittels irgendeines geeigneten Verfahrens, einschließlich handgefertigten Abbildens, beispielsweise mittels des in US-A-5 491 641 (VLSI TECHNOLOGY, INC) ausgearbeiteten Verfahrens ausgeführt werden. Um diesen Prozess zu optimieren, ist es jedoch vorteilhaft, eine bevorzugte Ausführungsform eines Verfahrens gemäß der Erfindung zu verwenden, welche die automatische Ausführung des Führen zulässt. Deshalb ist die Erzeugung eines Modells, das die potentiellen Verknüpfungen der physischen Schaltungstopologie darstellt, erforderlich.
  • Fig. 9 ist ein Flussdiagramm, das die Erzeugung eines solchen Modells illustriert. Bei Schritt 90 werden Topologiedaten von einem der Clusterbereiche Ck eingegeben. Diese Topologiedaten sind für die Plazierung von Durchführungen, Durchgängen, Kopf- und Fundamentplatten und dergleichen typisch, wie in dem Beispiel von Fig. 6 gezeigt. Die Darstellung der Topologiedaten von potentiellen Verknüpfungen der Cluster kann in jeglicher Form geschehen.
  • Bei Schritt 91 wird die Variable k zum Auswählen von einem der Cluster Ck initialisiert. Bei Schritt 92 werden die Eingabedaten von Schritt 90 analysiert zum Auffinden aller potentiellen Verknüpfungen der Knotenpunkte NOj in dem ausgewählten Cluster mit anderen Knotenpunkten in demselben Cluster oder mit Kanalabgrenzungen desselben Clusters unabhängig von irgendwelchen Zuteilungen der Knotenpunkte an bestimmte Netze. Nach der Analyse der Eingabedaten in Schritt 92 wird bei Schritt 93 ein Graph erzeugt, der die zulässigen Verknüpfungen darstellt. Jeder Scheitel bzw. Scheitelpunkt in dem Graph ist für ein Element der Schaltanordnung wie Knotenpunkte, Durchführungen, Durchgänge und Kopf- oder Fundamentplatten typisch, wohingegen die Ränder zwischen diesen Scheiteln bzw. Scheitelpunkten für die zulässigen Verknüpfungen zwischen diesen potentiellen Schaltungselementen typisch sind.
  • Bei Schritt 94 werden die Informationen über den Typ eines jeden Randes des bei Schritt 93 erzeugten Graphen hinzugefügt. Ein Rand des Typs 1 definiert eine geometrische Umgebung zwischen seinen Scheitelelementen, ein Rand des Typs 2 definiert gegenseitigen Ausschluss der elektrischen Verknüpfungen, wie beispielsweise durch den Doppelpfeil 73 in Fig. 7 angezeigt. Ein Rand des Typs 3 definiert ein Kanalgrenzverhältnis.
  • Darauffolgend wird bei Schritt 95 die Variable k erhöht, so dass ein weiterer Cluster Ck ausgewählt wird. Daher werden die Schritte 91 bis 94 für alle bei Schritt 90 eingegebenen Cluster Ck wiederholt.
  • Fig. 10 illustriert eine Ausführungsform des Verfahrens gemäß der Erfindung zum Durchführen der Intraclusterführung von Netzen durch Abbilden der mittels der Steinerbäume erzeugten Clusterteilgraphen auf dem Modell der gemäß dem Verfahren von Fig. 9 eingerichteten zulässigen elektrischen Verknüpfungen.
  • Bei Schritt 100 werden Eingabedaten geschaffen. Die erforderlichen Eingabedaten sind die topologischen Graphen aller Cluster Ck, die als Ergebnis des Verfahren von Fig. 9 gefunden worden sind. Des Weiteren werden alle Teilgraphen gk der Cluster Ck für jedes Netz Ni ebenfalls eingegeben. Die Teilgraphen gk werden gemäß dem mit Bezug auf Fig. 8 oben beschriebenen Verfahren erzeugt. Das hier mit Bezug auf Fig. 10 beschriebene Verfahren ist ein Weg, Schritt 88 von Fig. 8 zu implementieren.
  • Bei Schritt 105 wird die Variable k zum Auswählen von einem der Cluster Ck initialisiert. Bei Schritt 110 wird die Variable k zum Auswählen von einem der zu führenden Netze Ni initialisiert.
  • Bei Schritt 115 wird eine Liste logischer Komponenten für den ausgewählten Cluster für die Zwecke des Führens des ausgewählten Netzes initialisiert. Anfänglich wird jeder Knotenpunkt in dem zu dem ausgewählten Netz Ni gehörenden ausgewählten Cluster Ck als eine getrennte logische Komponente definiert, so dass die anfängliche Liste logischer Komponenten alle Knotenpunkte des zu dem ausgewählten Netz Ni gehörenden ausgewählten Clusters umfasst. Mit anderen Worten: Die Liste logischer Komponenten umfasst alle in dem entsprechenden Teilgraphen gk des ausgewählten Clusters Ck für das ausgewählte Netz Ni enthaltenen Knotenpunkte, insbesondere die logischen Knotenpunkte Vik.
  • Bei Schritt 120 wird eine der logischen Komponenten aus der Liste logischer Komponenten zur Bearbeitung ausgewählt.
  • Bei Schritt 125 wird eine Führung gesucht zwischen der ausgewählten Komponente und einer weiteren Komponente aus derselben Komponentenliste, welche zum Führen des ausgewählten Netzes Ni gemäß dem Teilgraphen gk des ausgewählten Clusters Ck mit der ausgewählten Komponente verbunden werden muss. Zum Suchen einer Führung zwischen der ausgewählten Komponente und der anderen Komponente wird der topologische Graph des ausgewählten Clusters Ck verwendet.
  • Die Benutzung des topologischen Graphen zum Suchen einer solchen Führung ist möglich, weil der topologische Graph typisch ist für die zulässigen elektrischen Verknüpfungen, die in der Schaltungstopologie eingerichtet werden können. Jeder bekannte Suchalgorithmus kann verwendet werden, um in dem vorgegebenen topologischen Graph einen Pfad zwischen den zwei durch Scheitel bzw. Scheitelpunkte in dem topologischen Graph dargestellten Komponenten zu finden. Falls bei Schritt 130 eine solche Führung gefunden wird, wird entschieden, zu Schritt 135 zu schreiten.
  • Bei Schritt 135 wird/werden der Rand oder die Ränder in dem topologischen Graph, welche die bei Schritt 125 gefundene Führung darstellt, bemalt, um anzuzeigen, dass dieser/diese Rand/ Ränder zum Führen eines anderen Netzes nicht länger verfügbar ist/sind. Dadurch soll vermieden werden, dass elektrische Verknüpfungen zwischen unterschiedlichen Netzen eingerichtet werden, was zur Fehlfunktion der integrierten Schaltung führen würde.
  • Bei Schritt 140 werden die logischen Komponenten, für die bei Schritt 125 eine Verbindungsführung gefunden worden ist, logisch zu einer einzigen Komponente vereinigt. Die ursprünglichen Komponenten werden von der Liste logischer Komponenten gelöscht und durch eine einzige vereinigte Komponente ersetzt.
  • Bei Schritt 150 wird die Liste logischer Komponenten auf die Anzahl von auf der Liste verbliebenen Komponenten hin überprüft. Falls mehr als eine logische Komponente verblieben sind, kehrt die Steuerung zu Schritt 120 zurück, um eine der restlichen logischen Komponenten auszuwählen und eine Führung zwischen einer weiteren Restkomponente zu finden. Nachdem alle logischen Komponenten in einer logischen Komponente vereinigt sind, wird bei Schritt 155 die Variable i erhöht, um das nächste zu führende Netz Ni auszuwählen. Als Folge wird bei Schritt 115 eine neue List von logischen Komponenten für das ausgewählte Netz aufgestellt. Der ausgewählte Cluster Ck bleibt derselbe. Wenn alle Knotenpunkte von allen Netzen Ni innerhalb des ausgewählten Clusters Ck geführt sind, wird die Variable k erhöht, um einen weiteren Cluster Ck auszuwählen, bis alle Cluster geführt sind.
  • Falls bei Schritt 125 keine Führung gefunden wird, wird bei Schritt 130 entschieden, den Schritt 160 auszuführen. Bei Schritt 160 wird eine behindernde Führung eines anderen bereits früher geführten Netzes zerrissen. Dieses Entfernen der behindernden Führung gestattet das Einrichten einer Führung zwischen der ausgewählten Komponente und der anderen Komponente, wie mit Bezug auf Schritt 125 beschrieben.
  • Als Folge des Zerreißens einer Führung in dem anderen bereits früher geführten Netz, werden die übereinstimmenden logischen Komponenten in der Liste logischer Komponenten in dem anderen Netz, das zerrissen worden ist, getrennt. Dies wird bei Schritt 165 durchgeführt. Als Folge ergeben sich in der Liste logischer Komponenten für das zerrissene Netz mindestens zwei getrennte logische Komponenten. Das zerrissene Netz wird zur späteren Bearbeitung zurück auf den Stapel gelegt, um eine andere Führung zum Verbinden der getrennten logischen Komponenten zu finden.
  • Nach dem Schritt 165 kehrt die Steuerung zu Schritt 135 zurück zur Bemalung des Randes oder der Ränder in dem topologischen Graph, welcher bzw. welche die Führung darstellt bzw. darstellen, die aufgrund des Entfernens der Führung von dem anderen Netz gefunden worden ist.
  • Um das oben beschriebene Verfahren weiter zu beschleunigen und zu verbessern, ist es möglich, bei Schritt 120 die logischen Komponenten nach einem gewissen Kriterium auszuwählen: es ist vorteilhaft, die logische Komponente aus der Liste auszuwählen, welche die eingeschränkteste Komponente ist. Die eingeschränkteste Komponente hat gemäß dem topologischen Graph die wenigsten Optionen auf elektrische Verknüpfungen.
  • Zum Beispiel ist der Knotenpunkt N, der hierin als eine logische Komponente betrachtet wird, gemäß dem in Fig. 6 gezeigten Diagramm aus vier unterschiedlichen Richtungen zugänglich. Dies ist mittels der Durchführungen F1, F2, F7 oder F8 durchführbar. Andere Knotenpunkte könnten eine geringere oder größere Anzahl von potentiellen Verknüpfungen haben, was den Einschränkungsfaktor bestimmt. Daher sollte jede logische Komponente in der Liste einen zugehörigen Einschränkungsfaktor aufweisen, der indikativ ist für die Anzahl an Optionen für elektrische Verknüpfungen zu oder von der logischen Komponente.
  • Wenn bei Schritt 140 logische Komponenten vereinigt werden, ist ebenfalls ein neuer Einschränkungsfaktor einzurichten. Wenn zwei Komponenten vereinigt werden, hat die resultierende Komponente üblicherweise einen niedrigeren Einschränkungsfaktor, weil die größere vereinigte logische Komponente üblicherweise mehr Optionen für elektrische Verknüpfungen hat.

Claims (7)

1. Verfahren zum Führen von Netzen (1, 2) in einem elektronischen Gerät (39) mit einer Mehrzahl von Clustern (40, 41, 42), wobei die Cluster durch einen Kanalbereich (37, 38) zwischen den Clustern getrennt sind und die Cluster eine Mehrzahl von Knotenpunkten aufweisen (1.1, 2.1, 1.2, 2.2, 2.3) sowie jeder der Knotenpunkte einem der Netze zugeteilt ist, wobei das Verfahren folgende Schritte umfasst:
a) für jeden zu demselben Netz gehörenden Satz von Knotenpunkten:
Einrichten eines minimalen Steinerbaumes (44) zwischen einem Teilsatz der Cluster, die mindestens einen der Knotenpunkte aus dem Satz von Knotenpunkten aufweisen, wobei der minimale Steinerbaum mindestens einen der Knotenpunkte von jedem der Cluster des Teilsatzes von Clustern logisch verbindet;
wobei das Verfahren gekennzeichnet ist durch folgende Schritte:
b) für jeden der bei Schritt a) gefundenen Steinerbäume:
Festlegen von logischen Knotenpunkten (V1, V2, V3, V4), wo sich der Steinerbaum mit einer Abgrenzung des Kanalbereichs überschneidet; einschließlich der logischen Knotenpunkte in einer graphischen Darstellung (G&sub1;) des Netzes, so dass erste, die Cluster abdeckende Teilgraphen (g&sub1;&sub0;, g&sub1;&sub1;, g&sub1;&sub2;) und zweite, den Kanalbereich abdeckende Teilgraphen (g1A, g1B) daraus resultieren;
c) für jeden Cluster:
Führen von jedem der bei Schritt b) gefundenen ersten Teilgraphen unabhängig von der Kanalführung des bei Schritt b) gefundenen zweiten Teilgraphen.
2. Verfahren nach Anspruch 1, das des Weiteren folgende Schritte umfasst:
d) für jeden der Cluster: Bilden einer zweiten graphischen Darstellung für jeden Knotenpunkt des Clusters zum Modellieren von potentiellen elektrischen Verknüpfungen (v, T4, F1, F2, ..., F8) mit anderen Knotenpunkten innerhalb des Clusters oder mit Kanalabgrenzungen, ungeachtet irgendeiner Zuteilung von Knotenpunkten zu bestimmten Netzen;
e) Führen von jedem der bei Schritt b) von Anspruch 1 gefundenen ersten Teilgraphen gemäß der durch die zweiten Graphen modellierten elektrischen Verknüpfungen.
3. Verfahren nach Anspruch 2, wobei die zweite graphische Darstellung zum Darstellen von potentiellen elektrischen Leitern Scheitel bzw. Scheitelpunkte und zum Darstellen von elektrischer Verbindungen zwischen den Scheiteln bzw. Scheitelpunkten Ränder enthält, wodurch ein Rand einen der folgenden Typen aufweisen kann:
i) einen ersten Randtyp (70), der zwischen seinen Scheitelpunkten geometrische Umgebungen einrichtet;
ii) einen zweiten Randtyp (71, 72), der mit Bezug auf unterschiedliche Netze ein gegenseitiges Ausschlussverhältnis zwischen seinen Scheitelpunkten einrichtet; und
iii) einen dritten Randtyp (71, 72, 73, ..., 76), der zur Darstellung der logischen Knotenpunkte ein Kanalgrenzverhältnis einrichtet.
4. Verfahren nach Anspruch 2, das des Weiteren folgende Schritte umfasst:
für jeden der Cluster:
für jeden der ersten, den Cluster abdeckenden Teilgraphen:
f) Zusammenstellen einer Liste logischer Komponenten, welche die Knotenpunkte des ersten Teilgraphen umfasst, wobei jeder der Knotenpunkte des ersten Teilgraphen anfänglich als eine getrennte logische Komponente in der Liste definiert wird;
g) Auswählen von einem der logischen Komponenten aus der Liste in sich dauernd wiederholender Weise, bis nur noch eine einzelne logische Komponente in der Liste verbleibt;
h) Führen von einer ausgewählten Komponente zu einer anderen logischen Komponente derselben Liste, falls möglich;
i) im Falle des Findens einer Führung in dem Schritt h): Entfernen der ausgewählten Komponente und der anderen Komponente aus dieser Liste; Vereinigen der ausgewählten Komponente und der anderen Komponente zum Schaffen einer neuen logischen Komponente; Einfügen der vereinigten Komponente in die Komponentenliste;
j) im Falle des Nichtfindens einer Führung in dem Schritt h): Zerreißen einer behindernden Führung von einem anderen der ersten Teilgraphen, der früher bearbeitet worden ist;
k) im Falle des Zerreißens einer behindernden Führung in dem Schritt j): Finden einer alternativen Führung zum Ersetzen der behindernden Führung.
5. Verfahren nach Anspruch 4, wodurch der Schritt k) ausgeführt wird durch logisches Teilen der vereinigten Komponente des anderen ersten Teilgraphen in mindestens zwei logische Komponenten durch Zerreißen der behindernden Führung und Ausführen des Schrittes g) und des Schrittes h), um die alternative Führung zu finden.
6. Verfahren nach Anspruch 4, wodurch eine der bei Schritt g) von Anspruch 4 ausgewählten logischen Komponenten die logische Komponente der Liste ist, welche die am meisten eingeschränkte Komponente ist.
7. Digitaler Universalrechner zum Führen von Netzen in einem elektronischen Gerät, wobei der Rechner programmiert ist zum Ausführen eines Verfahrens zum Führen von Netzen (1, 2) eines eine Mehrzahl von Clustern (40, 41, 42) aufweisenden elektronischen Gerätes (39), wobei die Cluster durch einen Kanalbereich zwischen den Clustern getrennt sind und die Cluster eine Mehrzahl von Knotenpunkten (1.1, 2.1, 1.2, 2.2, 2.3) aufweisen, sowie jeder der Knotenpunkte einem der Netze zugeteilt ist, wobei das Verfahren folgende Schritte umfasst:
a) für jeden zu demselben Netz gehörenden Satz von Knotenpunkten:
das Einrichten eines minimalen Steinerbaumes (44) zwischen einem Teilsatz der mindestens einen der Knotenpunkte aus dem Satz von Knotenpunkten aufweisenden Cluster, wobei der minimale Steinerbaum mindestens einen der Knotenpunkte aus dem Satz von Knotenpunkten eines jeden Clusters aus dem Teilsatz von Clustern logisch verbindet;
wobei der Rechner gekennzeichnet ist durch folgende Verfahrensschritte:
b) für jeden der bei Schritt a) gefundenen Steinerbäume:
Festlegen von logischen Knotenpunkten (V1, V2, V3, V4), wo sich der Steinerbaum mit einer Abgrenzung des Kanalbereichs überschneidet; einschließlich der logischen Knotenpunkte in einer graphischen Darstellung (G&sub1;) des Netzes, so dass erste, die Cluster abdeckende Teilgraphen (g&sub1;&sub0;, g&sub1;&sub1;, g&sub1;&sub2;) und zweite, den Kanalbereich abdeckende Teilgraphen (g1A, g1B) daraus resultieren;
c) für jeden Cluster:
Führen von jedem der bei Schritt b) gefundenen ersten Teilgraphen unabhängig von der Kanalführung der bei Schritt b) gefundenen zweiten Teilgraphen.
DE69722425T 1996-10-15 1997-10-13 Verfahren und vorrichtung zum routing von netzen in einem elektronischen gerät Expired - Fee Related DE69722425T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/730,046 US6505331B1 (en) 1996-10-15 1996-10-15 Method for routing of nets in an electronic device
PCT/EP1997/005633 WO1998016891A1 (en) 1996-10-15 1997-10-13 A method for routing of nets in an electronic device

Publications (2)

Publication Number Publication Date
DE69722425D1 DE69722425D1 (de) 2003-07-03
DE69722425T2 true DE69722425T2 (de) 2003-12-18

Family

ID=24933688

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69722425T Expired - Fee Related DE69722425T2 (de) 1996-10-15 1997-10-13 Verfahren und vorrichtung zum routing von netzen in einem elektronischen gerät

Country Status (6)

Country Link
US (1) US6505331B1 (de)
EP (1) EP0932874B1 (de)
JP (1) JP2001505716A (de)
DE (1) DE69722425T2 (de)
TW (1) TW354424B (de)
WO (1) WO1998016891A1 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6898773B1 (en) 2002-01-22 2005-05-24 Cadence Design Systems, Inc. Method and apparatus for producing multi-layer topological routes
US7055120B2 (en) 2000-12-06 2006-05-30 Cadence Design Systems, Inc. Method and apparatus for placing circuit modules
US7024650B2 (en) * 2000-12-06 2006-04-04 Cadence Design Systems, Inc. Method and apparatus for considering diagonal wiring in placement
US6957411B1 (en) 2001-06-03 2005-10-18 Cadence Design Systems, Inc. Gridless IC layout and method and apparatus for generating such a layout
US7069530B1 (en) 2001-06-03 2006-06-27 Cadence Design Systems, Inc. Method and apparatus for routing groups of paths
US6957408B1 (en) 2002-01-22 2005-10-18 Cadence Design Systems, Inc. Method and apparatus for routing nets in an integrated circuit layout
US7107564B1 (en) 2001-06-03 2006-09-12 Cadence Design Systems, Inc. Method and apparatus for routing a set of nets
JP2003132106A (ja) * 2001-10-24 2003-05-09 Bogenpfeil:Kk 適切ネットワーク形状である準最小の木の形成・探索・生成方法及びそのプログラムを記録した情報記録媒体
US7080329B1 (en) 2002-01-22 2006-07-18 Cadence Design Systems, Inc. Method and apparatus for identifying optimized via locations
US6944841B1 (en) 2002-01-22 2005-09-13 Cadence Design Systems, Inc. Method and apparatus for proportionate costing of vias
US6973634B1 (en) 2002-01-22 2005-12-06 Cadence Design Systems, Inc. IC layouts with at least one layer that has more than one preferred interconnect direction, and method and apparatus for generating such a layout
US7117468B1 (en) 2002-01-22 2006-10-03 Cadence Design Systems, Inc. Layouts with routes with different spacings in different directions on the same layer, and method and apparatus for generating such layouts
US6938234B1 (en) 2002-01-22 2005-08-30 Cadence Design Systems, Inc. Method and apparatus for defining vias
US7096449B1 (en) 2002-01-22 2006-08-22 Cadence Design Systems, Inc. Layouts with routes with different widths in different directions on the same layer, and method and apparatus for generating such layouts
US7089524B1 (en) 2002-01-22 2006-08-08 Cadence Design Systems, Inc. Topological vias route wherein the topological via does not have a coordinate within the region
US7013451B1 (en) 2002-01-22 2006-03-14 Cadence Design Systems, Inc. Method and apparatus for performing routability checking
US7047512B1 (en) 2002-06-04 2006-05-16 Cadence Design Systems, Inc. Method and apparatus for specifying a cost function that represents the estimated distance between an external state and a set of states in a space
US7058917B1 (en) 2002-06-04 2006-06-06 Cadence Design Systems, Inc. Method and apparatus for specifying a cost function that represents the estimated distance between an external state and a set of states in a space
US7051298B1 (en) 2002-06-04 2006-05-23 Cadence Design Systems, Inc. Method and apparatus for specifying a distance between an external state and a set of states in space
US7069531B1 (en) 2002-07-15 2006-06-27 Cadence Design Systems, Inc. Method and apparatus for identifying a path between source and target states in a space with more than two dimensions
GB2393533A (en) * 2002-09-27 2004-03-31 Zuken Ltd Routing of interconnected regions e.g. of electrical circuits
US7003752B2 (en) 2002-11-18 2006-02-21 Cadence Design Systems, Inc. Method and apparatus for routing
US7216308B2 (en) 2002-11-18 2007-05-08 Cadence Design Systems, Inc. Method and apparatus for solving an optimization problem in an integrated circuit layout
US6988257B2 (en) * 2002-11-18 2006-01-17 Cadence Design Systems, Inc. Method and apparatus for routing
US7080342B2 (en) 2002-11-18 2006-07-18 Cadence Design Systems, Inc Method and apparatus for computing capacity of a region for non-Manhattan routing
US7047513B2 (en) 2002-11-18 2006-05-16 Cadence Design Systems, Inc. Method and apparatus for searching for a three-dimensional global path
US7093221B2 (en) 2002-11-18 2006-08-15 Cadence Design Systems, Inc. Method and apparatus for identifying a group of routes for a set of nets
US6996789B2 (en) 2002-11-18 2006-02-07 Cadence Design Systems, Inc. Method and apparatus for performing an exponential path search
US7010771B2 (en) 2002-11-18 2006-03-07 Cadence Design Systems, Inc. Method and apparatus for searching for a global path
US7171635B2 (en) 2002-11-18 2007-01-30 Cadence Design Systems, Inc. Method and apparatus for routing
US6892369B2 (en) 2002-11-18 2005-05-10 Cadence Design Systems, Inc. Method and apparatus for costing routes of nets
US7480885B2 (en) * 2002-11-18 2009-01-20 Cadence Design Systems, Inc. Method and apparatus for routing with independent goals on different layers
US7624367B2 (en) 2002-11-18 2009-11-24 Cadence Design Systems, Inc. Method and system for routing
US6930904B2 (en) * 2002-11-22 2005-08-16 Sun Microsystems, Inc. Circuit topology for high-speed memory access
US7089519B1 (en) 2002-12-31 2006-08-08 Cadence Design System, Inc. Method and system for performing placement on non Manhattan semiconductor integrated circuits
US7506295B1 (en) 2002-12-31 2009-03-17 Cadence Design Systems, Inc. Non manhattan floor plan architecture for integrated circuits
US7013445B1 (en) 2002-12-31 2006-03-14 Cadence Design Systems, Inc. Post processor for optimizing manhattan integrated circuits placements into non manhattan placements
US7111267B2 (en) * 2004-08-27 2006-09-19 Lsi Logic Corporation Process and apparatus to assign coordinates to nodes of logical trees without increase of wire lengths
US7885269B2 (en) * 2008-03-03 2011-02-08 Microsoft Corporation Network analysis with Steiner trees
US20100185994A1 (en) * 2008-08-14 2010-07-22 Pikus Fedor G Topological Pattern Matching
CN103902774B (zh) * 2014-03-31 2017-01-25 福州大学 X结构下超大规模集成电路总体布线方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4577276A (en) * 1983-09-12 1986-03-18 At&T Bell Laboratories Placement of components on circuit substrates
US4908772A (en) * 1987-03-30 1990-03-13 Bell Telephone Laboratories Integrated circuits with component placement by rectilinear partitioning
US4815003A (en) * 1987-06-19 1989-03-21 General Electric Company Structured design method for high density standard cell and macrocell layout of VLSI chips
US5072402A (en) 1989-10-10 1991-12-10 Vlsi Technology, Inc. Routing system and method for integrated circuits
US5491641A (en) 1993-10-04 1996-02-13 Lsi Logic Corporation Towards optical steiner tree routing in the presence of rectilinear obstacles
JP3137178B2 (ja) * 1996-08-14 2001-02-19 日本電気株式会社 集積回路の配線設計方法および装置
US5923646A (en) * 1996-08-30 1999-07-13 Nynex Science & Technology Method for designing or routing a self-healing ring in a communications network and a self-healing ring routed in accordance with the method

Also Published As

Publication number Publication date
JP2001505716A (ja) 2001-04-24
EP0932874B1 (de) 2003-05-28
US6505331B1 (en) 2003-01-07
TW354424B (en) 1999-03-11
EP0932874A1 (de) 1999-08-04
WO1998016891A1 (en) 1998-04-23
DE69722425D1 (de) 2003-07-03
HK1021664A1 (en) 2000-06-23

Similar Documents

Publication Publication Date Title
DE69722425T2 (de) Verfahren und vorrichtung zum routing von netzen in einem elektronischen gerät
DE69724245T2 (de) Verfahren zur plazierung von taktpuffern in einem taktverteilungssystem
DE69527563T2 (de) Automationssystem und -verfahren zum LSI-Entwurf
DE10025583A1 (de) Verfahren zur Optimierung integrierter Schaltungen, Vorrichtung zum Entwurf von Halbleitern und Programmobjekt zum Entwerfen integrierter Schaltungen
DE3650323T2 (de) VLSI-Chip und Verfahren zur Herstellung.
DE69832140T2 (de) Verkehrswegesucher in einem Kommunikationsnetz
DE3856234T2 (de) Hierarchischer Aufstellungsplan
DE69533998T2 (de) Entwurf von integrierten Halbleiterschaltungen
DE68929518T2 (de) Verfahren zur Verwendung einer elektronisch wiederkonfigurierbaren Gatterfeld-Logik und dadurch hergestelltes Gerät
DE69738556T2 (de) Interaktiver cad-apparat zum entwerfen des zusammenbaus von logischen schaltungen
DE69331085T2 (de) Automatisiertes LSI-Entwurfsystem und Verfahren
EP0441810A1 (de) Verfahren zur plazierung von modulen auf einem träger.
DE102015200694A1 (de) Verfahren, computersystem und computerlesbares speichermedium zum erzeugen eines layouts eines integrierten schaltkreises
DE68927433T2 (de) Schemagenerator und Verfahren zur Schemaherstellung
DE68921550T2 (de) Verfahren und Gerät zur Bildung eines Pattern-Layouts einer integrierten Halbleiterschaltung.
DE3900750A1 (de) Wissensbasis - verfahren - vorrichtung zum entwerfen integrierter schaltungen mittels funktionaler spezifikationen
EP2945083B1 (de) Verfahren zur automatisierten erstellung einer netzliste eines fpga-programms
DE102009053578A1 (de) Verfahren und Vorrichtung zum Durchführen eines parallelen Routens unter Verwendung einer Multithreaded-Routing-Prozedur
DE102019003928A1 (de) Positionsinformationsanzeigesystem
DE4128568C2 (de) Mehrschichten-Verdrahtungsverfahren zur Verdrahtungs-Modifikation am Chip für einen hochintegrierten Halbleiterschaltkreis
DE10205559B4 (de) Integrierte Schaltung und Verfahren und Vorrichtung zum Entwurf einer integrierten Schaltung
EP3869380A1 (de) Verfahren, computerbasiertes system und computerprogramm-produkt zum floorplanning für eine programmierbare gatteranordnung mit nicht-rechteckigen blockgrenzen
DE102015221479A1 (de) Polymorphes schaltungssimulationssystem
DE112004001651B4 (de) Automatisches Layoutumwandlungsystem und -verfahren
DE4344231C2 (de) Integrierte Schaltungsvorrichtung mit Bit-Slice-Zellen

Legal Events

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