GGADS - Ein bibliotheksunabhangiges
Layoutsynthesesystem fur
benutzerdenierbare
Gate-Array-Master-Strukturen
vorgelegt von
Diplom-Informatiker
Achim Homann
aus Backnang
Vom Fachbereich 20 - Informatik
der Technischen Universitat Berlin
genehmigte Dissertation zur Erlangung des akademischen Grades
Doktor-Ingenieur
Promotionsausschu:
Vorsitzender: Prof. Dr.-Ing. Hans Liebig
Berichter: Prof. Dr. rer. nat. Otto Manck (FB 19)
Berichter: Prof. Dr.-Ing. Hans-Ulrich Post
Tag der wissenschaftlichen Aussprache: 9. April 1992
Berlin 1992
D 83
1
Kurzfassung
In der vorliegenden Arbeit wird das System GGADS (General Gate-Array Design System)
vorgestellt. Das System erzeugt die Verdrahtungsmasken fur vom Anwender frei kongurierbare Gate-Array-Master-Strukturen aus einer Beschreibung der Mastergeometrien
und einer Schaltungsbeschreibung.
Das Konzept der Gate-Array-Technik bietet die Moglichkeit, verhaltnismaig kostengunstig leistungsfahige anwendungsspezische Schaltungen hochster Integrationsdichte zu
entwickeln. Anwendungsspezisch mu nur noch die Verdrahtung der Transistoren bestimmt werden. Das Aufkommen neuer Technologien, z.B. CMOS, BiCMOS, etc. fuhrt
dazu, da nicht nur groere, sondern immer wieder neue Gate-Array-Master-Strukturen
entwickelt werden.
Aus diesem Sachverhalt ergibt sich der Bedarf an Entwurfssystemen, die leicht an neue
Master-Strukturen angepat werden konnen. Weiterhin soll auch fur neue Technologien
der automatische Entwurf von achenezienten Layouts ermoglicht werden.
Bisherige automatische Layoutsysteme fur Gate-Arrays sind entweder nur fur spezische
Master oder aber sie konnen nur vorgegebene Bibliothekszellen auf bestimmten Referenzpunkten plazieren und verdrahten. GGADS hingegen erzeugt die erforderlichen Elementarverdrahtungen (Bibliothekszellen) selbst und lat sich dadurch mit erheblich geringerem Aufwand fur neue Master-Strukturen einsetzen. Dies ist wichtig, wenn neue MasterStrukturentwurfe auf ihre Eignung fur bestimmte Schaltungstypen untersucht werden
sollen.
In GGADS wird fur die globale Plazierung der neue Algorithmus SQP (Simultaneous
QuadriPartitioning) verwendet, der sich gegenuber traditionellen Verfahren als deutlich
uberlegen herausstellte. Bei der lokalen Plazierung und Verdrahtung verfolgt GGADS
einen konstruktiven Ansatz. Dabei werden von einer Ecke der Chipache ausgehend
sukzessive die Schaltelemente dicht plaziert und sofort verdrahtet. Leitungen, die zu
weiter entfernt liegenden Elementen fuhren, werden bis zum Rand der bereits belegten
und sukzessivee wachsenden Chipache gefuhrt.
Diese Vorgehensweise sieht von einem Reihenkonzept mit dazwischenliegenden Verdrahtungskanalen ab. Dadurch eignet sich GGADS auch fur den Entwurf von ECL-Schaltungen
oder von CMOS-Dominologik. Diese Schaltungstypen sind fur einen Standardzellenentwurf ungeeignet, da sie sich nicht aus eine Menge von wenigen unterschiedlichen Bibliothekselementen zusammensetzen lassen. Dadurch eronet GGADS zwei neue Anwendungsgebiete von Entwurfssystemen fur Gate-Array-Master-Strukturen.
Der konstruktive Ansatz des lokalen Plazierens und Verdrahtens wurde im Rahmen dieser
Arbeit als ein neues Konzept implementiert. Dabei wurde jedoch auf eine weitergehende
Verfeinerung der Algorithmen zur Leistungssteigerung verzichtet. Daher kann das durch
GGADS erzeugte Layout mit der Flachenezienz der besten kommerziellen Systeme wie
TANGATE nicht ganz mithalten. (TANGATE hat eine um ca. 20% bessere Ausbeute.)
Nichtsdestotrotz deuten die mit GGADS erzeugten Layouts daraufhin, da eine weitere Verfeinerung der Algorithmen eine vielversprechende Alternative zu bisher verfolgten
Entwurfskonzepten darstellt.
2
Inhaltsverzeichnis
1 Einfuhrung
1.1 Layoutentwurfsmethoden . . . . . . . . . . . . .
1.1.1 Halb- versus Vollkundenentwurf . . . . .
1.1.2 Der Semi-Kundenentwurfsstil . . . . . .
1.2 Kombinatorische Aspekte des Schaltkreislayouts
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
. 6
. 6
. 7
. 12
2 Der Gate-Array-Entwurf
15
3 Algorithmen fur den physikalischen Entwurf
21
4 Das Entwurfssystem GGADS
67
5 Layoutbeispiele und Vergleich mit TANGATE
79
6 Schlubemerkungen und Ausblick
89
2.1 Schaltungsentwurf auf Gate-Array-Master-Strukturen . . . . . . . . . . . . 15
2.2 Vorhandene Entwurfssysteme . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Konzeptionelle Besonderheiten . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1 Die Plazierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Losungsansatze zum Plazierungsproblem . . . . . . . . . . . . . . .
3.1.2 Das allgemeine Schaltkreispartitionierungsproblem . . . . . . . . . .
3.1.3 Denitionen und Komplexitatsergebnisse . . . . . . . . . . . . . . .
3.1.4 Iterative Verbesserungsheuristiken fur Hypergraphbipartitionierung
3.1.5 Plazieren durch rekursive Partitionierung . . . . . . . . . . . . . . .
3.1.6 SQP - ein neues globales MinCut-Partitionierungsverfahren . . . . .
3.1.7 Laufzeitanalyse der SQP Heuristik . . . . . . . . . . . . . . . . . .
3.2 Globale Verdrahtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Integriertes globales Plazieren und Verdrahten . . . . . . . . . . . . . . . .
3.4 Lokale Verdrahtungsverfahren . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Das Kanalverdrahtungsproblem . . . . . . . . . . . . . . . . . . . .
3.4.2 Die Idee der Vorzugsrichtung fur Verdrahtungsebenen . . . . . . . .
3.5 Lokales Plazieren und Verdrahten in GGADS . . . . . . . . . . . . . . . .
22
22
24
25
28
36
38
45
47
54
57
58
58
60
4.1 Der Makrogenerator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2 Die Beschreibung von Gate-Array-Masterstrukturen . . . . . . . . . . . . . 75
5.1 Layoutbeispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2 Leistungsvergleich mit TANGATE . . . . . . . . . . . . . . . . . . . . . . . 85
3
INHALTSVERZEICHNIS
4
Literatur
7 Anhang
7.1 Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Denitionen . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3 Die Beschreibungssprache fur Master-Strukturen . . . . . .
7.3.1 Beispiel fur eine Masterbeschreibung . . . . . . . .
7.3.2 Die Grammatik fur die Masterbeschreibungssprache
7.4 Bedienungsanleitung fur GGADS . . . . . . . . . . . . . .
7.5 Die Netzlistenformate . . . . . . . . . . . . . . . . . . . . .
7.5.1 Beispiel fur die Netzliste . . . . . . . . . . . . . .
7.5.2 Beispiel fur die Transistornetzliste . . . . . . . . .
Danksagung
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
93
99
99
103
104
106
126
131
133
133
134
135
Kapitel 1
Einfuhrung in den Entwurf
integrierter Schaltkreise
Bei dem Entwurf integrierter Schaltungen bestimmen Kosten, Leistungsmerkmale und
die Zeit, um eine neue Schaltung auf den Markt zu bringen, ganz entscheidend, ob ein
Hersteller integrierter Schaltungen auf dem Markt uberleben kann. Mehr als die Halfte
aller Semi-Kundenentwurfe waren Ende der 80er Jahre in den USA Gate-Array-Entwurfe
- keine Standardzellenentwurfe. Die Zahl der Vollkundenentwurfe hat daruberhinaus insgesamt eine abnehmende Tendenz gezeigt.
Das Konzept der Gate-Array-Technik bietet die Moglichkeit, verhaltnismaig kostengunstig leistungsfahige anwendungsspezische Schaltungen hochster Integrationsdichte zu
entwickeln. Anwendungsspezisch mu nur noch die Verdrahtung der Transistoren bestimmt werden. Dadurch ist auch eine kurzere Entwicklungszeit bei Gate-Arrays leichter
zu erreichen als bei Standardzellentwurfen.
Das Aufkommen neuer Technologien, z.B. CMOS, BiCMOS, etc. fuhrt dazu, da nicht nur
groere, sondern immer wieder neue Gate-Array-Master-Strukturen entwickelt werden.
Weiterhin erfordern verschiedene Schaltungstechniken unterschiedliche Mikroarchitekturen des verwendeten Gate-Arrays, um die vorhandene Flache gut ausnutzen zu konnen.
Beispielsweise erfordern statische CMOS-Schaltungen eine gleiche Anzahl von p-MOSund n-MOS-Transistoren. RAM-Strukturen hingegen benotigen mehr n-MOS- als p-MOSTransistoren. Somit werden auch durch bestimmte Anwendungsgebiete neue spezische
Gate-Array-Master-Strukturen erforderlich.
Bisherige automatische Layoutsysteme fur Gate-Arrays sind entweder nur fur spezische
Master [2] zugeschnitten oder sie erfordern die Eingabe von masterspezischen Elementarverdrahtungen von NAND, NOR, etc. [17]. GGADS (General Gate Array Design System)
erzeugt die erforderlichen Elementarverdrahtungen selbst und lat sich dadurch mit erheblich geringerem Aufwand fur neue Master-Strukturen einsetzen. GGADS lat sich
auch fur Entwurfe nach dem Master-Image Konzept [35] einsetzen.
In diesem Kapitel wird zunachst eine kurze Einfuhrung in die allgemeinen Probleme des
Layoutentwurfs gegeben. Aus der Sicht des Ingenieurs stehen die sich standig andernden
Anforderungen an die Entwurfswerkzeuge im Vordergrund. Aus algorithmischer Sicht
sticht insbesondere die kombinatorische Komplexitat hervor. Im folgenden sollen zunachst
generelle Losungstrategien erlautert werden. Anschlieend wird der kombinatorische
5
6
KAPITEL 1. EINFUHRUNG
Aspekt des Layoutentwurfs angesprochen.
1.1 Layoutentwurfsmethoden
1.1.1 Halb- versus Vollkundenentwurf
Auf einer abstrakten Ebene werden zwei unterschiedliche Arten des Layoutentwurfs unterschieden; Semi- und Vollkundenentwurf. Der Vollkundenentwurf setzt keinerlei Vorfertigung voraus. Dabei hat man die groten Freiheitsgrade, die einzelnen Schaltkreiselemente
zu realisieren. Wo die Elemente plaziert und wie sie miteinander verbunden werden, wird
durch den spezischen Entwurf frei bestimmt. Der extreme Fall des Vollkundenentwurfs
ist damit der Handentwurf. Dabei hat der Entwickler die volle Kontrolle uber alle Teile
des Entwurfsergebnisses.
Der Semi-Kundenentwurf bietet weniger Freiheitsgrade. Entweder sind durch die Entwurfsmethodik oder aber durch die benutzte Herstellungstechnologie Einschrankungen der
Entwurfsfreiheit gegeben. Fur einen U berblick uber die technologischen Aspekte des Entwurfs integrierter Schaltungen sei auf [47, 41] verwiesen. Zu den Semi-Kundenentwurfsstilen zahlen Entwurfsstile, die von einer vorfabrizierten Siliziumstruktur ausgehen (GateArray-Entwurf). Beim Standardzellenentwurf wird von einer vorhandenen Zellbibliothek ausgegangen, die Layouts von elementaren Schaltfunktionen enthalten. Hierbei beschrankt sich die Plazierung im wesentlichen darauf, Blocke fester Groe eindimensional
(in Reihen) anzuordnen. Zwischen zwei benachbarten Reihen entstehen dabei Verdrahtungskanale. Diese reihenorientierte Anordnung der Zellen hat den besonderen Vorteil,
da fur die erforderliche Verdrahtung besonders eziente und eektive Kanalverdrahtungsverfahren bekannt sind [51, 48, 55]. Traditionell wurde der Vollkundenentwurf kaum
durch Entwurfswerkzeuge unterstutzt. Die einzigen Werkzeuge waren interaktive Graphikeditoren fur den Handentwurf auf der Maskenebene. Weiterhin standen noch Werkzeuge
zur Verfugung, um die Korrektheit des Handlayouts zu uberprufen sowie um Schaltungsteile zu einem Gesamtlayout zusammenzusetzen.
Im Gegensatz dazu boten die Layoutwerkzeuge eine gute Unterstutzung fur Semi-Kundenentwurfsstile. Mit der Ausreifung der Layoutwerkzeuge verwischt die Trennung von
Halb- und Vollkundenentwurf immer mehr, da der Vollkundenentwurf heutzutage ebenfalls durch Werkzeuge immer mehr unterstutzt wird. Dadurch wird die Frage, ob ein
bestimmter Entwurfsstil Halb- oder Vollkundenentwurf genannt wird, zu einem gewissen Grad zu einer Ansichtssache. Hierbei spielen auch kommerzielle Aspekte eine Rolle,
da der Name Vollkundenentwurf eine hohere Qualitat des Entwurfs verspricht. Allgemein lat sich sagen, da Vollkundenentwurfe ein beliebiges Plazieren von rechteckigen
Blocken in der Ebene erlaubt. Hierbei kann noch eine Floorplanning-Phase vorgeschaltet
sein. Abbildung 1.1 zeigt Blocke, die unregelmaig in der Ebene angeordnet sind. Zwischen den Blocken sind Freiraume fur die notwendigen Verbindungsleitungen vorgesehen.
Bei Vollkundenentwurfen werden die einzelnen Zellen in der Regel mit Hand entworfen.
Zu diesem Zweck werden aber auch zunehmend Zell- und Modulgeneratoren eingesetzt.
Vollkundenentwurfe erfordern immer noch eine erheblich langere Entwurfsdauer als die
Semi-Kundenentwurfe. Zur Zeit ist man noch weit davon entfernt, den Vollkundenentwurf vollstandig automatisieren zu konnen und dabei zu Ergebnissen zu kommen, die
1.1. LAYOUTENTWURFSMETHODEN
7
Abbildung 1.1: Schematische Darstellung eines Vollkundenentwurfs
mit Handentwurfen konkurrieren konnten. Nichstdestotrotz wachsen die Bereiche des
Halb- und des Vollkundenentwurfs immer mehr zusammen. Fortschritte in der Fertigungstechnologie hat Gate-Arrays hervorgebracht, die eine fast uneingeschrankte Plazierung ermoglichen (sea-of-gates). Layouts, die darauf basieren, liegen auf der Grenzlinie
zwischen Halb- und Vollkundenentwurf.
Die Entscheidung fur den Semi- oder fur den Vollkundenentwurf hangt von dem Typ der
Schaltung und den wirtschaftlichen Randbedingungen ab. Wenn ein Schaltkreis hochster
Komlexitat fur groe Stuckzahlen entwickelt werden soll, so lohnt sich der kosteninsivere Vollkundenentwurf. Soll das Produkt im Gegensatz dazu eine anwendungsspezische
Schaltung (ein ASIC ) sein, so ist der kostengunstigere Semi-Kundenentwurfsstil zu bevorzugen. ASICs werden in der Regel in kleineren Stuckzahlen hergestellt, die Leistungsanforderungen an die Schaltung sind in der Regel nicht so hoch und die Entwicklungszeiten
sollten haug moglichst kurz sein.
Wenn die Layoutwerkzeuge weiter verbessert werden, wird der automatisierte Semi-Kundenentwurfsstil der Qualitat des Vollkundenentwurfs immer naher kommen.
1
1.1.2 Der Semi-Kundenentwurfsstil
Standardzellen-Technik
Bei dem Standardzellenentwurf sind die einzelnen Zellen klein und rechteckig. Die Zellen enthalten das Layout von elementaren Schaltfunktionen (z.B. NAND, NOR, etc.).
Meistens haben alle Zellen eine einheitliche Hohe und haben feste Anschlusse fur Takt
und Versorgungsspannung auf der linken und rechten Seite. Dadurch konnen die Standardzellen in Reihen aneinander gefugt werden, wobei gleichzeitig gewahrleistet ist, da
die Versorgungsspannungs- und Taktsignalleitungen der einzelnen Zellen miteinander verbunden sind. Wahrend der Plazierungsphase werden die Zellen in horizontalen Reihen
ASIC steht fur Application Specic Integrated Circuit. Als ASIC werden im allgemeinen Schaltungen
mit relativ geringer Stuckzahl bezeichnet. Daher werden fur den Entwurf von ASICs bevorzugt SemiKundenentwurfsmethoden eingesetzt.
1
KAPITEL 1. EINFUHRUNG
8
Abbildung 1.2: Beispiel fur einen Standardzellentwurf
plaziert. Die anschlieende globale Verdrahtungsphase bestimmt, an welchen Stellen die
einzelnen Signalleitungen von einer Zellreihe zu einer anderen gefuhrt werden. Diese Stellen werden auch feedthroughs genannt. Die detaillierte Verdrahtungsphase besteht damit
aus der Losung einer Reihe von Kanalverdrahtungsproblemen. Verdrahtungskanale entstehen zwischen jeweils zwei benachbarten Zellreihen. Abbildung 1.2 zeigt ein Beispiel fur
einen Standardzellentwurf.
Gate-Array-Technik
Bei dem Gate-Array-Entwurf geht man - im Gegensatz zum Standardzellenentwurf - von
einer vorfabrizierten Struktur auf der Chipache aus. Genauer gesagt, sind alle Schaltelemente bereits vorfabriziert. Ein solch vorfabrizierter Wafer wird auch Master genannt.
Es werden nur noch die Verdrahtungsebenen schaltungsspezisch entworfen, um eine spezische Schaltung zu realisieren. Das heit, es werden auch nur noch die Masken fur
die zwei (eventuell mehr) vorhandenen Metallisierungsebenen zur Verdrahtung benotigt
sowie die zugehorigen Masken fur die Kontaktlocher zwischen den Verdrahtungsebenen
und Kontakten von der untersten Metallebene zu den Transistoranschlussen. Die Zahl der
schaltungsspezischen Masken wird also erheblich reduziert. Dies hat zur Folge, da nicht
nur die Layoutdaten reduziert werden, sondern auch die Herstellungskosten eines Chips.
Weiterhin wird die Herstellungszeit reduziert, da nur noch die letzten Schritte des Herstellungsprozesses schaltungsspezisch durchgefuhrt werden mussen. Die Master konnen
hingegen fur verschiedene Schaltungen in groen Stuckzahlen im vorhinein hergestellt
werden. Gate-Arrays erreichen jedoch nicht die Leistungsfahigkeit und Integrationsdichte von Standardzellen- und Vollkundenentwurfen. Dies ist durch die Einschrankungen
bedingt, die die fur allgemeine Verwendung entwickelten Master-Strukturen auferlegen.
Dazu zahlen auch die Fanouts der einzelnen Gatter, die nur in einem groben Raster
an den individuellen Bedarf angepat werden konnen. Abbildung 1.3 zeigt schematisch
verschiedene Gate-Array-Master-Strukturen. Die vorfabrizierten Layoutstrukturen werden auch Transistorzellen, oder Zellen (engl. cells) genannt. In Abbildung 1.3a) sind
die Transistorzellen in Reihen angeordnet. Auf anderen Mastern sind die Zellen ma-
1.1. LAYOUTENTWURFSMETHODEN
9
4k RAM
8k
RAM
a) Reihenstruktur
b) Sea-of-gates
c) Sea-of-Gates mit
Sonderstrukturen
Abbildung 1.3: Verschiedene Gate-Array-Master-Strukturen
trixartig angeordnet, wobei horizontale und vertikale Verdrahtungskanale zwischen den
Transistorzellen freigelassen sein konnen. In solchen Fallen werden die Zellen auch Inseln (engl. islands) genannt. Schaltelemente wie logische Gatter oder Flipops konnen
durch geeignete Metallisierungen uber den Transistorzellen realisiert werden. Die Schaltelemente konnen untereinander durch Signalleitungen verbunden werden, die durch die
vorgesehenen Verdrahtungskanale laufen. Diese beiden Arten von schaltungsspezischer
Verdrahtung realisieren die spezische Schaltung auf einem Master. Bei dem Gate-ArrayEntwurf ist das Plazierungsproblem im wesentlichen ein Zuweisungsproblem. Zu jedem
Gatter in der Netzliste mu eine geeignete Transistorzelle auf dem Master bestimmt werden, um die Gatterfunktion auf dem Chip zu realisieren. Abhangig davon, wie der Master
im einzelnen aussieht, kann das Layout fur ein Gatter nicht beliebig gedreht oder gespiegelt werden. Auch ist es moglich, da manche Schaltfunktionen nur in einem bestimmten
Bereich des Chips realisiert werden konnen, da nur dort die erforderlichen Transistortypen vorhanden sind (z.B. Bipolartransistoren). Das Verdrahtungsproblem ist dadurch
charakterisiert, da die Verdrahtungskanale auf dem reihenorientierten Master eine feste
Anzahl von Verdrahtungsspuren haben. Im Gegensatz dazu konnen bei dem Semi- oder
Vollkundenentwurf die Verdrahtungskanale auf den jeweiligen Bedarf genau zugeschnitten
werden.
2
Sea-of-gates
Neuere Entwicklungen der Gate-Array-Master weisen in ihrer Struktur einen grundlegenden Unterschied gegenuber Abbildung 1.3a) auf. Bei den Sea-of-gates Typen, die
heute den Standard bei Gate-Array-Master-Strukturen darstellen, sind keine speziellen
Verdrahtungskanale mehr vorgesehen (Abbildung 1.3b)). Stattdessen ist die gesamte
Chipache mit Transistorzellen belegt. Dadurch konnen wesentlich mehr Transistoren
auf dem Master untergebracht werden. Nichtsdestotrotz lat sich immer nur ein Bruchteil dieser Transistoren nutzen. Die ubrigen Transistoren konnen nicht in der Schaltung
verwendet werden, da ihre Anschlupunkte durch Verdrahtungsleitungen uberdeckt sind
2
Bei Standardzellenentwurf oder sea-of-gates
KAPITEL 1. EINFUHRUNG
10
NAND2.cif scale: 0.088764
(2255X)
E1
Size: 89 x 100 microns
E2
A
NAND2.r.k
VDD
VDD
VSS
VSS
E1
E2
A
Abbildung 1.4: Schematische Darstellung eines 2-NAND CMOS-Gatters im Vollkundenlayout. Die obere Halfte zeigt die Wanne fur die p-MOS-Transistoren.
oder kein Platz mehr fur die Verlegung der Anschlunetze vorhanden ist. Ein weiterer
wesentlicher Unterschied der Sea-of-gates-Master gegenuber den reihenorientierten GateArray-Mastern ist eine groere Zahl von Verdrahtungsebenen. Die Sea-of-gates-Technik
liegt zwischen dem Halb- und dem Vollkundenentwurfsstil. Auf der einen Seite werden
vorfabrizierte Master-Strukturen verwendet; auf der anderen Seite ist aber das Konzept
der Verdrahtungskanale aufgelost. Durch letzteres wird die Entscheidung daruber, ob
Verdrahtungskanale benutzt werden sollen und wo sie ggf. liegen sollen, von der Hardware in die Software - in die Layoutprogramme - verschoben. Der Erfolg der Sea-ofgates fur CMOS-Schaltungen wurde durch die Tatsache vorangetrieben, da der Entwurf
von CMOS-Zellen fur Vollkundenentwurfe ebenfalls dem Semi-Kundenentwurfsstil ahnelt.
Dies ist darauf zuruckzufuhren, da durch die erforderlichen p-MOS-Transistoren Wannen in das Diusionsgebiet eingelassen werden mussen, die groer sind als die Transistoren selbst. Daher bietet es sich an, mehrere p-MOS-Transistoren in einer gemeinsamen
Wanne unterzubringen. Dies mundet haug in p-MOS-Transistorreihen - ahnlich wie bei
Standardzellentwurfen. Siehe hierzu Abbildung 1.4. Daher ist fur CMOS-Schaltungen der
Unterschied zwischen Sea-of-gates-Entwurfen und Vollkundenentwurfen besonders gering.
Weiterhin erlauben Sea-of-gates-Master die Realisierung von besonders dichter Logik fur
Spezialanwendungen (z.B. fur RAMs) direkt auf dem Master, indem sie an einigen Stellen
spezielle RAM-Transistorstrukturen besitzen (Abbildung 1.3c)).
Bisher werden die Entwurfssysteme auf die Master-Strukturen eines Herstellers und einer
Technologie zugeschnitten. Wenn neue Technologien in das Angebot eines Herstellers aufgenommen werden, so mussen auch die Entwurfswerkzeuge daran angepat werden. Durch
diesen Sachverhalt sind nicht nur standige Eingrie in die Entwurfswerkzeuge erforderlich,
sondern der Layoutentwurf mu auch dem Chiphersteller uberlassen werden. Letzteres ist
allerdings nicht immer wunschenswert. Wenn Schaltungen hochster Leistungsfaghigkeit
entwickelt werden sollen, so mu bei dem derzeitigen Entwicklungsstand der Entwurfswerkzeuge der Schaltungsentwickler auch die Umsetzung der Schaltung in Layout kontrollieren und notigenfalls beeinussen konnen. Beispielsweise, um die Treiberstarke von
Gattern - so gut es bei Gate-Arrays geht - an die enstehenden Leitungslangen anzupassen.
1.1. LAYOUTENTWURFSMETHODEN
11
VCC
OUT
A
B
A
C
OUT
C
B
VREF
GND
Abbildung 1.5: Umsetzung von Gatterlogik in ECL-Technik. Oben ist die kombinierte
logische Funktion (A _ B) ^ C in ECL realisiert.
Die fortschrittlichsten bisher vorhandenen Entwurfswerkzeuge fur Gate-Arrays beschranken
sich im wesentlichen darauf, vorhandene Bibliothekselemente auf einem bestimmbaren Raster zu plazieren. Siehe hierzu Abschnitt 2.2. Dies hat einerseits zur Folge, da sich diese
Systeme nicht fur Experimente mit neuen Master-Strukturen eignen, da fur jede neue
Transistorzelle die Bibliothekselemente von Hand entwickelt werden muten.
Auf der anderen Seite bedeutet dies auch, da Schaltungstechniken, die sich nicht aus wenigen unterschiedlichen Bibliothekselementen zusammensetzen lassen, mit vorhandenen
Entwurfssystemen uberhaupt nicht geeignet behandeln lassen. Zu diesen Schaltungstechniken zahlen ECL-Schaltungen und die dynamische CMOS-Dominologik. Beide Schaltungstypen haben die Eigenart, da die einzelnen logischen Gatterfunktionen nicht Gatter fur Gatter elektrisch realisiert werden. Es werden vielmehr mehrere logische Gatter
bei der elektrischen Realisierung zu groeren Baumstrukturen zusammengefat. Dadurch
entstehen in einer Schaltung derart viele verschiedene Baumstrukturen, da diese sich
nicht mehr sinnvoll als Bibliothekselemente realisieren lassen. Siehe hierzu Abbildung 1.5.
Daher muten bisher ECL-Gate-Arrays immer noch von Hand entworfen werden.
Das neue Entwurfssystem GGADS
Das in dieser Arbeit vorgestellte System GGADS beinhaltet nicht nur ein Plazierungs- und
Verdrahtungsverfahren, sondern auch einen Makrozellengenerator, wodurch GGADS sehr
schnell auf neue Master-Strukturen angepat werden kann. Weiterhin ist das in GGADS
verwendete Verdrahtungsverfahren nicht auf Verdrahtungskanale angewiesen, wodurch
GGADS nicht mehr auf das bloe Plazieren und Verdrahten von Bibliothekselementen
angewiesen ist. Somit konnen mit GGADS auch die Layouts fur ECL-Schaltungen automatisch auf Gate-Arrays erzeugt werden.
KAPITEL 1. EINFUHRUNG
12
1.2 Kombinatorische Aspekte des Schaltkreislayouts
In kombinatorischer Hinsicht ist das Layoutproblem ein Optimierungsproblem mit einschrankenden Randbedingungen. Ein aktuelles und umfangreiches Kompendium von
Arbeiten hierzu bietet [40]. Generell kann man davon ausgehen, da eine Schaltkreisbeschreibung vorgegeben ist - meist in Form einer Netzliste, die die einzelnen Schaltungselemente beinhaltet und die Verbindungen der Schaltungselemente untereinander
beschreibt. Gesucht ist eine Zuweisung von geometrischen Platzen in der Ebene zu den
einzelnen Schaltungselementen. Dabei mussen die Randbedingungen der Fertigungstechnologie berucksichtigt werden. Diese bestehen in der Regel aus Mindestgroen fur die
Realisierung der verschiedenden Schaltungskomponenten sowie in Mindestabstanden zwischen den unterschiedlichen Elementen. Zum Beispiel Mindestbreite von Verdrahtungsleitungen und Mindestabstanden zwischen zwei Leitungen auf der gleichen Verdrahtungsebene. Optimierungskriterien sind weiterhin gegeben, zu denen in der Regel die resultierende
Chipache gehort. Weitere Optimierungskriterien konnen die Signallaufzeiten bestimmter
Signale sein oder der Leistungsverbrauch der Gesamtschaltung. Bei den letzten beiden
Kriterien gibt es eine ganze Reihe von Verfeinerungen, die insbesondere in den letzten
Jahren an Bedeutung gewannen. Dies ist in erster Linie auf weitere Ausreifung der vorhandenen Technologie zuruckzufuhren, wodurch immer mehr Schaltelemente auf einem
Chip realisiert werden konnen. Gleichzeitig damit werden die Schaltgeschwindigkeiten
immer groer.
So gut wie alle Versionen des Layoutproblems sind NP-schwierig. Dies bedeutet, da
Algorithmen, die tatsachlich ein Optimum nden - zum Beispiel eine Schaltung auf minimaler Flache realisieren - einen vollig unpraktikablen Rechenzeitaufwand haben. Die
Rechenzeit steigt exponentiell mit der Schaltungsgroe an. Daraus resultiert, da auch
durch den Einsatz zukunftiger schnellerer Rechner die Rechenzeiten nicht in akzeptable Groenordnungen kommen werden. Die einzige Moglichkeit, solche kombinatorischen
Probleme mit praktikablem Aufwand zu behandeln, besteht darin, Heuristiken zu deren
Losung einzusetzen. Heuristiken nden in der Regel keine optimale Losung fur ein gegebenes Problem, sie sind aber dafur sehr schnelle Verfahren. Durch den groen Geschwindigkeitsvorteil eignen sich heuristische Verfahren fur den Einsatz in der Praxis. Das Problem
hierbei ist, da die Qualitat der von Heuristiken gelieferten Losung haug schwer zu beurteilen ist. Da das jeweilige Optimum unbekannt ist, lat sich nichts Genaues daruber
aussagen, um wieviel Prozent die gefundene Losung vom Optimum abweicht. Man ist
bemuht, theoretische Beweise uber die Leistung von Heuristiken zu fuhren. Bisher konnten jedoch - abgesehen von wenigen Ausnahmen - nur relativ uninteressante Ergebnisse
erzielt werden. Wenn gezeigt wird, da eine bestimmte Heuristik ein Layout erzeugt, das
im schlechtesten Fall die minimal erforderliche Chipache um ein paar Hundert Prozent
ubersteigt, so ist dies fur die Praxis in der Regel keine verwertbare Aussage Trotzdem
ist man in der Praxis gezwungen, sich fur eine von mehreren moglichen Heuristiken zu
entscheiden, ohne gesicherte Ergebnisse daruber zu haben, da die gewahlte Heuristik
3
Zur groben Abschatzung der Leistungsfahigkeit von Heuristiken nimmt man Abschatzungen fur die
minimal oder maximal erforderliche Flache vor. Dies geschieht beispielsweise durch einfaches Aufaddieren
der Flache aller einzelnen Schaltungselemente unter Vernachlassigung des erforderlichen Platzes fur die
Verdrahtung.
3
1.2. KOMBINATORISCHE ASPEKTE DES SCHALTKREISLAYOUTS
13
bessere Ergebnisse herbeifuhrt als die zur Auswahl stehenden Alternativheursitiken.
Eine allgemeine heuristische Methode - divide and conquer - zerlegt das Gesamtproblem
in Teilprobleme, um diese nacheinander zu losen. In vielen Fallen sind die Teilprobleme
ihrerseits wieder NP-schwierig. Die Teilprobleme konnen rekursiv weiter in Teilteilprobleme zerlegt werden, bis zu einer geeigneten Komplexitat. Die nicht weiter unterteilten
Teilprobleme konnen dann entweder direkt optimal gelost werden, oder es konnen durch
schnelle Approximationsalgorithmen gute Losungen gefunden werden.
Eine der gangigsten Methoden, das Layoutproblem in Teilprobleme zu zerlegen besteht aus
dem folgenden: Als erster Schritt wird eine Plazierung der einzelnen Schaltkreiselemente vorgenommen. Anschlieend folgt eine globale Verdrahtungsphase bei der die einzelnen
Leitungen naherungsweise verschiedenen Bereichen des Chips zugewiesen werden. Danach
folgt eine detaillierte Verdrahtungsphase, die die Pfade fur die einzelnen Signalleitungen
bestimmt. Abschlieend kann noch eine geometrische Kompaktierungsphase durchgefuhrt
werden, um die benotigte Chipache zu verringern. Diese ganze Prozedur kann hierarchisch durchgefuhrt werden, indem zunachst nur einzelne Blocke einer Schaltung erzeugt
werden. Dieser Proze kann durch Algorithmen und Heuristiken realisiert werden, die
zwischen unterschiedlichen Layoutalternativen fur die einzelnen Blocke auswahlen. Die
Anordnung von Schaltungsblocken auf der Chipache wird auch als Floorplanning bezeichnet. Dabei konnen Blocke in ihrer Form auch variabel sein und beim Floorplanning
werden dann spezische Formen fur die einzelnen Blocke festgelegt.
Die genaue Art und Weise, wie ein Layoutproblem in Teilprobleme zerlegt werden kann,
hangt von der Entwurfsmethodik und der Herstellungstechnologie ab. Beispielsweise reduziert sich das detaillierte Verdrahtungsproblem bei dem Standardzellenentwurf im wesentlichen auf das Kanalverdrahtungsproblem. Im Gate-Array-Entwurf beinhaltet die Plazierungsphase eine Zuweisung von funktionalen Zellen des Schaltkreises auf Transistorzellen
des Masters. Die Reihenfolge der Entwurfsphasen ist das Ergebnis von langjahriger praktischer Erfahrung mit dem Einsatz von heuristischen Methoden beim Layoutentwurf von
Schaltkreisen. Eine notwendige Folge der heuristischen Vorgehensweise ist eine Einbue der Optimalitat des resultierenden Layouts. Qualitatseinbuen konnen an zwei Stellen
auftreten. Zum einen kann die naherungsweise Losung eines Teilproblems implizieren, da
die Gesamtlosung ebenfalls suboptimal ist. Auf der anderen Seite haben die unterschiedlichen Phasen des Layoutprozesses unterschiedliche Optimierungsfunktionen, die nicht immer miteinander in Einklang stehen. Zum Beispiel kann die Plazierungsphase versuchen,
die benotigte Verdrahtungsache zu minimieren - es mu aber auch die Verdrahtbarkeit in
ausreichendem Mae gewahrleistet sein. Da die Verdrahtung nach der Plazierung stattndet, kann die wahrend der Plazierungsphase veranschlagte Verdrahtungsache nur eine
grobe Abschatzung sein. Haug wird der halbe Umfang des alle Endpunkte eines Netzes
umspannenden Rechtecks genommen. Diese Abschatzung ist nur dann zutreend, wenn
das Netz ohne Umwege verlegt werden kann und - bei mehr als drei Endpunkten - die
Endpunkte nicht zu ungunstig verteilt sind. Somit kann diese Schatzfunktion nur eine
Untergrenze der tatsachlich benotigten Verdrahtungsache sein. Dadurch wurde bei der
Plazierung versucht werden, eine `falsche' Kostenfunktion zu optimieren. Dieses Abstimmungsproblem beim Layoutentwurf fur integrierte Schaltkreise stellt ein zentrales Problem
dar, das allgemein bei Problemen der kombinatorischen Optimierung auftritt. Dadurch
weicht man nicht nur vom Optimum ab, sondern es ist auch kaum moglich, das Ausma
14
KAPITEL 1. EINFUHRUNG
der Qualitatseinbue zu beschranken. Daher sind solchermaen erzeugte Losungen im
wahrsten Sinne des Wortes heuristisch. Es wird eine Losung gefunden, ohne da man
konkrete Aussagen uber ihre Qualitat machen kann. Daraus folgt auch, da heutzutage die Leistungen von Layoutsystemen nur untereinander verglichen werden konnen und
nicht mit der jeweils optimalen Losung. Dies wird mittels Testbeispielproblemen, die
allgemein als reprasentative Probleme angesehen werden, durchgefuhrt. Zur Zeit gibt
es allerdings keinen breiten Konsens daruber, welche Schaltungsbeispiele als allgemeine
Benchmarks angesehen werden konnen.
Fur einige Teilprobleme des Layoutproblems gibt es hervorragende Heuristiken. Dort
lassen sich teilweise sehr gute Obergrenzen fur die erzielte Abweichung von der optimalen
Losung beweisen.
Zum Beispiel konnten fur das Kanalverdrahtungsproblem schnelle Heuristiken entwickelt
werden, die hochstens eine oder zwei Verdrahtungsspuren mehr benotigen als unbedingt
erforderlich. Problematisch hierbei ist allerdings, da die hohe Qualtiat der Losungen
der einzelnen Kanalverdrahtungsprobleme bei der Zusammensetzung der verschiedenen
Teilproblemlosungen zu einer Gesamtlosung verloren geht. Als Konsequenz dieses Sachverhalts konnen keine absoluten Aussagen uber die Qualitat des resultierenden Gesamtlayouts gemacht werden.
Um die Gesamtleistung der verschiedenen Heuristiken zu verbessern, konnte man versuchen, die strikte Trennung der einzelnen Layoutphasen aufzulockern. Anstatt das Ergebnis
einer nachfolgenden Phase abzuschatzen, kann man versuchen, die nachfolgende Entwurfsphase in die augenblickliche Entwurfsphase zu integrieren. Dies wurde fur das Problem
der Plazierung und der daran anschlieenden globalen Verdrahtung von Homann [26]
durchgefuhrt. Siehe hierzu Abschnitt 3.1.6.
In diesem Abschnitt wurden allgemeine Probleme bei der Optimierung des Layoutentwurfs
angesprochen. Im folgenden Abschnitt wird auf die verschiedenen bekannten Strategien
fur den Layoutentwurf naher eingegangen.
Kapitel 2
Der Gate-Array-Entwurf
Zunachst soll auf die Besonderheiten des Entwurfs von integrierten Schaltungen auf GateArray-Master-Strukturen eingegangen werden. Im Anschlu daran wird ein U berblick
uber derzeit existierende Gate-Array-Entwurfssysteme gegeben. Nachfolgend wird dargestellt, inwiefern konzeptionelle Besonderheiten bei der Entwicklung von Entwurfswerkzeugen fur Gate-Arrays bestehen. Wie diese Besonderheiten in dem entwickelten System
GGADS berucksichtigt wurden, ist in Kapitel 4 beschrieben.
2.1 Schaltungsentwurf auf Gate-Array-Master-Strukturen
Die Besonderheiten bei Gate-Arrays bestehen im wesentlichen aus drei Punkten:
Die zur Realisierung einzelner Funktionen zur Verfugung stehenden Transistoren
sind in einem im vorhinein festgelegten geometrischen Raster angeordnet. Siehe
Abbildung 2.1. Damit sind auch die Dimensionierungen der einzelnen Transistoren
festgelegt. Somit kann beispielsweise die Ausgangstreiberstarke eines Gatters nicht
mehr beliebig an den individuellen Bedarf angepat werden, sondern nur noch in
Vielfachen eines einfachen Treibers realisiert werden. Der Entwurf hat sich an den
auf dem Master zur Verfugung stehenden Transistoren zu orientieren.
Durch die festgelegten Transistorpositionen konnen die sonst beliebig dimensionierbaren Verdrahtungskanale nur noch in einem bestimmten groben Raster dimensioniert werden. Entschliet man sich dazu, eine ganze Reihe von Transistorzellen
nur fur die Verdrahtung zu verwenden, so ist dies eine Entscheidung fur einen ganzen Block von Verdrahtungsspuren (haug in der Groenordnung von etwa 10 - 20
Spuren).
Werden Transistorzellen dazu `mibraucht', die Verdrahtung uber Ihnen durchzufuhren, so hat man dadurch teilweise keine gewohnlichen Verdrahtungskanale, wie
es beim Standardzellen- oder beim Vollkundenentwurf der Fall ist. Durch die darunterliegenden Polysilizium- und Diusionsbereiche ist es in manchen Fallen durch
15
KAPITEL 2. DER GATE-ARRAY-ENTWURF
16
Zelle 1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
1
1
1
1
1
1
2
2
2
2
2
2
1
1
1
1
1
1
Zelle 2
Abbildung 2.1: Transistorzellen eines Gate-Arrays und deren Verteilung uber die
Chipache.
die Entwurfsregeln verboten, Vias zwischen der ersten und der zweiten Metallverdrahtungsebene zu legen. Dadurch ergibt sich ein erheblich verandertes Verdrahtungsproblem gegenuber dem ublichen Kanalverdrahtungsproblem.
Im folgenden Abschnitt wird kurz der Leistungsumfang von bisher vorhandenen Entwurfsystemen fur Gate-Arrays dargestellt, die exibel genug sind, um mit ihnen Entwurfe auf
unterschiedlichen Gate-Array-Master-Strukturen durchfuhren zu konnen. U ber eines der
ersten exiblen Entwurfsysteme wird in [57] berichtet.
2.2 Vorhandene Entwurfssysteme
Die folgenden Ausfuhrungen beziehen sich im wesentlichen auf die drei folgenden Entwurfssysteme:
TANGATE von Cadence (fruher von Tangcell).
GAS (Gate-Array System) von der Universitat Eindhoven [30].
Merlyn-G als Bestandteil des Gate-Array Working Systems (GAWS) von Tektronix.
Ein weiteres Gate-Array-Entwurfssystem in der neueren Literatur ist das ORCA System [29] von der Universitat Berkeley. Hierbei sind allerdings im wesentlichen nur neue
Entwurfsalgorithmen verwendet worden, die nicht spezisch fur Gate-Arrays sind, sondern gleichermaen fur den Standardzellen- oder den Vollkundenentwurf eingesetzt werden
konnen.
2.2. VORHANDENE ENTWURFSSYSTEME
17
Technologie
Master
Zellen
Master-,
Netzlistenkonvertierung
Netzliste
Zellen-,
TechnologieBibliothek
Plazierung
&
Verdrahtung
Extraktion
Maskengenerierung
Abbildung 2.2: Typischer Aufbau eines Halbkunden-Entwurfssystems
Im wesentlichen unterscheiden sich die genannten Systeme von Vollkundenentwurfssystemen dadurch, da die Funktionszellen nicht an beliebiger Stelle des Chips plaziert werden konnen. Sie konnen hingegen nur in einem festvorgegebenen Raster plaziert werden.
Der schematischer Aufbau der Systeme ist in Abbildung 2.2 zu sehen. Die verschiedenen
Eingabedaten sind ebenfalls der Abbildung zu entnehmen.
Der Aufbau aller genannten Systeme lat sich wie folgt beschreiben:
Zunachst sind zwei Teile zu unterscheiden. Der erste Teil enthalt die Datenbasis und geeignete Konvertierungsroutinen, wahrend der zweite Teil - die Plazierung und Verdrahtung
- das eigentliche Layout erzeugt.
Die Datenbasis enthalt
Eine Beschreibung der Master-Struktur. Dies beinhaltet die Groe des Masters, des
I/O Gebietes und des aktiven Gebietes. Weiterhin sind Plazierungsreferenzpunkte
zur Plazierung der Bibliothekslayouts von Funktionszellen gegeben. Damit sind auch
schon indirekt die Verdrahtungskanale deniert - wenn solche uberhaupt vorhanden
sind. Falls Power- und Groundverdrahtung vordeniert sind, so ist das jeweilige
Raster angegeben.
Die Beschreibung der physikalischen Realisierung von Funktionszellen. Die physikalischen Personalisierungsdaten der Funktionszellen enthalten die folgenden Punkte.
{ Die Hohe und Breite des Layouts.
{ Lage des Referenzpunktes.
18
KAPITEL 2. DER GATE-ARRAY-ENTWURF
{ Ort, Art und Namen der Terminals.
{ Die Innerzellverdrahtung, welche als Verdrahtungshindernisse deklariert wird.
{ Zusatzliche Eigenschaften der Zelle wie Symmetrieeigenschaften, aquivalente
Zellen und logisch aquivalente Pins.
Eine Technologiebeschreibung. Die Technologiebeschreibung enthalt im wesentlichen die Entwurfsregeln, die bei der Erzeugung des Gesamtlayouts der Schaltung
eingehalten werden mussen. Beispielsweise die Minimalabstande von Leitungen auf
der gleichen Metallebene.
Der zweite Teil des Halbkunden-Entwurfssystems ist der Plazierungs- und Verdrahtungsteil, der fur die Erzeugung eines korrekten Layouts verantwortlich ist. Wahrend die Systeme GAS, Merlyn-G und ORCA die Plazierung und detaillierte Verdrahtung streng
nacheinander durchfuhren, ist in dem System TANGATE ein Iterationszyklus implementiert. Bei GAS beispielsweise kann es geschehen, da eine durch die implementierten
Plazierungsverfahren - wahlweise ein analytisches Plazierungsverfahren oder ein Verfahren, das auf Simulated Annealing basiert - erzielte Plazierung der Zellen nicht von den
Verdrahtungsverfahren vollstandig verdrahtet werden kann ! Im Gegensatz dazu verfahrt
TANGATE wie folgt, falls dem lokalen bzw. detaillierten Verdrahtungsverfahren keine vollstandige Verdrahtung gelingt. TANGATE versucht zunachst einzelne Leitungen
wieder zuruckzunehmen und stattdessen Umwege fur diese Leitungen in Kauf zu nehmen, um eine vollstandige aber etwas langere Verdrahtung zu erreichen. Gelingt trotz
der in Kauf genommenen Umwege keine vollstandige Verdrahtung, so ist in TANGATE die Moglichkeit implementiert, die Plazierung einzelner Funktionszellen ebenfalls
zuruckzunehmen und neu zu plazieren. Anschlieend versucht das System erneut, die
lokale Verdrahtung vollstandig durchzufuhren. Durch diesen Iterationsproze, der prinzipiell beliebig oft wiederholt werden kann, erzielt TANGATE noch erstaunliche Verbesserungen gegenuber der ersten Plazierung und lokalen Verdrahtung. TANGATE ist - wie die
anderen erwahnten Systeme auch - nicht in der Lage, bei mehreren logisch aquivalenten
Pins eines Makros die ursprungliche Pin-Netz-Zuordnung der Netzliste zu permutieren.
Wie bereits erwahnt, bestehen alle genannten Systeme im Kern nur aus einem Plazierungsund Verdrahtungsverfahren fur vordenierte Bibliothekszellen auf einem Referenzpunktraster.
Daher ist keines dieser Systeme besonders dafur geeignet, unterschiedliche Master-Strukturen auf ihre Eignung zur Realisierung bestimmter Schaltungstypen zu vergleichen. Die
Systeme konnen fur unterschiedlich groe Gate-Array-Master eingesetzt werden. Sie
konnen auch mit variierenden Transistorzellen umgehen. Sie konnen allerdings nicht die
Layouts der einzelnen Makrofunktionen (NANDs, NORs, usw.) fur beliebige Transistorzellen selbstandig erzeugen. Bei allen Systemen ist gefordert, da die Layouts der
Makrofunktionen vom Benutzer angegeben werden. Wahrend diese Anforderung an den
Benutzer bei der praktischen Entwicklung von Schaltungen auf ein- und demselben Master
noch akzeptabel erscheint, eignen sich diese Systeme dadurch nicht dazu, unterschiedliche
Master-Strukturen zu entwerfen und auf ihre Tauglichkeit fur bestimmte Schaltungstypen
zu untersuchen.
Hervorzuheben ist, da selbst bei TANGATE, das den hochsten Reifegrad der vorgestellten Systeme aufweist, keine Permutierung von logisch aquivalenten Pins moglich ist.
2.3. KONZEPTIONELLE BESONDERHEITEN
19
Beispielsweise konnten die Eingangssignale eines 3-NAND-Gatters beliebig permutiert
werden, ohne die logische Funktion des Gatters in der Gesamtschaltung zu verandern.
Allerdings konnte die Verdrahtbarkeit erst durch ein Permutieren der Eingangssignale ermoglicht werden. In dem in dieser Arbeit vorgestellten Entwurfsystem GGADS
ist die Verbesserung der Anschlumoglichkeiten eines Makros durch Permutieren logisch
aquivalenter Signale realisiert.
2.3 Konzeptionelle Besonderheiten der
Gate-Array-Entwurfsautomatisierung
Die Besonderheiten im Abschnitt uber den Entwurf von Gate-Arrays stellen auch fur die
Entwicklung von Entwurfswerkzeugen fur Gate-Arrays besondere Schwierigkeiten dar.
Durch diese Besonderheiten konnen bekannte Standardentwurfsverfahren (fur Plazierung
und Verdrahtung) nicht unmittelbar fur den Gate-Array-Entwurf eingesetzt werden. Die
folgenden Punkte seien hervorgehoben:
Die Plazierung der einzelnen Makrozellen kann nur in einem vorgegebenen Raster
erfolgen.
Bei der Verdrahtung mu bei nicht-kanalorientierten Master-Strukturen die besonderen Einschrankungen fur das Setzen von Vias zwischen den verschiedenen Metallverdrahtungsebenen berucksichtigt werden. Wenn die verfolgte Entwurfsmethodik ein Verdrahtungskanalkonzept verfolgt, so kann die Kanalbreite (Anzahl der
Verdrahtungsspuren) nicht frei sondern nur in einem vorgegebenen Raster gewahlt
werden.
Fur den Zweck der Bewertung von frei kongurierbaren Master-Strukturen mu ein Entwurfssystem auch in der Lage sein, die Layouts fur Elementarfunktionen fur unterschiedlichste Transistorzellen selbsttatig zu entwerfen. Dabei mu das System in der Lage sein,
die spezischen Layoutregeln fur die einzelnen Transistorzellen zu beachten. Weiterhin
mu der Entwurf der Layouts fur die Elementarfunktionen geeignete Anschlumoglichkeiten
der Makrofunktionen erlauben. Welche Anschlupunkte besonders geeignet sind - ob z.B.
nur an der oberen und unteren Kante einer Transistorzelle Anschlusse herausgefuhrt werden oder zu allen Seiten oene Layouts erzeugt werden mussen - hangt von dem im System
verwendeten Entwurfsstil ab (z.B., ob der Entwurfsstil ein Kanalkonzept verfolgt oder ein
`over-the-cell-routing' durchfuhrt). Im nachsten Kapitel werden bekannte Entwurfsalgorithmen behandelt und einige neue Verfahren vorgestellt.
20
KAPITEL 2. DER GATE-ARRAY-ENTWURF
Kapitel 3
Algorithmen fur den physikalischen
Entwurf
In diesem Kapitel werden Algorithmen dargestellt, die zur Plazierung und Verdrahtung
von Bibliothekselementen eingesetzt werden konnen. Dazu werden zunachst bekannte
Verfahren kurz vorgestellt. Im Anschlu daran werden die eigens fur das Entwurfssystem GGADS entwickelten Verfahren vorgestellt. Hierbei handelt sich einerseits um das
neue globale Plazierungsverfahren SQP, dessen Leistungsfahigkeit sich als traditionellen
Plazierungsverfahren deutlich uberlegen herausstellte [26]. Weiterhin wird in GGADS
die globale Plazierungsphase und die globale Verdrahtung miteinander verschmolzen, um
ein verbessertes Gesamtergebnis zu erzielen. Fur die lokale Plazierung und Verdrahtung
wurde in GGADS ein vollig neues Konzept gewahlt. Es handelt sich dabei um ein konstruktives Verfahren, das plazierte Funktionszellen unmittelbar anschlieend verdrahtet.
Dadurch werden in einer Region nie mehr Funktionszellen plaziert als auch tatsachlich
verdrahtet werden konnen. Durch diese neuartige Vorgehensweise wird auch der Entwurf von Schaltungen, fur die ein zellbibliotheksorientierter Entwurfsstil ungeeignet ist,
unterstutzt. Dazu zahlen neben ECL-Schaltungen auch dynamische CMOS-Schaltungen
entsprechend der Domino-Logik.
Die folgenden Schritte werden gemeinhin bei der algorithmischen Vorgehensweise fur den
automatischen physikalischen Entwurf integrierter Schaltungen unterschieden.
Die Plazierung,
die globale Verdrahtung,
die lokale oder detaillierte Verdrahtung.
Zunachst werden zu allen drei Punkten bekannte Verfahren kurz vorgestellt. Bei der lokalen Verdrahtung wird wird deren Eignung fur die Verdrahtung auf frei kongurierbaren
Sea-of-gates Masterstrukturen erortert. Im Abschnitt 3.5 wird ein neues kombiniertes
lokales Plazierungs- und Verdrahtungsverfahren vorgestellt, das auf die besondere Problematik bei frei kongurierbaren Sea-of-gates Masterstrukturen zugeschnitten ist.
21
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
22
3.1 Die Plazierung
In diesem Kapitel wird zunachst allgemein auf das Plazierungsproblem bei der Layoutgenerierung eingegangen. Es werden bekannte Ansatze vorgestellt und in Abschnitt 3.4
wird ein neues Plazierungsverfahren - SQP vorgestellt, das in [26] vom Autor eingefuhrt
wurde. SQP wird in seiner Leistung mit traditionellen Verfahren verglichen. SQP stellt
sich dabei als den traditionellen Verfahren deutlich uberlegen heraus.
3.1.1 Losungsansatze zum Plazierungsproblem
Zur Losung des Plazierungsproblems sind in der Literatur verschiedene Ansatze vorgeschlagen worden.
Rekursive Partitionierungsverfahren (MinCut-Verfahren),
Kraftemodelle,
Probabilistische Verfahren (Simulated Annealing),
Analytische Verfahren,
Clusterverfahren,
Andere, weniger bedeutende Verfahren.
1
Haug unterteilt man die genannten Verfahrenstypen auch in iterative und konstruktive
Verfahren.
Iterative Plazierungsverfahren
Unter iterativen Plazierungsverfahren versteht man allgemein gesprochen alle Verfahren,
die mit einer wie auch immer gewonnenen, Initialplazierung beginnen und diese dann
iterativ zu verbessern suchen. Dafur wird einerseits ein Gutekriterium benotigt, mithilfe
dessen entschieden werden kann, welche von zwei Plazierungsalternativen als besser gelten
soll. Andererseits wird ein Abbruchkriterium fur den Iterationsproze benotigt, mithilfe
dessen entschieden werden kann, wann das Plazierungsverfahren keine weitere Verbesserung der gewonnenen Plazierung sucht und stattdessen terminiert. Somit kann man
allgemein bei Iterationsverfahren die folgenden drei Schritte unterscheiden:
1. Auswahl von Zellen, deren Plazierung abgeandert werden soll.
2. Neuplazierung dieser Zellen.
3. Bewertung der neuen resultierenden Gesamtplazierung.
Die Plazierung geschieht hierbei durch rekursive Partitionierung der Grundache und einer Zuordnung von Schaltungselementen zu den jeweils entstehenden partitionierten Flachen.
1
3.1. DIE PLAZIERUNG
23
8
-2
-4
-3
15
10
6
Abbildung 3.1: Angenommene Krafte bestimmen die iterativen `Verbesserungs'schritte.
Die rekursiven Partitionierungsverfahren bedienen sich fur jeden durchzufuhrenden Partitionierungsschritt in aller Regel iterativen Verbesserunsverfahren, die mit einer anfanglich
haug zufallig gewahlten Initialpartitionierung beginnen und sie schrittweise zu verbessern
suchen. Diese Klasse von Verfahren bendet sich in sehr breitem Einsatz und schneidet
bei Vergleichsstudien im allgemeinen auch stets als zumindest vergleichbar zu anderen
Verfahren in der resultierenden Plazierungsqualitat ab [19]. Sie werden in Abschnitt 3.1.2
ausfuhrlich behandelt. Iterative Verfahren nach Kraftemodellen verfolgen die Idee, Anziehungskrafte und Abstoungskrafte zwischen Zellen und moglichen Plazierungsorten anzunehmen. Somit wird bei jedem iterativen Verbesserungsversuch angestrebt, die Lange
der resultierenden Kraftvektoren jeder Zelle zu minimieren. Siehe Abbildung 3.1.
Verfahren, die auf der Idee des Simulated Annealing [32] beruhen, vertauschen zufallig
gewahlte Zellen miteinander. Dabei werden die zu vertauschenden Zellen nicht vollig
zufallig gewahlt; die Auswahl wird vielmehr durch bestimmte Parameter eingeschrankt.
Hierbei wird eine Verschlechterung der gegenwartigen Plazierung unter Umstanden auch
in Kauf genommen, um lokale Optima zu uberwinden und das globale Optimum anzustreben. Dabei wird eine Verschlechterung der gegenwartigen Plazierung nur mit einer
bestimmten Wahrscheinlichkeit akzeptiert. Die Wahrscheinlichkeit fur die Akzeptanz einer Verschlechterung wird dabei wahrend des Iterationsprozesses variiert - in der Regel
monoton abnehmend. Dies ist in Analogie zu dem physikalischen Proze des Abkuhlens
einer Flussigkeit zu sehen, wobei die Molekule gema des niedrigsten Energiestadiums angeordnet werden sollen. Wenn die Fluigkeit in der richtigen Geschwindigkeit abgekuhlt
wird, so ist die Wahrscheinlichkeit fur das Erreichen der richtigen Anordnung entsprechend gro. Das Energiestadium wird beim `Simulated Annealing' durch eine beliebige
zu optimierende Bewertungsfunktion ersetzt. Da sowohl die Abkuhlungsgeschwindigkeit
(Cooling schedule) wie auch die Optimierungsfunktion und die Modizierungsfunktion
nicht naher speziziert ist, handelt es sich bei Simulated Annealing also um eine ganze Klasse von Optimierungsverfahren. In der Tat hangt der Erfolg der Methode auch
sehr stark von der konkret gewahlten Modizierungsfunktion, der Optimierungsfunkti-
24
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
on und der `Abkuhlungsgeschwindigkeit' - der cooling schedule - ab [38, 1, 54]. Fur das
Plazierungsproblem konnten mit Simulated Annealing bisher vergleichbare Ergebnisse zu
rekursiven Partitionierungsverfahren erzielt werden [19, 12]. Allerdings sind die Rechenzeiten dafur in aller Regel sehr lang - um ein Vielfaches hoher als fur traditionelle rekursive
Partitionierungsverfahren.
Konstruktive Verfahren
Zu den konstruktiven Verfahren zahlen von den obengenannten die analytischen Verfahren und die Clusterverfahren (siehe z.B. [18, 31]). Charakteristisch fur sie ist, da die
Plazierung der Zellen konstruiert wird, anstatt eine Initialplazierung zu bestimmen und
diese dann iterativ zu verbessern. Die Partitionierungsverfahren konnen auch zu den konstruktiven Verfahren gezahlt werden, da sie die resultierende Plazierung sukzessive durch
rekursives Partitionieren konstruieren.
Clusterverfahren gehen von einem oder mehreren sogenannten Saatkornern aus, die
man anschlieend zu groeren Clustern wachsen lat. Die Saatkorner sind einzelne Zellen,
denen bestimmte Plazierungsregionen auf der Chipache zugeordnet werden und zu denen
nach bestimmten Kriterien weitere Zellen hinzugefugt werden, um Zellencluster enstehen
zu lassen.
Analytische Verfahren basieren auf der Losung bzw. Optimierung von Gleichungsoder Ungleichungssystemen. Aus den erhaltenen Werten fur die einzelnen Variablen lat
sich die Plazierung der einzelnen Zellen auf der Chipache herleiten. Neuere Ansatze
dieser Art nden sich unter anderem in [33, 34].
3.1.2 Das allgemeine Schaltkreispartitionierungsproblem
Die Partitionierung ist aus verschiedenen Grunden ein wichtiger Aspekt bei der Layouterzeugung. Auf der einen Seite kann die Schaltkreispartitionierung benutzt werden, um
einen Schaltkreis in mehrere kleinere Schaltkreise zu unterteilen, die ihrerseits auf jeweils
separaten Komponenten realisiert werden. Dies konnen beispielsweise mehrere Platinen
oder mehrere Mikrochips sein. In diesem Fall mu der ursprungliche Schaltkreis in mehrere Teilschaltkreise unterteilt werden, wobei fur jeden Teilschaltkreis eine feste maximale
Groe berucksichtigt werden mu. Die Leitungskomplexitat zwischen den einzelnen Komponenten ist dabei zu minimieren. Eine ubliche Art, den Begri der Leitungskomplexitat
zu formalisieren besteht hierbei darin, jedem Netz bestimmte Verbindungskosten zuzuordnen, um die Verbindungskosten aller Netze, die verschiedene Komponenten miteinander
verbinden, aufzuaddieren. Die Verbindungskosten eines Netzes konnen beispielsweise dazu genutzt werden, unterschiedliche Prioritaten fur Netze, die nicht uber die Grenzen
einer einzelnen Partition hinausgehen sollen, auszudrucken.
Eine zweite Anwendung der Schaltkreispartitionierung, die eigentlich groere Bedeutung
hat, besteht darin, einen Schaltkreis hierarchisch in Teile zu unterteilen. Dieser Proze
wird als Teil von divide-and-conquer Algorithmen zur Plazierung, fur das Floorplanning
und andere Layoutprobleme eingesetzt. Die Zielfunktionen, die dabei zu minimieren sind,
konnen variieren. In der Regel ahneln sie den genannten aufaddierten Verbindungsko-
3.1. DIE PLAZIERUNG
25
sten. Divide-and-conquer Strategien, die auf Schaltkreispartitionierung basieren, bieten
einen sehr nutzlichen Rahmen, um viele Layoutprobleme losen zu konnen und mehrere
Phasen des Layoutentwurfes integrieren zu konnen. Insofern sind gute Partitionierungsstrategien vielversprechende Hilfsmittel, um die Layoutentwurfstechnik auch in Zukunft
voranzutreiben.
Die Schaltkreispartitionierung lat sich als Operation auf Graphen und Hypergraphen
formalisieren. Damit ist die Partitionierungsoperation im Rahmen des Layoutentwurfes
nicht nur fur die Schaltkreispartitionierung interessant, sondern auch fur andere wichtige
Graphpartitionierungsaufgaben. Zum Beispiel um Verdrahtungsgraphen zu partitionieren. Bei dieser Anwendung reprasentiert der Verdrahtungsgraph die Topologie der Verdrahtungsregionen auf dem Chip. Anstatt alle Leitungen durch eine Verdrahtungsregion
nacheinander zu verlegen, versuchen die divide-and-conquer Algorithmen die Verdrahtungsregionen in Unterregionen zu unterteilen, um in jeder Unterregion alle vorkommenden Leitungssegmente quasi parallel zu verlegen. Am Ende mussen naturlich die berechneten Verdrahtungen aller Unterregionen zu einer Gesamtverdrahtung der ursprunglichen
Verdrahtungsregion zusammengestzt werden.
Das Schaltkreispartitionierungsproblem in seiner formalisierten Form als Partitionierung
von Graphen und Hypergraphen ist damit ein grundlegendes Problem, das an vielerlei
Stellen im Layoutentwurfsproze auftritt. Im folgenden werden Varianten des Schaltkreispartitionierungsproblems deniert, die interessant fur den Layoutentwurf sind. Dazu
werden Losungsverfahren erortert.
Zunachst wird auf bisher bekannte Komplexitatsergebnisse eingegangen. In den darauolgenden Abschnitten werden Algorithmen fur die Partitionierung in zwei Unterpartitionen
besprochen. Das Bipartitionierungsproblem spielt eine zentrale Rolle unter den verschiedenen Partitionierungsproblemen, die im Layoutentwurfsproze vorkommen. Bipartitionierung kann auch als eine Grundlage fur Heuristiken benutzt werden, die Graphen in
mehrere - also mehr als zwei - Komponenten unterteilen. In Abschnitt 3.1.1 wird ein
U berblick uber iterative Verbesserungsheuristiken fur Graph- und Hypergraphbipartitionierung gegeben. Diese Verfahren bilden zur Zeit die Basis fur die meisten in der Praxis
eingesetzten Partitionierungsverfahren.
2
3.1.3 Denitionen und Komplexitatsergebnisse
Alle hier besprochenen Varianten des Partitionierungsproblems zielen darauf ab, einen
Graphen oder Hypergraphen in mehrere Teile zu zerlegen. Dabei soll jeder Teil moglichst
wenige - am besten gar keine - Verbindungen mit den anderen Teilen haben. Der Graph
oder Hypergraph reprasentiert entweder einen Schaltkreis, wobei die Knoten Elemente reprasentieren und die Kanten bzw. Hyperkanten die verbindenden Netze darstellen. Diese
Anwendung wird im folgenden behandelt. Bei einer anderen Anwendung reprasentiert
der Hypergraph ein Verdrahtungsgebiet, wobei die Knoten switchboxes darstellen und die
Kanten fur Verdrahtungskanale stehen. Im zweiten Fall ist der Graph in der Regel planar.
Eine Formalisierung von Graph und Hypergraph ist im Anhang zu nden. Ein Hypergraph unterscheidet sich von einem Graphen dadurch, da seine Kanten mehr als zwei Knoten miteinander verbinden.
Sie entsprechen damit einem Mehrpunktnetz in einer Schaltung.
2
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
26
Die Partitionierung eines Graphen kann dadurch geschehen, da man entweder Knoten
(und die damit verbundenen Kanten) oder aber (Hyper-) Kanten des Graphen entfernt.
Die erste Variante kommt nur fur Graphen - nicht fur Hypergraphen - in Frage und wird
auch Graphseparierung genannt. Die Kosten einer Partitionierung werden dabei als die
gewichtete Summe der Zahl der entfernten Elemente bestimmt.
Bei der Partitionierung mussen haug verschiedene Einschrankungen berucksichtigt werden; z.B., da die Partitionen eines Schaltkreises festen Groenanforderungen genugen
mussen und die Zahl der Knoten jeder Partition ebenfalls in einem vorbestimmten Bereich liegen mu. Fur dieses Problem wird die Bipartitionierung besonders haug eingesetzt. Im folgenden werden die fur den Layoutentwurfsproze wichtigen Varianten des
Partitionierungsproblems deniert.
Zunachst soll das Problem der Multipartitionierung formal deniert werden.
Multipartitionierung
Instanz: Ein Hypergraph G = (V; E ) mit n Knoten und einer Knotengewichtsfunktion w : V ! N, einer Kantenkostenfunktion c : E ! N, einer Zahl r 2 N
von Partitionen, einer maximalen Partitionsgroe B (i) 2 N und einer minimalen
Partitionsgroe b(i) 2 N; i = 1; : : : ; r.
{ Kongurationen: Alle r-Partitionierungen = (VS; : : : ; Vr ) von V , mit Vi V ,
Vi =
6 ;, und Vi \ Vj = ; fur i; j 2 f1; : : : ; rg und ( ri Vi) = V .
Zulassige Losungen: Alle Partitionierungen = (V ; : : : ; Vr ) wobei
b(i) (Pv2V w(v)) B (i) fur alle i = 1; : : : ; r gilt.
{ Zu minimierende Kostenfunktion:
1
=0
1
i
Xr
c() := 12
i
=1
X c(e);
3
e2E ;i
ext
wobei
Eext;i = fe 2 E je \ Vi 6= ;; (e n Vi) 6= ;g die Menge aller externen Kanten der
Partition Vi ist. Siehe Abbildung 3.2.
Die Partitionierung mu die Beschrankung berucksichtigen, da die Groe der Partition
Vi zwischen bi und Bi liegt. Die Minimalpartitionsgroen sind erforderlich, um eine ausgeglichene Partitionierung zu erreichen, bei der alle Partitionen ungefahr von gleicher Groe
sind. Diese Forderung eignet sich besonders fur den Einsatz von Partitionierungsverfahren in divide-and-conquer Algorithmen. Die Groe einer Partition Vi ist die Summe ihrer
Knotengewichte. Dadurch kann Schaltkreisen mit Elementen unterschiedlicher Groe, wie
dies bei der Plazierung und dem Floorplanning vorkommt, Rechnung getragen werden.
Die Konstante 21 kann im Prinzip durch eine beliebige andere Konstante ersetzt werden.
gewahlt, um einen groenordnungsmassigen Bezug zu den `absoluten' Weglangen herzustellen.
3
1
2
wurde
3.1. DIE PLAZIERUNG
27
F
V
e2
G
e1
B
e 3H
E
D
A
C
J
I
G
e3
e4
F
J
V1
C
E
H
e1 B
A
e2
D
I
V2
V3
Abbildung 3.2: Erlauterung zur Denition der Multipartitionierung. Die unterschiedlichen Kosten von Hyperkanten werden durch die Strichbreite dargestellt. Zum Beispiel ist
e = fA; B; E; I g und e = fC; D; H g. Es gilt ferner Eext; = fe ; e ; e g. Eext;i ist die
Menge aller Hyperkanten, die Knoten sowohl innerhalb von Vi als auch auerhalb davon
enthalten.
1
2
1
2
3
4
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
28
Die Hyperkanten, die verschiedene Partitionen in verbinden, tragen zum Schnitt (cut)
bei. Die Kosten einer Partition c() wird auch die Schnittgroe genannt. Die Schnittgroe ist die Summe uber alle r Partitionen der gewichtete Summe aller Kanten, die eine
Partition verlassen.
Die Gewichte c(e) ermoglichen es, unterschiedliche Kosten fur unterschiedliche Kanten zu
veranschlagen. Dadurch konnen technisch bedingten Praferenzen (z.B. kritische Pfade)
fur die Verlegung eines Netzes innerhalb einer Partition Rechnung getragen werden.
Der Faktor von dient lediglich dazu, Kanten, die zwei Partitionen verbinden, mit c(e)
in die Gesamtsumme einieen zu lassen.
Hier wurden aber auch andere Denitionen der Schnittgroe vorgeschlagen. Donath [9]
schlagt beispielsweise vor, eine Kante e, die k Partitionen miteinander verbindet mit (k
1)c(e) in die Summe eingehen zu lassen. Die meisten popularen Partitionierungsverfahren
sind allerdings unabhangig von einer spezischen Schnittgroendenition.
Es ist festzuhalten, da Multipartitionierung NP-schwierig ist [15, 28]. Dies ist auch fur
eine ganze Reihe von eingeschrankten Problemvarianten der Fall. Zum Beispiel ist das
Multipartitionierungsproblem mit w = 1, c = 1, b(i) = 1 und B (i) = n fur alle i = 1; : : : ; r
immer noch NP-schwierig [28]. Das heit, selbst wenn praktisch keine Restriktionen fur
die Partitionsgroen bestehen und keine unterschiedlichen Kosten fur Kanten oder Knoten
berucksichtigt werden mussen.
1
2
Bipartitionierung
Der Sonderfall des Multipartitionierungsproblems, bei dem r = 2 gilt, wird Bipartitionierungsproblem genannt. Die Menge von Hyperkanten, die zum Schnitt beitragen wird hier
auch einfach Schnitt genannt. Die beiden zu bestimmenden Partitionen werden auch die
beiden Seiten des Schnitts genannt. Die Schnittgroe ist dabei die Summe der c(e) uber
alle Kanten e, die im Schnitt enthalten sind. Die Obergrenzen fur die Partitionsgr
oen
werden in der Regel gleichermaen wie folgt festgesetzt: B (1) = B (2) = Pv2V w(v) fur
ein gegebenes , mit < 1. (Siehe Abbildung 3.3.) Die Untergrenzen sind dann
b(1) = b(2) = 1. Die Zahl wird dabei auch der Balancefaktor genannt. Eine Partitionierung, deren Partitionsgroen innerhalb dieser Schranken liegen, wird auch -ausgeglichen
genannt. Falls die Zahl der Knoten n gerade ist und = gilt, so wird dieses Problem
auch das Bisektionierungsproblem genannt. Das Bisektionierungsproblem ist ebenfalls
NP-schwierig - selbst unter verschiedenen Einschrankungen bleibt es NP-schwierig [7].
1
4
2
1
2
3.1.4 Iterative Verbesserungsheuristiken fur Hypergraphbipartitionierung
Die kombinatorische Struktur von Partitionierungsproblemen ist bisher noch ziemlich wenig erforscht. Zur Zeit zahlen iterative Verbesserungsverfahren, die einzelne Knoten einer
gegebenen initialen Partitionierung verschieben, zu den erfolgreichsten Verfahren in der
Praxis. Obgleich es sehr schwer ist, theoretisch gesicherte Aussagen uber deren Leistungsfahigkeit zu machen, arbeiten diese Verfahren in der Praxis zufriedenstellend. Ein
4
Falls also = 21 gilt, so mussen beide Partitionen gleichgroe Knotenmengen enthalten.
3.1. DIE PLAZIERUNG
29
2
1
V
1
3
1
1
1
3
1
2
2
2
1
2
1
1
1
2
21
1
1 1
3
1
2
3
V1
1
1
V2
Abbildung 3.3: Das Balancekriterium bei der Bipartitionierung. Es gilt Pv2V w(v) =
1 + 1 + 1 + 2 + 2 + 2 + 3 = 12. Fur einen Balancefaktor
= 0; 75 ist die obige Partition
P
P
`balanciert'. Die Schnittkosten betragen c() = i e2E c(e) = ((1 + 3) + (1 +
3)) = 4
1
2
2
=1
1
ext;i
2
groer Vorteil dieser Verfahren ist, da sie sich auf vielerlei Varianten des Partitionierungsproblems anwenden lassen. So ist es kein Problem, unterschiedliche Kanten- oder
Knotengewichte zu berucksichtigen. Ob Graphen oder Hypergraphen partitioniert werden
sollen, macht fur diese Verfahren ebenfalls keinen wesentlichen Unterschied. Im folgenden
wird zunachst die Kernighan-Lin Heuristik dargestellt. Sie war historisch die erste einer
Reihe von verwandten und zunehmend verfeinerten Heuristiken zur Partitionierung und
im Besonderen auch zur Partitionierung fur das Plazierungsproblem.
Die Kernighan-Lin Heuristik
Zunachst soll das Problem der Graphbipartitionierung betrachtet werden. Ein einfaches
Verfahren dafur ist das folgende: Man beginnt mit irgendeiner initialen Partitionierung
und vertauscht anschlieend jeweils einen Knoten aus der einen Partition mit einem anderen Knoten aus der gegenuberliegenden Partition. Dadurch konnen alle Knoten, die
eigentlich in der gegenuberliegenden Partition sein muten, um eine minimale Schnittgroe zu erzielen, in die `richtige' Partition uberfuhrt werden. In Abbildung 3.4 ist ein
Beispielgraph zu sehen, der aus 18 Knoten und 34 Kanten besteht.
Bei 18 Knoten gibt es ( )=2 = 24310 verschiedene Bisektionen. Wenn man immer denjenigen Knoten aus beiden Partitionen auswahlt, deren Austausch die grote Schnittgroenreduzierung mit sich bringt, so besteht die Gefahr, in einem lokalen Minimum zu
landen. In Abbildung 3.4 zeigt die Schnittlinie S eine Bipartitionierung an, die ein lokales Minimum ist. Die Schnittgroe von S betragt 10. Einerlei, welche Knoten aus
jeder der beiden Partitionen in die jeweils andere Partition bewegt werden, die resultierende neue Schnittgroe ist in jedem Fall groer als die Schnittgroe von S . Um dies
zu vermeiden, schlagen Kernighan und Lin das folgende Verfahren vor. Es wird stets
dasjenige Knotenpaar bestimmt, deren Vertauschen die grote Schnittgroenreduzierung
oder aber die kleinste Schnittgroenerhohung mit sich bringt. In Abbildung 3.4 ist das
18
9
0
0
0
30
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
1
3
7
2
5
8
6
4
9
S opt
16
10
14
11
17
12
15
13
18
S0
Abbildung 3.4: Ein Beispielgraph fur die Bipartitionierung.
Knotenpaar f4; 10g ein Beispiel dafur. Das Vertauschen dieser beiden Knoten erhoht die
Schnittgroe um 2. Dieser Austausch wird zunachst nur vorlaug durchgefuhrt. Nach
dem Austausch werden beide Knoten in ihrer neuen Partition xiert. Das heit, sie stehen fur einen weiteren Austausch (eventuell mit einem anderen Knoten) nicht mehr zur
Verfugung. Anschlieend wird unter den verbleibenden noch nicht xierten Knoten ein
neues Knotenpaar fur den Austausch nach dem genannten Kriterium bestimmt. Im Beispiel von Abbildung 3.4 ist das Paar f2; 12g fur den zweiten Austausch geeignet. Dies
wird solange fortgesetzt, bis mindestens alle bis auf einen Knoten xiert sind. Dabei
wird nach jedem einzelnen Austausch die resultierende Schnittgroe und die dabei verschobenen Knoten gespeichert. Am Ende wird die kleinste in der Sequenz aufgetretene
Schnittgroe bestimmt und die dazugehorige Partitionierung rekonstruiert. Durch diese
Vorgehensweise konnen lokale Minima uberwunden werden. Die weitere Vorgehensweise
fur das Beispiel in Abbildung 3.4 ist in Tabelle 3.1 dargestellt.
Wie man sieht, fuhrt in diesem Fall das Verfahren von Kernighan und Lin dazu, da die
Knotenmengen f1; 2; 3; 4g und f10; 11; 12; 13g miteinander vertauscht werden, und dabei
ein globales Minimum fur die resultierende Schnittgroe erzielt wird.
Abbildung 3.5 zeigt einen Durchlauf der Kernighan-Lin Heuristik. Ein Durchlauf kann seinerseits wiederum in einem lokalen Minimum enden. Aus diesem Grund kann ein weiterer
Durchlauf, der als initiale Partitionierung das Ergebnis des vorhergehenden Durchlaufs
hat, eine weitere Verbesserung der Schnittgroe ergeben. In der Regel wird nach wenigen
solcher Durchlaufe - oft nicht mehr als funf - keine weitere Verbesserung mehr erzielt.
Die Laufzeitkomplexitat eines einzelnen Durchlaufs der Kernighan-Lin Heuristik wird im
wesentlichen durch die drei enthaltenen Schleifen bestimmt. Wenn alle Knotenpaare im
3.1. DIE PLAZIERUNG
Schritt Knotenpaar Schnittgroe A nderung
0
10
0
1
f4; 10g
12
2
2
f2; 12g
12
0
3
f1; 13g
8
-4
4
f3; 11g
2
-6
5
f7; 18g
6
4
6
f8; 17g
10
4
7
f5; 15g
12
2
8
f9; 16g
12
0
9
f6; 14g
10
-2
Tabelle 3.1: Die einzelnen Tauschoperationen der Kernighan-Lin Heuristik fur das
Beispiel aus Abbildung 3.4
(1) while vertauschbares Knotenpaar vorhanden do
(2)
while noch weiterer verschiebbarer Knoten vA in A do
(3)
while noch weiterer verschiebbarer Knoten vB in B do
(4)
Bestimme Schnittgroenreduzierung bei Vertauschen von vA und vB
(5)
if (Gewinn(vA; vB ) > Maxgewinn)
(6)
Speichere (vA; vB ) als Maxpaar
(7)
(8)
(9)
endif
endwhile
endwhile
Vertausche (vA; vB ) und xiere vA und vB
if (Neue Schnittgroe < Lokaler Bestschnitt)
Speichere momentane Partitionierung als lokale Bestpartitionierung
endif
endwhile
Abbildung 3.5: Die Kernighan-Lin Heuristik im U berblick
31
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
32
Minimisierungsproze berucksichtigt werden, ist der Zeitaufwand von der Groenordnung
O(n ). In der Praxis kann der Algorithmus etwas beschleunigt werden, aber typischerweise bleibt immer noch ein Zeitaufwand von O(n log n).
Bei Layoutproblemen kommt es vor, da beispielsweise Padanschlusse berucksichtigt werden mussen, d. h. da bestimmte Knoten einer festen Partition zugeordnet werden
mussen. Dies lat sich leicht bei der Kernighan-Lin Heursitik berucksichtigen, indem
einfach die Knoten, die den Padzellen entsprechen, bereits in der initialen Partitionierung als xiert markiert werden. Dadurch ist sichergestellt, da diese Knoten auch in der
resultierenden Partitionierung noch in der richtigen Partition liegen.
Abgesehen davon, da sich bisher noch keine theoretischen Aussagen uber die Qualitat des
Partitionierungsergebnisses beweisen lieen, hat die Kernighan-Lin Heuristik auch noch
weitere Nachteile:
3
5
2
1. Die Heuristik berucksichtigt nur Knoten, die ein einheitliches Gewicht haben. Unterschiedlichen Groen von Knoten, wie es bei der Schaltkreispartitionierung die
Regel ist, kann nicht ohne weiteres Rechnung getragen werden. Kernighan und Lin
schlagen fur dieses Problem vor, die Gewichte eines Knoten durch eine Clique von
mehreren Knoten zu reprasentieren. Dies wurde allerdings die Gesamtknotenanzahl
drastisch erhohen.
2. Die Heuristik erzielt nur Bisektionen. Beide Partitionen enthalten stets gleichviele Knoten. Diese Einschrankung kann eliminiert werden, indem Dummy-Knoten
eingefuhrt werden, die keine Kanten haben. Dadurch geht das Verschieben eines
Dummy-Knotens nicht in die resultierende Schnittgroe ein. Dies hat allerdings
den Nachteil, da die Heuristik keinen Unterschied zwischen einer mehr und einer
weniger ausgeglichenen Partitionierung macht, wenn beide die gleiche Schnittgroe
haben.
3. Die Heuristik kann keine Hypergraphen behandeln. Fur den Schaltkreisentwurf ist
dies jedoch eine wichtige Forderung, da Netze, die mehr als zwei Anschlupunkte
haben, in Graphen nicht angemessen dargestellt werden konnen.
4. Die Laufzeitkomplexitat eines Durchlaufs ist immer noch ziemlich gro (O(n ) bei
n Knoten).
5. Die Heuristik beinhaltet noch einen erheblichen Anteil an Nichtdeterminismus insofern, da das jeweils auszutauschende Knotenpaar nicht eindeutig bestimmt ist.
Zum Beispiel hatte in Abbildung 3.4 als erstes Knotenpaar auch das Paar f4; 5g
anstatt f4; 10g gewahlt werden konnen. In Diesem Fall hatte die Heuristik in der
Folge nicht das globale Optimum gefunden.
3
Die Zahl der Durchlaufe jeder Schleife hangt linear von der Zahl der insgesamt vorhandenen Knoten
ab. Da es sich um 3 ineinandergeschachtelte Schleifen handelt, ist der Rechenzeitaufwand also von der
Groenordnung n3 .
5
3.1. DIE PLAZIERUNG
33
Die Fuduccia-Mattheyses Heuristik
Fiduccia und Mattheyses fuhrten in [13] die folgenden neuen Ideen zur Kernighan-Lin
Heuristik ein:
1. Zu jedem Zeitpunkt wird immer nur ein einzelner Knoten von einer Partition zu der
jeweils gegenuberliegenden Partition verschoben. Durch diese Veranderung konnen
ungleich groe Partitionen erzeugt werden. Gleichermaen wird dadurch die Handhabung von unterschiedlich groen Knotengewichten ermoglicht.
2. Die Berechnung der Schnittgroenveranderung wird dahingehend erweitert, da anstatt Kanten nun auch Hyperkanten korrekt gehandhabt werden konnen. Die grundlegende Beobachtung hierzu wurde allerdings bereits von Schweikert und Kernighan
in [53] gemacht.
3. Einen beschleunigten Algorithmus mit geeigneten Datenstrukturen fur die Auswahl
der am besten fur eine Verschiebung geeigneten Knoten wurde eingefuhrt.
Wie bei der Kernighan-Lin Heuristik sind auch bei der Fiduccia-Mattheyses Heuristik
(FM Heuristik) die einzelnen Knotenverschiebungen zunachst nur vorlaug. Gleichermaen wird nach jeder Knotenverschiebung der Knoten in seiner neuen Partition xiert,
um ein nutzloses Hin- und Herbewegen desselben Knotens zu vermeiden. Entsprechend
sind auch Knotenverschiebungen zulassig, die eine Erhohung der Schnittgroe bewirken,
um lokale Minima zu uberwinden. Wenn alle Knoten einmal verschoben worden sind,
wird diejenige Partitionierung unter den zwischenzeitlich erzeugten Partitionierungen bestimmt, bei der die Schnittgroe am kleinsten war. Diese Partitionierung wird wiederum
als initiale Partitionierung fur einen erneuten Durchlauf der Fiduccia-Mattheyses Heuristik verwendet. Wenn zwei Laufe der Heuristik die gleiche Schnittgroe lieferten, so wird
der Verbesserungsproze abgebrochen.
Es seien die beiden Partitionen A und B gegeben. Sei ferner der Knoten vi in A lokalisiert.
Denition 1 Die externen Hyperkantenkosten eines Knotens vi ist deniert als
E (i) =
X c(e)
e2E
ext;i
wobei Eext;i als die Menge aller Hyperkanten deniert ist, die mindestens einen Knoten
in B enthalten.
Entsprechend sind die internen Hyperkantenkosten eines Knotens vi deniert als
I (i) =
X c(e)
e2E
int;i
wobei Eint;i als die Menge aller Hyperkanten deniert ist, die keinen Knoten in B enthalten.
Der Gewinn G(i), der durch die Verschiebung des Knotens vi zustande kommt, ist dann
deniert als:
G(i) := E (i) I (i)
34
(1)
(2)
(3)
(4)
(5)
(6)
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
Initialisiere die G-Werte
while (Knoten konnen verschoben werden) do
Bestimme einen nicht xierten Knoten v;
Aktualisiere die Datenstrukturen fur die vorlauge Verschiebung von v;
Trage die vorlauge Verschiebung ein und xiere v;
endwhile
Rekonstruiere die Partitionierung mit minimaler Schnittgroe;
Abbildung 3.6: Der Kern der Fiduccia-Mattheyses Heuristik im U berblick
+ d max b max
Maxgewinn
Zelle J
Zelle C
- d max b max
Abbildung 3.7: Datenstruktur zur Auswahl des gunstigsten Knotens (nach Fiduccia und
Mattheyses)
Die Hyperkanten in (Eext;i [ Eint;i) werden auch kritische Hyperkanten des Knotens vi
genannt. Abbildung 3.6 zeigt die FM Heuristik im U berblick. Die beiden Schritte (5)
und (6) konnen wie bei der Kernighan-Lin Heuristik durchgefuhrt werden. Interessant ist
nun, wie die Schritte (1), (2) und (4) in linearer Laufzeit durchgefuhrt werden konnen.
Die Auswahl eines zu verschiebenden Knotens
Fur die Auswahl des als nachstes zu verschiebenden Knotens haben Fiduccia und Mattheyses eine besonders ezient nutzbare Datenstruktur vorgeschlagen. Diese Datenstruktur
ist in Abbildung 3.7 gezeigt.
Die Datenstruktur besteht aus zwei eindimensionalen Zeigerfeldern Bucket A und Bucket B,
mit Indices im Bereich von [( dmax bmax ); (dmaxbmax )]. Wobei dmax die grote Zahl von
Hyperkanten an einem einzelnen Knoten ist und bmax das maximale Gewicht einer einzelnen Hyperkante. Jeder Zeiger in diesem Feld reprasentiert einen moglichen G-Wert fur
einen damit assoziierten Knoten. Die Zeiger in dem Feld Bucket A zeigen auf Knoten, die
nicht xiert in der Partition A liegen. Entsprechendes gilt fur den Bucket B . Zusatzlich
zu diesen Feldern existiert jeweils eine Variable Maxgewinn A und Maxgewinn B, die die
3.1. DIE PLAZIERUNG
35
grotmogliche Schnittgroenreduzierung fur eine Knotenverschiebung aus A bzw. B anzeigen.
Zusatzlich werden noch zwei Listen Fixed A und Fixed B verwaltet, die jeweils die Knoten
in der Partition A bzw. B enthalten, die xiert wurden. In Abbildung 3.6 Zeile (1) werden
Fixed A und Fixed B 'entleert', um mit den vorhandenen Knoten die Bucket-Felder zu
fullen. Wenn Knoten nach ihrer Verschiebung xiert werden, werden sie von den BucketFeldern auf die Fixed-Listen gesetzt. Dadurch konnen sie bei dem nachsten Lauf der
Heuristik wieder verwendet werden. Wahrend der Knotenverschiebungen wird die Summe
aller Knoten in Partition A gespeichert um festzustellen, ob das Balancekriterium erfullt
ist. Dieses wird durch eine Maximalsumme M von Knotengewichten fur jede der beiden
Partitionen bestimmt. Bei der FM Heuristik mu M ((Pv2V w(v))=2 + maxv2V w(v))
gelten. Dadurch ist gewahrleistet, da immer mindestens ein nichtxierter Knoten bewegt
werden kann, ohne das Balancekriterium zu verletzen.
Es wird davon ausgegangen, da die Heuristik mit einer ausgeglichenen Initialpartitionierung startet. Der nachste zu verschiebende Knoten aus Partition A wird der erste
Knoten va in der Liste sein, auf die Bucket A[Maxgewinn A] zeigt. Entsprechend ist der
nachste zu verschiebende Knoten vb von der Partition B der erste Knoten in der Liste
Bucket B[Maxgewinn B]. Beide Knoten existieren, es sei denn eine der beiden Partitionen
enthalt nur noch xierte Knoten. Durch die oben genannte Bedingung fur das Balancekriterium mu mindestens einer der beiden Knoten va oder vb verschoben werden konnen,
ohne da dabei das Balancekriterium verletzt werden wurde. Wenn beide Knoten verschoben werden konnen, ohne das Balancekriterium zu verletzen, so wird derjenige Knoten
mit dem groeren Gewinn gewahlt. Wenn beide Knoten den gleichen Gewinnwert haben,
so wird derjenige genommen, durch dessen Verschiebung eine ausgeglichenere Partitionierung zustande kommen wurde. Dies ist diejenige Partitionierung, bei der das Maximum
der summierten Knotengewichte beider Partitionen geringer ist. Wenn alle Knoten einer Partition xiert sind, und ein Knoten v der anderen Partition bei Verschiebung das
Balancekriterium verletzen wurde, so wird auch v xiert. Ein Durchlauf der FiducciaMattheyses Heuristik endet, wenn alle Knoten xiert sind.
Die Zahl der Durchlaufe der FM Heuristik bis sich keine weitere Verbesserung der jeweils resultierenden Partitionierung einstellt, ist in der Regel etwas hoher als bei der
Kernighan-Lin Heuristik. Sie scheint jedoch trotzdem durch eine kleine Zahl von etwa
7 Durchlaufen beschrankt zu sein - unabhangig von der Zahl der Knoten. Dies ergaben
umfangreiche Testlaufe. Fiduccia und Mattheyses zeigten in [13], da ihr Verfahren eine
in der Knotenzahl linear beschrankte Rechenzeit benotigt.
Die Kernighan-Lin Heuristik kann ebenfalls fur die Eignung fur Hypergraphen erweitert werden, wenn man die Idee der G-Werte von der Fiduccia-Mattheyses Heuristik
ubernimmt. Dunlop und Kernighan berichten in [11] von Experimenten, in denen sie die
FM Heuristik mit der Kernighan-Lin Heuristik verglichen. Wie zu erwarten, waren die
laufzeiten der FM Heuristik deutlich geringer als die der Kernighan-Lin Heuristik. Allerdings stellte sich auch heraus, da die Ergebnisqualitat der Kernighan-Lin Heuristik
haug von der Fiduccia-Mattheyses Heuristik nicht ganz erreicht wurde.
36
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
3
1
2
123
1
2
a)
b)
c)
Abbildung 3.8: Verschiedene Vorgehensweisen von MinCut-Verfahren
3.1.5 Plazieren durch rekursive Partitionierung
Es wurden eine Vielzahl von Plazierungsverfahren entwickelt, die auf Partitionierungsalgorithmen zuruckgreifen. Diese Verfahren werden als MinCut-Verfahren bezeichnet.
MinCut-Verfahren bestimmen eine Plazierung, indem sie den ursprunglichen Schaltkreis
in Teilschaltkreise unterteilen, die in angrenzenden Gebieten auf der Chipache realisiert werden sollen. Dabei wird versucht, die Zahl der Leitungen zwischen verschiedenen Teilschaltkreisen zu minimieren. Haug wird hierbei eine rekursive Bipartitionierung
durchgefuhrt; d.h. die ursprungliche Schaltkreis wird zunachst in zwei Teilschaltkreise unterteilt. Die beiden Teilschaltkreise werden ihrerseits wiederum in jeweils zwei Teilschaltkreise unterteilt usw. Breuer [5] beschreibt die grundlegenden Ideen dieses Ansatzes. In
Abbildung 3.8 sind die unterschiedlichen Vorgehensweisen aus Breuers Arbeit dargestellt.
Auf diese Weise werden sukzessive immer kleinere Partitionen des ursprunglichen Schaltkreises bestimmt. Der rekursive Partitionierungsproze stoppt, wenn alle erreichten Partitionen eine im vorhinein festgelegte Anzahl von Schaltkreiselementen nicht ubersteigen.
In seinem Originalartikel [5] schlug Breuer vor, den Partitionierungsproze erst zu stoppen, wenn in jeder Partition nur noch ein einziges Schaltungselement enthalten ist. In
spateren Arbeiten (z.B. [11]) wurde jedoch darauf hingewiesen, da eine etwas groere
Anzahl von Elementen in den nalen Partitionen aus praktischen Grunden sinnvoller ist.
Diese Anzahl ist haug etwa sechs bis acht Elemente. Diese kleine Anzahl von Elementen wird durch andere spezielle Verfahren innerhalb der zugeordneten Chipache plaziert.
Dadurch konnen indiviuelle Randbedingungen besser berucksichtigt werden, als durch
ein allgemeines Partitonierungsverfahren. Solche Randbedingungen konnen z.B. die Positionen der verschiedenen Pins an einem Schaltkreiselement beinhalten. D.h. es kann
wesentlich fur die detaillierte Plazierung sein, ob die Anschlusse auf der Ober- oder Unterseite eines Schaltungselements liegen. Dunlop und Kernighan wiesen in ihrem Artikel [11]
auch noch auf eine andere wesentliche Schwache in den damaligen MinCut-Verfahren hin.
Das Problem ist in Abbildung 3.9 illustriert. Wenn bei der rekursiven Bipartitionierung
eines Teilschaltkreises ein ublicher Algorithmus fur die Hypergraphenbipartitionierung,
z.B. nach Fiduccia und Mattheyses eingesetzt wird, so wurden die Leitungen, die von
aussen in die vorgesehene Flache fur den zu partitionierenden Teilschaltkreis hineinkommen, schlicht unberucksichtigt bleiben. Das heit, die Partitionierung a) in Abbildung 3.9
3.1. DIE PLAZIERUNG
37
A
B
C
C
a)
D
B
A
D
b)
Abbildung 3.9: Das Problem der Terminalpropagierung bei rekursiver Bipartitionierung.
In a) ist eine weitaus ungunstigere Partitionierung der rechten Halbseite gezeigt als in
b). Ohne Terminalpropagierung wurde bei der rekursiven Partitionierung jedoch kein
Qualitatsunterschied bemerkt, da nur die Netze zwischen Knoten des zu partitionierenden
Bereichs bei der Bewertung berucksichtigt werden.
wird genauso von der Heuristik bewertet, wie die Partitionierung b). Dadurch hangt es
von der konkreten Implementierung ab, ob die eingesetzte Partitionierungsheursitik die
Partitionierung a) oder b) ndet. Im Mittel ndet eine Heuristik dadurch naturlich sehr
haug eine der weniger gunstigen Partitionierungen. Um dies zu verhindern, schlugen
Dunlop und Kernighan das folgende Verfahren vor, das sie Terminalpropagierung (engl.
terminal propagation) nannten. Wenn von aussen eine Leitung in eine der beiden zu
bildenden Partitionen fuhrt, so kann ein zusatzlicher Dummy-Knoten in der entsprechenden Partition eingesetzt und als xiert markiert werden. D.h. der Knoten wird unmittelbar in die Fixiert-Liste eingetragen. Um das Balancekriterium dadurch nicht zu
verandern, konnen die Dummy-Knoten mit Gewichten von 0 versehen werden. Durch
diese zusatzlichen Vorarbeiten bei der Partitionierung von Teilschaltkreisen werden dann
Partitionen wie in Abbildung 3.9 b) gegenuber a) bevorzugt. Dies ist dann wiederum unabhangig von dem gewahlten Bipartitionierungsalgorithmus; z.B. die Kernighan-Lin oder
die Fiduccia-Mattheyses Heuristik.
Es wurden noch eine Vielzahl weitere Vorschlage zur Verbesserung oder zum geschickteren
Einsatz der rekursiven Bipartitionierung gemacht. In [22, 20] werden Methoden vorgeschlagen, wie die Reihenfolge der rekursiven Bipartitionierung optimiert werden kann.
Bui et al. [6] untersuchte, inwieweit die zu partitionierenden Graphen durch eine vorhergehende Clusterung einzelner Knoten auf Graphen abbilden lassen, die insgesamt ein
besseres Partitionierungsergebnis erwarten lassen.
38
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
Abbildung 3.10: Simultane Partitionierung in 2 2 Partitionen
In [23, 36, 60, 4] werden verschiedene Erweiterungsvorschlage der Grundidee der Bipartitionierung nach Fiduccia und Mattheyses gemacht.
Partitionierungen in mehr als zwei Partitionen
Im folgenden werden Techniken vorgestellt, die eine Bipartitionierung als den zentralen
Schritt bei einer rekursiven Schaltkreispartitionierung durch eine Mehrfachpartitionierung
- insbesondere Quadripartitionierung - ersetzen. So schlugen Suaris und Kedem 1987
in [58] vor, zwei nach Breuer [5] hintereinander durchgefuhrte Bipartitionierungsschritte
in einem einzigen Schritt durchzufuhren. Siehe hierzu Abbildung 3.10. Suaris und Kedem
schlagen dabei als Partitionierungsheuristik eine Modikation der Fiduccia-Mattheyses
Heuristik vor. Anstatt die Verschiebung eines Knotens in die gegenuberliegende Partition
zu betrachten, werden bei der Quadripartitionierung die Verschiebungen eines Knotens
in jede der drei ubrigen Partitionen betrachtet. Dabei wird fur jede der drei moglichen
Zielpartitionen eines Knotens die durch die Verschiebung entstehenden Gewinn-Werte
berechnet. Diese Werte beziehen sich dabei auf die Reduzierung der Gesamtkosten der
anfallenden Schnitte fur eine vollstandige Vierteilung des Schaltkreises. Ansonsten verwenden Suaris und Kedem gleichen Ideen fur die Datenstrukturen, wie Fiduccia und
Mattheyses. Dies resultiert ebenfalls in einer linearen Laufzeitkomplexitat des Quadripartitionierungsverfahrens. Allerdings benotigt die Quadripartitionierungsheuristik deutlich mehr Rechenzeit als die FM Heuristik, da hierbei fur jeden Knoten nicht nur ein
Gewinn-Wert, sondern drei Gewinn-Werte berechnet und nach jeder Knotenverschiebung
angepat werden mussen.
3.1.6 SQP - ein neues globales MinCut-Partitionierungsverfahren
In diesem Abschnitt wird das neue Partitionierungsverfahren SQP (Simultaneous Quadripartitioning) zur Plazierung vorgestellt. Die Motivation fur das neue Verfahren liegt in
einem Problem bei der rekursiven Bipartitionierung, das mit dem von Dunlop und Kernighan behandelten Problem verwandt ist. Das Problem ist bei der Quadripartitionierung
von Suaris und Kedem [59] gleichermaen vorhanden. Bei einer rekursiven Bipartitionierung kann bei jedem Schritt nur die Zahl der Netze berucksichtigt werden, die die momen-
3.1. DIE PLAZIERUNG
a)
A
E
C
B
b)
39
A
F
D
E
C
B
G
D
H
G
F
H
D
C
B
A
D
C
B
A
E
F
G
H
E
F
G
H
B
C
F
G
B
C
F
G
A
D
E
H
A
D
E
H
Abbildung 3.11: Bei der rekursiven Bipartitionierung (siehe a)) wird lediglich fur den
augenblicklichen Partitionierungsschritt ein Optimum angestrebt. Dabei bleibt unberucksichtigt, wie gut die entstehenden Partitionen weiter partitioniert werden konnen.
In b) ist die optimale Losung zu sehen. Zu ihrer Berechnung mute im ersten Partitionierungsschritt eine subotpimale Losung akzeptiert werden.
a)
b)
A
C
B
A
C
D
A
A
C
B
D
B
D
D
C
B
A
D
B
C
A
B
C
D
Abbildung 3.12: Bei der rekursiven Bipartitionierung (siehe a)) bleibt unberucksichtigt,
inwiefern sich die Zellen in den beiden Partitionen aufgrund des beschrankten Platzangebotes auch in der Nahe der Schnittlinie plazieren lassen. (In b) ist die optimale Losung
zu sehen.)
tane Schnittlinie schneiden. Dadurch sind globale Eekte einer vorgenommenen Bipartitionierung unberucksichtigt. Zur Illustration des Problems dient Abbildung 3.11. Die
Partitionierung in a) stellt die optimale Verteilung der Knoten dar. Durch eine rekursive
Bipartitionierung des Ausgangsblocks entsteht allerdings die Partitionierung in b). Dabei
wurde in jedem Bipartitionierungsschritt das absolute Optimum gefunden. Der Grund fur
die suboptimale Losung in b) liegt darin, da bei dem ersten Bipartitionierungsschritt in
das Optimierungskriterium nicht eingeht, wie gut sich die beiden entstehenden Teilpartitionen weiter partitionieren lassen. Es gibt allerdings noch weitere Grunde, aus denen
die aus rekursiver Bipartitionierung resultierende Gesamtpartitionierung suboptimal ist.
Die Zahl der durch die entstehende Schnittlinie geschnittenen Leitungen spiegelt nicht
wieder, ob die daranhangenden Knoten auch in der Nahe der Schnittlinie plaziert werden
konnen. Moglicherweise konnen aufgrund fehlenden Platzes nicht alle Knoten in der Nahe
der Schnittlinie plaziert werden. Siehe hierzu Abbildung 3.12. Aus diesen Betrachtungen
ergibt sich die folgende Idee, um dem globalen Optimum der resultierenden Partitionierung naher zu kommen. In jedem Partitionierungsschritt wird die Netzliste nicht nur in
zwei Teile unterteilt, sondern in vier nebeneinanderliegende Teile (Abbildung 3.13).
Um diese Quadripartionierung zu erreichen, wurde die Grundidee von Fiduccia und Mattheyses [13] etwas modiziert. Entsprechend zu Fiduccia und Mattheyses wird anfangs eine
zufallige Aufteilung der Zellenmenge in vier etwa gleichgroe Teilmengen vorgenommen.
40
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
Abbildung 3.13: Grundidee des neuen Partitionierungsverfahrens SQP.
Anschlieend werden fur alle moglichen Verschiebungen jeder Zelle von ihrer momentanen
Partition in eine der drei ubrigen Partitionen die Veranderungen der Gesamtnetzschnittzahl bestimmt. Aufgrund dieser Berechnungen werden dann diejenigen Zellen in eine
andere Partition geschoben, deren Verschiebung die jeweils grotmogliche Verbesserung
der Gesamtnetzschnittzahl bewirkt. Bei der Auswahl wird darauf geachtet, da bestimmte
Minimal- und Maximalwerte je Partition nicht unter- bzw. uberschritten werden, um die
ungefahre Ausgeglichenheit der Zellenzahl und -groen je Partition zu gewahrleisten. Nach
jeder Verschiebung werden die Gewinnwerte fur die Verschiebung eines Knotens in eine
andere Partition aktualisiert. Im Gegensatz zu Kernighan-Lin und Fiduccia-Mattheyses
wird ein Knoten nicht nach einer Bewegung xiert, sondern er kann eine beschrankte Anzahl von Verschiebungen mitmachen. Dadurch wird ein mehr oder weniger zyklisches Hinund Herschieben von bestimmten Knoten vermieden. Hier hat sich eine Zahl von zwei
Verschiebungen bei einer Quadripartitionierung bewahrt. Wenn kein Knoten mehr verschoben werden kann, endet die Knotenverschiebungsschleife. Als Resultat wird diejenige
Partitionierung Popt der Knoten, die wahrend der Knotenverschiebungen entstand und
die kleinste Gesamtnetzschnittzahl hatte, rekonstruiert. Diese beste Partitionierung Popt
wird als Initialpartitionierung fur den nachsten Lauf durch die Knotenverschiebungsschleife verwendet, um sie weiter zu verbessern. Dies ist deshalb denkbar, weil bei dem ersten
Durchlauf bereits einige Knoten nicht mehr bewegt werden durften, als Popt wahrend des
ersten Laufes durch die Schleife entstand. Wenn die Initialpartitionierung nicht mehr
verbessert werden konnte, so endet das Partitionierungsverfahren.
Dieses Partitionierungsverfahren kann mehrfach mit unterschiedlichen, zufallig erzeugten
Initialpartitionierungen gestartet werden, um eine insgesamt noch bessere Partitionierung
zu erzielen. Hierbei zeigten Versuche, da nach etwa funf Laufen kaum noch nennenswerte
Verbesserungen erzielt werden.
In Abbildung 3.18 ist der Algorithmus in Pseudo-Code beschrieben. Um das Verfahren
in seiner Leistungsfahigkeit mit der traditionellen und bewahrten Fiduccia-Mattheyses
Heuristik zu vergleichen, wurde der FM-Heuristik rekursiv zur Partitionierung in 4 nebeneinanderliegende Partitionen (Abbildung 3.14) implementiert. Es zeigte sich, da fur
die uberwiegende Mehrheit aller Testdaten die Partitionierung in 4 nebeneinanderliegende Partitionen in einem Schritt deutlich bessere Ergebnisse lieferte als das traditionelle
Verfahren von Fiduccia und Mattheyses, das jeweils eine Bipartitionierung durchfuhrt
und bei der rekursiven Vorgehensweise die Terminalpropagierung [11] berucksichtigt. Allgemein ist zu den Testdaten zu sagen, da synthetisch erzeugte Netzlisten verwendet
wurden. Die Netzlisten hatten eine Knotenzahl zwischen 250 und 5000 und jedes Netz
3.1. DIE PLAZIERUNG
41
Abbildung 3.14: Erzeugung von 4 nebeneinanderliegenden Partitionen durch rekursive
Bipartitionierung.
Abbildung 3.15: Erzeugung von 16 nebeneinanderliegenden Partitionen.
hatte zwischen 2 und 5 Knotenanschlusse. Die Maximalzahl max ppn der Pins per Netz
in den Tabellen bedeutet, da in der jeweiligen Netzliste die die Netze gleichverteilt eine
Pinanzahl zwischen 2 und max ppn hatten. Siehe hierzu die Tabelle 7.1 auf Seite`100:
In den Spalten SQPi sind die Ergebnisse, die durch SQP erzielt wurden, angegeben. Die
Zahl i gibt dabei an, wieviele Laufe durch mit einer zufallig erzeugten Initialpartitionierung durchgefuhrt wurden. Zum Vergleich sind in den Spalten FMi die Ergebnisse durch
die rekursive Anwendung der FM Heuristik mit Terminalpropagierung angegeben. Hier
hat die Zahl i die entsprechende Bedeutung wie bei den SQP Spalten.
Die Grundidee, mehr als zwei Partitionen in der gleichen Dimension in einem Schritt zu
erzeugen, kann naturlich prinzipiell auch auf eine beliebige andere Zahl als 4 ausgedehnt
werden. Es wurde die Version implementiert, die 16 nebeneinander liegende Partitionen
in einem Schritt erzeugt. 16 Partitionen eignen sich besonders gut, um die Vorgehensweise
mit der rekursiven Partitionierung in jeweils vier nebeneinanderliegende Partitionen zu
vergleichen. Siehe Abbildung 3.15.
Hierfur mussen die Datenstrukturen nur etwas angepat werden. Testlaufe mit einer
variierenden Zahl von erlaubten Verschiebungen je Knoten wurden verglichen mit der
rekursiven Variante der Quadripartitionierung. Es zeigte sich, da fur alle Testdaten
die rekursive Partitionierung deutlich bessere Ergebnisse lieferte als das Verfahren, das
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
42
Abbildung 3.16: Sequentielle Anwendung von SQP zur Erzeugung einer 4 4 Partitionierung.
nach Quadripartitionierung
nach orthogonaler
Quadripartitionierung
eA
eE
eI
eM
eD
eA
eB
eP
eL
eA
eG
eI
eB
eF
eJ
eN
eK
eC
eG
eH
eD
eF
eE
eJ
eC
eG
eK
eO
eO
eM
eN
eJ
eO
eC
eN
eP
eD
eH
eL
eP
eL
eF
eE
eI
eK
eM
eB
eH
-
-
Abbildung 3.17: Die sequentielle Anwendung von SQP.
16 Partitionen in einem Schritt erzeugte. Siehe hierzu die Tabelle 7.3 auf Seite`102. In
den Spalten rSQPi sind die Ergebnisse, die durch die rekursive Anwendung von SQP
zur Erzeugung einer 4 4-Partitionierung erzielt wurden, angegeben. Die Zahl i gibt
dabei an, wieviele Laufe mit einer zufallig erzeugten Initialpartitionierung durchgefuhrt
wurden. Zum Vergleich sind in den Spalten HXFLATi die Ergebnisse angegeben, die mit
der Erweiterung der SQP Heuristik zur Erzeugung einer 16 1 Partitionierung in einem
Schritt erzielt wurden. Hier hat die Zahl i die entsprechende Bedeutung wie bei den rSQP
Spalten.
Um die Idee der Multipartitionierung zur Plazierung einzusetzen, mu sie letztlich zur
Partitionierung in zwei Dimensionen eingesetzt werden. Somit wurde ein weiterer Vergleich durchgefuhrt: Die sequentielle Anwendung der Quadripartitionierung in orthogonaler Richtung (siehe Abbildung 3.16) wurde mit Erweiterung der Multipartitionierungsidee
auf eine 4 4 Partitionierung verglichen.
Bei der sequentiellen Anwendung der Quadripartitionierung wird der zweite Schritt nach
dem bereits vier Partitionen erzeugt wurden, wie folgt vorgegangen (vgl. Abbildung 3.17):
Es wird der gleiche Algorithmus verwendet (Abbildung 3.18) wie fur den ersten Quadripartitionierungsschritt. Dabei werden die den Partitionen zugeordneten Zellen orthogonal
zum ersten Partitionierungsschritt angeordnet. In Abbildung 3.18 werden bei dem ersten
Schritt die Zellen in Spalten angeordnet und im zweiten Schritt in Reihen. Dabei bleibt jede Zelle in der Spalte in der sie durch den ersten Partitionierungsschritt gelangte. Dadurch
3.1. DIE PLAZIERUNG
43
(1) for i=1 to Anzahl der Zufallslaufe do
(2) Erzeuge zufallige Initialpartitionierung
/* Anfang der iterative Verbesserungsschleife */
do
(4)
(5)
(6)
(7)
(8)
(9)
while (Zulassige Verschiebung moglich ist) do
Bestimme zulassige Knotenverschiebung mit hochstem Gewinn
Verschiebe(bestimmten Knoten in Zielpartition)
Aktualisiere alle Gewinnwerte
if (Neue Schnittgroe < Lokaler Bestschnitt)
Speichere momentane Partitionierung als lokale Bestpartitionierung
(10)
(11)
endif
endwhile
if (Lokale Bestschnittgroe < Beste Schleifenschnittgroe)
Speichere lokale Bestpartitionierung als Schleifenbestpartitionierung
endif
(12) while Schleifenbestpartitionierung verbessert werden konnte
(13)
(14)
/* Ende der iterativen Verbesserungsschleife */
if (Beste Schleifenschnittgroe < Beste globale Schnittgroe)
Speichere beste Schleifenbestpartitionierung als Globale Bestpartitionierung
endif
endfor
Abbildung 3.18: Der SQP-Algorithmus im U berblick.
44
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
Abbildung 3.19: Der zweite Partitionierungsschritt bei der sequentiellen Anwendung von
SQP.
1
2
2
Abbildung 3.20: Die sequentielle Anwendung von SQP minimiert den (halben) Umfang
der kleinsten umschlieenden Rechtecke aller Netze. Die Langenbemessung bezieht sich
auf die Mitte der jeweiligen Partition.
ist allerdings eine zusatzliche Randbedingung bei dem zweiten Partitionierungsschritt zu
beachten: Nun mussen ungefahr ausgeglichene Zellenmengen in jeder Spalte erzielt werden. Dadurch gibt es also fur jede der vier Spalten A{D separate Ober- und Untergrenzen
fur den `Fullstand' der einzelnen vier Partitionen jeder Spalte. Es genugt also nicht mehr,
die Grenzen fur jede Reihe einzuhalten, sondern in jeder Reihe mussen zusatzlich noch
die Grenzen von jeder der vorhandenen Spalten eingehalten werden. Dadurch sind die
einzelnen Zellen weniger `beweglich' gegenuber dem ersten Quadripartitionierungsschritt.
Siehe Abbildung 3.19.
Bei beiden Partitionierungsschritten wird das gleiche Optimierungskriteriums verwendet
- die Minimierung der Gesamtnetzschnittanzahl in Bezug auf die jeweils durchzufuhrende
Quadripartitionierung. Dadurch wird bei der Durchfuhrung beider Partitionierungsschritte insgesamt die Minimierung des kleinsten umschlieenden Rechtecks fur jedes Netz optimiert (Abbildung 3.20). Der halbe Umfang des kleinsten umschlieenden Rechtecks der
Anschlupunkte eines Netzes wird haug als Abschatzung der entstehenden Lange eines
Verbindungsnetzes benutzt. Insofern verfolgt die sequentielle Anwendung von SQP auch
3.1. DIE PLAZIERUNG
45
im zweidimensionalen Fall die Minimierung der entstehenden Leitungslangen.
Bei dem Ziel, eine 4 4 Partitionierung zu erzeugen, liegt der Gedanke nahe, die 4 4
Partitionierung in einem Schritt zu erzeugen. Diese Variante der Partitionierung in 16
Partitionen wurde ebenfalls implementiert und mit der sequentiellen Variante von SQP
verglichen. Die Implementierung unterscheidet sich von dem Partitionierungsalgorithmus
in 1 16 Partitionen lediglich in dem Optimierungskriterium. Die Kosten, die fur jedes
Netz veranschlagt werden, wenn dessen Knoten in bestimmten Partitionen liegen, wird
aus einer Tabelle abgelesen. Daher lat sich der Algorithmus fur die 1 16 Partitionierung
sehr leicht in den Algorithmus zur 4 4 Partitionierung abandern.
Die Ergebnisse des Vergleichs zeigten, da auch hier die sukzessive Partitionierung in
vier Partitionen der Partitionierung in 16 Partitionen uberlegen ist. Nicht nur in der
benotigten Rechenzeit, sondern auch im erzielten Resultat.
Siehe hierzu Tabelle 7.2 auf Seite`101. In den Spalten sSQPi sind die Ergebnisse, die durch
die sequentielle Anwendung von SQP zur Erzeugung einer 4 4-Partitionierung erzielt
wurden, angegeben. Die Zahl i gibt dabei an, wieviele Laufe mit einer zufallig erzeugten
Initialpartitionierung durchgefuhrt wurden. Zum Vergleich sind in den Spalten HXi die
Ergebnisse angegeben, die mit der Erweiterung der SQP Heuristik zur Erzeugung einer
4 4 Partitionierung in einem Schritt. Hier hat die Zahl i die entsprechende Bedeutung
wie bei den sSQP Spalten.
Der Grund fur die U berlegenheit der (rekursiven bzw. sequentiellen) Partitionierung in 4
Partitionen gegenuber der Partitionierung in 16 Partitionen in einem Schritt lat sich nicht
genau analysieren; vermutlich liegt er aber darin, da bei 16 zur Verfugung stehenden
Partitionen, in die eine gegebene Zelle verschoben werden kann, die Zellen in gewisser
Weise dazu tendieren hin- und hergeschoben zu werden, ohne einen groeren Eekt auf
das Gesamtoptimierungskriterium zu haben. Vermutlich wird dadurch verhindert, da
groere Gruppen von Zellen aus ihrer initialen Partition herausbewegt werden.
Die Laufzeitkomplexitat der SQP Heuristik ist linear in der Zahl der Knoten, wie die
folgende Analyse nachweist.
3.1.7 Laufzeitanalyse der SQP Heuristik
Im folgenden wird gezeigt, da die Initialisierung und das Verwalten der Datenstrukturen
einen Zeitaufwand hat, der nur linear mit der Zahl der Knoten wachst. Genau genommen
wird gezeigt, da die Laufzeit von der Groenordnung O(jV j bmax ) ist. Wobei bmax der
Grad des Hypergraphen ist, also die grote Zahl von Hyperkanten an einem einzelnen
Knoten. Da bei der Anwendung der Heuristik in der Schaltkreispartitionierung die Knoten aus technischen Grunden eine feste Hochstzahl von Netzen (Hyperkanten) haben, die
unabhangig von der Gesamtzahl der vorkommenden Knoten ist, kann fur bmax eine Konstante eingesetzt werden. Damit ist also O(jV j bmax ) linear in der Zahl der Knoten jV j.
Im Gegensatz zu den Knotengewichten, die sehr hoch sein konnen, sind die Kostenfunktionen fur die Hyperkanten ebenfalls auf kleine konstante Werte beschrankt. Damit ist
der Zeitaufwand der SQP-Heuristik fur die Anwendung in der Schaltkreispartitionierung
linear.
Zunachst wird die Initialisierung der Datenstrukturen betrachtet.
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
46
struct netlistentry f
int
sections[4];
bool
Belegt[4];
struct nodetype
**nodeptrsptr;
nodenumber;
int
g
Abbildung 3.21: Die Datenstruktur, mit Hilfe derer die einzelnen Netze in SQP reprasentiert werden.
Partitionen
P P P P Schnittkosten
0 0 0 1
0
0 0 1 0
0
0 0 1 1
1
0 1 0 0
0
0 1 0 1
2
... ... ... ...
...
Abbildung 3.22: Die Tabelle enthalt fur jede mogliche Knotenverteilung der Knoten eines
Netzes e die entsprechenden Schnittkosten.
1
2
3
4
Initialisierung der Datenstrukturen
Die in SQP verwendeten Datenstrukturen sind in Abbildung 3.21 gezeigt. Zu jedem Netz
ist fur jede der vier Partitionen die Zahl der dort zugeordneten Knoten des Netzes e
gespeichert. Daruberhinaus gibt es fur jede Partition eine boolesche Variable, die nur
dann auf `1' gesetzt ist, falls der zugehorigen Partition mindestens ein Knoten des Netzes
zugeordnet ist.
Aufgrund dieser vier booleschen Variablenwerte kann in einer Tabelle die zugehorige Anzahl von Netzschnitten nachgeschlagen werden. (Siehe Abbildung 3.22.) Die entsprechenden Eintrage fur jedes Netz konnen in linearer Zeit (in der Gesamtanzahl der Knoten)
durchgefuhrt werden. Um die Gewinnwerte fur jede mogliche Verschiebung eines Knotens v 2 V zu ermitteln, werden die Gewinnwerte einer Knotenverschiebung aller an v
hangenden Netze aufaddiert. Der Gewinnwert eines einzelnen an v hangenden Netzes wird
dabei wie folgt bestimmt. Es werden die booleschen Variablenwerte fur jede Partition ermittelt, falls die Knotenverschiebung durchgefuhrt werden wurde. Das heit, falls in der
Ausgangspartition von Knoten v nur dieser eine Knoten in dem untersuchten Netz liegt,
so wird die `Belegt'-Variable auf `0' gesetzt. Die `Belegt'-Variable der Zielpartition wird in
jedem Fall auf `1' gesetzt. Damit lat sich der Gewinnwert fur ein Netz einfach durch die
Dierenz der (alten Schnittgroe - neuer Schnittgroe) bestimmen. Die alte bzw. neue
Schnittgroe kann dabei einfach in einer Tabelle nachgeschlagen werden. Aus den vorhergehenden U berlegungen ist klar, da die Berechnung der neuen Schnittgroe in konstanter
3.2. GLOBALE VERDRAHTUNG
47
Zeit geschehen kann. Damit lassen sich also auch alle Gewinnwerte in linearer Zeit initialisieren. Wenn die Gewinnwerte gegeben sind, kann somit die Bucket-Datenstruktur
in einer Rechenzeit von O(jV j + dmaxbmax ) bestimmt werden. Der zweite Term steht fur
die Initialisierung der Bucket-Datenstruktur, wahrend der erste Term fur die Erzeugung
der linearen Listen steht, auf die in den einzelnen Elementen der Bucket-Datenstruktur
ein Zeiger steht.
Verwalten der Datenstrukturen
Da jedes Element hochstens eine feste Anzahl von Bewegungen durchfuhren darf, werden
je Durchlauf also hochstens jV j k Knoten verschoben. Damit die Gesamtlaufzeit nicht
mehr als linear in der Anzahl der Knoten wachst, mu nur gezeigt werden, da sowohl
die Auswahl einer Knotenverschiebung als auch die Aktualisierung der Gewinnwerte und
der entsprechenden Bucket-Zeigerfelder in konstanter Zeit - also mit einer Rechenzeit, die
unabhangig von der Anzahl der Knoten jV j ist - geschehen kann.
Durch die Verschiebung eines Knotens werden bestenfalls die Gewinnwerte derjenigen
Knoten verandert, die mindestens ein Netz gemeinsam mit dem verschobenen Knoten haben. Da sowohl die Zahl der Netze eines Knotens als auch die Zahl der Knoten an einem
Netz aus technischen Grunden durch eine Konstante begrenzt ist, ist auch die Zahl der
durch die Verschiebung beeinuten Gewinnwerte durch die Konstante bmax dmax AnzPart
begrenzt. Wie oben erlautert, lat sich ein einzelner Gewinnwert einer beliebigen Knotenverschiebung in konstanter Zeit berechnen. Die entsprechende Umtragung eines Knotens
aufgrund seiner veranderten Gewinnwerte in der Bucket-Struktur lat sich aufgrund der
doppelt verketteten Listen ebenfalls in konstanter Zeit durchfuhren. Damit lat sich also
jede Knotenbewegung in konstanter Zeit durchfuhren, womit die in der Zahl der Knoten
lineare Laufzeitkomplexitat der SQP Heuristik gezeigt ist.
3.2 Globale Verdrahtung
Bei der globalen Verdrahtung werden zwei Ziele verfolgt.
Die Bestimmung von moglichst geringer Gesamtnetzlange fur jedes einzelne Netz.
Die Ortung von Haufungen von Netzwegen und das Finden von ausweichenden
Pfaden fur die beteiligten Netze.
Die Bestimmung eines Netzweges mit minimaler Lange ist fur Netze mit mehr als zwei
Anschlussen nicht oensichtlich und fur Netze mit mehr als drei Anschlussen sind fur den
allgemeinen Fall auch keine schnellen Algorithmen bekannt. Das Problem hierbei entsteht dadurch, da die Gesamtnetzlange oft reduziert werden kann, wenn man zusatzlich
zu den Endpunkten des Netzes noch weitere geeignete Verzweigungspunkte bestimmt
(vgl. Abbildung 3.23). Von geeigneten Verzweigungspunkten aus konnen dann mehrere
Endpunkte durch kurze Teilnetze erreicht werden.
Die Ortung von Haufungen von Netzen in bestimmten Regionen der Verdrahtungsache
ist notwendig, um fur einzelne Netze neue Wege zu bestimmen. Dadurch soll gewahrleistet
werden, da auf der gesamten Verdrahtungsache ausreichend viele Verdrahtungsspuren
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
48
Abbildung 3.23: Ein minimaler Steinerbaum fur drei Terminalpunkte kann leicht ermittelt
werden.
zur Verlegung aller Netze zur Verfugung stehen. Haug gibt es fur ein Netz mehrere gleichlange Verbindungswege oder alternative Verbindungswege, die nur unwesentlich
langer sind als die kurzestmogliche Verbindung. Wenn geeignete Alternativen fur Netze
gefunden werden, die durch Regionen fuhren, durch die viele Netze gelegt werden sollen,
kann somit gleichmaigere Verteilung der Verdrahtungsdichte uber die gesamte Verdrahtungache erzielt werden. Dadurch wird die Aufgabe der nachfolgenden detaillierten
Verdrahtung erleichtert bzw. eine vollstandige Verdrahtung aller Netze uberhaupt erst
ermoglicht. Daruberhinaus ist die Kenntnis uber die Regionen der Verdrahtungsache
mit hohem Verdrahtungsaufkommen wichtig, um die Plazierung der Funktionszellen in
Regionen zu ermoglichen, die nicht im wesentlichen mit bloer Verdrahtung belegt werden mussen.
Algorithmen zur Bestimmung rechteckiger Steinerbaume
Obgleich keine ezienten Algorithmen zur Bestimmung von minimalen rechteckigen Steinerbaumen im allgemeinen bekannt sind, gibt es doch eine Reihe von schnellen Approximationsalgorithmen [50, 61, 42]. Sind nur drei Endpunkte durch rechteckig verlaufende
Leitungen miteinander zu verbinden, so lat sich eine kurzeste Verbindung noch schnell
ermitteln. Siehe hierzu Abbildung 3.23. Fur mehr als drei Endpunkte erhoht sich der
Suchaufwand fur die Bestimmung eines kurzesten Steinerbaumes drastisch. Genauer gesagt, steigt die Anzahl der zu prufenden Varianten exponentiell mit der Zahl der Endpunkte des zu realisierenden Netzes. Dieser Sachverhalt verbietet bereits fur eine relativ
kleine Anzahl von zu verbindenden Endpunkten die Bestimmung eines optimalen Steinerbaums. Glucklicherweise lassen sich allerdings schnelle heuristische Verfahren angeben,
die eine gute Annaherung an die optimale Losung garantieren. So ist der minimal spanning tree, welcher schnell berechnet werden kann , hochstens um 50% langer als der
minimale Steinerbaum [27]. Um auch dem Ziel der ausgeglichenen Verteilung der Netze
uber die gesamte Verdrahtungsache nachzukommen, wurde das folgende Verfahren in
GGADS gewahlt. Dabei werden in der Regel Steinerbaume gefunden, die kurzer sind als
der mimimal spanning tree: Fur jedes Paar von Endpunkten werden die beiden rechteckigen Verbindungen bestimmt. Falls die beiden Punkte auf einer horizontalen bzw.
vertikalen Linie liegen, so wird nur die eine direkte Verbindung auf der horizontalen bzw.
6
6
Siehe zum Beispiel [37] fur einen Algorithmus mit einer Laufzeit von weniger als O(n2 ) bei n Knoten.
3.2. GLOBALE VERDRAHTUNG
49
2
1
1
2
1
Abbildung 3.24: Bestimmung der kurzesten Verbindung fur jeweils zwei Endpunkte
D
A
D
A
B
D
A
1
2
1
B
C
C
T1
T2
2
1
C
B
2
T3
Abbildung 3.25: Erzeugung eines Steinerbaums durch Verschmelzung von rechteckigen
Verbindungen zweier Knoten.
vertikalen Linie betrachtet. Siehe Abbildung 3.24. Anschlieend wird ein alle Endpunkte
verbindender Steinerbaum sukzessive bestimmt.
Zu diesem Zweck wird eine Menge von bereits miteinander verbundenen Endpunkten
betrachtet. Diese Menge C wird mit den beiden Endknoten mit minimaler Manhattandistanz initialisiert. Anschlieend wird C sukzessive um jeweils einen Endpunkt erweitert.
Der jeweils hinzuzufugende Knoten wird wie folgt bestimmt. Es werden alle Knotenpaare
betrachtet, die genau einen Knoten in C enthalten. Unter diesen Knotenpaaren wird
dasjenige mit minimaler Manhattandistanz ausgewahlt. Dieser Proze wird solange fortgesetzt, bis alle Endpunkte in C enthalten sind. Zu der jeweils aktualisierten Menge C
wird auch ein verbindender Steinerbaum gespeichert und sukzessiv erweitert. Der Steinerbaum S := S [ R(vi ; vj ) ergibt sich aus der Vereinigungsmenge der belegten Rasterkanten
des bisherigen Steinerbaumes S und der Rasterkanten R(vi; vj ) einer der moglichen rechteckigen Verbindungen des ausgewahlten Knotenpaares (vi; vj ). Wenn die Schnittmenge
der beiden Rasterkantenmengen nicht leer ist, so ist die erzielte Steinerbaumlange kleiner als die Lange des zugehorigen minimal spanning tree. Siehe Abbildung 3.25. Der
Suchraum fur einen naherungsweise minimalen Steinerbaum besteht somit aus (n 1)
Endpunktpaarverbindungen bei n Endpunkten. Dabei stehen fur jede Verbindung zwischen einem Endpunktpaar in der Regel zwei Alternativen zur Verfugung - eventuell aber
auch nur eine Verbindungsmoglichkeit.
Damit besteht der Suchraum von moglichen Losungen aus hochstens 2n unterschiedlichen Losungen. Von dieser Zahl von verschiedenen Losungen ist eine von minimaler Lange
zu bestimmen. Die Zahl der zu untersuchenden Falle wachst also exponentiell mit der Zahl
1
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
50
(1) Initialisiere die Liste `open' mit dem Startzustandsknoten.
(2)
(3)
(4)
(5)
(6)
do
Bestimme denjenigen Knoten n auf der `open'-Liste mit dem
hochsten f (n)-Wert.
Falls n einem Zielzustand entspricht, so terminiere und gib den Pfad
zu n als Losung aus.
Expandiere den Knoten n und losche n von der `open'-Liste.
Setze die generierten Nachfolgerknoten von n auf die `open'-Liste.
while (TRUE)
Abbildung 3.26: Der Kern des A-Algorithmus in Pseudocode.
der zu verbindenden Endpunkte. Um eine Losung mit minimaler Lange zu nden, wird
der A -Algorithmus, der eine heuristische Funktion zur Abschatzung der Gesamtlange des
kurzesten Steinerbaumes benutzt, verwendet.
Berechnung von Steinerbaumen mithilfe des A-Algorithmus
Der A-Algorithmus ist ein allgemeines Verfahren zur Aundung einer optimalen Losung
bei kombinatorischen Optimierungsproblemen. Er ist insbesondere in der kunstlichen
Intelligenz bekannt [44]. Der A -Algorithmus bedient sich einer heuristischen Funktion,
die die Suche nach einer optimalen Losung steuert. Dabei benutzt der A-Algorithmus
eine einfach verkettete Liste `open', welche alle bis zum jeweiligen Zeitpunkt entwickelten
Teillosungen beinhaltet, die noch Aussicht auf eine weitere Entwicklung zu einer optimalen
Gesamtlosung haben.
In seiner allgemeinen Form ist er in Abbildung 3.26 zu sehen.
Der Algorithmus fuhrt eine Pfadsuche durch einen Zustandsraum durch, wobei das Ziel
ist, einen Zustand zu nden, der eine zulassige und optimale Losung fur das jeweilige
Problem reprasentiert. Im vorliegenden Fall reprasentiert der Zielzustand also einen alle
Endpunkte verbindenden Steinerbaum. Jeder Pfad vom Startknoten des Zustandsraums
zu einem Zielknoten ist mit bestimmten Kosten assoziiert, die die Lange des vom Zielknoten reprasentierten Steinerbaumes entsprechen. Fur das vorliegende Problem gilt, da
sich die Kosten fur einen Pfad durch den Zustandsraum additiv aus den Kosten fur die
Wege zwischen jeweils zwei hintereinanderliegenden Knoten des Pfades ergeben. Dieser Sachverhalt erlaubt es, den A -Algorithmus zur Bestimmung einer optimalen Losung
einzusetzen. Der Algorithmus benutzt zur Bewertung der jeweils erzeugten Knoten im
Zustandsraum eine Funktion f (v) = g(v)+ h(v). Die Funktion g(v) spiegelt dabei die Kosten wieder, die dem Weg vom Startknoten bis zum Knoten v entsprechen. Die Funktion
h(v) hingegen schatzt die Kosten fur den Weg von Knoten v bis zu einem Zielknoten ab.
Damit sind die geschatzten Gesamtkosten fur eine Losung, die den Teilpfad vom Startknoten s bis v enthalt, durch die Funktion f (v) = g(v) + h(v) gegeben. Fur das Beispiel
in Abbildung 3.25 ist in Abbildung 3.27 der zugehorige Suchbaum durch den Raum von
7
7
Fur eine detaillierte Einfuhrung in Zustandsraumprobleme siehe [44] oder [49].
3.2. GLOBALE VERDRAHTUNG
51
(g=0)
2468
2
4
6
8
10
12
14
12
B-D
(1)
D
A
(g=6)
2
1
B-C
(1)
B
(g=15)
1
2
C
T3
T1
B-C
(2)
(g=15)
T2
A-C
(1) A-C
(2)
(g=26)
A-C
(1)
(g=26)
(g=22)
T3
A-C
(2)
(g=26)
Abbildung 3.27: Die Bewertung von Teillosungen bei dem A -Algorithmus. N ; ; entsprechen in Abbildung 3.25 den Teillosungen T ; ; .
1 2 3
1 2 3
Teillosungen zur Aundung eines verbindenden rechteckigen Steinerbaums zu sehen.
Fur die Benutzung in GGADS wurde als heuristische Schatzfunktion h fur die noch entstehenden Kosten, um eine Teillosung zu einer Gesamtlosung zu erganzen, die folgende
Funktion gewahlt:
h(n) := Zahl der noch nicht angeschlossenen Knoten
falls fur die Zahl der zu verbindenden Knoten t 6 gilt.
Falls t > 6 gilt, ist h wie folgt deniert:
h(n) :=
X Manhattandistanz minimal Knotenpaar[i]
t k
i
=1
wobei k die Zahl der Knoten ist, die bereits durch das Teilnetz, das durch n reprasentiert
wird, miteinander verbunden sind. Manhattan minimal Knotenpaar enthalt die Manhattandistanzen in aufsteigenden Reihenfolge aller Knotenpaare(vi ; vj ) mit der folgenden
Eigenschaft: Entweder der Knoten vi gehort zu denjenigen Knoten, die in der momentanen
Teillosung bereits angeschlossen sind und vj ist ein noch nicht angeschlossener Knoten.
Oder beide Knoten wurden noch nicht angeschlossen.
Dadurch kann h(n) nie die tatsachlich erforderlichen Kosten zur Vervollstandigung einer
Teillosung uberschatzen, falls k 6 gilt. Falls k > 6 gilt, so kann h(n) die erforderlichen
Kosten uberschatzen, falls tatsachlich die noch zu verlegenden Verbindungskanten sich
uberlappen, da dann deren Lange doppelt in die Kostenfunktion einiet. Wenn die
heuristische Schatzfunktion die tatsachlich zu veranschlagenden Kosten nicht ubersteigt,
so garantiert der A-Algorithmus eine optimale Losung. U bersteigt die Schatzfunktion
die tatsachlich zu veranschlagenden Kosten hochstens um eine Konstante c, so ndet der
Algorithmus eine Losung, die um hochstens c schlechter ist als die optimale Losung. Je
kleiner h im allgemeinen ist, desto breiter wird der Baum der generierten Suchknoten damit wird die Gesamtzahl der generierten Knoten auch entsprechend groer und ebenso
die Rechenzeit von A. Gilt (8n)h(n) = 0, so wurde die Zahl der generierten Knoten im
allgemeinen exponentiell mit der Tiefe (der Zahl der Knoten auf dem Pfad) der optimalen
Losung wachsen (Abbildung 3.28a).
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
52
1.
T=1
1.
2.
T=2
2.
3.
T=3
5.
4.
6.
7.
5.
3.
8.
T=4
4.
6.
9.
11.
13. 15.
14. 16.
10. 12.
a)
b)
Abbildung 3.28: Die entstehenden Suchbaume fur verschiedene h-Funktionen. In a) gilt
stets h = 0. In b) schatzt h die tatsachlich entstehenden Kosten fast prazise ab.
Schatzt auf der anderen Seite die Funktion h die tatsachlich entstehenden Kosten prazise
ab, so werden im wesentlichen nur die Knoten auf dem Pfad zur optimalen Losung generiert (Abbildung 3.28b). Insofern ist es wunschenswert, die Kosten moglichst genau
abzuschatzen, um die Losungssuche zu beschleunigen. Es bietet sich sogar an, die entstehenden Kosten auch geringfugig zu uberschatzen, um die Losungssuche entsprechend zu
beschleunigen. Siehe Abbildung 3.29.
Da das Aunden einer optimalen Losung fur das Problem der minimalen rechteckigen
Steinerbaume als NP-schwierig bekannt ist, benotigt naturlich auch der A-Algorithmus
mit einer beliebigen Heuristik eine exponentielle Rechenzeit. Aus diesem Grund wurde in
GGADS eine Heuristik
verwendet, die die tatsachlich entstehenden Kosten teilweise auch geringfugig uberschatzt,
falls das Netz mehr als sechs Endknoten besitzt. Dadurch wurde die Berechnung von
Steinerbaumen drastisch beschleunigt.
8
Vermeidung von Engpassen in Regionen mit hohem Leitungsaufkommen
Wenn fur alle Netze die optimalen oder nahezu optimalen Steinerbaume berechnet wurden, kommt es haug in bestimmten Regionen der Verdrahtungsache zu einem ubermaigen
Leitungsaufkommen. Durch eine leichte Veranderung der Wege von beteiligten Netzen
konnen diese Engpae haug mit nur wenig groeren Leitungslangen vermieden werden.
Um dies zu erreichen, wurde von Nair [43] die Vorgehensweise in Abbildung 3.30 vorgeschlagen.
Dieses Verfahren von Nair wird auch in GGADS in Verbindung mit dem A-Algorithmus eingesetzt. Dabei werden die Kostenfunktionen g(n) und h(n) bei dem zweiten
Die Heuristik arbeitet wie folgt: Bei n noch unverbundenen Knoten werden die n kleinsten Manhattanabstande zwischen zwei noch unverbundendenen Knoten aufaddiert. Die einzelnen Rasterlangen
werden erst mit der globalen Auslastung gewichtet, wenn der g-Wert des A -Algorithmus berechnet wird.
Sie geht also nicht in die Kostenabschatzung ein. Falls noch gar keine Knoten miteinander verbunden
sind, so werden die n 1 kleinsten Manhattanabstande aufaddiert. Eine U berschatzung kann dabei dann
entstehen, wenn die Kanten zweier Verbindungspfade uberlappen.
8
3.2. GLOBALE VERDRAHTUNG
53
1.
g=5, h=20
f=25
2.
3.
g=12, h=10
f=22
g=10, h=13
f=23
4.
g=16, h=8
f=24
g=15, h=10
f=25
5.
Optimale
Loesung
(f=g=20)
Suboptimale
Loesung
(f=g=22)
Abbildung 3.29: Suchbaum falls die Kosten des verbleibenden Losungspfades uberschatzt
werden.
begin
(1) for i = 1 to jE j do
(2)
Berechne approximativen minimalen Steinerbaum fur Netz i
endfor
(3) for i = 1 to jE j do
(4)
Nehme Netz i zuruck
(5)
Berechne approximativen minimalen Steinerbaum fur Netz i
unter Berucksichtigung von Zusatzkosten fur die Benutzung von
Chipregionen mit hohem Leitungsaufkommen
end
endfor
goto Schritt 2
Abbildung 3.30: Globale Verdrahtung nach Nair.
54
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
Zusatzkosten
5
4
3
2
1
20%
40%
60%
80%
100%
ausgenutzte Kapazitaet bezgl.
der jeweiligen Verdrahtungsregion
Abbildung 3.31: Veranschlagte Zusatzkosten fur die Benutzung von Verdrahtungsregionen
hohen Leitungsaufkommens.
Schritt dahingehend abgeandert, da sie Zusatzkosten fur Steinerbaume veranschlagen,
die eine Kante belegen, deren Kapazitat verhaltnismaig ausgeschopft ist. Hierbei wird
eine Kostenfunktion verwendet, die in Abbildung 3.31 zu sehen ist.
3.3 Integriertes globales Plazieren und Verdrahten
In diesem Abschnitt wird kurz beschrieben, wie das vorgestellte globale Verdrahtungsverfahrens in GGADS in das neue globale Plazierungsverfahren SQP integriert wurde.
Im ersten Schritt wird die Gesamtchipache in eine 4 4 Partitionierung mittels der
sequentiellen Anwendung von SQP partitioniert. Im Anschlu daran werden mit dem
vorgestellten globalen Verdrahtungsverfahren die entsprechenden Wege der einzelnen Netze berechnet. Hierbei wird bestimmt, welche und wieviele Netze die Schnittlinien zweier
benachbarter Partitionen passieren mussen. Dieser Vorgang ist in Abbildung 3.32 schematisch gezeigt. Bei der weiteren rekursiven Partitionierung mit SQP werden entsprechend
der Terminalpropagierung die Netze, welche in die zu partitionierende Partition eintreten, berucksichtigt. Aufgrund der globalen Verdrahtung ist bekannt, von welche der bis
zu vier Schnittkanten zu einer Nachbarpartition ein Netz passieren mu. Aufgrund dieser Information berechnet SQP die Gewinnwerte fur die Verschiebung eines Knotens so,
da ggf. der Weg eines Netzes von der zu passierenden Schnittkante bis zu dem Platz
der dem Knoten zugewiesen wird, berucksichtigt ist. Dadurch erkennt SQP also, ob ein
Knoten besser links, rechts, oben oder unten innerhalb einer Subpartition angeordnet
werden sollte - je nach dem zu welcher Seite (oder zu welchen Seiten) ein Netz aus der
weiter zu partitionierenden Partition gefuhrt werden mu. Siehe hierzu Abbildung 3.33.
Diese Vorgehensweise ist in Analogie zur der von Dunlop und Kernighan vorgeschlagenen
Terminalpropagierung [11], welche zu erheblich reduzierten Leitungslangen und dementsprechend reduzierten Gesamtachenbedarf fuhrte.
3.3. INTEGRIERTES GLOBALES PLAZIEREN UND VERDRAHTEN
55
Globale
Verdrahtung
Rekursive
Anwendung
von SQP
Abbildung 3.32: Die rekursive Partitionierung und parallele globale Verdrahtung. Das
Leitungsaufkommen zwischen den einzelnen Partitionen ist durch die Dicke der Striche
gekennzeichnet. Dies wurde mittels der Berechnung von approximativen Steinerbaumen
bestimmt.
Abbildung 3.33: Die Terminalpropagierung von Netzen, die in oder durch die zu partitionierende Chipregion gefuhrt werden sollen.
56
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
Hierbei kann die globale Verdrahtung sich aus dem folgenden Grund als inkorrekt erweisen: Bei der lokalen Plazierung und Verdrahtung konnte es sich herausstellen, da
tatsachlich deutlich mehr bzw. weniger Funktionszellen in der vorgesehenen Flache untergebracht werden konnen, als ursprunglich abgeschatzt wurde. Dadurch wurden ggf.
Leitungen unnotigerweise durch Chipregionen gefuhrt werden, da ihre Anschluzellen an
ganz anderer Stelle letztlich plaziert werden mussen. Dies konnte durch erneute globale
Verdrahtungen korrigiert werden. Siehe hierzu auch Abschnitt 5.
3.4. LOKALE VERDRAHTUNGSVERFAHREN
57
(1) for (alle Rasterpunkte R) do
(2)
Entfernungswert(R) := 1
endfor
(3) Entfernungswert(Startpunkt) := 0
(4) distance := 0
(5) while (Entfernungswert(Zielpunkt) = 1) do
(6)
for (alle Rasterpunkte R mit Entfernungswert(R) = distance) do
(7)
for (alle an G angrenzenden Rasterpunkte R0) do
(8)
if (Entfernungswert(R0) = 1)
(9)
then Entfernungswert(R0) = distance + 1
(10)
endif
endfor
distance := distance + 1
endwhile
(11) while (distance 0) do
(12)
Bestimme einen Rasterpunkt R, mit (Entfernungswert(R) = distance)
und setze R auf die Liste der vom Losungspfad belegten Rasterpunkte
(13)
distance := distance 1
endwhile
Abbildung 3.34: Der Lee-Algorithmus in Pseudocode
3.4 Lokale Verdrahtungsverfahren
Ein allgemeines Verdrahtungsverfahren, das fur beliebige Verdrahtungsprobleme eingesetzt werden kann, ist der sogenannte Lee-Verdrahtungsalgorithmus [39]. Der Lee-Algorithmus versucht in einem Labyrinth zwei beliebige Punkte miteinander zu verbinden und
garantiert dabei das Aunden der kurzesten Verbindung. Siehe Abbildung 3.35. Der
Algorithmus ist in Pseudocode in Abbildung 3.34 dargestellt. Der Algorithmus ndet
in jedem Fall eine kurzestmogliche Verbindung, falls eine solche existiert. Wahrend der
Expansionsschritte (5)-(10) wird ein Pfad mit einer sogenannten Breitensuche ermittelt.
In den Schritten (11)-(13) wird einer der eventuell mehreren kurzestenPfade rekonstruiert. Damit kann der Lee-Algorithmus fur die Verbindung zweier beliebiger Punkte auf
einem Raster eingesetzt werden. Um Mehrpunktnetze zu verbinden bieten sich leichte
Modikationen an, bei denen sukzessive jeweils ein weiterer Endpunkt zu dem teilweise
bereits verlegten Netz hinzukommen. Probleme entstehen jedoch, wenn mehrere Netze
verbunden werden mussen. Hierbei kommt es sehr auf die Reihenfolge, in der die verschiedenen Netze verlegt werden, an. Denn alle zuvor verlegten Netze stellen Hindernisse
in dem Labyrinth fur das aktuell zu verlegende Netz dar. Hier gibt es auch verschiedene
- teilweise sehr eektive Verfahren - die die Verlegung eines hinderlichen Netzes wieder
zurucknehmen und mit einem Umweg neu verlegen (z.B. [56, 8]).
Oft wird die Gesamtchipache in mehrere Teilachen unterteilt, wobei die Teilachen
58
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
2
1
2
3
1
S
1
2
2
1
3
2
4
3
5
4
5
6
6
5
6
7
3
7
4
5
6
7
8
6
7
8
9
8
7
8
9
9
8
9
8
9
9
Z10
8
9
Abbildung 3.35: Expansionsschritte des Lee-Verdrahters.
nacheinander verdrahtet werden. Dabei tritt das Problem auf, die Leitungen an gunstigen
Stellen von einer Teilflache in eine benachbarte zu uberfuhren. Siehe hierzu [16]. Bei den
lokalen Verdrahtungsverfahren sind je nach verwendetem Entwurfsstil unterschiedliche
Verdrahtungsprobleme zu losen. Das wichtigste dabei betrachtete Verdrahtungsproblem
ist das Kanalverdrahtungsproblem.
3.4.1 Das Kanalverdrahtungsproblem
Verdrahtungskanale entstehen bei unterschiedlichen Entwurfsstilen auf quasi `naturliche'
Weise. Bei den fruhen Gate-Arrays sind Verdrahtungskanale auf der Masterstruktur von
fester Breite vorgesehen. Bei Standardzellenentwurfen enstehen Verdrahtungskanale variabler Breite durch die Anordnung der Funktionszellen in Reihen. Bei Vollkundenentwurfen
werden oft `kunstlich' Verdrahtungskanale (siehe Abbildung 3.36) vorgesehen, weil die
mittlerweile entwickelten Kanalverdrahtungsverfahren sich als auerordentlich eektiv erwiesen haben.
Ein Beispiel fur ein Kanalverdrahtungsproblem ist in Abbildung 3.37 zu sehen. In Verbindung mit dem Kanalverdrahtungskonzept entstehen in der Regel auch sogenannte
Switchbox-Verdrahtungsprobleme. Dies sind Verdrahtungskanale wobei auch auf der linken und rechten Seite anzuschlieende Netzpunkte liegen. Siehe Abbildung 3.38.
3.4.2 Die Idee der Vorzugsrichtung fur Verdrahtungsebenen
Um einfache und eektive Verdrahtungsalgorithmen bei mehreren Verdrahtungsebenen
zu ermoglichen, legt man in der Regel fur jede Verdrahtungsebene eine Vorzugsrichtung
fest. Bei zwei Verdrahtungsebenen werden dann auf der einen Ebene nur vertikale Leitungen gelegt und auf der anderen Ebene nur horizontale Leitungen. Durch diese Strategie
sind vermeidbare Blockaden von Verbindungswegen durch fremde Leitungen weitgehend
unterbunden.
Bei drei und mehr Verdrahtungsebenen hat man entweder auf mehreren Ebenen horizontale bzw. vertikale Vorzugsrichtungen, oder aber es werden auf der dritten und
3.4. LOKALE VERDRAHTUNGSVERFAHREN
59
K
a
n
a
l
SW
SW Kanal SW Kanal
K
a
SW
n
a
l
Abbildung 3.36: Ein Vollkundenentwurf mit vorgesehenen Verdrahtungskanalen und
switchboxes (SW).
10 4
1
7
8
5
10
6
11
2
3
7
11
8
9
7
1
2
6
3
2
5
4
11 8
6
7
9
Abbildung 3.37: Ein typisches Kanalverdrahtungsproblem.
10
6
10
1
2
3
3
5
5
3
8
1
4
10
7
9
2
4
5
8
6
7
9
Abbildung 3.38: Ein Switchbox-Verdrahtungsproblem.
60
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
daruberliegenden Verdrahtungsebene diagonal Leitungen verlegt. Siehe beispielsweise [46].
Die dritte und die daruberliegenden Verdrahtungsebenen werden meist fur Versorgungsleitungen, Taktleitungen oder andere globale Verdrahtungen genutzt.
Da der U bergang zwischen verschiedenen Verdrahtungsebenen sowohl den Widerstand
als auch die Kapazitat einer Leitung erhoht, werden in der Regel die einzelnen Leitungen, nach dem auch alle ubrigen Leitungen verlegt wurden, optimiert. Bei der Optimierung werden unnotige Verdrahtungsebenenwechsel eliminiert. So wird beispielsweise ein
horizontales Leitungssegment auf Ebene der zweiten Ebene in die erste Ebene verlegt,
wenn dadurch kein Kurzschlu entsteht. Somit werden die Vorzugsrichtungen bei der
nachtraglichen Optimierung aufgegeben.
3.5 Lokales Plazieren und Verdrahten in GGADS
In GGADS wurde fur das lokale Plazieren und Verdrahten ein konstruktiver Ansatz
gewahlt. Dabei ist die lokale Plazierung nicht mehr von der lokalen Verdrahtung getrennt. Dies sieht wie folgt aus:
GGADS bearbeitet zu jeder Zeit immer nur eine Partition der Chipache von fester Groe.
Durch die globale Verdrahtung ist bekannt, welche Leitungen durch die Partition gefuhrt
werden mussen. Weiterhin ist jeder Partition durch die globale Plazierung eine Menge von
Funktionszellen zugeordnet, die - wenn moglich - dort untergebracht werden sollen. Hierbei handelt es sich groenordnungsmaig um 10-30 Zellen. Ob alle zugeordneten Funktionszellen in einer Partition untergebracht werden konnen, oder ob sogar noch mehr Funktionszellen untergebracht werden konnen, kann letztlich erst durch die lokale Plazierung
und Verdrahtung entschieden werden. In GGADS werden die jeweils daruberliegenden
Partitionen fur einen eventuell erforderlichen Ausgleich benutzt. So konnen zwei Falle
auftreten:
a) Nicht alle vorgesehenen Funktionszellen konnen in der Partition untergebracht werden:
In diesem Fall werden die nicht untergebrachten Zellen in die daruberliegende Partition verschoben. Dabei mussen entsprechend die Anschlunetze ebenfalls in die
daruberliegende Partition gefuhrt werden. Siehe Abbildung 3.39.
b) Es konnen noch zusatzliche Funktionszellen in der Partition untergebracht werden.
In diesem Fall werden aus den daruberliegenden Partitionen soviel Funktionszellen
`heruntergezogen' wie moglich. Dabei mussen gegebenenfalls die Anschlunetze in
die daruberliegenden Partitionen gefuhrt werden. Siehe Abbildung 3.40.
So beginnt das Verfahren fur jede Partition mit der `Annahme', da keine der zugeordneten Funktionszellen in der Partition untergebracht werden kann. Damit werden anfangs
alle Netze, die in die Partition hineinfuhren und an dort plazierte Funktionszellen angeschlossen werden sollen, nach oben in die daruberliegende Partition umgelenkt. Falls
sie aus der daruberliegenden Partition kommen, so werden sie zunachst uberhaupt nicht
berucksichtigt. Siehe Abbildung 3.41.
3.5. LOKALES PLAZIEREN UND VERDRAHTEN IN GGADS
61
Abbildung 3.39: Nicht alle vorgesehenen Funktionszellen lassen sich in der Partition unterbringen.
Abbildung 3.40: Mehr als die vorgesehenen Funktionszellen lassen sich in der Partition
unterbringen.
62
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
7
11
9
3
5
10
8
1
2
1
9
4
11
5
2
3
8
7
8
7
4 10 3 11
Abbildung 3.41: Vereinfachtes Switchbox-Verdrahtungsproblem
7
11
7
9
5
3
10
8
11
9
5
3
10
8
1
2
1
2
9
1
2
3
9
1
4
11
5
4
11
5
2
3
8
7
8
7
4 10 3 11
a)
8
7
8
7
4 10 3 11
b)
Abbildung 3.42: Es werden horizontale und vertikale Leitungen bis zur denierten Anschluhohe auf der rechten bzw. unteren Seite gelegt.
Somit hat das initiale Verdrahtungsproblem gewisse A hnlichkeit mit dem switchbox Verdrahtungsproblem (Abbildung 3.38), wie es bei Kanalverdrahtungsverfahren auftritt. Es
liegt ein Rechteck vor, wobei von auen an alle vier Seiten Netze herangefuhrt werden.
Das Verdrahtungsproblem besteht darin, gleichnamige Netze innerhalb des Rechtecks miteinander zu verbinden. Die Losung des allgemeinen Switchbox-Verdrahtungsproblems ist
nicht trivial. Jedoch unterscheidet sich das initiale Verdrahtungsproblem bei GGADS vom
traditionellen Switchbox-Verdrahtungsproblem dadurch, da die Koordinaten der Netze
an zwei der vier Seiten des Rechtecks noch nicht festgelegt sind. Vielmehr kann vom
Verdrahtungsalgorithmus bestimmt werden, an welcher Stelle ein Netz die zugeordnete
Rechtecksseite uberschreitet.
Dadurch vereinfacht sich das initiale Verdrahtungsproblem drastisch. Nur auf der unteren und der rechten Kante der Partition sind die Anschlupunkte festgelegt. Die obere
und linke Kante grenzen an benachbarte Partitionen, in denen noch nicht plaziert und
verdrahtet wurde. Siehe hierzu Abbildung 3.42. So werden zunachst fur jedes Netz die
3.5. LOKALES PLAZIEREN UND VERDRAHTEN IN GGADS
63
9
7
5
10
7
3 11
5 10
3 11 9
8
8
8
8
2
2
2
2
1
1
1
1
11
5
9
11
5
4
3
3
9
7
8
7
4 10 3 11
a)
4
7
8
7
4 10 3 11
b)
Abbildung 3.43: Es werden durchgangige horizontale bzw. vertikale Leitungen gelegt.
Anschlupunkte auf der linken und unteren Kante miteinander verbunden. Dies lat sich
sehr einfach mit einer vertikalen und einer horizontalen Leitung auf der entsprechenden
Verdrahtungsebene durchfuhren. Die horizontale Leitung fuhrt von der linken Kante bis
zur Hohe des Anschlupunktes an der unteren Kante. Die vertikale Leitung fuhrt entsprechend von der unteren Kante bis zur Hohe des Anschlupunktes auf der linken Kante. An
dem Schnittpunkt wird ein Via zwischen den beiden Verdrahtungsebenen gesetzt. (Abbildung 3.42a)). Wenn eine Leitung nach rechts aus der Partition hinausgefuhrt werden mu,
so wird eine horizontale Leitung von dem genannten Schnittpunkt bis zur linken Kante
gelegt. Entsprechend wird eine vertikale Leitung bis zur oberen Kante gelegt, wenn das
Netz nach oben aus der Partition gefuhrt werden mu. (Abbildung 3.42b) und Abbildung 3.43a)). Ist kein Schnittpunkt vorgegeben, weil ein Netz nicht sowohl in der linken
als auch der unteren Kante einen Anschlupunkt hat, so sind zwei Falle zu unterscheiden:
1. Es ist eine Leitung von links nach rechts bzw. von unten nach oben zu legen:
In diesem Fall wird eine durchgangige horizontale bzw. vertikale Leitung gezogen
(Abbildung 3.43b)).
2. Es ist eine Leitung von links oder rechts nach oben bzw. von unten oder oben nach
links zu legen:
In diesem Fall wird ein Kreuzungspunkt bestimmt, von dem aus eine horizontale
bzw vertikale Leitung gelegt wird. Der Kreuzungspunkt wird so bestimmt, da die
erforderliche Verdrahtungsspur frei ist. Das heit, diese Kreuzungspunkte werden
erst festgelegt, wenn alle anderen Netze bzw. Teilnetze, bei denen entsprechend
weniger Freiheitsgrade vorhanden sind, festgelegt wurden. Das heit, wenn die
vorgenannten Falle bereits verdrahtet wurden (Abbildung 3.43b).
Sukzessive lokale Plazierung und sofortige Verdrahtung
An die initiale Verdrahtung anschlieend wird die Partition mit moglichst vielen Funktionszellen belegt. Die Reihenfolge der dafur benutzten Transistorzellen ist in Abbildung 3.44 zu sehen. Begonnen wird in der untersten Zeile in der ersten Transistorzelle
64
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
.
.
.
Abbildung 3.44: In oben skizzierter Reihenfolge werden die Transistorzellen auf Nutzbarkeit gepruft.
3
27 16
15
16
27
15
3
27
16
neu plazierte Zelle
27
Abbildung 3.45: Eine plazierte Funktionszelle und ihre sofortige Verdrahtung. Die gestrichelten Linien stellen die neu verlegten Leitungen dar.
(ganz links). Darauf folgen die jeweils rechts liegenden Transistorzellen der untersten Reihe. Wenn die unterste Reihe abgeschlossen ist, so wird mit der daruberliegenden Transistorzellenreihe entsprechend verfahren. Da nicht in jeder Transistorzelle jede mogliche
Funktionszelle untergebracht werden kann (z.B. weil eine Transistorzelle keine Bipolartransistoren enthalt), werden zunachst alle der Partition zugeordneten Funktionszellen
bestimmt, die in der zu belegenden Transistorzelle untergebracht werden konnen. Zur
Auswahl einer Funktionszelle wird eine Abschatzung der bei dem Anschlu der Zelle entstehenden Verdrahtungslange minimiert. Anschlieend wird die Funktionszelle plaziert
und alle Pins sofort verdrahtet. Siehe hierzu Abbildung 3.45.
Hierbei sind im wesentlichen zwei Falle zu unterscheiden:
1. Ist das Netz, an das ein Pin angeschlossen werden mu, bereits in der Partition
verlegt, so wird ein moglichst kurzer Anschluweg zu dem verlegten Teil des Netzes
3.5. LOKALES PLAZIEREN UND VERDRAHTEN IN GGADS
65
7
7
42
11
7
5
42
23 3
3
11
3
11
42
2
2 42
2
23
2 42
7
5
11 23
3
23
Abbildung 3.46: Der einzige Fall, in dem ein Netz bereits in der Partition verlegt ist, und
nicht nach oben herausfuhrt.
gesucht. Wenn das Netz nach oben aus der Partition herausfuhrte - das ist praktisch
immer der Fall (siehe hierzu Abbildung 3.46), so wird gepruft, ob das Netz noch
weiterhin nach oben herausgefuhrt werden mu oder ob nun alle Funktionszellen,
zu denen es nach oben herausgefuhrt werden sollte, bereits in der Partition plaziert
wurden.
2. Ist das Netz noch nicht verlegt, so wird der erste Teil des Netzes in der Partition
von dem jeweiligen Pin nach oben aus der Partition herausgefuhrt. Diese Vorgehensweise ergibt sich daraus, da ursprunglich davon ausgegangen wird, da alle der
Partition zugeordneten Funktionszellen in der daruberliegenden Partition plaziert
werden mussen. Damit mu ein Netz, das noch nicht in der Partition verlegt wurde,
nach oben gelegt werden, da dort mindestens eine weitere Funktionszelle zu plazieren ist, mit der es verbunden ist. Diese einzige Ausnahme ist in Abbildung 3.46
Netz 5, das eigentlich ein internes Netz der Zelle ist. Netz 5 verbindet lediglich
zwei Pins der zu plazierenden Zelle miteinander. Die Leitungen, die von einem Pin
direkt nach oben aus der Partition herausgefuhrt werden, werden direkt moglichst
als vertikale Leitungen ohne Knicke realisiert. Zu diesem Zweck wird eine noch freie
vertikale Verdrahtungsspur gesucht und diese belegt.
Kompliziertere Hindernisse sind noch nicht vorhanden, da der Bereich oberhalb der
jeweils betrachteten Transistorzelle nur mit Leitungen von der initialen Verdrahtung
belegt ist - der Bereich ist noch frei von Funktionszellen.
Wenn Transistorzellen, die oberhalb der untersten Transistorzellenreihe liegen, belegt werden sollen, so kann sich herausstellen, da die nach oben herausgefuhrten vertikalen Leitungen im Weg sind. Falls dies der Fall ist, wird gepruft, ob die hinderlichen vertikalen
Leitungen nach links verschoben werden konnen. Ist dies nicht moglich, wird versucht,
sie nach rechts zu verschieben. Ist keines der beiden Falle moglich, so kann die jeweilige Transistorzelle nicht belegt werden. Zuerst wird versucht eine Leitung nach links zu
verschieben, da sie bei einer Verschiebung nach rechts dazu tendiert, die folgende Transistorzelle zu blockieren. Die seitliche Verschiebung einer vertikalen Leitung ist moglich,
66
DEN PHYSIKALISCHEN ENTWURF
KAPITEL 3. ALGORITHMEN FUR
C
12
12
3
4
3
C
4
A
B
A
5
B
5
Abbildung 3.47: Vertikale Leitungen werden nach links verschoben, um die Blockade einer
Transistorzelle aufzuheben.
falls einerseits eine freie vertikale Verdrahtungsspur gefunden werden kann, und andererseits, falls ein `verbindender Knick' in die Leitung eingebaut werden kann. Fur den
verbindenden Knick wird auch versucht, die Verdrahtungsebene zu benutzen, die vorzugsweise fur vertikale Verdrahtung genutzt wird. Siehe hierzu Abbildung 3.47. Hierbei ist
hervorzuheben, da an dieser Stelle das Belegen des vorzugsweise fur vertikale Verdrahtung genutzten Ebene, mit einer horizontalen Leitung praktisch keine Einschrankung der
Verdrahtbarkeit darstellt. Dies liegt daran, da die horizontalen Leitungen nur an Stellen
gelegt werden, die bei dem konstruktiven Verfahren bereits vorher bearbeitet wurden und
in diesem Sinn bereits abgeschlossen sind.
Kapitel 4
Das Entwurfssystem GGADS
In diesem Kapitel wird das Zusammenspiel der Algorithmen, die in dem System GGADS [24,
25] (General Gate-Array Design System) verwendet wurden, beschrieben. In Abbildung 4.1 ist ein grober U berblick uber das System und seine verschiedenen Ein- und
Ausgabedaten zu sehen. Zum groen Teil sind die Grundideen der Algorithmen bereits
im Kapitel 3 beschrieben worden. Im folgenden werden zunachst die Leistungsmerkmale
von GGADS dargestellt. Anschlieend wird das Vorgehen von GGADS skizziert.
GGADS
unterstutzt optimierte Power/Ground-Verdrahtung und andere Spezialverdrahtungen (z.B. Clockverdrahtung) ,
berucksichtigt Gate-Isolation bei der Optimierung ,
berucksichtigt festplazierte Makrozellen (z.B. RAM-Zellen) ,
kann optimierte Handlayouts verwenden (Module) ,
kann auf BiCMOS-Strukturen arbeiten,
kann auf ECL-Strukturen arbeiten,
Die Anzahl der Verdrahtungsebenen von zwei kann dadurch erhoht werden, da die
in der Gate-Array-Masterbeschreibung angegebenen Sonderleitungen auf weiteren
Verdrahtungsebenen deniert werden.
1
2
3
4
die von einem Netz belegten Verdrahtungsachen werden global in der Gate-ArrayMasterbeschreibung mit angegeben. GGADS schliet die Pins eines Netzes dann automatisch an die
global festgelegten Drahtachen an.
2 Die Layouts f
ur Makros werden moglichst so erzeugt, da am Rand des Layouts ein benutztes Diffusionsgebiet an Versorgungsspannung liegt. Dadurch kann bei der Plazierung zweier Layouts ein gemeinsames Diusionsgebiet uberrlappend genutzt werden. Ansonsten wird eine Gate-Isolation an den
Rand des Layouts gelegt, so da von zwei nebeneinander plazierten Layouts nur ein Gate uberlappend
als Isolierung genutzt wird. Siehe hierzu auch Abbildung 5.1 auf Seite 80 und die folgenden Abbildungen.
3 Durch Lagebestimmung in der Gate-Array-Masterbeschreibung
4 Die optimierten Handlayouts werden dabei in die Makrolayoutdatei eingef
ugt. Diese Datei wird
ansonsten automatisch von dem Makrogenerator von GGADS erzeugt.
1
67
KAPITEL 4. DAS ENTWURFSSYSTEM GGADS
68
MasterSchaltungsbeschreibung
strukturbeschreibung
Transistortopologie der Makros
Generierung der masterspezifischen Verdrahtungen
der einzelnen Makrofunktionen
GGADS
Plazierung und Verdrahtung der Makros
entsprechend der Schaltungsbeschreibung
Layoutbeschreibung in CIF
Statistiken zur Masterbewertung
Abbildung 4.1: Das System GGADS im U berblick
Die Eingabe zu GGADS enthalt die folgenden Punkte:
Schaltungsbeschreibung (Knotenliste),
Masterstrukturbeschreibung,
Transistortopologien fur elementare Logikfunktionen,
optimierte Teilschaltungen (optional).
Die Ausgabe des Layouts erfolgt in CIF-Format.
GGADS transformiert also eine technologie- und masterunabhangige Schaltungsbeschreibung in ein Layout fur einen spezizierbaren Gate-Array-Master. Zu diesem Zweck ist
eine Masterbeschreibung erforderlich. Im Gegensatz zu anderen Systemen [17] mussen
bei GGADS keine Layouts fur Elementarfunktionen (NANDs, NORs, etc.) eingegeben
werden, sondern werden von GGADS selbstandig erzeugt.
Das Entwurfssystem GGADS (siehe Abbildung 4.1) besteht aus zwei Teilen:
einem Makrogenerator,
einem Plazierungs- und Verdrahtungsverfahren.
Der Makrogenerator erzeugt gema einer Netzliste die Layouts fur elementare Funktionen. Was als elementare Funktion gilt, kann vom Benutzer bestimmt werden. Beim
Systementwurf wurde dabei an NANDs, NORs etc. gedacht, die aus nicht mehr als 10-15
Transistoren bestehen. Prinzipiell konnen aber beliebige Funktionen als elementar vom
Benutzer deniert werden - sogar einzelne Transistoren. Einzelne Transistoren auf der
elementaren Ebene zu haben, ist besonders interessant fur den Entwurf von ECL- oder
4.1. DER MAKROGENERATOR
69
CMOS-Dominologik-Schaltungen auf Gate-Arrays. Die atomare Ebene der Schaltungsnetzliste besteht aus den elementaren Funktionen. Die Funktionen werden jeweils in einer
einzelnen Transistorzelle realisiert.
4.1 Der Makrogenerator
Der Makrogenerator erzeugt fur jede auf der Masterstruktur vorkommende Transistorzelle
Verdrahtungen fur die elementaren Funktionszellen. Die Knotenlisten fur die elementaren Funktionszellen sind in einer separaten Datei enthalten. Die Knoten der elementaren
Funktionszellen entsprechen den Transistortypen (ggf. auch Widerstande), die in den
Transistorzellen vorkommen. So erzeugt der Makrogenerator fur beliebige Transistorzellen die Verdrahtung fur elementare Funktionen. Siehe Abbildung 4.2. Die Transistorzellen konnen dabei unterschiedlich viele Transistoren eines Transistortyps - wie n-MOS-,
p-MOS-Transistor, npn-Bipolartransistoren etc. beinhalten. Die Dimensionierung der
Transistoren kann ebenfalls variieren. Transistoren konnen bereits durch ihre innerhalb
einer Transistorzelle festgelegte Position miteinander verbunden sein. Haug sind Source
und Drain zweier benachbarter MOS-Transistoren in das gleiche Diusionsgebiet gelegt.
Besonders vor Einfuhrung der Gate-Isolationstechnik 1982 hatte man oft die Gates eines
n-MOS-/p-MOS-Transistorpaares durch einen gemeinsamen Polysiliziumbalken fest miteinander verbunden. Diese `hard'-Verdrahtungen von einzelnen Schaltelementen mussen
naturlich bei der Zuordnung von Knoten der Netzliste auf die Schaltelemente der Transistorzelle berucksichtigt werden. Es ist sogar ratsam gerade diejenigen Schaltelemente
auszuwahlen, die bereits gema der Knotenliste verbunden sind, da dadurch einerseits
keine Metallisierung erforderlich wird. Andererseits werden weitere an den verwendeten
Transistoren `hard'-angeschlossenen Schaltelementen fur anderweitige Verwendung unbrauchbar.
Damit mu der Makrogenerator also zunachst eine Abbildung aller Knoten einer Makroknotenliste auf die einzelnen Transistoren oder anderer elektrischer Funktionseinheiten
der jeweiligen Transistorzelle bestimmen. Siehe Abbildung 4.3.
Anschlieend versucht der Makrogenerator die geforderten Verbindungen zwischen den
Pins der einzelnen Transistoren herzustellen. Hierbei mussen die in der Masterstrukturbeschreibung spezizierten Entwurfsregeln beachtet werden. Sind mehrere Zuordnungen
der Knoten der Makroknotenliste auf die Transistoren der Transistorzelle moglich - dies
ist praktisch immer der Fall - so wird die entstehende Verdrahtungslange abgeschatzt
und diejenige Zuordnung unter den Betrachteten gewahlt, fur die die geringste Gesamtnetzlange uber alle internen Netze der Funktionszelle geschatzt wird. Zur Abschatzung
der entstehenden Verdrahtungslange wird fur jedes Netz der halbe Umfang des kleinsten
Rechtecks benutzt, das fur jedes anzuschlieende Pin mindestens einen Kontaktpunkt
enthalt. Siehe Abbildung 4.4
Die Zuordnung mit minimaler geschatzter Verdrahtungslange uber alle Netze unter den
betrachteten Moglichkeiten wird fur die tatsachliche Verdrahtung gewahlt. Bei vielen
gangigen Transistorzellen und Makroknotenlisten gibt es allerdings eine sehr groe Zahl
von moglichen Zuordnungen. Beispielsweise gibt es fur ein 4-NAND in CMOS-Technologie
und einer Transistorzelle mit 5 n-MOS und 5 p-MOS Transistoren bereits (
) =
5!
(5
4)!
2
KAPITEL 4. DAS ENTWURFSSYSTEM GGADS
70
S
RS-Flipflop
automatisch auf
unterschiedlichen
Gate-Array-Zellen
realisiert.
R
Q
__
Q
p-MOS
n-MOS
Vdd
Vdd
__
Q
R
S
Q
Vss
R
__
Q
S
Q
Vss
Abbildung 4.2: Zwei unterschiedliche Transistorzellen einer Gate-Array-Masterstruktur
fur die GGADS Makroverdrahtungen automatisch entwirft.
4.1. DER MAKROGENERATOR
71
A
B
OUT
NAND2
Abbildung 4.3: Zuordnung der Transistoren einer Transistorzelle zu den Knoten der zu
realisierenden Makroknotenliste.
Netz 1
Netzlaengenabschaetzung
Netz 1
Netz 1
Abbildung 4.4: Abschatzung der entstehenden Verdrahtungslange bei der Realisierung
eines Makros. Es wird der halbe Umfang des eingezeichneten Rechtecks als Abschatzung
fur die entstehende Leitungslange von Netz 1 verwendet.
72
KAPITEL 4. DAS ENTWURFSSYSTEM GGADS
14:400 verschiedene mogliche Zuordnungen. Hierbei kann zusatzlich das Drain- bzw Sourcegebiet bei jedem Transistor auf zwei verschiedene Weisen zugeordnet werden. Dadurch
multipliziert sich die genannte Zahl nocheinmal mit (2 ) = 256, womit sich eine Gesamtzahl von zu betrachtenden Kombinationen von 14:400 256 = 3:686:400 ergibt. Eine
solche Zahl von Moglichkeiten durchzuspielen kostet eine unsinnig lange Rechenzeit selbst bei modernster Rechnertechnologie.
Daher wurde bei dem Entwurf des Makrogenerators ein gezielteres Vorgehen gewahlt:
Es wird jeweils versucht, moglichst viele `Hard'-Verdrahtungen auszunutzen. Zu diesem
Zweck werden alle noch nicht zugewiesenen Schaltelemente eines Typs (z.B. n-MOS-, pMOS-Transistoren usw.) nacheinander ausgewahlt. Fur jedes dieser Schaltelemente wird
jedes der noch belegbaren Schaltelemente der Transistorzelle vorlaug zugewiesen. Dabei
wird gepruft, welches Schaltelement der Transistorzelle die langste Kette von passenden
Zuweisungen der Netzliste auf die jeweils `hard'-verdrahteten Schaltelemente der Transistorzelle erlaubt. Dabei wird die insgesamt langste Kette ausgesucht. Sind mehrere
Ketten gleichlang, so wird diejenige bestimmt, bei der die kleinste geschatzte Gesamtnetzlange entsteht.
Die der langsten Kette entsprechenden Knoten werden den Schaltelementen der Transistorzelle fest zugeordnet. Im Anschlu wird ein anderer Schaltelementtyp gewahlt und
die obige Suche nach der langsten Kette wiederholt. Auf diese Weise werden alle Schaltelementtypen der Reihe nach durchgegangen bis alle Knoten der Netzliste in der Transistorzelle plaziert werden konnten. Hierbei mussen eventuell manche Schaltelementtypen
mehrfach durchgegangen werden. Bei jedem Durchgang wird ja nur ein einziges `Saatkorn' zugewiesen und zusatzlich diejenigen Knoten der Netzliste, die auf dem langsten
Pfad der `hard'-verbundenen Schaltelemente der Transistorzelle. liegen. Siehe hierzu
Abbildung 4.5.
4
Vorgehensweise:
2
GGADS (siehe Abbildung 4.6 fur eine detailliertere Darstellung) erzeugt die Layouts von
elementaren Logikfunktionen, um sie als Makros bei der Plazierung und Verdrahtung verwenden zu konnen. Fur eine globale Relativplazierung der einzelnen Makros wird das neue
globale MinCut-Partitionierungsverfahren SQP [26] eingesetzt. Bei der rekursiven Partitionierung mit SQP werden zur Berucksichtigung der globalen Verdrahtung approximative
Steinerbaume fur jedes Netz berechnet. Aufgrund der Steinerbaume wird bestimmt, ob
ein Knoten besser links, rechts, oben oder unten innerhalb einer Subpartition angeordnet
werden sollte - je nach dem zu welcher Seite die angeschlossenen Netze die Subpartition
verlassen. Damit konnen die einzelnen Schaltungselemente im Detail plaziert werden, wobei die fest vorplazierten Makrostrukturen berucksichtigt werden. Die Detailplazierung
geschieht parallel mit der detaillierten Verdrahtung, wie es in Abschnitt 3.4 beschrieben
ist.
4.1. DER MAKROGENERATOR
73
NOR3
A
OUT
a)
b)
B
C
Zuordnung1
Zuordnung2
Abbildung 4.5: Die Zuweisung der Knoten der Netzliste auf die Schaltelemente der Transistorzelle. Hierbei werden jeweils die langsten Ketten von `hard'-verdrahteten Schaltelementen gesucht. Bei der Zuordnung1 mu in der unteren Transistorreihe ein Transistor
frei gelassen werden, weil nicht die richtige Reihenfolge der Transistoren gefunden wurde,
um die drei n-MOS-Transistoren direkt in Reihe zu schalten. Dies ist durch die Wahl
der ersten Zuordnung des Transistors b) bereits bedingt. Bei der Zuordnung2 wurde der
Transistor a) als erstes zugeordnet und damit wurde die richtige Reihenfolge gefunden.
KAPITEL 4. DAS ENTWURFSSYSTEM GGADS
74
Knotenliste von
Elementargattern
Master-Beschreibung
?
?
Generierung der
Layouts von
Elementargattern
Globale Relativplazierung
der Funktionszellen
und parallele
globale Verdrahtung
-
6
feste
(eventuell
vorplazierte)
Makrostrukturen
?
Schaltungsnetzliste
-
Lokale Plazierung von
elementaren Gattern und
paralleles
detailliertes Verdrahten
?
CIF-Layout-Beschreibung
Legende:
Eingabedaten
Programmodul
Ausgabedaten
Abbildung 4.6: Die Modulstruktur von GGADS
4.2. DIE BESCHREIBUNG VON GATE-ARRAY-MASTERSTRUKTUREN
75
4.2 Die Beschreibung von Gate-Array-Masterstrukturen
Fur GGADS mu die jeweilige Master-Struktur speziziert werden. Die Spezikation
geschieht in einer eigens dafur entworfenen Beschreibungssprache. Eine detaillierte Beschreibung dieser Sprache ist im Anhang zu nden. Ziel des Sprachentwurfs war es, ein
moglichst breites Spektrum von Gate-Array Typen beschreiben zu konnen. Hierzu zahlen
Gate-Array-Master, die nach dem kanalorientierten Ansatz konzipiert sind [14], und auch
die Sea-of-Gates Typen, bei denen die gesamte Chipache mit nutzbaren Transistoren
besetzt ist. Hierbei seien einige neuere Entwicklungen wie der Gate-forest [3] oder andere
Sea-of-Gates Entwicklungen, die Bipolartransistoren beinhalten [10], genannt. Weiterhin
konnen auch Typen beschrieben werden, die spezielle Makrostrukturen, z.B. RAM-Zellen,
beinhalten. Neuere Entwicklungen dieser Art sind unter anderem in [52] zu nden. Im
folgenden wird der allgemeine Aufbau einer solchen Master-Beschreibung skizziert. Anschlieend werden Beispiele fur beschreibbare Master angegeben, um die Moglichkeiten
von GGADS zu erlautern.
Der allgemeine Aufbau einer Masterbeschreibung
Die Beschreibung einer Master-Struktur besteht aus drei Teilen:
1. Deklarationsteil
Hier werden die einzelnen Layoutebenen des Chips angegeben. Auerdem werden
die auf dem Master vorkommenden Typen von Transistoren, Draht-Segmenten und
Kontakten deklariert und dazu allgemeine elektrische und geometrische Parameter
angegeben. Schlusselworter sind fett gedruckt.
Beispiel:
declarationpart:
layertypes :
layer poly; di; m1d; m1p; m1; m1m2; m2;
devicetypes :
nmos ntyp1: gatefanin=1; sourcedrainr=5;
pmos ptyp1: gatefanin=2; sourcedrainr=7;
contact m1d: layer1=di, (1,1); layer2=m1, (1,1); r=1; c=1;
usw.
2. Mikroarchitekturbeschreibung
Hier werden alle auf dem Master vorkommenden Transistorzellen beschrieben. Die Beschreibung der Mikroarchitektur, d.h. einer einzelnen Zelle, ist nicht an den in der Zelle
KAPITEL 4. DAS ENTWURFSSYSTEM GGADS
76
2
3
3
4
6
6
1
1
1
2
2
3
3
3
3
4
4
6
6
6
6
1
1
1
1
1
1
2
2
3
3
3
3
4
4
6
6
6
6
1
1
1
1
1
1
1
1
1
3
3
3
3
6
6
1
1
1
1
1
1
1
1
4
3
5
3
4
3
5
3
4
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
3
2
1
1
5
1
1
1
1
1
1
1
1
2
2
2
1
6
4
1
1
1
1
1
1
1
5
3
5
1
1
1
1
4k RAM
8k
RAM
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
a) Verschiedene Zelltypen b) Sea-of-gates
c) unregelmaige
mit Speicherstrukturen
Kanalstruktur
unregelmaig verteilt
Abbildung 4.7: Beispiele fur Makroarchitekturen, die GGADS verarbeitet: Fur jede der
obigen Rechtecke ist der Zelltyp, den es reprasentiert, eingetragen.
vorhandenen und fest vorplazierten Transistoren orientiert, sondern an den personalisierbaren Kontakt- und Drahtelementen. Dies bedeutet auch, da der Ort der physikalischen Realisierung der Transistoren nicht angegeben wird, sondern nur die verschiedenen
Moglichkeiten einen solchen Transistor anzuschlieen.
Beispiel:
microarchitecture:
cell 1: Zelle1(27 x 27):
cont: source11 (m1d): (3,2); (3,4); (3,6); (3,8); connected: ntyp1: nmos1(s);
cont: gate11 (m1p): (5,2); (5,8); connected: ntyp1: nmos1(g);
connected: ntyp1: nmos2(s), ntyp1: nmos1(d);
cont: gate21 (m1p): (9,2); (9,8); connected: ntyp1: nmos2(g);
usw.
cont: gate51 (m1p): (21,2); (21,8); connected: ntyp1: nmos5(g);
3. Makroarchitekturbeschreibung
Zu der Beschreibung der Makroarchitektur gehoren
die Anordnung der im vorhergehenden Teil beschriebenen Zellen
(Fur Verdrahtungskanale oder Verdrahtungsachen am Rand des Masters konnen
Zellen deniert werden, die nur Draht- und Via-Elemente beinhalten.)
die Angabe der Padtreiber
die optionale Angabe von Sonderstrukturen, wie RAM-Strukturen, welche einen
Teil der `normalen' Zellen uberdecken.
4.2. DIE BESCHREIBUNG VON GATE-ARRAY-MASTERSTRUKTUREN
77
Beispiel:
macroarchitecture:
chipsize: 378 x 378;
rownumber=12;
lowerrow: cellnumber=6: leftcell: 1,1; periode: 1,1; etc. rightcell: 1,2;
verticalperiode:
cellnumber=6: leftcell: 1,1; periode: 2,1; 3,2; etc. rightcell: 1,1;
cellnumber=6: leftcell: 1,1; periode: 1,3; 2,4; etc. rightcell: 1,2;
upperrow: cellnumber=6: leftcell: 1,1; periode: 1,1;etc. rightcell: 1,1;
usw.
Einschrankungen der Beschreibungsmoglichkeiten
Die Verdrahtung ist nur auf einem Einheitsraster und rechtwinklig moglich.
Alle Zellen mussen so angeordnet sein, da die Zellrander auf durchgehenden waage-
rechten und senkrechten Linien liegen (vgl. Abbildung 4.7 a)). Fur die Spezialstrukturen heit dies, da ihre Flache nur ganze Zellen bedecken darf (Abbildung 4.7 b)).
GGADS kann fur jede beschreibbare Master-Struktur das passende Layout erzeugen.
Bei GGADS kann derzeit nur nach der globalen Plazierung und Verdrahtung manuelle
Eingrie in den Entwurfsproze vorgenommen werden. GGADS erzeugt fur jede Partition
eine eigene Datei, in der vermerkt ist, welche Knoten dort plaziert werden mussen und
welche Netze auf welchen Seiten in die jeweilige Nachbarpartition gefuhrt werden mussen.
Naheres ist in der Bedienungsanleitung zu nden.
78
KAPITEL 4. DAS ENTWURFSSYSTEM GGADS
Kapitel 5
Layoutbeispiele und Vergleich mit
TANGATE
Im folgenden werden Beispiele fur die Leistungsfahigkeit des Systems GGADS gegeben.
Im ersten Abschnitt werden zunachst von GGADS erzeugte Layouts fur unterschiedliche
Masterstrukturen gezeigt. Im zweiten Abschnitt wird die Leistungsfahigkeit von GGADS
mit der des derzeit leistungsfahigsten kommerziellen Systems TANGATE verglichen.
5.1 Layoutbeispiele
In diesem Abschnitt werden Layoutbeispiele, die mit GGADS erzeugt wurden, gezeigt.
zunachst werden die von GGADS erzeugten Makros fur verschiedene Transistorzellen
dargestellt. Anschlieend wird ein groerer Ausschnitt gezeigt, in dem das Layout zu
sehen ist, das von dem lokalen Plazierungs- und Verdrahtungsverfahren erzeugt wurde.
In Abbildung 5.1 ist das Layout fur einen Inverter sowie fur NAND-Gatter mit 2, 3 bzw. 4
Eingangen zu sehen. Die Gatter sind auf einer einfachen CMOS-Transistorzelle realisiert,
die zwei Transistorreihen mit jeweils 4 n-MOS- bzw. p-MOS-Transistoren enthalt. Fur
die einzelnen Gattertypen wurden teilweise mehrere Layouts erzeugt. Diese dienen dazu,
bei der lokalen Plazierung und Verdrahtung mehrere Alternativen zur Realisierung einer
Gatterfunktion innerhalb einer gegebenen Transistorzelle zu ermoglichen. Die Makros
wurden von GGADS in weniger als 10 Minuten Rechenzeit auf einer SUN SPARC1Station erzeugt. Abbildung 5.2 zeigt eine BiCMOS-Struktur. Einerseits ist wieder das
Layout fur NAND-Gatter mit 2, 3 bzw. 4 Eingangen zu sehen. Weiterhin ist unten links
das Layout fur einen Inverter mit zwei Bipolartreibertransistoren zu sehen.
In Abbildung 5.3 ist das Layout einer Partition gezeigt. (44 Gatterfunktionen sind dort
von dem parallelen Plazierungs- und Verdrahtungsverfahren umgesetzt worden. Die Rechenzeit betrug ca. 45 Sekunden auf einer SUN SPARC1-Station.) Es wurde ein Seaof-Gates Master zugrunde gelegt, der nur einen Typ von Transistorzellen enthalt. Eine
einzelne Zelle enthalt 4 n-MOS- und 4 p-MOS-Transistoren. Diese Master-Struktur wurde
von LSI 1989 in [45] vorgestellt.
Die Grundstruktur der verwendeten Transistorzelle ist in Abbildung 5.4 zu sehen. Dort
sind auch die Layouts der in Abbildung 5.3 verwendeten Makros fur verschiedene Logik79
KAPITEL 5. LAYOUTBEISPIELE UND VERGLEICH MIT TANGATE
80
GGADS_Makros_CMOS1.cif scale: 0.079798
(2027X)
Size: 99 x 127 microns
cell_graphics
3
2
5
2
4
2
3
Abbildung 5.1: Die Layoutmakros fur NAND-Gatter auf einer einfachen CMOS-Struktur.
Die unteren drei Layouts in der linken Spalte entsprechen drei verschiedene Layouts eines
CMOS-Inverters. Oben links und unten in der Mitte sind zwei Layouts eines CMOS-2NAND-Gatters zu sehen.
5.1. LAYOUTBEISPIELE
81
GGADS_Makros_BiCMOS1.cif scale: 0.062205
(1580X)
Size: 127 x 129 microns
cell_graphics
4
3
3
2
5
Abbildung 5.2: Die Layoutmakros fur NAND-Gatter auf einer BiCMOS-Struktur. Unten
links ist ein BiCMOS-Inverter mit zwei Bipolartransistoren in der Treiberstufe zu sehen.
KAPITEL 5. LAYOUTBEISPIELE UND VERGLEICH MIT TANGATE
82
FIG:Layout_partition.cif scale: 0.054483
(1384X)
localplace_output
634395406
Size: 145 x 156 microns
660
360
621
304145
145
228
165
623480
17 413600733
237581870308939
755
353833
702748934925544
750
181288
227
166
26
26
36
36
86
86
86
166
166 166
223
223
238
153
304
529
747
227
227
539
539
582
582
223
223
660660
304304
326
326
181
181
676
676
714
714
223
304
326
181
740
740
660
231
231315
231
231
621
237
315
231
315
231
237
746
746
237
750
750
790
790
581
166
907
148
878
600
347
581
266
600
237
395
934
934
934
166
237
166
237
395
406
406
353
406
353
353
634
83
909
103
480
103
909
288
480
103
623
288
83
480
83
227
227
870
542 486
881 341
881
544
29
555
870
610
417
17
417
527
909
148
148
790
790
790
746
746
746
103
103746
73
746
103
539833
909
148
539
833
417
623
939
623
73
539
83 83
83
86
417
623
412
934
412
412
581
412
833
939
740
706
740
833
833
833
412
17
706706
17
315
315
919
714
915
134
714
398
539
539
407
740
95
86
86
877
427
59
706
26
706
26
714
714
623
623
733
733
148148
166
166
714
17
17
623
17
623623
17
747
315
17 702
733
702
755
755
702
73
480
747
315
747
326
702
315
676
755
748
26
705
705
676
676
36925
36
17
195
250
958
86
743
676
676
669
676
861
120
600
228
16636
36
939
582582
702702
26
413
315
26
308
705
36
582
474
455
705
36 705
377
705
600
228
315315
26
166
73
73
833
17
26
166
676
73
73
833
702
833
17
596
175
175
175
740
939
746
73
119
17
909
790
790
288
623
909
480
746
925
925
166
885
939
148
148
308
830
705
702
308
705
413
413
830
Abbildung 5.3: Das Layout von einer Partition, die durch die lokale Plazierung und
Verdrahtung erzeugt wurde. Es wurden 44 Makros untergebracht.
5.1. LAYOUTBEISPIELE
83
GGADS_Makros_LSI_89.cif scale: 0.157576
(4002X)
Size: 49 x 66 microns
cell_graphics
2
2
3
4
2
3
5
Abbildung 5.4: Inverter-, 2-NAND-, 3-NAND- und 4-NAND-Layouts auf der Transistorzelle von LSI. Das 4-NAND verwendet die zweite Metallage und ist unten ganz rechts
plaziert.
ECL_cell1.cif scale: 0.086813
(2205X)
Size: 91 x 8 microns
k00
Abbildung 5.5: Die ECL-Grundzelle. Die Polysiliziumbalken werden als Widerstande
verwendet.
gatter abgebildet.
Abschlieend ist noch ein ECL Gate-Array gezeigt. In Abbildung 5.5 ist die Grundstruktur zu sehen. Abbildung 5.6 zeigt das von GGADS erzeugte Layout fur eine carry-save
Grundzelle aus einer Multipliziererschaltung. GGADS erlaubt auch die Denition von
Sonderleitungen, wie es sich bei ECL-Schaltungen beispielsweise fur die Versorgungsspannungsleitungen und die Referenzspannungsleitungen anbietet. Abbildung 5.7 zeigt
das von GGADS erzeugte Layout fur die carry-save Grundzelle mit besonders breiten
horizontal verlegten Versorgungsleitungen auf der Metall2-Ebene.
KAPITEL 5. LAYOUTBEISPIELE UND VERGLEICH MIT TANGATE
84
ECL_CSBC.cif scale: 0.042223
(1072X)
Size: 187 x 152 microns
localplace_output
5
6
5
6
5
6
29
31
38
39
10
34
32
39
37
10
38
39
37
10 10
8
8
34
28
36
30
35
19
19
6
5
5
29
31
19
14
5
66
6
5 19
29
31
6
38
13
39
19
19
6
32
5
16
11
19
19
38
22
16
37
35
9
8
10
9
35
29
36
35
35
35 35
36 37
33
36
35
35
31
31
31
24
16
12
22
15
22
32
1 39 1
10
1 1
31
10
1
4
5
6
1
8
30
4
6
35
6
6
36
1
39
39 33
33
5 39 39
38
29
43
0
5
43
3
5
22 22
22
17
41
41
99
9
4
1
5
6
39
6
38
35
38
29 29
3
14
46
3
39
33
33
33
35
5 5
25
25
25
5
41
32
42
39
41
38
41
41
25
25
18
32
40
29
29 29
39
38
40
40 40
43
43
55
5
35 6 6
7
27
27
38
39 39
14
39 29
41
38
14
40
44
41
40
43
45
40
7
6
31
30
1
8
31
30
30 31
23
8
8
1
1
7 37
2
8
7
36
36
31
29
27
20
21
29
29
3
32
1
37
35
3
37
39
37 37 6
1
37
9
5
7
1 1
1
9
9
31
8
37
38
38
39
9
30 33
26
30 33
4
8
32
38
4
10 10
4 4
1 1
22
35
38
36
35
12
12
37 37
5
5
5
34
5
38
39
37
37
39
39
13
13
29
3
3
22
32
32
32 32
25
1232
13
25
32
19
12
14
7
38
11
11
14
14
13
11
9
11
8
6
Abbildung 5.6: Die Realisierung einer carry-save Grundzelle aus einer Multipliziererschaltung in DECL-Technik.
ECL_CSBCpre.cif scale: 0.041799
(1062X)
Size: 189 x 153 microns
localplace_output
3
3
1
1
2
2
22
17
25
25
19
22
16
25
19
22
16
6
5
6
5
6
29
31
38
39
38
39
1 10
0
9
9
4
36
1
9
34 3537
29
10
9 9 34
5
5
9
35
36 37 10
33
36 37 37
10
10
1
10
5
8
3036 33
26
30
30
8 8
37
1
10
1
35
35
4
33
5
37
39
1
29
8
35
35
33
35
37
5
38
5
7
1
2
3
7
36
8
7
36
36
31
39
39
37
37
6
44
31
31
19
6
43
43 43
5
7
7
27
27
33
6
35
6
7
5
35
35
35
35
35
2
1
30
23
5
5
14
14 14
13
13
33
5
11
18
5
38
38
38
25
25 25
5
6
36
16
12
32 40
40
40 40
31
35
5
34
29
2
3
39
32
42
45
13
43
40
29
39
39
39
29
41
1
29
40
38
29
29
43
25
3
19
2
41
41
3
43
7
41
39
41
12
1214
38
41
2
6
38
35
13
13
40
9
8
33 33
5
3
3
25
13
39
66
6
37
5 37
38
3
31
24
1
39 7
39 1
6
39
1
35 35
37
38
39
1 36 27
20
1
1
39
29
38
5 5
1
33
39
16
29
1
36
30
36 36
19
19
25
29
13
4
5 6
31
4
4
19
5
14
5
19
6
5
3
21
36
39
22
3
36
1
1
35
345 35
5 8
28
37 8 8
8
1
3437 37
32
37 37
34
5
35
15
19
29
4
4
16
19
22
16
5
31
4
4
19
22
43
3 25
25
43
12
2
2
14
2
43 3
46
14
3
3
29
3
22
12
Abbildung 5.7: Die Realisierung der carry-save Grundzelle in DECL-Technik mit besonders breiten Versorgungsleitungen.
5.2. LEISTUNGSVERGLEICH MIT TANGATE
85
5.2 Leistungsvergleich mit TANGATE
In diesem Abschnitt werden die Ergebnisse des Leistungsvergleichs mit dem derzeit leistungsfahigsten kommerziell erhaltlichen Gate-Array-Entwurfssystems TANGATE beschrieben.
Die folgenden Randbedingungen des Versuchs sind zu nennen:
Die Knotenliste der Schaltung wurde synthetisch generiert und enthielt 1000 Kno
ten, die durch 1000 Netze miteinander verbunden waren. Jeder Knoten reprasentierte
entweder einen Inverter, ein 2-, 3- oder 4-NAND-Gatter. Die verwendete CMOSMaster-Struktur entsprach dem Master von LSI ([45]).
Die von GGADS fur den Master erzeugten Makrostrukturen wurden fur das System TANGATE als Bibliothekselemente eingegeben, da TANGATE nicht selbst
die Makrolayouts erzeugen kann.
Anschlieend sollte zunachst GGADS die gesamte Schaltung auf einem moglichst
kleinen Master unterbringen. Dies gelang auf einem Master der 100 30 die Grundzelle dicht aneinander gereiht enthalt. Jede Grundzelle beinhaltet 4 n-MOS- und 4
p-MOS-Transistoren. Die Grundstruktur ist in Abbildung 5.4 zu sehen.
Somit konnte GGADS die Gesamtschaltung auf der Flache von 24000 Transistoren
bei Sea-of-Gates-Anordnung unterbringen. Die Schaltung beinhaltete etwa 50006000 aktive Transistoren.
Die Rechenzeit betrug etwa 1 Stunde auf einer SUN SPARC1-Station mit einer 12
MIPS-RISC-Architektur.
Das System TANGATE lief auf einem Rechner gleichen Typs. Fur TANGATE
wurden entsprechende Zweitbeschrankungen fur die einzelnen Entwurfsphasen vorgegeben, so da sich eine vergleichbare Gesamtrechenzeit von rund einer Stunde
ergab.
Nach mehreren Probelaufen gelang es mit TANGATE die Schaltung auf einem Master zu implementieren, der 90 27 die Grundzelle enthielt.
Die Rechenzeiten fur die einzelnen Entwurfsphasen sind in Tabelle 5.1 zu sehen. Da
die beiden Systeme von ihrer Konzeption her verschieden sind, lat sich kein direkter
Vergleich der Rechenzeiten fur die einzelnen Entwurfsphasen durchfuhren. Jedes System
hat Entwurfsphasen, die in dem jeweiligen Vergleichssystem keine Entsprechung nden.
So wird in GGADS parallel lokal plaziert und verdrahtet. In TANGATE plaziert eine
Phase vollstandig und verdrahtet im nachfolgenden. Daher teilen sich die Berechnungen,
die TANGATEs Plazierungsphase entsprechen wurden, in GGADS auf die globale und
die lokale Plazierung auf. Die lokale Plazierung lat sich wiederum in GGADS nicht von
der lokalen Verdrahtung trennen. Insofern kann die Gegenuberstellung von Rechenzeiten
fur einzelne Entwurfsphasen in Tabelle 5.1 nur als grobe Naherung angesehen werden.
86
KAPITEL 5. LAYOUTBEISPIELE UND VERGLEICH MIT TANGATE
GGADS TANGATE
CPU
Globale Plazierung
5 min
8min
CPU
Global Verdrahtung
5 min
10min
CPU
Detailliertes Plazieren
und Verdrahten
52 min
|
CPU
Detailliertes Verdrahten
|
45 min
CPU
Gesamt
62 min
63 min
Benotigte Chipache
(Einheit: Eine Transistor- 30 100 27 90
zelle 6 16 pitches)
Tabelle 5.1: Vergleich von GGADS und TANGATE auf der Sea-of-gates-MasterStruktur von LSI [45].
Die groere Layoutache, die von GGADS gegenuber TANGATE benotigt wurde, ist auf
die folgenden Punkte zuruckzufuhren:
Die Implementierung des neuen konstruktiven Ansatzes des parallelen lokalen Plazierens und Verdrahtens ist noch nicht ausgereizt. Durch eine weitere Verfeinerung
der verwendeten Algorithmen ist noch eine spurbare Leistungssteigerung zu erwarten. Dies gilt insbesondere fur die Verdrahtung und damit indirekt auch fur die
lokale Plazierung. Denn eine Transistorzelle wird nur dann von einer Funktionszelle
belegt, wenn der lokale Verdrahtungsalgorithmus auch eine vollstandige Verdrahtung ndet.
Bei der lokalen Plazierung und Verdrahtung einzelner Partitionen kann sich eine
Verschiebung einzelner Knoten von einer Partition in eine benachbarte Partition
ergeben. Werden auf diese Weise Knoten in groerem Umfang verschoben, so
ware es zweckmaig, die globale Zuordnung der noch nicht lokal plazierten Knoten zu den einzelnen Partitionen neu zu berechnen. Dadurch wurde sowohl eine
Netzlangenreduzierung als auch eine Reduzierung der Engpasse wegen fehlender
Verdrahtungsspuren erzielt werden.
In GGADS sind die bisherigen interaktiven Eingrismoglichkeiten sehr beschrankt.
Durch Verbesserung dieses Punktes ist ebenfalls noch mit einer erheblichen Leistungssteigerung zu rechnen. An dieser Stelle ist TANGATE sehr fortgeschritten
und erlaubt dem geubten Benutzer sehr gute Ergebnisse nach mehreren Durchlaufen
zu erzielen.
Insgesamt durften diese Verfeinerungen in der Implementierung zumindest zu einer mit
TANGATE vergleichbaren Layoutache fuhren.
5.2. LEISTUNGSVERGLEICH MIT TANGATE
87
Insofern sollte der in GGADS enthaltene neue Ansatz des parallelen lokalen Plazierens und
Verdrahtens als aussichtsreich und weiter entwicklungsfahig im Vergleich zu traditionellen
Verfahren weiter verfolgt werden.
Inwieweit eine Verfeinerung von GGADS das System TANGATE auch bei makrobasierten Entwurfen (z.B. statische CMOS-Schaltungen) ubertreen kann, mu letztlich durch
entsprechende Implementierungen festgestellt werden.
88
KAPITEL 5. LAYOUTBEISPIELE UND VERGLEICH MIT TANGATE
Kapitel 6
Schlubemerkungen und Ausblick
Zunachst soll noch einmal der wissenschaftliche Beitrag der vorliegenden Arbeit zusammengefat werden. Anschlieend wird auf mogliche Weiterentwicklungen eingegangen,
die zu einer Verbesserung und Abrundung des Entwurfssystems fuhren wurden.
Der wissenschaftliche Beitrag der vorliegenden Arbeit gliedert sich in die folgenden Punkte
auf:
Die Konzeption des Entwurfssystems GGADS fur frei kongurierbare Gate-Array
Master-Strukturen.
Die Einfuhrung des neuen Partitionierungsverfahrens SQP (Simultaneous QuadriPartitioning).
Ein simultanes lokales Plazierungs- und Verdrahtungsverfahren.
Ein konstruktiver Ansatz zur Plazierung und Verdrahtung, der nicht mehr auf Zellbibliotheken angewiesen ist. Dadurch wird die eektive automatische Layouterzeugung fur DECL- und CMOS-Dominologik-Schaltungen ermoglicht.
GGADS eignet sich durch seine Konzeption zur experimentellen Untersuchung der
Eignung von neuen Master-Strukturentwurfen fur spezische Schaltungstypen.
1
Das Entwurfssystem GGADS unterscheidet sich von bekannten Entwurfssystemen auf
der einen Seite durch seine Architektur und die verwendeten neuen Entwurfsalgorithmen.
Es sei darauf hingewiesen, da GGADS in der Lage ist, logisch aquivalente Signale eines Makros zu vertauschen, um ggf. den vollstandigen Anschlu eines Makros erst zu
ermoglichen. Dies ist bei bekannten Systemen - wie TANGATE - nicht moglich.
Auf der anderen Seite ist GGADS in der Lage, selbstandig Makrolayouts fur die jeweiligen Transistorzellen zu erzeugen. Andere Systeme konnen lediglich vorhandene Makrolayouts in einem vorgegebenen Raster von Referenzpunkten auf der Chipache plazieren
und verdrahten. Durch dieses Merkmal erschlieen sich neue Anwendungen fur GGADS
gegenuber den herkommlichen Systemen. Hierbei ist insbesondere hervorzuheben, da
GGADS sich fur die Bewertung von neu entwickelten Master-Strukturen eignet. Da
Bei der dynamischen CMOS-Technik mussen allerdings die Leitungskapazitaten berucksichtigt
werden.
1
89
90
KAPITEL 6. SCHLUSSBEMERKUNGEN UND AUSBLICK
GGADS die Makrobibliothek selbst erzeugt, konnen mit wenig Ingenieurstunden neue
Master-Strukturen auf ihre Eignung fur die Realisierung bestimmter Schaltungstypen hin
verglichen werden.
GGADS verwendet das neu eingefuhrte Partitionierungsverfahren SQP [26] zur globalen
Plazierung. SQP fuhrt in der Regel zu deutlich besseren Plazierungsergebnissen als das in
der Praxis uberaus bewahrte Partitionierungsverfahren von Fiduccia und Mattheyses [13]
unter Berucksichtigung der Terminalpropagierung von Dunlop und Kernighan [11].
GGADS setzt fur die lokale Plazierung und Verdrahtung ein neues kombiniertes Verfahren ein. Die Chipache wird in kleine Partitionen unterteilt. Jede Partition wird mit
moglichst vielen Layoutmakros belegt. Bei dem `Fullproze' wird jedes neu plazierte Makro sofort verdrahtet. Dadurch ist die Verdrahtbarkeit standig gewahrleistet. Fur die
Verdrahtung in GGADS eignet sich kein Standardverdrahtungsverfahren, wie z.B. der
Kanalverdrahter MIGHTY [55], da bei der entstehenden 'over-the-cell'-Verdrahtung Verbindungen zwischen den Metallverdrahtungsebenen nicht unbedingt an beliebigen Stellen
gesetzt werden durfen (abhangig von den jeweiligen Entwurfsregeln).
Daruberhinaus ermoglicht erst die Vorgehenweise des parallelen Plazierens und Verdrahtens den eektiven Layoutentwurf von nicht makrobibliotheksorientierten Schaltungen,
wie etwa ECL-Schaltungen.
Das in GGADS benutzte parallele detaillierte Plazierungs- und Verdrahtungsverfahren
erlaubt durch seine Konzeption auch die Aufgabe der strikten Vorzugsrichtungen (horizontal und vertikal fur jeweils eine Metallebene) ohne dadurch ubermaig viel Rechenzeit
zu benotigen oder eigentlich benotigte Verdrahtungsspuren zu blockieren.
GGADS wurde in der Programmiersprache C unter dem Betriebssystem UNIX implementiert. Es besteht aus mehr als 30 000 Programmzeilen. Der Objektcode fur SUN
SPARC1-stations hat einen Umfang von mehr als ein Megabyte. Davon entfallt auf dem
Makrogenerator etwa 300 kByte und auf das Plazierungs- und Verdrahtungsverfahren 750
kByte. Der Speicherbedarf von GGADS hangt im wesentlichen nur von der Groe der
Gesamtnetzliste (lineares Wachstum) und der Groe der einzelnen Partitionen ab, innerhalb derer die lokale Plazierung und Verdrahtung stattndet (quadratisches Wachstum
mit der Flachengroe). Die Gesamtmastergroe geht nur mit der Anzahl der Transistorzellen in den Speicherbedarf ein. Der Speicherbedarf hierfur ist aber im allgemeinen
vernachlassigbar (weniger als 100 Bytes je Zelle).
Eine Weiterentwicklung von GGADS kann insbesondere an den folgenden Punkten geschehen:
Die Implementierung des neuen konstruktiven Ansatzes des parallelen lokalen Plazierens und Verdrahtens erlaubt noch eine erhebliche Leistungssteigerung, indem
die verwendeten Algorithmen weiter verfeinert werden. Dies gilt insbesondere fur
die Verdrahtung und damit indirekt auch fur die lokale Plazierung. Denn eine
Transistorzelle wird nur dann von einer Funktionszelle belegt, wenn der lokale Verdrahtungsalgorithmus auch eine vollstandige Verdrahtung ndet.
Bei der lokalen Plazierung und Verdrahtung einzelner Partitionen kann sich eine
Verschiebung einzelner Knoten von einer Partition in eine benachbarte Partition
ergeben. Werden auf diese Weise Knoten in groerem Umfang verschoben, so ist
91
es zweckmaig, die globale Zuordnung der noch nicht lokal plazierten Knoten zu
den einzelnen Partitionen neu zu berechnen. Dabei sollten auch die erforderlichen
Netzwege durch die globale Verdrahtung neu berechnet werden. Somit konnte also
nachdem eine weitere Partition lokal plaziert und verdrahtet wurde, erneut das globale Plazierungs- und Verdrahtungsverfahren angestoen werden, um eine jeweils
aktualisierte Zuweisung von Knoten und Leitungen auf die als nachstes zu bearbeitende Partition zu erhalten.
Fur die Verdrahtung von speziellen Netzen, wie Versorgungsspannung, Clock und
andere konnen eektivere Verfahren entwickelt und in das System integriert werden.
Verbesserung der interaktiven Eingrismoglichkeiten: Es konnten beispielsweise verbesserte Steuerungsmoglichkeiten fur die lokale Plazierung und Verdrahtung entwickelt werden. Beispielsweise wurde eine Neuverlegung der lokalen Verdrahtung
bestimmter Leitungen uber mehrere Partitionen hinweg weitere Leistungssteigerungen ermoglichen.
92
KAPITEL 6. SCHLUSSBEMERKUNGEN UND AUSBLICK
Literaturverzeichnis
[1] E. H. L. Aarts, F. M. J. de Bont, J. H. A. Habers, and P. J. M. Laarhoven. Parallel
implementations of the statistical cooling algorithm. Integration, 4(3):209{238, 1986.
[2] U. G. Baitinger, H. M. Lipp, D. A. Mlynski, and K. Reiss. The MEGA system
for semi-custom design. In G. D. Micheli, A. Sangiovanni-Vincentelli, and A. Antognetti, editors, Design Systems for VLSI Circuits, pages 527{537. Martinus Nijho
Publishers, 1987.
[3] M. A. Beunder, J. P. Kernhof, and B. Hoinger. The CMOS gate forest: An ecient
and exible high-performance ASIC design environment. IEEE Journal of solid-state
circuits, 23(2), April 1988.
[4] I. Bhandari, M. Hirsch, and D. Siewlorek. The min-cut shue: Toward a solution
for the global eect problem of min-cut placement. In Proceedings of the 25th Design
Automation Conference, pages 681{685, 1988.
[5] M. A. Breuer. Min-cut placement. Design Automation & Fault Tolerant Computing,
4(1):343{362, October 1977.
[6] T. Bui, C. Heigham, C. Jones, and T. Leighton. Improving the performance of the
Kernighan-Lin and Simulated Annealing graph bisection algorithms. In Proceedings
of the 26th Design Automation Conference, pages 775{778, 1989.
[7] T. N. Bui, S. Chauduri, F. T. Leighton, and M. Sipser. Graph bisection algorithms
with good average case behaviour. Combinatorica, 7:181{192, 1987.
[8] W. A. J. Dees and P. G. Karger. Automated rip-up and reroute techniques. In
Proceedings of 19th Design Automation Conference, pages 432{439, 1982.
[9] W. E. Donath. Logic partitioning. In B. T. Preas and M. J. Lorenzetti, editors,
Physical Design Automation of VLSI Systems, pages 65{86. Benjamin Cummings,
Menlo Park, CA, 1988.
[10] P. Duchene and M. J. Declercq. A highly exible sea-of-gates structure for digital
and analog applications. IEEE Journal of solid-state circuits, 24(3), June 1989.
[11] A. E. Dunlop and B. W. Kernighan. A procedure for placement of standard-cell VLSI
circuits. IEEE Transactions on Computer-Aided Design, 1(CAD-4):92{98, January
1985.
93
94
LITERATURVERZEICHNIS
[12] M. D. Durand. Parallel simulated annealing: Accuracy vs. speed in placement. IEEE
Design & Test of Computers, 6(3):8{35, 1989.
[13] C. M. Fiduccia and R. M. Mattheyses. A linear-time heuristic for improving network
partitions. In Proceedings of the 19th Design Automation Conference, pages 175{181,
1982.
[14] M. Franz, K. Delker, T. C. Whang, and W. Wilhelm. 10,000 gate ECL/15,000 gate
CML gate array family with ECL/TTL I/O compatibility. In Proceedings of the
Custom Integrated Circuit Conference, pages 20.2.1{20.2.4, 1988.
[15] M. R. Garey and D. S. Johnson. Computers and Intractability. Freeman, San Francisco, CA, 1979.
[16] P. Groeneveld. Wire ordering for detailed routing. IEEE Design & Test of Computers,
6(6):6{17, 1989.
[17] W. Haas. Untersuchung von Plazierungs- und Verdrahtungsprogrammen fur Sea-ofGates Arrays. Technischer Bericht, Institut fur Mikroelektronik Stuttgart, September
1989.
[18] M. Hanan, P. Wol Sr., and P. Agule. Some experimental results on placement
techniques. Design Automation & Fault Tolerant Computing, 2:145{168, May 1978.
[19] M. R. Hartoog. Analysis of placement procedures for VLSI standard cell layout. In
Proceedings of the 23th Design Automation Conference, pages 314{319, 1986.
[20] D. D. Hill. Alternative strategies for applying Min-Cut to VLSI placement. In Proceedings of IEEE International Conference of Computer Design: VLSI in Computers,
pages 440{444, 1988.
[21] A. G. Homann. Eine Beschreibungssprache fur Gate-Array-Masterstrukturen. Technischer Bericht, Technische Universitat Berlin, Fachbereich Informatik, Fachgebiet
Wissensbasierte Systeme, Januar 1990.
[22] A. G. Homann. An expert system approach for controlling placement heuristics in
VLSI design. Technical report, Technische Universitat Berlin, Fachbereich Informatik, Fachgebiet Wissensbasierte Systeme, July 1990.
[23] A. G. Homann. Improving the Fiduccia-Mattheyses bipartitioning heuristic. Technical report, Technische Universitat Berlin, Fachbereich Informatik, Fachgebiet Wissensbasierte Systeme, July 1990.
[24] A. G. Homann. GGADS: A general gate-array design system for optimizing gate
array master structures. In Proceedings of the 5th CompEuro, pages 680{684, Bologna,
Italy, May 1991. IEEE.
[25] A. G. Homann. GGADS: Ein allgemeines Gate-Array Entwurfssystem. In Tagungsband des funften E.I.S.-Workshops, pages 13{22, Dresden, Germany, April 1991.
GMD.
LITERATURVERZEICHNIS
95
[26] A. G. Homann. Towards optimizing global MinCut partitioning. In Proceedings
of the 2nd European Design Automation Conference, pages 167{171, Amsterdam,
Netherlands, February 1991. IEEE.
[27] F. K. Hwang. On steiner minimal trees with rectilinear distance. Journal of Applied
Mathematics, 30:104{114, 1976.
[28] L. Hyal and R. L. Rivest. Graph partitioning and constructing optimal decision trees
are polynomial complete problems. Technical report, IRIA-Laboria, Rocquencourt,
France, 1973.
[29] M. Igusa, M. Beardslee, and A. Sangiovanni-Vincentelli. ORCA A sea-of-gates place
and route system. In Proceedings of the 26th Design Automation Conference, pages
122{127, 1989.
[30] J. A. G. Jess, R. J. Jongen, P. A. C. M. Nuijten, and J. C. Bu. A gate array
design system adaptive to many technologies. In Proceedings of IEEE International
Conference of Computer Design: VLSI in Computers, pages 338{343, 1984.
[31] S. Kang. Linear ordering and application to placement. In Proceedings of the 20th
Design Automation Conference, pages 457{464, 1983.
[32] S. Kirkpatrick, C. D. Gelatt Jr., and J. P. Vecchi. Optimization by simulated annealing. Science, 220(4598):671{680, 1983.
[33] J. Kleinhans, G. Sigl, and F. M. Johannes. GORDIAN: A new global optimaization/rectangle dissection method for cell placement. In Proceedings of IEEE International Conference on Computer Aided Design, pages 506{509, 1988.
[34] J. Kleinhans, G. Sigl, F. M. Johannes, and K. J. Antreich. GORDIAN: VLSI placement by quadratic programming and slicing optimization. IEEE Transactions on
Computer-Aided Design, (CAD-10):356{365, March 1991.
[35] G. Koetzle. System implementation on a highly structured VLSI master image. In
W. E. Proebster and H. Reiner, editors, Proceedings VLSI and Computers, pages
604{609. IEEE, 1987.
[36] B. Krishnamurthy. An improved min-cut algorithm for partitioning VLSI networks.
IEEE Transactions on Computers, C-33(5):438{446, May 1984.
[37] J. B. Kruskal. On the shortest spanning subtree of a graph and the traveling salesman
problem. Proceedings of the American Mathematical Society, 7(1):48{50, 1956.
[38] P. J. M. Laarhoven and E. H. L. Aarts. Simulated Annealing: Theory and Applications. D. Reidel Publishing Company, Dordrecht, Holland, 1988.
[39] C. Y. Lee. An algorithm for path connection and its applications. IRE Transactions
on Electronic Computers, 3(EC-10):346{365, 1961.
96
LITERATURVERZEICHNIS
[40] T. Lengauer. Combinatorial Algorithms for Integrated Circuit Layout. John Wiley
and Sons, 1990.
[41] C. Mead and L. Conway. Introduction to VLSI systems. Addison-Wesley Series in
Computer Science, 1980.
[42] K. Mehlhorn. A faster approximation algorithm for the steiner problem in graphs.
Information Processing Letters, 27:125{128, 1988.
[43] Y. Nair. A simple yet eective technique for global wiring. IEEE Transactions on
Computer-Aided Design, (CAD-6):165{172, 1987.
[44] N. Nilsson. Principles of Articial Intelligence. Springer-Verlag, Berlin Heidelberg
New York, 1982.
[45] M. Okabe et. al. A CMOS sea-of-gates array with continuous track allocation. In Proceedings of the International Solid-State Circuits Conference, pages 181{182, 1989.
[46] J. Petrovick Jr. et al. A 300k-circuit ASIC logic family. In Proceedings of the IEEE
International Solid-State Circuits Conference, pages 88{89, 1990.
[47] H.-U. Post. Entwurf und Technologie hochintegrierter Schaltkreise. Teubner, 1989.
[48] J. Reed, A. L. Sangiovanni-Vincentelli, and M. Santomauro. A new symbolic channel
router, YACR2. IEEE Transactions on Computer-Aided Design of Integrated Circuits
and Systems, CAD-4(3):208{219, 1985.
[49] E. Rich. Articial Intelligence. McGraw-Hill, New York, 1983.
[50] D. Richards. Fast heuristic algorithms for rectilinear steiner trees. Algorithmica,
4:191{207, 1989.
[51] R. Rivest and C. M. Fiduccia. A `greedy' channel router. In Proceedings of the 19th
Design Automation Conference, pages 418{424, 1982.
[52] K. Sawada et al. A 72k CMOS channelless gate array with embedded 1Mbit dynamic
RAM. In Proceedings of the Custom Integrated Circuit Conference, pages 20.3.1{
20.3.4, 1988.
[53] D. G. Schweikert and B. W. Kernighan. A proper model for the partitioning of
electrical circuits. In Proceedings of the 9th Design Automation Workshop, pages
57{62, 1972.
[54] C. Sechen and K.-W. Lee. An improved simulated annealing algorithm for row-based
placement. In Proc. International Conference on Computer-Aided Design, pages
478{481. IEEE, 1987.
[55] H. Shin and A. Sangiovanni-Vincentelli. Mighty: A `rip-up and reroute' detailed
router. In Proceedings of the 23th Design Automation Conference, pages 2{5, 1986.
LITERATURVERZEICHNIS
97
[56] H. Shin and A. Sangiovanni-Vincentelli. A detailed router based on incremental
routing modifcations: Mighty. IEEE Transactions on Computer-Aided Design, CAD6(6):942{955, November 1987.
[57] D. C. Smith, S. S. Sharma, and J. C. Werbickas. The variable geometry automated universal array layout system. In Proceedings of the 20th Design Automation
Conference, pages 425{429, 1983.
[58] P. R. Suaris and G. Kedem. A quadrisection-based combined place and route scheme for standard cells. In Proceedings International Conference on Computer-Aided
Design, pages 474{477, 1987.
[59] P. R. Suaris and G. Kedem. A quadrisection-based combined place and route scheme for standard cells. IEEE Transactions on Computer-Aided Design of Integrated
Circuits and Systems, 3(CAD-8):234{244, 1989.
[60] G. Vijayan. Min-cost partitioning on a tree structure and applications. In Proceedings
of the 26th Design Automation Conference, pages 771{774, 1989.
[61] Y. F. Wu, P. Widmayer, and C. K. Wong. A faster approximation algorithm for the
steiner problem in graphs. Acta Informatica, 23:223{229, 1986.
98
LITERATURVERZEICHNIS
Kapitel 7
Anhang
7.1 Tabellen
In diesem Teil des Anhangs sind die Tabellen zu Abschnitt 3.1.6 uber das neue Partitionierungsverfahren SQP zu nden. Die resultierenden Gesamtnetzschnittzahlen und die
dazugehorigen Rechenzeiten fur die verschiedenen Vorgehensweisen sind angegeben.
99
KAPITEL 7. ANHANG
100
No. of max
nodes ppn
250
2
CPU
250
3
CPU
250
5
CPU
250
10
CPU
1000
2
CPU
1000
3
CPU
1000
5
CPU
1000
10
CPU
2500
2
CPU
2500
3
CPU
2500
5
CPU
2500
10
CPU
5000
2
CPU
5000
3
CPU
5000
5
CPU
5000
10
CPU
FM3 FM30 SQP3 SQP10 SQP50
83
0.9
150
1.0
286
1.3
397
1.7
355
4.2
665
4.9
1110
6.1
1717
6.8
860
12.0
1707
12.0
2861
15.1
4385
18.6
1905
26.5
3407
27.2
5657
31.9
8767
43.4
74
8.2
139
8.9
264
11.7
386
13.9
337
39.1
597
41.7
1089
50.8
1687
67.7
818
111.3
1626
120.1
2728
140.0
4305
183.2
1742
236.6
3335
243.7
5503
295.4
8693
380.4
49
46
6.1
16.0
104
104
6.9
20.1
242
242
9.6
29.1
373
370
18.2
55.5
219
219
23.4
70.8
456
438
31.1
96.5
860
860
50.2 152.9
1529
1512
73.1 222.3
549
547
60.2 188.3
1160
1118
69.2 213.8
2165
2147
112.3 341.2
3824
3824
179.2 593.3
1104
1047
149.2 456.4
2622
2248
155.3 513.7
4313
4296
223.2 675.9
7691
7691
378.2 1256.2
46
78.6
104
99.2
232
144.8
363
263.6
194
344.7
430
434.2
854
697.2
1498
1100.5
493
939.1
1094
1088.6
2147
1602.6
3824
2937.5
1008
2090.7
2248
2475.5
4257
3263.3
7652
6254.6
Tabelle 7.1: Vergleich der Gesamtschnittzahl bei der Partitionierung in vier gleichgroe
Partitionen.
7.1. TABELLEN
101
No. of max sSQP3 sSQP10 HX3 HX10
nodes ppn
250
2
106
108
118
110
CPU
7.1
21.1
30.2
93.4
250
3
219
217
259
240
CPU
14.2
39.6
44.2
139.1
250
5
493
479
519
506
CPU
20.7
59.1
81.3
262.7
250
10
767
736
792
782
CPU
41.2
117.1 154.2
502.3
1000
2
437
439
481
472
CPU
49.3
145.9 185.3
608.1
1000
3
931
888
998
950
CPU
68.1
202.1 272.1
852.8
1000
5
1778
1765 1919
1919
CPU
86.3
251.9 342.3 1136.1
1000
10
3152
3024 3236
3196
CPU 167.3
509.5 404.5 2067.3
2500
2
1121
1095 1229
1125
CPU 138.2
448.9 557.3 1801.6
2500
3
2342
2218 2409
2409
CPU 173.2
565.6 693.8 2283.1
2500
5
4459
4368 4805
4714
CPU 223.5
719.8 898.3 2899.1
2500
10
7662
7615 8114
8082
CPU 432.5 1345.2 1612.4 5419.3
5000
2
2140
2077 2257
2222
CPU 466.6 1322.9 1683.2 5523.6
5000
3
5019
4518 4839
4839
CPU 432.5 1549.8 1957.2 6302.5
5000
5
8865
8699 9479
9423
CPU 597.7 1800.4 2313.2 7763.5
5000
10 15301 15274 16038 16038
CPU 973.6 2971.4 4102.5 12987.2
Tabelle 7.2: Vergleich der Gesamtschnittzahl bei der Partitionierung in 4 x 4 gleichgroe Partitionen entsprechend Abbildung 3.16.
102
KAPITEL 7. ANHANG
No. of max rSQP3 rSQP10 HXFLAT3 HXFLAT10
nodes ppn
250
2
185
179
227
227
CPU
9.4
47.7
121.2
392.3
250
3
398
391
488
483
CPU
17.6
57.2
121.3
394.1
250
5
964
947
1075
1001
CPU
20.6
68.9
138.2
451.2
250
10
1491
1519
1690
1687
CPU
35.7
100.1
156.2
510.2
1000
2
851
831
926
887
CPU 137.7
488.1
208.3
671.2
1000
3
1800
1730
1997
1966
CPU
52.3
496.2
214.2
708.7
1000
5
3542
3508
4254
4224
CPU 176.3
546.5
414.2
1388.5
1000
10
6371
6274
7267
7124
CPU 211.9
746.0
453.2
1515.1
2500
2
2022
2034
2365
2345
CPU 890.7 3180.3
405.3
1324.6
2500
3
4556
4471
5165
5165
CPU 869.4 3180.3
455.3
1513.9
2500
5
9051
8984
11160
11160
CPU 833.5 3180.3
518.2
1708.7
2500
10 16121 16051
19136
19136
CPU 1017.1 3308.7
821.3
2661.5
5000
2
4150
3954
4328
4328
CPU 4444.7 13672.5
859.2
2836.5
5000
3 10139
9023
10332
10264
CPU 3106.0 11112.2
2595.9
7794.2
5000
5 17945 17760
21491
21246
CPU 3555.8 11067.9
1223.2
4062.8
5000
10 32230 32155
37306
37306
CPU 3972.1 12840.9
2078.2
6883.2
Tabelle 7.3: Vergleich der Gesamtschnittzahl bei der Partitionierung in 16 x 1 gleichgroe Partitionen entsprechend Abbildung 3.15.
7.2. DEFINITIONEN
103
7.2 Denitionen
Denition Ein Graph G ist durch das Paar (V; E ) gegeben. V = fv ; v ; : : : ; vng ist
dabei eine endliche Menge von Knoten (engl. vertices). E = fe ; e ; : : : ; emg ist eine
endliche Menge von Kanten (engl. edges). Eine Kante ist dabei als ein - bei gerichteten
Graphen geordnetes - Paar von Knoten ei = (vi1 ; vi2 ) deniert, mit vi1 ; vi2 2 V .
1
1
2
2
Denition Ein Hypergraph G ist durch das Paar (V; E ) gegeben. V = fv ; v ; : : : ; vng
ist dabei eine endliche Menge von Knoten (engl. vertices). E = fe ; e ; : : : ; emg ist
1
1
2
2
eine endliche Menge von Kanten Eine Hyperkante ist dabei als eine Menge Knoten ei =
(vi1 ; vi2 ; : : : ; vi g deniert, mit vi1 ; vi2 ; : : : ; vi 2 V .
ik
ik
KAPITEL 7. ANHANG
104
7.3 Die Beschreibungssprache fur Master-Strukturen
In diesem Teil des Anhangs ist die in GGADS verwendete Beschreibungssprache fur GateArray-Master-Strukturen beschrieben.
Die Sprache, die hier vorgestellt wird, wurde erstmals in [21] beschrieben und lat die
Beschreibung einer groen Vielfalt verschiedener Gate-Array-Master zu.
Es wird zunachst der allgemeine Aufbau einer solchen Master-Beschreibung skizziert.
Anschlieend werden Beispiele fur Master bzw. Teile einer Master-Struktur mit der passenden Beschreibung angegeben sowie eine formale Grammatik der Sprache.
Der allgemeine Aufbau einer Masterbeschreibung
Die Beschreibung besteht aus drei Teilen:
dem Deklarationsteil
Hier werden die einzelnen Layer des Chips angegeben. Auerdem werden die auf dem
Master vorkommenden Typen von Transistoren, Draht-Segmenten und Kontakten
deklariert und dazu allgemeine elektrische und geometrische Parameter angegeben.
die Mikroarchitekturbeschreibung
Hier werden alle auf dem Master vorkommenden Zellen beschrieben. Die Beschreibung der Mikroarchitektur, d.h. einer einzelnen Zelle, ist nicht an den in der Zelle
vorhandenen und fest vorplazierten Transistoren orientiert, sondern an
den personalisierbaren Kontakt- und Drahtelementen. Dies bedeutet auch,
da der Ort der physikalischen Realisierung der Transistoren, z.B. eines Transistors, nicht angegeben wird, sondern nur die verschiedenen Moglichkeiten ein solcher
Transistor anzuschlieen. Zu diesem Zweck wird fur jeden Zelltyp die Groe sowie
die personalisierbaren Draht- und Kontaktelemente angegeben. Bei den einzelnen
Kontakten werden alle fest vorplazierten Transistoren entsprechend angegeben. Auerdem werden an dieser Stelle die Designregeln angegeben. Dies geschieht durch
Angabe von Regeln, welche aktiviert werden, wenn bestimmte Draht- oder Kontaktelemente benutzt werden. Die Regeln bestimmen dabei, welche anderen Drahtund/oder Kontaktelemente nicht mehr benutzt werden konnen, wenn das die Regel
aktivierende Element benutzt wird. Hierbei werden zwei Falle unterschieden:
{ Elemente, die nur noch vom gleichen elektrischen Knoten, wie das auslosende
Element benutzt werden konnen
{ Elemente, die uberhaupt nicht mehr benutzt werden durfen (z.B. konnten zwei
ubereinander liegende Kontakte nie zu gleich benutzt werden durfen.)
Beschreibung der Makrostruktur
Zu der Beschreibung der Makrostruktur gehoren
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
105
{ die Anordnung der im vorhergehenden Teil beschriebenen Zellen
(Fur Verdrahtungskanale oder Verdrahtungsachen am Rand des Masters konnen
Zellen deniert werden, die keine Transistoren, sondern nur Draht- und Kontaktelemente zwischen den Verdrahtungsebenen beinhalten.)
{ die Angabe der Padtreiber
{ die optionale Angabe von Sonderstrukturen, wie RAM-Strukturen, welche einen
Teil der `normalen' Zellen uberdecken.
Einschrankungen der Beschreibungsmoglichkeiten
Es ist nur rechtwinklige Verdrahtung vorgesehen. Alle Draht- und Kontaktelemente
werden als rechtwinklige Einheiten beschrieben.
Die Verdrahtung ist nur auf einem Raster moglich, welches allerdings vom Benutzer
angegeben werden kann.
Alle Transistorzellen mussen so angeordnet sein, da die Zellrander auf durchgehenden waagerechten und senkrechten Linien liegen.
Fur die Spezialstrukturen heit dies, da ihre Flache nur ganze Zellen bedecken darf.
106
KAPITEL 7. ANHANG
7.3.1 Beispiel fur eine Masterbeschreibung
/* Im folgenden sind alle als `Namen' bezeichneten Zeichenketten hochstens 20 Zeichen
lang und bestehen nur aus Gro- und Kleinbuchstaben und Ziern. Sie durfen allerdings
nicht mit einer Zier beginnen. */
gate-array-master-description(Gate-Grande);
/* Mit dem Schlusselwort `gate-array-master-description' fangt jede Beschreibungsdatei
an. Der Name `Gate-Grande' ist individuell und kann eine beliebige Zeichenkette bis zu
einer Lange von 20 Zeichen sein. */
declarationpart:
/* Als erstes in der Beschreibung kommt ein Deklarationsteil, ahnlich wie bei hoheren Programmiersprachen. Hier werden die verschiedenen im nachfolgenden verwendeten LayerNamen angegeben, sowie alle verwendeten Device- und Wiretypen deklariert. Dieser Teil
wird mit dem Schlusselwort `declarationpart:' begonnen. */
layertypes :
/* Zuerst werden die Layertypen deklariert, mit dem Schlusselwort `layertypes' und einem
Doppelpunkt wird dies angezeigt. Die Layertypen werden bereits fur die Deklaration der
Devices und Wires benotigt; daher stehen sie als erstes in der Deklarationsliste. */
layer poly;
layer di;
layer m1d;
layer m1p;
layer m1;
layer m1m2;
layer m2;
/* In den obigen Zeilen wurden alle benotigten Layernamen aufgefuhrt. Jeweils ein Name
pro Zeile; vorangestellt ist jeweils das Schlusselwort `layer' und jede Deklaration wird
durch ein Semikolon abgeschlossen. */
/* Es folgt die Deklaration der Device- und Wiretypen. Dies wird mit dem Schlusselwort
`devicetypes' eingeleitet. */
devicetypes :
/* Dieser Teil dient zur Deklaration der Devicetypen, d.h. aller Arten von elektrischen
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
107
Devices, die es auf dem Master zu unterscheiden gilt. Diese werden generell durch einen
Namen gekennzeichnet, dem einer der folgenden Standardtypen vorhergeht, und der von
einem Doppelpunkt gefolgt wird. Nach dem Doppelpunkt folgt in Abhangigkeit von dem
jeweiligen Standardtypen eine Reihe von Parameterangaben, wobei jeder Parameter mit
einem Semikolon abgeschlossen wird. Die zur Auswahl stehenden Standardtypen und die
dazugehorigen Parameter sind die folgenden:
nmos gatefanin, sourcedrainr
pmos gatefanin, sourcedrainr
bipnp
binpn
contact layer1, layer2, size, r, c
wire layer, size, r, c
vss layer, size
vdd layer, size
crossunder r, c
other pinliste
padin fanout
padout fanin
pad3state fanin
Bei den Parametern `fanin', `fanout', `gatefanin' und `sourcedrainr' konnen ganzzahlige
Werte angegeben werden, um ein relatives Fanin, Fanout, Gate-fanin bzw. einen relativen
Source-Drain-Widerstand anzugegeben.
Die Parameter `r' und `c' sollen den relativen Widerstand und die relative Kapazitat des
betreenden Elementes spezizieren.
Bei den Parametern `layer', `layer1' und `layer2' wird jeweils einer der deklarierten Layer
genannt, um anzugeben, auf welchem Layer bzw. auf welchen beiden Layern das jeweilige
Element liegt.
Der Parameter `size' ist die Groe (Lange und Breite) des entsprechenden Elements. */
nmos ntyp1: gatefanin=1; sourcedrainr=5;
pmos ptyp1: gatefanin=2; sourcedrainr=7;
contact m1d: layer1=di, (1,1); layer2=m1, (1,1); r=1; c=1;
contact m1m2: layer1=m1, (1,1); layer2=m2, (2,2); r=1; c=1;
contact m1p: layer1=poly, (1,1); layer2=m1, (2,2); r=1; c=1;
108
KAPITEL 7. ANHANG
wire wm1: layer=metal1; (1,1); r=1; c=1;
wire wm2: layer=metal2; (1,1); r=1; c=1;
padin PADin1: fanout=5;
padout PADout1: fanin=3;
vss vsscell1 : layer=m1; (1,1);
vdd vddcell1 : layer=m1; (1,1);
microarchitecture:
/* Nach dem Deklarationsteil folgt, durch das Schlusselwort `microarchitecture' gekennzeichnet, der Teil, in dem alle auf dem Master vorkommenden Zellstrukturen beschrieben
werden. */
/* Die Struktur der Zellbeschreibung wird im folgenden erklart. Wir beginnen mit der
Zelle mit der Nummer `2', weil bei ihr mehr unterschiedliche Beschreibungsmuster vorkommen. */
cell 2: Zelle1(27 x 27):
(Eine Skizze von Zelle1 ist in Abbildung 7.2.)
/* Durch das Schlusselwort `cell' und einer laufenden Nummer, gefolgt von einem Doppelpunkt, wird die Beschreibung einer einzelnen Zelle begonnen. Nach `cell' folgt ein
individueller Name der Zelle sowie das Format der Zelle in Klammern (`Lange' x `Breite'). Anschlieend wird eine Liste der Devices und Wires der Zelle aufgefuhrt.
Dabei werden zunachst nur die Kontakte (durch das Schlusselwort `cont' angefuhrt) und
die Verdrahtungselemente (durch das Schusselwort `wire' angefuhrt) genannt. Dies sind
auch genau diejenigen Elemente, die bei einem Gate-Array personalisierbar sind. Also genau diejenigen Masken, die individuell fur eine konkrete Schaltungsrealisierung entworfen
werden mussen.
Die Devices werden nur in der an die Benennung eines Kontaktes folgende Liste von
angeschlossenen Devices aufgefuhrt. */
cont: source11 (m1d): (3,2); (3,4); (3,6); (3,8);
connected: ntyp1: nmos1(s);
/* Die genaue Beschreibung eines Kontaktes sieht so aus: Zuerst das Schlusselwort `cont'
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
109
und ein Doppelpunkt. Danach folgt ein individueller Name und in Klammern dahinter der
Kontakttyp, d.h. die entsprechende Maske, welche allerdings im Deklarationsteil unter
den `layertypes' deklariert werden mu. Darauf folgt erneut ein Doppelpunkt, worauf
eine Liste von Koordinatenpaaren folgt; jedes Koordinatenpaar durch ein Semikolon vom
nachsten getrennt. Die Koordinatenpaare sind jeweils in Klammern eingefat und die
beiden Koordinaten durch ein Komma voneinander getrennt.
Nach dem Schlusselwort `connected' und einem Doppelpunkt folgt ein einzelnes oder auch
mehrere Devicepins. Bei einem Devicepin wird der Devicetyp, (wie im Deklarationsteil
deklariert,) genannt und nach einem Doppelpunkt folgt ein individueller Device-Name
nachdem in Klammern das jeweils durch diesen Kontakt anschliebare Pin genannt wird.
Das Ende einer Devicepinbeschreibung wird durch ein Semikolon gekennzeichnet. */
cont: gate11 (m1p): (5,2); (5,8);
connected: ntyp1: nmos1(g);
cont: source21 (m1d): (7,2); (7,4); (7,6); (7,8);
connected: ntyp1: nmos2(s), ntyp1: nmos1(d);
cont: gate21 (m1p): (9,2); (9,8);
connected: ntyp1: nmos2(g);
cont: source31 (m1d): (11,2); (11,4); (11,6); (11,8);
connected: ntyp1: nmos3(s), ntyp1: nmos2(d);
cont: gate31 (m1p): (13,2); (13,8);
connected: ntyp1: nmos3(g);
cont: source41 (m1d): (15,2); (15,4); (15,6); (15,8);
connected: ntyp1: nmos4(s), ntyp1: nmos3(d);
cont: gate41 (m1p): (17,2); (17,8);
connected: ntyp1: nmos4(g);
cont: source51 (m1d): (19,2); (19,4); (19,6); (19,8);
connected: ntyp1: nmos5(s), ntyp1: nmos4(d);
cont: gate51 (m1p): (21,2); (21,8);
connected: ntyp1: nmos5(g);
cont: drain51 (m1d): (23,2); (23,4); (23,6); (23,8);
connected: ntyp1: nmos5(d);
110
KAPITEL 7. ANHANG
cont: source12 (m1d): (3,16); (3,18); (3,20); (3,22); (3,24);
connected: ptyp1: pmos1(d);
cont: gate12 (m1p): (5,16); (5,24);
connected: ptyp1: pmos1(g);
cont: source22 (m1d): (7,16); (7,18); (7,20); (7,22); (7,24);
connected: ptyp1: pmos2(s), ptyp1: pmos1(s);
cont: gate22 (m1p): (9,16); (9,24);
connected: ptyp1: pmos2(g);
cont: source32 (m1d): (11,16); (11,18); (11,20); (11,22); (11,24);
connected: ptyp1: pmos3(s), ptyp1: pmos2(d);
cont: gate32 (m1p): (13,16); (13,24);
connected: ptyp1: pmos3(g);
cont: source42 (m1d): (15,16); (15,18); (15,20); (15,22); (15,24);
connected: ptyp1: pmos4(s), ptyp1: pmos3(d);
cont: gate42 (m1p): (17,16); (17,24);
connected: ptyp1: pmos4(g);
cont: source52 (m1d): (19,16); (19,18); (19,20); (19,22); (19,24);
connected: ptyp1: pmos5(s), ptyp1: pmos4(d);
cont: gate52 (m1p): (21,16); (21,24);
connected: ptyp1: pmos5(g);
cont: drain52 (m1d): (23,16); (23,18); (23,20); (23,22); (23,24);
connected: ptyp1: pmos5(d);
/* Nachdem beschrieben wurde, wie die Devices der Zelle kontaktiert werden konnen,
werden nun noch alle `wire'- und `contact'-Elemente der Zellen angegeben, die fur die
Verdrahtung zur Verfugung stehen. Hierbei konnen entweder einzelne Elemente angegeben werden ( durch `wire' bzw. `contact' eingefuhrt) oder Rechtecke, innerhalb derer auf
jedem Rasterpunkt ein Element der angegebenen Art zur Verfugung steht.
Bei der Angabe eines Rechteckes werden nur die Koordinatenpaare zweier gegenuberliegende
Eckpunkte benannt. Die Koordinatenpaare werden durch ein Komma getrennt und sind
jeweils in Klammern anzugeben. */
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
111
wirearray: metal1(wm1): (0,0), (27,27);
wirearray: metal2(wm2): (0,0), (27,27);
contactarray: m1m2via(m1m2): (0,0), (27,27);
/* Wenn Vdd und Vss bereits fest vorverdrahtet sind, so kann dies ebenfalls durch einen
geeigneten `wirearray' beschrieben werden.
Z. B.:
wirearray: vss1(Vsscell2): (0,0), (27,1);
wirearray: vdd1(vddcell2): (0,26), (27,27);
(siehe Abbildung 7.1.)
Nun folgen die `designrules'; dieser Teil der Beschreibung wird durch das Schlusselwort
`designrules', gefolgt von einem Doppelpunkt, eingeleitet. Jede dieser Regeln beginnt
mit einem spezischen Namen und einem folgenden Doppelpunkt. Anschlieend werden
diejenigen Draht- bzw. Kontaktelemente aufgefuhrt, die fur die Benutzung durch ein
anderes Netz unzulassig werden, wenn ein Draht- bzw. Kontaktelement gebraucht wird,
das die Anwendung der jeweiligen Regel vorschreibt. Dies wird durch `dn' (fur `dierent
node') gefolgt von einem Doppelpunkt eingeleitet. Daraufhin folgen fur jeden Layer, auf
dem ein oder mehrere Elemente ungultig werden, die entsprechenden Koordinaten. Jedem Koordinatenpaar geht entweder das Schlusselwort `rel' oder `abs' voraus. `rel' (fur
`relativ') bedeutet, da das darauolgende Koordinatenpaar - getrennt durch ein Komma - auf die Koordinaten des Ortes, der die entsprechende Regelanwendung vorschreibt,
aufaddiert werden mussen. Dahingegen bedeutet `abs' (fur `absolut') da das folgende
Koordinatenpaar absolute Werte fur die jeweilige Zelle beschreibt.
Anschlieend folgt optional noch einmal eine Liste von `layer' und entsprechenden Koordinaten, die durch `sn' und einem Doppelpunkt eingeleitet wird. `sn' steht dabei fur
`same node' und es werden diejenigen Kontakte bzw. Drahtstucke beschrieben, die auch
fur die Benutzung durch das gleiche Netz ungultig werden. */
designrules:
Rule1: dn: layer m1p: rel 0,1; rel 1,0; rel 2,0;
/* Nach dem Schlusselwort `toapplyto' und einem Doppelpunkt werden Kontakt- bzw.
Drahtstucke aufgefuhrt, bei deren Belegung durch ein Netz, die jeweilige Regel Anwendung nden soll. Dabei geht wiederum jeder Koordinatenpaarliste ein Layername dem
Schlusselwort `layer' folgend, voraus. Die Koordinaten jedes Paares sind durch ein Komma getrennt und jedes Koordinatenpaar wird durch ein Semikolon abgeschlossen. Anstatt
112
KAPITEL 7. ANHANG
eines einzelnen Koordinatenpaares konnen auch zwei Koordinatenpaare durch drei Punkte
`...' voneinander getrennt, stehen. Dies ist gleichbedeutend mit der Menge aller Koordinaten, die zwischen den beiden Koordinatenpaaren liegen. Hierbei bezieht sich `zwischen'
auf alle Koordinaten, die durch das kleinste beide genannten Punkte umfassende Rechteck
eingeschlossen werden.
Eine weitere Regel wird einfach durch einen neuen individuellen Namen eingeleitet. */
toapplyto :
layer m1p
0,0;
1,0 ... 5,8;
20,9;
Rule2: dn: layer m1d: rel 0,1; rel 1,0; rel 1,1; rel -1,0; rel -1,-1; rel 0,-1; rel
1,-1; rel -1,1;
toapplyto:
layer m1 0,0 ... 27,27;
layer m1d 0,0 ... 27,27;
/* `Rule2' ist in Abbildung 7.3 illustriert: Wenn in dem Feld (1,2) ein Metall1-Diusionskontakt
gelegt wird, so werden alle umliegenden Felder fur andere Knoten (durch `dn', wie `dierent node' gekennzeichnet) gesperrt. */
Rule3: dn: layer m1: rel 0,1; rel 1,0; rel 1,1; rel -1,0; rel -1,-1; rel 0,-1; rel
1,-1; rel -1,1;
toapplyto:
layer m1 0,0 ... 27,27;
layer m1m2 0,0 ... 27,27;
layer m1d 0,0 ... 27,27;
layer m1p 0,0 ... 27,27;
Rule4: dn: layer m2: rel 0,1; rel 1,0; rel 1,1; rel -1,0; rel -1,-1; rel 0,-1; rel
1,-1; rel -1,1;
toapplyto:
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
113
layer m1m2 0,0 ... 27,27;
layer m2 0,0 ... 27,27;
Rule5: sn: layer m1d: rel 0,1; rel 1,0; rel 1,1; rel -1,0; rel -1,-1; rel 0,-1; rel
1,-1; rel -1,1;
toapplyto:
layer m1m2 0,0 ... 27,27;
Rule6: sn: layer m1p: rel 0,1; rel 1,0; rel 1,1; rel -1,0; rel -1,-1; rel 0,-1; rel
1,-1; rel -1,1;
toapplyto:
layer m1m2 0,0 ... 27,27;
Rule7: sn: layer m1m2: rel 0,1; rel 1,0; rel 1,1; rel -1,0; rel -1,-1; rel 0,-1; rel
1,-1; rel -1,1;
toapplyto:
layer m1p 0,0 ... 27,27;
layer m1d 0,0 ... 27,27;
Rule8: dn: layer m1d: rel 0,2; rel 0,4; rel 0,6;
toapplyto:
layer m1d 3,2; 7,2; 11,2; 15,2; 19,2; 23,2;
Rule9: dn: layer m1d: rel 0,-2; rel 0,2; rel 0,4;
toapplyto:
layer m1d 3,4; 7,4; 11,4; 15,4; 19,4; 23,4;
/* Durch die folgenden Regeln wird angegeben, da die jeweiligen Source- bzw. DrainGebiete (also vier Kontaktmoglichkeiten) nur von einem einzigen elektrischen Knoten
kontaktiert werden konnen. */
114
KAPITEL 7. ANHANG
Rule10: dn: layer m1d: rel 0,-2; rel 0,-4; rel 0,2;
toapplyto:
layer m1d 3,6; 7,6; 11,6; 15,6; 19,6; 23,6;
Rule11: dn: layer m1d: rel 0,-2; rel 0,-4; rel 0,-6;
toapplyto:
layer m1d 3,8; 7,8; 11,8; 15,8; 19,8; 23,8;
/* Im folgenden wird eine Verdrahtungszelle beschrieben, welche, entsprechend Abbildung 7.5, die Zellnummer `1' hat. */
cell 1: Verdrahtungszelle(27 x 27):
wirearray: metal1(wm1): (0,0), (27,27);
wirearray: metal2(wm2): (0,0), (27,27);
contactarray: m1m2via(m1m2): (0,0), (27,27);
designrules:
Ruleverdraht1: dn: layer m1: rel 0,1; rel 1,0; rel 1,1; rel -1,0; rel -1,-1; rel
0,-1; rel 1,-1; rel -1,1;
toapplyto:
layer m1 0,0 ... 27,27;
layer m1m2 0,0 ... 27,27;
Ruleverdraht2: dn: layer m2: rel 0,1; rel 1,0; rel 1,1; rel -1,0; rel -1,-1; rel
0,-1; rel 1,-1; rel -1,1;
toapplyto:
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
115
layer m1m2 0,0 ... 27,27;
layer m2 0,0 ... 27,27;
Ruleverdraht3: sn: layer m1m2: rel 0,1; rel 1,0; rel 1,1; rel -1,0; rel -1,-1; rel
0,-1; rel 1,-1; rel -1,1;
toapplyto:
layer m1 0,0 ... 27,27;
layer m1m2 0,0 ... 27,27;
layer m2 0,0 ... 27,27;
/* An die Auistung der Zellbeschreibungen schliet sich die Beschreibung der Makroarchitektur an, die durch das Schlusselwort `macroarchitecture' und einem folgenden Doppelpunkt eingeleitet wird. */
macroarchitecture:
/* Als erstes wird die Groe des Chips in Einheitslangen nach dem Schlusselwort `chipsize'
und einem Doppelpunkt angegeben. Zuerst kommt die Breite, gefolgt von einem `x'
und einer zweiten Zahl, die die Hohe angibt. Diese Angabe wird durch ein Semikolon
abgeschlossen. */
chipsize: 378 x 378;
/* Auf die Angabe der Chipgroe folgt die Beschreibung der Anordnung der einzelnen
Zellen auf dem Chip. Dazu wird zunachst die Gesamtzahl n der Zellreihen angegeben und
anschlieend, eingeleitet durch das Schlusselwort `lowerrow' und einem Doppelpunkt, die
allerunterste Reihe beschrieben. Nach dem Schlusselwort `verticalperiode' und einem
Doppelpunkt werden die n 2 Zellreihen, die zwischen der untersten und der obersten
Zellreihe liegen, beschrieben. Hierbei konnen bis zu n 2 verschiedene Zellreihenbeschreibungen in entsprechender Reihenfolge angegeben werden. Werden nur k < n 2
Zellreihen beschrieben, so bedeutet dies, da sich die Reihenfolge der ersten k Zellreihen fur die ubrigen n 2 k Zellreihen periodisch wiederholt. Abschlieend mu auf
das Schlusselwort `upperrow' gefolgt von einem Doppelpunkt noch die alleroberste Reihe
beschrieben werden.
Die Beschreibung einer Zellreihe lauft nach einem ahnlichen Muster ab. Zunachst wird
die Gesamtzahl der Zellen in einer Reihe nach dem einfuhrenden Schlusselwort `cellnumber' und einem `='-Zeichen angegeben. Nach einem Doppelpunkt folgt das Schlusselwort
`leftcell' sowie ein weiterer Doppelpunkt. Dann kommt eine Zellbeschreibung.
116
KAPITEL 7. ANHANG
Eine Zellbeschreibung besteht aus der Zellnummer und die darauf, durch ein Komma
getrennt, folgende Orientierung der Zelle (ein Code von 1,...,8; siehe hierzu auch Abbildung 7.4). Jede Zellbeschreibung wird durch ein Semikolon abgeschlossen.
Nach der Beschreibung der linken Zelle folgt das Schlusselwort `periode' und ein Doppelpunkt. Hinter dem Doppelpunkt konnen bis zu m 2 Zellbeschreibungen in ihrer
entsprechenden Reihenfolge folgen, die die m 2 Zellen die rechts neben der ganz links
liegenden und zuerst beschriebenen Zelle der Reihe liegen. Wie bei der Beschreibung
n 2 Reihen oberhalb der alleruntersten Reihe wird auch hier, wenn weniger als m 2
Zellbeschreibungen vorliegen, die vorliegende Reihenfolge der Zellen periodisch wiederholt. Die Beschreibung einer Zellreihe wird durch die Zellbeschreibung der ganz rechts
aussen liegenden m-ten Zelle nach dem Schlusselwort `rightcell' und einem Doppelpunkt
abgeschlossen.
Im folgenden ist die Makrostruktur aus Abbildung 7.5 beschrieben. */
rownumber=14;
lowerrow: cellnumber=14: leftcell: c 1,1; periode: c 1,1; c 1,1; c 1,1; c 1,1; c
1,1; c 1,1; c 1,2; c 1,2; c 1,2; c 1,2; c 1,2; c 1,2; etc. rightcell: c 1,2;
verticalperiode:
cellnumber=14: leftcell: c 1,1; periode: c 2,1; c 3,2; etc. rightcell: c 1,1;
cellnumber=14: leftcell: c 1,1; periode: c 1,3; c 2,4; etc. rightcell: c 1,2;
upperrow: cellnumber=14: leftcell: c 1,1; periode: c 1,1; etc. rightcell: c 1,1;
/* Nachdem die Beschreibung der Zellmatrix des Masters beendet ist, konnen nun optional Spezialstrukturen auf dem Master deklariert werden. Dabei wird der Ort und die
Form einer Spezialstruktur, z.B. eine RAM-Struktur, durch ein beliebiges rechtwinkliges
Polygon beschrieben. Die einzelnen Eckpunkte werden durch eine Reihe von Koordinatenpaaren, geklammert und die einzelnen Koordinaten durch ein Komma getrennt, beschrieben. Die Reihe von Koordinatenpaaren folgt nach dem einleitenden Schlusselwort
`specialstructure', einem Doppelpunkt, einem beliebigen Namen fur die Spezialstruktur,
welcher durch ein Semikolon abgeschlossen wird, und dem Schlusselwort `position' sowie
einem weiteren Doppelpunkt. Die Reihe von Koordinatenpaaren wird durch ein Semikolon
beendet, wahrend zwischen je zwei Koordinatenpaaren ein Komma steht.
Mogliche Beispiele sind in Abbildung 7.6 und 7.7. Das Beispiel aus Abbildung 7.8, bei
dem der Rand der Sonderstruktur nicht mit dem Rand der Zellen in der Zellmatrix bundig
verlauft, ist unzulassig. */
specialstructure: RAM4k; position: (216,0),(378,0),(378,162),(216,162);
(Siehe Abbildung 7.6.)
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
117
/* Nach der Positionsbeschreibung durch eine Koordinatenpaarliste werden die einzelnen
Pins der Sonderstruktur beschrieben. Dies wird durch das Schlusselwort `pins' sowie
einem Doppelpunkt eingeleitet.
Es kann eine beliebige Liste von Pinbeschreibungen folgen, wobei ein Pin wie folgt beschrieben wird:
Anfangs steht ein individueller Name, der von einem Doppelpunkt gefolgt wird. Danach
steht ein `devicetype' der im Deklarationsteil angegeben wurde; hierbei kommt nur ein
`wire'- bzw. ein `contact'-type in Frage; es folgt ein Doppelpunkt. Anschlieend folgt
eine eventuell einelementige Liste von geklammerten Koordinatenpaaren. Die Koordinatenpaare sind jeweils durch ein Semikolon voneinander getrennt. Die Koordinatenpaare
geben an, an welchem Ort eine Anschlumoglichkeit auf dem vorher in Klammern angegebenen Layer fur das anfangs benannte Pin vorhanden ist.
Wenn eines der genannten wire- bzw. contact-Elemente benutzt wird, so werden die fur
die betreende Zelle angegebenen Designrules fur das entsprechende Element aktiviert.
Damit ist die Beschreibung eines Pins vollstandig und wird durch ein Semikolon abgeschlossen. */
pins:
port1:
port2:
port3:
port4:
wm1:
wm2:
wm1:
wm1:
(215,66); (215,67); (215,68);
(215,57);
(215,25);
(215,15);
/* Siehe Abbildung 7.9. */
/* Weitere Spezialstrukturen konnten durch einfache Wiederholung der oberen Beschreibungsform angegeben werden.
Sind alle Spezialstrukturen angegeben, so folgt schluendlich noch die Padliste.
Der Beginn der Liste wird durch das Schlusselwort `padlist' und einem Doppelpunkt
markiert. Die Pads sind alle durchnumeriert. Jedes Pad wird beginnend mit dem
Schlusselwort `pad' und einer darauolgenden Zahl sowie einem Doppelpunkt eingeleitet.
Anschlieend folgt eine Liste von Padtypen, wie sie im Deklarartionsteil angegeben sein
mussen. Hierbei konnen unterschiedliche Treiberstufen und Input- bzw. Outputbuer
fur ein und dasselbe Pad angegeben werden. Diese werden durch den jeweils gewahlten
`padtype' angegeben. Einem solchen `padtype' folgt die Angabe eines `contact'- oder
`wire'-Elementes und eine eventuell einelementige Koordinatenpaarliste welche die Anschlumoglichkeit(en) fur den genannten Padtreiber lokalisiert. Die beziehen sich auf den
durch den angegebenen `wire'- bzw. `contact'-type bestimmten Layer.
Anschlieend folgt ein Semikolon, wodurch die Padtreiberanschlumoglichkeit abgeschlos-
118
KAPITEL 7. ANHANG
sen wird. Fur ein Pad konnen im Prinzip beliebig viele Padtreiber mit ihren Anschlumoglichkeiten
genannt werden. */
padlist:
pad 1: PADin1: m1: (4,4); (5,4); (6,4); padout1: m1: (4,2);
/* Die Anschlumoglichkeiten fur einen genannten Padtreiber (siehe Abbildung 7.10) sind
entweder Wire- oder Kontaktelemente der auf die genannten Koordinaten fallenden Zelle.
Wenn eines der genannten wire- bzw. contact-Elemente benutzt wird, so werden die fur
die betreende Zelle angegebenen Designrules fur das entsprechende Element aktiviert.
noindent So wurden in Abbildung 7.10 beispielsweise die Wire-Elemente (3,1), (4,1), (3,2),
(3,3), (3,4), (4,3), (5,3), (5,4) fur Netze, die nicht mit `input' bzw. `output' verbunden
sind, ausfallen. Die Information, wo die physikalisch realisierten Padtreiber lokalisiert
sind, wird fur die Personalisierung des Gate-Arrays nicht benotigt; lediglich wo deren
Anschlue liegen. */
pad 2: PADin1: di: (30,10);
pad 3: PADout: poly: (50,10);
/* Nachdem das letzte Pad beschrieben wurde, ist die Gate-Array-Master-Beschreibung
vollstandig und sie wird durch das Schlusselwort `end', gefolgt von einem Punkt, beendet.
*/
end.
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
119
Vdd
25
20
15
10
5
Vss
0
0
5
10
15
20
25
Abbildung 7.1: Die schwarzen knochenformigen Bereiche stellen in der oberen Reihe die
Gates der p-MOS-Transistoren und unten die Gates der n-MOS-Transistoren dar. Bei
dieser Transistorzelle ist die Lage der Versorgungsleitungen vordeniert.
25
20
15
10
5
0
0
5
10
15
20
25
Abbildung 7.2: Die schwarzen knochenformigen Bereiche stellen in der oberen Reihe die
Gates der p-MOS-Transistoren und unten die Gates der n-MOS-Transistoren dar.
KAPITEL 7. ANHANG
120
5
4
3
2
1
1
2
3
4
5
Abbildung 7.3: Oben ist angezeigt, wie die Layoutregeln Mindestabstande und andere
Regeln beschreiben konnen. Beispielsweise konnen bei Benutzung des Rasterpunktes (2,3)
alle Nachbarrasterpunkte als unbenutzbar fur andere Netze beschrieben werden konnen.
1
2
3
4
5
6
7
8
Abbildung 7.4: An dem schwarzen Dreieck in jedem Rechteck lat sich erkennen, welcher
Spiegelung der unter dem Rechteck stehende Code entspricht. So entspricht Code 1 keiner
Spiegelung; Code 2 einer horizontalen Geradenspiegelung; Code 5 einer Spiegelung an der
ersten Winkelhalbierenden usw.
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
378
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
121
1
1
1
1
1
1
1
1
1
1
1
1
1
1
378
Abbildung 7.5: Hier sind die Zellnummern in den einzelnen Matrixelelementen eingetragen, wahrend die Orientierung der Zelle an der Orientierung des schwarzen Dreiecks
erkennbar ist.
KAPITEL 7. ANHANG
122
378
1
1
1
1
1
1
1
1
1
1
1
1
1
1
162
108
54
0
0
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
1
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
1
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
1
1
1
1
1
1
1
1
4k RAM
216 270 324 378
Abbildung 7.6: Hier sind die Zellnummern in den einzelnen Matrixelelementen eingetragen, wahrend die Orientierung der Zelle an der Orientierung des schwarzen Dreiecks
erkennbar ist.
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
378
1
1
1
1
1
1
1
1
1
1
1
1
1
1
216
162
108
54
0
0
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
1
1
2
1
2
1
2
1
1
2
3
2
3
2
1
1
2
1
2
1
1
2
3
2
3
2
123
1
1
1
1
1
1
4k RAM
216 270 324 378
Abbildung 7.7: Hier sind die Zellnummern in den einzelnen Matrixelelementen eingetragen, wahrend die Orientierung der Zelle an der Orientierung des schwarzen Dreiecks
erkennbar ist.
KAPITEL 7. ANHANG
124
378
1
1
1
1
1
1
1
1
1
1
1
1
1
1
148
108
54
0
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
0
1
2
3
2
3
2
3
2
3
2
3
2
3
1
1
1
2
1
2
1
2
1
2
1
2
1
2
1
1
2
3
2
3
2
3
2
3
1
1
2
1
2
1
2
1
2
1
2
3
2
3
2
3
2
3
1
1
2
1
2
1
2
1
2
1
2
3
2
3
2
3
2
3
1
1
1
1
1
1
1
1
1
4k RAM
216 270 324 378
Abbildung 7.8: Hier sind die Zellnummern in den einzelnen Matrixelelementen eingetragen, wahrend die Orientierung der Zelle an der Orientierung des schwarzen Dreiecks
erkennbar ist.
Port1
(m1)
67
4k RAM
60
Port2
(m2)
57
210
215
Abbildung 7.9: Auf dem Raster sind die moglichen Anschlusse von Port1 bzw. Port2
schraert. Der entsprechende Layer steht in Klammern unterhalb der Anschlunamen.
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
125
11
10
9
8
7
6
5
4
3
2
1
0
input
Pad
output
0 1 2 3 4 5 6 7 8
Abbildung 7.10: Auf dem Raster sind die moglichen Anschlusse von Port1 bzw. Port2
schraert. Der entsprechende Layer steht in Klammern unterhalb der Anschlunamen.
126
KAPITEL 7. ANHANG
7.3.2 Die Grammatik fur die Masterbeschreibungssprache
/* Die folgende Grammatik wird direkt von dem Parsergenerator `yacc' unter UNIX
verwendet.
Die grogeschriebenen Zeichenketten sind Terminalsymbole und entsprechen den gleichlautenden kleingeschriebenen Schlusselwortern in der Eingabedatei. Ausnahmen davon
sind nur die Terminalsymbole `NAME' und `NUMBER' welche fur eine bis zu 20 Zeichen
lange Zeichenkette stehen bzw. fur eine Integerzahl.
Durch `j' wird eine alternative rechte Seite einer Grammatikregel angefuhrt. */
start gambeschreibung ;
gambeschreibung : GATEARRAYMASTERDESCRIPTION '(' NAME ')' ';' deklarationsteil ;
mikroarchitektur makroarchitektur END ;
deklarationsteil : DECLARATIONPART ':' layertypelist devicetypeliste ;
layertypelist : LAYERTYPES ':' /* empty */
j layertype ;
layertype : LAYER NAME ';' ;
devicetypeliste : DEVICETYPES ':' /* empty */
j devicetypeliste devicetype ;
devicetype : NMOS NAME ':' GATEFANIN '=' NUMBER ';' SOURCEDRAINR '='
NUMBER ';'
j PMOS NAME ':' GATEFANIN '=' NUMBER ';' SOURCEDRAINR '=' NUMBER ';'
j BINPN NAME ';'
j BIPNP NAME ';'
j CONTACT NAME ':' LAYER1 '=' layer ',' '(' NUMBER ',' NUMBER ')' ';' LAYER2
'=' layer ',' '(' NUMBER ',' NUMBER ')' ';' R '=' NUMBER ';' C '=' NUMBER ';'
j WIRE NAME ':' LAYER '=' layer ';' '(' NUMBER ',' NUMBER ')' ';' R '=' NUMBER
';' C '=' NUMBER ';'
j OTHER NAME ':' pinliste ';'
j CROSSUNDER NAME ':' R '=' NUMBER ';' C '=' NUMBER ';'
j PADIN NAME ':' FANOUT '=' NUMBER ';'
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
j PADOUT NAME ':' FANIN '=' NUMBER ';'
j PAD3STATE NAME ':' FANIN '=' NUMBER ';'
j VSS NAME ':' LAYER '=' layer ';' '(' NUMBER ',' NUMBER ')' ';'
j VDD NAME ':' LAYER '=' layer ';' '(' NUMBER ',' NUMBER ')' ';' ;
pinliste : /* empty */
j pinliste ',' NAME ;
mikroarchitektur : MICROARCHITECTURE ':' zelliste ;
zelliste : /* empty */
j zelliste zelle ;
zelle : cellsize deviceliste constraintrules ;
cellsize : CELL NUMBER ':' NAME '(' NUMBER X NUMBER ')' ':' ;
deviceliste : /* empty */
j deviceliste device ;
device : CONT ':' NAME '(' devdeclarename ')' ':' koordliste connected
j WIRE ':' NAME '(' devdeclarename ')' ':' koord ';'
j WIREARRAY ':' NAME '(' devdeclarename ')' ':' koord ',' koord ';'
j CONTACTARRAY ':' NAME '(' devdeclarename ')' ':' koord ',' koord ';' ;
connected : /* empty */
j CONNECTED ':' connectpinliste ';' ;
connectpinliste : /* empty */
j connectpinlist ;
connectpinlist : connectpin
j connectpinlist ',' connectpin ;
connectpin : devicetypedeclarename ':' NAME '(' dtypdeclpin ')' ;
constraintrules : CONSTRAINTRULES ':' /* empty */
j constraintrules constraintrule ;
constraintrule : constraintrulehead constraintruletail ;
constraintrulehead : NAME ':' ;
127
128
KAPITEL 7. ANHANG
constraintruletail : samenodeconstraints dinodeconstraints ruleapplications j DEFINEDABOVE ';' ruleapplications ;
samenodeconstraints : /* empty */
j SN ':' layerconstraintlistSN ;
dinodeconstraints : /* empty */
j DN ':' layerconstraintlistDN ;
layerconstraintlistSN : layerconstraintsSN
j layerconstraintlistSN layerconstraintsSN ;
layerconstraintsSN : layername constraintcoordlistSN ;
layername : LAYER NAME ':' ;
constraintcoordlistSN : /* empty */
j constraintcoordlistSN ABSOLUT NUMBER ',' NUMBER ';'
j constraintcoordlistSN RELATIVE NUMBER ',' NUMBER ';' ;
layerconstraintlistDN : layerconstraintsDN
j layerconstraintlistDN layerconstraintsDN ;
layerconstraintsDN : layername constraintcoordlistDN ;
constraintcoordlistDN : /* empty */
j constraintcoordlistDN ABSOLUT NUMBER ',' NUMBER ';'
j constraintcoordlistDN RELATIVE NUMBER ',' NUMBER ';' ;
ruleapplications : TOAPPLYTO ':' /* empty */
j ruleapplications ruleapplication ;
ruleapplication : layerapplicationname applicationcoordlist ;
layerapplicationname : LAYER NAME ;
applicationcoordlist : /* empty */
j applicationcoordlist applicationcoord ;
applicationcoord : NUMBER ',' NUMBER ';'
j NUMBER ',' NUMBER '.' '.' '.' NUMBER ',' NUMBER ';' ;
makroarchitektur : MACROARCHITECTURE ':' chipsize ';' zellperioden sonderstrukturenliste PADLIST ':' padliste;
MASTER-STRUKTUREN
7.3. DIE BESCHREIBUNGSSPRACHE FUR
129
chipsize : CHIPSIZE ':' NUMBER X NUMBER ;
zellperioden : vertikalgeszahl unterstreihe VERTICALPERIODE ':' horiperiodenliste oberstreihe ;
vertikalgeszahl : ROWNUMBER '=' NUMBER ';' ;
unterstreihe : LOWERROW ':' horiperiode ;
oberstreihe : UPPERROW ':' horiperiode ;
horiperiodenliste : horiperiodliste horiperiode ;
horiperiodliste : /* empty */
j horiperiodliste horiperiode ;
horiperiode : horigeszahl ':' LEFTCELL ':' zellanordnung PERIODE ':' zellperiode
RIGHTCELL ':' zellanordnung ;
horigeszahl : CELLNUMBER '=' NUMBER ;
zellperiode : zellperiod zellanordnung '&' ;
zellperiod : /* empty */
j zellperiod zellanordnung ;
zellanordnung : C NUMBER ',' spiegelcode ';' ;
spiegelcode : NUMBER ;
sonderstrukturenliste : /* empty */
j sonderstrukturenliste sonderstruktur ;
sonderstruktur : SPECIALSTRUCTURE ':' NAME ';' POSITION ':' polygon ';' PINS
':' sonderpinliste ;
polygon : koord
j polygon ',' koord ;
sonderpinliste : /* empty */
j sonderpinliste sonderpin ;
sonderpin : NAME ':' anschlussliste ;
130
anschlussliste : /* empty */
j anschlussliste anschluss ';' ;
anschluss : devdeclarename ':' koordlist ;
padliste : /* empty */
j pad padliste ;
pad : PAD NUMBER ':' padtypenameliste ;
padtypenameliste : /* empty */
j padtypenameliste padtypename koord ',' layer ';' ;
koordliste: /* empty */
| koordliste koord ';' ;
koord : '(' NUMBER ',' NUMBER ')' ;
padtypename : NAME ;
devtypename : NAME ;
devdeclarename : NAME ;
devdeclaretyp : NAME ;
devicetypedeclarename : NAME ;
dtypdeclpin : NAME ;
layer : NAME ;
KAPITEL 7. ANHANG
GGADS
7.4. BEDIENUNGSANLEITUNG FUR
131
7.4 Bedienungsanleitung fur GGADS
In diesem Abschnitt wird eine Kurzanleitung zur Bedienung des Systems GGADS gegeben. Das System besteht aus den beiden Teilen Makrogenerator und Plazierungs- und
Verdrahtungsmodul.
Der Makrogenerator
Die Master-Struktur mu in einer Datei mit der Extension `.master' stehen. Die Transistornetzliste fur die Makros mussen in der Datei `macronodelist' stehen.
Zur Generierung der Makros wird das Kommando
macs fn'
gegeben. Der Makrogenerator erzeugt daraufhin eine Datei namens `fn.macgrdpts', in der
die Makros beschrieben sind.
Anschlieend kann das Plazierungs- und Verdrahtungsmodul gestartet werden:
Das Plazierungs- und Verdrahtungsmodul
Die Kommandozeile hat die folgende Syntax:
GGADS fnmaster [-mlLNcrMRSfPT] fnnetlist [-mlLNcrMRSfPT]
wobei jede Option mit einem eigenen `-' beginnen mu.
Die Optionen bedeuten im einzelnen:
-m : Verschmelzt jeweils vier nebeneinander liegende Partitionen zu einer Partition. Dies
eignet sich fur den Fall, da in einer nalen Partition zu wenig Elemente fur die lokale
Plazierung und Verdrahtung sein sollten.
-l : beginnt unmittelbar mit der lokalen Plazierung und Verdrahtung. Die globale Plazierung und Verdrahtung wird ubersprungen. Dies ist nur moglich, wenn die globale
Plazierung und Verdrahtung bereits in den entsrechenden Dateien in dem Verzeichnis '/tmp' durch fruhere Laufe der globalen Plazierung und Verdrahtung erzeugt
wurden.
-L n: Fullt jede Partition bei der lokalen Plazierung nur hochstens mit 100+n % der
ursprunglich vorgesehenen Knotenmenge.
Default: MAXINT
-N n: Fullt jede Partition bei der lokalen Plazierung nur solange die nach oben hinausfuhrenden Netze hochstens n % der zur Verfugung stehenden Verdrahtungsspuren belegen.
Default: 100
-f n: Setzt die Zahl der Laufe durch die SQP-Heuristik auf jeder Stufe der rekursiven
Partitionierung auf n.
Default: 3
132
KAPITEL 7. ANHANG
-S n: Setzt die Anzahl der Iterationen beim der Berechnung von einer ausgeglichenen
globalen Plazierung auf n.
Default: 1
-c n: setzt die Haufungsausgleichsvariable. es dient dazu, um in der Mitte des Chips weniger Knoten anzusiedeln, als am Rand. In der Mitte des Chips sollte je nach Schaltungstyp unterschiedlich viel Platz fur die durchzufuhrenden Leitungen freigehalten
werden. n > 100 bedeutet, da die Mittelpartitionen gegenuber den Randpartitionen uberproportional viele Knoten beinhalten.
Default: 100
-u n: setzt die `rechts-links-Ausgleichsvariable'. n > 0 bedeutet, da die Partitionen auf
der rechten Seite des Chips mehr Knoten beinhalten als die Partitionen auf der
linken Seite.
Default: 0
-V : Via darf ueber einem Kontaktloch liegen.
-P : Versucht bei Plazierung die Pins in umgekehrter Reihenfolge anzuschliessen, falls
die Originalreihenfolge fehlschlagt.
7.5. DIE NETZLISTENFORMATE
133
7.5 Die Netzlistenformate
In diesem Abschnitt werden Beispiele fur die Formate der Netzliste sowie fur die Transistornetzlisten der einzelnen Makrofunktionen angegeben.
7.5.1 Beispiel fur die Netzliste
1000 1000
0 3 3 42 38 899
1 3 3 384 80 820
2 2 2 597 604
3 4 4 162 652 482 775
...
...
...
997 2 2 299 467
998 4 4 261 674 466 520
999 3 3 664 150 170
ENDE
Die Netzliste beginnt mit zwei Zahlen - die erste gibt die Anzahl der vorhandenen Knoten
und die zweite die Zahl der vorhandenen Netze der Netzliste an. Anschlieend ist in
jeder Zeile ein Knoten wie folgt beschrieben: Zuerst ist die Knotennummer zu dessen
Identikation angegeben, gefolgt von dem Knotentyp (Ebenfalls ein positive ganze Zahl).
Darauolgend kommt die Zahl der Pins und eine Liste von Netznummern, wobei die Netze
in der ihrer Reihenfolge den einzelnen Pins des Knotens zugeordnet sind.
Die Netzlistenbeschreibung endet mit dem Schlusselwort `ENDE'.
134
7.5.2 Beispiel fur die Transistornetzliste
MACROTYPE: 2 /* CMOS-Inverter */
123134
213234
extern
234
MACROTYPE: 3 /* CMOS-2-NAND */
123135
223145
313635
413246
extern
3345
usw.
KAPITEL 7. ANHANG
Danksagung
Die vorliegende Arbeit ist wahrend meiner Zeit als wissenschaftlicher Mitarbeiter am
Fachbereich Informatik der Technischen Universitat Berlin von 1986-1991 entstanden.
Bereits wahrend meiner Studienzeit an der TU Berlin hatte ich ein Interesse an den Problemen der Entwurfsautomatisierung bei dem Entwurf integrierter Schaltkreise gewonnen.
Mein besonderer Dank gilt Prof. Dr. H.-U. Post fur seine zahlreichen konstruktiven
Vorschlage und sein Fachwissen, das er in Diskussionen einiessen lie.
Prof. Dr. O. Manck danke ich fur fachlichen Diskussionen uber Entwurfsmethodik und
die Moglichkeit mit dem System TANGATE zu arbeiten. Martin Rose danke ich in diesem
Zusammenhang fur die Hilfestellung bei dem Umgang mit dem System TANGATE.
Meinem langjahrigen Kollegen und Freund Bernd Freier danke ich ganz herzlich fur die
ursprungliche Motivation eine Arbeit auf dem Gebiet der Entwurfsautomatisierung zu
schreiben. Weiterhin mu ich mich fur die vielen fruchtbaren fachlichen Diskussionen
uber Entwurfsautomatisierungsverfahren im allgemeinen und uber Plazierungsprobleme
im Besonderen bedanken. Gleichermaen gebuhrt ihm ein groes Dankeschon fur die
kompetenten praktischen Ratschlage und Unterstutzungen bei dem Umgang mit Softund Hardware der Fachgruppe Rechnertechnologie.
Abschlieend mochte ich meinen Eltern danken, die mich wahrend meiner Studien- und
Doktorandenzeit in vielerlei Hinsicht unterstutzt haben.
135
KAPITEL 7. ANHANG
136
Tabellarischer Lebenslauf
Name:
Geboren:
Eltern:
24.02.1962
Schulbildung: 1968-1972
1972-1978
1978-1981
Juni 1981
Achim Gunter Homann
in Backnang
Hans Homann (Dipl.-Phys.)
Helga Homann (Kfm. Ang.)
Grundschule Boblingen
Gymnasium Boblingen
Wirtschaftsgymnasium Boblingen
Erwerb der allgemeinen Hochschulreife
Studium:
1981 - 1985 Studium der Informatik an der TU Berlin
Juli 1985
Diplom-Informatiker
Beruf:
1985 - 1986 Lehrbeauftragter am Institut
fur Angewandte Informatik der TU Berlin
1986 - 1991 Wissenschaftlicher Mitarbeiter am Institut
fur Angewandte Informatik der TU Berlin