DE112020006021T5 - Auf maschinelles lernen basierendes verfahren und vorrichtung für die berechnung und verifizierung von verzögerungen des entwurfs integrierter schaltungen - Google Patents

Auf maschinelles lernen basierendes verfahren und vorrichtung für die berechnung und verifizierung von verzögerungen des entwurfs integrierter schaltungen Download PDF

Info

Publication number
DE112020006021T5
DE112020006021T5 DE112020006021.7T DE112020006021T DE112020006021T5 DE 112020006021 T5 DE112020006021 T5 DE 112020006021T5 DE 112020006021 T DE112020006021 T DE 112020006021T DE 112020006021 T5 DE112020006021 T5 DE 112020006021T5
Authority
DE
Germany
Prior art keywords
model
delay
erd
slew rate
values
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
DE112020006021.7T
Other languages
English (en)
Inventor
Madhusudan RAMAN
Julien G. Dunoyer
Nizar Abdallah
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology 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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112020006021T5 publication Critical patent/DE112020006021T5/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/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • 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/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Ein Verfahren für den Entwurf integrierter Schaltungen mit Verzögerungsverifizierung schließt das Speichern von Konfigurationsdateien für ein maschinelles Lernmodell (ML-Modell) für die Anstiegsgeschwindigkeit, ein Netzverzögerungs-ML-Modell und ein Zellenverzögerungs-ML-Modell ein. Ein Benutzerentwurf wird empfangen, Anstiegsgeschwindigkeitsmerkmalswerte, Netzverzögerungsmerkmalswerte und Zellenverzögerungsmerkmalswerte werden aus dem Benutzerentwurf extrahiert, die Konfigurationsdateien werden geladen, um Inferenzkerne zu bilden, und Vorgänge des Anstiegsgeschwindigkeitsinferenzkerns werden durchgeführt, um vorhergesagte Anstiegsgeschwindigkeitswerte zu berechnen, die an ML-Entwurfablaufswerkzeuge gesendet werden. Vorgänge des Netzverzögerungsinferenzkerns werden durchgeführt, um vorhergesagte Netzverzögerungswerte zu berechnen, die an die ML-Entwurfwerkzeuge gesendet werden. Vorgänge des Zellenverzögerungsinferenzkerns werden durchgeführt, um vorhergesagte Zellenverzögerungswerte zu erzeugen, die an die ML-Entwurfwerkzeuge gesendet werden. Der Benutzerentwurf wird iteriert, bis ein Benutzerentwurf erhalten wird, der frei von Timing-Verletzungen ist.

Description

  • VERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität für die am 10. Dezember 2019 eingereichte vorläufige US-Patentanmeldung mit der Seriennummer 62/946.352 und die am 3. Dezember 2020 eingereichte nicht vorläufige US-Patentanmeldung mit der Seriennummer 17/111.218, deren jeweiliger Inhalt durch Bezugnahme hierin in vollem Umfang aufgenommen wird.
  • HINTERGRUND
  • Leistungsbewertungsfähigkeiten in Entwurfswerkzeugen ermöglichen dem Entwickler, Timing Closure einzuhalten, und sicherzustellen, dass ein gegebener Entwurf seine Leistungsanforderungen erfüllt, sobald es auf dem Ziel-Silizium implementiert ist. Diese Schlüsselfähigkeit erfordert, dass Entwurfswerkzeuge, die Einfluss auf die Entwurfsleistung haben, in einigen Fällen hochgenaue Verzögerungsberechnungsalgorithmen für jede Komponente, Zelle oder IP und für jede in einem Entwurf verwendete Netztopologie miteinbeziehen. Gleichzeitig stellt die Verzögerungsberechnung zunehmend erhebliche Herausforderungen dar, da sich die Technologie zu kleineren Prozesstechnologieknoten hin entwickelt und folglich die Komplexität und Vielfalt der in dieselbe Hardware-Architektur integrierten Fähigkeiten und Funktionen zunimmt. Dies wiederum macht es sehr schwierig, herkömmliche Verzögerungsberechnungsalgorithmen abzustimmen, zu testen und hochgenaue Ergebnisse sicherzustellen.
  • Kleinere Technologieknoten erhöhen die Zahl der Parameter, die sich auf die Signallaufzeitverzögerungen auswirken, und erfordern Anpassungen der bestehenden Parameter. Beispiele für solche neuen und/oder modifizierten Parameter schließen On-Chip-Variation, IR-Abfall, Kopplungskapazität, Verhältnis von Signalübergangsverzögerungen und -laufzeitverzögerungen, Verhältnis von Drahtwiderstand und Drahtkapazität und Verhältnis von Signalübergangsverzögerungen über die gesamte Taktperiode ein.
  • In ähnlicher Weise führt auch die zunehmende Komplexität moderner System-On-Chip (SoC)-Architekturen zu einer größeren Vielfalt an Netztopologien und Kontexten, die von Entwurfswerkzeugen präzise verarbeitet werden müssen. Darüber hinaus ermöglicht eine solche Komplexität die Integration viel größerer Entwürfe in denselben Chip, was zu einem erheblichen Anstieg der Entwicklungszeit für die Abstimmung herkömmlicher Verzögerungsberechnungsalgorithmen (was sich auf die Markteinführungszeit eines Produkts wie eines feldprogrammierbaren Gate-Arrays (Field Programmable Gate Array, FPGA) auswirkt) sowie der Laufzeit, welche die Entwickler bei der Iteration dieser Algorithmen zur Erzielung von Timing Closure erleben, führt.
  • Zu den derzeit angewandten Verfahren gehört eine Implementierung der analytischen Methode der Momentanpassung, d. h. der asymptotischen Wellenformauswertung (Asymptotic Waveform Evaluation, AWE), die auf der expliziten Momentanpassung beruht, um die Schaltungsantwort im Zeitbereich oder Frequenzbereich in Form eines Modells reduzierter Ordnung zu approximieren. Neuere Implementierungen, die vor allem beim Entwurf anwendungsspezifischer integrierter Schaltungen (ASIC) verwendet werden, wie Passive Reduced-order Interconnect Macromodeling Algorithm (PRIMA) und Pade via Lanczos (PVL), verwenden impliziten Momentanpassung basierend auf Krylov-Unterräumen. Dieses Verfahren gilt seit langem als ziemlich präzise, wenn es darum geht effektive und stabile Lösungen für viele Verbindungstopologien, insbesondere in einem FPGA-Kontext, zu bieten. Es haben sich jedoch in letzter Zeit Anzeichen von Schwächen in Bezug auf Konvergenz und Stabilität gezeigt. Die zunehmende Komplexität der FPGA-Verbindungen mit verschiedenen Komponententypen stellt eine zusätzliche Herausforderung dar. Während eine Approximation erster Ordnung, wie beschrieben in Gupta, R., Tutuianu, B., Pileggi, L.T., „The Elmore delay as a bound for RC trees with generalized input signals“, IEEE Transactions on the Computer-Aided Design of Integrated Circuits and Systems, Band: 16, Ausgabe: 1, S. 95-104 wahrscheinlich stabil ist, ist keine solche Garantie für Erweiterungen höherer Ordnung vorhanden. Bei den meisten Designs, die in 28-nm-SoC-FPGAs implementiert sind, scheitern bis zu 20 % der Netzverzögerungen mit einer AWE-Genauigkeitsstufe der 3. Ordnung und erfordern die Rückkehr zur 2. Ordnung, die weniger genau ist. Eine weitere Einschränkung von AWE bezieht sich auf die Unfähigkeit des Modells reduzierter Ordnung, Passivität zu garantieren.
  • Ein alternativer Ansatz, der verwendet wurde, besteht darin, softwarefreundliche Architekturen zu entwickeln; zum Beispiel, indem man es eine Anforderung für die Architektur macht, dass diese Timing-freundlich ist. Bei einem solchen Ansatz ist die Architektur stark gepuffert, ohne zwischengeschaltete Abgriffe auf ihren Verlegewege, und weist, wenn möglich, ausgeglichene Anstiegs- und Abfallzeiteigenschaften auf. Eine solche Architektur weist ein einigermaßen vorhersagbares Timing auf, was die Verwendung von Nachschlagetabellen ermöglicht, die unter Verwendung eines hochgenauen elektrischen Simulators, wie dem Simulationsprogramm mit Schwerpunkt auf integrierten Schaltungen (Simulation Program with Integrated Circuit Emphasis, SPICE), mit vor simulierten Werten befüllt wurden. In diesem Fall ist kein komplexer numerischer Löser erforderlich, um qualitativ hochwertige Timing-Informationen abzuleiten. Diese Vereinfachung ergibt sich jedoch auf Kosten einer begrenzten Routingflexibilität und begrenzt folglich die maximale Leistung, die unter Verwendung solcher Architekturen erreicht werden kann.
  • Daher ist ein moderner Verzögerungsberechnungsalgorithmus erforderlich, der im Vergleich zur elektrischen Simulation hochgenau ist (d. h. innerhalb weniger Prozent von SPICE), sich leicht auf Technologien im tiefen Submikrometerbereich abstimmen lässt, äußerst zuverlässig ist und von den Endbenutzern schneller ausgeführt werden kann als bisherige Lösungen nach dem Stand der Technik.
  • KURZDARSTELLUNG
  • Gemäß einem Gesichtspunkt der Erfindung wird ein Verfahren für den Entwurf integrierter Schaltungen (IC) mit Verzögerungsverifizierung offenbart, welches das Speichern von Konfigurationsdateien eines maschinellen Lernmodells (ML-Modells) für die Anstiegsgeschwindigkeit, eines Netzverzögerungs-ML-Modells und eines Zellenverzögerungs-ML-Modells einschließt. Ein Benutzerentwurf wird empfangen und Merkmalswerte werden von dem Benutzerentwurf für jedes Anstiegsgeschwindigkeitsmerkmal, Netzverzögerungsmerkmal und Zellverzögerungsmerkmal extrahiert, um Anstiegsgeschwindigkeitsmerkmalswerte, Netzverzögerungsmerkmalswerte und Zellverzögerungsmerkmalswerte zu erhalten. Die Konfigurationsdateien des ML-Modells für die Anstiegsgeschwindigkeit werden zur Bildung eines Anstiegsgeschwindigkeitsinferenzkerns geladen, wobei die Vorgänge des Anstiegsgeschwindigkeitsinferenzkerns unter Verwendung der extrahierten Anstiegsgeschwindigkeitsmerkmalswerte als Eingang durchgeführt werden, um vorhergesagte Anstiegsgeschwindigkeitswerte zu berechnen, und die vorhergesagten Anstiegsgeschwindigkeitswerte werden an Entwurfablaufswerkzeuge gesendet. Die Konfigurationsdateien des Netzverzögerungs-ML-Modells werden zur Bildung eines Netzverzögerungsinferenzkerns geladen, wobei die Vorgänge des Netzverzögerungsinferenzkerns unter Verwendung der extrahierten Netzverzögerungsmerkmalswerte als Eingang durchgeführt werden, um die vorhergesagten Netzverzögerungswerte zu berechnen, und die vorhergesagten Netzverzögerungswerte werden an die Entwurfablaufswerkzeuge gesendet. Die Konfigurationsdateien des Zellenverzögerungs-ML-Modells werden zur Bildung eines Zellenverzögerungsinferenzkerns geladen, wobei die Vorgänge des Zellenverzögerungsinferenzkerns unter Verwendung der extrahierten Zellenverzögerungsmerkmalswerte als Eingang durchgeführt werden, um vorhergesagte Zellenverzögerungswerte zu berechnen, und die vorhergesagten Zellenverzögerungswerte werden an die Entwurfablaufswerkzeuge gesendet. Der Benutzerentwurf wird so lange iteriert, bis ein endgültiger Benutzerentwurf vorliegt, der frei von Timing-Verletzungen ist.
  • Es wird ein IC-Entwurfssystem mit Verzögerungsverifizierung offenbart, das einen Datenspeicher einschließt, der zum Speichern von Konfigurationsdateien für ein Anstiegsgeschwindigkeits-ML-Modell, ein Netzverzögerungs-ML-Modell und ein Zellenverzögerungs-ML-Modell konfiguriert ist. Ein Benutzerentwurf-Merkmalsextraktor ist mit dem Datenspeicher gekoppelt und ist konfiguriert, um Anstiegsgeschwindigkeitsmerkmalswerte, Netzverzögerungsmerkmalswerte und Zellenverzögerungsmerkmalswerte aus einem Benutzerentwurf zu extrahieren. Die ML-Entwurfablaufswerkzeuge sind mit dem Benutzerentwurf-Merkmalsextraktor und mit dem Datenspeicher gekoppelt. Ein Vorhersage-ML-Modul ist mit dem Datenspeicher, dem Benutzerentwurf-Merkmalsextraktor und den ML-Entwurfablaufswerkzeugen gekoppelt. Das Vorhersage-ML-Modul ist konfiguriert, um die Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells zu laden, um einen Anstiegsgeschwindigkeitsinferenzkern zu bilden, um die Konfigurationsdateien des Netzverzögerungs-ML-Modells zu laden, um einen Netzverzögerungsinferenzkern zu bilden, und um die Konfigurationsdateien des Zellenverzögerungs-ML Modells zu laden, um einen Zellenverzögerungsinferenzkern zu bilden. Das Vorhersage-ML-Modul ist konfiguriert, um Vorgänge des Anstiegsgeschwindigkeitsinferenzkerns unter Verwendung der extrahierten Anstiegsgeschwindigkeitsmerkmalswerte als Eingang zur Berechnung vorhergesagter Anstiegsgeschwindigkeitswerte durchzuführen, um Vorgänge des Netzverzögerungsinferenzkerns unter Verwendung der extrahierten Netzverzögerungsmerkmalswerte als Eingang zur Berechnung vorhergesagter Netzverzögerungswerte durchzuführen und um Vorgänge des Zellenverzögerungsinferenzkerns unter Verwendung der extrahierten Zellenverzögerungsmerkmalswerte als Eingang zur Berechnung vorhergesagter Zellenverzögerungswerte durchzuführen. Das Vorhersage-ML-Modul ist konfiguriert, um die vorhergesagten Anstiegsgeschwindigkeitswerte, die vorhergesagten Netzverzögerungswerte und die vorhergesagten Zellenverzögerungswerte an die Entwurfablaufswerkzeuge zu senden. Die ML-Entwurfablaufswerkzeuge sind dazu konfiguriert, den Benutzerentwurf zu iterieren, bis der Benutzerentwurf frei von Timing-Verletzungen ist, um einen endgültigen Benutzerentwurf zu identifizieren.
  • Die vorliegende Erfindung bietet mehrere Vorteile gegenüber dem Stand der Technik. Die vorliegende Erfindung weist im Vergleich zu vielen Verfahren/Systemen des Standes der Technik ein schnelleres Laufzeitpotential während der Inferenz des ML-Modells auf. Die langsame Phase ist das Training, das nur einmal für jedes Produkt während des Entwurfs des Werkzeugs durchgeführt wird (wenn die ML-Modelle erzeugt werden). Die vorliegende Erfindung ist zuverlässiger als viele Verfahren/Systeme des Standes der Technik, da sie sich nicht auf menschliche Interpretationen stützt, um eine genaue Modellierung aktiver Komponenten zu erreichen, und das Verfahren und die Vorrichtung der vorliegenden Erfindung vermeidet die numerischen Einschränkungen eines iterativen Lösers, der für jede Produktgeneration bewertet werden muss. Darüber hinaus ist die vorliegende Erfindung skalierbar, so dass neue Funktionen, die sich auf die Verzögerungsberechnung auswirken, leicht eingeschlossen werden können.
  • Figurenliste
  • Die Erfindung wird im Folgenden unter Bezugnahme auf Ausführungsformen und auf die Zeichnungsfiguren ausführlicher erläutert, in denen Folgendes gezeigt ist:
    • 1 ist ein Blockdiagramm eines IC-Entwurf und ML-Modell erzeugenden Systems, gemäß einem Gesichtspunkt der vorliegenden Erfindung;
    • 2 ist ein Blockdiagramm eines IC-Entwurfssystems mit Verzögerungsverifizierung unter Verwendung eines Inferenzkerns gemäß einem Gesichtspunkt der vorliegenden Erfindung;
    • 3 ist ein Ablaufdiagramm, das ein Verfahren für den IC-Entwurf mit Verzögerungsverifizierung gemäß einem Gesichtspunkt der vorliegenden Erfindung zeigt;
    • 4 ist ein Diagramm, das einen Anstiegsgeschwindigkeitsinferenzkern gemäß einem Gesichtspunkt der vorliegenden Erfindung veranschaulicht;
    • 5 ist ein Diagramm, das einen Netzverzögerungsinferenzkern gemäß einem Gesichtspunkt der vorliegenden Erfindung veranschaulicht;
    • 6 ist ein Diagramm, das einen Zellenverzögerungsinferenzkern gemäß einem Gesichtspunkt der vorliegenden Erfindung veranschaulicht;
    • 7 ist ein Ablaufdiagramm, das ein Verfahren zum Erzeugen eines ML-Modells gemäß einem Gesichtspunkt der vorliegenden Erfindung zeigt; und
    • 8 ist ein Ablaufdiagramm, das ein Verfahren zum Durchführen von Validierung und Testen eines ML-Modells gemäß einem Gesichtspunkt der vorliegenden Erfindung zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Der Durchschnittsfachmann wird erkennen, dass die folgende Beschreibung nur veranschaulichend und in keiner Weise einschränkend ist. Diesem Fachmann werden ohne Weiteres auch andere Ausführungsformen einfallen.
  • 1 zeigt ein IC-Entwurf und ML-Modell erzeugendes System 40, das ein Eingangs- und Ausgangsmodul (E/A-Modul) 1 aufweist, das eine oder mehrere physische Vorrichtungen zum Koppeln des Eingangs mit dem IC-Entwurf und ML-Modell erzeugenden System 40 und zum Senden des Ausgangs von dem IC-Entwurf und ML-Modell erzeugenden System 40 einschließt. Das E/A-Modul 1 schließt einen Merkmalseingang 2 und einen vorhandenen Referenzdesign-Beispieleingang 3 (ERD-Beispieleingang) ein. Das IC-Entwurf und ML-Modell erzeugende System 40 schließt ferner einen ERD-Merkmalsextraktor 4, Entwurfablaufswerkzeuge 5, das Trainings-, Validierungs- und Test-ML-Modul 6, den Datenspeicher 11 und ein oder mehrere IC-Entwurfssysteme mit Verzögerungsverifizierung unter Verwendung des Inferenzkerns 20, das hierin nachstehend einfach als „IC-Entwurfssystem“ 20 bezeichnet werden wird, ein. Optional schließen das IC-Entwurf und ML-Modell erzeugende System 40 einen Prozessor 7 ein. Das E/A-Modul 1, der Merkmalseingang 2, der ERD-Beispieleingang 3, der ERD-Merkmalsextraktor 4, das Trainings-, Validierungs- und Test-ML-Modul 6, die Entwurfablaufswerkzeuge 5, der Datenspeicher 11 und der optionale Prozessor 7 sind über ein Kommunikations-Subsystem 9 (z. B. einen Systembus) miteinander gekoppelt. Das E/A-Modul 1, der Merkmalseingang 2, der ERD-Beispieleingang 3, der ERD-Merkmalsextraktor 4, das Trainings-, Validierungs- und Test-ML-Modul 6, die Entwurfablaufswerkzeuge 5, der Datenspeicher 11 und der optionale Prozessor 7 bilden ein ML-Modell erzeugendes System 10, das beispielsweise in einem einzigen Computergehäuse angeordnet werden kann, wobei jeder ERD-Merkmalsextraktor 4, jedes Trainings-, Validierungs- und Test-ML-Modul 6, und jedes der Entwurfablaufswerkzeuge 5 entsprechende Softwaremodule sind. In einem Beispiel ist das ML-Modul 6 ein ML-Softwareprogramm wie das TensorFlow-Softwareprogramm von Google, LLC in Mountain View, CA, das betreibbar ist, um ein ML-Modell zu erzeugen, zu trainieren, zu validieren, zu testen und zu speichern.
  • Der Datenspeicher 11 schließt eine Anstiegsgeschwindigkeitsdatenbank 12, eine Netzverzögerungsdatenbank 13, eine Zellenverzögerungsdatenbank 14 ein. In einem Beispiel schließen jede Komponente des Datenspeichers 11, insbesondere die Anstiegsgeschwindigkeitsdatenbank 12, die Netzverzögerungsdatenbank 13 und die Zellenverzögerungsdatenbank 14 einen oder mehrere von Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), Flash-Speicher, Festplattenlaufwerke und/oder Bandlaufwerke oder andere Datenspeichermedien, wie sie im Stand der Technik bekannt sind, ein. In einigen Ausführungsformen können Daten, Programme oder andere Informationen entfernt, zum Beispiel in der „Cloud“ gespeichert werden.
  • Das Trainings-, Validierungs- und Test-ML-Modul 6 schließt Software, Firmware und/oder Hardware und ein ML-Framework zum Entwerfen eines ML-Modells und Durchführen von Training, Validierung und Test des ML-Modells und anschließenden Speichern des ML-Modells für die spätere Verwendung durch Kunden mit Hilfe von Schaltungsentwurfwerkzeugen ein. Angesichts der Merkmale und der Architektur des Modells könnte die Software für die tatsächliche Erzeugung des Modells im Handel erhältliche ML-Frameworks für die ML-Modellerzeugung, wie das vorstehend erwähnte TensorFlow-Softwareprogramm, oder ähnliche Softwareprogramme und zugehörige Bibliotheken verwenden, wie sie im Stand der Technik bekannt sind.
  • In einem Beispiel schließen die Entwurfablaufswerkzeuge 5 mindestens ein Timing-Driven-Werkzeug, wie ein Timing-Driven-Place-and-Route-Werkzeug oder ein statisches Timing-Analysewerkzeug, ein. Die tatsächliche Verzögerung eines gegebenen Elements wird durch das so genannte Wahr-Label dargestellt. In einer beispielhaften Ausführungsform, die in der folgenden Erörterung der Erfindung als ein Beispiel verwendet wird, können die Entwurfablaufswerkzeuge 5 einen SPICE-Deckkonstruktor und einen SPICE-Simulator einschließen, die einen oder mehrere Softwareprogramme einschließen können, die auf dem optionalen Prozessor 7 betrieben werden können. Die Vorgänge der Entwurfablaufswerkzeuge 5 (z. B. der SPICE-Deckkonstruktor und der SPICE-Simulator) werden durch Anweisungen des ERD-Merkmalsextraktors 4 gesteuert.
  • Das IC-Entwurfssystem 20 kann sich in der gleichen physischen Einrichtung wie das IC-Entwurfsverzögerungsverifizierungs-ML-Modell erzeugende System 40 befinden und direkt an die anderen Komponenten des Systems 40 gekoppelt sein, wie durch Pfeil 8 gezeigt. In einem Beispiel befindet sich das IC-Entwurfssystem 20 an einer anderen Stelle als das ML-Modell erzeugenden System 10 und ist über ein Kommunikationssystem 16, das beispielsweise das Internet sein kann und das ein oder mehrere im Stand der Technik allgemein bekannte optische, drahtlose oder drahtgebundene Kommunikationssysteme einschließen kann, mit dem ML-Modell erzeugenden System 10 gekoppelt.
  • In einem Beispiel ist das IC-Entwurfssystem 20 konfiguriert, um Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells 34, Konfigurationsdateien des Netzverzögerungs-ML-Modells 35 und Konfigurationsdateien des Zellenverzögerungs-ML-Modells 36 und ein oder mehrere Softwareprogramme, die einen benutzerdefinierten Merkmalsextraktor 31, ML-Entwurfablaufswerkzeuge 32 und ein Vorhersage-ML-Modul 33 (siehe 2) umfassen, von dem ML-Modell erzeugenden System 10 herunterzuladen und konfiguriert ist, um dann den Entwurf, die Validierung und optional die Programmierung und Herstellung von IC-Vorrichtungen unabhängig von dem ML-Modell erzeugenden System 10 durchzuführen.
  • Das IC-Entwurfssystem 20 von 2 schließt ein Eingangs- und Ausgangsmodul (E/A-Modul) 23 ein, das eine oder mehrere physische Vorrichtungen zum Koppeln des Eingangs und Senden des Ausgangs von dem IC-Entwurfssystem 20 einschließt. Das E/A-Modul 32 schließt den Benutzerentwurf-Eingang 21 ein. Das IC-Entwurfssystem 20 schließt auch Datenspeicher 22, einen Benutzerentwurf-Merkmalsextraktor 31, ML-Entwurfablaufswerkzeuge 32 und Vorhersage-ML-Modul 33 ein.
  • In dem Datenspeicher 22 sind die Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells 34, die Konfigurationsdateien des Netzverzögerungs-ML-Modells 35 und die Konfigurationsdateien des Zellenverzögerungs-ML-Modells 36 gespeichert. In einem Beispiel schließt der Datenspeicher 22 einen oder mehrere von Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), Flash-Speicher, Festplattenlaufwerke und/oder Bandlaufwerke oder andere Datenspeichermedien, wie sie im Stand der Technik bekannt sind, ein. In einigen Ausführungsformen können Daten, Programme oder andere Informationen entfernt, zum Beispiel in der „Cloud“ gespeichert werden.
  • Der Benutzerentwurf-Merkmalsextraktor 31 schließt ein oder mehrere Decks oder Dateien ein, die eine entsprechende Netztopologie des eingegebenen Benutzerentwurfs angeben (d. h. die Art und Weise, in der die Komponenten miteinander verbunden sind), so dass es betreibbar ist, um Merkmalswerte aus dem Benutzerentwurf zu extrahieren.
  • In einem Beispiel schließt das Vorhersage-ML-Modul 33 ML-Komponenten ein, die für die Durchführung von ML-Vorgängen erforderlich sind, und schließt keine ML-Software-, Firmware- und/oder Hardwarekomponenten zum Erzeugen eines ML-Modells ein. In diesem Beispiel schließen, da das Timing unter Verwendung von ML-Modellen bestimmt wird, ML-Entwurfablaufswerkzeuge 32 keine umfassende Modellierungssoftware wie SPICE (oder andere rechenintensive IC-Entwurfswerkzeugprogramme, die üblicherweise in Entwurfssystemen nach dem Stand der Technik verwendet werden) ein, wie sie in den Entwurfablaufswerkzeugen 5 von 1 eingeschlossen sein kann.
  • Das IC-Entwurfssystem 20 schließt optional ein spezialisiertes Hardwaremodul ein (z. B. ein spezialisierter konfigurierbarer Beschleuniger, der auf einem FPGA gebildet wird, oder einer dedizierten ASIC), das speziell konfiguriert ist, um einen neuronalen Netzvorgang durchzuführen, und das spezialisierte Hardwaremodul kann im Folgenden auch als „Neural Network-Engine“ 30 bezeichnet werden. Das IC-Entwurfssystem 20 schließt optional auch eine oder mehrere von Anzeige 28, Direktzugriffsspeicher (RAM) 24, Prozessor 25, Maskengenerator 26 und Vorrichtungsprogrammierer 27 ein.
  • Das E/A-Modul 23, der Benutzerentwurf-Eingang 21, der Benutzerentwurf-Merkmalsextraktor 31, die ML-Entwurfablaufswerkzeuge 32, das Vorhersage-ML-Modul 33, die optionale Neural Network-Engine 30, der optionale RAM 24, die optionale Anzeige 28, der optionale Prozessor 25, der optionale Maskengenerator 26 und der optionale Vorrichtungsprogrammierer 27 sind über ein Kommunikations-Subsystem 29 miteinander verbunden, das beispielsweise ein Systembus sein kann. In einer Ausführungsform sind der Benutzerentwurf-Merkmalsextraktor 31, die ML-Entwurfablaufswerkzeuge 32, das Vorhersage-ML-Moduljeweils entsprechende Softwaremodule, deren maschinenlesbare Anweisungen auf dem Datenspeicher 22 gespeichert sind und auf dem optionalen Prozessor 25 ausgeführt werden.
  • 3 veranschaulicht ein Verfahren 100 für den IC-Entwurf mit Verzögerungsverifizierung, welches das Erzeugen (101) eines Anstiegsgeschwindigkeits-ML-Modells, eines Netzverzögerungs-ML-Modells und eines Zellenverzögerungs-ML-Modells einschließt. Das Anstiegsgeschwindigkeits-ML-Modell ist ein Prädiktor, in dem alle Parameter berechnet werden, welche die Anstiegsgeschwindigkeit vorhersagen (Anstiegsgeschwindigkeitswerte). Das Netzverzögerungs-ML-Modell ist ein Prädiktor, in dem alle Parameter berechnet werden, welche die Netzverzögerung (Netzverzögerungswerte) vorhersagen. Das Zellenverzögerungs-ML-Modell ist ein Prädiktor, in dem alle Parameter berechnet werden, welche die Zellenverzögerung (Zellenverzögerungswerte) vorhersagen.
  • Die Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells, die Konfigurationsdateien des Netzverzögerungs-ML-Modells und die Konfigurationsdateien des Zellenverzögerungs-ML Modells werden gespeichert (102). Die Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells schließen die Architektur des Anstiegsgeschwindigkeits-ML-Modells zusammen mit den aus dem Training des Anstiegsgeschwindigkeits-ML-Modells entwickelten Parametern, die weiter unten beschrieben werden, ein und können in der Anstiegsgeschwindigkeitsdatenbank 12 von 1 und im Datenspeicher 22 von 2 als Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells 34 gespeichert werden. Die Konfigurationsdateien des Netzverzögerungs-ML-Modells schließen die Architektur des Netzverzögerungs-ML-Modells zusammen mit den aus dem Training des Netzverzögerungs-ML-Modells entwickelten Parametern ein und können in der Netzverzögerungsdatenbank 13 von 1 und im Datenspeicher 22 von 2 als Konfigurationsdateien des Netzverzögerungs-ML-Modells 35 gespeichert werden. Die Konfigurationsdateien des Zellenverzögerungs-ML Modells schließen die Architektur des Zellenverzögerungs-ML Modells zusammen mit den aus dem Training des Zellenverzögerungs-ML Modells entwickelten Parametern ein und können in der Zellenverzögerungsdatenbank 14 von 1 und im Datenspeicher 22 von 2 als Konfigurationsdateien des Zellenverzögerungs-ML Modells 36 gespeichert werden.
  • Ein Benutzerentwurf wird empfangen (103). In der in 2 gezeigten Ausführungsform ist der Benutzerentwurf-Eingang 21 zum Empfangen des Benutzerentwurfs konfiguriert, das in Form einer oder mehrerer Datendateien vorliegen kann, die einen IC-Entwurf definieren, der auf einem Vorrichtungswafer (durch Herstellen einer Vorrichtung oder Programmieren einer programmierbaren Logikvorrichtung) ausgebildet werden soll. Der empfangene Benutzerentwurf kann im Datenspeicher 22 gespeichert werden. Alternativ kann der Benutzerentwurf von einem Benutzer unter Verwendung von ML-Entwurfablaufswerkzeugen 32 erzeugt werden und der Benutzerentwurf kann in dem Datenspeicher 22 gespeichert werden. In diesem Beispiel werden die Dateien des Benutzerentwurfs aus dem Datenspeicher 22 ausgelesen und am Benutzerentwurf-Merkmalsextraktor 31 empfangen (103).
  • Merkmalswerte werden aus dem Benutzerentwurf für jedes Anstiegsgeschwindigkeitsmerkmal, jedes Netzverzögerungsmerkmal und jedes Zellenverzögerungsmerkmal extrahiert (104), um Anstiegsgeschwindigkeitsmerkmalswerte, Netzverzögerungsmerkmalswerte und Zellenverzögerungsmerkmalswerte des Benutzerentwurfs zu erhalten. In der in 2 gezeigten Ausführungsform ist der Benutzerentwurf-Merkmalsextraktor 31 konfiguriert, um den eingegebenen Benutzerentwurf oder den unter Verwendung der ML-Entwurfablaufswerkzeuge 32 erstellten Benutzerentwurf zu empfangen und Anstiegsgeschwindigkeitsmerkmalswerte, Netzverzögerungsmerkmalswerte und Zellenverzögerungsmerkmalswerte aus dem Benutzerentwurf zu extrahieren. Alternativ ist der Benutzerentwurf-Merkmalsextraktor 3 1 zum Extrahieren von Merkmalswerte betreibbar, indem Anweisungen für ML-Entwurfablaufswerkzeuge 32 bereitgestellt werden, so dass als Reaktion auf das Empfangen der Anweisungen von dem Benutzerentwurf-Merkmalsextraktor 31 ML-Entwurfablaufswerkzeuge 32 zum Durchführen der Extraktion betreibbar sind.
  • Die Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells werden (in den RAM oder eine Neural Network-Engine) geladen, um einen Anstiegsgeschwindigkeitsinferenzkern zu bilden (105); Vorgänge des Anstiegsgeschwindigkeitsinferenzkerns werden durchgeführt (106), wobei die extrahierten Anstiegsgeschwindigkeitsmerkmalswerte als Eingang verwendet werden, um vorhergesagte Anstiegsgeschwindigkeitswerte für jedes Signal in dem Benutzerentwurf zu berechnen; und die berechneten vorhergesagten Anstiegsgeschwindigkeitswerte werden optional an die ML-Entwurfablaufswerkzeuge gesendet (107). In einem Beispiel ist das Vorhersage-ML-Modul 33 konfiguriert, um die Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells 34 in den RAM 24 oder die Neural Network-Engine 30 zu laden, um einen Anstiegsgeschwindigkeitsinferenzkern 37 zu bilden, Vorgänge des Anstiegsgeschwindigkeitsinferenzkerns 37 unter Verwendung der extrahierten Anstiegsgeschwindigkeitsmerkmalswerte als Eingang durchzuführen, um vorhergesagte Anstiegsgeschwindigkeitswerte zu berechnen; und die vorhergesagten Anstiegsgeschwindigkeitswerte an ML-Entwurfablaufswerkzeuge 32 zu senden.
  • 4 veranschaulicht einen beispielhaften Inferenzkern 37, der Eingangsneuronen 41, Zeilen verborgener Neuronen 42-43 und das Ausgangsneuron 44 einschließt, die einen vorhergesagten Anstiegsgeschwindigkeitswert berechnen. In diesem Beispiel schließen die Merkmale (dargestellt durch Eingangsneuronen 41) die Anzahl der aktiven Vorrichtungen (NAD) zwischen Quelle und Senke (in einem FPGA können dies Multiplexer oder einfache Schalter sein), den Gesamtwiderstand (R) zwischen Quelle und Senke und die Kapazität (Css) zwischen Quelle und Senke, die Gesamtkapazität (CNET) und den Fanout (FAN) des gesamten Netzes, das die Anstiegsgeschwindigkeit an seinem Ausgang erzeugt, ein.
  • Zurückkehrend zu 2 werden die Konfigurationsdateien des Netzverzögerungs-ML-Modells (in den RAM oder eine Neural Network-Engine) geladen, um einen Netzverzögerungsinferenzkern zu bilden (108); Vorgänge des Netzverzögerungsinferenzkerns werden durchgeführt (109), wobei die extrahierten Netzverzögerungsmerkmalswerte als Eingang verwendet werden, um vorhergesagte Netzverzögerungswerte für jedes Netz in dem Benutzerentwurf zu berechnen; und die berechneten vorhergesagten Netzverzögerungswerte werden optional an die ML-Entwurfablaufswerkzeuge gesendet (110). In einem Beispiel ist das Vorhersage-ML-Modul 33 konfiguriert, um die Konfigurationsdateien des Netzverzögerungs-ML-Modells 35 in den RAM 24 oder die Neural Network-Engine 30 zu laden, um einen Netzverzögerungsinferenzkern 38 zu bilden, Vorgänge des Netzverzögerungsinferenzkerns 38 unter Verwendung der extrahierten Netzverzögerungsmerkmalswerte als Eingang durchzuführen, um vorhergesagte Netzverzögerungswerte zu berechnen; und die berechneten vorhergesagten Netzverzögerungswerte an ML-Entwurfablaufswerkzeuge 32 zu senden.
  • 5 veranschaulicht einen beispielhaften Inferenzkern 38, der Eingangsneuronen 51, Zeilen verborgener Neuronen 52-53 und das Ausgangsneuron 54 einschließt, die einen vorhergesagten Netzverzögerungswert erzeugen. In diesem Beispiel schließen die Merkmale (dargestellt durch Eingangsneuronen 51) NAD, R, CSS, CNET, FAN, die Eingangsanstiegsgeschwindigkeit am Eingang des Netztreibers (NDISR) und Spurarten zwischen der Quelle und der Senke des Netzes (SPUR) ein. Im Beispiel eines FPGA können die Spurarten durch Puffernamen identifiziert werden, der die Kombination von Spurpuffer, Spurlänge und Multiplexer auf der Spur erfasst. In ASICs können diese Eigenschaften anstelle der Spurart explizit einzeln aufgelistet werden. Spuren können kurze, mittlere oder lange Leitungen mit zusätzlichen Unterarten sein, um Spuren unterschiedlicher Länge zu erfassen.
  • Zurückkehrend zu 2 werden die Konfigurationsdateien des Netzverzögerungs-ML-Modells (in den RAM oder eine Neural Network-Engine) geladen, um einen Zellenverzögerungsinferenzkern zu bilden (111); Vorgänge des Zellenverzögerungsinferenzkerns werden durchgeführt (112), wobei die extrahierten Zellenverzögerungsmerkmalswerte als Eingang verwendet werden, um vorhergesagte Zellenverzögerungswerte für jedes Zelle in dem Benutzerentwurf zu berechnen; und die berechneten Zellenverzögerungswerte werden optional an die ML-Entwurfablaufswerkzeuge gesendet (113). In einem Beispiel ist das Vorhersage-ML-Modul 33 konfiguriert, um die Konfigurationsdateien des Zellenverzögerungs-ML-Modells 36 in den RAM 24 oder die Neural Network-Engine 30 zu laden, um einen Zellenverzögerungsinferenzkern 39 zu bilden, Vorgänge des Zellenverzögerungsinferenzkerns 39 unter Verwendung der extrahierten Zellenverzögerungsmerkmalswerte als Eingang durchzuführen, um vorhergesagte Zellenverzögerungswerte zu berechnen; und die berechneten vorhergesagten Zellenverzögerungswerte an ML-Entwurfablaufswerkzeuge 32 zu senden.
  • 6 veranschaulicht einen beispielhaften Zellenverzögerungsinferenzkern 39, der Eingangsneuronen 61, Zeilen verborgener Neuronen 62-63 und das Ausgangsneuron 64 einschließt, die einen vorhergesagten Zellenverzögerungswert erzeugen. Zellenverzögerungsmerkmale schließen den Zelleneingangspin (ZELLENEINGANGSPIN), den Zustand der verbleibenden Eingänge (ANDERER EINGANGSPINZUSTAND), bei dem es sich um den Zustand aller Eingänge abzüglich des an der Verzögerungsberechnung beteiligten handeln kann, den Zellenausgangspin (ZELLENAUSGANSPIN), den Zustand der verbleibenden Ausgänge (ANDERER AUSGANGSPINZUSTAND), bei dem es sich um den Zustand aller Ausgänge abzüglich des an der Verzögerungsberechnung beteiligten handelt, die Eingangsanstiegsgeschwindigkeit am Zelleneingang (EINGANGSANSTIEGSGESCHWINDIGKEIT) und die Ausgangslast am Zellenausgang (AUSGANGSLAST) ein. Die Zeitverzögerung von jedem Zelleneingang zu einem bestimmten Zellenausgang ist unterschiedlich, so dass die Merkmalsspezifikationen einschließen, welche von einer Vielzahl von Eingängen verwendet wird, sowie welche von einer Vielzahl von Ausgängen (falls mehr als einer) verwendet wird. Außerdem können sich die Logikzustände anderer Eingänge zu der Zelle auf die Eingang-zu-Ausgang-Timing-Verzögerung auswirken und diese werden ebenfalls als Zellenmerkmale angegeben.
  • In einer Ausführungsform werden die Schritte 104-113 von 3 als Reaktion auf das Empfangen einer Anweisung von ML-Entwurfablaufswerkzeuge 32 durchgeführt (z. B. jedes Mal, wenn ein neuer Benutzerentwurf bewertet werden soll) und werden von dem IC-Entwurfssystem 20 ohne Benutzereingriff automatisch durchgeführt. Als Reaktion auf die Anweisung ist das Vorhersage-ML-Modul 33 betreibbar, um die Konfigurationsdateien, die zum Durchführen der Anweisung erforderlich sind (Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells 34, Konfigurationsdateien des Netzverzögerungs-ML-Modells 35 oder Konfigurationsdateien des Zellenverzögerungs-ML-Modells 36) in den RAM 24 oder die Neural Network-Engine 30 zu laden, um den Anstiegsgeschwindigkeitsinferenzkern 37, den Netzverzögerungsinferenzkern 38 oder den Zellenverzögerungsinferenzkern 39 zu bilden, und um den erforderlichen neuronalen Netzbetrieb durchzuführen. Da die Ergebnisse der einzelnen Vorgänge durch den jeweiligen Inferenzkern 37-39 ausgegeben werden, ist das Vorhersage-ML-Modul 33 betreibbar, um den Ausgang mit den ML-Entwurfablaufswerkzeugen 32 zu koppeln und die Ergebnisse der einzelnen Vorgänge an die ML-Entwurfablaufswerkzeuge 32 zu senden.
  • In einem Beispiel ist der Benutzerentwurf-Merkmalsextraktor 31 während der Entwurfsaktivität durch einen Endbenutzer betreibbar, um Daten und Anweisungen zu ML-Entwurfablaufswerkzeugen 32 zu senden und Antworten von ihnen zu empfangen, um so Merkmalswerte zu extrahieren und das Vorhersage-ML-Modul 33 unter Verwendung der ML-Entwurfablaufswerkzeuge 32 anzuwenden.
  • Der Benutzerentwurf wird innerhalb der ML-Entwurfablaufswerkzeuge 32 iteriert (114), bis ein endgültiger Benutzerentwurf erhalten wird, der frei von Timing-Verletzungen ist. In einem Beispiel iterieren die ML-Entwurfablaufswerkzeuge 32 den Benutzerentwurf (z. B. unter Verwendung eines oder mehrerer von einem Synthesewerkzeug, einem Platzierwerkzeug, einem Routerwerkzeug und einem Werkzeug für die Statische Timing-Analyse (STA-Werkzeug)) und berechneten vorhergesagte Anstiegsgeschwindigkeitswerte, vorhergesagte Netzverzögerungswerte und vorhergesagte Zellenverzögerungswerte, bis der Benutzerentwurf der Ziel-IC frei von Timing-Verletzungen ist, um den endgültigen Benutzerentwurf zu identifizieren.
  • In einem Beispiel schließt Schritt 114 das Bestimmen, ob der Benutzerentwurf eine Timing-Verletzung aufweist, ein; und wenn der Entwurf eine Timing-Verletzung aufweist, ist eines oder sind mehrere von dem Synthesewerkzeug, dem Platzierwerkzeug, dem Routerwerkzeug und dem STA-Werkzeug der Entwurfablaufswerkzeuge 32 betreibbar, um den Entwurf in automatisierter Weise ohne Benutzereingriff zu iterieren, um den Entwurf wiederholt zu ändern (z. B. durch Ändern der Synthese einer oder mehrerer Komponenten, der Platzierung einer oder mehrerer Komponenten, des Routings zwischen Komponenten und/oder des statischen Timings einer oder mehrerer Komponenten) und die Schritte 104-113 (die der Benutzerentwurf-Merkmalsextraktor 31 und das Vorhersage-ML-Modul 33 nach Bedarf anwenden) zu wiederholen, bis ein endgültiger Benutzerentwurf ohne Timing-Verletzungen erhalten wird.
  • Das Verfahren schließt optional das Programmieren (115) des endgültigen Benutzerentwurfs in eine Ziel-FPGA-IC-Vorrichtung ein. In einem Beispiel führt der Vorrichtungsprogrammierer 27 die Programmierung des tatsächlichen Siliziums, das in Ausführungsformen der Erfindung innerhalb des Endbenutzerprodukts verwendet werden soll, durch, wobei der endgültige Benutzerentwurf in einer benutzerprogrammierbaren integrierten Schaltung, wie einem FPGA, realisiert wird. Die FPGA-Vorrichtungsprogrammierer sind sowohl von den FPGA-Herstellern als auch von zahlreichen Drittanbietern erhältlich. Zur Durchführung der Programmierung werden eine oder mehrere gepackte FPGA-Vorrichtungen in Vorrichtungsbuchsen platziert und geeignete Daten und Spannungen werden an die gepackten Vorrichtungen angelegt, um den Entwurf als tatsächliche Schaltungen in der gepackten FPGA-Vorrichtung zu implementieren.
  • Das Verfahren schließt optional das Erzeugen einer Vielzahl von Fotomasken (116) ein, die dem endgültigen Benutzerentwurf entsprechen. In einem Beispiel ist der Maskengenerator 26 betreibbar, um die Fotomasken zu erzeugen. Insbesondere ist der optionale Maskengenerator 26 eine Vorrichtung, welche die tatsächliche Erzeugung der geometrischen Muster für fotolithografische Masken durchführt, die verwendet werden, um in Ausführungsformen der Erfindung, wo der Entwurf in einer maskendefinierten integrierten Schaltung realisiert wird, das tatsächliche zu erzeugende Silizium zu fertigen. Zahlreiche Anbieter bieten integrierte Hardwaresysteme an, mit denen sich Entwurfsdaten in physische geometrische Muster umwandeln lassen und die Muster beispielsweise auf verchromte fotolithografische Masken übertragen werden können.
  • 7 veranschaulicht ein beispielhaftes Verfahren (200) zum Durchführen von Schritt 101 von 3. Das Verfahren 200 schließt das Empfangen des Eingangs (201), der Merkmale eines IC-Entwurfs und der Architekturen von jedem des Anstiegsgeschwindigkeits-ML-Modells, des Netzverzögerungs-ML-Modells und des Zellenverzögerungs-ML-Modells angibt, ein. In der in 1 gezeigten Ausführungsform ist der Merkmalseingang 2 konfiguriert, um den Eingang zu empfangen, der Merkmale (z. B. in Form einer oder mehrerer elektronischer Dateien) angibt, die im Datenspeicher 11 gespeichert sein können oder direkt mit dem ERD-Merkmalsextraktor 4 gekoppelt sein können. Der Eingang, der die Architektur des Anstiegsgeschwindigkeits-ML-Modells, des Netzverzögerungs-ML-Modells und des Zellenverzögerungs-ML-Modells angibt, kann über das E/A-Modul 1 empfangen werden und kann Parameter, Hyperparameter usw. einschließen und kann im Datenspeicher 11 gespeichert sein oder direkt mit dem Trainings-, Validierungs- und Test-ML-Modul 6 gekoppelt sein.
  • ERD-Beispiele werden als Eingang empfangen (202). In der in 1 gezeigten Ausführungsform ist der ERD-Beispieleingang 3 konfiguriert, um ERD-Beispiele zu empfangen (aus bekannten Entwürfen mit gültigem Timing) und entweder die empfangenen ERD-Beispiele im Datenspeicher 11 zu speichern oder die empfangenen ERD-Beispiele direkt mit dem ERD-Merkmalsextraktor 4 zu koppeln.
  • Ein Anstiegsgeschwindigkeits-ML-Modell wird erzeugt (203), indem ERD-Anstiegsgeschwindigkeitsmerkmalswerte aus den ERD-Beispielen extrahiert werden, ERD-Anstiegsgeschwindigkeit-Wahr-Labels berechnet werden, die den extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerten entsprechen, und Training, Validierung und Tests des erzeugten Anstiegsgeschwindigkeits-ML-Modells unter Verwendung der extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerte und der entsprechenden ERD-Anstiegsgeschwindigkeit-Wahr-Labels durchgeführt werden, um das Anstiegsgeschwindigkeits-ML-Modell zu erzeugen. Optional werden, wie weiter unten beschrieben, die extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerte, vorzugsweise in Kombination mit den Anstiegsgeschwindigkeit-Wahr-Werten, in Trainings-, Validierungs- und Testdatensätze unterteilt. Ferner wird optional das Training, die Validierung und das Testen des erzeugten Anstiegsgeschwindigkeits-ML-Modells auf dem jeweiligen Trainings-, Validierungs- und Testdatensatz durchgeführt. In einer Ausführungsform wird das Training, die Validierung und das Testen des erzeugten Anstiegsgeschwindigkeits-ML-Modells auf dem jeweiligen Trainings-, Validierungs- und Testdatensatz unter Verwendung eines handelsüblichen Programms, wie dem vorstehend erwähnten TensorFlow-Softwareprogramm, durchgeführt. Ferner wird optional das Training unter Verwendung eines Random-Forest-Algorithmus durchgeführt.
  • Ein Netzverzögerungs-ML-Modell wird erzeugt (204), indem ERD-Netzverzögerungsmerkmalswerten aus den ERD-Beispielen extrahiert werden, ERD-Netzverzögerung-Wahr-Labels berechnet werden, die den extrahierten ERD-Netzverzögerungsmerkmalswerten entsprechen, und Training, Validierung und Tests des erzeugten Netzverzögerungs-ML-Modells unter Verwendung der extrahierten ERD-Netzverzögerungsmerkmalswerte und der entsprechenden ERD-Netzverzögerung-Wahr-Labels durchgeführt werden, um das trainierte Netzverzögerungs-ML-Modell zu erzeugen. Optional werden, wie weiter unten beschrieben, die extrahierten ERD-Netzverzögerungsmerkmalswerte, vorzugsweise in Kombination mit den Netzverzögerung-Wahr-Werten, in Trainings-, Validierungs- und Testdatensätze unterteilt. Ferner wird optional das Training, die Validierung und das Testen des erzeugten Netzverzögerungs-ML-Modells an dem jeweiligen Trainings-, Validierungs- und Testdatensatz unter Verwendung eines handelsüblichen Softwareprogramms, wie dem vorstehend erwähnten TensorFlow-Softwareprogramm, durchgeführt. Ferner wird optional das Training unter Verwendung eines Random-Forest-Algorithmus durchgeführt.
  • Ein Zellenverzögerungs-ML-Modell wird erzeugt (205), indem ERD-Zellenverzögerungsmerkmalswerten aus den ERD-Beispielen extrahiert werden, ERD-Zellenverzögerung-Wahr-Labels berechnet werden, die den extrahierten ERD-Zellenverzögerungsmerkmalswerten entsprechen, und Training, Validierung und Tests des erzeugten Zellenverzögerungs-ML-Modells unter Verwendung der extrahierten ERD-Zellenverzögerungsmerkmalswerte und der entsprechenden ERD-Zellenverzögerung-Wahr-Labels durchgeführt werden, um das Zellenverzögerungs-ML-Modell zu erzeugen. Optional werden, wie weiter unten beschrieben, die extrahierten ERD-Zellenverzögerungsmerkmalswerte, vorzugsweise in Kombination mit den Zellenverzögerung-Wahr-Werten, unter Verwendung eines handelsüblichen Softwareprogramms, wie dem vorstehend erwähnten TensorFlow-Softwareprogramm, in Trainings-, Validierungs- und Testdatensätze unterteilt. Ferner wird optional das Training, die Validierung und das Testen des erzeugten Zellenverzögerungs-ML-Modells an dem jeweiligen Trainings-, Validierungs- und Testdatensatz durchgeführt. Ferner wird optional das Training unter Verwendung eines Random-Forest-Algorithmus durchgeführt.
  • In einem Beispiel wird für das Training des Anstiegsgeschwindigkeits-ML-Modells, das Training des Netzverzögerungs-ML-Modells und das Training des Zellenverzögerungs-ML-Modells ein Random-Forest-Trainingsalgorithmus verwendet, der über das Softwareprogramm (z. B. das TensorFlow-Programm) angewendet wird.
  • In einem Beispiel empfängt der ERD-Merkmalsextraktor 4 den Eingang, der die Merkmale angibt, sendet Daten und Anweisungen an die Entwurfablaufswerkzeuge 5 und empfängt Antworten von diesen, um so ein Deck (z. B. ein SPICE-Deck) unter Verwendung der Entwurfablaufswerkzeuge 5 (z. B. eines SPICE-Deckkonstruktors) zu bilden, das über Werte für die Entwurfsmerkmale verfügt, die durch das bestimmte ML-Modell (z. B. die Netzspuren, Puffer und Schalter) sowie die entsprechende Netztopologie (d. h. die Art und Weise, in der die Komponenten miteinander verbunden sind) verwendet werden sollen. Der ERD-Merkmalsextraktor 4 ist betreibbar, um die empfangenen ERD-Beispiele zu lesen und ERD-Merkmalswerte zu extrahieren und bildet eine Instanz der Anstiegsgeschwindigkeitsdatenbank 12, in der die extrahierten Werte für ERD-Anstiegsgeschwindigkeitsmerkmale (d. h. ERD-Anstiegsgeschwindigkeitsmerkmalswerte) gespeichert sind, eine Instanz der Netzverzögerungsdatenbank 13, in der die extrahierten Werte für die ERD-Netzverzögerungsmerkmale (d. h. ERD-Netzverzögerungsmerkmalswerte) gespeichert sind, und eine Instanz der Zellenverzögerungsdatenbank 14, in der die extrahierten Werte für ERD-Zellenverzögerungsmerkmale (d. h. ERD-Zellenverzögerungsmerkmalswerte) gespeichert sind. Der ERD-Merkmalsextraktor 4 ist dann betreibbar, um Daten und Anweisungen an die Entwurfablaufwerkzeuge 5 zu senden und Antworten von diesen zu empfangen, wobei die Entwurfablaufwerkzeuge 5 dann betreibbar sind, um eine SPICE-Simulation oder ein anderes Schaltungssimulatorprogramm auszuführen, und ERD-Wahr-Labels für jede Anstiegsgeschwindigkeit (Anstiegsgeschwindigkeit-Wahr-Labels), jede Netzverzögerung (Netzverzögerung-Wahr-Labels) und jede Zellenverzögerung (Zellenverzögerung-Wahr-Labels) in den ERD-Beispielen zu berechnen. Die Entwurfablaufwerkzeuge 5 speichern die berechneten ERD-Wahr-Labels (z. B. durch Verknüpfen jedes berechneten Wahr-Labels mit den entsprechenden Merkmalswerten, die verwendet wurden, um die Wahr-Labels zu erzeugen, um einen Datensatz zu bilden, und Speichern von Anstiegsgeschwindigkeitsdatensätzen in der jeweiligen Instanz der Anstiegsgeschwindigkeitsdatenbank 12, Speichern von Netzverzögerungsdatensätzen in der jeweiligen Instanz der Netzverzögerungsdatenbank 13 und Speichern von Zellenverzögerungsdatensätzen in der jeweiligen Instanz der Zellenverzögerungsdatenbank 14.
  • Das ML-Trainings-, Validierungs- und Testmodul 6 unterteilt die Anstiegsgeschwindigkeitsdatensätze (welche die berechneten ERD-Anstiegsgeschwindigkeit-Wahr-Labels und die extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerten einschließen), um einen Anstiegsgeschwindigkeitstrainingsdatensatz, einen Anstiegsgeschwindigkeitsvalidierungsdatensatz und einen Anstiegsgeschwindigkeitstestdatensatz zu erstellen und speichert den Anstiegsgeschwindigkeitstrainingsdatensatz, den Anstiegsgeschwindigkeitsvalidierungsdatensatz und den Anstiegsgeschwindigkeitstestdatensatz in der jeweiligen Instanz der Anstiegsgeschwindigkeitsdatenbank 12; unterteilt die Netzverzögerungsdatensätzen (welche die berechneten ERD-Netzverzögerung-Wahr-Labels und die extrahierten ERD-Netzverzögerungsmerkmalswerte einschließen), um einen Netzverzögerungstrainingsdatensatz, einen Netzverzögerungsvalidierungsdatensatz und einen Netzverzögerungstestdatensatz zu erstellen und speichert den Netzverzögerungstrainingsdatensatz, den Netzverzögerungsvalidierungsdatensatz und den Netzverzögerungstestdatensatz in der jeweiligen Instanz der Netzverzögerungsdatenbank 13; und unterteilt die Zellenverzögerungsdatensätze (welche die berechneten ERD-Zellenverzögerung-Wahr-Labels und die extrahierten ERD-Zellenverzögerungsmerkmalswerte einschließen), um einen Zellenverzögerungstrainingsdatensatz, einen Zellenverzögerungsvalidierungsdatensatz und einen Zellenverzögerungstestdatensatz zu erstellen und speichert den Zellenverzögerungstrainingsdatensatz, den Zellenverzögerungsvalidierungsdatensatz und den Zellenverzögerungstestdatensatz in der jeweiligen Instanz der Zellenverzögerungsdatenbank 14. In einem Beispiel wird eine Datenmatrix, die Datensätze enthält, zur Verarbeitung in einen Datenrahmen eingelesen und nach dem Zufallsprinzip aufgeteilt, wobei 20 % in einen Trainingsdatensatz, 20 % in einen Validierungsdatensatz und der Rest in einen Testdatensatz einfließen.
  • Das Trainings-, Validierungs- und Test-ML-Modul 6 erzeugt ein Anstiegsgeschwindigkeits-ML-Modell unter Verwendung der empfangenen Merkmale und der Architektur des Anstiegsgeschwindigkeits-ML-Modells, trainiert das Anstiegsgeschwindigkeits-ML-Modell unter Verwendung des Trainingsdatensatzes und speichert Konfigurationsdateien des trainierten ML-Modells (Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells) in der jeweiligen Instanz der Anstiegsgeschwindigkeitsdatenbank 12; erzeugt ein Netzverzögerungs-ML-Modell unter Verwendung der empfangenen Merkmale und der Architektur des Netzverzögerungs-ML-Modells, trainiert das Netzverzögerungs-ML-Modell unter Verwendung des Netzverzögerungstrainingsdatensatzes und speichert Konfigurationsdateien des trainierten ML-Modells (Konfigurationsdateien des Netzverzögerungs-ML-Modells) in der jeweiligen Instanz der Netzverzögerungsdatenbank 13; und erzeugt ein Zellenverzögerungs-ML-Modell unter Verwendung der empfangenen Merkmale und der Architektur des Zellenverzögerungs-ML-Modells, trainiert das Zellenverzögerungs-ML-Modell unter Verwendung des Zellenverzögerungstrainingsdatensatzes und speichert Konfigurationsdateien des trainierten Zellenverzögerungs-ML-Modells (Konfigurationsdateien des Zellenverzögerungs-ML-Modells) in der jeweiligen Instanz der Zellenverzögerungsdatenbank 14. Während des Trainings werden verschiedene Konfigurationsparametersätze (auch als Hyperparameter bekannt) ausgewertet, und der Hyperparametersatz, der das beste Verhältnis zwischen Trainingszeit und Genauigkeit des ML-Modells bereitstellt, wird zum Trainieren des Netzverzögerungs-ML-Modells, des Zellenverzögerungs-ML-Modells und des Anstiegsgeschwindigkeits-ML-Modells ausgewählt.
  • Das Trainings-, Validierungs- und Test-ML-Modul 6 validiert das trainierte Anstiegsgeschwindigkeits-ML-Modell unter Verwendung des Anstiegsgeschwindigkeitsvalidierungsdatensatzes, validiert das trainierte Netzverzögerungs-ML-Modell unter Verwendung des Netzverzögerungsvalidierungsdatensatzes und validiert das trainierte Zellenverzögerungs-ML-Modell unter Verwendung des Zellenverzögerungsvalidierungsdatensatzes.
  • 8 veranschaulicht einen beispielhaften Trainings-, Validierungs- und Testprozess (300), der das zum ersten Mal Durchführen des Trainings und der Validierung des ML-Modells (301) einschließt, um ein erstmalig validiertes ML-Modell (ein erstmalig validiertes Anstiegsgeschwindigkeits-ML-Modell, ein erstmalig validiertes Netzverzögerungs-ML-Modell oder ein erstmalig validiertes Zellenverzögerungs-ML-Modell) zu identifizieren. In einem Beispiel schließt die erstmalige Validierung des trainierten ML-Modells eine Merkmalsabfallempfindlichkeitsanalyse und eine Entfernung unnötiger Merkmale aus dem erstmalig validierten ML-Modell ein, um Überanpassung zu vermeiden (wobei das erstmalig validierte ML-Modell möglicherweise nicht in der Lage ist, das Rauschen in den Daten genau herauszufiltern), wobei die Merkmalsabfallempfindlichkeitsanalyse genügend Merkmale beibehält (Anstiegsgeschwindigkeitsmerkmale, Netzverzögerungsmerkmale und respektive Zellenverzögerungsmerkmale), damit das erstmalig validierte ML-Modell nicht über einen minimalen Wert der Genauigkeit hinaus herabgesetzt wird.
  • Das Verfahren 300 schließt das Bestimmen, ob das erstmalig validierte ML-Modell vorbestimmte Kriterien erfüllt (302), ein. In einem Beispiel ist das vorbestimmte Kriterium eine Fehlermessung. In dieser Ausführungsform wird der Fehler in jedem ML-Modell unter Verwendung einer Analyse der Wurzel der mittleren Fehlerquadratsumme (Root Mean Square Error, RMSE) oder des R-Quadrats auf dem Testdatensatz ermittelt. Der ermittelte Fehler wird mit einem gespeicherten Fehlerschwellenwert (z. B. im Datenspeicher 11 gespeichert) verglichen. Wenn der Fehler größer als der Schwellenwert ist, schlägt die Validierung des ML-Modells fehl. In einem Beispiel wird der Fehlerschwellenwert so gewählt, dass er ungefähr gleich dem Fehler zwischen den Entwurfablaufswerkzeuge 5 und den Siliziummessungen einer IC-Vorrichtung ist, die unter Verwendung der Entwurfablaufswerkzeuge 5 gebildet wird, der zum Beispiel 5 % betragen kann. In einer beispielhaften Ausführungsform werden die Schritte 301-302 durch das Trainings-, Validierungs- und Test-ML-Modul 6 des ML-Modell erzeugenden Systems 10 durchgeführt.
  • Wenn das erstmalig validierte ML-Modell die vorbestimmten Kriterien, der Linie 321 folgend, erfüllt, endet der Validierungsprozess und das Training, das Trainings-, Validierungs- und Test-ML-Modul 6 geht zum Testen (310) des erstmalig validierten ML-Modells über.
  • Das Trainings-, Validierungs- und Test-ML-Modul 6 ist in der Lage zu bestimmen (303), ob das fehlgeschlagene ML-Modell zum ersten Mal fehlgeschlagen ist (303). Wenn das fehlgeschlagene ML-Modell zum ersten Mal fehlgeschlagen ist, werden Werte für ein zusätzliches Merkmal für das erstmalig fehlgeschlagene ML-Modell extrahiert (304) (z. B. weist das Trainings-, Validierungs- und Test-ML-Modul 6 den ERD-Merkmalsextraktor 4 und/oder die Entwurfablaufswerkzeuge 5 an, die Extraktion durchzuführen) und werden gespeichert (305). Das Trainings-, Validierungs- und Test-ML-Modul 6 aktualisiert (306) das erstmalig fehlgeschlagene ML-Modell, um das zusätzliche Merkmal zu berücksichtigen und speichert optional das aktualisierte erstmalig fehlgeschlagene ML-Modell im Datenspeicher 11. Das Trainings-, Validierungs- und Test-ML-Modul 6 trainiert dann erneut das erstmalig fehlgeschlagene ML-Modell (307) und validiert erneut (308) das neu trainierte, aktualisierte erstmalig fehlgeschlagene ML-Modell und speichert das erneut validierte erstmalig fehlgeschlagene ML-Modell im Datenspeicher 11. Wenn das erneut validierte erstmalig fehlgeschlagene ML-Modell die vorbestimmten Kriterien nicht erfüllt (309), kehrt der Prozess zu Schritt 303 zurück. Wenn das erneut validierte erstmalig fehlgeschlagene ML-Modell die vorbestimmten Kriterien erfüllt (309), endet der Validierungsprozess und der Prozess fährt mit dem Testen des ML-Modells (310) fort.
  • Wenn das ML-Modell mehr als einmal fehlgeschlagen ist (303), fügt das Trainings-, Validierungs- und Test-ML-Modul 6 dem Trainingsdatensatz des nochmals fehlgeschlagenen ML-Modells zusätzliche Trainingsdaten aus neuen Sätzen von ERD-Beispielen hinzu (311), um einen aktualisierten Trainingsdatensatz zu erzeugen und speichert den aktualisierten Trainingsdatensatz optional. Das Trainings-, Validierungs- und Test-ML-Modul 6 trainiert das nochmals fehlgeschlagene ML-Modell unter Verwendung des aktualisierten Trainingsdatensatzes erneut (312), speichert (313) das erneut trainierte nochmals fehlgeschlagene ML-Modell; und validiert das nochmals fehlgeschlagene ML-Modell erneut (314) und speichert optional das erneut validierte nochmals fehlgeschlagene ML-Modell. Wenn das erneut validierte nochmals fehlgeschlagene ML-Modell die vorbestimmten Kriterien nicht erfüllt (309), wird der Prozess der Schritte 303 und 311-314 wiederholt (d. h. bei jedem Durchgang durch die Bezugsnummer 311 werden zusätzliche Trainingsdaten hinzugefügt) bis die vorbestimmten Kriterien in Schritt 309 erfüllt werden. Wenn das erneut validierte nochmals fehlgeschlagene ML-Modell die vorbestimmten Kriterien erfüllt (309), endet der Validierungsprozess und das Trainings-, Validierungs- und Test-ML-Modul 6 geht zum Testen (310) des erneut validierten nochmals fehlgeschlagenen ML-Modells über.
  • Das Trainings-, Validierungs- und Test-ML-Modul 6 testet (310) das trainierte und validierte Anstiegsgeschwindigkeits-ML-Modell unter Verwendung des Anstiegsgeschwindigkeitstestdatensatzes, testet das trainierte und validierte Netzverzögerungs-ML-Modell unter Verwendung des Netzverzögerungstestdatensatzes und testet das trainierte und validierte Zellenverzögerungs-ML-Modell unter Verwendung des Zellenverzögerungstestdatensatzes. In einem Beispiel wird bei dem Test eine vorbestimmte Bewertung für jedes ML-Modell ermittelt, und jedes ML-Modell wird getestet, um eine Bewertung für das jeweilige ML-Modell zu ermitteln. Das ML-Modell wird nur verwendet, wenn die Bewertung des bestimmten ML-Modells die vorbestimmte Bewertung erfüllt.
  • Wenn die Validierung und optional das Testen eines ML-Modells zur Erzeugung eines neuen ML-Modells führt, wird das neue ML-Modell gespeichert (z. B. durch Überschreiben der Konfigurationsdateien für das jeweilige ML-Modell), so dass Konfigurationsdateien für das endgültige Anstiegsgeschwindigkeits-ML-Modell in einer Instanz der Anstiegsgeschwindigkeitsdatenbank 12 gespeichert werden; die Konfigurationsdateien für das endgültige Netzverzögerungs-ML-Modell in einer Instanz der Netzverzögerungsdatenbank 13 gespeichert werden; und die Konfigurationsdateien für das endgültige Zellenverzögerungs-ML-Modell in einer Instanz der Zellenverzögerungsdatenbank 14 gespeichert werden.
  • Wenngleich Ausführungsformen und Anwendungen dieser Erfindung gezeigt und beschrieben wurden, ist es für den Fachmann ersichtlich, dass viel weitere Modifikationen als die vorstehend erwähnten möglich sind, ohne von den hierin enthaltenen erfindungsgemäßen Konzepten abzuweichen. Die Erfindung darf daher außer im Sinne der beiliegenden Ansprüche nicht eingeschränkt werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/946352 [0001]

Claims (17)

  1. Verfahren für den Entwurf integrierter Schaltungen mit Verzögerungsverifizierung, umfassend: Speichern von Konfigurationsdateien eines maschinellen Lernmodells (ML-Modells) für die Anstiegsgeschwindigkeit, eines Netzverzögerungs-ML-Modells und eines Zellenverzögerungs-ML-Modells, Empfangen eines Benutzerentwurfs; Extrahieren von Merkmalswerten aus dem Benutzerentwurf für jedes Anstiegsgeschwindigkeitsmerkmal, jedes Netzverzögerungsmerkmal und jedes Zellenverzögerungsmerkmal, um Anstiegsgeschwindigkeitsmerkmalswerte, Netzverzögerungsmerkmalswerte und Zellenverzögerungsmerkmalswerte zu erhalten; Laden der Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells, um einen Anstiegsgeschwindigkeitsinferenzkerns zu bilden; Durchführen von Vorgängen des Anstiegsgeschwindigkeitsinferenzkerns unter Verwendung der extrahierten Anstiegsgeschwindigkeitsmerkmalswerte als Eingang, um vorhergesagte Anstiegsgeschwindigkeitswerte zu berechnen; Laden der Konfigurationsdateien des Netzverzögerungs-ML-Modells, um einen Netzverzögerungsinferenzkern zu bilden; Durchführen von Vorgängen des Netzverzögerungsinferenzkerns unter Verwendung der extrahierten Netzverzögerungsmerkmalswerte als Eingang, um vorhergesagte Netzverzögerungswerte zu berechnen; Laden der Konfigurationsdateien des Zellenverzögerungs-ML Modells, um einen Zellenverzögerungsinferenzkern zu bilden; Durchführen von Vorgängen des Zellenverzögerungsinferenzkerns unter Verwendung der extrahierten Zellenverzögerungsmerkmalswerte als Eingang, um vorhergesagte Zellenverzögerungswerte zu berechnen; und Iterieren des Benutzerentwurfs durch die ML-Entwurfablaufswerkzeuge, bis ein endgültiger Benutzerentwurf erhalten wird, der frei von Timing-Verletzungen ist.
  2. Verfahren nach Anspruch 1, wobei das Laden der Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells, um einen Anstiegsgeschwindigkeitsinferenzkerns zu bilden, ferner das Laden der Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells in eine Neural Network-Engine umfasst, wobei die Neural Network-Engine zum Durchführen von Vorgängen des Anstiegsgeschwindigkeitsinferenzkerns unter Verwendung der erhaltenen Anstiegsgeschwindigkeitsmerkmalswerte als Eingang zum Berechnen der vorhergesagten Anstiegsgeschwindigkeitswerte betreibbar ist.
  3. Verfahren nach Anspruch 1, ferner umfassend das Programmieren des endgültigen Benutzerentwurfs in eine angestrebten integrierte Schaltungsvorrichtung mit feldprogrammierbarem Gate-Array.
  4. Verfahren nach Anspruch 1, ferner umfassend das Erzeugen einer Vielzahl von Fotomasken, die dem endgültigen Benutzerentwurf entsprechen.
  5. Verfahren nach Anspruch 1, ferner umfassend: Senden der vorhergesagten Anstiegsgeschwindigkeitswerte an die ML-Entwurfablaufswerkzeuge; Senden der vorhergesagten Netzverzögerungswerte an die ML-Entwurfablaufswerkzeuge; und Senden der vorhergesagten Zellenverzögerungswerte an die ML-Entwurfablaufswerkzeuge.
  6. Verfahren nach Anspruch 1, ferner umfassend: Erzeugen des Anstiegsgeschwindigkeits-ML-Modells, des Netzverzögerungs-ML-Modells und des Zellenverzögerungs-ML-Modells.
  7. Verfahren nach Anspruch 6, ferner umfassend: Empfangen eines Eingangs, der Merkmale von Entwürfen für integrierte Schaltungen und die Architektur des Anstiegsgeschwindigkeits-ML-Modells, des Netzverzögerungs-ML-Modells und des Zellenverzögerungs-ML-Modells angibt; und Empfangen von vorhandenen Referenzdesign-Beispielen (ERD-Beispielen), wobei: das Erzeugen des Anstiegsgeschwindigkeits-ML-Modells das Extrahieren von ERD-Anstiegsgeschwindigkeitsmerkmalswerten aus den ERD-Beispielen, das Berechnen von ERD-Anstiegsgeschwindigkeit-Wahr-Labels, die den extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerten entsprechen, und das Durchführen von Training, Validierung und Tests des erzeugten Anstiegsgeschwindigkeits-ML-Modells unter Verwendung der extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerte und der entsprechenden ERD-Anstiegsgeschwindigkeit-Wahr-Labels umfasst; das Erzeugen des Netzverzögerungs-ML-Modells das Extrahieren von ERD-Netzverzögerungsmerkmalswerten aus den ERD-Beispielen, das Berechnen von ERD-Netzverzögerung-Wahr-Labels, die den extrahierten ERD-Netzverzögerungsmerkmalswerten entsprechen, und das Durchführen von Training, Validierung und Tests des erzeugten Netzverzögerungs-ML-Modells unter Verwendung der extrahierten ERD-Netzverzögerungsmerkmalswerte und der entsprechenden ERD-Netzverzögerung-Wahr-Labels umfasst; und das Erzeugen des Zellenverzögerungs-ML-Modells das Extrahieren von ERD-Zellenverzögerungsmerkmalswerten aus den ERD-Beispielen, das Berechnen von ERD-Zellenverzögerung-Wahr-Labels, die den extrahierten ERD-Zellenverzögerungsmerkmalswerten entsprechen, und das Durchführen von Training, Validierung und Tests des erzeugten Zellenverzögerungs-ML-Modells unter Verwendung der extrahierten ERD-Zellenverzögerungsmerkmalswerte und der entsprechenden ERD-Zellenverzögerung-Wahr-Labels umfasst.
  8. Verfahren nach Anspruch 7, wobei die Validierung des Anstiegsgeschwindigkeits-ML-Modells, des Netzverzögerungs-ML-Modells und des Zellenverzögerungs-ML-Modells ferner Folgendes umfasst: Durchführen einer ersten Validierung, um ein erstmalig validiertes ML-Modell zu identifizieren; Bestimmen, ob das erstmalig validierte ML-Modell vorbestimmte Kriterien erfüllt; wenn das erstmalig validierte ML-Modell die vorbestimmten Kriterien erfüllt, wird mit dem Test des erstmalig validierten ML-Modells fortgefahren; und Identifizieren jedes erstmalig validierten ML-Modells, das die vorbestimmten Kriterien nicht erfüllt, als ein fehlgeschlagenes ML-Modell, und Modifizieren des fehlgeschlagenen ML-Modells, damit es die vorbestimmten Kriterien erfüllt.
  9. Verfahren nach Anspruch 8, wobei das Modifizieren des fehlgeschlagenen ML-Modells ferner Folgendes umfasst: Bestimmen, ob das fehlgeschlagene ML-Modell zum ersten Mal fehlgeschlagen ist; wenn das fehlgeschlagene ML-Modell zum ersten Mal fehlgeschlagen ist, Extrahieren von Werten für ein zusätzliches Merkmal für das erstmalig fehlgeschlagene ML-Modell, Aktualisieren des erstmalig fehlgeschlagenen ML-Modells, um das zusätzliche Merkmal zu berücksichtigen, erneutes Trainieren des erstmalig fehlgeschlagenen ML-Modells und erneutes Validieren des erstmalig fehlgeschlagenen ML-Modells; und wenn das ML-Modell mehr als einmal fehlgeschlagen ist, Hinzufügen zusätzlicher Trainingsdaten zu dem Trainingsdatensatz des fehlgeschlagenen ML-Modells aus neuen Sätzen von ERD-Beispielen, um einen aktualisierten Trainingsdatensatz zu erzeugen, erneutes Trainieren des fehlgeschlagenen ML-Modells unter Verwendung seines aktualisierten Trainingsdatensatzes und erneutes Validieren des fehlgeschlagenen ML-Modells.
  10. Entwurfssystem für integrierte Schaltungen mit Verzögerungsverifizierung unter Verwendung eines Interferenzkerns, umfassend: einen Datenspeicher, der zum Speichern von Konfigurationsdateien für ein maschinelles Lernmodell (ML-Modell) für die Anstiegsgeschwindigkeit, ein Netzverzögerungs-ML-Modell und ein Zellenverzögerungs-ML-Modell konfiguriert ist; einen Benutzerentwurf-Merkmalsextraktor, der mit dem Datenspeicher gekoppelt ist, wobei der Benutzerentwurf-Merkmalsextraktor konfiguriert ist, um Anstiegsgeschwindigkeitsmerkmalswerte, Netzverzögerungsmerkmalswerte und Zellenverzögerungsmerkmalswerte aus einem Benutzerentwurf zu extrahieren; ML-Entwurfablaufswerkzeuge, die mit dem Benutzerentwurf-Merkmalsextraktor und mit dem Datenspeicher gekoppelt sind; und ein Vorhersage-ML-Modul, das mit dem Datenspeicher, dem Benutzerentwurf-Merkmalsextraktor und den ML-Entwurfablaufswerkzeugen gekoppelt ist, wobei das Vorhersage-ML-Modul konfiguriert ist zum: Laden der Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells, um einen Anstiegsgeschwindigkeitsinferenzkern zu bilden, Laden der Konfigurationsdateien des Netzverzögerungs-ML-Modells, um einen Netzverzögerungsinferenzkern zu bilden, und Laden der Konfigurationsdateien des Zellenverzögerungs-ML Modells, um ein Zellenverzögerungsinferenzkern zu bilden, Durchführen von Vorgängen des Anstiegsgeschwindigkeitsinferenzkerns unter Verwendung der extrahierten Anstiegsgeschwindigkeitsmerkmalswerte als Eingang, um vorhergesagte Anstiegsgeschwindigkeitswerte zu berechnen, Durchführen von Vorgängen des Netzverzögerungsinferenzkerns unter Verwendung der extrahierten Netzverzögerungsmerkmalswerte als Eingang, um vorhergesagte Netzverzögerungswerte zu berechnen, und Durchführen von Vorgängen des Zellenverzögerungsinferenzkerns unter Verwendung der extrahierten Zellenverzögerungsmerkmalswerte als Eingang, um vorhergesagte Zellenverzögerungswerte zu berechnen, und Senden der vorhergesagten Anstiegsgeschwindigkeitswerte, der vorhergesagten Netzverzögerungswerte und der vorhergesagten Zellenverzögerungswerte an die ML-Entwurfablaufswerkzeuge, wobei die ML-Entwurfablaufswerkzeuge konfiguriert sind, um den Benutzerentwurf als Reaktion auf die vorhergesagten Anstiegsgeschwindigkeitswerte, die vorhergesagten Netzverzögerungswerte und die vorhergesagten Zellenverzögerungswerte zu iterieren, bis der Benutzerentwurf frei von Timing-Verletzungen ist, um einen endgültigen Benutzerentwurf zu identifizieren.
  11. Entwurfssystem für integrierte Schaltungen mit Verzögerungsverifizierung unter Verwendung eines Interferenzkerns nach Anspruch 10, ferner umfassend: einen oder mehrere Eingänge, die zum Empfangen von einem Eingang, der Merkmale von Entwürfen für integrierte Schaltungen angibt, zum Empfangen der Architektur des Anstiegsgeschwindigkeits-ML-Modells, des Netzverzögerungs-ML-Modells und des Zellenverzögerungs-ML-Modells und zum Empfangen von vorhandenen Referenzdesign-Beispielen (ERD-Beispielen) konfiguriert sind; einen ERD-Merkmalsextraktor, der mit dem Eingang gekoppelt ist, wobei der ERD-Merkmalsextraktor konfiguriert ist, um ERD-Merkmalswerte aus den empfangenen ERD-Beispielen zu extrahieren, um ERD-Anstiegsgeschwindigkeitsmerkmalswerte, ERD-Netzverzögerungsmerkmalswerte und ERD-Zellenverzögerungsmerkmalswerte zu erhalten; Entwurfablaufswerkzeuge, die mit dem ERD-Merkmalsextraktor gekoppelt sind, wobei die Entwurfablaufswerkzeuge konfiguriert sind, um die ERD-Anstiegsgeschwindigkeit-Wahr-Labels zu berechnen, die den extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerten entsprechen, um die ERD-Netzverzögerung-Wahr-Labels zu berechnen, die den extrahierten ERD-Netzverzögerungsmerkmalswerten entsprechen, und um die ERD-Zellenverzögerung-Wahr-Labels zu berechnen, die den extrahierten ERD-Zellenverzögerungsmerkmalswerten entsprechen; ein Trainings-, Validierungs- und Test-ML-Modul, das konfiguriert ist zum: Erzeugen eines Anstiegsgeschwindigkeits-ML-Modells und Durchführen von Training, Validierung und Tests unter Verwendung der extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerte und der entsprechenden ERD-Anstiegsgeschwindigkeit-Wahr-Labels; Erzeugen eines Netzverzögerungs-ML-Modells und Durchführen von Training, Validierung und Tests unter Verwendung der extrahierten ERD-Netzverzögerungsmerkmalswerte und der entsprechenden ERD-Netzverzögerung-Wahr-Labels; und Erzeugen eines Zellenverzögerungs-ML-Modells und Durchführen von Training, Validierung und Tests unter Verwendung der extrahierten ERD-Zellenverzögerungsmerkmalswerte und der entsprechenden ERD-Zellenverzögerung-Wahr-Labels.
  12. Entwurfssystem für integrierte Schaltungen mit Verzögerungsverifizierung unter Verwendung eines Interferenzkerns nach Anspruch 10, ferner mindestens eines von einem Vorrichtungsprogrammierer oder einem Maskengenerator, die mit den ML-Entwurfablaufswerkzeugen gekoppelt sind, umfassend.
  13. Verfahren für den Entwurf integrierter Schaltungen mit Verzögerungsverifizierung, umfassend: Empfangen des Eingangs, der Merkmale von Entwürfen für integrierte Schaltungen und eine Architektur eines Anstiegsgeschwindigkeits-ML-Modells, eines Netzverzögerungs-ML-Modells und eines Zellenverzögerungs-ML-Modells angibt; Empfangen von vorhandenen Referenzdesign-Beispielen (ERD-Beispielen); Erzeugen des Anstiegsgeschwindigkeits-ML-Modells durch Extrahieren von ERD-Anstiegsgeschwindigkeitsmerkmalswerte aus den ERD-Beispielen, Berechnen von ERD-Anstiegsgeschwindigkeit-Wahr-Labels, die den extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerten entsprechen, und Durchführen von Training, Validierung und Tests des erzeugten Anstiegsgeschwindigkeits-ML-Modells unter Verwendung der extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerte und der entsprechenden ERD-Anstiegsgeschwindigkeit-Wahr-Labels; Erzeugen des Netzverzögerungs-ML-Modells durch Extrahieren von ERD-Netzverzögerungsmerkmalswerten aus den ERD-Beispielen, Berechnen von ERD-Netzverzögerung-Wahr-Labels, die den extrahierten ERD-Netzverzögerungsmerkmalswerten entsprechen, und Durchführen von Training, Validierung und Tests des erzeugten Netzverzögerungs-ML-Modells unter Verwendung der extrahierten ERD-Netzverzögerungsmerkmalswerte und der entsprechenden ERD-Netzverzögerung-Wahr-Labels; Erzeugen des Zellenverzögerungs-ML-Modells durch Extrahieren von ERD-Zellenverzögerungsmerkmalswerten aus den ERD-Beispielen, Berechnen von ERD-Zellenverzögerung-Wahr-Labels, die den extrahierten ERD-Zellenverzögerungsmerkmalswerten entsprechen, und Durchführen von Training, Validierung und Tests des erzeugten Zellenverzögerungs-ML-Modells unter Verwendung der extrahierten ERD-Zellenverzögerungsmerkmalswerte und der entsprechenden ERD-Zellenverzögerung-Wahr-Labels; Speichern von Konfigurationsdateien für das erzeugte Anstiegsgeschwindigkeits-ML-Modell, das Netzverzögerungs-ML-Modell und das Zellenverzögerungs-ML-Modell; Empfangen eines Benutzerentwurfs; Extrahieren von Werten aus dem Benutzerentwurf für jedes Anstiegsgeschwindigkeitsmerkmal, jedes Netzverzögerungsmerkmal und jedes Zellenverzögerungsmerkmal, um Anstiegsgeschwindigkeitsmerkmalswerte, Netzverzögerungsmerkmalswerte und Zellenverzögerungsmerkmalswerte zu erhalten; Laden der Konfigurationsdateien des Anstiegsgeschwindigkeits-ML-Modells, um einen Anstiegsgeschwindigkeitsinferenzkerns zu bilden; Durchführen von Vorgängen des Anstiegsgeschwindigkeitsinferenzkerns unter Verwendung der extrahierten Anstiegsgeschwindigkeitsmerkmalswerte als Eingang, um vorhergesagte Anstiegsgeschwindigkeitswerte zu berechnen; Laden der Konfigurationsdateien des Netzverzögerungs-ML-Modells, um einen Netzverzögerungsinferenzkern zu bilden; Durchführen von Vorgängen des Netzverzögerungsinferenzkerns unter Verwendung der extrahierten Netzverzögerungsmerkmalswerte als Eingang, um vorhergesagte Netzverzögerungswerte zu berechnen; Laden der Konfigurationsdateien des Zellenverzögerungs-ML Modells, um einen Zellenverzögerungsinferenzkern zu bilden; Durchführen von Vorgängen des Zellenverzögerungsinferenzkerns unter Verwendung der extrahierten Zellenverzögerungsmerkmalswerte als Eingang, um vorhergesagte Zellenverzögerungswerte zu berechnen; Iterieren des Benutzerentwurfs als Reaktion auf die vorhergesagten Anstiegsgeschwindigkeitswerte, Netzverzögerungswerte und Zellenverzögerungswerte, bis ein endgültiger Benutzerentwurf erhalten wird, der frei von Timing-Verletzungen ist.
  14. Verfahren nach Anspruch 13, wobei das Training einen Random-Forest-Trainingsalgorithmus verwendet.
  15. Verfahren nach Anspruch 13, ferner umfassend: Unterteilen der extrahierten ERD-Anstiegsgeschwindigkeitsmerkmalswerte und der entsprechenden berechneten ERD-Anstiegsgeschwindigkeit-Wahr-Labels in einen Anstiegsgeschwindigkeitstrainingsdatensatz, einen Anstiegsgeschwindigkeitsvalidierungsdatensatz und einen Anstiegsgeschwindigkeitstestdatensatz; Trainieren des erzeugten Anstiegsgeschwindigkeits-ML-Modells unter Verwendung des Anstiegsgeschwindigkeitstrainingsdatensatzes; Validieren des erzeugten Anstiegsgeschwindigkeits-ML-Modells unter Verwendung des Anstiegsgeschwindigkeitsvalidierungsdatensatzes; Testen des erzeugten Anstiegsgeschwindigkeits-ML-Modells unter Verwendung des Anstiegsgeschwindigkeitstestdatensatzes; und Senden der vorhergesagten Anstiegsgeschwindigkeitswerte an die Entwurfablaufswerkzeuge.
  16. Verfahren nach Anspruch 15, ferner umfassend: Unterteilen der extrahierten ERD-Netzverzögerungsmerkmalswerte und der entsprechenden ERD-Netzverzögerung-Wahr-Labels in einen Netzverzögerungstrainingsdatensatz, einen Netzverzögerungsvalidierungsdatensatz und einen Netzverzögerungstestdatensatz; Trainieren des Netzverzögerungs-ML-Modells unter Verwendung des Netzverzögerungstrainingsdatensatzes; Validieren des Netzverzögerungs-ML-Modells unter Verwendung des Netzverzögerungsvalidierungsdatensatzes; Testen des Netzverzögerungs-ML-Modells unter Verwendung des Netzverzögerungstestdatensatzes; und Senden der vorhergesagten Netzverzögerungswerte an Entwurfablaufswerkzeuge.
  17. Verfahren nach Anspruch 16, ferner umfassend: Unterteilen der extrahierten ERD-Zellenverzögerungsmerkmalswerte und der entsprechenden ERD-Zellenverzögerung-Wahr-Labels in einen Zellenverzögerungstrainingsdatensatz, einen Zellenverzögerungsvalidierungsdatensatz und einen Zellenverzögerungstestdatensatz; Trainieren des Zellenverzögerungs-ML-Modells unter Verwendung des Zellenverzögerungstrainingsdatensatzes; Validieren des Zellenverzögerungs-ML-Modells unter Verwendung des Zellenverzögerungsvalidierungsdatensatzes; Testen des Zellenverzögerungs-ML-Modells unter Verwendung des Zellenverzögerungstestdatensatzes; und Senden der vorhergesagten Zellenverzögerungswerte an Entwurfablaufswerkzeuge.
DE112020006021.7T 2019-12-10 2020-12-04 Auf maschinelles lernen basierendes verfahren und vorrichtung für die berechnung und verifizierung von verzögerungen des entwurfs integrierter schaltungen Pending DE112020006021T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962946352P 2019-12-10 2019-12-10
US62/946,352 2019-12-10
US17/111,218 US11341304B2 (en) 2019-12-10 2020-12-03 Machine learning based methods and apparatus for integrated circuit design delay calculation and verification
US17/111,218 2020-12-03
PCT/US2020/063215 WO2021118869A1 (en) 2019-12-10 2020-12-04 Machine learning based methods and apparatus for integrated circuit design delay calculation and verification

Publications (1)

Publication Number Publication Date
DE112020006021T5 true DE112020006021T5 (de) 2022-10-06

Family

ID=76210912

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020006021.7T Pending DE112020006021T5 (de) 2019-12-10 2020-12-04 Auf maschinelles lernen basierendes verfahren und vorrichtung für die berechnung und verifizierung von verzögerungen des entwurfs integrierter schaltungen

Country Status (4)

Country Link
US (1) US11341304B2 (de)
CN (1) CN114730352A (de)
DE (1) DE112020006021T5 (de)
WO (1) WO2021118869A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475194B1 (en) * 2020-01-31 2022-10-18 Apex Semiconductor Multi-PVT frequency prediction (multi-PVT FP) for statically timed designs through statistical regression
WO2022120078A1 (en) * 2020-12-02 2022-06-09 Synopsys, Inc. Modelling timing behavior using augmented sensitivity data for physical parameters
US11934756B2 (en) * 2020-12-04 2024-03-19 Xerox Corporation Reducing the numerical complexity of designs
CN113780398A (zh) * 2021-09-02 2021-12-10 科大国创云网科技有限公司 一种无线网络链路质量预测方法及系统
US11928411B2 (en) * 2021-09-24 2024-03-12 Qualcomm Incorporated Machine learning-based integrated circuit test case selection for timing analysis
US11790139B1 (en) * 2022-04-18 2023-10-17 Xilinx, Inc. Predicting a performance metric based on features of a circuit design and explaining marginal contributions of the features to the prediction
CN118282361B (zh) * 2024-05-30 2024-09-03 珠海凌烟阁芯片科技有限公司 延迟优化方法和环形振荡器设计方法、装置、设备、介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3987255B2 (ja) 1999-12-02 2007-10-03 富士通株式会社 配線遅延時間算出方法
US6735748B1 (en) 2001-08-28 2004-05-11 Cadence Design Systems, Inc. Method and apparatus for performing extraction using a model trained with bayesian inference
US7051293B1 (en) 2001-08-28 2006-05-23 Cadence Design Systems, Inc. Method and apparatus for creating an extraction model
US6892366B1 (en) 2001-08-28 2005-05-10 Cadence Design Systems, Inc. Method and apparatus for performing extraction using a model trained with Bayesian inference via a Monte Carlo method
US6883148B1 (en) 2001-08-28 2005-04-19 Cadence Design Systems, Inc. Method and apparatus for creating an extraction model using Bayesian inference
US6857112B1 (en) 2001-08-28 2005-02-15 Cadence Design Systems, Inc. Method and apparatus for performing extraction using machine learning
US7882471B1 (en) * 2005-11-15 2011-02-01 Cadence Design Systems, Inc. Timing and signal integrity analysis of integrated circuits with semiconductor process variations
US8015527B2 (en) 2007-07-06 2011-09-06 International Business Machines Corporation Routing of wires of an electronic circuit
US10678973B2 (en) 2017-03-15 2020-06-09 Taiwan Semiconductor Manufacturing Co., Ltd. Machine-learning design enablement platform
JP2019036199A (ja) * 2017-08-18 2019-03-07 富士通株式会社 情報処理装置、タイミングエラー解析プログラム及びタイミングエラー解析方法
US10515172B2 (en) 2017-10-20 2019-12-24 Taiwan Semiconductor Manufacturing Company Limited RC tool accuracy time reduction

Also Published As

Publication number Publication date
US11341304B2 (en) 2022-05-24
CN114730352A (zh) 2022-07-08
US20210173993A1 (en) 2021-06-10
WO2021118869A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
DE112020006021T5 (de) Auf maschinelles lernen basierendes verfahren und vorrichtung für die berechnung und verifizierung von verzögerungen des entwurfs integrierter schaltungen
EP1907956B1 (de) Beschleunigte analog- und/oder hf-simulation
DE69229889T2 (de) Automatische Logikmodell-Erzeugung aus einer Schaltschema-Datenbank
US6499131B1 (en) Method for verification of crosstalk noise in a CMOS design
EP1764715B1 (de) Verfahren zur Bestimmung der Güte einer Menge von Eigenschaften, verwendbar zur Verifikation and zur Spezifikation von Schaltungen
DE102019003851A1 (de) Systeme und Verfahren zum automatischen Realisieren von Modellen zu Co-Simulation
DE60314530T2 (de) Verfahren und system zum debuggen unter verwendung duplizierter logik
DE112014003045T5 (de) Verfahren und System zur Change-Evaluierung eines elektronischen Designs zur Verifizierungsbestätigung
DE102020115968A1 (de) Systeme und verfahren für multi-bit-speicher mit eingebetteter logik
DE10333087A1 (de) Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle
DE112016003963T5 (de) Vorhersagen von Soll-Kenndaten
DE10296464T5 (de) Verfahren und Gerät zur Validierung des Entwurfes einer komplexen integrierten Schaltungen
EP3244326A1 (de) Verfahren zum erstellen einer fpga-netzliste
DE112013005833T5 (de) Analyse zeitlicher Leitungsengpässe zur Steuerung einer Optimierung mit nützlichem Versatz
CN117350208A (zh) 时序逻辑元件性能检查方法及设备
DE102017117496A1 (de) Zell-Bewusste Fehlstellen-Charakterisierung und Wellenformanalyse mithilfe mehrerer Strobe-Punkte
DE69127798T2 (de) Verfahren und Gerät zum Organisieren und Analysieren von Zeitsteuerungsinformationen
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
DE10324594A1 (de) Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung
DE112017004431T5 (de) Partitionierung unter verwendung einer korrelations-metaheuristik
EP0909421B1 (de) Verfahren und anordnung zur rechnergestützten ermittlung einer systemzusammenhangsfunktion
DE102016118749A1 (de) Signalwiederherstellung in Schaltwerk-Schaltung
DE102004003092A1 (de) Verfahren zum Auflösen nicht richtig angepaßter Parameter bei einem rechnergestützten Entwurf für integrierte Schaltungen
DE102019116061A1 (de) Systeme und verfahren zur vorhersage von statischen spannungsabfallverletzungen
DE60026178T2 (de) Modellierung und prüfung einer integrierten schaltung

Legal Events

Date Code Title Description
R012 Request for examination validly filed