DE112013005833T5 - Analyse zeitlicher Leitungsengpässe zur Steuerung einer Optimierung mit nützlichem Versatz - Google Patents

Analyse zeitlicher Leitungsengpässe zur Steuerung einer Optimierung mit nützlichem Versatz Download PDF

Info

Publication number
DE112013005833T5
DE112013005833T5 DE112013005833.2T DE112013005833T DE112013005833T5 DE 112013005833 T5 DE112013005833 T5 DE 112013005833T5 DE 112013005833 T DE112013005833 T DE 112013005833T DE 112013005833 T5 DE112013005833 T5 DE 112013005833T5
Authority
DE
Germany
Prior art keywords
logical
path
slip
signal
sequence
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.)
Pending
Application number
DE112013005833.2T
Other languages
English (en)
Inventor
Aiqun Cao
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.)
Synopsys Inc
Original Assignee
Synopsys Inc
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 Synopsys Inc filed Critical Synopsys Inc
Publication of DE112013005833T5 publication Critical patent/DE112013005833T5/de
Pending legal-status Critical Current

Links

Images

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/12Timing analysis or timing 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)

Abstract

Es werden Verfahren und Systeme zum Steuern einer Schaltungsoptimierung beschrieben. Einige Ausführungsformen berechnen einen Satz von aggregierten Schlupfen für einen Satz von Abfolgen logischer Pfade eines Chipentwurfs. Jede Abfolge von logischen Pfaden beginnt an einem primären Eingang oder einem sequenziellen Schaltungselement, das lediglich ein Signal abgibt, aber kein Signal aufnimmt, und endet an einem primären Ausgang oder einem sequenziellen Schaltungselement, das lediglich ein Signal aufnimmt, jedoch kein Signal abgibt. Danach steuern die Ausführungsformen eine Schaltungsoptimierung des Chipentwurfs auf Basis des Satzes aggregierter Schlupfe.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Diese Offenbarung betrifft die Entwurfsautomatisierung elektronischer Systeme (EDA, von englisch: electronic design automation). Diese Offenbarung bezieht sich im Besonderen auf eine Chipentwurfsoptimierung.
  • Stand der Technik
  • Fortschritte in der Verfahrenstechnologie und ein praktisch unstillbares Verlangen nach Unterhaltungselektronik waren der Antrieb für eine rasante Zunahme von Größe und Komplexität beim Entwurf integrierter Schaltungen (IC). Aufgrund der rasanten Zunahme der Größe und Komplexität von IC-Entwürfen, wird es zunehmend schwieriger, eine höhere Beschreibung eines Chipentwurfs in eine Realisierung umzuwandeln, die einen Satz zeitlicher Bedingungen erfüllt und gleichzeitig zusätzliche Metrik optimiert, wie beispielsweise Fläche, Verlustleistung, usw..
  • KURZBESCHREIBUNG
  • Einige der in dieser Schrift beschriebenen Ausführungsformen geben Verfahren und Systeme zum Steuern einer Optimierung eines Chipentwurfs an. Einige der hierin beschriebenen Ausführungsformen berechnen einen Satz von aggregierten Schlupfen (in dieser Offenbarung auch als Superpfadschlupfe (englisch: super path slacks) bezeichnet) für einen Satz von Abfolgen logischer Pfade eines Chipentwurfs. Jede Abfolge logischer Pfade beginnt an einem primären Eingang oder einem sequenziellen Schaltkreiselement, das lediglich ein Signal abgibt, jedoch kein Signal aufnimmt und endet an einem primären Ausgang oder einem sequenziellen Schaltkreiselement, das lediglich ein Signal aufnimmt, jedoch kein Signal abgibt. Anschließend steuern die Ausführungsformen eine Schaltungsoptimierung des Chipentwurfs auf Basis des Satzes von aggregierten Schlupfen. Genauer gesagt steuern einige Ausführungsformen die Schaltungsoptimierung, die vor der Taktbaumsynthese (CTS von englisch: clock tree synthesis) durchgeführt wird, auf Basis des Satzes von aggregierten Schlupfen.
  • Bei einigen Ausführungsformen umfasst das Steuern der Schaltungsoptimierung des Chipentwurfs, dass nicht versucht wird, einen Zeitverstoß auf einem logischen Pfad einer Abfolge von logischen Pfaden zu beheben, deren aggregierter Schlupf größer oder gleich Null ist.
  • Bei einigen Ausführungsformen umfasst das Steuern der Schaltungsoptimierung des Chipentwurfs, dass versucht wird, einen Zeitverstoß auf einem logischen Pfad einer Abfolge von logischen Pfaden zu beheben, deren aggregierter Schlupf negativ ist.
  • Bei einigen Ausführungsformen umfasst das Steuern der Schaltungsoptimierung des Chipentwurfs, dass versucht wird, einen aggregierten Schlupf einer Abfolge von logischen Pfaden zu erhöhen, deren aggregierter Schlupf negativ ist.
  • Bei einigen Ausführungsformen umfasst das Steuern der Schaltungsoptimierung des Chipentwurfs ein Zuweisen einer Priorität zu einem logischen Pfad auf Basis dessen umfasst, wie viele Abfolgen logischer Pfade mit negativem Schlupf den logischen Pfad enthalten, wobei die Schaltungsoptimierung versucht, die Taktgeberschlupfe logischer Pfade in der Reihenfolge abnehmender Priorität zu vergrößern. Der logische Pfad, der von den meisten Abfolgen logischer Pfade (d. h. der größten Anzahl von Superpfaden) mit negativem Schlupf gemeinsam genutzt wird, kann als ”Taktgeberengpass” bezeichnet werden.
  • Bei einigen Ausführungsformen umfasst das Steuern der Schaltungsoptimierung des Chipentwurfs, dass eine Schaltungsoptimierung beendet wird, wenn alle aggregierten Schlupfe in dem Satz von aggregierten Schlupfen größer oder gleich Null sind.
  • KURZBESCHREIBUNG DER FIGUREN
  • 1 veranschaulicht einen Chipentwurf gemäß einiger hierin beschriebener Ausführungsformen.
  • 2 veranschaulicht, wie eine Steuerung auf Basis einer Superpfadanalyse gemäß einiger hierin beschriebener Ausführungsformen geschaffen werden kann.
  • 3A3B veranschaulichen ein Beispiel gemäß einiger hierin beschriebener Ausführungsformen, bei dem ein sequenzielles Schaltungselement unter Verwendung von mehreren Taktgebern getaktet wird.
  • 4 veranschaulicht einen Chipentwurf gemäß einiger hierin beschriebener Ausführungsformen, der eine Schleife aufweist.
  • 5 veranschaulicht ein Verfahren gemäß einiger hierin beschriebener Ausführungsformen für die Berechnung und Verwendung von Superpfadschlupfen.
  • 6 veranschaulicht ein Computersystem gemäß einiger hierin beschriebener Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die nachfolgend vorgelegte Beschreibung, die im Kontext einer bestimmten Anwendung und deren Anforderungen erstellt wurde, ermöglicht einem Fachmann Ausführung und Gebrauch der Erfindung. Fachleute werden ohne Wseiteres erkennen, dass die offenbarten Ausführungsformen in verschiedenster Weise modifiziert und die in dieser Beschreibung definierten allgemeinen Prinzipien auf andere Ausführungsformen und Anwendungen übertragen werden können, ohne Kern und Umfang der vorliegenden Erfindung zu verlassen. Daher ist die in dieser Schrift offenbarte Erfindung nicht auf die vorgestellten Ausführungsformen beschränkt, sondern weist den breitesten, mit den hierin offenbarten Prinzipien und Merkmalen noch vereinbaren Umfang auf. Wenn in dieser Offenbarung bei einer Auflistung von Entitäten der Begriff ”und/oder” verwendet wird, dann bezieht er sich auf alle möglichen Kombinationen der aufgelisteten Entitäten. Der Ausdruck ”X, Y und/oder Z” deckt zum Beispiel die folgenden Fälle ab: (1) nur X, (2) nur Y, (3) nur Z, (4) X und Y, (5) X und Z, (6) Y und Z, sowie (7) X, Y und Z.
  • Übersicht über einen Prozess zur Entwurfsautomatisierung elektronischer Systeme (EDA)
  • Ein EDA-Prozess kann zum Erzeugen eines Chipentwurfs verwendet werden. Nach Abschluss des Chipentwurfs können zur Herstellung integrierter Schaltkreischips Fertigung, Aufbau und Montage folgen. Ein EDA-Prozess kann mehrere Schritte umfassen, wobei jeder Schritt die Verwendung von einem oder mehreren EDA-Programmierwerkzeugen umfassen kann. Einige EDA-Schritte und Programmierwerkzeuge werden nachfolgend beschrieben. Die angeführten Beispiele für EDA-Schritte und Programmierwerkzeuge dienen lediglich der Veranschaulichung und sind nicht dazu bestimmt, Ausführungsformen auf offenbarte Ausbildungen zu beschränken.
  • Einige EDA-Programmierwerkzeuge ermöglichen Schaltungsentwicklern die Beschreibung der Funktionalität des Chipentwurfs. Diese Werkzeuge ermöglichen Schaltungsentwicklern auch die Durchführung von ”Was-Wäre-Wenn”-Planungen zur Weiterentwicklung der Funktionalität, Kostenprüfung usw.. Beim logischen Entwurf und der Funktionalitätsprüfung kann Code für Module des Systems in einer Hardwarebeschreibungssprache (HDL, von englisch: hardware description language), z. B. System Verilog, geschrieben und der Entwurf auf seine funktionelle Richtigkeit geprüft werden; beispielsweise kann der Entwurf geprüft werden, um sicherzustellen, dass er die korrekten Ausgaben erzeugt.
  • Während der Synthese und zum Testen des Entwurfs kann der HDL-Code unter Verwendung von einem oder mehreren EDA-Programmierwerkzeugen in eine Netzliste übersetzt werden. Die Netzliste kann zudem auf die Zieltechnologie optimiert werden und es können Tests zum Prüfen der fertigen Chips entworfen und ausgeführt werden. Während der Verifikation der Netzliste kann die Netzliste auf ihre Konformität mit zeitlichen Randbedingungen und ihre Übereinstimmung mit dem HDL-Code geprüft werden.
  • Während der Entwurfsplanung kann ein Gesamtlageplan (englisch: Overall floorplan) des Chips erstellt und das zeitliche Verhalten und die Globalverdrahtung (englisch: top-level routing) können analysiert werden. Bei der Umsetzung des Layouts können Schaltungselemente in dem Layout positioniert (Platzieren) und elektrisch verbunden werden (Verdrahten).
  • Während der Analyse und Extraktion kann die Funktionalität des Schaltkreises auf Transistorebene verifiziert und parasitäre Effekte können extrahiert werden. Während der Layoutverifikation kann der Entwurf geprüft werden, um die Fehlerfreiheit für die Fertigung, elektrische Aspekte, lithographische Aspekte und Schaltung zu gewährleisten.
  • Bei der Verbesserung der Auflösung können am Layout geometrische Manipulationen vorgenommen werden, um die Herstellbarkeit des Entwurfs zu verbessern. Bei der Maskendatenerstellung können die Entwurfsdaten zur Herstellung von Masken ausgegeben werden (tape-out), die bei der Herstellung verwendet werden.
  • Bereitstellen einer Optimierungssteuerung auf Basis von Superpfadschlupfen
  • 1 veranschaulicht einen Chipentwurf gemäß einiger der hierin beschriebenen Ausführungsformen. Der Chipentwurf 100 umfasst aufeinanderfolgende Schaltungselemente 104, 108 und 112. Der Eingangsanschluss ”Ein” ist mit einer kombinatorischen Logik 102 verbunden, die mit Eingangsanschluss ”D” eines sequenziellen Schaltungselements 104 verbunden ist. Der Ausgangsanschluss ”Q” des sequenziellen Schaltungselements 104 ist mit der kombinatorischen Logik 106 verbunden, die mit dem Eingangsanschluss ”D” des sequenziellen Schaltungselements 108 verbunden ist. Der Ausgangsanschluss ”Q” des sequenziellen Schaltungselements 108 ist mit der kombinatorischen Logik 110 verbunden, die mit dem Eingangsanschluss ”D” des sequenziellen Schaltungselements 112 verbunden ist. Der Ausgangsanschluss ”Q” des sequenziellen Schaltungselements 112 ist mit der der kombinatorischen Logik 114 verbunden, die mit dem Ausgangsanschluss ”Aus” verbunden ist. Die Takteingänge der sequenziellen Schaltungselemente 104, 108 und 112 sind mit dem Taktanschluss ”Clk” verbunden.
  • Als Beispiel eines sequenziellen Schaltungselements wurde in dieser Offenbarung ein flankengesteuerter D-Flipflop verwendet. Der Begriff ”sequenzielles Schaltungselement” bezieht sich jedoch ganz allgemein auf jegliche Art eines flankengesteuerten oder pegelgesteuerten sequenziellen Schaltungselements und ist nicht auf die in dieser Offenbarung offenbarten Formen beschränkt. Dass die in dieser Offenbarung beschriebenen Ausführungsformen ganz allgemein auf jede Art von flankengesteuerten oder pegelgesteuerten sequenziellen Schaltungselementen angewandt werden können, ist für einen Fachmann natürlich offensichtlich.
  • Bei einer bestimmten Taktflanke (entweder ansteigend, abfallend oder beides) nimmt der Eingang eines jeden sequenziellen Schaltungselements den logischen Wert auf, der an den Eingang angelegt wurde, und der Ausgang eines jeden sequenziellen Schaltungselements gibt einen logischen Wert ab, der anschließend durch ein oder mehrere Gatter und/oder Netze übertragen wird, bevor er am Eingang des nachfolgenden sequenziellen Schaltungselements eintrifft.
  • Der Begriff ”Superbogen” (englisch: super arc) bezieht sich in dieser Offenbarung auf einen Pfad, der von einem primären Eingang oder einem Ausgang eines sequenziellen Schaltungselements ausgehend bis zu einem primären Ausgang oder einem Eingang des nachfolgenden sequenziellen Schaltungselements führt. Der Chipentwurf 100 umfasst zum Beispiel die Superbögen 116, 118, 120 und 122. Der Begriff ”Superbogenverzögerung” bezieht sich auf die Verzögerung eines Superbogens. Eine Analyse des Zeitverhaltens berechnet üblicherweise die Verzögerung durch einen Superbogen, z. B. den Zeitverzug von einem Ausgang eines sequenziellen Schaltungselements bis zu einem Eingang des nachfolgenden sequenziellen Schaltungselements, um sicherzustellen, dass der Zeitverzug kürzer als das Taktintervall ist. Eine Analyse des Zeitverhaltens kann zum Beispiel den Zeitverzug des Superbogens 120 (d. h. der Zeitverzug vom Ausgang des sequenziellen Schaltungselements 108 bis zum Eingang des sequenziellen Schaltungselements 112) durch Addieren der Zeitverzüge eines jeden Gatters und Netzes des Superbogens 120 bestimmen. Die Verzögerung des Superbogens kann auch die Setup-Zeit des sequenziellen Schaltungselements 112 umfassen.
  • Unter der Annahme, dass alle sequenziellen Schaltungselemente ein perfekt synchronisiertes Taktsignal (d. h. die Taktflanken treffen an allen sequenziellen Schaltungselementen genau zur selben Zeit ein) erhalten und die Setup-Bedingung 0 ist, kann die Superbogenverzögerung zum Bestimmen des Taktgeberschlupfes (englisch: timing slack) vom Taktintervall subtrahiert werden. Bei nicht synchronisierten Takten muss zum Berechnen des Taktgeberschlupfes jedoch der Taktversatz (englisch: clock skew) berücksichtigt werden. Der Pfadschlupf (englisch: path slack) SP zwischen einem sequenziellen Schaltungselement (z. B. dem sequenzielle Schaltungselement 108) und einem nachfolgenden sequenziellen Schaltungselement (z. B. das sequenzielle Schaltungselement 112) kann konkret wie folgt berechnet werden: SP = T + LL – D – LC, (1) worin T das Taktintervall, LL die Abgabetaktlatenzzeit (englisch: launch clock latency) (d. h. die Zeitdifferenz zwischen einer ”idealen” Taktflanke und der tatsächlichen Taktflanke am abgebenden sequenziellen Schaltungselement), D die Superbogenverzögerung und LC die Aufnahmetaktlatenzzeit (englisch: capture clock latency) (d. h. die Zeitdifferenz zwischen einer ”idealen” Taktflanke am Taktursprung und der tatsächlichen Taktflanke am aufnehmenden sequenziellen Schaltungselement) bedeuten.
  • Ein positiver Pfadschlupf SP bedeutet, dass das am abgebenden sequenziellen Schaltungselement (z. B. dem sequenzielle Schaltungselement 108 des obigen Beispiels) abgegebene Signal vor Ablauf der erforderlichen Zeit am aufnehmenden sequenziellen Schaltungselement eintrifft (z. B. dem sequenzielle Schaltungselement 112 des obigen Beispiels). Ein negativer Pfadschlupf SP (d. h. es liegt ein Zeitverstoß (englisch: timing violation) vor) bedeutet dagegen, dass das am abgebenden sequenziellen Schaltungselement abgegebene Signal nach Ablauf der erforderlichen Zeit am aufnehmenden sequenziellen Schaltungselement eintrifft, was zu einer Fehlfunktion des Chipentwurfs 100 führen kann (einige Ausführungsformen können auch einen kleinen positiven Pfadschlupf als Verstoß ansehen. Bei diesen Ausführungsformen kann zur Gleichung (1) ein Schwellwert zur Darstellung der Grenze zwischen einen Verstoß darstellenden Taktgeberschlupfwerten und keinen Verstoß darstellenden Taktgeberschlupfwerten addiert werden).
  • Bei negativem Pfadschlupf muss der Chipentwurf modifiziert werden, um den Pfadschlupf größer oder gleich Null zu machen. Herkömmliche Schaltungsoptimierungssysteme versuchen den Pfadschlupf durch Reduzieren des Werts D in Gleichung (1) mittels verschiedener Schaltungstransformationen, z. B. Hinzufügen/Entfernen von Puffern, Vergrößern/Verkleinern von Gattermaßen, Ersetzen eines Teils einer Schaltung durch eine dazu äquivalente Schaltung mit niedrigerer Verzögerung, usw. zu verbessern. Es wird jedoch darauf hingewiesen, dass ein anderer Ansatz zum Verbessern des Taktgeberschlupfes die Werte LL und/oder LC ändert, d. h. den relativen Taktversatz zwischen dem abgebenden und dem aufnehmenden sequenziellen Schaltungselement ändert. In dieser Offenbarung wird ein Taktversatz als ”nützlicher Taktversatz” bezeichnet, wenn der Taktversatz in einen Chipentwurf eingeführt wird, um das Zeitverhalten von einem oder mehreren Taktgeberpfaden (englisch: timing paths) zu verbessern.
  • Der Begriff ”logischer Pfad” bezieht sich auf einen Pfad, der an einem primären Eingang oder einem Ausgang eines sequenziellen Schaltungselements beginnt und an einem primären Ausgang oder einem Eingang eines anderen sequenziellen Schaltungselements endet. Ein logischer Pfad ist zum Beispiel der am Ausgang ”Q” des sequenziellen Schaltungselements 104 beginnende und am Eingang ”D” des sequenziellen Schaltungselements 108 endende Pfad. Der Ausdruck ”Superpfad” bezieht sich auch auf eine Abfolge logischer Pfade, die an einem primären Eingang oder einem sequenziellen Schaltungselement beginnt, das lediglich ein Signal abgibt, jedoch kein Signal aufnimmt (solche sequenziellen Schaltungselemente sind selten), und endet an einem primären Ausgang oder einem sequenziellen Schaltungselement, das lediglich ein Signal aufnimmt, aber kein Signal abgibt (auch solche sequenziellen Schaltungselemente sind selten). Anders ausgedrückt stellt ein Superpfad eine Abfolge von Superbögen dar, die an einem primären Eingang oder einem sequenziellen Schaltungselement beginnt, das lediglich ein Signal abgibt, jedoch kein Signal aufnimmt (solche sequenziellen Schaltungselemente sind selten), und endet an einem primären Ausgang oder einem sequenziellen Schaltungselement, das lediglich ein Signal aufnimmt, aber kein Signal abgibt (auch solche sequenziellen Schaltungselemente sind selten). Der Superpfad 124 beginnt zum Beispiel am primären Eingang ”Ein” und endet am primären Ausgang ”Aus” und umfasst die Abfolge von Superbögen 116, 118, 120 und 122.
  • Der Begriff ”Superpfadschlupf” bezeichnet die Summe der einzelnen Pfadschlupfe (berechnet z. B. unter Verwendung von Gleichung (1)) entlang des Superpfades. Es wird darauf hingewiesen, dass sich die Abgabetaktlatenzzeit und die Aufnahmetaktlatenzzeit bei allen sequenziellen Schaltungselementen des Superpfades gegenseitig aufheben.
  • Daher kann der Superpfadschlupf SSP eines von einer Abfolge von n Superbögen gebildeten Superpfades wie folgt ausgedrückt werden:
    Figure DE112013005833T5_0002
    worin S i / P den Pfadschlupf für den iten Pfad des Superpfades, T das Taktintervall und Di die Verzögerung durch den iten Superbogen bedeuten.
  • Bei nicht negativem Superpfadschlupf (d. h. wenn er größer oder gleich Null ist) können Zeitverstöße bei Pfaden des Superpfades behoben werden, indem in den verstoßenden Pfad ein nützlicher Taktversatzes eingeführt wird, d. h. durch Modifizieren des relativen Taktversatzes zwischen dem abgebenden und dem aufnehmenden sequenziellen Schaltungselement des mit einem Verstoß behafteten Pfades.
  • Es wird angenommen, dass alle sequentiellen Schaltungselemente in 1 ein ideales Taktsignal erhalten und die Pfadschlupfe wie folgt vorliegen: Der Pfadschlupf S 1 / P vom Eingangsanschluss ”Ein” zum ”D”-Anschluss des sequentiellen Schaltungselements 104 entspricht 0 Zeiteinheiten, der Pfadschlupf S 2 / P vom ”Q”-Anschluss des sequentiellen Schaltungselements 104 zum ”D”-Anschluss des sequentiellen Schaltungselements 108 entspricht –2 Zeiteinheiten, der Pfadschlupf S 3 / P vom ”Q”-Anschluss des sequentiellen Schaltungselements 108 zum ”D”-Anschluss des sequentiellen Schaltungselements 112 entspricht +2 Zeiteinheiten und der Pfadschlupf S 4 / P vom ”Q”-Anschluss des sequentiellen Schaltungselements 112 zum Ausgangsanschluss ”Aus” entspricht 0 Zeiteinheiten. Es wird darauf hingewiesen, dass der Superpfadschlupf gleich 0 ist (d. h. S 1 / P + S 2 / P + S 3 / P + S 4 / P = 0 ). Der Zeitverstoß im zweiten Pfad kann durch Verzögern des Taktsignals zum sequentiellen Schaltungselement 108 um 2 Zeiteinheiten (d. h. gegenüber dem idealen Taktsignal verzögert) behoben werden. Nachdem das Taktsignal in der angegebenen Weise verzögert wurde, sind alle Pfadschlupfe gleich 0.
  • Bei negativem Superpfadschlupf (z. B. wenn in dem oben angegebenen Beispiel S 1 / P + S 2 / P + S 3 / P + S 4 / P < 0 ) können die Zeitverstöße bei den Pfaden des Superpfades nicht alleine durch Einführen eines nützlichen Taktversatzes behoben werden. Einige der hier beschriebenen Ausführungsformen verwenden Superpfadschlupfe zum Steuern einer zeitlichen Optimierung des Chipentwurfs. Konkret kann eine Schaltungsoptimierung, die vor einer CTS durchgeführt wird, gezielt auf Zeitverstöße auf Superpfaden mit negativem Schlupf gerichtet sein, anstatt auf Basis einer idealen Taktung alle Pfade mit negativem Schlupf zu reparieren. Nach Abschluss einer Prä-CTS-Schaltungsoptimierung sind hoffentlich alle Superpfadschlupfe größer oder gleich Null. Danach kann CTS eventuell verbleibende Zeitverstöße auf Superpfaden mit Schlupfen von Null oder positiven Schlupfen durch Einführen eines nützlichen Zeitversatzes beheben, z. B. durch Einführen von Verzögerungen an geeigneten Stellen des Taktbaums.
  • Für Superpfade mit negativem Schlupf bietet eine Prä-CTS-Optimierung im Allgemeinen eine Entscheidungsfreiheit bezüglich des zum Verringern der Superbogenverzögerung zu optimierenden Komponentenpfades. Bei einigen Ausführungsformen können die Taktgeberpfade (unabhängig von ihren Schlupfen) auf Basis dessen priorisiert werden, wie viele Superpfade mit negativem Schlupf einen bestimmten Taktgeberpfad gemeinsam nutzen. Konkret sollte ein von mehreren Superpfaden gemeinsam genutzter Taktgeberpfad mit negativen Schlupfen zuerst optimiert werden. Einige Ausführungsformen weisen, wenn der Schlupf eines Taktgeberpfades mit hoher Priorität bereits positiv ist, die Prä-CTS-Schaltungsoptimierung an, den positiven Schlupf des Taktgeberpfades weiter zu erhöhen. Es wird darauf hingewiesen, dass dies nicht offensichtlich ist, da die Prä-CTS-Schaltungsoptimierung normalerweise nicht versuchen würde, den positiven Schlupf eines Taktgeberpfades zu erhöhen.
  • 2 veranschaulicht, wie eine Steuerung auf Basis einer Superpfadanalyse gemäß einiger der hierin beschriebenen Ausführungsformen geschaffen werden kann. Der Chipentwurf 200 weist sequenzielle Schaltungselemente 202 und 204 auf. Der Superbogen 208 beginnt am ”Q”-Ausgang des sequenziellen Schaltungselements 202 und endet am ”D”-Eingang des sequenziellen Schaltungselements 204. Der Schaltkreispfad 210 beginnt am primären Eingang ”Ein1” und endet am ”D”-Eingang des sequenziellen Schaltungselements 202. Der Schaltkreispfad 212 beginnt am primären Eingang ”Ein2” und endet ebenfalls am ”D”-Eingang des sequenziellen Schaltungselements 202. Die Schaltkreispfade 210 und 212 können kombinatorische und/oder sequenzielle Schaltungselemente enthalten und können ein oder mehrere Schaltungselemente gemeinsam nutzen. Der Schaltkreispfad 214 beginnt gleichermaßen am ”Q”-Ausgang des sequenziellen Schaltungselements 204 und endet am primären Ausgang ”Aus1”. Der Schaltkreispfad 216 beginnt am ”Q”-Ausgang des sequenziellen Schaltungselements 204 und endet am primären Ausgang ”Aus2”. Die Schaltkreispfade 214 und 216 können kombinatorische und/oder sequenzielle Schaltungselemente enthalten und können ein oder mehrere Schaltungselemente gemeinsam nutzen.
  • Unter der Annahme, dass der Superpfad, der am primären Eingang ”Ein1” beginnt und am primären Ausgang ”Aus1” endet, mit einem negativen Schlupf behaftet ist und dass der Superpfad, der am primären Eingang ”Ein2” beginnt und am primären Ausgang ”Aus2” endet, ebenfalls mit einem negativen Schlupf behaftet ist, können einige Ausführungsformen, da beide der mit einem negativen Schlupf behafteten Superpfade durch den Superbogen 208 verlaufen, dem Superbogen 208 eine höhere Priorität zuweisen, sodass die Prä-CTS-Schaltungsoptimierung versucht, das Zeitverhalten des Superbogens 208 (d. h. versucht den Taktgeberschlupf unabhängig davon zu erhöhen, ob der aktuelle Taktgeberschlupfwert negativ oder positiv ist) zu verbessern, bevor sie versucht den Zeitverstoß in anderen Superbögen zu beheben. Es wird darauf hingewiesen, dass das Prä-CTS-Schaltungsoptimierungsverfahren innerhalb des Superbogens 208 frei über die Rangfolge der Dimensionierung der Gatter zur Verbesserung der Zeitsteuerungen entscheiden kann. Es wird darauf hingewiesen, dass keines der herkömmlichen Schaltungsoptimierungsverfahren den Superpfadschlupf zum Bestimmen einer Rangfolge für die Optimierung von Superbögen bestimmt.
  • Die obigen Ausführungen gründen auf der Annahme, dass, solange der Superpfadschlupf größer oder gleich Null ist, eine nützliche Schlupfkoordinationslösung existiert, um den Schlupf eines jeden einzelnen Pfades des Superpfades ebenfalls größer oder gleich Null zu machen. In der Realität existieren jedoch mehrere nun erläuterte Einschränkungen, die diese Annahme zunichte machen.
  • Das Verzögern der auf einem nützlichen Versatz beruhenden Taktlatenzzeit eines sequenziellen Schaltungselements sollte die Einfügeverzögerung (englisch: insertion delay) des Taktgebers nicht überschreiten. Andernfalls könnte man am Ende zu viele Puffer in den Taktbaum einfügen und der Variationseffekt auf dem Chip selbst (der bei zunehmender Einfügeverzögerung stärker wird) kann die durch eine Einführung des nützlichen Versatzes erhaltenen Vorteile wieder zunichtemachen.
  • Beim Takten eines sequenziellen Schaltungselements unter Verwendung mehrerer Takte gibt es für jeden Pfad aufgrund der verschiedenen Takte mehrere Schlupfe (jedes Paar abgebender und aufnehmender Flops), wobei bei jedem der Takte die Koordination des nützlichen Versatzes nicht unabhängig ist. Die 3A und 3B veranschaulichen ein Beispiel gemäß einiger der hierin beschriebenen Ausführungsformen, bei dem ein sequenzielles Schaltungselement unter Verwendung von mehreren Taktgebern getaktet wird. Der Schaltkreis 300 umfasst sequenzielle Schaltungselemente 302, 304, 306, 308, 310 und 312, die wie in 3A dargestellt über Pfade (gekrümmte Linien) verbunden sind. Die in unmittelbarer Nähe eines jeweiligen Pfades in Klammern angegebene Nummer gibt den Schlupf des Pfades an. Der Pfad zwischen den sequenziellen Schaltungselementen 306 und 308 weist in seiner unmittelbaren Nähe zwei Nummern auf. Die erste Nummer ”(4)” gibt den Schlupf für Clk1 und die zweite Nummer ”(3)” den Schlupf für Clk2 an.
  • Unter der Annahme, dass in 3A alle Pfade zwischen Clk1 und Clk2 falsche Pfade sind, wobei ein falscher Pfad ein Pfad mit einem zu ignorierenden Zeitverstoß ist, kann zum Beispiel die zeitliche Planung des Pfades, der am sequenziellen Schaltungselement 302 beginnt (Taktdomäne Clk1) und am sequenziellen Schaltungselement 312 (Taktdomäne Clk2) endet, ignoriert werden.
  • Betrachtet man ausschließlich den Pfad vom sequenziellen Schaltungselement 304 zum sequenziellen Schaltungselement 312, können, wie es scheint, nichtnegative Schlupfe unter Verwendung eines nützlichen Versatzes erzielt werden. Die Koordinierung des nützlichen Versatzes für Clk2-Pfade wird jedoch durch die zeitkritischere für Clk1-Pfade beeinträchtigt und im Ergebnis bleiben für Clk2 immer noch negative Schlupfe übrig. Konkret führt ein Entfernen des Zeitverstoßes auf dem Clk2-Pfad durch nützlichen Versatz zu einem Zeitverstoß auf dem Clk1-Pfad. 3B veranschaulicht die Schlupfe nach einem Einsatz des nützlichen Versatzes zum Beheben des negativen Schlupfes auf dem Pfad zwischen den sequenziellen Schaltungselementen 304 und 310. Daher kann es, obwohl ein nützlicher Versatz zum Beheben von Zeitverstößen auf zwei verschiedenen, unabhängig voneinander berücksichtigten Pfaden verwendet werden kann, aufgrund der gegenseitigen Abhängigkeit der beiden Pfade nicht möglich sein, einen nützlichen Versatz zum Beheben von Zeitverstößen auf beiden Pfaden gleichzeitig zu verwenden. Einige Ausführungsformen können Situationen erfassen, bei denen sich zwei (oder mehr) Superpfade in mehreren Taktdomänen befinden, jedoch einen oder mehrere Superbögen gemeinsam nutzen. Nach dem Erfassen der Superpfade können die Ausführungsformen den nützlichen Versatz zum Beheben von Zeitverstößen bei einer bestimmten Taktdomäne verwenden und gleichzeitig gewährleisten, dass bei anderen Taktdomänen keine Zeitverstöße erzeugt werden.
  • Eine andere Komplikation tritt bei Superpfaden auf, die eine Schleife aufweisen. 4 veranschaulicht einen Chipentwurf mit einer Schleife gemäß einiger der hierin beschriebenen Ausführungsformen. Der Schaltkreis 400 umfasst wie aus 4 ersichtlich die sequenziellen Schaltungselemente 402, 404, 406 und 408, die über Pfade miteinander verbunden sind (gekrümmte Linien). Es wird darauf hingewiesen, dass der ”Q”-Ausgang des sequenziellen Schaltungselements 404 mit dem ”D”-Eingang des sequenziellen Schaltungselements 402 über einen Pfad verbunden ist, der durch die sequenziellen Schaltungselemente 406 und 408 verläuft, wobei eine Schleife ausgebildet wird.
  • Bei einem Superpfadschlupf des Superpfades zwischen dem primären ”Ein”-Eingang und dem primären ”Aus”-Ausgang von größer oder gleich Null sollte man den nützlichen Versatz zum Beheben aller Zeitverstöße beim Superpfad verwenden können. Wegen der Schleife kann dies jedoch unmöglich sein. Konkret kann, wenn der relative Taktversatz zwischen den sequenziellen Schaltungselementen 402 und 404 verändert wird, um den Schlupf im Superbogen 410 zu vergrößern, der Schlupf in den Superbögen 412 und/oder 414 entsprechend verringert werden, wodurch ein Zeitverstoß erzeugt werden kann. Nimmt man zum Beispiel an, dass die Taktflanke des sequenziellen Schaltungselements 402 um 1 Zeiteinheit vorverlegt wird und die Taktflanke des sequenziellen Schaltungselements 404 um 1 Zeiteinheit nach hinten verlegt wird, so erhöht sich der Schlupf des Superbogens 410 um 2 Zeiteinheiten. Die sich in den Superbögen 412 und 414 um 1 Zeiteinheit verringernden Schlupfe führen jedoch zu einem Zeitverstoß bei den Superbögen 412 und/oder 414.
  • Bei einigen der hierin beschriebenen Ausführungsformen werden Schleifen erkannt (z. B. durch Ausführen einer Breitensuche (englisch: breadth-first traversal) und Beobachten von besuchten Knoten) und Superpfade mit positivem Schlupf ermittelt, die von den erkannten Schleifen beeinflusst werden. Die Ausführungsformen können bei den betroffenen Superpfaden ermitteln, ob ein nützlicher Versatz zu Behebung von Zeitverstößen am Superpfad verwendet werden kann.
  • Es wird darauf hingewiesen, dass die Superpfadberechnung von der Engine für die Prä-CTS-Schaltungsoptimierung getrennt und eventuell mit der Engine für die Berechnung des nützlichen Versatzes gemeinsam benutzt oder kombiniert werden kann. Es wird darauf hingewiesen, dass die Superpfadberechnung auch die Engine für die Prä-CTS-Schaltungsoptimierung steuert, und zwar so, dass die Superpfadberechnung angibt, welche der Pfade zu optimieren sind und wann die Optimieren zu beenden ist.
  • Bei einigen Ausführungsformen zum Beispiel, kann die Engine für die Prä-CTS-Schaltungsoptimierung zum Beenden der Optimierung angewiesen werden, sobald alle Superpfade einen positiven Schlupf aufweisen, selbst wenn der Schlupf einzelner Pfade immer noch negativ ist. Die Zeitverstöße der Pfade mit negativem Schlupf können während der CTS dann unter Verwendung des nützlichen Versatzes behoben werden. Der hierdurch von der Engine für die Prä-CTS-Schaltungsoptimierung vorzunehmende Optimierungsaufwand kann im Vergleich zum traditionellen Ansatz stark verringert werden, da, solange der Superpfad keinen negativen Schlupf aufweist, mehrere Pfade einen negativen Schlupf aufweisen können. Diese wichtige Erkenntnis wird von einigen Ausführungsformen benutzt, um den von der Engine für die Prä-CTS-Schaltungsoptimierung zu leistenden Optimierungsaufwand drastisch zu reduzieren.
  • 5 veranschaulicht ein Verfahren gemäß einiger der hierin beschriebenen Ausführungsformen zur Berechnung und Verwendung von Superpfadschlupfen. Das Verfahren kann mit dem Berechnen eines Satzes aggregierter Schlupfe (d. h. Superpfadschlupfen) für einen Satz von Abfolgen logischer Pfade beginnen, wobei jede Abfolge logischer Pfade an einem primären Eingang oder einem sequenziellen Schaltungselement beginnt, das lediglich ein Signal abgibt, jedoch kein Signal aufnimmt, und an einem primären Ausgang oder einem sequenziellen Schaltungselement endet, das lediglich ein Signal aufnimmt, jedoch kein Signal abgibt (Vorgang 502). Anschließend kann das Verfahren die Schaltungsoptimierung auf Basis des Satzes aggregierter Schlupfe steuern (Vorgang 504). Es wird darauf hingewiesen, dass der Satz von aggregierten Schlupfen ein oder mehrere Aggregatschlupfe und der Satz von Abfolgen logischer Pfade einen oder mehreren Abfolgen von logischen Pfaden aufweisen kann.
  • Konkret kann das Verfahren die Engine für die Prä-CTS-Schaltungsoptimierung bei einem aggregierten Schlupf von Null oder größer dazu anweisen, die Zeitverstöße auf den logischen Pfaden des Superpfades nicht zu beheben. Ist der Aggregatschlupf dagegen negativ, kann das Verfahren die Engine für die Prä-CTS-Schaltungsoptimierung dazu anweisen, ein Erhöhen des Taktgeberschlupfes von in dem Superpfad befindlichen logischen Pfaden zu versuchen.
  • Bei einigen Ausführungsformen kann das Verfahren logische Pfade auf Basis der Anzahl von Superpfaden mit negativem Schlupf priorisieren, die durch einen logischen Pfad verlaufen. Konkret weist ein logischer Pfad eine höhere Priorität auf, wenn er von einer größeren Anzahl von Superpfaden mit negativem Schlupf gemeinsam genutzt wird. Als Nächstes kann das Verfahren die Engine für die Prä-CTS-Schaltungsoptimierung so steuern, dass in Reihenfolge abnehmender Priorität der Taktgeberschlupf der logischen Pfade erhöht wird. Bei einer Abwandlung kann die Priorität eines logischen Pfades auf der Summe der Werte der negativen Schlupfe der den logischen Pfad aufweisenden Superpfade basieren. Bei einer weiteren Abwandlung kann, falls zwei logische Pfade dieselbe Priorität aufweisen, der Schlupf des logischen Pfades als entscheidendes Kriterium verwendet werden. Konkret kann dem logischen Pfad mit dem niedrigeren Taktgeberschlupf eine höhere Priorität zugewiesen werden als dem logischen Pfad mit dem höheren Taktgeberschlupf.
  • Bei einigen Ausführungsformen kann das Verfahren die Engine für die Prä-CTS Schaltungsoptimierung zum Beenden einer Optimierung anweisen, wenn alle aggregierten Schlupfe in dem Satz von aggregierten Schlupfen größer oder gleich Null sind (d. h. selbst dann, wenn die Schlupfe von einem oder mehreren der logischen Pfade negativ sind).
  • Computersystem
  • 6 veranschaulicht ein Computersystem gemäß einiger der in dieser Offenbarung beschriebenen Ausführungsformen. Ein Computersystem kann ganz allgemein ein beliebiges zur Durchführung von Berechnungen ausgebildetes System sein. Konkret kann ein Computersystem ein Mikroprozessor, eine anwendungsspezifische integrierte Schaltung, ein dezentralisiertes Computersystem, ein Cloud-Computersystem, oder ein beliebiges anderes derzeit bekanntes oder zukünftig entwickeltes Computersystem sein. Das Computersystem 602 weist einen Prozessor 604, einen Speicher 606 und eine Speichereinrichtung 608 auf. Das Computersystem 602 kann mit einer Anzeigevorrichtung 614, einer Tastatur 610 und einem Zeigegerät 612 verbunden sein. Die Speichereinrichtung kann ganz allgemein eine beliebige zur Speicherung von Daten ausgebildete Einrichtung sein. Konkret kann es sich bei der Speichereinrichtung um eine magnetische, eine optische, oder eine magnetooptische Speichereinrichtung handeln, oder er kann auf einem Flash-Speicher und/oder einem batteriegepufferten Speicher basieren. In der Speichereinrichtung 608 können das Betriebssystem 616, das Anwendungsprogramm 618 und Daten 620 gespeichert sein.
  • Das Anwendungsprogramm 616 kann Anweisungen enthalten, die bei Ausführung durch einen Computer 602 den Computer 602 zur Ausführung eines oder mehrerer Verfahren veranlassen, die in dieser Offenbarung indirekt oder direkt beschrieben sind. Die Daten 620 können beliebige Daten umfassen, die in das Anwendungsprogramm 616 eingegeben oder von diesem ausgegeben werden.
  • Die oben vorgelegte Beschreibung ermöglicht einem Fachmann Ausführung und Gebrauch der Ausführungsformen. Fachleute werden ohne Weiteres erkennen, dass die offenbarten Ausführungsformen in verschiedenster Weise modifiziert und die in dieser Beschreibung definierten allgemeinen Prinzipien auf andere Ausführungsformen und Anwendungen übertragen werden können, ohne Kern und Umfang der vorliegenden Offenbarung zu verlassen. Daher ist die vorliegende Erfindung nicht auf die vorgestellten Ausführungsformen beschränkt, sondern weist den breitesten mit den hier offenbarten Prinzipien und Merkmalen noch vereinbaren Umfang auf.
  • Datenstrukturen und Code, die in dieser Offenbarung beschrieben wurden, können teilweise oder vollständig auf einem nichtflüchtigen computerlesbaren Speichermedium und/oder einem Hardwaremodul und/oder einer Hardwarevorrichtung gespeichert sein. Ein nichtflüchtiges computerlesbares Speichermedium umfasst alle computerlesbaren Speichermedien unter Ausnahme einer fortschreitenden elektromagnetischen Welle bzw. eines fortschreitenden elektromagnetischen Signals und ist nicht auf flüchtige Speicher, nichtflüchtige Speicher, magnetische und optische Speichervorrichtungen wie beispielsweise Plattenlaufwerke, Magnetbänder, CDs (compact discs), DVDs (digital versatile oder digital video discs), oder andere derzeit bekannte oder in Zukunft entwickelte Medien, auf denen Code und/oder Daten gespeichert werden können, beschränkt. Die in dieser Offenbarung beschriebenen Hardwaremodule oder Vorrichtungen umfassen, ohne darauf beschränkt zu sein, anwendungsspezifische integrierte Schaltungen (ASICs), Field Programmable Gate Arrays (FPGAs), eigene oder mitbenutzte Prozessoren und/oder andere derzeit bekannte oder in Zukunft entwickelte Hardwaremodule oder -vorrichtungen.
  • Die in dieser Offenbarung beschriebenen Verfahren und Prozesse können teilweise oder vollständig in Form von Code und/oder Daten vorliegen, die in einem nichtflüchtigen computerlesbaren Speichermedium oder einer computerlesbaren Speichereinrichtung gespeichert sind, sodass, wenn ein Computersystem den Code und/oder die Daten einliest und ausführt, das Computersystem die entsprechenden Verfahren und Prozesse ausführt. Die Verfahren und Prozesse können teilweise oder vollständig in Form von Hardwaremodulen oder -vorrichtungen vorliegen. Es wird darauf hingewiesen, dass die Verfahren und Prozesse in Form einer Kombination aus Code, Daten und Hardwaremodulen bzw. Hardwarevorrichtungen vorliegen können.
  • Die vorhergehende Beschreibung von Ausführungsformen der vorliegenden Erfindung wurde lediglich zum Zwecke der Veranschaulichung und der Erläuterung vorgestellt. Sie soll nicht erschöpfend sein oder die vorliegende Erfindung auf die offenbarten Formen beschränken. Daher wird ein Fachmann viele Modifikationen und Abänderungen erkennen. Zudem dient die oben dargelegte Offenbarung nicht einer Beschränkung der vorliegenden Erfindung. Der Umfang der vorliegenden Erfindung wird durch die beiliegenden Ansprüche definiert.

Claims (18)

  1. Verfahren zum Steuern einer Schaltungsoptimierung, wobei das Verfahren umfasst: Berechnen eines Satzes aggregierter Schlupfe eines Satzes von Abfolgen logischer Pfade eines Chipentwurfs, wobei jede Abfolge logischer Pfade an einem primären Eingang oder einem sequentiellen Schaltungselement beginnt, dass lediglich ein Signal abgibt, jedoch kein Signal aufnimmt, und an einem primären Ausgang oder einem sequentiellen Schaltungselement endet, das lediglich ein Signal aufnimmt, jedoch kein Signal abgibt, und Steuern einer Schaltungsoptimierung des Chipentwurfs auf Basis des Satzes aggregierter Schlupfe.
  2. Verfahren nach Anspruch 1, worin das Steuern umfasst, dass nicht versucht wird, einen Zeitverstoß auf einem logischen Pfad einer Abfolge von logischen Pfaden zu beheben, deren aggregierter Schlupf größer oder gleich Null ist.
  3. Verfahren nach Anspruch 1, worin das Steuern umfasst, dass versucht wird, einen Zeitverstoß auf einem logischen Pfad einer Abfolge von logischen Pfaden zu beheben, deren aggregierter Schlupf negativ ist.
  4. Verfahren nach Anspruch 1, worin das Steuern umfasst, dass versucht wird, einen aggregierten Schlupf einer Abfolge von logischen Pfaden zu erhöhen, deren aggregierter Schlupf negativ ist.
  5. Verfahren nach Anspruch 1, worin das Steuern ein Zuweisen einer Priorität zu einem logischen Pfad auf Basis dessen umfasst, wie viele Abfolgen logischer Pfade mit negativem Schlupf den logischen Pfad enthalten, wobei die Schaltungsoptimierung versucht, die Taktgeberschlupfe logischer Pfade in der Reihenfolge abnehmender Priorität zu vergrößern.
  6. Verfahren nach Anspruch 1, worin das Steuern umfasst, dass eine Schaltungsoptimierung beendet wird, wenn alle aggregierten Schlupfe in dem Satz von aggregierten Schlupfen größer oder gleich Null sind.
  7. Nichtflüchtiges computerlesbares Speichermedium auf dem Anweisungen gespeichert sind, die bei Ausführung durch einen Computer den Computer dazu veranlassen, ein Verfahren zum Steuern einer Schaltungsoptimierung durchzuführen, wobei das Verfahren aufweist: Berechnen eines Satzes aggregierter Schlupfe eines Satzes von Abfolgen logischer Pfade eines Chipentwurfs, wobei jede Abfolge logischer Pfade an einem primären Eingang oder einem sequentiellen Schaltungselement beginnt, dass lediglich ein Signal abgibt, jedoch kein Signal aufnimmt, und an einem primären Ausgang oder einem sequentiellen Schaltungselement endet, das lediglich ein Signal aufnimmt, jedoch kein Signal abgibt, und Steuern einer Schaltungsoptimierung des Chipentwurfs auf Basis des Satzes aggregierter Schlupfe.
  8. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 7, worin das Steuern umfasst, dass nicht versucht wird, einen Zeitverstoß auf einem logischen Pfad einer Abfolge von logischen Pfaden zu beheben, deren aggregierter Schlupf größer oder gleich Null ist.
  9. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 7, worin das Steuern umfasst, dass versucht wird, einen Zeitverstoß auf einem logischen Pfad einer Abfolge von logischen Pfaden zu beheben, deren aggregierter Schlupf negativ ist.
  10. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 7, worin das Steuern umfasst, dass versucht wird, einen aggregierten Schlupf einer Abfolge von logischen Pfaden zu erhöhen, deren aggregierter Schlupf negativ ist.
  11. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 7, worin das Steuern ein Zuweisen einer Priorität zu einem logischen Pfad auf Basis dessen umfasst, wie viele Abfolgen logischer Pfade mit negativem Schlupf den logischen Pfad enthalten, wobei die Schaltungsoptimierung versucht, die Taktgeberschlupfe logischer Pfade in der Reihenfolge abnehmender Priorität zu vergrößern.
  12. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 7, worin das Steuern umfasst, dass eine Schaltungsoptimierung beendet wird, wenn alle aggregierten Schlupfe in dem Satz von aggregierten Schlupfen größer oder gleich Null sind.
  13. Vorrichtung, die aufweist: einen Prozessor und ein nichtflüchtiges Speichermedium auf dem Anweisungen gespeichert sind, die bei Ausführung durch einen Computer die Vorrichtung dazu veranlassen, ein Verfahren zum Steuern einer Schaltungsoptimierung durchzuführen, wobei das Verfahren aufweist: Berechnen eines Satzes aggregierter Schlupfe eines Satzes von Abfolgen logischer Pfade eines Chipentwurfs, wobei jede Abfolge logischer Pfade an einem primären Eingang oder einem sequentiellen Schaltungselement beginnt, dass lediglich ein Signal abgibt, jedoch kein Signal aufnimmt, und an einem primären Ausgang oder einem sequentiellen Schaltungselement endet, das lediglich ein Signal aufnimmt, jedoch kein Signal abgibt, und Steuern einer Schaltungsoptimierung des Chipentwurfs auf Basis des Satzes aggregierter Schlupfe.
  14. Vorrichtung nach Anspruch 13, worin das Steuern umfasst, dass nicht versucht wird, einen Zeitverstoß auf einem logischen Pfad einer Abfolge von logischen Pfaden zu beheben, deren aggregierter Schlupf größer oder gleich Null ist.
  15. Vorrichtung nach Anspruch 13, worin das Steuern umfasst, dass versucht wird, einen Zeitverstoß auf einem logischen Pfad einer Abfolge von logischen Pfaden zu beheben, deren aggregierter Schlupf negativ ist.
  16. Vorrichtung nach Anspruch 13, worin das Steuern umfasst, dass versucht wird, einen aggregierten Schlupf einer Abfolge von logischen Pfaden zu erhöhen, deren aggregierter Schlupf negativ ist.
  17. Vorrichtung nach Anspruch 13, worin das Steuern ein Zuweisen einer Priorität zu einem logischen Pfad auf Basis dessen umfasst, wie viele Abfolgen logischer Pfade mit negativem Schlupf den logischen Pfad enthalten, wobei die Schaltungsoptimierung versucht, die Taktgeberschlupfe logischer Pfade in der Reihenfolge abnehmender Priorität zu vergrößern.
  18. Vorrichtung nach Anspruch 13, worin das Steuern umfasst, dass eine Schaltungsoptimierung beendet wird, wenn alle aggregierten Schlupfe in dem Satz von aggregierten Schlupfen größer oder gleich Null sind.
DE112013005833.2T 2012-12-26 2013-12-26 Analyse zeitlicher Leitungsengpässe zur Steuerung einer Optimierung mit nützlichem Versatz Pending DE112013005833T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261746067P 2012-12-26 2012-12-26
US61/746,067 2012-12-26
PCT/US2013/077877 WO2014105988A1 (en) 2012-12-26 2013-12-26 Timing bottleneck analysis across pipelines to guide optimization with useful skew

Publications (1)

Publication Number Publication Date
DE112013005833T5 true DE112013005833T5 (de) 2015-08-27

Family

ID=50976279

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013005833.2T Pending DE112013005833T5 (de) 2012-12-26 2013-12-26 Analyse zeitlicher Leitungsengpässe zur Steuerung einer Optimierung mit nützlichem Versatz

Country Status (5)

Country Link
US (1) US9292641B2 (de)
JP (1) JP6301363B2 (de)
CN (1) CN104969226B (de)
DE (1) DE112013005833T5 (de)
WO (1) WO2014105988A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5883676B2 (ja) * 2012-02-22 2016-03-15 ルネサスエレクトロニクス株式会社 Lsi設計方法
US9483601B2 (en) * 2015-03-24 2016-11-01 International Business Machines Corporation Circuit routing based on total negative slack
US10296686B1 (en) * 2015-12-14 2019-05-21 Apple Inc. Switching-activity-based selection of low-power sequential circuitry
US10002224B2 (en) * 2016-02-29 2018-06-19 Synopsys, Inc. Interactive routing of connections in circuit using auto welding and auto cloning
US10568203B2 (en) * 2017-06-07 2020-02-18 International Business Machines Corporation Modifying a circuit design

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146991A (ja) * 1995-11-16 1997-06-06 Fujitsu Ltd エンジニアリング・チェンジ論理合成システム
WO2002101600A2 (en) * 2001-06-08 2002-12-19 Magma Design Automation, Inc. Method for generating design constraints for modulates in a hierarchical integrated circuit design system
US6550045B1 (en) * 2001-11-20 2003-04-15 Lsi Logic Corporation Changing clock delays in an integrated circuit for skew optimization
US7117466B2 (en) * 2003-09-18 2006-10-03 International Business Machines Corporation System and method for correlated process pessimism removal for static timing analysis
US7278126B2 (en) * 2004-05-28 2007-10-02 Qualcomm Incorporated Method and apparatus for fixing hold time violations in a circuit design
US7810061B2 (en) * 2004-09-17 2010-10-05 Cadence Design Systems, Inc. Method and system for creating a useful skew for an electronic circuit
US7225421B2 (en) * 2005-01-28 2007-05-29 International Business Machines Corporation Clock tree distribution generation by determining allowed placement regions for clocked elements
US7559040B1 (en) * 2005-06-02 2009-07-07 Cadence Design Systems, Inc. Optimization of combinational logic synthesis through clock latency scheduling
US7506293B2 (en) * 2006-03-22 2009-03-17 Synopsys, Inc. Characterizing sequential cells using interdependent setup and hold times, and utilizing the sequential cell characterizations in static timing analysis
US7404163B2 (en) * 2006-03-24 2008-07-22 International Business Machines Corporation Static timing slacks analysis and modification
US7694242B1 (en) * 2006-12-11 2010-04-06 Cadence Design Systems, Inc. System and method of replacing flip-flops with pulsed latches in circuit designs
US7546567B2 (en) * 2007-01-10 2009-06-09 Synopsys, Inc. Method and apparatus for generating a variation-tolerant clock-tree for an integrated circuit chip
US7784003B2 (en) * 2007-02-26 2010-08-24 International Business Machines Corporation Estimation of process variation impact of slack in multi-corner path-based static timing analysis
US7689957B2 (en) * 2007-09-10 2010-03-30 Synopsys, Inc. Identifying and improving robust designs using statistical timing analysis
JP2009282638A (ja) * 2008-05-20 2009-12-03 Nec Electronics Corp レイアウト設計システム、レイアウト設計方法、及びプログラム
US8255860B1 (en) * 2009-04-03 2012-08-28 Altera Corporation Exploiting independent portions of logic designs for timing optimization
US8336012B2 (en) * 2009-04-09 2012-12-18 Lsi Corporation Automated timing optimization
US8185371B2 (en) * 2009-04-15 2012-05-22 International Business Machines Corporation Modeling full and half cycle clock variability
US8539413B1 (en) * 2010-04-27 2013-09-17 Applied Micro Circuits Corporation Frequency optimization using useful skew timing
JP2011238163A (ja) * 2010-05-13 2011-11-24 Renesas Electronics Corp 半導体集積回路のレイアウト方法、レイアウトシステム及びレイアウトプログラム
US8522187B2 (en) * 2010-12-06 2013-08-27 International Business Machines Corporation Method and data processing system to optimize performance of an electric circuit design, data processing program and computer program product
US8584065B2 (en) * 2011-05-05 2013-11-12 Advanced Micro Devices, Inc. Method and apparatus for designing an integrated circuit
US8719747B2 (en) * 2012-01-31 2014-05-06 Mentor Graphics Corporation Single event upset mitigation for electronic design synthesis
US20140149956A1 (en) * 2012-11-28 2014-05-29 International Business Machines Corporation Corner specific normalization of static timing analysis

Also Published As

Publication number Publication date
US20140181779A1 (en) 2014-06-26
JP6301363B2 (ja) 2018-03-28
US9292641B2 (en) 2016-03-22
CN104969226B (zh) 2018-08-28
CN104969226A (zh) 2015-10-07
WO2014105988A1 (en) 2014-07-03
JP2016503923A (ja) 2016-02-08

Similar Documents

Publication Publication Date Title
DE60116769T2 (de) Verfahren und system zur hierarchischen metallenden-, einschliessungs- und belichtungsprüfung
DE112013000758B4 (de) Erzeugen von Taktsignalen für einen zyklusgenauen, zyklusreproduzierbaren FPGA-gestützten Hardware-Beschleuniger
DE112013005833T5 (de) Analyse zeitlicher Leitungsengpässe zur Steuerung einer Optimierung mit nützlichem Versatz
DE112014000616T5 (de) Doppelstruktur-Taktbaumsynthese (CTS)
CN1627302A (zh) 数字电路的统计计时分析系统和方法
WO2011107321A1 (de) Verbesserungen der rückwärts-analyse zur bestimmung von fehlermaskierungsfaktoren
DE19860062A1 (de) Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSI
DE112020006021T5 (de) Auf maschinelles lernen basierendes verfahren und vorrichtung für die berechnung und verifizierung von verzögerungen des entwurfs integrierter schaltungen
DE112015002183T5 (de) Computerimplementiertes System und Verfahren zum Übersetzen von Verifizierungs-Befehlen eines elektronischen Designs
DE102011015444A1 (de) Nethod and apperatus for operational-level functional and degradation fault analysis
US8706467B2 (en) Compact circuit-simulation output
DE102006020186A1 (de) Vorrichtung und Verfahren von Verzögerungsberechnung für strukturierte ASIC
DE102019117226A1 (de) Schaltkreis mit adaptiven speicherassistenzfähigkeiten
DE112011102691T5 (de) Verfahren und System zur Umwandlung von Zeitsteuerungsberichten in Zeitsteuerungswellenformen
DE102016119991A1 (de) Emulation von Taktjittern
DE102013218604A1 (de) System, Verfahren und Computerprogrammprodukt zum Testen eines integrierten Schaltkreises aus einer Befehlszeile
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
DE102016118749A1 (de) Signalwiederherstellung in Schaltwerk-Schaltung
US10540464B1 (en) Critical path aware voltage drop analysis of an integrated circuit
DE112013007735T5 (de) Dynamische Kopplungsstruktur mit partitionieren auf Emulations- und Protypentwicklungsplattformen
DE112013005831T5 (de) Netzlistenabstraktion
DE102023101325A1 (de) Systeme, vorrichtungen und verfahren zur leistungsverwaltung und leistungsschätzung
DE102014117431A1 (de) Simulationsvorrichtung, Simulationsverfahren und Programm
US10885248B1 (en) Method for modeling glitches during circuit simulation
EP3657363A1 (de) Registertransfer-modell und verfahren zur simulation eines integrierten schaltkreises

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017500000

Ipc: G06F0030000000

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE