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ätInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
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
- 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.
- 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.
- 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.
- 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.
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)
| 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)
| 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 |
-
1996
- 1996-10-15 US US08/730,046 patent/US6505331B1/en not_active Expired - Lifetime
-
1997
- 1997-10-13 JP JP51801398A patent/JP2001505716A/ja not_active Ceased
- 1997-10-13 WO PCT/EP1997/005633 patent/WO1998016891A1/en not_active Ceased
- 1997-10-13 DE DE69722425T patent/DE69722425T2/de not_active Expired - Fee Related
- 1997-10-13 EP EP97945822A patent/EP0932874B1/de not_active Expired - Lifetime
- 1997-10-14 TW TW086115029A patent/TW354424B/zh active
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 |