-
Die
vorliegende Erfindung betrifft ein Verfahren und eine entsprechende
Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese, bei
der aus einer Systembeschreibung der zu entwerfenden Schaltung eine
Register-Transfer-Beschreibung ermittelt wird. Ferner betrifft die
Erfindung ein Computerprogramm zur Umsetzung des Verfahrens auf
einem Computer sowie ein Speichermittel, auf dem ein solches Computerprogramm
gespeichert ist.
-
In
den letzten Jahren hat sowohl die Integrationsdichte als auch die
Taktfrequenz mikroelektronischer Schaltungen enorm zugenommen. Ein
Halbleiterchip besteht heute aus mehreren Millionen Gattern. Diese
Entwicklung hat dazu geführt,
dass die Verlustleistung solcher Systeme ein zunehmend bedeutendes
Kriterium im Entwurfsprozess der Schaltung geworden ist. Eine höhere Verlustleistung
reduziert die Batteriebetriebsdauer mobiler Anwendungen, erhöht die Herstellungskosten
und verringert die Zuverlässigkeit
der Schaltung.
-
Im
extrem komplexen Entwurf mikroelektronischer Schaltungen ergibt
sich das Problem, die Auswirkungen unterschiedlicher Entwurfsalternativen
auf die Verlustleistung abzuschätzen.
Den größten Einfluss
auf die Verlustleistung haben Design-Entscheidungen in einer sehr
frühen
Phase des Entwicklungsprozesses, in der das Design in einer noch
sehr abstrakten Systembeschreibung, oft auch als algorithmische
Abstraktionsebene bezeichnet, vorliegt. Bekannte Entwurfswerkzeuge
erfordern jedoch einen weit fortgeschrittenen Designprozess, um eine
Verlustleistungsanalyse durchzuführen.
Folglich sind in der Regel mehrere nahezu vollständige Durchgänge durch
den Entwicklungsprozess notwendig, um eine akzeptable Schaltung
zu erhalten. Ein solches Vorgehen ist sehr zeitaufwendig, kostenintensiv
und nicht verträglich
mit immer kürzeren
Innovationszyklen beim Schaltungsentwurf. Ziel ist es deshalb, beim
Schaltungsentwurf bereits auf der algorithmischen Abstraktionsebene
eine Verlustleistungsanalyse und Optimierung vorzunehmen. Dabei sollen
verschiedene Schaltungsvarianten flexibel behandelt und der Einfluss
der verarbeiteten Daten auf die Verlustleistung moduliert werden
können.
-
Mit
High-Level-Synthese wird die automatisierte Schaltungssynthese bezeichnet,
bei der eine Systembeschreibung, also eine zu synthetisierende Applikation,
auf hochsprachlicher Ebene gegeben ist. Die High-Level-Synthese ist eine Art Hardwarekompilierung,
die aus Programmen in Sprachen wie beispielsweise C oder Java bzw.
Hardwarebeschreibungssprachen wie VHDL oder Verilog entsprechende
Schaltungen erzeugt. Das Resultat einer High-Level-Synthese ist
noch kein Transistorlayout, sondern eine Register-Transfer-Beschreibung,
die wiederum von nachfolgenden Syntheseschritten verarbeitet wird.
Die High-Level-Synthese
umfasst dabei unterschiedliche Optimierungsschritte. In einem Modulauswahlschritt
wird entschieden, welche Einzelmodule (z.B. Addierer- oder Multiplizierer-Module)
eingesetzt werden sollen. In einem Scheduling-Schritt wird die Planung
des zeitlichen Ablaufs der Einzeloperationen erstellt. In einem
Allocation-Schritt werden die entsprechen den Ressourcen bereitgestellt. In
einem Binding-Schritt erfolgt die Belegung der verfügbaren Ressourcen.
-
Bei
diesen Verfahren sind zahlreiche Design-Entscheidungen zu treffen.
Im Hinblick auf die Verlustleistung stellen sich deshalb u.a. die
folgenden Fragen:
- 1. Welcher Algorithmus ist
der Beste?
- 2. Wie sieht die beste Architektur für einen Algorithmus aus?
- 3. Welches ist die beste Architektur einer Komponente?
- 4. Wie beeinflusst die Bitbreite einer Komponente die Verlustleistung?
-
Es
ist bekannt, dass beispielsweise in der aktuellen CMOS-Technologie
(0,1 μm)
etwa 80 bis 95% der Verlustleistung durch das Laden und Entladen von
Kapazitäten
entstehen. Die Kapazität
trägt dabei linear
zur Verlustleistung bei. Aufgrund der zunehmenden Integrationsdichte
und Miniaturisierung wird der relative Anteil der Eingangskapazitäten von
Gatterbauelementen immer geringer verglichen mit der Kapazität der Verbindungsleitungen,
die maßgeblich durch
die Länge
der Verbindungsleitungen bestimmt wird. Dies bedeutet, dass der
durch Verbindungsleitungen hervorgerufene Verlustleistungsanteil
immer stärker
zunimmt und somit stärker
bei dem Schaltungsentwurf zu berücksichtigen
ist, was wiederum bedeutet, dass die Geometrie eines Designs möglichst
frühzeitig
berücksichtigt
werden muss.
-
Ein
bekanntes Verfahren zum Schaltungsentwurf mittels High-Level-Synthese, bei dem
die Verlustleistung aufgrund der Verbindungsleitungen berücksichtigt
wird, ist aus L. Zhong, N. K. Jha, „Interconnect-aware High-Level-Synthesis
for Low Power",
ICCAD 2002, bekannt. Dabei werden ausgehend von einer initialen
Lösung
einer Register-Transfer-Beschreibung
und eines Grundrisses (Floorplan) der benötigten Schaltungsfläche mehrere,
aufeinanderfolgende temporäre
Lösungen
durch Veränderung
der initialen Register-Transfer-Beschreibung mittels einer Allocation-
und Binding-Operation gebildet. Für die zuletzt generierte temporäre Lösung der Register-Transfer-Beschreibung
wird dann ein modifizierter Grundriss erstellt. Anhand dieses modifizierten
Grundrisses wird dann zusammen mit der letzten Register-Transfer-Beschreibung
bewertet, ob die dabei auftretende Verlustleistung geringer ist
als die bei der initialen Lösung
auftretende Verlustleistung. Iterativ wird somit versucht, eine
optimierte Lösung
einer Register-Transfer-Beschreibung zu finden.
-
Bei
diesem Verfahren tritt allerdings das Problem auf, dass ein Optimum
möglicherweise
nicht gefunden wird, da immer erst eine Reihe von Veränderungen
der initialen Register-Transfer-Beschreibung durchgeführt werden
und erst am Ende ein neuer Grundriss erstellt wird, anhand dessen
dann die Verlustleistung ermittelt und mit der Verlustleistung der vorherigen
Lösung
verglichen wird. Bei der Auswahl der Register-Transfer-Beschreibung wird, da noch kein
zugehöriger
Grundriss vorliegt, die durch die Leitungslänge verursachte Verlustleistung
nicht berücksichtigt.
Ferner muss bei diesem Verfahren der neue Grundriss jedes Mal völlig neu
erstellt werden, was recht zeitaufwendig ist.
-
Der
vorliegenden Erfindung liegt deshalb die Aufgabe zugrunde, ein verbessertes
Verfahren und eine entsprechende Vorrichtung zum Schaltungsentwurf
mittels High-Level-Synthese anzugeben, bei dem die beschriebenen
Nachteile vermieden werden und mit dem mit größerer Sicherheit bei gleichzeitig verringertem
Rechenaufwand eine optimierte Lösung gefunden
werden kann.
-
Diese
Aufgabe wird erfindungsgemäß gelöst durch
ein Verfahren nach Anspruch 1, das die folgenden Schritte aufweist:
- a) Generierung einer die Systembeschreibung
repräsentierenden
Datenstruktur,
- b) Ermittlung eines zeitlichen Ablaufplans der Operationen zur
Ausführung
der Aufgabe mittels einer Scheduling-Operation,
- c) Ermittlung einer initialen Register-Transfer-Beschreibung
mittels einer Allocation- und Binding-Operation,
- d) Ermittlung eines initialen Grundrisses der benötigten Schaltungsfläche,
- e) Bestimmung der bei der initialen Register-Transfer-Beschreibung
und dem initialen Grundriss auftretenden initialen Verlustleistung,
- f) Ermittlung einer modifizierten Register-Transfer-Beschreibung
durch eine einzelne Veränderung
der initialen Register-Transfer-Beschreibung mittels
einer Allocation- und Binding-Operation,
- g) Ermittlung eines infolge der Veränderung der initialen Register-Transfer-Beschreibung
modifizierten Grundrisses,
- h) Bestimmung der bei der modifizierten Register-Transfer-Beschreibung und
dem modifizierten Grundriss auftretenden modifizierten Verlustleistung,
- i) Ersetzen der initialen Register-Transfer-Beschreibung, des
initialen Grundrisses und der initialen Verlustleistung durch die
modifizierte Register-Transfer-Beschreibung, den modifizierten Grundriss
und die modifizierte Verlustleistung, wenn die modifizierte Verlustleistung
geringer ist als die initiale Verlustleistung, und
- j) Iteration der Schritte f) bis i), bis ein Abbruchkriterium
erfüllt
ist.
-
Eine
entsprechende Vorrichtung ist in Anspruch 14 angegeben. Ein Computerprogramm
mit Computerprogrammmitteln zur Veranlassung eines Computers, die
Schritte des erfindungsgemäßen Verfahrens
auszuführen,
wenn das Programm auf einem Computer läuft, ist in Anspruch 15 angegeben. Die
Erfindung betrifft auch ein Speichermittel, insbesondere einen optischen
oder magnetischen Datenträger
wie eine CD oder DVD, auf dem ein solches Computerprogramm gespeichert
ist. Bevorzugte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
-
Die
Erfindung geht von der Erkenntnis aus, dass es vorteilhaft ist,
unmittelbar nach jeder Veränderung
der vorherigen Register-Transfer-Beschreibung
auch den entsprechend modifizierten Grundriss zu ermitteln. Dies
hat einerseits den Vorteil, dass der modifizierte Grundriss nicht
völlig
neu erstellt werden muss, sondern aus dem vorherigen Grundriss durch Vornahme
einer Änderung,
die der vorgenommenen Änderung
der vorherigen Register-Transfer-Beschreibung entspricht, erhalten
werden kann, was deutlich weniger Rechenaufwand und Rechenzeit bedeutet.
Ferner ergibt sich bei diesem Verfahren der Vorteil, dass, nachdem
somit unmittelbar nach jeder Änderung
der Register-Transfer-Beschreibung
auch ein modifizierter Grundriss vorliegt, die zugehörige modifizierte
Verlustleistung sofort bestimmt werden kann, d.h., die durch die Änderung
der Register-Transfer-Beschreibung auftretende Änderung der Verlustleistung,
insbesondere der Leitungen, sind sofort, nämlich aus dem modifizierten
Grundriss, erkennbar, so dass sich somit auch sofort entscheiden lässt, ob
die modifizierte Register-Transfer-Beschreibung hinsichtlich der Verlustleistung
eine bessere Lösung
darstellt als die vorherige initiale Register-Transfer-Beschreibung
und in diesem Fall als neue initiale Register-Transfer-Beschreibung übernommen
werden soll für
den nächsten
Iterationsschritt.
-
Ausgangspunkt
des erfindungsgemäßen Verfahrens
ist eine Systembeschreibung der zu entwerfenden Schaltung, beispielsweise
eine Verhaltensbeschreibung der Schaltung, aus der eine die Systembeschreibung
repräsentierende
Datenstruktur, vorzugsweise ein Kontrolldatenflussgraph, generiert
wird, die dann für
die weiteren Operationen benutzt wird.
-
In
einer bevorzugten Ausgestaltung ist vorgesehen, dass für den modifizierten
Grundriss eine Grundrissoptimierung erfolgt, bevor die modifizierte Verlustleistung
bestimmt wird. Dadurch kann die modifizierte Verlustleistung noch
genauer bestimmt werden bzw. wird die durch die Leitungslängen verursachte
Verlustleistung durch eine solche Grundrissop timierung verringert,
da dabei die verwendeten Ressourcen im wesentlichen so angeordnet
werden, dass die Leitungslängen
möglichst
minimiert werden.
-
Alternativ
ist in einer Ausgestaltung der Erfindung vorgesehen, dass nur für einen
den bisherigen initialen Grundriss ersetzenden modifizierten Grundriss
eine Grundrissoptimierung erfolgt. Verglichen mit der vorherigen
Ausgestaltung wird dabei Rechenzeit gespart, da somit nicht für jeden
Grundriss eine Grundrissoptimierung durchgeführt wird.
-
Weitere
Ausgestaltungen sehen vor, dass entweder die geschaltete Leitungslänge minimiert oder
die geschaltete Kapazität
minimiert wird. In beiden Ausgestaltungen wird die Leitungslänge mit
der Schaltaktivität
der Leitung multipliziert, wozu allerdings gemäß der zweiten Ausgestaltung
zunächst die
Kapazität
mit einem Kapazitätsmodell
aus der Leitungslänge
bestimmt werden muss.
-
Als
Abbruchkriterium wird bevorzugt eine maximale Anzahl von Iterationen,
eine maximale Rechenzeit, eine minimale Verlustleistung und/oder eine
Kombination davon verwendet.
-
Gemäß einer
weiteren Ausgestaltung der Erfindung ist vorgesehen, dass in Schritt
i) die modifizierte Register-Transfer-Beschreibung, der modifizierte
Grundriss und die modifizierte Verlustleistung die initiale Register-Transfer-Beschreibung,
den initialen Grundriss und die initiale Verlustleistung auch dann
ersetzen, wenn die modifizierte Verlustleistung größer ist
als die initiale Verlustleistung, sofern die Differenz zwischen
der initialen Verlustleistung und der modifizierten Verlustleistung
ein vorbestimmter Verlustwert und die Anzahl der Iterationen einen
vorbestimmten Iterationswert nicht überschritten haben.
-
Es
können
aber auch unabhängig
von der Größe der Differenz
der Verlustleistung oder der Anzahl der Iterationen immer schlechtere
Lösungen akzeptiert
werden, wobei das Verfahren so ausgestaltet sein kann, dass mit
zunehmender Differenz und Anzahl die Wahrscheinlichkeit dessen sinkt.
-
Dadurch
wird erreicht, dass eine Lösung,
die eine größere Verlustleistung
liefert, mit zunehmender Differenz der Verlustleistungen und zunehmender Laufzeit
der Iterationen mit abnehmender Wahrscheinlichkeit akzeptiert wird.
Beispielsweise wird die Wahrscheinlichkeit, dass eine schlechtere
Lösung akzeptiert
wird, definiert als e–(modifizierte Verlustleis tung – initiale Verlustleistung)/T =
e–(Differenz
der Kosten/T). Der Wert T, oft auch als Temperatur bezeichnet,
nimmt mit der Anzahl der Iterationen und/oder voranschreitender
Laufzeit ab. Dadurch wird also erreicht, dass mit zunehmender Laufzeit
die Wahrscheinlichkeit sinkt, schlechtere Lösungen hinsichtlich der Verlustleistung
zu akzeptieren und dass leichte Erhöhungen der Verlustleistung eher
akzeptiert werden als große
Erhöhungen.
Die initiale Temperatur sollte dabei so gewählt werden, dass zum Ende der
Laufzeit der Ausdruck e–(Differenz der Kosten/T) nahezu
gleich Null ist.
-
Vorteilhafterweise
werden die modifizierte Register-Transfer-Beschreibung und der modifizierte Grundriss
mittels eines nichtdeterministischen, iterativen Optimierungsverfahrens,
insbesondere mittels eines Simulated-Annealing-Verfahrens, ermittelt.
Ein Simulated-Annealing-Verfahren
ist ein im Bereich des Schaltungsentwurfs häufig eingesetztes Standardverfahren.
Die oben genannte Formel e–(Differenz der Kosten/T) ist Bestandteil dieses Verfahrens.
-
Es
ist ein iteratives Verfahren zur Lösung von Optimierungsproblemen.
Dabei werden neben Lösungen,
die die zu optimierenden „Kosten" (hier die Verlustleistung)
reduzieren, beschränkt
auch Lösungen
akzeptiert, die die Kosten erhöhen.
Diese Eigenschaft erlaubt der Heuristik, auch aus lokalen Minima zu
entkommen, wobei bevorzugt die Wahrscheinlichkeit, eine Lösung mit
erhöhten
Kosten zu akzeptieren, mit zunehmender Laufzeit sinkt.
-
In
einer weiteren Ausgestaltung ist vorgesehen, dass zur Modifikation
der Register-Transfer-Beschreibung eine Modifikation ausgesucht
wird, welche maximale Erfolgsaussichten hinsichtlich einer Verringerung
der Verlustleistung hat und/oder welche bei vorherigen Iterationen
eine Verringerung der Verlustleistung bewirkt hat. Dazu werden vorzugsweise alle
vorherigen Modifikationen der Register-Transfer-Beschreibung und
die zugehörigen Änderungen der
Verlustleistung protokolliert. Die Art der Modifikation wird also
bevorzugt nicht rein zufällig
gewählt, sondern
zielgerichtet ausgesucht, was zu einer Ersparnis an Rechenzeit führt und
schneller ein optimiertes Ergebnis liefert.
-
Zur
Bestimmung der Verlustleistung von Leitungen einer Register-Transfer-Beschreibung
wird bevorzugt ein Kapazitätsmodell
verwendet, in das die Leitungslänge
eingeht. Zusätzlich
kann zur Verbesserung des Kapazitätsmodells die Anzahl der Durchkontaktierungen,
die Anzahl der Anschlüsse und/oder
die Art der zu verbindenden Register-Transfer-Komponenten verwendet werden, wobei bevorzugt
die einzelnen Parameter jeweils mit einem gesonderten technologieabhängigen Faktor
gewichtet werden. Damit lässt
sich die Verlustleistung besonders genau bestimmen.
-
Die
Erfindung wird nachfolgend anhand der Zeichnungen näher erläutert.
-
1 zeigt ein Flussdiagramm
eines bekannten Verfahrens zum Schaltungsentwurf,
-
2 zeigt ein Flussdiagramm
eines weiteren bekannten Verfahrens zum Schaltungsentwurf,
-
3 zeigt ein Beispiel einer
Verhaltensbeschreibung,
-
4 zeigt ein Beispiel eines
Kontrolldatenflussgraphen,
-
5 erläutert eine Scheduling-, Allocation- und
Binding-Operation,
-
6 erläutert die Generierung einer
Register-Transfer-Netzliste anhand zweier Beispiele,
-
7 erläutert den Einfluss der Binding-
und Allocation-Operation auf die Verlustleistung,
-
8 zeigt ein Beispiel eines
Grundrisses,
-
9 erläutert den Einfluss einer Änderung des
Binding auf den Grundriss,
-
10 zeigt ein Flussdiagramm
eines weiteren Verfahrens zum Schaltungsentwurf,
-
11 erläutert das der Erfindung zugrunde liegende
Optimierungsproblem,
-
12 zeigt ein Flussdiagramm
des erfindungsgemäßen Verfahrens
zum Schaltungsentwurf,
-
13 zeigt ein Flussdiagramm
des Verfahrens zur Optimierung des Grundrisses gemäß der Erfindung,
-
14 erläutert den Einfluss einer Tauschoperation
auf den Grundriss,
-
15 erläutert den Einfluss einer Verschmelzungsoperation
auf den Grundriss,
-
16 erläutert den Einfluss einer Teilungsoperation
auf den Grundriss,
-
17 erläutert den Einfluss der Einfügung eines
neuen Blattes auf den Grundriss,
-
18 zeigt in einem Flussdiagramm
eine weitere Ausgestaltung des erfindungsgemäßen Verfahrens und
-
19 zeigt in einem Flussdiagramm
eine weitere Ausgestaltung des Verfahrens zur Optimierung des Grundrisses.
-
1 zeigt als Flussdiagramm
die groben Schritte eines traditionellen Schaltungsentwurfsverfahrens.
Ausgehend von einer Systembeschreibung, beispielsweise einer Verhaltensbeschreibung,
der zu entwerfenden Schaltung wird dabei in einem ersten Schritt
S1 eine RT-Netzliste (Register-Transfer-Netzliste) generiert, in
der beispielsweise festgelegt wird, wie viele und welche Addierer
bzw. Multiplizierer zu verwenden sind. Daraus wird im nachfolgenden Schritt
S2 eine Gatter-Netzliste ge neriert, woraus wiederum in Schritt S3
ein Grundriss (Floorplan) erstellt wird, wobei funktionellen Einheiten
geeignete Teilflächen
der Schaltungsfläche,
sogenannte ASIC-Zellen, zugewiesen werden. Schließlich wird
in Schritt S4 die Verdrahtung festgelegt. Der Detaillierungsgrad
steigt dabei mit jedem Schritt an.
-
Ein
Flussdiagramm eines weiteren bekannten Verfahrens zum Schaltungsentwurfs
ist in 2 gezeigt. Anders
als bei dem in 1 gezeigten.
Verfahren erfolgt darin auch während
der Generierung der RT-Netzliste
in Schritt S1 die Erstellung eines groben Grundrisses (Schritt S3a),
der dann später
im Schritt S3b, nachdem die endgültige
RT-Netzliste und
die Gatter-Netzliste erstellt sind, detailliert erstellt wird. Dies
hat den Vorteil, dass auch bei der Generierung der RT-Netzliste
der Einfluss auf die Schaltungsfläche nicht völlig unberücksichtigt bleibt.
-
Nachfolgend
sollen die einzelnen Schritte, die beim Entwurf einer Schaltung,
der sog. High-Level-Synthese, durchlaufen werden, näher erläutert werden.
Dem Designer der Schaltung liegt anfangs eine Verhaltensbeschreibung
der zu entwertenden Schaltung vor, wie sie beispielhaft als Computerprogramm
in 3 gezeigt ist. Aus
dieser Verhaltensbeschreibung wird dann zunächst ein Kontrolldatenflussgraph,
also eine die Verhaltensbeschreibung repräsentierende Datenstruktur,
wie sie in 4 für das in 3 gezeigte Programm gezeigt
ist, erzeugt. Diese modelliert die Daten-Abhängigkeiten der einzelnen Operationen.
Die Knoten K dieses Graphs modellieren die Operatoren (z.B. Komparatoren,
Multiplizierer usw.), und die Kanten L modellieren die Daten-Abhängigkeiten
der Operatoren untereinander.
-
Zur
nachfolgenden Generierung der RT-Netzliste (oder RT-Beschreibung) werden
im wesentlichen drei Operationen ausgeführt, nämlich eine Scheduling-Operation,
eine Allocation-Operation und eine Binding-Operation. Bei einer
Scheduling-Operation, wie sie in 5a beispielhaft
gezeigt ist, wird festgelegt, in welchem Takt eine Operation auszuführen ist,
es wird also der zeitliche Ablauf der auszuführenden Operationen geplant.
Bei einer Allocation-Operation wird die Art und Anzahl der zu verwendenden
Komponenten (oft auch Ressourcen genannt) bestimmt. Bei einer Binding-Operation schließlich wird
festgelegt, welche Operation auf welcher Ressource ausgeführt werden
soll, es werden also die Operationen oder Variablen auf einzelne Ressourcen
abgebildet. Für
die in den 5b und 5c gezeigten unterschiedlichen
Ergebnisse dieser Operationen ist somit festgelegt worden, dass
jeweils drei Addierer verwendet werden sollen, wobei bei der in 5b gezeigten Lösung die
Additionen 1 und 2 bzw. 4 und 5 mit
demselben Addierer ausgeführt
werden sollen, wie durch entsprechende Umrandung verdeutlicht wird,
während
dies bei der in 5c gezeigten
Lösung
die Additionen 2 und 3 bzw. 4 und 5 sein
sollen. 6 zeigt für die in
den 5b und 5c gezeigten Lösungen jeweils
ein Beispiel einer zugehörigen
Gatternetzliste.
-
Ziel
des Schaltungsentwurfs ist es u.a., eine Schaltung zu entwerfen,
die eine möglichst
geringe Verlustleistung aufweist. Dass die Allocation- und die Binding-Operation
einen Einfluss auf die Verlustleistung der Komponenten haben, soll
anhand der 7 erläutert werden.
Es sei angenommen, dass zwei 1-Bit-Variablen mit den Eingabeströmen (0,0,1,1)
einem ersten Addierer und zwei weitere 1-Bit-Variablen mit den Eingabeströmen (1,1,0,0)
auf einen zweiten Addierer abgebildet werden. Sollen diese beiden
Datenströme
nun verschränkt
werden, um die beiden Addierer durch einen einzigen Addierer zu
realisieren, wie dies unten in 7 gezeigt
ist, so ist deutlich zu erkennen, dass die Schaltaktivität am Eingang
des gemeinsamen Addierers ADD (und der entsprechenden Leitung) verändert wird.
Allgemein kann durch Verschränkung
der Datenströme
die Schaltaktivität am
Eingang einer Ressource und der entsprechenden Leitung steigen oder
sinken. Außerdem
kann dadurch die Länge
und/oder Kapazität
einer Leitung steigen oder sinken. All dies hat einen Einfluss auf die
Verlustleistung einer Schaltung. Um die Verlustleistung wirksam
abzuschätzen,
sind also neben der Schaltaktivität auch die Verlustleistung
der Ressourcen und die Kapazität
der Leitungen zwischen den Ressourcen zu berücksichtigen.
-
Um
die Verlustleistung, die durch die Kapazität von Leitungen in einer Schaltung
hervorgerufen werden, abschätzen
zu können,
werden sogenannte Grundrisse (Floorplans) verwendet. Dabei wird
ausgehend von einer RT-Netzliste der darin beschriebenen Funktion
eine Teilfläche
der gesamten Fläche der
Halbleiterschaltung zugewiesen. Ein Beispiel eines solchen Grundrisses
ist in 8a gezeigt, in dem
fünf einzelnen
Ressourcen 1 bis 5 jeweils eine Teilfläche zugewiesen ist. Eine effiziente
Darstellung eines solchen Grundrisses kann auch durch einen Binärbaum, wie
in 8b gezeigt, erfolgen,
wobei ein Stern „*" einen vertikalen Übergang
und ein Pluszeichen „+" einen horizontalen Übergang
symbolisiert.
-
9 verdeutlicht den Effekt
unterschiedlicher Lösungen
nach der Binding-Operation auf die Länge von Verbindungsleitungen
einer RT-Netzliste. Ausgegangen
wurde dabei von einem Kontrolldatenflussgraphen und einem festen
Scheduling mit drei Operatoren a, b und c und den entsprechenden
funktionalen Einheiten A, B und C. 9a zeigt
das Ergebnis einer ersten Binding-Operation, 9b zeigt den zugehörigen optimierten Grundriss.
Grau hinterlegt sind in 9a jeweils
Operatoren, die auf dieselbe funktionale Einheit gemappt werden.
In dem Grundriss sind die Verbindungsleitungen gestrichelt mit ihrer
entsprechenden Länge
gezeigt. 9c zeigt die
Lösung
nach einer anderen Binding-Operation, 9d zeigt
den entsprechenden Grundriss. Dabei ist b3 nun
auf B1 gelegt, b4 auf
B2 und c1 auf C2. Insgesamt sinkt bei der zweiten Lösung die
Gesamtlänge
der Verbindungsleitungen von 25 (für die Lösung gemäß 9b) auf 18 (für die Lösung gemäß 9d), also um insgesamt 28%. Dies zeigt
klar die Bedeutung der Verlustleistung aufgrund der Verbindungsleitungen
und wie diese durch unterschiedliche Binding-Operationen beeinflusst
werden kann.
-
10 erläutert anhand eines Flussdiagramms
ein bekanntes Verfahren zum Schaltungsentwurf, wie es aus dem eingangs
genannten Artikel von L. Zhong et al. bekannt ist. Dabei werden
ausgehend von einer initialen Lösung
einer Register-Transfer-Beschreibung nacheinander mehrere(n) temporäre Lösungen für Register-Transfer-Beschreibungen ermittelt
(Schritt S10), indem stufenweise jeweils ein sogenannter Move, also
eine Modifikation der jeweils vorherigen Lösung mittels einer Allocation- und Binding-Operation,
ausgeführt
wird. Die verwendeten Moves werden dabei nicht vollkommen zufällig ausgewählt. Mit
Hilfe von zwei Heuristiken werden die Moves zielgerichtet ausgesucht,
in dem Sinne, dass die neu entstehende Register-Transfer-Beschreibung
möglichst
geringe Verdrahtungskosten aufweist.
-
So
werden für
jede Ressource einer Beschreibung die Nachbarschaftskosten bestimmt (S11).
Die Nachbarschaftskosten einer Ressource berechnen sich aus der
Größe und Anzahl
der umgebenden Resourcen, die optimalerweise im Grundriss in unmittelbarer
Nähe platziert
werden sollten. Hintergrund ist folgender: Je höher die Summe der Nachbarschaftskosten
ist, desto geringer ist die Wahrscheinlichkeit, dass alle Resourcen
optimal platziert werden können.
Ein Move wird dann bevorzugt, wenn die neue Lösung zu geringeren Nachbarschaftskosten
führt,
d.h. das Potential für
ein optimalen Grundriss möglichst
hoch ist.
-
Ausserdem
werden die Kommunikationskosten zwischen zwei Ressourcen berücksichtigt
(S12), die sich aus der Anzahl der Leitungen, die sie direkt verbinden,
und der Schaltaktivität
auf diesen Leitungen ergeben. Ein Move wird dann bevorzugt, wenn die
neue Lösung
zu geringeren Kommunikationskosten führt. Z.B. steigt die Wahrscheinlichkeit,
dass zwei Ressourcen gleichen Typs verschmolzen werden, mit zunehmender
Höhe ihrer
Kommunikationskosten.
-
Für die letzte
temporäre
Lösung
wird ein Grundriss erstellt (S14), mit dessen Hilfe die neue Lösung hinsichtlich
der Verlustleistung unter Be rücksichtigung
der durch Verbindungsleitungen hervorgerufenen Verlustleistung bewertet
wird (Schritt S13). Sofern die Kosten der neuen Lösung geringer
sind als die Kosten der vorherigen Lösung, wird die neue Lösung übernommen
(S15) und ggf., falls ein Abbruchkriterium erfüllt ist, als optimierte Lösung ausgegeben.
Andernfalls wird die Iteration erneut durchgeführt, um eine bessere Lösung zu
finden.
-
Dieses
Verfahren hat jedoch den Nachteil, dass zur Bewertung der Kosten
der Grundriss jeweils völlig
neu erstellt werden muss. Auch bei wiederholter Ausführung der
Iteration zur Ermittlung weiterer temporärer Lösungen kann ein früherer Grundriss nicht
wiederverwendet oder abgewandelt werden.
-
Ferner
besteht bei diesem Verfahren das Problem, dass eine Lösung mit
minimalen Kosten ggf. übersprungen
wird, da die Verlustleistung aufgrund von Verbindungsleitungen nur
für die
letzte Lösung
ermittelt wird. Dies wird anhand der 11 deutlich,
in der die Kosten über
dem Lösungsraum dargestellt
sind. Gezeigt sind eine aktuelle Lösung, ein lokales Minimum und
ein globales Minimum. Bei dem bekannten Verfahren ist somit möglich, dass eine
Lösung,
die das globale Minimum (unter Berücksichtigung der Verlustleistung
aufgrund von Verbindungsleitungen) darstellt, nicht als kostengünstigste Lösung in
Schritt S10 (10) ausgewählt wird,
da ohne Berücksichtigung
der Verlustleistung aufgrund der Verbindungsleitungen möglicherweise
eine andere Lösung
minimalere Kosten aufweist. Dies zu vermeiden ist u.a. Aufgabe der
vorliegenden Erfindung.
-
Ein
Flussdiagramm einer Ausgestaltung des erfindungsgemäßen Verfahrens
ist in 12 dargestellt.
Nicht gezeigt sind dabei eine eingangs erfolgende Scheduling-Operation,
Allocation-Operation und Binding-Operation,
die zu einer initialen Lösung L0 einer Register-Transfer-Beschreibung (Architektur) führen, für die auch
ein initialer Grundriss (Floorplan) F0 erstellt
wird. Diese initiale Lösung
L0 der Register- Transfer-Beschreibung wird nachfolgend
in Schritt S20 durch Ausführung
eines einzigen Architektur-Moves Aj verändert. Es
werden also eine neue Allocation- und Binding-Operation durchgeführt, um eine
modifizierte Lösung
einer Register-Transfer-Beschreibung zu finden. Nach Ausführung dieses
Architektur-Moves Aj wird in Schritt S21
für die
geänderte Register-Transfer-Beschreibung
ein zugehöriger
modifizierter Grundriss erstellt, wobei dieser modifizierte Grundriss
nicht völlig
neu erstellt werden muss, sondern es kann die sich aufgrund der Änderung
der Architektur in Schritt S20 ergebende Änderung in dem initialen Grundriss
F0 verhältnismäßig einfach
nachgezogen werden.
-
Da
nun somit eine modifizierte Register-Transfer-Beschreibung und ein
zugehöriger
modifizierter Grundriss vorliegen, kann in Schritt S22 unmittelbar
geprüft
werden, ob die neue (modifizierte) Lösung kostengünstiger
ist als die alte Lösung,
d.h., es können
bei dieser Prüfung
sowohl die durch die verwendeten Komponenten verursachten Kosten
als auch die durch die Verdrahtung verursachten Kosten berücksichtigt
werden. Sofern die neue (modifizierte) Lösung kostengünstiger
ist, wird in Schritt S23 geprüft,
ob ein vorgegebenes Abbruchkriterium erfüllt ist. Falls dies nicht der
Fall ist, wird die Iteration, beginnend bei Schritt S20, erneut
durchlaufen; anderenfalls wird die als kostengünstigste gefundene Lösung als
optimierte Lösung
für die
Register-Transfer-Beschreibung und der zugehörige Grundriss als optimierter
Grundriss ausgegeben, anhand deren dann die weiteren Schritte zum
Entwurf der Schaltung durchgeführt
werden.
-
Sofern
die Prüfung
in Schritt S22 ergibt, dass die neue (modifizierte) Lösung nicht
kostengünstiger ist
als die alte Lösung,
kann entweder auch, was in der vorliegenden Ausgestaltung nicht
gezeigt ist, die Iteration beginnend mit Schritt S20 erneut durchgeführt werden.
Vorteilhaft ist jedoch auch, dass in beschränktem Maße Lösungen akzeptiert werden, die die
Kosten erhöhen.
Diese Eigenschaft erlaubt der Heuristik, auch aus lokalen Minima
(siehe 11) herauszukommen.
Um dies zu gewährleisten,
kann eine Prüfung
wie in Schritt S23 angegeben erfolgen, wobei beispielsweise geprüft wird,
ob eine zwischen Null und Eins liegende Zufallszahl kleiner ist
als die Funktion e–ΔKosten/T, wobei ΔKosten die
Differenz zwischen den Kosten der initialen und der modifizierten Lösung und
T die Temperatur bzw. die Laufzeit der bereits erfolgten Iterationen
darstellen. Durch diese Funktionsprüfung wird gewährleistet,
dass die Wahrscheinlichkeit, eine Lösung mit erhöhten Kosten
zu akzeptieren, mit zunehmender Laufzeit sinkt. Sofern diese Prüfung ergibt,
dass eine Lösung
mit erhöhten Kosten
akzeptiert wird, wird mit Schritt S23 und der Prüfung der Erfüllung des
Abbruchkriteriums fortgefahren. Anderenfalls wird der in Schritt
S20 vorgenommene Architektur-Move Aj rückgängig gemacht; ebenso
wird die Aktualisierung des Grundrisses in Schritt S21 rückgängig gemacht
und dann ebenfalls mit Schritt S23 fortgefahren.
-
Bei
dem erfindungsgemäßen Verfahren
werden also Änderungen
der Register-Transfer-Beschreibung, die in Schritt S20 ausgeführt werden,
sofort im Grundriss nachgezogen. Dies ist insofern von Bedeutung,
da durch alle Architektur-Moves Ressourcen hinzukommen oder wegfallen
können.
Außerdem
verändern
alle Architektur-Moves die Verdrahtung. Der vorherige Grundriss
ist also nach einem Architektur-Move nicht mehr optimal. Bei der
in Schritt S21 erfolgenden Grundrissaktualisierung werden vorzugsweise
Softmakros unterstützt.
Außerdem können neue
Ressourcen optimal in den Grundriss eingefügt werden. Durch dieses sofortige
Nachziehen der Änderungen
im Grundriss werden in Schritt S22 unmittelbar Änderungen der Verlustleistung
aufgrund von Verbindungsleitungen sofort erkennbar. Es kann also
wesentlich besser eine optimierte Lösung gefunden werden, und das
Risiko des Überspringens einer
optimierten Lösung
ist minimiert oder gar Null. Ferner muss in Schritt S21 der Grundriss
nicht jeweils völlig
neu erstellt werden, sondern kann aus dem vorherigen Grundriss durch
Nachvollzug der Änderungen
gebildet werden.
-
Verschiedene
Architektur-Moves können grundsätzlich in
Schritt S20 ausgeführt
werden (durch eine Änderung
des Binding und der Allocation). Beim Verschmelzen werden zwei Ressourcen
zu einer einzigen Ressource verschmolzen, wobei die beiden Ressourcen
Instanzen des gleichen Typs sein müssen (z.B. beide Addieren).
Beim Teilen wird eine Ressource in zwei Ressourcen aufgeteilt. Beim Tausch
werden die Eingänge
einer Operation (nicht einer Ressource) vertauscht, was nur für kommutative
Operationen erlaubt ist.
-
In
Schritt S21 wird grundsätzlich
der modifizierte Grundriss durch Nachvollziehung der Architekturänderung
aus Schritt S20 ermittelt. Es ist jedoch auch möglich, dabei eine Optimierung
des Grundrisses mittels eines sogenannten Floorplan-Annealing-Verfahrens
(Grundriss-Abkühlungsverfahrens) vorzunehmen.
Ein solches Verfahren ist als Flussdiagramm in 13 gezeigt. Ausgehend von einem initalen
Grundriss erfolgt dazu in Schritt S30 ein sogenannter Floorplan-Move
Fi, also eine Grundrissänderung, wozu verschiedene Änderungen
zur Verfügung stehen,
die nachfolgend noch näher
erläutert
werden. Danach wird in Schritt S31 geprüft, ob durch diese Änderung
die Verlustleistung angestiegen ist oder nicht. Da die Verlustleistung
der funkt. Einheiten beim Floorplan-Annealing kostant bleibt, reicht
es aus, nur die Verlustleistung aufgrund der Verbindungsleitungen
zu berücksichtigen.
-
Sofern
die Verlustleistung geringer geworden ist, wird in Schritt S32 geprüft, ob ein
Abbruchkriterium für
die Grundrissoptimierung erfüllt
ist. Falls dies nicht der Fall ist, wird mit Schritt S30 und weiteren
Iterationen fortgefahren. Anderenfalls wird der letzte Grundriss
mit den geringsten Kosten als optimierter Grundriss ausgegeben.
Falls die Prüfung
in Schritt S31 ergibt, dass die Grundrissänderung Fi keine
Verringerung der Kosten ergeben hat, wird in Schritt S33 eine ähnliche
Prüfung
durchgeführt
wie in Schritt S24 (siehe 12),
um sicherzustellen, dass auch Grundrissänderungen, die die Kosten erhöhen, ggf.
akzeptiert werden, um aus lokalen Minima zu entkommen. Falls auch
eine solche Lösung
nicht akzeptiert werden soll, wird die Änderung Fi in
Schritt S34 rückgängig gemacht.
In jedem Fall wird mit der Prüfung
des Abbruchkriteriums in Schritt S32 fortgefahren.
-
Jeder
Grundriss wird während
des Optimierungsverfahrens basierend auf der Fläche A und der Verbindungsleistung
P unter Nutzung einer Kostenfunktion der Form P + λA bewertet,
wobei λA
die relative Bedeutung von A und P steuert. Die Verbindungslänge kann
durch Berechnung des Manhattan-Abstandes für Verbindungen zwischen zwei
Anschlüssen
und den sogenannten Minimum-Spanning-Tree (MST) für Verbindungen
mit mehr als zwei Anschlüssen
berechnet werden. Alternativ können auch
sogenannte Steiner-Trees benutzt werden, um Datentransferleitungen
zu zeichnen. Um das Taktverteilungsnetzwerk (Clock-Tree)nachzubilden,
wird ein ausgeglichener H-Tree erzeugt.
-
Bevorzugt
wird erfindungsgemäß eine geänderte Kostenfunktion
zur Beurteilung der Verlustleistung während des Schaltungsentwurfs
benutzt. Die neue Kostenfunktion weist die Form PFU +
Pwire + λA auf.
Darin ist PFU die Verlustleistung der Ressourcen (funktionalen
Einheiten, Multiplexer und Register), Pwire die
Verlustleistung der Verbindungsleitungen und λA der Beitrag der Schaltungsfläche zu der
Kostenfunktion. Bei dem erfindungsgemäßen Verfahren werden somit
unterschiedliche Grundrissänderungen (Floorplan-Moves)
und Architektur-Änderungen
(Architecture-Moves) verwendet, um die Register-Transfer-Beschreibung
iterativ zu ändern,
wobei simultan auch der zugehörige
Grundriss geändert wird,
um bestmöglich
die Verlustleistung beurteilen zu können.
-
Zu
der anhand von 13 erläuterten
Optimierung des Grundrisses bei fester Architektur können in
Schritt S30 verschiedene Änderungen
des Grundrisses durchgeführt
werden. Eine erste Änderungsmöglichkeit
ist der Tausch (Swap) von Blättern (leafs)
und/oder Knoten (nodes). 14 zeigt,
wie derartige Änderungen
den auf der linken Seite jeweils gezeigten Binärbaum verändern und zeigt die Auswirkungen
auf den entspre chenden Grundriss. 14a zeigt
einen Ausgangsgrundriss, 14b zeigt
die Änderungen
nach Durchführung
des Tausches der Blätter 1 und
4. 14c zeigt die Auswirkungen,
nachdem zusätzlich
der Knoten +3 und das Blatt 6 getauscht
wurden.
-
Neben
den in 14 gezeigten
Floorplan-Moves, bei denen die Eingänge kommutativer Operationen
geändert
werden und bei der die Schaltaktivität in dem Datenpfad signifikant
beeinflusst wird, während
der Einfluss auf die Netzliste nahezu vernachlässigbar ist, gibt es Änderungen,
sogenannte Architektur-Moves, die in den 15, 16 und 17 gezeigt sind. 15 zeigt die Auswirkungen
einer Verschmelzungsoperation (share). 15a zeigt einen Ausgangs-Binärbaum und
einen zugehörigen Ausgangsgrundriss, 15b zeigt die Auswirkungen einer
Verschmelzungsoperation, bei der zwei Ressourcen 1 und 2 auf
eine einzige Ressource verschmolzen werden. Eine solche Verschmelzungsoperation
verschmilzt grundsätzlich
zwei Ressourcen in eine einzige Ressource. Damit eine solche Änderung
gültig
ist, müssen
die Ressourcen Instanzen desselben Typs sein. Ferner darf die durch
die erste Ressource ausgeführte
Operation zeitlich nicht mit der von der zweiten Ressource ausgeführten Operation überlappen.
Wenn die Anzahl an Quellen an einem Eingang einer Ressource größer als
1 ist, wird ein neuer Multiplexer eingefügt. Wenn die Anzahl der Quellen
auf 1 absinkt, werden entsprechend Multiplexer entfernt. Die gemeinsame
Nutzung von Ressourcen beeinflusst sowohl die Schaltaktivität auf dem Datenpfad
als auch die Netzwerktopologie signifikant.
-
Die
Auswirkungen einer Teilungsoperation sind in 16 gezeigt. Dort ist in 16a ein Ausgangsgrundriss sowie ein Ausgangs-Binärbaum gezeigt.
In 16b sind die Auswirkungen
einer Teilungsoperation gezeigt, bei der die Ressource 5 auf mehrere
Ressourcen aufgeteilt wird. Eine Teilungsoperation ist damit die
Umkehrung einer Verschmelzungsoperation. Eine einzelne Ressource
wird dadurch also auf zwei Ressourcen aufgeteilt. Multiplexer können dabei
hinzugefügt
oder entfernt werden. Eine Aufteilung kann erfolgen, ohne die Laufzeit
von Operationen zu berücksichtigen.
Neben der potentiellen Reduzierung der Schaltkapazität vergrößern diese
Operationen die Möglichkeiten
zur Anwendung anderer Verschmelzungsoperationen.
-
Die
in den 15 und 16 erläuterten Operationen ermöglichen
es, jede mögliche
Binding-Lösung
zu erzeugen. Neue Komponenten werden an ihrem Gleichgewichtspunkt
eingefügt.
Der Gleichgewichtspunkt ist der Punkt, an dem eine neue Ressource
die geringste Leitungs-Verlustleistung
produzieren würde.
In 17a liegt dieser
Punkt innerhalb der linken Hälfte
des Blattes 4. Deshalb wird Blatt 4 durch einen
neuen vertikalen Knoten mit dem neuen Blatt 5' ersetzt, welches
auf der linken Seite platziert wird, während das Blatt 4 auf
der rechten Seite platziert wird (siehe 17b). Erfindungsgemäß werden Softmakros unterstützt, d.h.,
dass Blätter
in ihrem Längen-
und Breitenverhältnis
flexibel sind. Deshalb bleibt der Grundriss nahezu optimal hinsichtlich
der Verlustleistung der Verdrahtung, und das Floorplan-Annealing
kann daher sehr kurz gehalten werden. Die in 17b gezeigte unbenutzte Fläche rührt nur
daher, dass dieses Verhältnis
begrenzt wurde, um unrealistische Grundrisse zu vermeiden.
-
Eine
alternative Ausgestaltung des erfindungsgemäßen Verfahrens ist als Flussdiagramm
in 18 gezeigt. Anders
als bei der in 12 gezeigten
Ausgestaltung erfolgt hier die (bevorzugt durchgeführt) nachfolgende
Optimierung des Grundrisses mittels eines Floorplan-Annealing-Verfahrens (Schritt S42),
nachdem ein ausgeführter
Move A (S40) in Schritt S41 akzeptiert worden ist. Die Änderungen durch
Move A werden sofort im Grundriss nachgezogen, ohne den Grundriss
zu optimieren. Erst wenn Move A akzeptiert wird, wird auch der Grundriss
optimiert (S42). Desweiteren werden keine Moves mehr akzeptiert,
die die Kosten erhöhen.
-
Wenn
der Move A in Schritt S41 nicht akzeptiert wird, wird er wieder
rückgängig gemacht
(S43). Anderenfalls wird nach der Optimierung des Grundrisses der
Kostenvergleich (S44) durchgeführt.
Falls dieser ein negatives Ergebnis ergibt, wird die Grundrissaktualisierung
aus Schritt S42 wieder rückgängig gemacht
(S45). Schließlich
wird die Erfüllung
des Abbruchkriteriums (S46) geprüft,
wonach entweder weitere Iterationen durchgeführt oder die optimierte Lösung der
Register-Transfer-Beschreibung
und des Grundrisses ausgegeben werden. Die in 18 gezeigte Ausgestaltung des erfindungsgemäßen Verfahren
ist somit laufzeitoptimiert und lässt auch keine schlechteren
Lösungen
als Lösung
zu, wie dies bei der in 12 gezeigten
Ausgestaltung (vergleiche Schritt S24) möglich ist.
-
Eine
alternative Ausgestaltung des Verfahrens zur Grundrissoptimierung
(Schritt S42) ist in 19 gezeigt,
mit dem Grundrissänderungen
F zielgerichteter ausgesucht werden können. Dabei wird nach Durchführung einer
Grundrissänderung
F (S50) geprüft,
ob die Änderung
F akzeptiert wird (S51) Move F muss dazu kein spezielles Kriterium
erfüllen,
sondern die Wahrscheinlichkeit, dass Move F ausgewählt wird,
steigt bzw. sinkt mit seinem Erfolg, wie nachfolgend noch erläutert wird.
-
Sofern
die Änderung
F nicht akzeptiert wird, wird sie wieder rückgängig gemacht (S52) und die Wahrscheinlichkeit
für die Änderung
F reduziert (S53). Anderenfalls wird die Wahrscheinlichkeit für die Änderung
F erhöht
(S54). In beiden Fällen
wird anschließend
die Erfüllung
des Abbruchkriteriums für die
Optimierung des Grundrisses geprüft
(S55), wonach entweder weitere Iterationen durchgeführt werden
oder der optimierte Grundriss ausgegeben wird.
-
Die
Idee dabei ist, dass die Wirkung der einzelnen Moves vom aktuellen
Zustand des Grundrisses abhängt.
Mit voranschreitender Laufzeit sinkt der Nutzen einiger Moves, wogegen
der Nutzen anderer Moves steigt. Daher ist es sinnvoll eher die
Moves zu wählen,
dessen aktueller Nutzen am größten ist.
Dies wird erreicht, indem die Wirkung, d.h akzeptiert oder nicht
akzeptiert, mitprotokolliert wird. Wird ein Move akzeptiert, steigt
die Wahrscheinlichkeit, dass dieser Move erneut ausgewählt wird
(S54). Wird ein Move nicht akzeptiert, sinkt die Wahrscheinlichkeit
(S53).
-
Zur
Abschätzung
der Verlustleistung wird erfindungsgemäß bevorzugt ein technologieabhängiges Kapazitätsmodell
verwendet, das durch Anwendung einer linearen Regressionstechnik
erzeugt wurde. Abhängig
von der Leitungslänge
(wire length), der Anzahl der Anschlüsse (pins) und der Anzahl der Verzweigungen
(branch points) ergibt sich die gesamte Kapazität einer Verbindungsleitung
damit als Summe der Kapazität
der Leitungslänge,
der Kapazität
der Anschlüsse
und der Kapazität
der Verzeigungen, wobei jede dieser Kapazitäten mit einem technologieabhängigen Faktor
in der Summe multipliziert wird. Die Kapazitäten aufgrund der Anschlüsse und der
Verzweigungen entstehen durch zusätzliche Durchkontaktierungen
(vias).
-
Mit
dem erfindungsgemäßen Verfahren
lässt sich
beim Schaltungsentwurf die Verlustleistung der entworfenen Schaltung
gegenüber
dem bekannten Verfahren deutlich absenken, ohne dass dies zu Lasten
der benötigten
Schaltungsfläche
geht. Insbesondere kann die Verlustleistung der Verbindungsleitungen
stark gesenkt werden.