gliederung kapitel 3 – · pdf filelayoutsynthese elektronischer schaltungen –...
TRANSCRIPT
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 1
Gliederung Kapitel 3 – Floorplanning
3.1 Einführung
3.2 Optimierungsziele
3.3 Begriffe und Datenstrukturen
3.4 Algorithmen für das Floorplanning3.4.1 Floorplan-Sizing-Algorithmus3.4.2 Cluster-Wachstums-Algorithmus (Cluster Growth)3.4.3 Weitere Algorithmen für das Floorplanning
3.5 Pinzuordnung (Pin Assignment)3.5.1 Problembeschreibung3.5.2 Pinzuordnung mittels konzentrischer Kreise3.5.3 Topologische Pinzuordnung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 2
3.1 Einführung
VerhaltensentwurfLogischer Entwurf
Layoutsynthese
Layoutverifikation
Chip
Floorplanning
Platzierung
Verdrahtung
Kompaktierung
ENTITY test isport a: in bit;
end ENTITY test;Partitionierung
Herstellung
Systemspezifikation
Architekturentwurf
Schaltungsentwurf
Verpackung/Test
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 3
3.1 Einführung
Die Aufgabe des Floorplanning besteht darin, das Ergebnis der Schaltungspartitionierung so aufzubreiten, dass jeder dabei erstellte Block intern platziert und verdrahtet werden kann. Dazu sind i.Allg.
die Abmessungen bzw. Seitenverhältnisse der einzelnen Blöcke, und evtl. auch der Topzelle, festzulegen,
die Positionen der Außenanschlüsse in den einzelnen Blöcken zu bestimmen (Pinzuordnung) und
die Positionen dieser Blöcke innerhalb der Topzelle zu definieren.
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 4
3.1 Einführung
Gegeben: Drei Blöcke mit folgenden Seitenverhältnissen (Breite w, Höhe h) Block A: w = 1, h = 4 oder w = 4, h = 1 oder w = 2, h = 2 Block B: w = 1, h = 2 oder w = 2, h = 1 Block C: w = 1, h = 3 oder w = 2, h = 2 oder w = 4, h = 1 Gesucht: Floorplan mit minimaler Gesamtfläche der Topzelle
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 5
3.1 Einführung
Gegeben: Drei Blöcke mit folgenden Seitenverhältnissen (Breite w, Höhe h) Block A: w = 1, h = 4 oder w = 4, h = 1 oder w = 2, h = 2 Block B: w = 1, h = 2 oder w = 2, h = 1 Block C: w = 1, h = 3 oder w = 2, h = 2 oder w = 4, h = 1 Gesucht: Floorplan mit minimaler Gesamtfläche der Topzelle Lösung: Seitenverhältnisse Block A mit w = 2, h = 2; Block B mit w = 2, h = 1; Block C mit w = 1, h = 3 Mögliche Anordnung der Blöcke: Damit entspricht diese Lösung dem theoretischen Optimum (neun Flächeneinheiten).
A
B
C
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 6
3.2 Optimierungsziele
Fläche und Form des umschließenden Rechtecks
Gesamtverbindungslänge
Fläche und Gesamtverbindungslänge
Signalverzögerungen (Performance-driven, Timing-driven)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 7
3.2 Optimierungsziel: Fläche und Form des umschließenden Rechtecks
Flächenminimale Topzelle angestrebt
Soft Blocks: Flächenminimierung der Topzelle erfolgt unter Ausnutzung der Flexibilität in den Formen der einzelnen Blöcke, denn diese lassen sich dann flächenminimal anordnen, wenn man ihre Formen zueinander passend gestaltet
Hard Blocks: Keine Flexibilität der Blockformen („Bin Packing Problem“)
Evtl. Einhalten von Formvorgaben an Topzelle
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 8
P1
P2
3.2 Optimierungsziel: Gesamtverbindungslänge
Minimierung der Toplevel-Verdrahtung angestrebt
Längenbestimmung über Manhattan-Entfernung (Manhattan-Metrik)
Längenbestimmung über minimalen Spannbaum (euklidische Metrik)
n nn yyxxPP 121221 ),(Abstand
Euklidische Metrik Manhattan-Metrik
n=1 für Manhattan-Metrikn=2 für euklidische Metrik
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 9
Kapitel 3 – Floorplanning
3.1 Einführung
3.2 Optimierungsziele
3.3 Begriffe und Datenstrukturen
3.4 Algorithmen für das Floorplanning3.4.1 Floorplan-Sizing-Algorithmus3.4.2 Cluster-Wachstums-Algorithmus (Cluster Growth)3.4.3 Weitere Algorithmen für das Floorplanning
3.5 Pinzuordnung (Pin Assignment)3.5.1 Problembeschreibung3.5.2 Pinzuordnung mittels konzentrischer Kreise3.5.3 Topologische Pinzuordnung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 10
Flexible Blöcke (Soft blocks) , feste Blöcke (Hard blocks)
3.3 Begriffe und Datenstrukturen
Blöcke mit variablen Formen, bei denen nur die Flächen vorgegeben sind, werden als flexible Blöcke bezeichnet
Bei festen Blöcken ist die äußere Form festgelegt
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 11
B
D
AE
CA
BC
D
E
Basiszellen sind nichtausschließlich durch vertikale oder horizontale Zweiteilung entstanden
Mindestens fünf Basiszellen, sog. Rad (Wheel)
Geschnittener Floorplan(Slicing floorplan)
Ungeschnittener Floorplan(Non-slicing floorplan)
Basiszellen sind durch (wiederholte) vertikale oder horizontale Zweiteilung entstanden
B
DA
E
C
F
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 12
Floorplan l-ter Ordnung
Ein Floorplan besitzt die Ordnung l, wenn er durch Teilung eines Rechtecks in maximal l Teile entstanden ist.
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 13
A
B
C
D
E
F
G
Floorplan l-ter Ordnung
Ordnung 5
Geschnittener (Slicing) Floorplan: Ordnung 2
Ungeschnittener (Non-slicing) Floorplan: mindestens Ordnung 5
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 14
Schnittbaum (Slicing tree)
Ein Schnittbaum ist die Modellierung eines geschnittenen Floorplans durch einen Binärbaum mit k Blättern und k-1 Knoten
Jeder Knoten repräsentiert dabei eine Schnittlinie und jedes Blatt einen Block
Wesentliches Merkmal eines Schnittbaums ist seine Binärstruktur, d.h. jeder Knoten hat genau zwei Kinder
A
B C
H
A V
B C
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 15
H
V
A
B
C H
D VD
E F
H
B
A
E
C
F
Schnittbaum (Slicing tree)
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 16
H
V
A
B
C H
D VD
E F
H H
V
A B D H
C V
E F
H
B
A
E
C
F
Schnittbaum (Slicing tree)
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 17
Umgekehrte polnische Notation (Polish expression)
Operatoren V und H +
Durchlaufen des Schnittbaumes in „umgekehrter Richtung“ („Bottom-up-Bauplan“)
Länge 2n-1 (n = Anzahl der Blätter im Schnittbaum)
AB+CDEF++
H
V
A C H
D V
E F
H
B
F
+
A C +
D
E
+
B
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 18
Normalized Polish Expression (NPE)
Vermeidung von Redundanzen bei Floorplan-Abbildung
NPE: Keine zwei aufeinander folgende Operatoren sind identisch
Verdrehter Schnittbaum (Skewed slicing tree): Schnittrichtung des rechten Teilbaums immer verschieden von Vorgängerknoten
AB+DEF+C+
B
DA
E
C
F +
A C+
D
E F
+
B+
A C +
D
E
+
B
F
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 19
Floorplanbaum (Floorplan tree)
Jeder hierarchische Floorplan (geschnitten und ungeschnitten) kann durch einen Floorplanbaum repräsentiert werden
Jedes Blatt verkörpert dabei einen Block, jeder Knoten entweder einen vertikalen bzw. horizontalen Schnittoperator oder ein Rad
Binäre Schnittbäume (Slicing trees) sind damit Untermengen der Floorplanbäume
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 20
Floorplanbaum (Floorplan tree)
3.3 Begriffe und Datenstrukturen
H
H
H W H I
A B C D E F G
A
B
C
D
E
F
G
H
I
V
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 21
Polargraph (Polar graph)
Blöcke als Kanten abgebildet, Schnittkanten als Knoten
Besteht aus zwei direkten Graphen
– Vertikaler Polargraph:Knoten sind horizontale Schnittkanten, Kanten dazwischen liegende Blöcke
– Horizontaler Polargraph:Knoten sind vertikale Schnittkanten, Kanten dazwischen liegende Blöcke
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 22
3.3 Begriffsbestimmungen
A
B
C
D
E
F
G
H
I
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 23
3.3 Begriffsbestimmungen
DB
G
E
I
H
AC
F
Vertikaler Polargraph
A
B
C
D
E
F
G
H
I
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 24
3.3 Begriffsbestimmungen
A,B C G E
D F
H,I
DB
G
E
I
H
AC
F
Horizontaler Polargraph
Vertikaler Polargraph
A
B
C
D
E
F
G
H
I
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 25
Sequence Pair
Zwei Folgen von Blocknamen, aus denen sich Blockanordnung eindeutig ableiten lässt
Beispiel: (ABDCE, CBAED)
Angabe der horizontalen bzw. vertikalen Lagebeziehung:
(… X … Y … , … X … Y …) → X ist links von Y platziert(… X … Y … , … Y … X …) → X ist oberhalb von Y platziert(… Y … X … , … X … Y …) → X ist unterhalb von Y platziert(… Y … X … , … Y … X …) → X ist rechts von Y platziert
C
A
B
D
E
3.3 Begriffe und Datenstrukturen
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 26
Kapitel 3 – Floorplanning
3.1 Einführung
3.2 Optimierungsziele
3.3 Begriffe und Datenstrukturen
3.4 Algorithmen für das Floorplanning3.4.1 Floorplan-Sizing-Algorithmus3.4.2 Cluster-Wachstums-Algorithmus (Cluster Growth)3.4.3 Weitere Algorithmen für das Floorplanning
3.5 Pinzuordnung (Pin Assignment)3.5.1 Problembeschreibung3.5.2 Pinzuordnung mittels konzentrischer Kreise3.5.3 Topologische Pinzuordnung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 27
3.4 Algorithmen für das Floorplanning
Floorplan-Sizing-Algorithmus (flexible Blöcke, soft blocks)
Cluster-Wachstums-Algorithmus (feste Blöcke, hard blocks)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 28
3.4.1 Floorplan-Sizing-Algorithmus: Begriffe
Formfunktionen
Blöcke mit flexiblen Abmessungen sind durch Flächenvorgabe A bestimmt
Damit haben, unabhängig von der Form des Blocks, die Höhe h und die Breite w der Randbedingung ha*aw A zu genügen
Abhängigkeit zwischen Höhe und Breite eines Blocks (z.B. Höhe als Funktion der Breite) wird als Formfunktion (Shape function) des Blocks bezeichnet
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 29
3.4.1 Floorplan-Sizing-Algorithmus: Begriffe
ErlaubteBlockformen
ErlaubteBlockformen
w
h
w
h
Nac
h G
erez
, S. H
.: A
lgor
ithm
s fo
r VLS
I Des
ign
‚Aut
omat
ion,
Wile
y, 2
000
Formfunktionen
Mit minimalen Höhen- undBreitenbeschränkungen
ha*aw A
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 30
3.4.1 Floorplan-Sizing-Algorithmus: Begriffe
w
h
Bibliotheksblock mit zwei Anordnungsmöglichkeiten
Formfunktionen
Nac
h G
erez
, S. H
.: A
lgor
ithm
s fo
r VLS
I Des
ign
‚Aut
omat
ion,
Wile
y, 2
000
w
h
Mit diskreten Höhen- und Breitenwerten
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 31
3.4.1 Floorplan-Sizing-Algorithmus: Begriffe
Eckwerte
Die einzelnen diskreten Form-Möglichkeiten eines Blocks, die sich als „äußere“ Eckpunkte in der Formfunktion widerspiegeln, werden als Eckwerte (Break points) der Formfunktion bezeichnet
w
h
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 32
3.4.1 Floorplan-Sizing-Algorithmus: Begriffe
5
2
2
5
2 5
2
5
Eckwerte
w
h
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 33
3.4.1 Floorplan-Sizing-Algorithmus
Algorithmus
1. Ermittlung der Formfunktionen aller in der Topzelle anzuordnenden Blöcke.
2. Ermittlung der Formfunktion der Topzelle mit einer Bottom-up-Strategie, bei der vom niedrigsten Blockniveau ausgehend, die Formfunktionen der Blöcke kombiniert werden; Ermittlung der optimalen Größe bzw. Form der Topzelle.
3. Von der Formfestlegung der Topzelle ausgehend, wird der Schnittbaum nach „unten“ (Top down) abgearbeitet und dabei die jeweilige zusammengesetzte Blockform ermittelt, bis sämtliche (Basis-) Blöcke erreicht sind.
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 34
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
4
2
2
4
Block B:
Block A:
55
3
3
1. Ermitteln der Formfunktionen der Blöcke
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 35
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
4
2
2
4
Block B:
Block A:
55
3
3
w2 6
2
4
h
4
6
1. Ermitteln der Formfunktionen der Blöcke
5
3
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 36
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
4
2
2
4
Block B:
Block A:
55
3
3
w2 6
2
4
h
4
6
hA(w)
1. Ermitteln der Formfunktionen der Blöcke
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 37
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
4
2
2
4
Block B:
Block A:
55
3
3
hB(w)
w2 6
2
4
h
4
6
hA(w)
1. Ermitteln der Formfunktionen der Blöcke
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 38
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
hB(w)hA(w)
8
2. Ermitteln der Formfunktion der Topzelle (vertikale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 39
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
hB(w)hA(w)
8
2. Ermitteln der Formfunktion der Topzelle (vertikale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 40
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
w2 6
2
4
h
4
6
hB(w)hA(w)
hB(w)hA(w)
hC(w)
88
2. Ermitteln der Formfunktion der Topzelle (vertikale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 41
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
w2 6
2
4
h
4
6
hB(w)hA(w)
hB(w)hA(w)
hC(w)
5 x 5
88
2. Ermitteln der Formfunktion der Topzelle (vertikale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 42
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
w2 6
2
4
h
4
6
hB(w)hA(w)
hB(w)hA(w)
hC(w)
3 x 9
4 x 7
5 x 5
88
2. Ermitteln der Formfunktion der Topzelle (vertikale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 43
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
w2 6
2
4
h
4
6
hB(w)hA(w)
hB(w)hA(w)
hC(w)
3 x 9
4 x 7
5 x 5
88
2. Ermitteln der Formfunktion der Topzelle (vertikale Zusammensetzung)
Minimale Topzellen-Flächebei vertikaler Zusammensetzung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 44
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
hA(w)hB(w)
8
2. Ermitteln der Formfunktion der Topzelle (horizontale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 45
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
hA(w)hB(w)
8
2. Ermitteln der Formfunktion der Topzelle (horizontale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 46
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
w2 6
2
4
h
4
6
hA(w)hB(w) hC(w)hA(w)hB(w)
88
2. Ermitteln der Formfunktion der Topzelle (horizontale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 47
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
w2 6
2
4
h
4
6
hA(w)hB(w) hC(w)hA(w)hB(w)
9 x 3
88
2. Ermitteln der Formfunktion der Topzelle (horizontale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 48
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
w2 6
2
4
h
4
6
hA(w)hB(w) hC(w)hA(w)hB(w)
9 x 3
7 x 4
5 x 5
88
2. Ermitteln der Formfunktion der Topzelle (horizontale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 49
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
w2 6
2
4
h
4
6
hA(w)hB(w) hC(w)hA(w)hB(w)
9 x 3
7 x 4
5 x 5
88
2. Ermitteln der Formfunktion der Topzelle (horizontale Zusammensetzung)
Minimale Topzellen-Flächebei horizontaler Zusammensetzung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 50
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
8
3. Formfestlegung von Topzelle und Blöcken(horizontale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 51
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
1. Minimale Fläche der Topzelle: 5 x 5
8
3. Formfestlegung von Topzelle und Blöcken(horizontale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 52
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
1. Minimale Fläche der Topzelle: 5 x 5
2. Abgeleitete Blockformen: 2 x 4 und 3 x 5
8
3. Formfestlegung von Topzelle und Blöcken(horizontale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 53
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
w2 6
2
4
h
4
6
1. Minimale Fläche der Topzelle: 5 x 5
2. Abgeleitete Blockformen: 2 x 4 und 3 x 5
2 x 4 3 x 5
5 x 5
8
3. Formfestlegung von Topzelle und Blöcken(horizontale Zusammensetzung)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 54
3.4.1 Floorplan-Sizing-Algorithmus: Beispiel
Resultierender Schnittbaum
2 x 4 3 x 5
5 x 5
B
V
AB A
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 55
3.4.2 Cluster-Wachstum (Cluster Growth)
w
h
Topzelle w x h
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 56
3.4.2 Cluster-Wachstum: Lineare Anordnung
…
Endende Netze Neue Netze
Weitergeführte Netze
Lineare Blockanordnung mit dem Ziel der Minimierung der Netze, die bei einem beliebigen Schnitt durch diese Blockfolge aufzutrennen sind
Drei Netzklassen für jeden Block:
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 57
3.4.2 Cluster-Wachstum: Lineare Anordnung
Reihenfolge der Blockanordnung ergibt sich aus der jeweiligen Anzahl der Netze innerhalb der mit einem Block verbundenen Netzklassen
Gewinn (Gain) eines Blockes m:Gainm = (Anzahl der in m endenden Netze) – (von m ausgehende neue Netze)
Es wird immer der Block mit höchstem Gain, der also mehr Netze abschließt als jeder andere Block, als nächster platziert
A B
N1
N4
GainB = 1 (N1) – 1 (N4) = 0
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 58
3.4.2 Cluster-Wachstum: Lineare Anordnung
Algorithmus zur linearen Anordnung S : Menge aller Blöcke Order: Reihenfolge der Blöcke /* anfangs leer */ Begin
Seed = Auswahl eines Anfangsblocks Order = [Seed] S = S – { Seed } Repeat
ForEach Block m S Do Ermitteln des Gewinns (Gain) des aktuellen Blocks m Gainm =(Anzahl der in m endenden Netze)–(von m ausgehende neue Netze)
End ForEach Auswahl des Blocks m* mit maximalem Gewinn Gainm If Gleichheit Then
Auswahl des Blocks, der die meisten Netze beendet ElseIf Gleichheit Then
Auswahl des Blocks mit der größten Anzahl ausgehender Netze ElseIf Gleicheit Then
Auswahl des Blocks mit der geringsten Anzahl von Verbindungen Else
Willkürliche Auswahl eines Blocks Order = [!Order, m* ] /* Hinzufügen von m* zur existierenden Folge */ S = S – { m* }
Until S = End.
Nac
h S
ait,
S. M
., Yo
usse
f, H
.: V
LSI P
hysi
cal D
esig
n A
utom
atio
n
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 59
3.4.2 Cluster-Wachstum: Lineare Anordnung – Beispiel
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 60
3.4.2 Cluster-Wachstum: Lineare Anordnung – Beispiel
Gegeben: – Netzliste mit fünf Blöcken A, B, C, D, E und sechs Netzen
N1 = {A, B} N2 = {A, D} N3 = {A, C, E} N4 = {B, D} N5 = {C, D, E} N6 = {D, E}
– Anfangsblock: A
Gesucht: Lineare Anordnung mit minimalen Netzkosten
A B C D E
N1
N2
N3
N4
N5
N6
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 61
Schritt #
Blöcke Neue Netze Endende Netze
Gewinn (Gain)
Weitergeführte Netze
A B C D E
N1
N2
N3
N4
N5
N6
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 62
Schritt #
Blöcke Neue Netze Endende Netze
Gewinn (Gain)
Weitergeführte Netze
0 A N1, N2, N3 - -3 -
A B C D E
N1
N2
N3
N4
N5
N6
Geg.: Anfangsblock A
GainA = (Anzahl der in A endenden Netze) – (von A ausgehende neue Netze)
A B D E C
N1
N2
N3N4 N5
N6
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 63
Schritt #
Blöcke Neue Netze Endende Netze
Gewinn (Gain)
Weitergeführte Netze
0 A N1, N2, N3 - -3 - 1 B
C D E
N4 N5 N4, N5, N6 N5, N6
N1 - N2 -
0 -1 -2 -2
- N3 - N3
C
A B C D E
N1
N2
N3
N4
N5
N6
A B D E C
N1
N2
N3N4 N5
N6
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 64
Schritt #
Blöcke Neue Netze Endende Netze
Gewinn (Gain)
Weitergeführte Netze
0 A N1, N2, N3 - -3 - 1 B
C D E
N4 N5 N4, N5, N6 N5, N6
N1 - N2 -
0 -1 -2 -2
- N3 - N3
A B C D E
N1
N2
N3
N4
N5
N6
A B D E C
N1
N2
N3N4 N5
N6
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 65
Schritt #
Blöcke Neue Netze Endende Netze
Gewinn (Gain)
Weitergeführte Netze
0 A N1, N2, N3 - -3 - 1 B
C D E
N4 N5 N4, N5, N6 N5, N6
N1 - N2 -
0 -1 -2 -2
- N3 - N3
2 C D E
N5 N5, N6 N5, N6
- N2, N4 -
-1 0 -2
N3 - N3
A B C D E
N1
N2
N3
N4
N5
N6
A B D E C
N1
N2
N3N4 N5
N6
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 66
Schritt #
Blöcke Neue Netze Endende Netze
Gewinn (Gain)
Weitergeführte Netze
0 A N1, N2, N3 - -3 - 1 B
C D E
N4 N5 N4, N5, N6 N5, N6
N1 - N2 -
0 -1 -2 -2
- N3 - N3
2 C D E
N5 N5, N6 N5, N6
- N2, N4 -
-1 0 -2
N3 - N3
A B C D E
N1
N2
N3
N4
N5
N6
A B D E C
N1
N2
N3N4 N5
N6
N5
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 67
Schritt #
Blöcke Neue Netze Endende Netze
Gewinn (Gain)
Weitergeführte Netze
0 A N1, N2, N3 - -3 - 1 B
C D E
N4 N5 N4, N5, N6 N5, N6
N1 - N2 -
0 -1 -2 -2
- N3 - N3
2 C D E
N5 N5, N6 N5, N6
- N2, N4 -
-1 0 -2
N3 - N3
3 C E
- -
- N6
0 +1
N3, N5 N3, N5
A B C D E
N1
N2
N3
N4
N5
N6
A B D E C
N1
N2
N3N4 N5
N6
N5
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 68
Schritt #
Blöcke Neue Netze Endende Netze
Gewinn (Gain)
Weitergeführte Netze
0 A N1, N2, N3 - -3 - 1 B
C D E
N4 N5 N4, N5, N6 N5, N6
N1 - N2 -
0 -1 -2 -2
- N3 - N3
2 C D E
N5 N5, N6 N5, N6
- N2, N4 -
-1 0 -2
N3 - N3
3 C E
- -
- N6
0 +1
N3, N5 N3, N5
4 C - N3, N5, +2 -
A B C D E
N1
N2
N3
N4
N5
N6
A B D E C
N1
N2
N3N4 N5
N6
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 69
3.4.2 Cluster-Wachstum: Lineare Anordnung – Beispiel
A B D E C
N1
N2
N3N4 N5
N6
A B C D E
N1
N2
N3
N4
N5
N6
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 70
3.4.2 Cluster-Wachstum
Cluster-Wachstums-Algorithmus S : Menge aller Blöcke Rest: Menge aller noch nicht platzierten Blöcke Begin
Order = Algorithmus zur linearen Anordnung (S) Repeat
nextBlock = b aus Order = [b, !Rest] Order = Rest Platzierung und Orientierung von b mit minimaler Erhöhung der Kosten /* Kosten ergeben sich aus Größe bzw. Form der Topzelle, Verbindungslänge usw. */
Until Order = End.
Nac
h S
ait,
S. M
., Yo
usse
f, H
.: V
LSI P
hysi
cal D
esig
n A
utom
atio
n
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 71
3.4.2 Cluster-Wachstum: Beispiel
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 72
3.4.2 Cluster-Wachstum: Beispiel
Gegeben: Blöcke A, B, C, D, E mit freier Orientierung und der linearen Anordnung [A, B, D, E, C] sowie festen Abmessungen.
Gesucht: Topzelle mit minimaler Fläche
Block Breite w Höhe h A 2 3 B 2 1 C 2 4 D 3 3 E 6 1
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 73
3.4.2 Cluster-Wachstum: Beispiel
Gegeben: Blöcke A, B, C, D, E mit freier Orientierung und der linearen Anordnung [A, B, D, E, C] sowie festen Abmessungen.
Gesucht: Topzelle mit minimaler Fläche
Lösung:
Block Breite w Höhe h A 2 3 B 2 1 C 2 4 D 3 3 E 6 1
A
B
DC
E
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 74
3.1 Einführung
3.2 Optimierungsziele
3.3 Begriffe und Datenstrukturen
3.4 Algorithmen für das Floorplanning3.4.1 Floorplan-Sizing-Algorithmus3.4.2 Cluster-Wachstums-Algorithmus (Cluster Growth)3.4.3 Weitere Algorithmen für das Floorplanning
3.5 Pinzuordnung (Pin Assignment)3.5.1 Problembeschreibung3.5.2 Pinzuordnung mittels konzentrischer Kreise3.5.3 Topologische Pinzuordnung
Kapitel 3 – Floorplanning
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 75
3.5 Pinzuordnung
Die bei der Partitionierung anfallenden Teilschaltungen (Blöcke) sind durch eine Menge von externen Netzen charakterisiert, mit denen sie untereinander in Verbindung stehen
Außenanschlüsse: Pinanschlüsse am Rand der Teilschaltungen, zwischen denen die externe Verdrahtung zu realisieren ist
Die Lage der Außenanschlüsse ist in den meisten Fällen vorgegeben, jedoch nicht ihre Zuordnung zu den einzelnen Netzen
Aufgabe der Pinzuordnung bei Blöcken ist es, jedem Außenanschluss eines Blocks ein Netz so zuzuordnen, dass die anschließende Verdrahtung sowohl innerhalb des Blocks als auch zwischen den Blöcken vereinfacht wird.
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 76
3.5 Pinzuordnung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 77
3.5 Pinzuordnung
Zuordnungsaufgabe (Nacktchipauf MCM)
Optimierte Pinzuordnung
Flylines bei optimierter Zuordnung(kreuzungsfrei)
Flylines bei willkürlicher Zuordnung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 78
3.5 Pinzuordnung (Zellebene)
Kontakt (contact cut)
Metal1 (metal1)Polyebene (polysilicon)Diffusionsschicht (p/n diffusion)
Via (via)
Metal2 (metal2)
Funktional äquivalente Pins:Austausch beeinflusst nicht die Schaltung (z.B. die beiden Eingangspins eines NAND-Gattters können i.d.R. ausgetauscht werden)
Äquipotentiale Pins: sind zellintern miteinander verbunden und repräsentieren damit das gleiche Netz
Aufgabe der Pinzuordnung bei Zellen ist die Optimierung der Netzzuordnung innerhalb funktional äquivalenter bzw. äquipotentialer Pingruppen.
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 79
3.5 Pinzuordnung (Zellebene)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 80
3.5.2 Pinzuordnung mittels konzentrischer Kreise: Beispiel
Nac
h K
oren
, N. L
.: P
in A
ssig
nmen
t in
Aut
omat
ed P
rinte
d C
ircui
t Boa
rds
Zuordnungsproblem
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 81
3.5.2 Pinzuordnung mittels konzentrischer Kreise: Beispiel
Nac
h K
oren
, N. L
.: P
in A
ssig
nmen
t in
Aut
omat
ed P
rinte
d C
ircui
t Boa
rds
Zuordnungsproblem 1. Kreisbestimmung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 82
3.5.2 Pinzuordnung mittels konzentrischer Kreise: Beispiel
Nac
h K
oren
, N. L
.: P
in A
ssig
nmen
t in
Aut
omat
ed P
rinte
d C
ircui
t Boa
rds
2. Punktbestimmung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 83
3.5.2 Pinzuordnung mittels konzentrischer Kreise: Beispiel
Nac
h K
oren
, N. L
.: P
in A
ssig
nmen
t in
Aut
omat
ed P
rinte
d C
ircui
t Boa
rds
2. Punktbestimmung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 84
3.5.2 Pinzuordnung mittels konzentrischer Kreise: Beispiel
Nac
h K
oren
, N. L
.: P
in A
ssig
nmen
t in
Aut
omat
ed P
rinte
d C
ircui
t Boa
rds
3. Anfangszuordnung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 85
3.5.2 Pinzuordnung mittels konzentrischer Kreise: Beispiel
Nac
h K
oren
, N. L
.: P
in A
ssig
nmen
t in
Aut
omat
ed P
rinte
d C
ircui
t Boa
rds
3. Anfangszuordnung und 4. Zuordnungsoptimierung (komplette Rotation)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 86
3.5.2 Pinzuordnung mittels konzentrischer Kreise: Beispiel
Nac
h K
oren
, N. L
.: P
in A
ssig
nmen
t in
Aut
omat
ed P
rinte
d C
ircui
t Boa
rds
3. Anfangszuordnung und 4. Zuordnungsoptimierung (komplette Rotation)
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 87
3.5.2 Pinzuordnung mittels konzentrischer Kreise: Beispiel
Nac
h K
oren
, N. L
.: P
in A
ssig
nmen
t in
Aut
omat
ed P
rinte
d C
ircui
t Boa
rds
4. Ergebnis der Zuordnungsoptimierung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 88
3.5.2 Pinzuordnung mittels konzentrischer Kreise: Beispiel
Nac
h K
oren
, N. L
.: P
in A
ssig
nmen
t in
Aut
omat
ed P
rinte
d C
ircui
t Boa
rds
Resultierende Pinzuordnung4. Ergebnis der Zuordnungsoptimierung
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 89
3.5.3 Topologische Pinzuordnung
12
1110
9
87
65
4
32
1
(1) Auftrenn-punkt
Nac
h B
rady
, H. N
.: A
n A
ppro
ach
to T
opol
ogic
al P
in A
ssig
nmen
t
(2) Auffächerung
(3) Abbildung aufkonzentrischem Kreis
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 90
3.5.3 Topologische Pinzuordnung
7 6
8
1
2 3
5
4
X
Y
9
16
15 14
13
12
1110
Nac
h B
rady
, H. N
.: A
n A
ppro
ach
to T
opol
ogic
al P
in A
ssig
nmen
t
Jeweilige Mittelpunktlinien
Block X „hinter“ Block Y
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 91
3.5.3 Topologische Pinzuordnung
7 6
8
1
2 3
5
4
AX
Y
C9
16
15 14
13
12
1110
B
Nac
h B
rady
, H. N
.: A
n A
ppro
ach
to T
opol
ogic
al P
in A
ssig
nmen
t
Jeweilige MittelpunktlinienAuftrennpunkte
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 92
3.5.3 Topologische Pinzuordnung
416
1514
1312
1110
93
21
7 6
8
1
2 3
5
4
AX
Y
C9
16
15 14
13
12
1110
56
78
B
A
A
B
B
C
C
Nac
h B
rady
, H. N
.: A
n A
ppro
ach
to T
opol
ogic
al P
in A
ssig
nmen
t
Layoutsynthese elektronischer Schaltungen – Grundlegende Algorithmen für die Entwurfsautomatisierung Kapitel 3: Floorplanning 93
3.1 Einführung
3.2 Optimierungsziele
3.3 Begriffe und Datenstrukturen
3.4 Algorithmen für das Floorplanning3.4.1 Floorplan-Sizing-Algorithmus3.4.2 Cluster-Wachstums-Algorithmus (Cluster Growth)3.4.3 Weitere Algorithmen für das Floorplanning
3.5 Pinzuordnung (Pin Assignment)3.5.1 Problembeschreibung3.5.2 Pinzuordnung mittels konzentrischer Kreise3.5.3 Topologische Pinzuordnung
Zusammenfassung Kapitel 3 – Floorplanning