DE3689797T2 - Verfahren zum Optimieren der Verzögerungen der zeitlichen Lage von Signalen und der Leistungsaufnahme in LSI-Schaltungen. - Google Patents

Verfahren zum Optimieren der Verzögerungen der zeitlichen Lage von Signalen und der Leistungsaufnahme in LSI-Schaltungen.

Info

Publication number
DE3689797T2
DE3689797T2 DE3689797T DE3689797T DE3689797T2 DE 3689797 T2 DE3689797 T2 DE 3689797T2 DE 3689797 T DE3689797 T DE 3689797T DE 3689797 T DE3689797 T DE 3689797T DE 3689797 T2 DE3689797 T2 DE 3689797T2
Authority
DE
Germany
Prior art keywords
power
circuit
delay
time
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3689797T
Other languages
English (en)
Other versions
DE3689797D1 (de
Inventor
Robert Francis Lembach
Steven Dean Lewis
Robert Russell Williams
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE3689797D1 publication Critical patent/DE3689797D1/de
Publication of DE3689797T2 publication Critical patent/DE3689797T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Description

  • Die gegenwärtige Erfindung bezieht auf den effizienten Entwurf von höchstintegrierten (VLSI) Schaltungen und besonders auf eine Methode zur Optimierung von Signalverzögerungszeiten durch LSI- Schaltungen über die richtige Auswahl der Leistungspegel der Schaltung.
  • Das Problem des Entwurfs von LSI-Schaltungen innerhalb von vorher festgelegter Beschränkungen im Zeitverhalten ist wohl bekannt und kann einfach als ein Problem zur Minimierung des Leistungsverbrauchs einer LSI-Schaltung erklärt werden, die Beschränkungen im Zeitverhalten, die der LSI-Schaltung aufgrund ihrer Zwischenverbindungen zu anderen Schaltungen auferlegt wurden, unterworfen ist. In jedem komplexen digitalen System werden Signale von einzelnen Schaltungen gesendet und empfangen, wobei sie ein voneinander abhängiges Zeitverhalten für den richtigen integrierten Betrieb benötigen. Die Wirkungsweise derartiger Schaltungen besteht darin, daß sie die An- oder Abwesenheit von Signalen an vorgegebenen Eingangsanschlüssen innerhalb eines vorgegebenen Zeit-"Fensters" nachweisen, wobei verschiedene vorher entworfene logische Kombinationen auf der Basis dieser nachgewiesenen Signale angelegt werden und Ausgangssignale für die nachfolgende Verarbeitung durch andere Schaltungen entwickelt werden. Systeme werden als komplexe Wechselwirkung derartiger Schaltungen entworfen, wobei sie einem Gesamt-Zeitablaufschema genügen, das die passende zeitliche Wechselwirkung aller Schaltungen sicherstellt.
  • Im LSI-Schaltungsentwurf wurde es zur Praxis, einen Gesamt-LSI- Chip aus den vorgegebenen Zwischenverbindungen einer Vielzahl einzelner Schaltungszellen zu formulieren. Ein typischer LSI- Chip kann mehrere tausend darauf aufgebauter Schaltungen besitzen, wobei die einzelnen Zellen innerhalb eines standardisierten Fertigungsprozesses erzeugt wurden, der gleichzeitig bei der Entwicklung des LSI-Chips angewandt wurde. Eine oder mehrere standardisierte Zellen sind miteinander verbunden, um unterschiedliche logische Kombinationen zu bilden und um wiederum spezielle logische Funktionen darstellen zu können, wobei jede als ein Logikblock irgendeiner vorgegebenen Definition identifiziert werden kann. Die Logikblöcke wurden entsprechend ihrer Kenndaten einer eigenen Leistungstreiberschaltung, und speziell mit der Fähigkeit zum Liefern mehrerer Werte zur Leistungstreiberfähigkeit entworfen.
  • Die Schaltzeiten einzelner Transistorschaltungen sind als Funktion der an die Schaltung angelegten Leistung bekannt, wobei es im Falle von logischen Blöcken ratsam ist, die Fähigkeit mehrerer Leistungstreiberpegel zu liefern, um die Auswahl eines passenden Leistungspegels zu ermöglichen und um somit die vorgegebenen Systemzeitparameter zu erreichen.
  • Natürlich ist es möglich, die schnellsten Signalübertragungszeiten durch bloßes Auswählen der höchst möglichen Leistungspegel zu erreichen, wobei es jedoch in einem komplexen System mit tausenden Schaltungsverbindungen weder notwendig noch wünschenswert ist, die schnellstmöglichen Übertragungszeiten einer einzelnen Schaltung zu erreichen, da unterschiedliche Logikblöcke unterschiedliche fortlaufende Schaltungsverbindungen besitzen und deshalb unterschiedliche Signalverzögerungen vom Eingang zum Ausgang liefern. Das bloße Zuweisen des höchst möglichen Leistungspegels an jeden Schaltungsblock zur Erzielung einer T(Laximalen Geschwindigkeit führt weiterhin zu einer unnötigen Verlustleistung, wenn eine derartige Geschwindigkeit unnötig ist. Deshalb ist dieses Problem ein Problem zur Bestimmung des minimalen Leistungsbedarfs einer gegebene Kombination von Logikblöcken, wobei dieser mit den allgemeinen und voneinander abhängigen Zeitanforderungen dieser Logikblöcke übereinstimmt.
  • Es wurden frühere Methoden entwickelt, um die zeitlichen Eigenschaften einer Vielzahl von Logikblöcken zu bestimmen und um einen Hinweis über die Zeitverzögerungswege zwischen den Blöcken zu liefern. Die US-Patentschrift 4 263 651 zeigt eine Methode für die Analyse von Logikblöcken, die in einer vorgegebenen Schaltungskonfiguration angeordnet sind, um zeitlich kritische Wege zu identifizieren und zu bestimmen, ob die Wegverzögerung solch kritischer Wege zu lang oder zu kurz ist. Diese Methode ermöglicht es, daß einzelne Logikblöcke umgestaltet werden können, wenn kritische Wege, die entweder zu lang oder zu kurz sind, identifiziert werden, um ein Gesamtsystem für einen zuverlässigen Betrieb zu liefern. Eine weitere Methode wurde in dem Artikel von R. B. Hitchocock, Sr et.: "Timing analysis of computer hardware" beschrieben. In dieser Methode wird ein Blackorientierter Algorithmus genutzt, um einen Entwurf, der einen genau angegebenen Taktzyklus betrifft, zu erhalten. In einem Artikel mit dem Titel "Analytical Power/Timing Optimization Technique for Digital System", vorgestellt auf der Fourteenth Design Automation Conference vom 20. bis 22. Juni 1977 in New Orleans, Louisiana, von A. E. Ruehli, P. K. Wolff, Sr. und G. Goertzel werden ebenfalls analytische Leistungs-/Zeittechniken beschrieben. Dieser Artikel beschreibt eine Methode für die Bestimmung der logischen Gateverzögerung, die eine Leistungsminimierung der digitalen Logik erreicht, während das Zeitverhalten des Systems erfüllt wird. Um die Analyse durchführen zu können, werden jedoch einfache Voraussetzungen für Leistungs-/Verzögerungsmodells benötigt.
  • Eine weitere Beschreibung einer Entwurfstechnik für Schaltungen dieses Typs wird in einem Artikel mit dem Namen "Philo - a VLSI Design System" diskutiert, der auf der Nineteenth Design Automation Conference, 14. bis 16. Juni 1982 in Las Vegas, Nevada, von den Autoren R. Donze, J. Sanders, M. Jenkins und G. Sporzynski vorgestellt wurde. Dieser Artikel beschreibt eine VLSI-Schaltungsentwurfstechnik, mit der die gegenwärtige Methode eindeutig angepaßt werden kann. Weiterhin wird ein Softwareprogramm für die Berechnung/Optimierung des Verzögerungsverhalten beschrieben, das jedem Logikblock analysiert, um dessen Ausgangslastkapazität zu bestimmen, die Schaltungsverzögerung zu berechnen, diese Verzögerung mit einem Zielwert der Verzögerung zu vergleichen und dann einen höheren Leistungspegel auszuwählen, wenn die originale Verzögerung nicht mit dem Zielwert zusammentrifft. Diese Technik setzt einen Verzögerungszielwert für den schlechtesten Fall für einzelne Logikblöcke voraus, wobei die Zwänge des Zeitverhaltens des Gesamtsystems keine Berücksichtigung finden und ein bloßes Fortsetzen einer Technik für das Erreichen der Zielwerte des Zeitverhalten einzelner Schaltungsblöcke ohne notwendige Berücksichtigung der Gesamtwirkung einer Vielzahl derartiger Logikblöcke in einem Zeitverhaltenproblem im Gesamtsystem stattfindet.
  • Es besteht die Notwendigkeit, eine Methode zur Optimierung des Leistungsbedarf eines einzelnen Logikblocks zu liefern, die mit den Erfordernissen und Zielen im Zeitverhalten des gesamten Systems übereinstimmt, wobei die Leistungspegel einzelner Logikblöcke für das Erreichen der Anforderungen an das Zeitverhalten des Gesamtsystems ausgewählt und eingestellt werden können. Es ist ein grundsätzlicher Gegenstand der Erfindung, eine Methode für die Optimierung der Signalverzögerungszeit und des Leistungsbedarf durch Mehrwege-LSI-Schaltungsnetzwerke gemäß Anspruch 1 zu liefern.
  • Zusammenfassung der Erfindung
  • Die Methode der gegenwärtigen Erfindung ist auf die Nutzung in Verbindung mit Logikblöcken anwendbar, wobei jeder der Blöcke die Fähigkeit zur Auswahl mehrerer Leistungstreiberpegel besitzt, wie es zum Beispiel durch die Aufnahme einer Vielzahl paralleler Leistungstreibertransistoren in den Logikblock, die einzeln in die Schaltung gekoppelt werden können, erreicht werden kann. Man kann in diesem Zusammenhang die Methode aus den folgenden Schritten bestehend betrachten: Initialisierung aller Logikblöcke auf den niedrigsten Leistungstreiberpegel; Berechnung aller Zeitverzögerungen durch jeden Logikblock; Durchführen einer Analyse des Zeitverhaltens über das gesamte Logiknetzwerk, das auf den Zeitverzögerungen der einzelnen Logikblöcke basiert; Vergleichen der Gesamtverzögerungszeiten mit einer geforderten Verzögerungszeit für das gesamte Logiknetzwerk und Berechnen eines "Verspätungs-"Wertes für das Netzwerk sowie Zuordnen des jeweiligen Beitrages des Logikblocks auf die Gesamt- "Verspätung" von jedem Logikblock; Setzen aller Logikblöcke auf ihren nächsthöheren Leistungstreiberpegel und Wiederholen der Berechnung der Zeitverzögerungen und der Analyse des Zeitverhaltens; Berechnung der "Verspätung" oder der negativen Zeitverzögerung für jeden der Logikblöcke und dem Nachweis, welcher der Logikblöcke die größte Ableitung des "Verspätungs-"Verhaltens besitzt; Erhöhung des Leistungstreiberpegels des Logikschaltungsblocks, der die höchste Ableitung des "Verspätungs-"Verhaltens besitzt, auf einen vorgegebenen Wert und Wiederberechnung der Gesamtzeitwerte sowie Wiederholung der obigen Schritte, bis es für das schrittweise Erhöhen des Leistungstreiberpegels zu keiner weiteren Verringerung der Verspätung kommt oder bis es mit der Zeitverzögerung keine Probleme mehr gibt.
  • Kurzbeschreibung der Zeichnungen
  • Die vorangegangene Methode wird durch die folgenden Beschreibungen und Ansprüche und unter Bezug auf die anhängenden Zeichnungen offenbar, wobei:
  • Fig. 1 in schematischer Form ein Beispiel für ein Logiknetzwerk zeigt, das zehn Logikblöcke besitzt;
  • Fig. 2 eine graphische Darstellung der Auswirkung des Leistungspegels auf die Zeitverzögerung und die Last zeigt und
  • Fig. 3 eine graphische Darstellung der Methode zeigt.
  • Beschreibung der bevorzugten Ausführungsform
  • Unter Bezugnahme auf Fig. 1 wird zunächst ein Beispiel eines repräsentativen Logiknetzwerkes gezeigt, das 10 Logikblöcke enthält und genutzt werden kann, um die gegenwärtige Methode zu beschreiben. Für den Zweck dieser Beschreibung werden wir voraussetzen, daß man bei jedem der in Fig. 1 dargestellten Logikblöcke 1 bis 10 die Möglichkeit hat, aus fünf Leistungspegeln auszuwählen, um, wie es von dem Gesamtlogik-Netzwerkentwurf gefordert wird, ein schrittweises Erhöhen der Signalübertragungsgeschwindigkeit zu ermöglichen. Der Ausdruck "Leistungspegel" ist eine allgemeine Beschreibung die beschreibt, wieviel Schaltungstreiberleistung in einem Logikblock benötigt wird, um ein Ausgangssignal innerhalb einer vorher festgelegten Zeit nach Empfang eines Eingangssignals zu liefern. Für jeden Leistungspegel gibt es eine "Strafe", die in Ausdrücken des Leistungsverbrauchs oder irgendeinem anderen relevanten Ausdruck beschrieben werden kann. In konventioneller Feldeffekttransistor- (FET) Logik oder Bipolarlogik entsprechen der Leistungspegel einfach dem Leistungsverbrauch eines Logikblocks, der gewöhnlich in Milliwatt festgelegt wird, sowie die "Strafe" in Milliwatt dem geforderten Leistungsverbrauch, um die geforderte Schaltzeit zu erreichen. In der CMOS-Technologie gibt es keine Leistung, außer der, die kurzzeitig benötigt wird, um Kapazitäten zu laden oder zu entladen, und um deshalb größere Lasten schneller steuern zu können, werden die Bauelemente größer gemacht. Die Leistung in Watt (oder Milliwatt) ist der geschalteten Kapazität direkt proportional. Obwohl die Leistung gewöhnlich für kleine Chips vernachlässigbar ist, kann sie für große Chips, die bei hohen Frequenzen arbeiten, kritisch werden. Für diesen Fall ist es üblich, die Gateabmessungen so klein wie möglich zu halten. Die "Strafe" in der CMOS-Technologie sind das erzeugte Schaltrauschen sowie die zusätzliche Belastung, die größere Bauelemente gegenüber früheren Bauelementen im Netzwerk darstellen.
  • Für den Fall des in Fig. 1 gezeigten Beispiels werden wir verschiedene Annahmen treffen, die sich auf die verfügbaren Leistungspegel und die Beziehungen zwischen Verzögerung, Leistungspegel und der Belastung der jeweiligen Logikblöcke beziehen. Fig. 2 zeigt eine repräsentative graphische Darstellung der Beziehung der Verzögerung als Funktion der hier genutzten Last. Jede der Kurven P1, P2, P3, P4 und P5 stellt die jeweils unterschiedlichen Leistungspegel in jeweils ansteigender Größenordnung dar. Der horizontale Maßstab ist in "Last-" Werten festgelegt, die eine Funktion eines bestimmten internen Entwurfes des Logikblocks sind. Das Diagramm in Fig. 2 zeigt, daß für eine gegebene Last eine Erhöhung des Leistungspegels zu einer Nettoverringerung der Verzögerungszeit durch den Logikblock führt. Umgekehrt zeigt das Diagramm in Fig. 2 für eine feste Anforderung an die Verzögerungszeit den Leistungspegel, der eingesetzt werden muß, um die festgelegte Verzögerungszeit mit einer gegebenen Last zu erreichen. Zum Beispiel zeigt die horizontal gepunktete Linie, die eine konstante Verzögerungszeit anzeigt, die jeweiligen Lasten des Logikblocks, die bei unterschiedlichen Leistungspegeln getrieben werden können. Mit anderen Worten wird es für eine Logikblockschaltung, die eine normalisierte Last von 1,0 besitzt, unter dem Leistungspegel P1 zu der gleichen Verzögerungszeit kommen, wie unter dem Leistungspegel P5, der benötigt wird, um diese Verzögerungszeit mit einer normalisierten Last von 4,0 zu erzielen. Es ist einsehbar, daß die Beziehung zwischen Verzögerungszeit und Last eine nichtlineare Funktion des Leistungspegels ist, wobei jedoch für einen gegebenen Logikblock das Verhältnis einfach bestimmt werden kann.
  • Es gibt einen weiteren Lastfaktor, der beim Entwurf von Netzwerken, die viele untereinander verbundene Logikblöcke enthalten, berücksichtigt werden muß. Dieser Lastfaktor ist eine Funktion der Anzahl unterschiedlicher Logikblöcke, die von einem bestimmten Logikblock angesteuert werden, wobei die Last an dem Treiber-Logikblock direkt zur Anzahl der Logikblöcke, mit denen dessen Ausgang verbunden ist, proportional ist. Dieser Lasteffekt ändert sich ebenfalls mit dem Leistungspegel und kann empirisch bestimmt werden. Für den hier dargestellten Fall der Beschreibung wird die Belastung einer Anschlußlast (PL) gleichgesetzt und durch einen Koeffizienten für jeden Signalpegel dargestellt. Diese Anschlußlast (PL), die mit den Ausgängen der Logikblöcke 6 bis 10 verbunden ist, wird für die Fälle des gegenwärtigen Beispiels als Null angenommen, da für die Ausgänge der Logikblöcke die Belastung dazu neigt, sich nicht mit Veränderungen im Leistungspegel zu ändern. Dies geschieht, weil die Ausgänge der Logikblöcke häufig mit Zwischenspeicherschaltungen verbunden sind, die eigentlich eine konstante Last an ihren Eingängen ungeachtet des ausgewählten Leistungspegels darstellen.
  • Um die Erklärung der Methode, die hier beschrieben wird, zu vereinfachen, werden wir voraussetzen, daß eine einfache Gleichung mit unterschiedlichen Koeffizienten für jeden Leistungspegel für die Verzögerung genutzt werden kann. Bei einem gegebenen Leistungspegel ist ein ,Logikblock durch eine vorgegebene feste Verzögerung plus einer variablen Verzögerung charakterisiert, wobei die variable Verzögerung durch multiplizieren eines Koeffizienten, der den Leistungspegel repräsentiert, mit der Summe aus der Schaltungslast (CL) des Logikblocks und der Anschlußlast (PL) bestimmt wird. Diese Gleichung wird in der folgenden Tabelle l dargestellt: Anschlußlast Tabelle 1 Leistungspegel Koeffizient (PL) Verzögerungsgleichung Laststrafe
  • Tabelle 1 zeigt, daß für einen anwachsenden Leistungspegel der Anschlußlast-Koeffizient ansteigt. Das bedeutet, die Einwirkung der Belastung auf nachfolgende Logikblöcke erhöht den Leistungsverbrauch als Ergebnis eines ansteigenden Leistungspegels im Treiberlogikblock. Tabelle 1 zeigt ebenfalls, daß die Koeffizienten der Verzögerungsgleichung kleiner werden, wenn der Leistungspegel von P1 auf P5 erhöht wird. Die letzte Spalte von Tabelle 1 zeigt die Laststrafe, zu der es als Ergebnis des ansteigenden Leistungspegels kommt, das heißt, es wird der Leistungsverbrauch in Milliwatt gezeigt, zu dem es als Ergebnis beim Erreichen einer kürzeren Verzögerungszeit kommt. Alle numerischen Koeffizienten aus Tabelle 1 können empirisch bestimmt werden und werden für das hier gelieferte Beispiel als wahr angenommen. In bestimmten Fällen können andere Formen einer komplexeren Berechnung der Verzögerung benötigt werden, jedoch wird hier die einfache Gleichung aus Tabelle 1 zur Illustration genutzt.
  • Für die Fälle des gegenwärtigen Beispiels wird vorausgesetzt, daß jeder der in Fig. 1 gezeigten Logikblöcke eine vorgegebene Last besitzt, die eine Funktion der für die Verbindung zwischen den Logikblöcken benutzten festen Leitungskopplung ist. Diese Last kann in Einheiten von Milliwatt, oder für das gegenwärtige Beispiel in Größen normalisierter Einheiten wie folgt festgelegt werden: Tabelle 2 Logikblock Last (CL) Nr. der Anschlußverbindungen
  • Tabelle 2 zeigt die angenommenen Lasten für jeden der Logikblöcke 1 bis 10, die in dem hier zu beschreibenden Beispiel genutzt werden. Tabelle 2 zeigt ebenfalls die Anzahl der Anschlußverbindungen an den jeweiligen Ausgängen von jedem der Logikblöcke aus Fig. 1, die durch Überprüfung von Fig. 1 bestimmt werden kann. Zum Beispiel hat der Logikblock 1 eine einfache Ausgangsverbindung zum Logikblock 4; Logikblock 4 hat drei Ausgangsverbindungen an die Logikblöcke 6, 7 und 8; Logikblock 2 hat zwei Ausgangsverbindungen an die Logikblöcke 4 und 5.
  • Unter Nutzung der Informationen, die in den Tabellen 1 und 2 gezeigt werden, ist es möglich, die jeweiligen Verzögerungen der Logikblöcke 1 bis 10 für jeden der Leistungspegel P1 bis P5 abzuleiten. Zum Beispiel zeigt Tabelle 3 die jeweiligen Verzögerungszeiten durch jeden der Logikblöcke 1 bis 10 für einen Leistungspegel P1. Durch Anwenden der Verzögerungsgleichung aus Tabelle 1 auf die Lastinformationen, die sich auf den Logikblock 1 beziehen, wird die Zeitverzögerung von 22,5 für den Logikblock 1 berechnet; dies ist die Zeit, um die ein Signal am Eingang von Logikblock 1 verzögert wird, bevor das Signal am Ausgang von Logikblock 1 zur Verfügung steht. Auf gleiche Weise können Berechnungen für jeden der Logikblöcke 2 bis 10 aus den in den Tabellen 1 und 2 dargestellten Daten durchgeführt werden. Unter Berücksichtigung der Verbindungen des Logikblocks aus Fig. 1 ist es möglich, die absolute Zeit zu berechnen, zu der ein Signal den Ausgang eines beliebigen gegebenen Logikblocks erreichen würde. Zum Beispiel hat Logikblock 4 ein Ausgangssignal zu einer Absolutzeit, die von der Verzögerung durch die Logikblöcke 1 und 2 sowie von der Verzögerung durch Logikblock 4 abhängig ist. Die Signaleingänge an Logikblock 4 kommen zu einer Absolutzeit von 22,5 (Block 1) und 30,0 (Block 2) an. Die letzte dieser Absolutzeiten ist 30,0, die zu der Zeitverzögerung von Logikblock 4 (42,5) addiert wird, um eine Absolutzeit von 72,5 zu erhalten, zu der das Ausgangssignal von Logikblock 4 zur Verfügung steht. Ähnliche Berechnungen können unter Bezugnahme auf alle Logikblöcke von Fig. 1 durchgeführt werden, um die in Tabelle 3 gezeigte Absolutzeitaufstellung zu erhalten. Diese Zeitaufstellung zeigt, daß das erste Ausgangssignal des gesamten Netzwerkes zu einer Absolutzeit von 65,0 (Block 10) erscheint, während das letzte Ausgangssignal des gesamten Netzwerkes zu einer Zeit von 97,5 (Block 7) erscheint. Tabelle 3 Logokblock Leistungspegel Zeitverzögerung Absolutzeit
  • Damit die in Tabelle 3 gezeigten Informationen eine relevante Bedeutung in Verbindung mit der gegenwärtigen Erfindung bekommen, ist es notwendig, die Absolutzeiten zu kennen, zu denen die Ausgangssignale von den Logikblöcken benötigt werden, um den Designerfordernissen des Gesamtsystems zu entsprechen. Für Fälle des gegenwärtigen Beispiels haben wir einen Satz Forderungen an das Zeitverhalten vorausgesetzt, für die Ausgangssignale an den Ausgängen der Blöcke 6 bis 10 zu in Tabelle 4 gezeigten Absolutzeiten benötigt werden. Wenn die absoluten Ausgangszeiten einmal bekannt sind, ist es möglich, die anderen Werte, die in Verbindung mit der gegenwärtigen Methode hilfreich sind, zu berechnen.
  • Für Fälle der Ausführung der Methode ist es hilfreich, eine "Schlupf-" Zeit zu definieren, wobei diese aus der Differenz der Absolutzeit, zu der ein Signal an dem jeweiligen Ausgang benötigt wird, und der Absolutzeit, zu der das Signal wirklich an dem Ausgang erscheint, gebildet wird. Unter Nutzung dieser Definition der "Schlupf-" Zeit ist es möglich, für jeden Logikblock aus Fig. 1 unter den Bedingungen eines beliebigen Leistungstreiberpegels die Schlupfzeit zu berechnen.
  • Es ist weiterhin hilfreich, eine "Verspätungs-" Zeit zu definieren, wobei diese aus der Summe aller negativen Schlupfzeiten, die ein gegebener Ausgang des gesamten Logiknetzwerkes erzeugt, gebildet wird. Zum Beispiel zeigt Tabelle 4 die Absolutzeiten, wobei die für die Ausgangssignale an den Logikblöcken 6 bis 10 benötigten Zeiten 50, 50, 50, 70 beziehungsweise 80 (Nanosekunden) betragen. Für die Logikblöcke 1 bis 5 gibt es keine absoluten Zeitanforderungen, da sich diese Logikblöcke innerhalb des gesamten Logiknetzwerkes befinden und gewöhnlich keinen absoluten Zeitanforderungen unterworfen werden. Tabelle 4 Logikblock erforderliche Absolutzeit Schlupfzeit Verspätungszeit
  • Unter Bezugnahme auf die in der Tabelle 3 dargestellten Zeiten und auf die in Tabelle 4 dargestellten Anforderungen an die Absolutzeit ist es möglich, für jeden Logikblock eine Schlupfzeit zu berechnen. Zum Beispiel zeigt Tabelle 4 das Ausgangssignal von Block 6, das zu einer Absolutzeit = 50 benötigt wird, wobei die Bezugnahme auf Tabelle 3 (und Fig. 1) zeigt, daß das Ausgangssignal von Logikblock 6 von den Signalen von Logikblock 4 abhängt, wobei dieses wiederum von den Signalen der Blöcke 1 und 2 abhängt. Die Zeitverzögerungen durch die Logikblöcke 1, 4 und 6 betragen insgesamt 85,0 Nanosekunden; die Zeitverzögerungen durch die Logikblöcke 2, 4 und 6 betragen insgesamt 92,5 Nanosekunden. Da das Signal nach einer Zeit von 50 Nanosekunden am Ausgang des Logikblocks 6 benötigt wird, gibt es unter der Bedingung eine Schlupfzeit von -42,5 (50 minus 92,5) am Ausgang von Logikblock 6, daß der Leistungspegel P1 an alle 10 Logikblöcke angelegt wird. Die Schlupfzeit für Logikblock 1 wird durch Addition der Zeitverzögerungen von Logikblock 1, Logikblock 4 und der größten der jeweiligen Verzögerungszeiten für die Logikblöcke 6 bis 8 berechnet; mit anderen Worten, die Zeitverzögerung von Logikblock 1 (22,5) plus der Zeitverzögerung von Logikblock 4 (42,5) plus der größten Zeitverzögerung der Logikblöcke 6 bis 8 (25,0) ergibt eine Signalzeit, die, wenn sie von der erforderlichen Signalzeit (50) subtrahiert wird, eine Schlupfzeit von -40,0 für den Logikblock 1 ergibt. Ähnliche Berechnungen können durchgeführt werden, um die in Tabelle 4 unter der Überschrift "Schlupfzeit" gezeigten Daten zu erhalten.
  • Die "Verspätungszeit" ist definiert als Summe aller negativen Schlupfzeiten an den Ausgängen des Logiknetzwerkes, die durch einen bestimmten Logikblock beeinflußt werden. Zum Beispiel beeinflußt Logikblock 1 die Ausgangssignale der Logikblöcke 6 bis 8 und hat deshalb einen Verspätungswert, der sich aus der Summe der Schlupfzeiten der Logikblöcke 6 bis 8 (-42,5, -47,5, -37,5) berechnet, woraus sich eine Verspätungszeit für den Logikblock 1 von 127,5 ergibt. Gleichermaßen beeinflußt Logikblock 2 die Schlupfzeitwerte von 11 Ausgängen der Logikblöcke 6 bis 10, wobei die Addition der negativen Schlupfzeiten aller dieser Logikblöcke einen Verspätungswert für den Logikblock 2 von 137,5 ergibt. Der Logikblock 3 beeinflußt nur das Ausgangssignal von Logikblock 10, und da die Schlupfzeit von Logikblock 3 positiv ist, ist die "Verspätungszeit" von Logikblock 3 gleich null. Unter Bezugnahme auf die Logikblöcke 4 bis 10 können gleiche Berechnungen durchgeführt werden, um die in Tabelle 4 unter der Überschrift "Verspätungszeit" gezeigten Daten zu erzeugen. Unter weiterer Bezugnahme auf Fig. 1 werden dort eine Reihe in ein Diagramm gezeichneter Kurven gezeigt, das die gegenwärtige Methode repräsentiert. Der horizontale Maßstab des Diagramms von Fig. 3 stellt die "Schlupfzeit", so wie sie oben definiert wurde, dar, und ist in aufsteigender Folge beginnend mit einer Anzahl negativer Schlupfwerte bis zu einer Anzahl positiver Schlupfwerte unterteilt, wobei diese um den "Nullpunkt" angeordnet sind. Dieser stellt den kleinsten zu akzeptierenden Schlupfwert dar, der für das Logiknetzwerk benötigt wird, um die Entwurfsanforderungen für die Ausgangssignale des Logiknetzwerkes zu erfüllen. Damit das Logiknetzwerk die minimalen Entwurfsanforderungen erfüllt, müssen alle Logikblöcke eine Schlupfzeit besitzen, die null oder positiv ist. Der vertikale Maßstab des Diagramms von Fig. 3 ist in Prozent eingeteilt, um die Prozentanteile der Logikblöcke im gesamten Logiknetzwerk aufzuzeigen, die unter eine festgelegte Schlupfzeit fallen.
  • Die ganz linke Kurve in Fig. 3 setzt sich aus den in Tabelle 4 gezeigten Daten, die eine tabellarische Darstellung der Schlupfzeiten für die unterschiedlichen Logikblöcke unter den Bedingungen von Leistungspegel P1 darstellen, zusammen. Unter den Bedingungen von Leistungspegel P1 wurde, wie in Tabelle 1 dargestellt, allen zehn Logikblöcken die kleinste Leistung auferlegt, was eine Laststrafe von 1,0 (Milliwatt) nach sich zieht. Da sich alle Logikblöcke auf einem P1 Leistungspegel befinden, beträgt die Gesamtlaststrafe 10,0 (Milliwatt). Die ganz linke Kurve in Fig. 3 zeigt deshalb, daß unter den Bedingungen einer minimalen Leistungssteuerung etwa 90 Prozent der Logikblöcke Schlupfzeiten besitzen, die kleiner den entsprechend dem Entwurf geforderten Zeit sind. Das Diagramm zeigt, daß wenigstens bei einigen Logikblöcken die Leistungspegel erhöht werden müssen, um die minimalen Anforderungen des Zeitverhaltens entsprechend dem Entwurf zu erfüllen, wobei es ein Gegenstand der gegenwärtigen Methode ist, einen Ansatz für das selektive Festlegen der Leistungstreiberforderungen eines passenden Logikblocks zu entwickeln, um somit sicherzustellen, daß alle Schlupfzeiten bei der Strafe der kleinsten Gesamtverbrauchsleistung positiv werden. Die mittlere Kurve von Fig. 3 zeigt ein Beispiel für eine Kurve, bei der den Forderungen an das Zeitverhalten entsprechend dem Entwurf nach den Lehren der gegenwärtigen Methode entsprochen wird, wobei die Strafe des Leistungsverbrauchs beinahe optimal minimiert ist. Die am weitesten rechte Kurve in Fig. 3 zeigt eine Kurve, die entsprechend dem schlechtesten Fall gezeichnet wurde, wobei die Leistungstreiberpegel aller Logikblöcke auf den Leistungspegel P5 gesetzt wurden. Unter diesen Bedingungen wird es offensichtlich, daß die Schlupfzeiten aller Logikblöcke eindeutig, jedoch bei einer Strafe des Leistungsverbrauchs von 46,0, den Zeitanforderungen des Entwurfs genügen. Die Ausführung der gegenwärtigen Methode wird es dem Entwerfer ermöglichen, die passende Kombination von Leistungstreiberpegeln für die Logikblöcke zu erkennen, um die mittlere Kurve von Fig. 3 zu erreichen.
  • Als ein weiterer Schritt in der Darstellung der Methode werden die Leistungstreiberpegel aller zehn Logikblöcke auf den nächst höheren Leistungspegel (P2) gesetzt und die in den Tabellen 3 und 4 gezeigten Daten unter den Bedingungen des Leistungspegels P2 neu berechnet. Die Ergebnisse dieser Berechnungen werden in Tabelle 5 gezeigt, wobei es offensichtlich wird, daß sich die Schlupfzeiten im Bereich von -34,0 (Blöcke 2 und 7) bis +52,8 (Block 3) ändern werden. Die Verspätungszeit, so wie sie oben definiert wurde, ändert sich von -90.0 auf 0. Die Daten von Tabelle 5 zeigen eine geringe Gesamtverbesserung in der Schlupfzeit und Verspätungszeit, sie zeigen jedoch auch, daß die Entwurfsanforderungen an ein minimales Zeitverhalten, wenn alle Logikblöcke auf einen Leistungspegel P2 gesetzt werden, nicht erreicht werden.
  • Der nächste Schritt in der Vorstellung der Methode ist es, eine Ableitung zu formulieren, die genutzt werden kann, um zu erkennen, welche Logikblöcke am meisten dazu beitragen, den Entwurfsanforderungen an das Zeitverhalten für das geringste Ansteigen der Laststrafe zu entsprechen. Diese Ableitung ist wie folgt definiert:
  • DERV = Verspätung (1)/Strafe (1) - Verspätung (2)/Strafe (2)
  • Die Berechnung der Ableitung (DERV) wurde deshalb aus den in Tabelle 4 und 5 dargestellten Daten, welche die jeweiligen Verspätungszeiten für jeden Logikblock zeigen, und aus den in Tabelle 1 gezeigten Daten der Laststrafe, welche die Laststrafe für einen gegebenen Leistungstreiberpegel zeigen, durchgeführt. Tabelle 5 zeigt die Ergebnisse der DERV-Berechnung und zeigt an, daß Logikblock 2 den größten DERV-Wert (237,5) besitzt. Dies läßt darauf schließen, daß der sich auf einem Minimum befindende Logikblock 2 auf den Leistungspegel P2 für den nächsten Schritt bei der Vorstellung der Methode gesetzt werden muß. Um diesen Schritt auszuführen, werden alle Leistungspegel der Logikblöcke auf den Leistungspegel P1 zurückgesetzt, wobei Logikblock 2 als Ausnahme auf den Leistungspegel P2 gesetzt wird. Die Zeitverzögerungen, Schlupfzeiten und Verspätungszeiten werden unter diesen Leistungstreiberbedingungen neu berechnet, um die in Tabelle 6 gezeigten Ergebnisse zu erreichen. Als nächstes werden die Leistungspegel von jedem der Logikblöcke 1 bis 10 um einen Leistungspegel erhöht und die Daten einschließlich DERV-Daten, wie in Tabelle 7 dargestellt, neu berechnet.
  • Tabelle 7 zeigt, daß die relativen Beiträge zur Verspätung meist durch Höher legen der Leistungspegel der Logikblöcke 1 und 4 verbessert werden können, da diese Logikblöcke den größten Wert für DERV zeigen (196,5). Deshalb wird der nächste iterative Schritt der Methode durch schrittweise Erhöhung der Leistungstreiberpegel der Blöcke 1 und 4 auf den nächst höheren Pegel (P2) ausgeführt.
  • Die Tabellen 8 und 9 zeigen die Ergebnisse der Berechnungen für das Erhöhen der Leistungspegel um einen Schritt für die Logikblöcke 1 und 4 (Tabelle 8), und für weiteres Erhöhen aller Leistungspegel um einem weiteren Pegel, um den DERV-Wert (Tabelle 9) zu erhalten, welcher der vorher beschriebenen Methode genügt. Tabelle 9 zeigt, daß der höchste Beitrag zur Verringerung der Gesamtverspätung durch schrittweises Erhöhen des Leistungspegels von Logikblock 2 erhalten wird, wobei für den Logikblock 2 ein DERV-Wert von 163,3 angezeigt wird.
  • Es ist aus der Beschreibung der ausgeführten Schritte entsprechend der Methode erkennbar, daß jeder Iterationszyklus der Methode zwei Berechnungssätze mit sich bringt: als erstes wird der Leistungspegel des Logikblocks mit dem höchsten DERV-Wert schrittweise erhöht und es werden die Schlupfzeiten und Verspätungszeiten für alle Logikblöcke berechnet; als zweites werden alle Leistungspegel für alle Logikblöcke schrittweise erhöht, um eine zweite Berechnung der Schlupfzeiten und Verspätungszeiten zu liefern; als drittes wird der DERV-Wert aus den jeweiligen zwei Sätzen der vorher erwähnten Berechnungen berechnet; als viertes wird der Leistungspegel des Logikblocks mit dem höchsten DERV-Wert schrittweise erhöht. Diese Schritte werden wiederholt. Jedesmal wenn die Iterationen wiederholt werden, verringern sich die Ergebnisse aus den Berechnungen der Schlupfzeiten und Verspätungszeiten in Richtung null, wobei die Iterationen fortgesetzt werden, bis die gesamten Verspätungszeiten aller Logikblöcke null werden. Wenn dies erreicht wurde, ergeben sich aus der Methode die notwendigen Leistungspegel für jeden einzelnen Logikblock, so daß den minimalen Zeitanforderungen folgerichtig mit der geringsten Gesamt-Leistungsstrafe entsprochen werden kann.
  • Die Tabellen 4 und 5, 6 und 7, 8 und 9 stellen drei Iterationen der hier beschriebenen Methode dar. Während dieser drei Iterationen wird die Verspätungszeit von -137,5 auf -92,8 abgesenkt, während sich die Gesamt-Leistungsstrafe von 10,0 auf 10,6 erhöht.
  • Tabelle 10 zeigt in abgekürzter Form die Ergebnisse der Iterationen Nr. 4, Nr. 5 und Nr. 6. Diese Iterationen erzeugen successive kleiner werdende Verspätungszeiten und successive kleiner werdende DERV-Werte, die Verspätungszeiten verringern sich von -60,6 auf -42,7 und die Leistungsstrafe erhöht sich von 10,9 auf 11,7. Tabelle 5 Logikblock Leist.-Pegel Zeitverz. Absolutzeit Schlupfzeit Versp. Zeit DERV Tabelle 6 Logikblock Leist.-Pegel Zeitverz. Absolutzeit Schlupfzeit Versp. Zeit Tabelle 7 Logikblock Leist.-Pegel Zeitverz. Absolutzeit Schlupfzeit Versp. Zeit DERV Tabelle 8 Logikblock Leist.-Pegel Zeitverz. Absolutzeit Schlupfzeit Versp. Zeit Tabelle 9 Logikblock Leist.-Pegel Zeitverz. Absolutzeit Schlupfzeit Versp. Zeit DERV Tabelle 10 Logikblock Leist. Pegel Versp. Zeit DERV Tabelle 11 Logikblock Leist. Pegel Versp. Zeit DERV Tabelle 12 Logikblock Leist. Pegel Versp. Zeit DERV Tabelle 13 Logikblock Leist.-Pegel Zeitverz. Abs.-Zeit Entw.-Zeit Schl.-Zeit Versp.-Zeit
  • Tabelle 11 zeigt eine gekürzte Zusammenfassung der aus den Iterationen Nr. 7, Nr. 8 und Nr. 9 errechneten Ergebnisse. Diese drei Iterationen resultieren in einer Verringerung der Verspätungszeit von -41,4 auf 37,9 und einem Gesamtzuwachs der Leistungsverbrauchsstrafe von 11,9 auf 12,4. Es soll festgehalten werden, daß nach der 9. Iteration die Leistungspegel der Logikblöcke in vier Logikblöcken (1, 2, 4 und 7) auf den P3-Pegel und in zwei Logikblöcken (6 und 7) auf den P2-Pegel angewachsen, sowie in vier Logikblöcken (3, 5, 9 und 10) auf dem P1-Leistungspegel verblieben sind.
  • Tabelle 12 zeigt in gekürzter Form die Ergebnisse der Berechnungen aus den Iterationen Nr. 10, 11 und 12. Nach der 12. Iteration haben sich die Verspätungszeit in allen Fällen auf 0,0 und der DERV-Wert ebenfalls auf 0,0 verringert. Dies zeigt, daß die optimierte Lösung gefunden ist und keine weiteren Iterationen notwendig sind, um die Zeitanforderungen des gesamten Netzwerkes zu erfüllen. Die sich aus den Iterationen 10 bis 12 ergebende Leistungsverbrauchsstrafe reicht von 12,7 bis 15,1 wobei die Methode anzeigt, daß die minimalen Leistungspegel, die erforderlich sind, um den Betrieb innerhalb der Zeitanforderungen des Entwurfs zu erreichen, es erfordern, daß die Logikblöcke 1, 2 und 4 auf den Leistungspegel P4, die Logikblöcke 6 und 7 auf den Leistungspegel P3, der Logikblock 8 auf den Leistungspegel P2 und die Logikblöcke 3, 5, 9 und 10 auf den minimalen Leistungspegel P1 gesetzt werden. Tabelle 13 zeigt die spezifischen Zeitberechnungen als Ergebnis des Setzens der Logikblöcke 1 bis 10 auf die jeweiligen oben angezeigten Leistungspegel. Die Spalte mit der Bezeichnung "Absolutzeit" zeigt, daß die Signalausgänge der Logikblöcke 1 bis 10 von 10,6 bis 63,6 (Block 9) schwanken, wenn sie jedoch mit den Zeitanforderungen des Entwurf verglichen werden, zeigt sich, daß die Ausgangssignale der Logikblöcke 6 bis 10 sich innerhalb geforderten Zeiten bewegen. Wie oben erwähnt, beträgt die Strafe für den Gesamtleistungsverbrauch 15,1 (Milliwatt).
  • Die in der Tabelle 13 gezeigten Daten werden ebenfalls im Diagramm von Fig. 3 in der mittleren Kurve dargestellt. Diese Kurve zeigt, daß alle Logikblöcke positive Schlupfwerte haben und stellt somit eine Lösung dar, die sich sehr dicht an der bestmöglichen Lösung für die im Beispiel berücksichtigten Entwurfsparameter befindet. Im Kontrast dazu illustriert die ganz rechte Kurve in Fig. 3 das relative Zeitverhalten für den Fall, daß alle Logikblöcke auf den Leistungspegel P5 gesetzt wurden. Unter Nutzung dieser Kurve wird erkennbar, daß das gesamte Logiknetzwerk leicht mit den Zeitanforderungen des Entwurfs, jedoch mit einer Leistungsverbrauchsstrafe von 46,0 oder dem dreifachen des Leistungsverbrauchs, der für eine optimale Auswahl des Leistungstreiberpegels, wie er mit der gegenwärtigen Methode bestimmt werden kann, in Übereinstimmung gebracht werden kann. Fig. 3 illustriert allgemein den Fortschritt von Zwischenlösungen als Ergebnis des Praktizierens der Methode. Die ganz linke Kurve von Fig. 3 zeigt den besten Fall für Anforderungen hinsichtlich des Leistungsverbrauchs, jedoch den schlechtesten Fall für Anforderungen hinsichtlich des Zeitverhaltens. Diese Kurve illustriert, daß etwa 90 Prozent der Schaltungen einen negativen Schlupfwert haben, was wiederum anzeigt, daß das Verhalten der Gesamtschaltung weit entfernt ist von einer Übereinstimmung mit den minimalen Anforderungen an das Zeitverhalten. Wenn die Schritte der iterativen Methode ausgeführt werden, kommt es bei dem Diagramm von Fig. 3 zu einem Trend der Zwischenlösungen in Richtung rechts. Die Lösung für den besten Fall des Zeitverhaltens wird an der äußerst rechten Kurve von Fig. 3 gezeigt, wobei diese Kurve jedoch unter den Bedingungen des schlechtesten Leistungsverbrauchs gefunden wurde. Diese Kurve überschreitet ebenfalls die Anforderungen an ein minimales Zeitverhalten, da alle Schaltungen postive Schlupfwerte besitzen, die im Bereich von +20,0 bis +30,0 liegen. Diese Lösung stellt deshalb eine Übertreibung des Entwurfs dar, weil für den Leistungsverbrauch ein Übermaß an Leistung benötigt wird, um die Anforderungen an das Zeitverhalten dem Entwurf entsprechend erreichen zu können. Die mittlere Kurve aus Fig. 3 stellt eine Annäherung an die optimale Lösung des Entwurfs dar, wie in Tabelle 13 gezeigt, wobei unter diesen Bedingungen die Schlupfzeit für alle Schaltungen leicht positiv ist und die Strafe für den Leistungsverbrauch etwa 30 Prozent des Wertes der entsprechend des Entwurfs übertriebenen Lösung beträgt.
  • Um die geforderten Ergebnisse zu erhalten ist es möglich, einige der detaillierten Ausführungsschritte der hier beschriebenen Methode zu ändern. Beispielsweise wird die bevorzugte Methode für die Ausführung einer Zeitanalyse zur Bestimmung der Signalzeitverzögerungen durch jeden der Schaltungsblöcke in der US-Patentschrift 4 263 651 beschrieben, es können jedoch für diesen Schritt der Methode andere Formen der Zeitanalyse angewandt werden.
  • Der Schritt der Berechnung der Verspätungswerte für jeden Schaltungsblock sollte nur negative Schlupfzeiten enthalten, da es die negativen Schlupfwerte sind, die mit Schaltungsblöcken verbunden sind und die realen Probleme im Zeitverhalten widerspiegeln. Nach der Berechnung des Verspätungswertes ist es möglich, die Schaltungsblöcke über den Betrag des negativen Schlupfes, der jeden Schaltungsblock steuert, auszusortieren. Mit anderen Worten ermöglicht dieser Schritt es zu bestimmen, über welche Schaltungsblöcke der negative Schlupf hereinkommt.
  • Die Berechnung von Ableitungen der Arbeitsleistung ist eine Berechnung der Verspätungsänderung in Bezug auf die Änderung des Verhaltens des Leistungspegels. Diese Berechnung zeigt die Fähigkeit von jedem gegebenen Schaltungsblock für das Entfernung von negativem Schlupf als Ergebnis einer schrittweisen Erhöhung der an den Schaltungsblock angelegten Leistung. Wenn die Ableitung der Arbeitsleistung eines Schaltungsblocks einen von Null verschiedenen Wert aufweist, hat er die Fähigkeit, etwas negativen Schlupf aus dem Entwurf zu entfernen. Bei der Auswahl, bei welchen der Schaltungsblöcke die Leistungstreiberpegel erhöht werden sollen, kann es als Ergebnis der Identifikation der Schaltungsblöcke mit den höchsten Ableitungen der Arbeitsleistung erforderlich werden, die Leistungstreiberpegel während jedem iterativen Schritt bei der Ausführung der Methode in mehr als einem Schaltungsblock zu erhöhen. Beispielsweise können n% der Schaltungsblöcke, welche die höchsten Ableitungen der Arbeitsleistung haben, schrittweise während eines einzelnen iterativen Schrittes erhöht werden, während die Gesamtzahl der iterativen Schritte, die zum Abschluß der Methode erforderlich sind, verringert wird. Wenn jedoch diese Option ausgewählt wurde, muß besondere Sorgfalt gehegt werden, um nicht Leistungstreiberpegel von Schaltungsblöcken mit hohen Ableitungen der Arbeitsleistung zu erhöhen, bei denen die Schaltungsblöcke von anderen Schaltungsblöcken angesteuert werden, die hohe Ableitungen der Arbeitsleistung haben. Diese Sorgfalt muß gehegt werden, da ein Erhöhen des Leistungstreiberpegels des ersten Schaltungsblocks in einer seriellen Kette von Schaltungsblöcken mit hohen Ableitungen der Arbeitsleistung die Bedingungen für die serielle Verspätung, die in aufeinanderfolgenden Schaltungsblöcken beobachtet wurde, beseitigt. Es kann später notwendig werden, den umgekehrten Prozeß anzuwenden, da dann niedrigere Leistungspegel keine "Verspätung" zulassen werden.
  • Bei der schrittweisen Erhöhung der Leistungstreiberpegel unterschiedlicher Schaltungsblöcke während der Ausführung der Methode kann es erforderlich werden, den Schaltungstreiberpegel um mehr als einen einzelnen Leistungstreiberpegelschritt schrittweise zu erhöhen. Beispielsweise kann es erforderlich werden, während einer einzigen Iteration entsprechend der Methode einen gegebenen Schaltungsblock von einem P1 Leistungspegel auf einen P3 Leistungspegel zu erhöhen, wobei es notwendig wird, die Gesamtzahl der benötigten Iterationen zu verringern.
  • Wie oben dargestellt wurde, werden die Schritte der iterativen Methode bis zu dem Zeitpunkt ausgeführt, bei dem keine weiteren Änderungen des Leistungsverhaltens auftreten und es in keinem der Schaltungsblöcke mehr einen negativen Schlupf gibt. Wenn die Lösung zeigt, daß keine weitere Änderung im Pegel des Leistungsverhaltens beobachtet wird, es jedoch in einigen Schaltungsblöcken weiterhin negative Schlupfzeiten gibt, muß geschlußfolgert werden, daß die Technologie des Schaltungsentwurfes nicht mit den Anforderungen im Zeitverhalten, die dem gesamten Netzwerk auferlegt wurden, übereinstimmt. In diesem Fall müssen entweder eine Modifizierung der Anforderungen im Zeitverhalten oder Änderungen im logischen Entwurf durchgeführt werden, oder es müssen technologische Änderungen durchgeführt werden, um einen anderen Schaltungsaufbau zu erhalten.
  • Es ist einsehbar, daß die verschiedenen Berechnungen und iterativen Schritte, die für die Ausführung der Methode erforderlich sind, mit Hilfe von Softwareroutinen für Computer ausgeführt werden können. Derartige Softwareroutinen können leicht für die Ausführung von jedem iterativen Schritt entsprechend der Methode vorbereitet werden, und sie werden es ermöglichen, daß es zu einer Annäherung an die benötigte Lösung in einer relativ kurzen Zeit kommt. Es können im Gegensatz dazu ebenfalls Softwareroutinen geschrieben werden, die es ermöglichen, einen Vergleich aller möglichen Leistungstreiberpegel als Funktion aller möglichen Verzögerungszeiten durchzuführen, jedoch ist die praktische Ausführung dieser Methode nur für sehr kleine Logiknetzwerke effektiv. Beispielsweise gibt es für das hier zur Illustration der Methode herangezogene relativ einfache Beispiel etwa 10 Millionen mögliche Lösungen, die alle hier diskutierten Variablen umfassen.
  • Um die Effektivität der hier beschriebenen Methode zu beweisen, wurde ein Computerprogramm für das gegenwärtige Beispiel geschrieben, um alle möglichen Zuweisungen an die Leistungspegel, die in dem logischen Netzwerk nach Fig. 1 genutzt werden können, umfassend auszuprobieren. Das Programm wurde geschrieben, um alle 10 Millionen möglichen Lösungen für das Problem zu testen, und somit zu bestimmen, welche Leistungspegelauswahl mit den Anforderungen an das Zeitverhalten entsprechend dem Entwurf mit der geringsten Strafe für den Leistungsverbrauch übereinstimmt. Diese erschöpfende Studie erzeugte sieben Lösungen aus den 10 Millionen möglichen Lösungen, die geringere Strafen für den Leistungsverbrauch erzeugen, als die hierin beschriebene Methode. Die beste Lösung der 10 Millionen Möglichkeiten erzeugte eine Strafe für den Leistungsverbrauch von 1,41, wobei für die Leistungstreiberpegel aller Logikblöcke außer denen von Logikblock 1 und Logikblock 8 dieselbe Auswahl getroffen wurde wie bei der gegenwärtigen Methode. Die beste Methode erfordert es, daß Logikblock 1 auf Leistungspegel P3 und Logikblock 8 auf Leistungspegel P1 gesetzt werden, um eine Nettoersparnis des Leistungsverbrauchs für das gewählte Beispiel von etwa 5 Prozent zu erreichen. Diese für das hier beschriebene Beispiel angetestete Methode der vollständigen Problemlösung ist für ein komplexeres Logiknetzwerk keine mögliche Alternative. Für sehr große VLSI- Chips, die vielleicht 2.000 bis 3.000 Logikschaltungen unterbringen können, gibt es auch mit fortschrittlicher Computertechnik keinen möglichen Weg, alle möglichen Lösungen zu erhalten. Gemäß der gegenwärtigen Methode wird die Auswahl von optimalen Leistungspegeln, die mit den Anforderungen an das Zeitverhalten entsprechend dem Entwurf über eine iterative Prozedur ermöglicht, die sich stark an die optimale Lösung anlehnt.

Claims (3)

1. Eine Methode zur Optimierung von Signalverzögerungszeiten und dem Leistungsverbrauch von Mehrwege-LSI-Schaltungsnetzwerken, die aus einer Vielzahl Schaltungsblöcken konstruiert sind, wobei jeder Schaltungsblock eine Vielzahl ihm zugeordneter wählbarer Leistungstreiberpegel besitzt, welche die Signalverzögerungszeiten des Schaltungsblocks bestimmen, wobei die Methode die folgenden Schritte umfaßt:
a) Bestimmung der benötigten Verzögerungszeiten an den Ausgängen des Mehrwege-Schaltungsnetzwerkes;
b) Bestimmung der Zeitverzögerungen und der Leistungsverbrauchskennlinien von jedem Schaltungsblock für die gesamte Vielzahl der Leistungstreiberpegel;
c) Initialisierung aller Leistungstreiberpegel des Schaltungsblocks auf ihre jeweils niedrigsten Pegel;
d) Berechnung der Zeitverzögerungen bei einem ersten Leistungstreiberpegel über alle Schaltungsblöcke hinweg und Bestimmung der aktuellen Verzögerungszeiten des Schaltungsnetzwerkes durch Aufsummierung der Verzögerungszeiten der Schaltungsblöcke über das Mehrwege-Schaltungsnetzwerk hinweg;
e) Berechnung eines "Schlupfzeit-" Wertes für jeden Schaltungsblock durch Subtrahieren der aktuellen Verzögerungszeiten des Schaltungsnetzwerkes von den benötigten Verzögerungszeiten des Schaltungsnetzwerkes, wobei die "Schlupfzeit-" Werte für jeden Schaltungsblock aus der Verzögerungszeit des Schaltungsnetzwerkes bis zum Ausgang des jeweiligen Schaltungsblocks berechnet werden;
f) Berechnung eines "Verspätungszeit-" Wertes für jeden der Schaltungsblöcke durch Summierung der negativen "Schlupfzeit-" Werte des Schaltungsblocks, dessen Ausgangssignal durch das Mehrwege-Netzwerk des Schaltungsblocks des jeweiligen Schaltungsblocks beeinflußt wurde;
g) Wiederholung der Schritte d) bis f) auf dem nächst höheren inkrementalen Leistungstreiberpegel;
h) Bildung einer Ableitung der Arbeitsleistung für jeden Schaltungsblock durch Subtraktion des zweiten "Verspätungs"- Wertes für den Leistungstreiberpegel von dem ersten "Verspätungs-"Wert für den Leistungstreiberpegel und Division des Ergebnisses durch einen Nenner, der aus der Subtraktion des Leistungsverbrauchs des zweiten Leistungstreiberpegels von dem Leistungsverbrauch des ersten Leistungstreiberpegels gebildet wird.
i) Identifizierung des Schaltungsblocks, der die höchsten Ableitungen der Arbeitsleistung besitzt, und setzen des Leistungstreiberpegels von wenigstens einem der Schaltungsblöcke auf einen zweiten Pegel, während die jeweiligen Schaltungsblöcke auf den ersten Leistungstreiberpegel zurückkehren;
j) Wiederholen der Schritte d) bis i) durch Ersetzen des ersten originalen Leistungstreiberpegels durch den im Schritt
i) ausgewählten und ersetzten des zweiten Leistungstreiberpegels durch einen inkrementell erhöhten Leistungstreiberpegel für den zweiten Leistungstreiberpegel bis die "Verspätungszeit-" Werte für alle Schaltungsblöcke im wesentlichen auf Null verringert wurden; und
k) Wählen der Leistungstreiberpegel, die im Schritt j) bestimmt wurden, als die Leistungstreiberpegel für jeden der Schaltungsblöcke.
2. Die Methode nach Anspruch 1, dadurch gekennzeichnet, daß der Schritt i) zur Identifizierung der Schaltungsblöcke, welche die höchsten Ableitungen der Arbeitsleistung besitzen, weiterhin nur einen Schaltungsblock identifiziert.
3. Die Methode nach Anspruch 1, dadurch gekennzeichnet, daß der Schritt i) zur Identifizierung der Schaltungsblöcke, welche die höchsten Ableitungen der Arbeitsleistung besitzen, weiterhin die Identifizierung von n der Schaltungsblöcke umfaßt, wobei n eine Zahl ungleich Null ist.
DE3689797T 1985-06-06 1986-05-13 Verfahren zum Optimieren der Verzögerungen der zeitlichen Lage von Signalen und der Leistungsaufnahme in LSI-Schaltungen. Expired - Fee Related DE3689797T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/741,922 US4698760A (en) 1985-06-06 1985-06-06 Method of optimizing signal timing delays and power consumption in LSI circuits

Publications (2)

Publication Number Publication Date
DE3689797D1 DE3689797D1 (de) 1994-05-26
DE3689797T2 true DE3689797T2 (de) 1994-11-24

Family

ID=24982779

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3689797T Expired - Fee Related DE3689797T2 (de) 1985-06-06 1986-05-13 Verfahren zum Optimieren der Verzögerungen der zeitlichen Lage von Signalen und der Leistungsaufnahme in LSI-Schaltungen.

Country Status (4)

Country Link
US (1) US4698760A (de)
EP (1) EP0204178B1 (de)
JP (1) JPS61283220A (de)
DE (1) DE3689797T2 (de)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4827428A (en) * 1985-11-15 1989-05-02 American Telephone And Telegraph Company, At&T Bell Laboratories Transistor sizing system for integrated circuits
US4815003A (en) * 1987-06-19 1989-03-21 General Electric Company Structured design method for high density standard cell and macrocell layout of VLSI chips
US4916627A (en) * 1987-12-02 1990-04-10 International Business Machines Corporation Logic path length reduction using boolean minimization
US4924430A (en) * 1988-01-28 1990-05-08 Teradyne, Inc. Static timing analysis of semiconductor digital circuits
US5012427A (en) * 1988-01-30 1991-04-30 Kabushiki Kaisha Toshiba Semiconductor integrated circuit and method of manufacturing the same
JPH01274277A (ja) * 1988-04-26 1989-11-02 Hitachi Ltd 負荷分配方式
US5003487A (en) * 1988-06-28 1991-03-26 International Business Machines Corporation Method and apparatus for performing timing correction transformations on a technology-independent logic model during logic synthesis
US5173864A (en) * 1988-08-20 1992-12-22 Kabushiki Kaisha Toshiba Standard cell and standard-cell-type integrated circuit
WO1990008362A2 (en) * 1989-01-13 1990-07-26 Vlsi Technology, Inc. Method for analyzing datapath elements
JP2522541B2 (ja) * 1989-03-24 1996-08-07 三菱電機株式会社 シミュレ―ション装置及びシミュレ―ション方法
US4940908A (en) * 1989-04-27 1990-07-10 Advanced Micro Devices, Inc. Method and apparatus for reducing critical speed path delays
JP2901087B2 (ja) * 1989-10-17 1999-06-02 株式会社東芝 半導体集積回路の電源配線設計方法及び電源配線設計装置
US5210700A (en) * 1990-02-20 1993-05-11 International Business Machines Corporation Automatic delay adjustment for static timing analysis
JPH03260773A (ja) * 1990-03-09 1991-11-20 Fujitsu Ltd Lsiの組合せ回路自動合成処理方法
US5235521A (en) * 1990-03-30 1993-08-10 International Business Machines Corporation Reducing clock skew in large-scale integrated circuits
US5077676A (en) * 1990-03-30 1991-12-31 International Business Machines Corporation Reducing clock skew in large-scale integrated circuits
US5218551A (en) * 1990-04-30 1993-06-08 International Business Machines Corporation Timing driven placement
US5191541A (en) * 1990-05-14 1993-03-02 Sun Microsystems, Inc. Method and apparatus to improve static path analysis of digital circuits
US5617325A (en) * 1990-06-22 1997-04-01 Vlsi Technology, Inc. Method for estimating interconnect delays in integrated circuits
JP2563663B2 (ja) * 1990-08-20 1996-12-11 松下電器産業株式会社 論理設計処理装置およびタイミング調整方法
US5274568A (en) * 1990-12-05 1993-12-28 Ncr Corporation Method of estimating logic cell delay time
US5367469A (en) * 1990-12-13 1994-11-22 Vlsi Technology, Inc. Predictive capacitance layout method for integrated circuits
US5237514A (en) * 1990-12-21 1993-08-17 International Business Machines Corporation Minimizing path delay in a machine by compensation of timing through selective placement and partitioning
US5365463A (en) * 1990-12-21 1994-11-15 International Business Machines Corporation Method for evaluating the timing of digital machines with statistical variability in their delays
US5168455A (en) * 1991-03-28 1992-12-01 Digital Equipment Corporation Procedure for incorporating timing parameters in the synthesis of logic circuit designs
US5392221A (en) * 1991-06-12 1995-02-21 International Business Machines Corporation Procedure to minimize total power of a logic network subject to timing constraints
JP2854733B2 (ja) * 1991-08-23 1999-02-03 三菱電機株式会社 遅延時間計算装置及び遅延時間計算方法
JP3172211B2 (ja) * 1991-09-05 2001-06-04 富士通株式会社 回路合成システム
JP3139184B2 (ja) * 1991-11-20 2001-02-26 日本電気株式会社 半導体メモリの自動設計方法
US6090150A (en) * 1991-12-28 2000-07-18 Nec Corporation Method of designing clock wiring and apparatus for implementing the same
JP2776120B2 (ja) * 1992-03-10 1998-07-16 日本電気株式会社 集積回路の電源配線布設方法
US5402356A (en) * 1992-04-02 1995-03-28 Vlsi Technology, Inc. Buffer circuit design using back track searching of site trees
US5359535A (en) * 1992-05-04 1994-10-25 Motorola, Inc. Method for optimization of digital circuit delays
JPH0660139A (ja) * 1992-08-05 1994-03-04 Mitsubishi Electric Corp Mosトランジスタの論理機能ブロックの消費電力計算装置
US5629859A (en) * 1992-10-21 1997-05-13 Texas Instruments Incorporated Method for timing-directed circuit optimizations
US5553000A (en) * 1992-11-05 1996-09-03 Nec Usa, Inc. Eliminating retiming bottlenecks to improve performance of synchronous sequential VLSI circuits
JP2863684B2 (ja) * 1993-03-09 1999-03-03 株式会社日立製作所 半導体集積回路のディレイ最適化システム、および、ディレイ最適化方法
US5956257A (en) * 1993-03-31 1999-09-21 Vlsi Technology, Inc. Automated optimization of hierarchical netlists
US5654898A (en) * 1993-05-10 1997-08-05 Cascade Design Automation Corporation Timing-driven integrated circuit layout through device sizing
US5535223A (en) * 1993-05-28 1996-07-09 Sun Microsystems, Inc. Method and apparatus for the verification and testing of electrical circuits
US5581738A (en) * 1993-06-07 1996-12-03 Xilinx, Inc. Method and apparatus for back-annotating timing constraints into simulation models of field programmable gate arrays
US5596505A (en) * 1993-07-23 1997-01-21 Vlsi Technology, Inc. Estimation of pin-to-pin timing for compiled blocks
US5581475A (en) * 1993-08-13 1996-12-03 Harris Corporation Method for interactively tailoring topography of integrated circuit layout in accordance with electromigration model-based minimum width metal and contact/via rules
US5461576A (en) * 1993-09-01 1995-10-24 Arcsys, Inc. Electronic design automation tool for the design of a semiconductor integrated circuit chip
JPH0793386A (ja) * 1993-09-28 1995-04-07 Fujitsu Ltd Lsi実装設計システム
JPH07114580A (ja) * 1993-10-18 1995-05-02 Fujitsu Ltd 論理装置の遅延時間解析システム
US5504694A (en) * 1993-10-28 1996-04-02 Motorola, Inc. Method of cell characterization for energy dissipation
US5521834A (en) * 1993-11-30 1996-05-28 At&T Global Information Solutions Company Method and apparatus for calculating dynamic power dissipation in CMOS integrated circuits
JP3182036B2 (ja) * 1994-02-16 2001-07-03 松下電器産業株式会社 論理合成方法及び論理合成装置
US5668732A (en) * 1994-06-03 1997-09-16 Synopsys, Inc. Method for estimating power consumption of a cyclic sequential electronic circuit
US5774371A (en) * 1994-08-03 1998-06-30 Matsushita Electric Industrial Co., Ltd. Semiconductor integrated circuit and layout designing method for the same
GB2292823B (en) * 1994-08-26 1998-12-02 Quickturn Design Systems Inc Method for automatic clock qualifier selection in reprogrammable hardware emulation systems
US5598348A (en) * 1994-09-22 1997-01-28 Sun Microsystems, Inc. Method and apparatus for analyzing the power network of a VLSI circuit
US5636372A (en) * 1994-09-30 1997-06-03 International Business Machines Corporation Network timing analysis method which eliminates timing variations between signals traversing a common circuit path
US5515302A (en) * 1994-11-07 1996-05-07 Motorola, Inc. Method for identifying excessive power consumption sites within a circuit
US5615127A (en) * 1994-11-30 1997-03-25 International Business Machines Corporation Parallel execution of a complex task partitioned into a plurality of entities
US6272668B1 (en) 1994-12-14 2001-08-07 Hyundai Electronics America, Inc. Method for cell swapping to improve pre-layout to post-layout timing
US5625803A (en) * 1994-12-14 1997-04-29 Vlsi Technology, Inc. Slew rate based power usage simulation and method
US5612636A (en) * 1995-01-19 1997-03-18 Texas Instruments Incorporated Short circuit power optimization for CMOS circuits
US5787011A (en) * 1995-01-19 1998-07-28 Texas Instruments Incorporated Low-power design techniques for high-performance CMOS circuits
JP3245036B2 (ja) * 1995-03-14 2002-01-07 株式会社東芝 集積回路の能動素子サイジング装置およびサイジング方法
US5880967A (en) * 1995-05-01 1999-03-09 Synopsys, Inc. Minimization of circuit delay and power through transistor sizing
US5805859A (en) * 1995-06-07 1998-09-08 Synopsys, Inc. Digital simulator circuit modifier, network, and method
US5764532A (en) * 1995-07-05 1998-06-09 International Business Machines Corporation Automated method and system for designing an optimized integrated circuit
US5841672A (en) * 1996-02-13 1998-11-24 Vlsi Technology, Inc. Method and apparatus for verifying signal timing of electrical circuits
US5691910A (en) * 1996-06-10 1997-11-25 Lsi Logic Corporation Generic gate level model for characterization of glitch power in logic cells
US5838580A (en) * 1996-06-20 1998-11-17 Sun Microsystems, Inc. Method of optimizing repeater placement in long lines of a complex integrated circuit
US6009253A (en) * 1996-06-20 1999-12-28 Sun Microsystems, Inc. Spare repeater amplifiers for long lines on complex integrated circuits
JP3085277B2 (ja) * 1998-03-27 2000-09-04 日本電気株式会社 遅延解析システム
US6028995A (en) * 1998-03-31 2000-02-22 Lsi Logic Corporation Method of determining delay in logic cell models
US6237127B1 (en) * 1998-06-08 2001-05-22 Synopsys, Inc. Static timing analysis of digital electronic circuits using non-default constraints known as exceptions
US6397170B1 (en) 1998-08-18 2002-05-28 International Business Machines Corporation Simulation based power optimization
US6338025B1 (en) 1998-10-08 2002-01-08 International Business Machines Corp. Data processing system and method to estimate power in mixed dynamic/static CMOS designs
US6260184B1 (en) * 1998-10-20 2001-07-10 International Business Machines Corporation Design of an integrated circuit by selectively reducing or maintaining power lines of the device
US6311310B1 (en) 1999-04-08 2001-10-30 International Business Machines Corporation Method and apparatus for wiring integrated circuits with multiple power buses based on performance
US6470486B1 (en) * 1999-05-26 2002-10-22 Get2Chip Method for delay-optimizing technology mapping of digital logic
US6763506B1 (en) 2000-07-11 2004-07-13 Altera Corporation Method of optimizing the design of electronic systems having multiple timing constraints
US7020589B1 (en) * 2000-09-29 2006-03-28 Lsi Logic Corporation Method and apparatus for adaptive timing optimization of an integrated circuit design
US6792582B1 (en) 2000-11-15 2004-09-14 International Business Machines Corporation Concurrent logical and physical construction of voltage islands for mixed supply voltage designs
US6625781B2 (en) * 2001-01-26 2003-09-23 Nec Electronics, Inc. Multi-level power macromodeling
US6779162B2 (en) 2002-01-07 2004-08-17 International Business Machines Corporation Method of analyzing and filtering timing runs using common timing characteristics
US7007247B1 (en) * 2002-05-24 2006-02-28 Cadence Design Systems, Inc. Method and mechanism for RTL power optimization
US6930510B2 (en) * 2003-03-03 2005-08-16 Xilinx, Inc. FPGA architecture with mixed interconnect resources optimized for fast and low-power routing and methods of utilizing the same
US7003747B2 (en) * 2003-05-12 2006-02-21 International Business Machines Corporation Method of achieving timing closure in digital integrated circuits by optimizing individual macros
US7584441B2 (en) * 2003-09-19 2009-09-01 Cadence Design Systems, Inc. Method for generating optimized constraint systems for retimable digital designs
US7243312B1 (en) * 2003-10-24 2007-07-10 Xilinx, Inc. Method and apparatus for power optimization during an integrated circuit design process
US20050278659A1 (en) * 2004-05-27 2005-12-15 Xiaonan Zhang Cell library providing transistor size information for automatic circuit design
US7114134B2 (en) * 2004-05-27 2006-09-26 Veri Silicon Holdings, Co. Ltd Automatic circuit design method with a cell library providing transistor size information
US7426710B2 (en) * 2004-05-27 2008-09-16 Verisilicon Holdings, Co. Ltd. Standard cell library having cell drive strengths selected according to delay
US7254802B2 (en) * 2004-05-27 2007-08-07 Verisilicon Holdings, Co. Ltd. Standard cell library having cell drive strengths selected according to delay
US7155692B2 (en) * 2004-09-01 2006-12-26 Hewlett-Packard Development Company, L.P. Method and system for performing timing analysis on a circuit
US7284229B1 (en) 2004-10-01 2007-10-16 Xilinx, Inc. Multiple bitstreams enabling the use of partially defective programmable integrated circuits while avoiding localized defects therein
US7424655B1 (en) 2004-10-01 2008-09-09 Xilinx, Inc. Utilizing multiple test bitstreams to avoid localized defects in partially defective programmable integrated circuits
US7290235B2 (en) * 2005-09-22 2007-10-30 International Business Machines Corporation Method and system for embedding wire model objects in a circuit schematic design
US7331029B2 (en) * 2005-09-22 2008-02-12 International Business Machines Corporation Method and system for enhancing circuit design process
US7318212B2 (en) * 2005-09-22 2008-01-08 International Business Machines Corporation Method and system for modeling wiring routing in a circuit design
US7350171B2 (en) * 2005-11-17 2008-03-25 Lizheng Zhang Efficient statistical timing analysis of circuits
US8010931B1 (en) * 2006-02-24 2011-08-30 University Of Southern California Tool for a configurable integrated circuit that uses determination of dynamic power consumption
US7389485B1 (en) 2006-03-28 2008-06-17 Xilinx, Inc. Methods of routing low-power designs in programmable logic devices having heterogeneous routing architectures
US7614023B2 (en) 2006-10-25 2009-11-03 Infineon Technologies Ag System for estimating a terminal capacitance and for characterizing a circuit
US7853916B1 (en) 2007-10-11 2010-12-14 Xilinx, Inc. Methods of using one of a plurality of configuration bitstreams for an integrated circuit
US7810059B1 (en) * 2007-10-11 2010-10-05 Xilinx, Inc. Methods of enabling the validation of an integrated circuit adapted to receive one of a plurality of configuration bitstreams
US7958474B2 (en) * 2008-06-26 2011-06-07 Oracle America, Inc. Highly threaded static timer
US8987868B1 (en) 2009-02-24 2015-03-24 Xilinx, Inc. Method and apparatus for programmable heterogeneous integration of stacked semiconductor die
US7893712B1 (en) 2009-09-10 2011-02-22 Xilinx, Inc. Integrated circuit with a selectable interconnect circuit for low power or high performance operation
US8239796B2 (en) * 2009-12-31 2012-08-07 University Of Utah Method and system for synthesizing relative timing constraints on an integrated circuit design to facilitate timing verification
US9015023B2 (en) 2010-05-05 2015-04-21 Xilinx, Inc. Device specific configuration of operating voltage
US8527935B1 (en) 2013-01-07 2013-09-03 Freescale Semiconductor, Inc System for reducing power consumption of electronic circuit
US9000490B2 (en) 2013-04-19 2015-04-07 Xilinx, Inc. Semiconductor package having IC dice and voltage tuners
US8762922B1 (en) 2013-10-13 2014-06-24 Freescale Semiconductor, Inc. System for reducing leakage power of electronic circuit
US9703910B2 (en) 2015-07-09 2017-07-11 International Business Machines Corporation Control path power adjustment for chip design
CN113448907B (zh) * 2021-08-31 2021-12-21 北京智联安科技有限公司 一种低功耗串行异步收发器及数据接收方法、介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US935003A (en) * 1908-08-18 1909-09-28 Frederick A Dyson Merry-go-round.
US3702003A (en) * 1970-10-09 1972-10-31 Marathon Oil Co Algorithm to minimize iterative computation in a process for the analysis or design of a physical system
GB1352988A (en) * 1971-12-30 1974-05-15 Ibm Method for fabricating integrated circuits
UST935003I4 (en) 1974-02-19 1975-06-03 Process for selecting circuits with optimum
US4263651A (en) * 1979-05-21 1981-04-21 International Business Machines Corporation Method for determining the characteristics of a logic block graph diagram to provide an indication of path delays between the blocks
US4593363A (en) * 1983-08-12 1986-06-03 International Business Machines Corporation Simultaneous placement and wiring for VLSI chips

Also Published As

Publication number Publication date
US4698760A (en) 1987-10-06
EP0204178A3 (en) 1990-03-21
EP0204178A2 (de) 1986-12-10
DE3689797D1 (de) 1994-05-26
JPS61283220A (ja) 1986-12-13
EP0204178B1 (de) 1994-04-20

Similar Documents

Publication Publication Date Title
DE3689797T2 (de) Verfahren zum Optimieren der Verzögerungen der zeitlichen Lage von Signalen und der Leistungsaufnahme in LSI-Schaltungen.
DE3853265T2 (de) Reduzierung der logischen Weglänge unter Verwendung von Boolescher Minimierung.
DE3689538T2 (de) Integrierte Schaltung und Optimierungsverfahren dafür.
DE69232720T2 (de) Übertragungsmultiplexer mit einer reihenschaltung von gattern
DE19824796B4 (de) Verfahren und Vorrichtung zur Leistungsoptimierung der Registerübertragungsebene, insbesondere mit einer Störimpuls-Analyse und -Reduktion
EP0453582B1 (de) Medianfilter
DE10143101A1 (de) Verfahren zur Validierung von Simulationsergebnissen eines Systems sowie darauf aufbauender Äquivalenzvergleich digitaler Schaltungen
EP0123921A2 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE4403917C2 (de) Vorrichtung zum Berechnen einer Bit-Besetzungszählung
DE3632639C2 (de) Einrichtung zum Hochgeschwindigkeitsverarbeiten von Bilddaten durch Faltung
DE112005001906B4 (de) Mehrbit-Addierer und Verfahren zum Propagieren, Generieren oder Killen von Carry-In-Bits entlang einer Carry-Kette
DE2758130C2 (de) Binärer und dezimaler Hochgeschwindigkeitsaddierer
DE2063199B2 (de) Einrichtung zur Ausführung logischer Funktionen
DE3889150T2 (de) Filter n-ten Ranges.
DE4327660C2 (de) Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung
DE3447634C2 (de)
EP0352549B1 (de) Carry-select-Addierer
DE69026414T2 (de) Binäres Addiergerät
DE10205559B4 (de) Integrierte Schaltung und Verfahren und Vorrichtung zum Entwurf einer integrierten Schaltung
EP0130397B1 (de) Digitales Rechenwerk
DE19701779A1 (de) Digitalfilter
DE69713247T2 (de) Lernverfahren in Binärsystemen
EP1402423B1 (de) Verfahren zur bestimmung des kritischen pfades einer integrierten schaltung
EP0305708A2 (de) Digitales Dezimierungsfilter
DE2837574A1 (de) Treiber fuer integrierte schaltungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee