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
Links
- 238000000034 method Methods 0.000 title claims description 65
- 230000001934 delay Effects 0.000 title claims description 12
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 claims 1
- 238000013461 design Methods 0.000 description 33
- 238000009795 derivation Methods 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 19
- 238000004458 analytical method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000003247 decreasing effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000009625 temporal interaction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1985
- 1985-06-06 US US06/741,922 patent/US4698760A/en not_active Expired - Fee Related
-
1986
- 1986-03-18 JP JP61058459A patent/JPS61283220A/ja active Pending
- 1986-05-13 EP EP86106447A patent/EP0204178B1/de not_active Expired - Lifetime
- 1986-05-13 DE DE3689797T patent/DE3689797T2/de not_active Expired - Fee Related
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 |