DE112014000616T5 - Doppelstruktur-Taktbaumsynthese (CTS) - Google Patents

Doppelstruktur-Taktbaumsynthese (CTS) Download PDF

Info

Publication number
DE112014000616T5
DE112014000616T5 DE112014000616.5T DE112014000616T DE112014000616T5 DE 112014000616 T5 DE112014000616 T5 DE 112014000616T5 DE 112014000616 T DE112014000616 T DE 112014000616T DE 112014000616 T5 DE112014000616 T5 DE 112014000616T5
Authority
DE
Germany
Prior art keywords
clock tree
clock
tree
order
trees
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
DE112014000616.5T
Other languages
English (en)
Inventor
Xiaojun Ma
Aiqun Cao
Min Pan
Cheng-Liang Ding
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 DE112014000616T5 publication Critical patent/DE112014000616T5/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/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • 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/323Translation or migration, e.g. logic to logic, hardware description language [HDL] translation or netlist translation
    • 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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/04Clock gating
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

Es wird eine Doppelstruktur-Taktbaumsynthese (CTS) beschrieben. Einige Ausführungsformen können einen Satz von höherrangigen Taktbäumen erstellen, wobei jedes Ende eines jeden höherrangigen Taktbaums eine Wurzel eines niederrangigen Taktbaums bildet und wobei jeder höherrangige Taktbaum so optimiert werden kann, dass der Einflusses einer chipinternen Streuung und/oder einer eckpunktüberschreitenden Streuung auf den Taktversatz verringert wird. Anschließend können die Ausführungsformen für jedes Ende eines höherrangigen Taktbaums einen niederrangigen Taktbaum zum Verteilen eines Taktsignals vom Ende des höherrangigen Taktbaums an einen Satz von Taktsenken erstellen. Der niederrangige Taktbaum kann zur Verringerung von Latenzzeit, Energieverbrauch und/oder Flächenbedarf optimiert werden.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Diese Offenbarung betrifft die Taktbaumsynthese (CTS, von englisch: clock tree synthesis) und bezieht sich im Besonderen auf eine Doppelstruktur-CTS.
  • Stand der Technik
  • CTS bezeichnet ein Verfahren zum Erstellen eines Taktverteilungsnetzwerks zur Verteilung eines Taktsignals auf einen Satz von sequenziellen Schaltungselementen eines Chipentwurfs. Ein Chipentwurf kann mehrere Taktdomänen und jede Taktdomäne mehrere Taktbäume enthalten. Die Qualität der durch CTS erzeugten Taktbäume kann erhebliche Auswirkungen auf nachfolgende Stufen des EDA-Prozesses haben und insbesondere auf die abschließende Takteinstellung (englisch: timing closure). Daher besteht ein Bedarf an Systemen und Verfahren für eine CTS, die ein effizientes Erstellen von hochqualitativen Taktbäumen ermöglicht.
  • KURZBESCHREIBUNG
  • Einige der hierin beschriebenen Ausführungsformen geben Systeme und Verfahren zum Erstellen eines Taktbaums an. Einige Ausführungsformen können einen Satz von höherrangigen Taktbäumen anlegen, wobei jedes Ende eines höherrangigen Taktbaums eine Wurzel eines niederrangigen Taktbaums bildet und wobei jeder höherrangige Taktbaum zum Verringern eines Einflusses der chipinternen Streuung (OCV von englisch: on-chip-variation) oder der eckpunktüberschreitenden Streuung (englisch: cross-corner variation) auf den Taktversatz optimiert werden kann. Anschließend können die Ausführungsformen für jedes Ende eines jeden höherrangigen Taktbaums einen niederrangigen Taktbaum erstellen, wobei der niederrangige Taktbaum ein Taktsignal vom Ende des höherrangigen Taktbaums an einen Satz von Taktsenken verteilt. Der niederrangige Taktbaum kann zur Verringerung von Latenzzeit, Energieverbrauch und/oder Flächenbedarf optimiert werden.
  • Bei einigen Ausführungsformen können Leitungen in den höherrangigen Taktbäumen breiter sein als Leitungen in den niederrangigen Taktbäumen. Bei einigen Ausführungsformen können alle horizontalen Leitungen eines bestimmten höherrangigen Taktbaumes auf derselben Metallisierungsschicht verlegt werden. Bei einigen Ausführungsformen können alle vertikalen Leitungen eines bestimmten höherrangigen Taktbaumes auf derselben Metallisierungsschicht verlegt werden. Bei einigen Ausführungsformen können in einem gegebenen höherrangigen Taktbaum alle Puffer gleich groß sein.
  • KURZBESCHREIBUNG DER FIGUREN
  • 1 veranschaulicht eine Streuung von Betriebs- und Prozesszuständen über einen Chip gemäß einiger der in dieser Schrift beschriebenen Ausführungsformen.
  • 2 veranschaulicht eine Berücksichtigung von OCV-Streuungen durch taktbezogene Bedingungen gemäß einiger der hierin beschriebenen Ausführungsformen.
  • 3A3B veranschaulichen den Einfluss einer Änderung der Taktbaumtopologie auf den OCV-Taktversatz gemäß einiger der hierin beschriebenen Ausführungsformen.
  • 4 veranschaulicht ein Verfahren zur Ausführung einer CTS unter Berücksichtigung von OCV und zeitkritischen Zuständen gemäß einiger der hierin beschriebenen Ausführungsformen.
  • 5 veranschaulicht ein logisches Schaltschema eines Doppelstruktur-Taktbaums gemäß einiger der hierin beschriebenen Ausführungsformen.
  • 6 veranschaulicht einen Teil eines höherrangigen Taktbaums gemäß einiger der hierin beschriebenen Ausführungsformen.
  • 7 veranschaulicht ein Verfahren zum Erstellen eines Doppelstruktur-Taktbaums gemäß einiger der hierin beschriebenen Ausführungsformen.
  • 8 veranschaulicht ein Computersystem gemäß einiger der hierin beschriebenen 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 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 Erfindung zu verlassen. Daher ist die 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. Ferner bedeutet der Ausdruck ”auf Basis von” in dieser Offenbarung ”ausschließlich oder teilweise auf Basis von”.
  • Ü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 Formen zu beschränken.
  • Einige EDA-Programmierwerkzeuge ermöglichen Schaltungsentwicklern die Beschreibung der Funktionalität, die realisiert werden soll. Diese Werkzeuge ermöglichen Schaltungsentwicklern auch die Durchführung von ”Was-Wäre-Wenn”-Planungen zur Weiterentwicklung der Funktionalität, Kostenprüfung und dergleichen. Bei der logischen Modellierung und der Funktionalitätsprüfung kann Code für Systemmodule 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 dahingehend geprüft werden, ob 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 des Chips erstellt und das zeitliche Verhalten und die Globalverdrahtung 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 der 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 für die Herstellung von Masken, die bei der Herstellung verwendet werden, ausgegeben werden (tape-out).
  • CTS unter Berücksichtigung von OCV und zeitkritischen Zuständen
  • OCV bezieht sich auf Streuungen der Betriebs und Prozesszustände über einem Chip. 1 veranschaulicht, wie Betriebs- und Prozesszustände gemäß einiger der hier beschriebenen Ausführungsformen über einem Chip variieren können. Über dem Chip 102 variieren können Spannungs-, Temperatur- und Prozessparameter (z. B. Kanallänge). Beispielsweise können die Spannungs-, Temperatur- und Prozessparameter im Gebiet 104 3,2 V, 72°F bzw. 0,26 μm betragen. Im Gebiet 106 können die Spannungs-, Temperatur- und Prozessparameter dagegen 3,4 V, 68°F bzw. 0,24 μm betragen. OCV kann sich auf eine oder mehrere Charakteristiken eines Schaltungselements auswirken. Beispielsweise kann eine Instanz einer Zelle in dem Gebiet 104 aufgrund von OCV eine andere Verzögerungscharakteristik aufweisen als eine Instanz derselben Zelle in dem Gebiet 106.
  • Im Allgemeinen nimmt die OCV zwischen zwei Stellen mit deren Abstand zu. Beispielsweise ist anzunehmen, dass die Unterschiede (z. B. Verzögerungen) zwischen zwei weit auseinander liegenden identischen Zellen größer sind als bei zwei näher beieinander liegenden Zellen. Zudem nimmt die OCV im Allgemeinen mit der Länge eines Pfades und/oder der Anzahl von Schaltungselementen in dem Pfad zu. Zum Beispiel kann man annehmen, dass eine längere Leitung eine deutlichere Auswirkung auf die OCV hat als eine kürzere Leitung. Ferner ist anzunehmen, dass ein Pfad, der eine größere Anzahl von Schaltungselementen aufweist, eine größere Auswirkung auf die OCV hat als ein Pfad mit weniger Schaltungselementen.
  • OCV kann den Taktversatz beeinträchtigen, da OCV zu einer Streuung der Verzögerung durch Schaltungselemente und Leitungen um ihre Nominalwerte führt. Taktbezogenen Bedingungen müssen diese Streuungen daher berücksichtigen. 2 veranschaulicht eine Berücksichtigung von OCV-Streuungen durch taktbezogene Bedingungen gemäß einiger der hier beschriebenen Ausführungsformen. Die Schaltung 200 umfasst die sequenziellen Schaltungselemente 202, 204 und 206. Jedes der sequenziellen Schaltungselemente besitzt einen Takteingang ”C” zum Empfang eines Taktsignals, einen Ausgang ”Q” zur Abgabe eines Datensignals auf Basis des Taktsignals und einen Eingang ”D” zur Aufnahme eines Datensignals auf Basis des Taktsignals. Auch wenn in 2 ein ”D-Flipflop” als Beispiel für ein sequenzielles Schaltungselement verwendet wurde, können die sequenziellen Schaltungselemente 202, 204 und 206 generell von einer beliebigen Schaltung gebildet sein, deren zeitliche Steuerung unter Verwendung eines Taktsignals erfolgt.
  • Die kombinatorischen Logikwolken 214 und 216 können eine oder mehrere Leitungen und/oder eine oder mehrere kombinatorische Logikgatter enthalten, jedoch keine sequenziellen Schaltungselemente. Ein an einem Ausgang eines sequenziellen Schaltungselements abgegebenes Datensignal kann, bevor es an einem Eingang eines anderen sequenziellen Schaltungselements aufgenommen wird, eine kombinatorische Logikwolke durchlaufen. Zum Beispiel durchläuft das am Ausgang ”Q” des sequenziellen Schaltungselements 202 abgegebene Datensignal die kombinatorische Logikwolke 214 (wo es mit anderen Datensignalen logisch kombiniert werden kann) bevor es am Eingang ”D” des sequenziellen Schaltungselements 204 aufgenommen wird.
  • Das Taktsignal ”CLK” kann an die sequenziellen Schaltungselemente unter Verwendung eines die Puffer 208, 210 und 212 aufweisenden Taktbaums verteilt werden. Der Taktbaum umfasst die Verzweigungspunkte B1 und B2, an denen sich die Taktbaumtopologie in mehrere Richtungen verzweigt. Wie zuvor erläutert kann eine OCV dazu führen, dass verschiedene Instanzen derselben Zelle oder Leitung unterschiedliche Verzögerungen aufweisen. Konkret kann die OCV für ein Schaltungselement unter Verwendung einer Palette von Verzögerungen (im Gegensatz zu einer einzigen Nominalverzögerung) modelliert werden, indem z. B. für das Schaltungselement ein Drosselungsfaktor für die Betriebswerte oder ein hoher und ein niedriger Verzögerungswert verwendet werden. Für einen Pfad kann ebenfalls ein hoher und ein niedriger Verzögerungswert berechnet werden, indem die hohen und die niedrigen Verzögerungswerte von den sich im Pfad befindenden Schaltungselementen aggregiert werden.
  • In 2 sind Schaltungspfade durch gestrichelte Linien veranschaulicht und die hohen (d. h. langsamer Pfad) und niedrigen (d. h. schneller Pfad) Verzögerungswerte der Schaltungspfade sind jeweils mithilfe von Groß- und Kleinbuchstaben dargestellt. Vom Verzweigungspunkt B1 zum Takteingang ”C” des sequenziellen Schaltungselements 202 beträgt der hohe Verzögerungswert zum Beispiel X1 und der niedrige Verzögerungswert x1. Der tiefgestellte Index ”1” des Ausdrucks ”X1” gibt an, dass es sich um die Verzögerungswert ab dem Verzweigungspunkt B1 handelt.
  • Auch die Datenpfadverzögerungen sind in 2 illustriert. Beispielsweise betragen die hohe und die niedrige Verzögerung von der Abgabe des Datensignals am Ausgang ”Q” des sequenziellen Schaltungselements 202 bis zur Aufnahme des Datensignals am Eingang ”D” des sequenziellen Schaltungselements 204 ”A” (hoher Verzögerungswert) und ”a” (niedriger Verzögerungswert).
  • In dieser Offenbarung, wird der sich auf den hohen Verzögerungswert beziehende Großbuchstabe auch zur Bezeichnung des Datenpfades selbst verwendet. Beispielsweise bezieht sich der Datenpfad ”A” auf den vom sequenziellen Schaltungselement 202 durch die kombinatorische logische Wolke 214 zum sequenziellen Schaltungselement 204 führenden Datenpfad. Es wird darauf hingewiesen, dass die gestrichelte Linie am Takteingang ”C” des sequenziellen Schaltungselements 202 beginnt (im Gegensatz zu einem Beginn am Ausgang ”Q”), da die durch die gestrichelte Linie dargestellte Datenpfadverzögerung die Abgabeverzögerung umfasst, bei der es sich um den Zeitverzug zwischen einer am Takteingang ”C” ankommenden Taktflanke und der Abgabe des Datensignals am Ausgang ”Q” handelt.
  • Bei einer Verwendung von Pfadverzögerungen wie in 2 gezeigt können die OCV-bezogenen Setupzeit-Bedingungen wie folgt ausgedrückt werden: A + X1 – y1 < ΔA, B + Y2 – z2 < ΔB, und C + Z2 – y2 < ΔC, (1) worin ΔA, ΔB, und ΔC die Setupzeit-Bedingungen bezeichnen. In gleicher Weise können die die OCV berücksichtigenden Haltezeit-Bedingungen wie folgt dargestellt werden: a + x1 – Y1 > δA, b + y2 – Z2 > δB, und c + z2 – Y2 > δC, (2) worin δA, δB, and δC die Haltezeit-Bedingungen bezeichnen.
  • Die hohen und niedrigen Verzögerungswerte können unter Verwendung eines Drosselungsfaktors dargestellt werden. d gebe den Drosselungsfaktor und der hochgestellte Strich (') einen nominalen Verzögerungswert an. Beispielsweise sei x1' die nominale Pfadverzögerung vom Verzweigungspunkt B1 zum Takteingang ”C” des sequenziellen Schaltungselements 202. Dann können der hohe und der niedrige Verzögerungswert als X1 = x1'd·x1' bzw. x1 = x1' – d·x1' ausgedrückt werden. Für andere hohe und niedrige Verzögerungen können ähnliche Ausdrücke hergeleitet werden. Unter Verwendung der Gleichungen (1) können die Taktversätze CSA, CSB und CSC der jeweiligen Datenpfade ”A”, ”B” und ”C” wir folgt ausgedrückt werden: CSA = X1 – y1 = (x1' – y1') + d·(x1' + y1'), CSB = Y2 – z2 = (y2' – z2') + d·(y2' + z2'), und CSC = Z2 – y2 = (z2' – y2') + d·(z2' + y2'), (3)
  • Es wird darauf hingewiesen, dass der erste Term auf der rechten Seite, z. B. (x1' – y1'), den nominalen Taktversatz (d. h. die Differenz zwischen den nominalen Pfadverzögerungen) und der zweite Term, z. B. d·(x1' + y1'), den Einfluss der OCV wiedergibt. Die Taktversatzausdrücke für die Haltezeit-Bedingungen können auf die gleiche Weise abgeleitet werden.
  • Aus den Gleichungen (3) lassen sich ein paar wichtige Schlussfolgerungen ziehen. Als Erstes wird darauf hingewiesen, dass die OCV-Komponente des Taktversatzes nur durch Minimieren der gesamten (d. h. Abgeben und Aufnehmen) Pfadlatenzzeit ab den Verzeigungspunkten minimiert werden kann, z. B. durch Minimieren von (x1' + y1'). Zweitens führt ein Verschieben des Verzweigungspunktes in Richtung zur Wurzel der Taktbaumtopologie zu einer höheren Gesamtpfadlatenzzeit ab dem Verzweigungspunkt, wodurch sich die OCV-Komponente des Taktversatzes erhöht. Drittens führt ein Minimieren des nominalen Taktversatzes mittels Hinzufügen einer Vorverzögerung wahrscheinlich zu einer Verschlechterung der OCV-Komponente des Taktversatzes, da die hinzugefügte Vorverzögerung die Gesamtpfadlatenzzeit ab dem Verzweigungspunkt erhöht. Herkömmliche CTS-Ansätze versuchen üblicherweise den nominalen Taktversatz zu optimieren. Auf Grundlage des oben Ausgeführten ist klar, dass sich ein Optimieren des OCV-Taktversatzes (d. h. ein Verringern des OCV-Einflusses auf den Taktversatz) von der bei einer üblichen CTS verfolgten herkömmlichen Taktversatzoptimierung stark unterscheidet.
  • Die 3A und 3B veranschaulichen den Einfluss einer Änderung der Taktbaumtopologie auf den OCV-Taktversatz gemäß einiger der hierin beschriebenen Ausführungsformen. Aus Gründen einer übersichtlichen und einfachen Darstellung sind in den 3A und 3B keine Puffer dargestellt. Die in 3A gezeigte Schaltung 300 weist eine Taktbaumtopologie auf, bei der der Verzweigungspunkt B1 weiter entfernt von den Enden des Baumes (und damit näher an der Wurzel des Baumes) und der Verzweigungspunkt B2 näher an den Enden des Baumes (und damit weiter entfernt von der Wurzel des Baumes) liegt. Bei der in 3B dargestellten Schaltung 350 liegt der Verzweigungspunkt B2 dagegen weiter entfernt von den Enden des Baumes und der Verzweigungspunkt B1 näher an den Enden des Baumes.
  • Es wird darauf hingewiesen, dass bei der Schaltung 300 die OCV-Komponente des Taktversatzes für den Datenpfad ”A” größer ist als die OCV-Komponente des Taktversatzes für die Datenpfade ”B” und ”C”. Der Grund hierfür ist, dass in 3A (x1' + y1') > (y2' + z2'). Umgekehrt ist bei der Schaltung 350 die OCV-Komponente des Taktversatzes für den Datenpfad ”A” geringer ist als die OCV-Komponente des Taktversatzes für die Datenpfade ”B” und ”C”. Der Grund hierfür ist, dass in 3B (x1' + y1') < (y2' + z2').
  • Einige der hier beschriebenen Ausführungsformen erstellen eine Taktbaumtopologie, die den Einfluss der OCV auf den Taktversatz bei kritischen taktgesteuerten Pfaden (englisch: timing paths) verringert. Falls die Datenpfade ”B” und ”C” zum Beispiel kritisch sind (d. h. der Taktschlupf negativ oder fast null ist) während der Datenpfad ”A” unkritisch ist, dann können einige Ausführungsformen die in 3A gezeigte Taktbaumtopologie verwenden. Ist dagegen der Datenpfad ”A” kritisch, während die Datenpfade ”B” und ”C” unkritisch sind, dann können einige Ausführungsformen die in 3B gezeigte Taktbaumtopologie verwenden. Im Allgemeinen kann ein Verringern des OCV-Taktversatzes auf einem bestimmten taktgesteuerten Pfad (d. h. ein Reduzieren des OCV-Einflusses auf den Taktversatz bei einem bestimmten taktgesteuerten Pfad) ein Reduzieren der gesamten (d. h. Abgeben und Aufnehmen) Pfadlatenzzeit ab dem zu den abgebenden und aufnehmenden sequenziellen Schaltungselementen nächstgelegenen Verzweigungspunkt (d. h. dem am nächsten zu dem abgebenden und aufnehmenden sequenziellen Schaltungselement gelegenen) umfassen.
  • 4 veranschaulicht ein Verfahren zur Ausführung einer CTS unter Berücksichtigung von OCV und zeitkritischen Zuständen gemäß einiger der hierin beschriebenen Ausführungsformen. Das Verfahren kann mit einem Erstellen eines ersten Satzes von Taktbaumtopologien zum Takten von sequenziellen Schaltungselementen beginnen, die sich in einem Satz kritischer Pfade befinden, wobei das Erstellen ein Optimieren des ersten Satzes von Taktbaumtopologien zum Reduzieren eines OCV-Einflusses auf den Taktversatz umfasst (Vorgang 402).
  • Taktschlupfe (englisch: timing slacks) und die zugehörigen taktgesteuerten Pfade können ermittelt werden, indem die benötigten Zeiten durch den Chipentwurf nach hinten verschoben (d. h. von den Taktendpunkten zu den Taktstartpunkten) und die Ankunftszeiten durch den Chipentwurf nach vorne (d. h. von den Taktstartpunkten zu den Taktendpunkten) verschoben werden. Als Nächstes können als Satz kritischer Pfade die taktgesteuerten Pfade erfasst werden, denen Taktschlupfverstöße zuzuordnen sind, und wahlweise jene, denen Beinahe-Taktschlupfverstöße zuzuordnen sind. Bei einigen Ausführungsformen kann das Verfahren den Satz kritischer Pfade durch Sortieren von taktgesteuerten Pfaden auf Basis von deren Schlupfwerten und Auswählen einer vorgegebenen Anzahl (oder eines vorgegebenen prozentualen Anteils) der Pfade mit dem geringsten Schlupf bestimmen.
  • Wie zuvor erläutert beginnt jeder kritische Pfad an einem Ausgang (einem Taktstartpunkt) eines abgebenden sequenziellen Schaltungselements und endet an einem Eingang (einem zeitlichen Taktendpunkt) eines aufnehmenden sequenziellen Schaltungselements. In 2 kann ein kritischer Pfad zum Beispiel am ”Q”-Ausgang des sequenziellen Schaltungselements 202 beginnen und am ”D”-Eingang des sequenziellen Schaltungselements 204 enden. Es wird darauf hingewiesen, dass der Satz kritischer Pfade einem Satz sequenzieller Schaltungselemente entspricht. Umfasst der Satz kritischer Pfade in 2 zum Beispiel die Datenpfade ”B” und ”C”, dann umfassen die sequenziellen Schaltungselemente, die sich in dem Satz kritischer Pfade befinden, die sequenziellen Schaltungselemente 202, 204 und 206. Umfasst der Satz kritischer Pfade dagegen nur den Datenpfad ”A”, dann umfassen die sequenziellen Schaltungselemente, die sich in dem Satz kritischer Pfade befinden, die sequenziellen Schaltungselemente 202 und 204, nicht jedoch das sequenzielle Schaltungselement 206.
  • Ein Satz von Taktbaumtopologien kann eine oder mehrere Taktbaumtopologien umfassen. Zum Beispiel ist das Netz in 3A, das das Taktsignal ”CLK” an die Takteingänge der sequenziellen Schaltungselemente 202, 204 und 206 verteilt, ein Beispiel für ”einen Satz von Taktbaumtopologien”, der lediglich eine Taktbaumtopologie aufweist. Die Begriffe ”optimieren”, ”optimierend” und andere derartige Begriffe bezeichnen Verfahren, die versuchen, eine bestimmte Zielfunktion zu minimieren oder zu maximieren. Es wird darauf hingewiesen, dass diese Optimierungsverfahren beendet werden können, bevor der globale Minimal- oder Maximalwert der Zielfunktion erhalten wird. Ein Optimieren eines Satzes von Taktbaumtopologien zum Reduzieren des OCV-Einflusses auf den Taktversatz kann ein Ermitteln einer optimierten Position für einen Verzeigungspunkt in einer Taktbaumtopologie umfassen. Das kann das Verfahren konkret einen Verzweigungspunkt ermitteln, der so nahe wie möglich an den beiden sequenziellen Schaltungselementen angeordnet ist, die sich an den Enden eines bestimmten kritischen Pfades befinden.
  • Wie 4 zu entnehmen kann das Verfahren anschließend einen zweiten Satz von Taktbaumtopologien für die Taktung der sequenziellen Schaltungselemente erstellen, die nicht Bestandteil des Satzes kritischer Pfade sind, wobei das Erstellen ein Optimieren des zweiten Satzes von Taktbaumtopologien zum Reduzieren der Taktlatenzzeit umfasst (Vorgang 404). Bei einigen Ausführungsformen kann eine Kombination von Metriken zusammen optimiert werden. Beim Vorgang 404 kann das Verfahren zum Beispiel versuchen, Latenzzeit (z. B. Minimieren der maximalen Verzögerung von der Wurzel eines Taktbaums zu den Enden des Taktbaums), Energieverbrauch (z. B. dynamischer Verbrauch und/oder Verlustleistung eines Taktbaums) und/oder Flächenbedarf (z. B. die gesamte Zellenfläche der bei einem Taktbaum verwendeten Puffer) der Taktbaumtopologien zu optimieren.
  • Der zweite Satz von Taktbaumtopologien kann vollständig neue Taktbaumtopologien und/oder inkrementelle Erweiterungen bestehender Taktbaumtopologien (z. B. inkrementelle Erweiterungen der beim Vorgang 402 erzeugten Taktbaumtopologien) aufweisen. Es sei zum Beispiel angenommen, dass in 2 der Datenpfad ”A” ein kritischer Pfad, die Pfade ”B” und ”C” jedoch keine kritischen Pfade sind. Vorgang 402 kann eine Taktbaumtopologie erstellen, die ein Taktsignal ”CLK” an die Takteingänge der sequenziellen Schaltungselemente 202 und 204 leitet. Anschließend kann der Vorgang 404 diese Taktbaumtopologie durch Erzeugen eines Verzweigungspunktes B2 zum Takteingang des sequenziellen Schaltungselements 206 inkrementell erweitern (Es wird darauf hingewiesen, dass dieser Abzweig im Vorgang 402 nicht erzeugt wurde, da sich das sequenzielle Schaltungselement 206 nicht in einem kritischen Pfad befand).
  • Doppelstruktur-Taktbaum
  • Herkömmliche CTS-Ansätze erstellen einen Baum von unten nach oben, d. h., dass diese Ansätze mit den Taktsenken (z. B. den Takteingängen von sequenziellen Schaltungselementen) beginnen und den Baum stufenweise in Richtung zur Taktquelle aufbauen. OCV kann bedauerlicherweise dazu führen, dass der Taktversatz bei Taktbäumen, die unter Einsatz herkömmlicher CTS-Ansätze aufgebaut wurden, erheblich streuen kann.
  • Im Gegensatz zu herkömmlichen CTS-Ansätzen bauen einige der hierin beschriebenen Ausführungsformen einen Doppelstruktur-Taktbaum unter Verwendung von zwei Taktbaumarten auf, die die höherrangige Taktbäume und niederrangige Taktbäume genannt werden. Ein höherrangiger Taktbaum wird zum Leiten eines Taktsignals über relativ große Entfernungen an verschiedene Bereiche des Chips erstellt und optimiert. Ein höherrangiger Taktbaum kann so optimiert werden, dass er gegenüber OCV und/oder Eckpunktüberschreitung tolerant ist, z. B. indem der höherrangige Taktbaum so optimiert wird, dass die Einflüsse der OCV und/oder der eckpunktüberschreitenden Streuung auf den Taktversatz reduziert werden. Die Enden eines höherrangigen Taktbaums (Verankerungspuffer genannt) dienen als Wurzeln eines niederrangigen Taktbaums. Konkret kann von jedem Ende eines höherrangigen Taktbaum ausgehend ein niederrangiger Taktbaum erstellt und optimiert werden, um das Taktsignal zu Taktsenken in der Nähe des Endes des höherrangigen Taktbaums zu leiten.
  • 5 veranschaulicht ein logisches Schaltschema eines Doppelstruktur-Taktbaums gemäß einiger der hierin beschriebenen Ausführungsformen. Der höherrangige Taktbaum 504 verteilt ein Taktsignal von der Taktbaumwurzel 502 an die Enden des höherrangigen Taktbaums 504, z. B. an das Ende 508 des höherrangigen Taktbaums 504. Jedes der Enden eines höherrangigen Taktbaums kann ein Taktpuffer sein (in dieser Offenbarung als Verankerungspuffer bezeichnet). Das Ende 508 kann beispielsweise ein Verankerungspuffer sein, der einen niederrangigen Taktbaum ansteuert.
  • Die niederrangigen Taktbäume 506 verteilen das Taktsignal von einem Ende eines höherrangigen Taktbaums an einen Satz von Taktsenken. Konkret dient jedes Ende eines jeden höherrangigen Taktbaums als Wurzel eines niederrangigen Taktbaums, der das Taktsignal zu den Taktsenken leitet, die sich in der Nähe des Endes des höherrangigen Taktbaums befinden. Das Ende 508 dient zum Beispiel als Wurzel für den niederrangigen Taktbaum 510, der das Taktsignal an die Taktsenken, z. B. die Taktsenke 512, verteilt, die sich in der Nähe des Endes 508 befinden.
  • Wie zuvor erwähnt kann ein höherrangiger Taktbaum so optimiert werden, dass er gegenüber einer OCV tolerant ist, z. B. indem die höherrangige Taktbaumtopologie so optimiert wird, dass der Einfluss der OCV auf den Taktversatz verringert wird. Zudem können bei einigen Ausführungsformen alle der in einem höherrangigen Taktbaum verwendeten Puffer Instanzen derselben Zelle, oder Instanzen desselben Zellentyps mit sehr ähnlichen Abmessungen sein (wenn die Zellenbibliothek z. B. Zellen mit einer großen Zellengrößenbandbreite umfasst, dann können die in dem höherrangigen Taktbaum verwendeten Zellen aus einer kleinen Zellengrößenbandbreite ausgewählt werden). Die Verwendung von Puffern gleicher Größe kann den OCV-Einfluss auf den Taktversatz verringern, da anzunehmen ist, dass Puffer gleicher Größe in gleicher Weise von der OCV beeinträchtigt werden. Zudem kann die Taktbaumtopologie des höherrangigen Taktbaums eine reguläre Struktur aufweisen, die hilft, den OCV-Einfluss auf den Taktversatz zu verringern. Bei einigen Ausführungsformen kann der höherrangige Taktbaum Leitungen verwenden, die breiter sind als die für niederrangige Taktbäume verwendeten Leitungen. Die elektrischen Eigenschaften (z. B. Kapazität und Widerstand) einer breiteren Leitung sind gegenüber einer OCV im Allgemeinen toleranter als die einer schmäleren Leitung. Darüber hinaus können, um den Einfluss von Prozessvariationen entlang der Metallisierungsschichten zu vermindern, alle horizontalen Leitungen auf derselben Metallisierungsschicht verlegt werden (z. B. der Metallisierungsschicht M4), wobei die vertikalen Leitungen in gleicher Weise auf derselben Metallisierungsschicht verlegt werden können (z. B. auf der Metallisierungsschicht M3). Auf diese Weise kann ein höherrangiger Taktbaum so optimiert werden, dass der OCV-Einfluss auf die Eigenschaften (z. B. den Taktversatz) des Taktbaums verringert wird.
  • Es wird darauf hingewiesen, dass eine Verwendung von identischen Bauelementen und/oder Leitungsbreiten nicht nur den OCV-Einfluss verringert, sondern auch die (als PVT-Variation bekannte) eckpunktüberschreitende Streuung reduziert. Wie zuvor erläutert bezieht sich eine OCV auf eine Streuung innerhalb verschiedener Bereiche eines Chips. Eine eckpunktüberschreitende Streuung bzw. PVT-Variation bezieht sich dagegen auf Prozess-, Spannungs- und Temperaturvariationen bei mehreren Eckpunkten, die den gesamten Chip betreffen. Üblicherweise wird ein Chip bezüglich mehrerer Eckpunkte (jeder Eckpunkt ist mit einem nominalen Prozess, einer nominalen Spannung und einem nominalen Temperaturwert verknüpft) getestet (z. B. bezüglich der Zeitsteuerung), wobei eine Verringerung der Streuung des Taktversatzes an mehreren PVT-Eckpunkten durch eine Verwendung von identischen Bauelementen und/oder Leitungsbreiten unterstützt wird.
  • 6 veranschaulicht einen Teil eines höherrangigen Taktbaums gemäß einiger der hierin beschriebenen Ausführungsformen. Der in 6 dargestellte Teil des höherrangigen Taktbaums weist Leitungen, beispielsweise Leitung 604, und Puffer, beispielsweise Puffer 606, auf. Das Verlegungsgitter 602 kann zum Verlegen der Leitungen des Taktbaums verwendet werden und in dem Verlegungsgitter 602 können Verlegungs- und/oder Platzierungssperrgebiete, z. B. Sperrgebiet 608, festgelegt werden. Es wird darauf hingewiesen, dass die Leitung 604 so verlegt wurde, dass sie das Sperrgebiet 608 meidet. Zudem wird darauf hingewiesen, dass alle horizontalen Leitungen in derselben Metallisierungsschicht verlegt wurden, nämlich Metallisierungsschicht M4, und auch alle vertikalen Leitungen in derselben Metallisierungsschicht verlegt wurden, nämlich Metallisierungsschicht M3. Dies kann bei einigen Ausführungsformen dadurch erreicht werden, dass eine Verlegungsregel aufgestellt wird, die den Router zwingt, alle horizontalen und vertikalen Leitungen eines höherrangigen Taktbaums in entsprechenden Metallisierungsschichten zu verlegen. Zudem versucht eine Doppelstruktur-CTS wie in 6 gezeigt einen gemeinsamen genutzten Pfad so weit wie möglich für alle zu nutzen, um den OCV-Einfluss auf den Taktversatz zu reduzieren.
  • 7 veranschaulicht ein Verfahren zum Erstellen eines Doppelstruktur-Taktbaums gemäß einiger der hierin beschriebenen Ausführungsformen. Das Verfahren kann mit dem Erstellen eines Satzes von höherrangigen Taktbäumen beginnen, wobei jedes Ende eines höherrangigen Taktbaums eine Wurzel eines niederrangigen Taktbaums bildet, und wobei jeder höherrangige Taktbaum in Bezug auf eine Reduktion des OCV-Einflusses und/oder der eckpunktüberschreitenden Streuung auf den Taktversatz optimiert wird (Vorgang 702).
  • Der Satz von höherrangigen Taktbäumen kann einen oder mehrere höherrangige Taktbäume umfassen. Wie oben erläutert sind bei einem höherrangigen Taktbaum die Leitungen in der Regel länger als bei niederrangigen Taktbäumen, ein höherrangiger Taktbaum besitzt für jeden Taktpuffer kleine Abzweigungen und in dem Taktbaum befinden sich nur wenige oder gar keine logischen Gatter. Zudem kann ein höherrangiger Taktbaum für eine bessere OCV-Toleranz vorzugsweise eine reguläre Topologie aufweisen und Taktpuffer von gleicher/ähnlicher Größe zur Verringerung des Einflusses von Bauelementstreuungen aufweisen. Ferner können bei höherrangigen Taktbäumen für verschiedene Zweige des Baumes aufeinander abgestimmte Leitungslängen und Metallisierungsschichten verwendet werden, um die Verbindungsstreuungen zu kontrollieren. Bei der Erstellung eines höherrangigen Taktbaums kann das Verfahren (1) Zellenverzögerungen und Leitungsverzögerungen über verschiedene Eckpunkte von Prozessen, Spannungen und Temperaturen ausgleichen, (2) im gesamten Taktbaum einen gleichgroßen Puffer verwenden und (3) Zweigrouten anpassen.
  • Anschließend kann das Verfahren an jedem Ende eines höherrangigen Taktbaums einen niederrangigen Taktbaum erstellen, wobei der niederrangige Taktbaum ein Taktsignal vom Ende des höherrangigen Taktbaums an einen Satz von Taktsenken verteilt und wobei der niederrangige Taktbaum zur Verringerung von Latenzzeit, Energieverbrauch und/oder Flächenbedarf optimiert wird (Vorgang 704). Wie zuvor erläutert weisen niederrangige Taktbäume im Allgemeinen kürzere Leitungslängen auf als höherrangige Taktbäume, besitzen für jeden Taktpuffer/Gate mittlere bis große Abzweigungen und weisen aufgrund der ungleichmäßigen Verteilung der Taktsenken und der unterschiedlich großen Puffer/Gates eine weniger reguläre Struktur auf. Im Allgemeinen gilt, je weniger Stufen der niederrangige Taktbaum aufweist, umso OCV-toleranter ist der Taktbaum.
  • Bei einigen Ausführungsformen kann die maximale Anzahl an Pufferebenen im niederrangigen Taktbaum zur Verringerung des OCV-Einflusses beschränkt werden. Um der Beschränkung der maximalen Pufferebenen zu entsprechen, kann bei niederrangigen Taktbäumen außer einem Hinzufügen von Puffern ein Klonen bestehender Gates (z. B. von Taktgatezellen) erforderlich sein. Bei einigen Ausführungsformen wird zum Puffern und Gateklonen derselbe Gruppierungsprozess verwendet. Bei einigen Ausführungsformen kann das Verfahren gewährleisten, dass die Ebenen der niederrangigen Taktbäume ausgeglichen sind, wodurch die OCV-Toleranz weiter verbessert werden kann.
  • Bei einigen Ausführungsformen ist die Anzahl der Ebenen von niederrangigen Taktbäumen auf eine vorgegebene Maximalzahl beschränkt, d. h. die Anzahl der Puffer in einem Pfad von der Wurzel des niederrangigen Taktbaums zu den Enden des niederrangigen Taktbaums ist jeweils so beschränkt, dass sie kleiner oder gleich der vorgegebenen Maximalzahl ist. Es wird darauf hingewiesen, dass diese maximale Pufferebenenbeschränkung auch die Größe der niederrangigen Taktbäume begrenzt. Nach Festlegung einer vorgegebenen Pufferebenenbeschränkung kann das Verfahren einen Satz von niederrangigen Taktbäumen durch Gruppieren von Taktsenken im Chipentwurf erstellen. Das Verfahren kann dann bei den niederrangigen Taktbäumen vorläufige Positionen für Verankerungspuffer ermitteln. Sobald die vorläufigen Verankerungspufferpositionen bestimmt wurden, kann das Verfahren einen oder mehrere höherrangige Taktbäume zur Verteilung des Taktsignals an die Verankerungspuffer erstellen. Im Allgemeinen ist die Anzahl der niederrangigen Taktbäume größer, wenn die Anzahl der in den niederrangigen Taktbäumen zugelassenen Anzahl an Ebenen klein ist. Umgekehrt ist die Anzahl der niederrangigen Taktbäume geringer, wenn die Anzahl der in den niederrangigen Taktbäumen zugelassenen Anzahl an Ebenen groß ist.
  • Computersystem
  • 8 veranschaulicht ein Computersystem gemäß einiger der in dieser Offenbarung beschriebenen Ausführungsformen. Das Computersystem 802 kann einen Prozessor 804, einen Speicher 806 und eine Speichereinrichtung 808 aufweisen. Das Computersystem 802 kann mit einer Anzeigevorrichtung 814, einer Tastatur 810 und einem Zeigegerät 812 verbunden sein. In der Speichereinrichtung 808 können das Betriebssystem 816, das Anwendungsprogramm 818 und Daten 820 gespeichert sein. Die Daten 820 können Eingaben umfassen, die von dem Anwendungsprogramm 818 benötigt werden, und/oder Ausgaben, die von dem Anwendungsprogramm 818 erzeugt werden.
  • Das Computersystem 802 kann einige oder mehrere der in dieser Schrift implizit oder explizit offenbarten Vorgänge automatisch (oder über eine Interaktion mit einem Anwender) ausführen. Konkret kann das Computersystem 802 während des Betriebs das Anwendungsprogramm 818 in den Speicher 806 laden und das Anwendungsprogramm 818 kann dann zur Durchführung einer CTS unter Berücksichtigung von OCV und zeitkritischen Zuständen und/oder zur Durchführung einer Doppelstruktur-CTS verwendet werden.
  • ABSCHLIESSENDE FESTSTELLUNGEN
  • 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 computerlesbaren Speichermedium und/oder einem Hardwaremodul und/oder einer Hardwarevorrichtung gespeichert sein. Ein computerlesbares Speichermedium umfasst, ohne darauf beschränkt zu sein, einen flüchtigen Speicher, einen nichtflüchtigen Speicher, eine magnetische und optische Speichervorrichtung wie beispielsweise ein Plattenlaufwerk, ein Magnetband, 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. 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 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, sodass die Hardwaremodule bzw. -vorrichtungen nach der Aktivierung die entsprechenden Verfahren und Prozesse ausführen. 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 (15)

  1. Verfahren zur Taktbaumsynthese, wobei das Verfahren umfasst: Erstellen eines Satzes von höherrangigen Taktbäumen, wobei jedes Ende eines jeden höherrangigen Taktbaums eine Wurzel eines niederrangigen Taktbaums bildet und wobei jeder höherrangige Taktbaum so optimiert ist, das der Einflusses einer chipinternen Streuung und/oder einer eckpunktüberschreitenden Streuung auf den Taktversatz verringert wird, und Erstellen eines niederrangigen Taktbaums an jedem der Enden eines höherrangigen Taktbaums, wobei der niederrangige Taktbaum ein Taktsignal vom Ende des höherrangigen Taktbaums an einen Satz von Taktsenken verteilt und wobei der niederrangige Taktbaum zur Verringerung von Latenzzeit, Energieverbrauch und/oder Flächenbedarf optimiert ist.
  2. Verfahren nach Anspruch 1, worin Leitungen in den höherrangigen Taktbäumen breiter sind als Leitungen in den niederrangigen Taktbäumen.
  3. Verfahren nach Anspruch 1, worin alle horizontalen Leitungen eines bestimmten höherrangigen Taktbaumes auf derselben Metallisierungsschicht verlegt sind.
  4. Verfahren nach Anspruch 1, worin alle vertikalen Leitungen eines bestimmten höherrangigen Taktbaumes auf derselben Metallisierungsschicht verlegt sind.
  5. Verfahren nach Anspruch 1, worin in einem gegebenen höherrangigen Taktbaum alle Puffer gleich groß sind.
  6. Nichtflüchtiges computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, die bei Ausführung durch einen Computer den Computer dazu veranlassen, ein Verfahren zur Taktbaumsynthese auszuführen, wobei das Verfahren umfasst: Erstellen eines Satzes von höherrangigen Taktbäumen, wobei jedes Ende eines jeden höherrangigen Taktbaums eine Wurzel eines niederrangigen Taktbaums bildet und wobei jeder höherrangige Taktbaum so optimiert ist, das der Einflusses einer chipinternen Streuung und/oder einer eckpunktüberschreitenden Streuung auf den Taktversatz verringert wird, und Erstellen eines niederrangigen Taktbaums an jedem der Enden eines höherrangigen Taktbaums, wobei der niederrangige Taktbaum ein Taktsignal vom Ende des höherrangigen Taktbaums an einen Satz von Taktsenken verteilt und wobei der niederrangige Taktbaum zur Verringerung von Latenzzeit, Energieverbrauch und/oder Flächenbedarf optimiert ist.
  7. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 6, worin Leitungen in den höherrangigen Taktbäumen breiter sind als Leitungen in den niederrangigen Taktbäumen.
  8. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 6, worin alle horizontalen Leitungen eines bestimmten höherrangigen Taktbaumes auf derselben Metallisierungsschicht verlegt sind.
  9. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 6, worin alle vertikalen Leitungen eines bestimmten höherrangigen Taktbaumes auf derselben Metallisierungsschicht verlegt sind.
  10. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 6, worin in einem gegebenen höherrangigen Taktbaum alle Puffer gleich groß sind.
  11. Vorrichtung, die aufweist: einen Prozessor und ein Speichermedium, auf dem Anweisungen gespeichert sind, die bei Ausführung durch den Prozessor die Vorrichtung dazu veranlassen, ein Verfahren zur Taktbaumsynthese auszuführen, wobei das Verfahren umfasst: Erstellen eines Satzes von höherrangigen Taktbäumen, wobei jedes Ende eines jeden höherrangigen Taktbaums eine Wurzel eines niederrangigen Taktbaums bildet und wobei jeder höherrangige Taktbaum so optimiert ist, das der Einflusses einer chipinternen Streuung und/oder einer eckpunktüberschreitenden Streuung auf den Taktversatz verringert wird, und Erstellen eines niederrangigen Taktbaums an jedem der Enden eines höherrangigen Taktbaums, wobei der niederrangige Taktbaum ein Taktsignal vom Ende des höherrangigen Taktbaums an einen Satz von Taktsenken verteilt und wobei der niederrangige Taktbaum zur Verringerung von Latenzzeit, Energieverbrauch und/oder Flächenbedarf optimiert ist.
  12. Vorrichtung nach Anspruch 11, worin Leitungen in den höherrangigen Taktbäumen breiter sind als Leitungen in den niederrangigen Taktbäumen.
  13. Vorrichtung nach Anspruch 11, worin alle horizontalen Leitungen eines bestimmten höherrangigen Taktbaumes auf derselben Metallisierungsschicht verlegt sind.
  14. Vorrichtung nach Anspruch 11, worin alle vertikalen Leitungen eines bestimmten höherrangigen Taktbaumes auf derselben Metallisierungsschicht verlegt sind.
  15. Vorrichtung nach Anspruch 11, worin in einem gegebenen höherrangigen Taktbaum alle Puffer gleich groß sind.
DE112014000616.5T 2013-03-21 2014-03-21 Doppelstruktur-Taktbaumsynthese (CTS) Pending DE112014000616T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361804107P 2013-03-21 2013-03-21
USUS-61/804,107 2013-03-21
USUS-14/221,139 2014-03-20
US14/221,139 US9053281B2 (en) 2013-03-21 2014-03-20 Dual-structure clock tree synthesis (CTS)
PCT/US2014/031497 WO2014153538A1 (en) 2013-03-21 2014-03-21 Dual-structure clock tree synthesis (cts)

Publications (1)

Publication Number Publication Date
DE112014000616T5 true DE112014000616T5 (de) 2015-10-29

Family

ID=51570118

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014000616.5T Pending DE112014000616T5 (de) 2013-03-21 2014-03-21 Doppelstruktur-Taktbaumsynthese (CTS)

Country Status (5)

Country Link
US (1) US9053281B2 (de)
JP (1) JP6333948B2 (de)
CN (1) CN105359149B (de)
DE (1) DE112014000616T5 (de)
WO (1) WO2014153538A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330220B1 (en) * 2014-08-25 2016-05-03 Xilinx, Inc. Clock region partitioning and clock routing
US9922157B1 (en) * 2014-09-30 2018-03-20 Altera Corporation Sector-based clock routing methods and apparatus
US10089428B2 (en) * 2015-05-04 2018-10-02 Samsung Electronics Co., Ltd. Intelligent cell swapping based on ceiling determination, floor determination, and cell attribute weighting criteria
US20180006653A1 (en) * 2016-06-29 2018-01-04 Altera Corporation Integrated circuits with hybrid fixed/configurable clock networks
US10325046B2 (en) * 2016-09-20 2019-06-18 Synopsys, Inc. Formal method for clock tree analysis and optimization
CN107342762B (zh) * 2017-05-31 2019-10-25 北京时代民芯科技有限公司 一种抗单粒子瞬态时钟树结构
CN107831824B (zh) * 2017-10-16 2021-04-06 北京比特大陆科技有限公司 时钟信号传递方法、装置、复用芯片和电子设备
CN107817870A (zh) * 2017-10-16 2018-03-20 算丰科技(北京)有限公司 时钟信号传递方法和装置、时钟树、芯片、电子设备
US11176293B1 (en) * 2018-03-07 2021-11-16 Synopsys, Inc. Method and system for emulation clock tree reduction
US10860761B1 (en) * 2018-06-11 2020-12-08 Ansys, Inc. Systems and methods for enhanced clock tree power estimation at register transfer level
CN111950215B (zh) * 2020-07-21 2023-04-28 中国科学院计算技术研究所 生成面向超导rsfq电路的多扇出时钟信号的方法
KR20220055808A (ko) * 2020-10-27 2022-05-04 삼성전자주식회사 클럭 트리의 배치 방법, 집적 회로 및 집적 회로의 설계 방법
CN112217707B (zh) * 2020-11-10 2022-03-04 北京百瑞互联技术有限公司 集成电路时钟树网络质量评估方法、装置和介质
CN114818595B (zh) * 2022-06-24 2022-09-13 飞腾信息技术有限公司 芯片模块接口时钟构建方法、装置、存储介质及电子设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039891B2 (en) * 2003-08-27 2006-05-02 Lsi Logic Corporation Method of clock driven cell placement and clock tree synthesis for integrated circuit design
JP2007072995A (ja) 2005-09-09 2007-03-22 Ricoh Co Ltd レイアウト装置、自動配置配線方法および半導体集積回路製造方法
JP4314233B2 (ja) 2005-11-07 2009-08-12 富士通株式会社 設計支援装置、設計支援方法、設計支援プログラム、および記録媒体
US7509609B2 (en) 2006-03-15 2009-03-24 Agere Systems Inc. Methods and apparatus for reducing timing skew
JP2007336003A (ja) * 2006-06-12 2007-12-27 Nec Electronics Corp クロック分配回路、半導体集積回路、クロック分配回路の形成方法及びそのプログラム
US8640066B1 (en) * 2007-01-10 2014-01-28 Cadence Design Systems, Inc. Multi-phase models for timing closure of integrated circuit designs
US8365113B1 (en) * 2007-01-10 2013-01-29 Cadence Design Systems, Inc. Flow methodology for single pass parallel hierarchical timing closure of integrated circuit designs
JP5167740B2 (ja) 2007-09-20 2013-03-21 富士通セミコンダクター株式会社 設計支援プログラム、設計支援装置、および設計支援方法
JP2009288890A (ja) 2008-05-27 2009-12-10 Panasonic Corp 半導体集積回路、および半導体集積回路のレイアウト方法
JP2010211302A (ja) * 2009-03-06 2010-09-24 Toshiba Corp クロック配線方法
JP5696407B2 (ja) * 2010-09-14 2015-04-08 株式会社リコー 半導体集積回路の自動配置配線方法、レイアウト装置、自動配置配線プログラム、及び半導体集積回路
JP5533564B2 (ja) * 2010-10-28 2014-06-25 富士通セミコンダクター株式会社 クロックツリー生成装置及びクロックツリー生成方法
JP2012194888A (ja) * 2011-03-17 2012-10-11 Toshiba Corp クロックツリー設計装置及びクロックツリー設計方法

Also Published As

Publication number Publication date
WO2014153538A1 (en) 2014-09-25
US20140289694A1 (en) 2014-09-25
US9053281B2 (en) 2015-06-09
JP6333948B2 (ja) 2018-05-30
CN105359149B (zh) 2019-05-17
CN105359149A (zh) 2016-02-24
JP2016520895A (ja) 2016-07-14

Similar Documents

Publication Publication Date Title
DE112014000616T5 (de) Doppelstruktur-Taktbaumsynthese (CTS)
DE69724245T2 (de) Verfahren zur plazierung von taktpuffern in einem taktverteilungssystem
DE102013106539B4 (de) Verfahren zur Verifikation eines Layouts für Polysilizium-Zellrandstrukturen in FinFET-Standardzellen
DE102019116997B4 (de) Abgriffzellen, verfahren zu deren entwurf und schaltkreis-designsystem
DE102020104639A1 (de) Regularisierte Hochleistungs-Network-on-Chip-Architektur
DE102005049232A1 (de) Integrierter Schaltkreis und Verfahren zum Betreiben eines integrierten Schaltkreises
DE102015200694A1 (de) Verfahren, computersystem und computerlesbares speichermedium zum erzeugen eines layouts eines integrierten schaltkreises
DE112015002183T5 (de) Computerimplementiertes System und Verfahren zum Übersetzen von Verifizierungs-Befehlen eines elektronischen Designs
DE102020115968A1 (de) Systeme und verfahren für multi-bit-speicher mit eingebetteter logik
EP0855662A1 (de) Elektrische Analyse integrierter Schaltungen
DE102015117026A1 (de) Verfahren zur Parameterextraktion und System dafür
DE102019116952A1 (de) Integrierte-schaltkreis-struktur, layout-schaubild-verfahren und system
DE112021002870T5 (de) Halbleiterschaltungs-entwurf und einheits-pin-anordnung
DE112013005833T5 (de) Analyse zeitlicher Leitungsengpässe zur Steuerung einer Optimierung mit nützlichem Versatz
DE19741915A1 (de) Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen
DE102016110384A1 (de) Verfahren zum Halbleiterbauelementdesign und zur Halbleiterbauelementherstellung sowie entsprechende Halbleiterbauelemente
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
DE102012102080A1 (de) Fehlertolerante Flip-Flops
DE102018102292A1 (de) Verfahren und Vorrichtung zur automatischen Implementierung eines kompensierenden Rücksetzens für neugetaktete Schaltungen
DE112020003457T5 (de) Umwandeln von speicherpools mit kleinem speicherbereich in speicherpools mit grossem speicherbereich am speicherort
DE19626984C1 (de) Verfahren zur rechnergestützten Ermittlung einer Systemzusammenhangsfunktion
DE112013005831T5 (de) Netzlistenabstraktion
DE102022109400A1 (de) Halbleiterstruktur eines zellenarray mit adaptiver schwellenspannung
DE112017001063T5 (de) Erstellung und Wiederverwendung anpassbarer strukturierter Verbindungen
DE112013005783T5 (de) Mit Stromnetzwerksynthese (PNS) zur Stromversorgungsnetz(PG)-Justierung integriertes Modellieren

Legal Events

Date Code Title Description
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

R012 Request for examination validly filed