DE10324565A1 - Verfahren und Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese - Google Patents

Verfahren und Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese Download PDF

Info

Publication number
DE10324565A1
DE10324565A1 DE10324565A DE10324565A DE10324565A1 DE 10324565 A1 DE10324565 A1 DE 10324565A1 DE 10324565 A DE10324565 A DE 10324565A DE 10324565 A DE10324565 A DE 10324565A DE 10324565 A1 DE10324565 A1 DE 10324565A1
Authority
DE
Germany
Prior art keywords
power loss
modified
initial
floor plan
register transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE10324565A
Other languages
English (en)
Inventor
Ansgar Stammermann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHIP VISION DESIGN SYSTEMS AG
CHIPVISION DESIGIN SYSTEMS AG
Original Assignee
CHIP VISION DESIGN SYSTEMS AG
CHIPVISION DESIGIN SYSTEMS AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CHIP VISION DESIGN SYSTEMS AG, CHIPVISION DESIGIN SYSTEMS AG filed Critical CHIP VISION DESIGN SYSTEMS AG
Priority to DE10324565A priority Critical patent/DE10324565A1/de
Priority to US10/857,212 priority patent/US7181720B2/en
Publication of DE10324565A1 publication Critical patent/DE10324565A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Abstract

Die 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 mit dem Ziel, eine Schaltung mit möglichst geringer Verlustleistung zu entwerfen. Um dabei insbesondere den immer stärker zunehmenden Anteil der Verlustleistung aufgrund der Verbindungsleitungen ausreichend zu berücksichtigen, wird ein iteratives Verfahren vorgeschlagen, bei dem unmittelbar nach Modifikation einer initialen Register-Transfer-Beschreibung auch ein modifizierter Grundriss erstellt wird, an dem sofort erkannt werden kann, ob die Modifikation der Register-Transfer-Beschreibung eine Verringerung der Verlustleistung der Verbindungsleitungen mit sich gebracht hat oder nicht.

Description

  • 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.

Claims (16)

  1. Verfahren zum Schaltungsentwurf mittels High-Level-Synthese, bei der aus einer Systembeschreibung der zu entwerfenden Schaltung eine Register-Transfer-Beschreibung ermittelt wird, mit den Schritten: 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.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für den modifizierten Grundriss eine Grundrissoptimierung erfolgt, bevor die modifizierte Verlustleistung bestimmt wird.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass nur für einen den bisherigen initialen Grundriss ersetzenden modifizierten Grundriss eine Grundrissoptimierung erfolgt.
  4. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als Abbruchkriterium eine maximale Anzahl von Iterationen, eine maximale Rechenzeit, eine minimale Verlustleistung und/oder eine Kombination davon verwendet wird.
  5. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, 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 überschritten haben.
  6. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Wahrscheinlichkeit, mit der 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, mit zunehmender Laufzeit und/oder zunehmender Differenz zwischen modifizierter Verlustleistung und initialer Verlustleistung sinkt.
  7. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die modifizierte Register-Transfer-Beschreibung und der modifizierte Grundriss mittels eines nichtdeterministischen, iterativen Optimierungsverfahrens, insbesondere mittels eines Simulated-Annealing-Verfahrens, ermittelt werden.
  8. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zur Modifikation der Register-Transfer-Beschreibung eine Modifikation ausgesucht wird, welche maximale Erfolgsaussichten hinsichtlich einer Verringerung der Verlustleistung haben und/oder welche bei vorherigen Iterationen eine Verringerung der Verlustleistung bewirkt haben.
  9. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren zur Minimierung der geschalteten Leitungslänge oder der geschalteten Kapazität ausgestaltet ist, wobei die Leitungslänge mit der Schaltaktivität der Leitung multipliziert und wobei zur Minimierung der geschalteten Kapazität zunächst die Kapazität mit einem Kapazitätsmodell aus der Leitungslänge bestimmt wird.
  10. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass zur Bestimmung der Verlustleistung von Leitungen einer Register-Transfer-Beschreibung ein Kapazitätsmodell verwendet wird, in das die Leitungslänge eingeht.
  11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass ferner in das Kapazitätsmodell die Anzahl der Durchkontaktierungen, die Anzahl der Verzweigungen, die An zahl der Anschlüsse und/oder die Art der zu verbindenden Register-Transfer-Komponenten eingehen.
  12. Verfahren nach Anspruch 10 oder 11, dadurch gekennzeichnet, dass die in das Kapazitätsmodell eingehenden Parameter jeweils mit einem technologieabhängigen Faktor gewichtet werden.
  13. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass als die Systembeschreibung repräsentierende Datenstruktur ein Kontrolldatenflussgraph benutzt wird.
  14. Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese, bei der aus einer Systembeschreibung der zu entwerfenden Schaltung eine Register-Transfer-Beschreibung ermittelt wird, umfassend: a) Mittel zur Generierung einer die Systembeschreibung repräsentierenden Datenstruktur, b) Mittel zur Ermittlung eines zeitlichen Ablaufplans der Operationen zur Ausführung der Aufgabe mittels einer Scheduling-Operation, c) Mittel zur Ermittlung einer initialen Register-Transfer-Beschreibung mittels einer Allocation- und Binding-Operation, d) Mittel zur Ermittlung eines initialen Grundrisses der benötigten Schaltungsfläche, e) Mittel zur Bestimmung der bei der initialen Register-Transfer-Beschreibung und dem initialen Grundriss auftretenden initialen Verlustleistung, f) Mittel zur Ermittlung einer modifizierten Register-Transfer-Beschreibung durch eine einzelne Veränderung der initialen Register-Transfer-Beschreibung mittels einer Allocation- und Binding-Operation, g) Mittel zur Ermittlung eines infolge der Veränderung der initialen Register-Transfer-Beschreibung modifizierten Grundrisses, h) Mittel zur Bestimmung der bei der modifizierten Register-Transfer-Beschreibung und dem modifizierten Grundriss auftretenden modifizierten Verlustleistung, i) Mittel zur 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) Mittel zur Iteration der Schritte f) bis i), bis ein Abbruchkriterium erfüllt ist.
  15. Computerprogramm mit Computerprogrammmitteln zur Veranlassung eines Computers, die Schritte des Verfahrens nach Anspruch 1 auszuführen, wenn das Programm auf einem Computer läuft.
  16. Speichermittel, auf dem ein Computerprogramm nach Anspruch 15 gespeichert ist.
DE10324565A 2003-05-30 2003-05-30 Verfahren und Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese Ceased DE10324565A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10324565A DE10324565A1 (de) 2003-05-30 2003-05-30 Verfahren und Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese
US10/857,212 US7181720B2 (en) 2003-05-30 2004-05-28 Process and device for circuit design by means of high-level synthesis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10324565A DE10324565A1 (de) 2003-05-30 2003-05-30 Verfahren und Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese

Publications (1)

Publication Number Publication Date
DE10324565A1 true DE10324565A1 (de) 2004-12-30

Family

ID=33482306

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10324565A Ceased DE10324565A1 (de) 2003-05-30 2003-05-30 Verfahren und Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese

Country Status (2)

Country Link
US (1) US7181720B2 (de)
DE (1) DE10324565A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725848B2 (en) 2005-01-27 2010-05-25 Wolfgang Nebel Predictable design of low power systems by pre-implementation estimation and optimization

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8365131B2 (en) * 2010-01-11 2013-01-29 Empire Technology Development Llc Hardware synthesis using thermally aware scheduling and binding
EP3414642A4 (de) * 2016-02-08 2020-09-30 Chaologix, Inc. Seitenkanalbewusster automatischer platz und route
US10740532B1 (en) * 2018-12-20 2020-08-11 Cadence Design Systems, Inc. Route driven placement of fan-out clock drivers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557531A (en) * 1990-04-06 1996-09-17 Lsi Logic Corporation Method and system for creating and validating low level structural description of electronic design from higher level, behavior-oriented description, including estimating power dissipation of physical implementation
US6314552B1 (en) * 1998-05-18 2001-11-06 Lev A. Markov Electronic design creation through architectural exploration
US6493863B1 (en) * 1999-11-15 2002-12-10 Matsushita Electric Industrial Co., Ltd. Method of designing semiconductor integrated circuit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463555A (en) * 1993-09-28 1995-10-31 The Dow Chemical Company System and method for integrating a business environment with a process control environment
US6026219A (en) * 1995-05-12 2000-02-15 Synopsys, Inc. Behavioral synthesis links to logic synthesis
US5912819A (en) * 1996-12-03 1999-06-15 Motorola, Inc. Method for designing an architectural system
US5907698A (en) * 1997-02-24 1999-05-25 Motorola, Inc. Method and apparatus for characterizing static and dynamic operation of an architectural system
US6324679B1 (en) * 1997-06-03 2001-11-27 Nec Usa, Inc. Register transfer level power optimization with emphasis on glitch analysis and reduction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557531A (en) * 1990-04-06 1996-09-17 Lsi Logic Corporation Method and system for creating and validating low level structural description of electronic design from higher level, behavior-oriented description, including estimating power dissipation of physical implementation
US6314552B1 (en) * 1998-05-18 2001-11-06 Lev A. Markov Electronic design creation through architectural exploration
US6493863B1 (en) * 1999-11-15 2002-12-10 Matsushita Electric Industrial Co., Ltd. Method of designing semiconductor integrated circuit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725848B2 (en) 2005-01-27 2010-05-25 Wolfgang Nebel Predictable design of low power systems by pre-implementation estimation and optimization

Also Published As

Publication number Publication date
US20050039150A1 (en) 2005-02-17
US7181720B2 (en) 2007-02-20

Similar Documents

Publication Publication Date Title
DE69724245T2 (de) Verfahren zur plazierung von taktpuffern in einem taktverteilungssystem
DE19824796B4 (de) Verfahren und Vorrichtung zur Leistungsoptimierung der Registerübertragungsebene, insbesondere mit einer Störimpuls-Analyse und -Reduktion
WO2003021366A1 (de) Verfahren zur validierung von simulationsergebnissen eines systems sowie darauf aufbauender äquivalenzvergleich digitaler schaltungen
DE60116769T2 (de) Verfahren und system zur hierarchischen metallenden-, einschliessungs- und belichtungsprüfung
DE19903633A1 (de) Implementierung von Boolescher Erfüllbarkeit mit nichtchronologischer Rückwärtsverarbeitung in rekonfigurierbarer Hardware
DE19860062A1 (de) Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSI
DE10025583A1 (de) Verfahren zur Optimierung integrierter Schaltungen, Vorrichtung zum Entwurf von Halbleitern und Programmobjekt zum Entwerfen integrierter Schaltungen
EP2799983B1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
DE202016107141U1 (de) Netzwerk stochastische Kreuzschicht-Optimierung zum Erreichen des Verkehrsflussverfügbarkeitziels zu Mindestkosten
DE10333087A1 (de) Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle
DE112018006540T5 (de) Dynamisches ersetzen eines aufrufs einer software-bibliothek durch einen aufruf eines beschleunigers
DE102022106423A1 (de) Verfahren zur Aufteilung von Simulationsmodellen zwischen einem Prozessor und einem FPGA
DE4327660C2 (de) Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung
DE10333088A1 (de) Verfahren zum Liefern von Zugriff auf die internen Signale eines dynamischen Systemmodells von außerhalb bezüglich der Modellierungsumgebung
DE10324594A1 (de) Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung
EP2363809B1 (de) Verfahren zur Optimierung eines Steuerprogramms für Aktuatoren
DE10324565A1 (de) Verfahren und Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese
EP2963541B1 (de) Implementierung einer Konstanten in FPGA-Code
DE60005830T2 (de) Verfahren und vorrichtung zum steuern eines sprungverzögerungsschlitzes in einem pipelineprozessor
EP1624614A1 (de) Automatische Planung von Netzwerkkonfigurationen
DE102004055898A1 (de) Berechnungsverfahren für das Packen einer Vielzahl von Kabeln und Berechnungsvorrichtung die dieses verwendet
DE112004001651T5 (de) Automatisches Layoutumwandlungsystem und -verfahren
DE10003101A1 (de) Nebenbedingungs-Erzeugungsvorrichtung für Logiksynthese und Nebenbedingungs-Erzeugungsverfahren dafür
DE102017104049B4 (de) Verfahren und vorrichtung zum überprüfen der zuverlässigkeit eines chips
EP3242232B1 (de) Optimierte erzeugung von gesamtnetzliste und bitstrom

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection