DE102019116870A1 - Plattform zur befähigung von scan-design auf basis von maschinellem lernen - Google Patents

Plattform zur befähigung von scan-design auf basis von maschinellem lernen Download PDF

Info

Publication number
DE102019116870A1
DE102019116870A1 DE102019116870.8A DE102019116870A DE102019116870A1 DE 102019116870 A1 DE102019116870 A1 DE 102019116870A1 DE 102019116870 A DE102019116870 A DE 102019116870A DE 102019116870 A1 DE102019116870 A1 DE 102019116870A1
Authority
DE
Germany
Prior art keywords
scan
flops
scan flip
flip
chains
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
DE102019116870.8A
Other languages
English (en)
Inventor
Sandeep Kumar Goel
Yun-Han Lee
Vinay KOTHA
Ankita Patidar
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.)
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Original Assignee
Taiwan Semiconductor Manufacturing Co TSMC Ltd
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 Taiwan Semiconductor Manufacturing Co TSMC Ltd filed Critical Taiwan Semiconductor Manufacturing Co TSMC Ltd
Publication of DE102019116870A1 publication Critical patent/DE102019116870A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • 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/32Circuit design at the digital level
    • G06F30/333Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2247Verification or detection of system hardware configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2257Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using expert systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • 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/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Geometry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

Elektronische Designautomation (EDA) der vorliegenden Offenbarung optimiert in verschiedenen Ausführungsformen Design, Simulation, Analyse und Verifizieren elektronischer Schaltungen für eine Elektronikvorrichtung. Die Elektronikvorrichtung enthält Scan-Flip-Flops für autonomes Testen der Elektronikschaltung auf verschiedene Herstellungsfehler. Die EDA der vorliegenden Erfindung gruppiert die Scan-Flip-Flops in Scanketten derart, dass Scan-Flip-Flops innerhalb jeder Scankette ähnliche Eigenschaften, Parameter oder Attribute teilen. Danach ordnet die EDA der vorliegenden Offenbarung die Reihenfolge für die Scan-Flip-Flops innerhalb jeder der Scanketten intelligent an, um Leistungsvermögen, Leistung und/oder Fläche der elektronischen Schaltung zu optimieren.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität der am 27. Juni 2018 eingereichten vorläufigen US-Patentanmeldung Nr. 62 / 690,601 , die hierin durch Bezugnahme in ihrer Gesamtheit einbezogen wird.
  • HINTERGRUND
  • Fortschritte in Technologie und Technik haben es Entwicklern und Herstellern ermöglicht, Verbrauchern mehr Elektronikvorrichtungen anzubieten. Scankettentesten stellt ein Design für einen Testbarkeitsmechanismus (DFT) zum Erkennen von Fehlern innerhalb verschiedener kombinatorischer Logikschaltungen dieser Elektronikvorrichtungen dar. Scankettentesten beinhaltet Gruppieren zahlreicher Scan-Flip-Flops in zahlreiche Scanketten und Platzieren dieser zahlreichen Scanketten in den elektronischen Vorrichtungen zum Erkennen der Fehler. In manchen Situationen belegen Scanketten herkömmlich zwischen 10 und 40 Prozent des verfügbaren Platzes, der diesen Elektronikvorrichtungen gewidmet ist.
  • Figurenliste
  • Aspekte der vorliegenden Offenbarung lassen sich am besten aus der nachfolgenden ausführlichen Beschreibung verstehen, wenn sie mit den beigefügten Zeichnungen gelesen wird. Es wird darauf hingewiesen, dass, in Übereinstimmung mit den Standardpraktiken in der Branche, diverse Merkmale nicht maßstabsgerecht gezeichnet sind. Tatsächlich können die Abmessungen der verschiedenen Merkmale zur besseren Übersicht beliebig vergrößert oder verkleinert sein.
    • 1 veranschaulicht ein Blockdiagramm einer elektronischen Designplattform der beispielhaften Designumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung;
    • 2 veranschaulicht ein Flussdiagramm eines beispielhaften Betriebs der elektronischen Designplattform bei der Gruppierung und/oder Reihenfolgefestlegung von Scan-Flip-Flops innerhalb von Scanketten gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung;
    • 3 veranschaulicht ein Flussdiagramm eines beispielhaften Betriebs der elektronischen Designplattform beim Erzeugen von Softwareebenenbeschreibungen hoher Ebene von Scan-Flip-Flops innerhalb von Scanketten gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung;
    • 4 veranschaulicht ein Flussdiagramm eines beispielhaften Betriebs der elektronischen Designplattform beim Filtern von Ausreißer-Scan-Flip-Flops innerhalb der Scanketten gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung; und
    • 5 veranschaulicht ein Blockdiagramm eines beispielhaften Computersystems für das Implementieren der beispielhaften Designumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Offenbarung stellt viele unterschiedliche Ausführungsformen oder Beispiele für die Implementierung unterschiedlicher Merkmale des vorgestellten Gegenstandes bereit. Nachfolgend werden konkrete Beispiele der Komponenten und Anordnungen beschrieben, um die vorliegende Offenbarung zu vereinfachen. Dies sind natürlich lediglich Beispiele und sie sind nicht als einschränkend beabsichtigt. Die Bildung eines ersten Elements über einem zweiten Element in der Beschreibung, die folgt, kann zum Beispiel Ausführungsformen beinhalten, in denen das erste und zweite Element in direktem Kontakt ausgebildet sind, und können auch Ausführungsformen beinhalten, in denen zusätzliche Element zwischen dem ersten und dem zweiten Element ausgebildet sind, so dass das erste und das zweite Element möglicherweise nicht in direktem Kontakt stehen. Zusätzlich kann die vorliegende Offenbarung Bezugszahlen und/oder -buchstaben in den verschiedenen Beispielen wiederholen. Diese Wiederholung diktiert nicht an sich eine Beziehung zwischen den verschiedenen diskutierten Ausführungsformen und/oder Konfigurationen.
  • ÜBERBLICK
  • Elektronische Designautomation (EDA) der vorliegenden Offenbarung optimiert in verschiedenen Ausführungsformen Design, Simulation, Analyse und Verifizieren elektronischer Schaltungen für eine Elektronikvorrichtung. Die Elektronikvorrichtung enthält Scan-Flip-Flops für autonomes Testen der Elektronikschaltung auf verschiedene Herstellungsfehler. Die EDA der vorliegenden Offenbarung gruppiert die Scan-Flip-Flops in Scanketten derart, dass Scan-Flip-Flops innerhalb jeder Scankette ähnliche Eigenschaften, Parameter oder Attribute teilen. Danach ordnet die EDA der vorliegenden Offenbarung die Reihenfolgefestlegung für die Scan-Flip-Flops innerhalb jeder der Scanketten intelligent an, um Leistungsvermögen, Leistung und/oder Fläche der elektronischen Schaltung zu optimieren.
  • BEISPIELHAFTE ELEKTRONISCHE DESIGNPLATTFORM
  • 1 veranschaulicht ein Blockdiagramm einer elektronischen Designplattform der beispielhaften Designumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung. Wie in 1 veranschaulicht, stellt die elektronische Designplattform 100 einen Designablauf dar, einschließlich eines oder mehrerer elektronischer Design-Software-Tools für Design, Simulation, Analyse und/oder Verifizieren eines oder mehrerer elektronischer Architekturdesignlayouts für Elektronikschaltungen einer Elektronikvorrichtung. In der in 1 veranschaulichten Ausführungsform beinhaltet die Elektronikvorrichtung eine oder mehrere Scanketten zum Testen der Elektronikschaltung auf diverse Herstellungsfehler, wie etwa feststeckende Fehler zum Beispiel. Das eine oder die mehreren elektronischen Architekturdesignlayouts repräsentieren ein oder mehrere Bilder und/oder ein oder mehrere datenbasierte Repräsentationen geometrischer Formen, die die Elektronikschaltung, Positionen der geometrischen Formen und/oder Verbindungen zwischen den geometrischen Formen beschreiben. Wie nachfolgend ausführlicher erläutert, führt die elektronische Designplattform 100 eine iterative Sequenz von Operationen durch, um die Platzierung der einen oder mehreren Scanketten innerhalb des einen oder der mehreren elektronischen Architekturdesignlayouts zu optimieren, um Ressourcen, wie etwa Leistung und/oder Platz, um nur einige Beispiele zu nennen, der Elektronikvorrichtung zu erhalten. In manchen Situationen kann diese iterative Sequenz von Operationen selber iterativ wiederholt werden, um Platzierung der einen oder mehreren Scanketten innerhalb des einen oder der mehreren elektronischen Architekturdesignlayouts zu optimieren. Diese iterative Sequenz von Operationen kann beispielsweise selber iterativ sein, wenn das eine oder die mehreren elektronischen Architekturdesignlayouts irregulär sind.
  • In der in 1 veranschaulichten Ausführungsform enthält die elektronische Designplattform 100 ein Synthesetool 102, ein Platzierungs- und Routingtool 104, ein Maschinenlernen (ML) Design-for-Test (DFT) Lösungstool 106, ein DFT-Spezifikationstool 108, ein Design-Engineering-Change-Order (ECO) Tool 110, ein Ausreißer-Filtertool 112, ein Simulationstool 114 und ein Verifikationstool 116. Diese verschiedenen Werkzeuge, die nachfolgend ausführlicher zu beschreiben sind, repräsentieren ein oder mehrere elektronische Design-Softwaretools, die, wenn sie von einer oder mehreren Rechenvorrichtungen, Prozessoren, Steuerungen oder anderen Vorrichtungen, die dem Fachmann ersichtlich sind, ohne dass vom Geist und Umfang der vorliegenden Offenbarung abgewichen werden würde, ausgeführt werden, ein oder mehrere elektronische Architekturdesignlayouts entwerfen, simulieren, analysieren und/oder verifizieren können. Ausführungsformen der Offenbarung lassen sich in Hardware, Firmware, Software oder einer beliebigen Kombination davon implementieren. Ausführungsformen der Offenbarung können auch als Anweisungen implementiert sein, die auf einem maschinenlesbaren Medium gespeichert sind, das von einem oder mehreren Prozessoren gelesen und ausgeführt werden kann. Ein maschinenlesbares Medium kann jedweden Mechanismus zum Speichern oder Übertragen von Informationen in einer von einer Maschine (z. B. eine Rechenvorrichtung) lesbaren Form enthalten. Ein maschinenlesbares Medium kann beispielsweise Nurlesespeicher (ROM); Direktzugriffsspeicher (RAM); Magnetplattenspeichermedien; optische Speichermedien; Flash-Speichervorrichtungen; elektrische, optische, akustische oder andere Formen sich ausbreitender Signale (beispielsweise Trägerwellen, Infrarotsignale, Digitalsignale usw.) und anderes enthalten. Ferner können Firmware, Software, Routinen, Anweisungen hierin als bestimmte Aktionen durchführend beschrieben sein. Es ist jedoch zu würdigen, dass solche Beschreibungen lediglich zur besseren Übersicht dienen, und dass solche Aktionen tatsächlich aus Rechenvorrichtungen, Prozessoren, Steuerungen oder anderen Vorrichtungen resultieren, die die Firmware, Software, Routinen, Anweisungen usw. ausführen.
  • Das Synthesetool 102 übersetzt eine oder mehrere Eigenschaften, Parameter oder Attribute der Elektronikschaltung in eine oder mehrere Logikoperationen, eine oder mehrere arithmetische Operationen, eine oder mehrere Steueroperationen und/oder jedwede andere geeignete Operationen, die dem Fachmann offensichtlich sein werden, ohne dass von dem Geist und Umfang der vorliegenden Offenbarung abgewichen werden würde, in eine oder mehrere Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung. In einer beispielhaften Ausführungsform können die eine oder die mehreren Softwareebenenbeschreibungen hoher Ebene eine textuelle Darstellung der Elektronikschaltung repräsentieren, wie etwa eine Netzliste; ein Softwaremodell hoher Ebene der Elektronikschaltung unter Verwendung einer Softwaresprache hoher Ebene, wie etwa ein grafisches Designtool, beispielsweise C, System C, C++, LabVIEW und/oder MATLAB, eine universelle Systemdesignsprache, wie etwa SysML, SMDL und/oder SSDL, oder ein Softwareformat hoher Ebene, wie etwa Common Power Format (CPF), Unified Power Format (UPF); oder eine bildbasierte Darstellung der Elektronikschaltung, wie etwa ein Computer-Aided-Design (CAD) Modell, um ein Beispiel zu nennen. In der in 1 veranschaulichten beispielhaften Ausführungsform kann das Synthesetool 102 einen Scankettenreport generieren, wie etwa eine Textdatei zum Beispiel, der die Scanketten für das Testen der Elektronikschaltung auf verschiedene Herstellungsfehler beschreibt, wie etwa feststeckende Fehler zum Beispiel. In dieser beispielhaften Ausführungsform repräsentiert der Scankettenreport einen Bericht über die Anzahl von Scanketten innerhalb der Elektronikschaltung, eine kumulative Anzahl von Scan-Flip-Flops innerhalb jeder der Scan-Ketten und/oder eine kumulative Anzahl von Scan-Flip-Flops innerhalb der Elektronikschaltung in ihrer Gesamtheit.
  • Das Platzierungs- und Routingtool 104 definiert die eine oder die mehreren Logikoperationen, die eine oder mehreren arithmetischen Operationen, die eine oder mehreren Steueroperationen und/oder die andere geeignete Operation aus dem Synthesetool 102 in Bezug auf verschiedene geometrische Formen, die Diffusionsschichten, Polysiliziumschichten und/oder Metallschichten entsprechen, sowie Verbindungen zwischen diesen Schichten, um das eine oder die mehreren elektronischen Architekturdesignlayouts bereitzustellen. Das Platzierungs- und Routingtool 104 platziert verschiedene elektrische, mechanische und/oder elektromechanische Komponenten der Elektronikschaltung, wie durch die eine oder mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung beschrieben, auf eine elektronische Designfläche, um eine oder mehrere elektronische Architekturdesignplatzierungen für die Elektronikschaltung bereitzustellen. Danach weist das Platzierungs- und Routingtool 104 geometrische Formen an die verschiedenen elektrischen, mechanischen und/oder elektromechanischen Komponenten der Elektronikschaltung zu, weist Positionen für die geometrischen Formen innerhalb der elektronischen Designfläche zu und/oder leitet Verbindungen zwischen den geometrischen Formen, um das eine oder die mehreren elektronischen Architekturdesignlayouts bereitzustellen. In einer beispielhaften Ausführungsform nutzt das Platzierungs- und Routingtool 104 eine textuelle oder eine bildbasierte Netzliste, die die Elektronikschaltung beschreibt, eine Technologiebibliothek zum Herstellen der Elektronikvorrichtung, eine Halbleitergießerei zum Herstellen der Elektronikvorrichtung und/oder einen Halbleitertechnologieknoten zum Herstellen der elektronischen Vorrichtung, um die verschiedenen elektrischen, mechanischen und/oder elektromechanischen Komponenten zu platzieren, um die geometrischen Formen den verschiedenen elektrischen, mechanischen und/oder elektromechanischen Komponenten der elektronischen Schaltung zuzuweisen, um Positionen für die geometrischen Formen innerhalb der elektronischen Designfläche zuzuweisen und/oder um die Verbindungen zwischen den geometrischen Formen zu leiten.
  • Das Maschinenlernen (ML)-Design-for-Test (DFT)-Lösungstool 106 gruppiert und ordnet die Scan-Flip-Flops innerhalb der Scanketten. Das ML-DFT-Lösungstool 106 empfängt den Scankettenreport, der die Scanketten beschreibt, von dem Synthesetool 102 und die eine oder mehreren elektronischen Architekturdesignplatzierungen und/oder das eine oder die mehreren elektronischen Architekturdesignlayouts von dem Platzierungs- und Routingtool 104. Das ML-DFT-Lösungstool 106 nutzt eine oder mehrere elektronische Architekturdesignplatzierungen und/oder das eine oder die mehreren elektronischen Architekturdesignlayouts, um Positionen der Scan-Flip-Flops zu extrahieren. Das ML-DFT-Lösungstool 106 führt eine mathematisch Clusteranalyse der Scan-Flip-Flops durch, wie etwa konnektivitätsbasiertes Clustering, das auch als hierarchisches Clustering bezeichnet wird, wie etwa agglomeratives Clustering zum Beispiel; zentroidbasiertes Clustering, wie etwas k-Mittel-Clustering zum Beispiel; ein verteilungsbasiertes Clustering; und/oder ein dichtebasiertes Clustering, um einige Beispiele zu nennen. Die mathematische Clusteranalyse gruppiert die Scan-Flip-Flops derart, dass Scan-Flip-Flops innerhalb jeder Scankette ähnliche Eigenschaften, Parameter oder Attribute im Vergleich zu Eigenschaften, Parametern oder Attributen anderer Scan-Flip-Flops innerhalb anderer Scanketten teilen. Die Eigenschaften, Parameter oder Attribute können Entfernungen zwischen den Scan-Flip-Flops innerhalb der Scanketten enthalten, Dichte der Scan-Flip-Flops innerhalb der Scanketten und/oder statistische Verteilungen, wie etwa mittlere Entfernungen, zum Beispiel, der Scan-Flip-Flops innerhalb der Scanketten. In einer beispielhafte Ausführungsform wird die Anzahl der Scanketten und die Anzahl der Scan-Flip-Flops für jede der Scanketten in dem Scankettenreport identifiziert.
  • Nach Anordnen der Scan-Flip-Flops zu den Scanketten führt das ML-DFT-Lösungstool 106 eine mathematische Routinganalyse, wie etwa ein kürzester Weg Problem, zum Beispiel ein Travelling Salesman Problem (TSP), für die Scan-Flip-Flops innerhalb jeder der Scanketten durch, um eine Routing-Reihenfolge für die Scan-Flip-Flops zu bestimmen. Die mathematische Routinganalyse ordnet eine Sequenz oder Reihenfolgefestlegung für die Scan-Flip-Flops innerhalb jeder der Scanketten iterativ an, um einen oder mehrere Routingparameter der einen oder der mehreren elektronischen Architekturdesignplatzierungen und/oder das eine oder die mehreren elektronischen Architekturdesignlayouts, wie Drahtlänge zum Beispiel, zu optimieren, um die Routingreihenfolge für die Scan-Flip-Flops zu bestimmen. Die mathematische Routinganalyse kann beispielsweise die Sequenz einer Scankette so einstellen, dass sie eine erste Sequenz eines ersten Scan-Flip-Flops ist, ein zweiter Scan-Flip-Flop und ein dritter Scan-Flip-Flop aus einer zweiten Sequenz des ersten Scan-Flip-Flops, der dritte Scan-Flip-Flop und der zweite Scan-Flip-Flop, wenn die Drahtlänge der ersten Sequenz kleiner ist als die Drahtlänge der zweiten Sequenz. Die mathematische Routinganalyse ordnet weiter die Sequenz oder Reihenfolgefestlegung für die Scan-Flip-Flops an bis der eine oder die mehreren Routingparameter optimiert ist bzw. sind. In einer beispielhaften Ausführungsform stellt das ML-DFT-Lösungstool 106 einen Scan-Cluster-Report bereit, der eine textuelle oder eine bildbasierte Netzliste repräsentiert, die die Gruppierung der Scan-Flip-Flops innerhalb der Scanketten und die Routingreihenfolge für die Scan-Flip-Flops innerhalb jeder der Scanketten beschreibt.
  • In manchen Situationen kann die Gruppierung und/oder die Reihenfolgefestlegung der Scan-Flip-Flops innerhalb der Scanketten einer oder mehreren Einschränkungen des elektronischen Designs unterliegen. In einer beispielhaften Ausführungsform können die eine oder die mehreren Einschränkungen des elektronischen Designs in einer Spezifikation für das elektronische Design für die Elektronikschaltung aufgeführt sein. Die eine oder mehreren Einschränkungen des elektronischen Designs können beispielsweise eine kumulative Anzahl von Flip-Flops innerhalb einer oder mehreren der Scanketten, eine vorbestimmte Gruppierung von Scan-Flip-Flops innerhalb einer oder mehreren der Scanketten und/oder eine vorbestimmte Routingreihenfolge für die Scan-Flip-Flops innerhalb einer oder mehreren der Scanketten spezifizieren. Wie in 1 veranschaulicht, enthält die elektronische Designplattform 100 das DFT-Spezifikationstool 108 zum Empfangen dieser Einschränkungen des elektronischen Designs. In einer beispielhaften Ausführungsform kann das DFT-Spezifikationstool 108 einen Report über Einschränkung des elektronischen Designs empfangen, wie etwa als eine Textdatei zum Beispiel, der die eine oder mehreren Einschränkungen des elektronischen Designs beschreibt. Es sind aber auch andere Mechanismen zum Empfangen der einen oder mehreren Einschränkungen des elektronischen Designs möglich, wie etwa manuelle Eingabe über eine Peripherievorrichtung, wie etwa eine Tastatur, ohne dass vom Geist und Umfang der vorliegenden Offenbarung abgewichen werden würde.
    Das Design-Engineering-Change-Order (ECO) Tool 110 stellt die eine oder mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung, die von dem Synthesetool 102 bereitgestellt wird, gemäß der Gruppierung und Reihenfolgefestlegung der Scan-Flip-Flops, die von dem ML-DFT-Lösungstool 106 bereitgestellt werden, bereit. Wie vorstehend beschrieben, übersetzt das Synthesetool 102 die einen oder mehreren Eigenschaften, Parameter oder Attribute der Elektronikschaltung in die eine oder mehreren Logikoperationen, die eine oder mehreren arithmetischen Operationen, die eine oder mehreren Steueroperationen und/oder die andere geeignete Operation in die eine oder mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung. In der in 1 veranschaulichten beispielhaften Ausführungsform entfernt das Design-ECO-Tool 110 die Gruppierung und Reihenfolgefestlegung der Scan-Flip-Flops aus der einen oder den mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung, die von dem Synthesetool 102 bereitgestellt werden. Danach erweitert das Design-ECO-Tool 110 in dieser beispielhaften Ausführungsform die eine oder die mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung mit der Gruppierung und Reihenfolgefestlegung der Scan-Flip-Flops, die von dem ML-DFT-Lösungstool 106 bereitgestellt werden. Als nächstes erweitert das Platzierungs- und Routingtool 104 die eine oder die mehreren Platzierungen des elektronischen Architekturdesigns und/oder das eine oder die mehreren elektronischen Architekturdesignlayouts gemäß der Gruppierung und Reihenfolgefestlegung der Scan-Flip-Flops, die von dem ML-DFT-Lösungstool 106 bereitgestellt werden, wie durch die eine oder die mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung, die von dem Design-ECO-Tool 110 bereitgestellt wird bzw. werden, beschrieben. In manchen Situationen kann die Gruppierung und/oder die Reihenfolgefestlegung der Scan-Flip-Flops innerhalb der Scanketten der einen oder den mehreren Einschränkungen des elektronischen Designs unterliegen, wie vorstehend beschrieben. In diesen Situationen können diese Scan-Flip-Flops und/oder die Scanketten, die die eine oder die mehreren Einschränkungen des elektronischen Designs aufweisen, aus der Betrachtung durch das Design-ECO-Tool 110 entfernt werden. In diesen Situationen verbleiben die Gruppierung und/oder die Reihenfolgefestlegung dieser Scan-Flip-Flops und/oder dieser Scanketten, die die eine oder die mehreren Einschränkungen des elektronischen Designs aufweisen, wie beschrieben innerhalb der Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung, die von dem Synthesetool 102 bereitgestellt wird.
  • Das Ausreißer-Filtertool 112 führt eine statistische Kostenanalyse der Scan-Flip-Flops innerhalb der Scanketten durch, um zu identifizieren, ob ein oder mehrere nicht optimale Scan-Flip-Flops, die als Ausreißer bezeichnet werden, in den Scanketten vorhanden sind. In der in 1 veranschaulichten beispielhaften Ausführungsform analysiert das Ausreißer-Filtertool 112 die eine oder mehreren Architekturdesignplatzierungen und/oder das eine oder die mehreren elektronischen Architekturdesignlayouts aus dem Platzierungs- und Routingtool 104 auf eine oder mehrere Eigenschaften, Parameter oder Attribute der elektrischen Verbindungen zwischen den Scan-Flip-Flops innerhalb der Scanketten. In einer beispielhaften Ausführungsform können das eine oder die mehreren Eigenschaften, Parameter oder Attribute Länge (L) der Scandrähte zwischen den Scan-Flip-Flops, Distanzen (D) zwischen den Scan-Flip-Flops und die Anzahl der Metallschichten (M) enthalten, die zum Herstellen der Scanketten notwendig sind. Danach führt das Ausreißer-Filtertool 112 die statistische Kostenanalyse der einen oder mehreren Eigenschaften, Parameter oder Attribute durch, wie etwa eine L/D-Kostenanalyse, eine M/D-Kostenanalyse und/oder eine M/L-Kostenanalyse, um einige Beispiele zu nennen, um eine oder mehrere nicht optimale elektrische Verbindungen zwischen den Scan-Flip-Flops innerhalb der Scan-Ketten zu identifizieren. Das Ausreißer-Filter-Tool 112 identifiziert diese elektrischen Verbindungen, deren statistische Kostenanalysen größer oder gleich einem Sperrungsschwellenwert liegen, wie etwa zwei Standardabweichungen von dem Mittelwert der statistischen Kostenanalyse, vier Standardabweichungen vom Mittelwert der statistischen Kostenanalyse und/oder sechs Standardabweichungen vom Mittelwert der statistischen Kostenanalyse zum Beispiel, als die nicht optimalen elektrischen Verbindungen. Als nächstes lokalisiert das Ausreißer-Filtertool 112 Scan-Flip-Flops, die als nicht optimale Scan-Flip-Flops bezeichnet werden, innerhalb der Scanketten, die beispielsweise diesen nicht optimalen elektrischen Verbindungen als am nächsten liegenden entsprechen. Danach stellt das Ausreißer-Filter-Tool 112 die Gruppierung und/oder die Reihenfolgefestlegung dieser nicht optimalen Scan-Flip-Flops innerhalb der Scanketten ein. Das Ausreißer-Filtertool 112 kann diese nicht optimalen Scan-Flip-Flops beispielsweise zu unterschiedlichen Scanketten bewegen, als jenen, die von dem ML-DFT-Lösungstool 106 bereitgestellt werden. Dann erweitert das Design-ECO-Tool 110, in der in 1 veranschaulichten Ausführungsform, die eine oder die mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung mit der Gruppierung und Reihenfolgefestlegung der Scan-Flip-Flops, die von dem Ausreißer-Filter-Tool 112 bereitgestellt werden. Als nächstes erweitert das Platzierungs- und Routingtool 104 die eine oder die mehreren Platzierungen des elektronischen Architekturdesigns und/oder das eine oder die mehreren elektronischen Architekturdesignlayouts gemäß der Gruppierung und Reihenfolgefestlegung der Scan-Flip-Flops, die von dem Ausreißer-Filter-Tool 112 bereitgestellt werden, wie durch die eine oder die mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung, die von dem Design-ECO-Tool 110, bereitgestellt wird bzw. werden, beschrieben. In einer beispielhaften Ausführungsform erweitert das Platzierungs- und Routingtool 104 die eine oder mehreren elektronischen Architekturdesignplatzierungen für großformatige Scanketten. Ansonsten erweitert das Platzierungs- und Routingtool 104, in dieser beispielhaften Ausführungsform, das eine oder die mehreren elektronischen Architekturlayouts für kleinformatigere Scanketten. In manchen Situationen kann das Synthesetool 102 die eine oder die mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung gemäß der Gruppierung und Reihenfolgefestlegung der Scan-Flip-Flops erweitern, die von dem Ausreißer-Filtertool 112 bereitgestellt werden.
  • Das Simulationstool 114 simuliert die geometrischen Formen, die Positionen der geometrischen Formen und/oder die Verbindungen zwischen den geometrischen Formen, wie durch das eine oder die mehreren elektronischen Architekturdesignlayouts beschrieben, um die eine oder die mehreren Eigenschaften, Parameter oder Attribute der geometrischen Formen, die Positionen der geometrischen Formen und/oder die Verbindungen zwischen den geometrischen Formen zu reproduzieren. In einer beispielhafte Ausführungsform kann das Simulationstool 114 eine statistische Timinganalyse (STA), eine Spannungsabfallanalyse, die auch als eine IREM-Analyse bezeichnet wird, eine Clock Domain Crossing Verifikation (CDC-Check), eine formale Verifizierung, die auch als Model-Checking bezeichnet wird, Äquivalenz-Checking oder jedwede andere geeigneten Analysen, wie dem Fachmann ersichtlich sein wird, ohne dass vom Geist und Umfang der vorliegenden Offenbarung abgewichen werden würde, durchführen. In einer anderen beispielhaften Ausführungsform kann das Simulationstool 114 eine Wechselstromanalyse durchführen, wie etwa eine lineare Kleinsignal-Frequenzdomänenanalyse, und/oder eine Gleichstromanalyse, wie etwa eine nicht lineare Ruhepunktberechnung oder eine Sequenz von nicht linearen Betriebspunkten, die berechnet werden während eine Spannung, ein Strom und/oder ein Parameter durchlaufen werden, um die STA, die IREM-Analyse oder die anderen geeigneten Analysen durchzuführen.
  • Das Verifikationstool 116 validiert, ob die eine oder die mehreren Eigenschaften, Parameter oder Attribute der geometrischen Formen, die Positionen der geometrischen Formen und/oder die Verbindungen zwischen den geometrischen Formen, wie durch das Simulationstool 114 reproduziert, die Spezifikation des elektronischen Designs erfüllen. Das Verifikationstool 116 kann auch eine physische Verifikation durchführen, die auch als ein Design Rule Check (DRC) bezeichnet wird, um zu prüfen, ob die geometrischen Formen, die Positionen der geometrischen Formen und/oder die Verbindungen zwischen den geometrischen Formen, die von dem Platzierungs- und Routingtool 104 zugewiesen wurden, eine Serie empfohlener Parameter, die als Designregeln bezeichnet werden, erfüllen, wie von einer Halbleitergießerei und/oder einem Halbleitertechnologieknoten zum Herstellen der Elektronikvorrichtung definiert.
  • BEISPIELHAFTE GRUPPIERUNG UND/ODER REIHENFOLGEFESTLEGUNG DER SCAN-FLIP-FLOPS INNERHALB DER SCANKETTEN
  • 2 veranschaulicht ein Flussdiagramm eines beispielhaften Betriebs der elektronischen Designplattform bei der Gruppierung und/oder Reihenfolgefestlegung von Scan-Flip-Flops innerhalb von Scanketten gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung. Die Offenbarung ist nicht auf diese Betriebsbeschreibung beschränkt. Vielmehr wird es dem Fachmann ersichtlich sein, dass andere Betriebssteuerungsabläufe unter den Umfang und Geist der vorliegenden Erfindung fallen. Die folgende Diskussion beschreibt einen beispielhaften Betriebssteuerablauf 200 zum Gruppieren und/oder Ordnen der Scan-Flip-Flops innerhalb der Scanketten innerhalb der Elektronikschaltung der Elektronikvorrichtung. In manchen Situationen kann der beispielhafte Betriebssteuerablauf 200 iterativ wiederholt werden, um das Gruppieren und/oder die Reihenfolgefestlegung der Scan-Flip-Flops innerhalb der Scanketten innerhalb der Elektronikschaltung der Elektronikvorrichtung zu optimieren. Der Betriebssteuerablauf 200 kann einen beispielhaften Betrieb für das Maschinenlernen (ML) Design-for-Test (DFT) Lösungstool 106 beim Bestimmen der Gruppierung und/oder der Reihenfolgefestlegung der Scan-Flip-Flops innerhalb der Scanketten, wie vorstehend in 1 beschrieben, repräsentieren.
  • Bei Vorgang 202 bestimmt der beispielhafte Betriebssteuerablauf 200 die Anzahl der Scan-Flip-Flops und die Anzahl der Scanketten der Elektronikschaltung. In einer beispielhaften Ausführungsform empfängt der beispielhafte Betriebssteuerablauf 200 einen Scankettenreport, wie etwa eine Textdatei zum Beispiel, der die Scanketten beschreibt. In dieser beispielhaften Ausführungsform repräsentiert der Scankettenreport Bericht über die Anzahl von Scanketten der Elektronikschaltung, eine kumulative Anzahl von Scan-Flip-Flops innerhalb jeder der Scan-Ketten und/oder eine kumulative Anzahl von Scan-Flip-Flops innerhalb der elektronischen Schaltung in ihrer Gesamtheit. Es sind jedoch auch andere Mechanismen zum Bestimmen der Anzahl von Scan-Flip-Flops und der Anzahl von Scanketten der Elektronikvorrichtung möglich, wie etwa manueller Eintrag über eine Peripherievorrichtung, wie etwa eine Tastatur, ohne dass vom Geist und Umfang der vorliegenden Offenbarung abgewichen werden würde.
  • Bei Vorgang 204 extrahiert der beispielhafte Betriebssteuerablauf 200 Positionen der Scan-Flip-Flops innerhalb eines oder mehrerer elektronischer Architekturdesignlayouts. Das eine oder die mehreren elektronischen Architekturdesignlayouts repräsentieren ein oder mehrere Bilder und/oder ein oder mehrere datenbasierte Repräsentationen geometrischer Formen, die die Elektronikschaltung, Positionen der geometrischen Formen und/oder Verbindungen zwischen den geometrischen Formen beschreiben. Das eine oder die mehreren elektronischen Architekturdesignlayouts können eine oder mehrere Design Exchange Format (DEF) Dateien, eine oder mehrere Library Exchange Format (LEF) Dateien, eine oder mehrere JPEG (Joint Photographic Experts Group) Bilder, JPEG File Interchange Format (JIFF) Bilder, Exchangeable Image File (Exif) Bilder, Tagged Image File Format (TIFF) Bilder, Graphics Interchange Format (GIF) Bilder, Windows Bitmap (BMP) Bilder und/oder Portable Network Graphic (PNG) Bilder repräsentieren, die der Elektronikschaltung entsprechen, und/oder eine oder mehrere Gerber-Datendateien, AutoCAD Drawing Exchange Format (DXF) Datendateien, Portable Document Format (PDF) Datendateien, Electronic Design Interchange Format (EDIF) Datendateien, ODB++ Datendateien, eine oder mehrere Association Connecting Electronics Industries (IPC) Datendateien, wie etwa IPC-2511A, IPC-2511B oder IPC-2581 zum Beispiel, eine oder mehrere International Organization for Standardization (ISO) Datendateien, wie etwa ISO 10303-210 zum Beispiel, die der Elektronikschaltung entsprechen.
  • Bei Vorgang 206 bestimmt der beispielhafte Betriebssteuerablauf 200, ob eine Anzahl der Scanketten innerhalb der Elektronikschaltung zu optimieren ist. In manchen Situationen kann der beispielhafte Betriebssteuerablauf 200 autonom bestimmen, die Anzahl der Scanketten innerhalb der Elektronikschaltung zu optimieren, indem er Leistungsfähigkeit, Leistung und/oder Fläche der Scanketten innerhalb der Elektronikschaltung aus dem einen oder den mehreren elektronischen Architekturdesignlayouts auswertet und diese Leistungsfähigkeits-, Leistungs- und/oder Flächeneigenschaften, -parameter oder -attribute der Scanketten mit entsprechenden Eigenschaften, Parametern oder Attributen für die Leistungsfähigkeit, die Leistung und/oder Fläche, die in einer Spezifikation für das elektronische Design aufgeführt sind, vergleicht. In einer beispielhaften Ausführungsform kann der beispielhafte Betriebssteuerablauf 200 das Leistungsvermögen, die Leistung und/oder die Fläche der Scanketten innerhalb der Elektronikschaltung durch Optimieren der Anzahl der Scankette innerhalb der Elektronikschaltung verringern. In manchen anderen Situationen kann die Gruppierung und/oder die Reihenfolgefestlegung der Scan-Flip-Flops innerhalb der Scanketten der einen oder den mehreren Einschränkungen des elektronischen Designs unterliegen, wie vorstehend beschrieben in 1 beschrieben. In der in 2 veranschaulichten beispielhaften Ausführungsform kann die eine oder mehreren Einschränkungen des elektronischen Designs eine Angabe enthalten, dass die Anzahl der Scanketten innerhalb der Elektronikschaltung zu optimieren ist. Der Betriebssteuerablauf 200 fährt zu Vorgang 208 fort, um die Anzahl der Scanketten innerhalb der Elektronikschaltung zu optimieren. Ansonsten fährt der Betriebssteuerablauf 200 zu Vorgang 210 fort, um die Gruppierung der Scan-Flip-Flops innerhalb der Scanketten zu bestimmen.
  • Bei Vorgang 208 bestimmt der beispielhafte Betriebssteuerablauf 200 eine optimale Anzahl von Scanketten für die Elektronikschaltung. Der beispielhafte Betriebssteuerablauf 200 führt die mathematische Clusteranalyse der Scan-Flip-Flops durch, um die Scan-Flip-Flops in die Scanketten innerhalb der Elektronikschaltung, wie vorstehend in 1 beschrieben, zu gruppieren. Danach führt der beispielhafte Betriebssteuerablauf 200 eine mathematische Konsistenzanalyse der Scan-Flip-Flops durch, wie etwa Silhouetten-Clustering zum Beispiel, um Konsistenz der Gruppierung der Scan-Flip-Flops innerhalb der Scan-Ketten zu interpretieren und/oder zu validieren. In der in 2 veranschaulichten beispielhaften Ausführungsform nutzt die mathematische Konsistenzanalyse eine Entfernungsmetrik, wie etwa eine euklidische Entfernung oder eine Manhattan-Distanz, um nur einige Beispiele zu nennen, um Entfernungen zwischen den Scan-Flip-Flops innerhalb der Scanketten zu bestimmen. Die mathematische Konsistenzanalyse stellt einen Konsistenzkoeffizienten bereit, wie etwa einen Silhouettenwert zum Beispiel, der ein Maß für die Ähnlichkeit zwischen den Scan-Flip-Flops innerhalb ihrer eigenen Scanketten, die als Kohäsion bezeichnet wird, im Vergleich zu Scan-Flip-Flops anderer Scanketten, der als Separation bezeichnet wird, repräsentiert. Der beispielhafte Betriebssteuerablauf 200 wiederholt iterativ die mathematische Clusteranalyse, um unterschiedliche Gruppierungen der Scan-Flip-Flops in eine unterschiedliche Anzahl von Scanketten und die mathematische Konsistenzanalyse zu bestimmen, um Konsistenz dieser unterschiedlichen Gruppierungen zu interpretieren und/oder zu validieren. Danach wählt der beispielhafte Betriebssteuerablauf 200 die Anzahl von Scanketten, die den größten Konsistenzkoeffizienten aufweisen, als die optimale Anzahl von Scanketten für die Elektronikschaltung aus.
  • Bei Vorgang 210 führt der beispielhafte Betriebssteuerablauf 200 k-Mittel-Clustering durch, um die Scan-Flip-Flops in die Anzahl der Scanketten zu gruppieren, die in Vorgang 208 bestimmt wurde, oder wie in dem Scankettenreport, wie vorstehend in 1 beschrieben, identifiziert wurde. Das k-Mittel-Clustering initialisiert zufällige Zentroide innerhalb der Fläche für das das elektronische Design für die Elektronikschaltung. Jeder dieser zufälligen Zentroiden entspricht einer der Scanketten, die in dem Scankettenreport identifiziert wurden. Danach weist das k-Mittel-Clustering die Scan-Flip-Flops den zufälligen Zentroiden als ebenfalls in dem Scankettenreport identifiziert zu. Das k-Mittel-Clustering weist beispielsweise jeden der Scan-Flip-Flops dem zufälligen Zentroid mit dem nächstgelegenen Mittelwert zu. Als nächstes bestimmt das k-Mittel-Clustering neue Zentroiden für die Scanketten aus jedem der zuvor zugewiesenen Scan-Flip-Flops innerhalb jeder der Scanketten. Danach weist das k-Mittel-Clustering die Scan-Flip-Flops diesen neuen Zentroiden als ebenfalls in dem Scankettenreport identifiziert zu. Dieser Prozess des Bestimmens neuer Zentroiden für die Scanketten und Zuweisen der Scan-Flip-Flops an die neuen Zentroiden wird iterativ wiederholt bis die k-Mittel-Clustering-Zuweisungen derart konvergieren, dass jeder Scan-Flip-Flop zu der Scankette mit dem nächstgelegenen Mittelwert gehört. In manchen Situationen kann die Gruppierung und/oder die Reihenfolgefestlegung der Scan-Flip-Flops innerhalb der Scanketten einer oder mehreren Einschränkungen des elektronischen Designs unterliegen, wie vorstehend in 1 beschrieben. In diesen Situationen kann der beispielhafte Betriebssteuerablauf 200 basierend auf der Nähe zu den Zentroiden die Gruppierung der Scan-Flip-Flops innerhalb der Scanketten, wie durch das k-Mittel-Clustering bestimmt, weiter umverteilen, um ungefähr gleich große Cluster für die Scanketten zu erzeugen, um die Länge der Scanketten auszugleichen.
  • Bei Vorgang 212 führt der beispielhafte Betriebssteuerablauf 200 das Travelling Salesman Problem (TSP) der Scan-Flip-Flops innerhalb jeder der Scanketten durch, um eine Routingreihenfolge für die Scan-Flip-Flops zu bestimmen, wie vorstehend in 1 beschrieben. Das TSP ordnet iterativ eine Sequenz oder Reihenfolge für die Scan-Flip-Flops innerhalb jeder der Scanketten an, um einen oder mehrere Routingparameter, wie etwa Drahtlänge zum Beispiel, von einer oder mehreren der elektronischen Architekturdesignplatzierungen und/oder das eine oder die mehreren elektronischen Architekturdesignlayouts zu optimieren, um die Routingreihenfolge für die Scan-Flip-Flops zu bestimmen. Das TSP kann beispielsweise die Sequenz einer Scankette so einstellen, dass sie eine erste Sequenz eines ersten Scan-Flip-Flops ist, ein zweiter Scan-Flip-Flop und ein dritter Scan-Flip-Flop aus einer zweiten Sequenz des ersten Scan-Flip-Flops, der dritte Scan-Flip-Flop und der zweite Scan-Flip-Flop, wenn die Drahtlänge der ersten Sequenz kleiner ist als die Drahtlänge der zweiten Sequenz. Das TSP ordnet weiter die Sequenz oder Reihenfolgefestlegung für die Scan-Flip-Flops an bis der eine oder die mehreren Routingparameter optimiert ist bzw. sind.
  • Bei Vorgang 214 generiert der beispielhafte Betriebssteuerablauf 200 eine Engineering Change Order (ECO) für die eine oder mehreren elektronischen Architekturdesignplatzierungen und/oder das eine oder die mehreren Architekturdesignlayouts. In einer beispielhaften Ausführungsform repräsentiert das ECO eine textuelle Auflistung und/oder eine grafische Darstellung der Veränderungen, die an der einen oder den mehreren elektronischen Architekturdesignplatzierungen und/oder dem einen oder den mehreren elektronischen Architekturdesignlayouts erforderlich sind, damit die Gruppierung und die Reihenfolgefestlegung der Scan-Flip-Flops innerhalb der einen oder der mehreren elektronischen Architekturdesignplatzierungen und/oder dem einen oder den mehreren elektronischen Architekturdesignlayouts mit der Gruppierung und der Reihenfolge der Scan-Flip-Flops, wie von Vorgang 210 und Vorgang 212 bestimmt, konform sind.
  • BEISPIELHAFTE SOFTWAREEBENENBESCHREIBUNGEN HOHER EBENE DER SCAN-FLIP-FLOPS INNERHALB DER SCANKETTEN
  • 3 veranschaulicht ein Flussdiagramm eines beispielhaften Betriebs der elektronischen Designplattform beim Erzeugen von Softwareebenenbeschreibungen hoher Ebene von Scan-Flip-Flops innerhalb von Scanketten gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung. Die Offenbarung ist nicht auf diese Betriebsbeschreibung beschränkt. Vielmehr wird es dem Fachmann ersichtlich sein, dass andere Betriebssteuerungsabläufe unter den Umfang und Geist der vorliegenden Erfindung fallen. Die folgende Diskussion beschreibt einen beispielhaften Betriebssteuerablauf 300 zum Generieren einer Softwareebenenbeschreibung hoher Ebene der Scan-Flip-Flops innerhalb der Scanketten innerhalb der Elektronikschaltung der Elektronikvorrichtung. Der Betriebssteuerablauf 300 kann einen beispielhaften Betrieb für das Design-Engineering-Change-Order (ECO) Tool 110 beim Erzeugen der einen oder mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung gemäß der Gruppierung und der Reihenfolgefestlegung der Scan-Flip-Flops, die von dem ML-DFT-Lösungstool 106 wie vorstehend in 1 beschrieben bereitgestellt werden, und/oder den Betriebssteuerablauf 200, wie vorstehend in 2 beschrieben.
  • Bei Vorgang 320 identifiziert der Betriebssteuerablauf 300 die Scan-Flip-Flops innerhalb der Elektronikschaltung der Elektronikvorrichtung. In der in 3 veranschaulichten beispielhaften Ausführungsform identifiziert der Betriebssteuerablauf 300 die Scan-Flip-Flops aus der einen oder den mehreren Softwareebenenbeschreibungen hoher Ebene, die eine oder die mehreren elektronischen Architekturdesignplatzierungen und/oder das eine oder die mehreren Architekturdesignlayouts, wie vorstehend in 1 beschrieben. In einer beispielhaften Ausführungsform können die eine oder die mehreren Softwareebenenbeschreibungen hoher Ebene, die eine oder die mehreren elektronischen Architekturdesignplatzierungen und/oder die ein oder mehreren elektronischen Architekturdesignlayouts eine textuelle Darstellung der Elektronikschaltung repräsentieren, wie etwa eine Netzliste; ein Softwaremodell hoher Ebene der Elektronikschaltung unter Verwendung einer Softwaresprache hoher Ebene, wie etwa ein grafisches Designtool, beispielsweise C, System C, C++, LabVIEW und/oder MATLAB, eine universelle Systemdesignsprache, wie etwa SysML, SMDL und/oder SSDL, oder ein Softwareformat hoher Ebene, wie etwa Common Power Format (CPF), Unified Powert Format (UPF); oder eine bildbasierte Darstellung der Elektronikschaltung, wie etwa ein Computer-Aided-Design (CAD) Modell, um ein Beispiel zu geben.
  • Am Vorgang 304 eliminiert der Betriebssteuerablauf 300 Schaltungsverbindungen, die als alte Schaltungsverbindungen bezeichnet werden, für die in Vorgang 320 identifizierten Scan-Flip-Flops. Im Allgemeinen entfernt der Betriebssteuerablauf 300 die Reihenfolge der Scan-Flip-Flops aus der einen oder den mehreren Softwareebenenbeschreibungen hoher Ebene, die eine oder die mehreren elektronischen Architekturdesignplatzierungen und/oder das eine oder die mehreren Architekturdesignlayouts, wie vorstehend in 1 beschrieben. In der in 3 veranschaulichten beispielhaften Ausführungsform entfernt der Betriebssteuerablauf 300 die Gruppierung und Reihenfolgefestlegung der Scan-Flip-Flops, die in Vorgang 302 identifiziert wurden, innerhalb der einen oder der mehreren Softwareebenenbeschreibungen hoher Ebene der Elektronikschaltung, die von dem Synthesetool 102 bereitgestellt werden.
  • Am Vorgang 306 erzeugt der Betriebssteuerablauf 300 neue Schaltungsverbindungen für die Scan-Flip-Flops, die in Vorgang 302 identifiziert wurden, in der einen oder den mehreren Softwareebenenbeschreibungen hoher Ebene, der einen oder den mehreren elektronischen Architekturdesignplatzierungen und/oder dem einen oder den mehreren Architekturdesignlayouts, wie vorstehend in 1 beschrieben, gemäß der Gruppierung und/oder Reihenfolgefestlegung der Scan-Flip-Flops, die von dem ML-DFT-Lösungstool 106 und/oder dem Ausreißer-Filtertool 112, wie vorstehend in 1 beschrieben, bereitgestellt werden, und/oder den Betriebssteuerablauf 200, wie vorstehend in 2 beschrieben. In manchen Situationen kann der Betriebssteuerablauf 300 die neuen Schaltungsverbindungen für die in Vorgang 302 identifizierten Scan-Flip-Flops verifizieren. In einer beispielhaften Ausführungsform verifiziert der Betriebssteuerablauf 300 die neuen Schaltungsverbindungen durch Rückverfolgen der neuen Schaltungsverbindungen für die in Vorgang 302 aus der einen oder den mehreren Softwareebenenbeschreibungen, der einen oder den mehreren elektronischen Architekturdesignplatzierungen und/oder dem einen oder den mehreren Architekturdesignlayouts identifizierten Scan-Flip-Flops.
  • BEISPIELHAFTES FILTERN VON AUSREISSER-SCAN-FLIP-FLOPS INNERHALB DER SCANKETTEN
  • 4 veranschaulicht ein Flussdiagramm eines beispielhaften Betriebs der elektronischen Designplattform beim Filtern von Ausreißer-Scan-Flip-Flops innerhalb der Scanketten gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung. Die Offenbarung ist nicht auf diese Betriebsbeschreibung beschränkt. Vielmehr wird es dem Fachmann ersichtlich sein, dass andere Betriebssteuerungsabläufe unter den Umfang und Geist der vorliegenden Erfindung fallen. Die folgende Diskussion beschreibt einen beispielhaften Betriebssteuerablauf 400 zum Identifizieren eines oder mehrerer nicht optimaler Scan-Flip-Flops, die als Ausreißer bezeichnet werden, innerhalb der Scanketten innerhalb der Elektronikschaltung der Elektronikvorrichtung. Der Betriebssteuerablauf 400 kann einen beispielhaften Vorgang für das Ausreißer-Filtertool 112 bei der Durchführung der statistischen Kostenanalyse elektrischer Verbindungen zwischen den Scan-Flip-Flops innerhalb der Scanketten zum Identifizieren von einem oder mehreren nicht optimalen Scan-Flip-Flops, die als Ausreißer bezeichnet werden, innerhalb der Scanketten, wie vorstehend in 1 beschrieben.
  • An Vorgang 402 wählt der Betriebssteuerablauf 400 eine statistische Kostenfunktion unter einer L/D-Kostenfunktion, einer M/D-Kostenfunktion und/oder einer M/L-Kostenfunktion aus, um einige Beispiele zu nennen, um elektrische Verbindungen zwischen den Scan-Flip-Flops innerhalb der Scan-Ketten auszuwerten, um einen oder mehrere nicht optimale Scan-Flip-Flops, die als Ausreißer bezeichnet werden, zu identifizieren. In der in 4 veranschaulichten beispielhaften Ausführungsform analysiert die statistische Kostenfunktion Längen (L) der Scandrähte zwischen den Scan-Flip-Flops, Distanzen (D) zwischen den Scan-Flip-Flops und die Anzahl der Metallschichten (M), die zum Herstellen der Scanketten notwendig sind. Die L/D-Kostenfunktion repräsentiert ein Verhältnis einer Länge (L) eines Scandrahtes zwischen Scan-Flip-Flops und eine Distanz (D) zwischen den Scan-Flip-Flops. Die M/D-Kostenfunktion repräsentiert ein Verhältnis der Anzahl von Metallschichten (M), die benötigt wird, um die Scanketten und eine Distanz (D) zwischen Scan-Flip-Flops herzustellen. Die M/L-Kostenfunktion repräsentiert ein Verhältnis zwischen der Anzahl von Metallschichten (M), die benötigt wird, um die Scanketten und eine Länge (L) eines Scandrahtes zwischen Scan-Flip-Flops herzustellen.
  • Am Vorgang 404 berechnet der Betriebssteuerablauf 400 eine Kostenmetrik für die elektrischen Verbindungen zwischen den Scan-Flip-Flops innerhalb der Scanketten gemäß der statistischen Kostenfunktion, die im Vorgang 402 ausgewählt wurde. In der in 4 veranschaulichten beispielhaften Ausführungsform fährt der Betriebssteuerablauf 400, nachdem der Betriebssteuerablauf 400 die Kostenmetriken für die elektrischen Verbindungen zwischen den Scan-Flip-Flops innerhalb einer ersten Scankette berechnet hat, damit fort, die Kostenmetriken für elektrische Verbindungen zwischen den Scan-Flip-Flops innerhalb einer zweiten Scankette zu berechnen.
  • An Vorgang 406 identifiziert der Betriebssteuerablauf 400 eine oder mehrere nicht optimale elektrische Verbindungen zwischen den Scan-Flip-Flops innerhalb der Scanketten. In der in 4 veranschaulichten beispielhaften Ausführungsform vergleicht der Betriebssteuerablauf 400 die Kostenmetriken für die elektrischen Verbindungen mit einem Sperrungsschwellenwert, um die eine oder die mehreren nicht optimalen elektrischen Verbindungen zwischen den Scan-Flip-Flops innerhalb der Scanketten zu identifizieren. In einer beispielhaften Ausführungsform repräsentiert der Sperrungsschwellenwert eine oder mehrere Standardabweichungen von dem Mittelwert der Kostenmetriken. Der Sperrungsschwellenwert kann beispielsweise zwei Standardabweichungen, vier Standardabweichungen oder sechs Standardabweichungen von der mittleren Kostenmetrik für die Scan-Flip-Flops repräsentieren. Der Betriebssteuerablauf 400 identifiziert die elektrischen Verbindungen als die eine oder die mehreren nicht optimalen elektrischen Verbindungen, wenn ihre entsprechende Kostenmetrik größer ist als der Sperrungsschwellenwert.
  • Am Vorgang 408 identifiziert der Betriebssteuerablauf 400 ein oder mehrere Scan-Flip-Flops, die als nicht optimale Scan-Flip-Flops bezeichnet werden, innerhalb der Scanketten, die den in Vorgang 406 identifizierten elektrischen Verbindungen entsprechen. In der in 4 veranschaulichten beispielhaften Ausführungsform identifiziert der Betriebssteuerablauf 400 Scan-Flip-Flops, die als nicht optimale Scan-Flip-Flops bezeichnet werden, innerhalb der Scanketten, die beispielsweise in der Entfernung am nächsten liegen, die den nicht optimalen Verbindungen entsprechen, die in Vorgang 406 aus der einen oder den mehreren elektronischen Architekturdesignplatzierungen und/oder dem einen oder den mehreren elektronischen Architekturdesignlayouts identifiziert wurden. Der Betriebssteuerablauf 400 kann eine Entfernungsmetrik nutzen, wie etwa eine euklidische Entfernung oder eine Manhattan-Distanz, um nur einige Beispiele zu nennen, um Entfernungen zwischen den Scan-Flip-Flops innerhalb der Scanketten und die nicht optimalen elektrischen Verbindungen zu bestimmen.
  • Bei Schritt 410 stellt der Betriebssteuerablauf 400 die Gruppierung der Scan-Flip-Flops aus der einen oder den mehreren elektronischen Architekturdesignplatzierungen und/oder dem einen oder den mehreren Architekturdesignlayouts ein. Der Betriebssteuerablauf 400 kann beispielsweise die in Vorgang 408 identifizierten Scan-Flip-Flops derart gruppieren, dass diese nicht optimalen Scan-Flip-Flops ähnliche Eigenschaften, Parameter oder Attribute, wie andere Scan-Flip-Flops innerhalb ihrer jeweiligen Scanketten teilen. Die Eigenschaften, Parameter oder Attribute können Entfernungen zwischen den Scan-Flip-Flops innerhalb der Scanketten enthalten, Dichte der Scan-Flip-Flops innerhalb der Scanketten und/oder statistische Verteilungen, wie etwa mittlere Entfernungen, zum Beispiel, der Scan-Flip-Flops innerhalb der Scanketten.
  • BEISPIELHAFTES COMPUTERSYSTEM FÜR IMPLEMENTIERUNG DER BEISPIELHAFTEN DESIGN-UMGEBUNG
  • 5 veranschaulicht ein Blockdiagramm eines beispielhaften Computersystems für das Implementieren der beispielhaften Designumgebung gemäß einer beispielhaften Ausführungsform der vorliegenden Offenbarung. Es kann ein Computersystem 500 zum Implementieren der elektronischen Designplattform 100, wie vorstehend in 1 beschrieben, verwendet werden. In manchen Situationen können jedoch mehr als ein Computersystem 500 für die elektronische Designplattform 100 verwendet werden. Nach dem Lesen dieser Beschreibung wird es dem Fachmann offensichtlich sein, wie sich Ausführungsformen unter Verwendung anderer Computersysteme und/oder Computerarchitekturen implementieren lassen.
  • Das Computersystem 500 enthält einen oder mehrere Prozessoren 504, auch als zentrale Verarbeitungseinheiten bzw. Central Processing Units (CPU) bezeichnet, um das Synthesetool 102, das Platzierungs- und Routingtool 104, das Maschinenlernen (ML) Design-for-Test (DFT) Lösungstool 106, das DFT-Spezifikationstool 108, das Design-Engineering-Change-Order (ECO) Tool 110, das Ausreißer-Filtertool 112, das Simulationstool 114 und/oder das Verifikationstool 116, wie vorstehend in 1 beschrieben, auszuführen. Der eine oder die mehreren Prozessoren 504 können mit einer Kommunikationsinfrastruktur oder Bus 506 verbunden sein. In einer beispielhaften Ausführungsform können einer oder mehrere der einen oder mehreren Prozessoren 504 als eine Grafikverarbeitungseinheit (Graphics Processing Unit; GPU) implementiert sein. Die GPU repräsentiert eine spezialisierte Elektronikschaltung, die ausgelegt ist, mathematisch intensive Anwendungen schnell auf Elektronikvorrichtungen zu verarbeiten. Die GPU kann eine hochparallele Struktur aufweisen, die für paralleles Verarbeiten großer Datenblöcke effizient ist, wie etwa mathematisch intensive Daten, die für Computergrafikanwendungen, Bilder und Videos üblich sind.
  • Das Computersystem 500 enthält auch Benutzereingabe-/Ausgabevorrichtung(en) 503, wie etwa Monitore, Tastaturen, Zeigevorrichtungen usw., die mit Kommunikationsinfrastruktur 506 über Benutzereingabe-/Ausgabeschnittstelle(n) 502 kommunizieren.
  • Das Computersystem 500 enthält auch einen Haupt- oder Primärspeicher 508, wie etwa einen Direktzugriffsspeicher (RAM) zum Beispiel. Der Hauptspeicher 508 kann eine oder mehrere Zwischenspeicherebenen enthalten. In dem Hauptspeicher 508 sind Steuerlogik (d.h. Computersoftware) und/oder Daten gespeichert, wie etwa das Synthesetool 102, das Platzierungs- und Routingtool 104, das Maschinenlernen (ML) Design-for-Test (DFT) Lösungstool 106, das DFT-Spezifikationstool 108, das Design-Engineering-Change-Order (ECO) Tool 110, das Ausreißer-Filtertool 112, das Simulationstool 114 und/oder das Verifikationstool 116.
  • Das Computersystem 500 kann auch eine oder mehrere Sekundärspeichervorrichtungen oder Speicher 510 enthalten, um das Synthesetool 102, das Platzierungs- und Routingtool 104, das Maschinenlernen (ML) Design-for-Test (DFT) Lösungstool 106, das DFT-Spezifikationstool 108, das Design-Engineering-Change-Order (ECO) Tool 110, das Ausreißer-Filtertool 112, das Simulationstool 114 und/oder das Verifikationstool 116 zu speichern. Die eine oder die mehreren Sekundärspeichervorrichtungen oder Speicher 510 können beispielsweise ein Festplattenlaufwerk und/oder eine Wechselspeicherlaufwerk oder Laufwerk 514 enthalten. Das Wechselspeicherlaufwerk 514 kann ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein Kompaktplattenlaufwerk, eine optische Speichervorrichtung, Bandsicherungsvorrichtung und/oder eine andere Speichervorrichtung/-laufwerk sein. Das Wechselspeicherlaufwerk 514 kann mit einer Wechselspeichereinheit 518 interagieren. Die Wechselspeichereinheit 518 enthält eine computerverwendbare oder -lesbare Speichervorrichtung mit darauf gespeicherter Computersoftware (Steuerlogik) und/oder Daten. Die Wechselspeichereinheit 518 kann eine Diskette, Magnetband, Compact Disk, DVD, optische Speicherplatte und/oder eine andere Speichervorrichtung für Computerdaten sein. Das Wechselspeicherlaufwerk 514 liest aus und/oder schreibt auf Wechselspeichereinheit 518 auf eine weithin bekannte Weise.
  • Gemäß einer beispielhaften Ausführungsform kann die eine oder mehreren Sekundärspeichervorrichtungen oder Speicher 510 andere Mittel, Instrumentalitäten oder andere Ansätze enthalten, die es ermöglichen, dass auf Computerprogramme und/oder andere Anweisungen und/oder Daten durch Computersystem 500 zugegriffen wird. Solche Mittel, Instrumentalitäten oder andere Ansätze können beispielsweise eine Wechselspeichereinheit 522 und eine Schnittstelle enthalten. Beispiele der Wechselspeichereinheit 522 und der Schnittstelle 520 können eine Programmkassette und Kassettenschnittstelle (wie etwa jene, die sich in Videospielvorrichtungen finden), einen entfernbaren Speicherchip (wie etwa ein EPROM oder PROM) und zugeordneten Sockel, einen Speicherstick und USB-Port, eine Speicherkarte und zugehörigen Speicherkartenschlitz und/oder andere entfernbare Speichereinheiten und zugeordnete Schnittstellen enthalten.
  • Das Computersystem 500 kann ferner eine Kommunikations- oder Netzwerkschnittstelle 524 enthalten. Die Kommunikations- oder Netzwerkschnittstelle 524 befähigt das Computersystem 500 mit jedweder Kombination dezentraler Vorrichtungen, dezentraler Netzwerke, dezentraler Entitäten usw. (einzeln oder gemeinsam durch Bezugszeichen 528 referenziert) zu kommunizieren und zu interagieren. Die Kommunikations- oder Netzwerkschnittstelle 524 kann beispielsweise dem Computersystem 500 ermöglichen, mit den dezentralen Vorrichtungen 528 über einen Kommunikationsweg 526, der verdrahtet und/oder drahtlos ein kann, und der jedwede Kombination von LANs, WANs, dem Internet usw. enthalten kann, zu kommunizieren. Steuerlogik und/oder Daten können zu und von dem Computersystem 500 über Kommunikationsweg 526 übertragen werden.
  • In einer Ausführungsform wird eine greifbare Einrichtung oder ein Herstellungsartikel, der ein greifbares computerverwendbares oder -lesbares Medium mit darauf gespeicherter Steuerlogik (Software) umfasst, hierin auch als ein Computerprogrammprodukt oder eine Programmspeichervorrichtung bezeichnet. Dies umfasst, ist aber nicht beschränkt auf, das Computersystem 500, den Hauptspeicher 508, den Sekundärspeicher 510 und die Wechselspeichereinheiten 518 und 522 sowie greifbare Herstellungsartikel, die jedwede Kombination des Vorstehenden verkörpern. Solche Steuerlogik veranlasst, wenn sie von einer oder mehreren Datenverarbeitungsvorrichtungen (wie etwa Computersystem 500) ausgeführt wird, dass diese Datenverarbeitungsvorrichtungen wie hierin beschrieben arbeiten.
  • Basierend auf den in dieser Offenbarung enthaltenen Lehren ist es dem Fachmann offensichtlich, wie sich die Offenbarung unter Verwendung anderer Datenverarbeitungsvorrichtungen, Computersystemen und/oder Computerarchitekturen, als die in 5 gezeigten, herstellen und verwenden lässt. Insbesondere können Ausführungsformen mit anderen Software-, Hardware- und/oder Betriebssystemimplementierungen arbeiten, als jenen, die hierin beschrieben sind.
  • SCHLUSSFOLGERUNG
  • Die vorstehende ausführliche Beschreibung offenbart ein Computersystem zum Gruppieren und der Reihenfolgefestlegung von Scan-Flip-Flops innerhalb einer Elektronikschaltung einer Elektronikvorrichtung. Das Computersystem enthält einen Speicher und einen Prozessor. Der Speicher speichert eine oder mehrere Anweisungen. Der Prozessor führt die eine oder die mehreren Anweisungen aus, wobei die eine oder die mehreren Anweisungen, wenn sie von dem Prozessor ausgeführt wird bzw. werden, den Prozessor konfiguriert bzw. konfigurieren: eine Clusteranalyse der Scan-Flip-Flops durchzuführen, um die Scan-Flip-Flops in Scanketten zu gruppieren; und eine Routinganalyse der Scan-Flip-Flops innerhalb jeder Scankette durchzuführen, um Routingreihenfolgen für die Scan-Flip-Flops zu bestimmen.
  • Die vorstehende ausführliche Beschreibung offenbart zusätzlich ein Computersystem zum Optimieren einer Gruppierung von Scan-Flip-Flops in Scanketten innerhalb einer Elektronikschaltung einer Elektronikvorrichtung. Das Computersystem enthält einen Speicher und einen Prozessor. Der Speicher speichert eine oder mehrere Anweisungen. Der Prozessor führt die eine oder mehreren Anweisungen aus, wobei die eine oder die mehreren Anweisungen, wenn sie von dem Prozessor ausgeführt wird bzw. werden, den Prozessor konfiguriert bzw. konfigurieren: eine statistische Kostenanalyse der Eigenschaften, Parameter oder Attribute von elektrischen Verbindungen zwischen den Scan-Flip-Flops durchzuführen, um eine nicht optimale elektrische Verbindungen unter den elektrischen Verbindungen zu identifizieren; einen Scan-Flip-Flop unter den Scan-Flip-Flops zu identifizieren, der der nicht optimalen elektrischen Verbindung entspricht, wobei der Scan-Flip-Flop aus einer ersten Gruppe von Scan-Flip-Flops unter den Scan-Flip-Flops stammt, die gruppiert sind, um eine erste Scankette unter den Scanketten zu bilden; den Scan-Flip-Flop von der ersten Gruppe von Scan-Flip-Flops zu einer zweiten Gruppe von Scan-Flip-Flops unter den Scan-Flip-Flops zu bewegen, die gruppiert sind, um eine zweite Scankette aus den Scanketten zu bilden.
  • Die vorstehende ausführliche Beschreibung offenbart ferner ein Verfahren zum Gruppieren und der Reihenfolgefestlegung von Scan-Flip-Flops innerhalb einer elektronischen Schaltung einer elektronischen Vorrichtung. Das Verfahren beinhaltet: Durchführen einer Clusteranalyse der Scan-Flip-Flops zum Gruppieren der Scan-Flip-Flops in Scanketten; Durchführen einer Routinganalyse der Scan-Flip-Flops innerhalb jeder Scankette unter den Scanketten, um elektrische Verbindungen für die Scan-Flip-Flops zu bestimmen; Durchführen einer statistischen Kostenanalyse der Eigenschaften, Parameter oder Attribute der elektrischen Verbindungen zwischen den Scan-Flip-Flops zum Identifizieren einer nicht optimalen elektrischen Verbindung unter den elektrischen Verbindungen; Identifizieren eines Scan-Flip-Flops unter den Scan-Flip-Flops, der der nicht optimalen elektrischen Verbindung entspricht, wobei der Scan-Flip-Flop aus einer ersten Gruppe von Scan-Flip-Flops unter den Scan-Flip-Flops stammt, die gruppiert sind, um eine erste Scankette unter den Scanketten zu bilden; und Bewegen des Scan-Flip-Flops aus der ersten Gruppe von Scan-Flip-Flops zu einer zweiten Gruppe von Scan-Flip-Flops unter den Scan-Flip-Flops, die gruppiert sind, um eine zweite Scankette unter den Scanketten zu bilden.
  • Die vorstehende ausführliche Beschreibung gibt einen Überblick über die Merkmale mehrerer Ausführungsführungsformen, so dass der Fachmann besser die Aspekte der vorliegenden Offenbarung verstehen kann. Der Fachmann wird zu würdigen wissen, dass sich die vorliegende Offenbarung ohne weiteres als Grundlage für den Entwurf oder die Modifikation anderer Prozesse und Strukturen zur Ausführung des gleichen Zweckes und/oder dem Erreichen der gleichen Vorteile der hierin vorgestellten Ausführungsformen verwenden lässt. Der Fachmann sollte auch erkennen, dass solche gleichwertigen Konstruktionen nicht vom Geist und Umfang der vorliegenden Offenbarung abweichen, und dass sich diverse Veränderungen, Substitutionen und Änderungen daran vornehmen lassen, ohne dass vom Geist und Umfang der vorliegenden Offenbarung abgewichen werden würde.
  • 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/690601 [0001]
  • Zitierte Nicht-Patentliteratur
    • ISO 10303-210 [0018]

Claims (20)

  1. Computersystem zum Gruppieren und zur Reihenfolgefestlegung einer Vielzahl von Scan-Flip-Flops innerhalb einer Elektronikschaltung einer Elektronikvorrichtung, wobei das Computersystem umfasst: einen Speicher, der eine oder mehrere Anweisungen speichert; und einen Prozessor, der konfiguriert ist, die eine oder die mehreren Anweisungen auszuführen, wobei die eine oder die mehreren Anweisungen, wenn sie von dem Prozessor ausgeführt wird bzw. werden, den Prozessor konfiguriert bzw. konfigurieren: eine Clusteranalyse der Vielzahl von Scan-Flip-Flops durchzuführen, um die Vielzahl von Scan-Flip-Flops in eine Vielzahl von Scanketten zu gruppieren; und eine Routinganalyse der Scan-Flip-Flops innerhalb jeder Scankette der Vielzahl von Scanketten durchzuführen, um eine Vielzahl von Routingreihenfolgen für die Vielzahl von Scan-Flip-Flops zu bestimmen.
  2. Computersystem nach Anspruch 1, wobei die eine oder die mehreren Anweisungen, wenn sie von dem Prozessor ausgeführt werden, den Prozessor ferner konfigurieren, eine Vielzahl von Positionen der Vielzahl von Scan-Flip-Flops aus einer elektronischen Architekturdesignplatzierung für die Elektronikschaltung oder ein elektronisches Architekturdesignlayout der Elektronikschaltung zu extrahieren.
  3. Computersystem nach Anspruch 1 oder 2, wobei die Clusteranalyse dazu eingerichtet ist, die Vielzahl von Scan-Flip-Flops derart zu gruppieren, dass Scan-Flip-Flops innerhalb jeder Scankette der Vielzahl von Scan-Flip-Flops ähnliche Eigenschaften, Parameter oder Attribute im Vergleich zu Eigenschaften, Parametern oder Attributen von Scan-Flip-Flops innerhalb anderer Scanketten der Vielzahl von Scanketten aufweisen.
  4. Computersystem nach einem der vorstehenden Ansprüche, wobei die Eigenschaften, Parameter oder Attribute umfassen: eine Vielzahl von Entfernungen zwischen der Vielzahl von Scan-Flip-Flops innerhalb der Vielzahl von Scanketten; eine Vielzahl von Dichten der Scan-Flip-Flops innerhalb der Vielzahl von Scan-Flip-Flops innerhalb der Vielzahl von Scanketten, oder eine Vielzahl statistischer Verteilungen der Scan-Flip-Flops innerhalb der Vielzahl von Scan-Flip-Flops innerhalb der Vielzahl von Scanketten.
  5. Computersystem nach einem der vorstehenden Ansprüche, wobei die eine oder die mehreren Anweisungen, wenn sie von dem Prozessor ausgeführt werden, den Prozessor ferner konfigurieren, einen Scankettenreport zu empfangen, der identifiziert: eine Anzahl von Scanketten innerhalb der Vielzahl von Scanketten; und eine Anzahl von Scan-Flip-Flops für Scanketten aus der Vielzahl von Scanketten.
  6. Computersystem nach einem der vorstehenden Ansprüche, wobei die Clusteranalyse umfasst: ein konnektivitätsbasiertes Clustering; ein zentroidbasiertes Clustering; ein verteilungsbasiertes Clustering; oder ein dichtebasiertes Clustering.
  7. Computersystem nach einem der vorstehenden Ansprüche, wobei die Routinganalyse ein kürzester Weg Problem umfasst.
  8. Computersystem nach einem der vorstehenden Ansprüche, wobei die Routinganalyse dazu eingerichtet ist, eine Reihenfolge für Scan-Flip-Flops innerhalb jeder Scankette der Vielzahl von Scan-Flip-Flops anzuordnen, um einen oder mehrere Routingparameter für jede Scankette unter der Vielzahl von Scanketten zu optimieren.
  9. Computersystem nach Anspruch 8, wobei der eine oder die mehreren Routingparameter umfasst bzw. umfassen: eine Drahtlänge zwischen Scan-Flip-Flops innerhalb jeder Scankette der Vielzahl von Scan-Flip-Flops.
  10. Computersystem nach einem der vorstehenden Ansprüche, wobei die eine oder die mehreren Anweisungen, wenn sie von dem Prozessor ausgeführt wird bzw. werden, den Prozessor ferner konfiguriert bzw. konfigurieren, einen Scanclusterreport bereitzustellen, der eine Gruppierung der Vielzahl von Scan-Flip-Flops in die Vielzahl von Scanketten und Routingreihenfolgen für die Vielzahl von Scan-Flip-Flops innerhalb jeder Scankette der Vielzahl von Scanketten beschreibt.
  11. Computersystem zum Optimieren einer Gruppierung einer Vielzahl von Scan-Flip-Flops in eine Vielzahl von Scanketten innerhalb einer Elektronikschaltung einer Elektronikvorrichtung, wobei das Computersystem umfasst: einen Speicher, der eine oder mehrere Anweisungen speichert; und einen Prozessor, der konfiguriert ist, die eine oder die mehreren Anweisungen auszuführen, wobei die eine oder die mehreren Anweisungen, wenn sie von dem Prozessor ausgeführt wird bzw. werden, den Prozessor konfiguriert bzw. konfigurieren: eine statistische Kostenanalyse einer Vielzahl von Eigenschaften, Parametern oder Attributen einer Vielzahl elektrischer Verbindungen zwischen der Vielzahl von Scan-Flip-Flops durchzuführen, um eine nicht optimale elektrische Verbindung unter der Vielzahl von elektrischen Verbindungen zu identifizieren; einen Scan-Flip-Flop unter der Vielzahl von Scan-Flip-Flops zu identifizieren, der der nicht optimalen elektrischen Verbindung entspricht, wobei der identifizierte Scan-Flip-Flop aus einer ersten Gruppe von Scan-Flip-Flops der Vielzahl von Scan-Flip-Flops ist, die gruppiert sind, um eine erste Scankette unter der Vielzahl von Scanketten zu bilden; und den identifizierten Scan-Flip-Flop von der ersten Gruppe von Scan-Flip-Flops zu einer zweiten Gruppe von Scan-Flip-Flops der Vielzahl von Scan-Flip-Flops, die gruppiert sind, eine zweite Scankette der Vielzahl von Scanketten zu bilden, zu bewegen.
  12. Computersystem nach Anspruch 11, wobei die Vielzahl von Eigenschaften, Parametern oder Attributen der Vielzahl von elektrischen Verbindungen umfasst: eine Vielzahl von Längen (L) einer Vielzahl von Scandrähten zwischen der Vielzahl von Scan-Flip-Flops; eine Vielzahl von Distanzen (D) zwischen der Vielzahl von Scan-Flip-Flops, oder eine Anzahl von Metallschichten (M), die benötigt werden, um die Vielzahl von Scanketten herzustellen.
  13. Computersystem nach Anspruch 12, wobei die statistische Kostenanalyse umfasst: eine L/D-Kostenanalyse, eine M/D-Kostenanalyse, oder eine M/L-Kostenanalyse.
  14. Computersystem nach einem der Ansprüche 11 bis 13, wobei die eine oder die mehreren Anweisungen, wenn sie von dem Prozessor ausgeführt wird bzw. werden, den Prozessor konfiguriert bzw. konfigurieren, die statistische Kostenanalyse der Vielzahl von Eigenschaften, Parametern oder Attributen mit einem Sperrungsschwellenwert zu vergleichen und die nicht optimale elektrische Verbindung zu identifizieren, deren statistische Kostenanalyse größer oder gleich dem Sperrungsschwellenwert ist.
  15. Computersystem nach Anspruch 14, wobei der Sperrungsschwellenwert einer oder mehreren Standardabweichungen von einem Mittelwert der statistischen Kostenanalyse der Vielzahl von Eigenschaften, Parametern oder Attributen entspricht.
  16. Computersystem nach einem der Ansprüche 11 bis 15, wobei die eine oder die mehreren Anweisungen, wenn sie von dem Prozessor ausgeführt werden, den Prozessor ferner konfiguriert bzw. konfigurieren, eine elektronische Architekturdesignplatzierung für die Vielzahl von Scan-Flip-Flops zu empfangen, wobei die elektronische Architekturdesignplatzierung eine logische Platzierung der Vielzahl von Scan-Flip-Flops auf einer elektronischen Designfläche repräsentiert.
  17. Verfahren zum Gruppieren und zur Reihenfolgefestlegung einer Vielzahl von Scan-Flip-Flops innerhalb einer Elektronikschaltung einer Elektronikvorrichtung, wobei das Verfahren umfasst: Durchführen einer Clusteranalyse der Vielzahl von Scan-Flip-Flops, um die Vielzahl von Scan-Flip-Flops in eine Vielzahl von Scanketten zu gruppieren; Durchführen einer Routinganalyse von Scan-Flip-Flops innerhalb jeder Scankette der Vielzahl von Scanketten, um eine Vielzahl von elektrischen Verbindungen für die Vielzahl von Scan-Flip-Flops zu bestimmen; Durchführen einer statistischen Kostenanalyse einer Vielzahl von Eigenschaften, Parametern oder Attributen der Vielzahl elektrischer Verbindungen zwischen der Vielzahl von Scan-Flip-Flops, um eine nicht optimale Verbindung unter der Vielzahl von elektrischen Verbindungen zu identifizieren; Identifizieren eines Scan-Flip-Flop unter der Vielzahl von Scan-Flip-Flops, der der nicht optimalen elektrischen Verbindung entspricht, wobei der identifizierte Scan-Flip-Flop aus einer ersten Gruppe von Scan-Flip-Flops der Vielzahl von Scan-Flip-Flops ist, die gruppiert sind, um eine erste Scankette der Vielzahl von Scanketten zu bilden; und Bewegen des identifizierten Scan-Flip-Flops von der ersten Gruppe von Scan-Flip-Flops zu einer zweiten Gruppe von Scan-Flip-Flops der Vielzahl von Scan-Flip-Flops, die gruppiert sind, um eine zweite Scankette der Vielzahl von Scanketten zu bilden.
  18. Verfahren nach Anspruch 17, wobei das Durchführen der Clusteranalyse umfasst: Gruppieren der Vielzahl von Scan-Flip-Flops derart, dass Scan-Flip-Flops innerhalb jeder Scankette der Vielzahl von Scan-Flip-Flops ähnliche Eigenschaften, Parameter oder Attribute im Vergleich zu Eigenschaften, Parametern oder Attributen von Scan-Flip-Flops innerhalb anderer Scanketten der Vielzahl von Scanketten aufweisen.
  19. Verfahren nach Anspruch 17 oder 18, wobei das Durchführen der Routinganalyse umfasst: Anordnen einer Reihenfolge für Scan-Flip-Flops innerhalb jeder Scankette der Vielzahl von Scan-Flip-Flops, um einen oder mehrere Routingparameter für jede Scankette der Vielzahl von Scanketten zu optimieren.
  20. Verfahren nach einem der Ansprüche 17 bis 19, wobei das Identifizieren umfasst: Vergleichen der statistischen Kostenanalyse der Vielzahl von Eigenschaften, Parametern oder Attributen mit einem Sperrungsschwellenwert; und Identifizieren der nicht optimalen elektrischen Verbindung, deren statistische Kostenanalyse größer oder gleich dem Sperrungsschwellenwert ist.
DE102019116870.8A 2018-06-27 2019-06-24 Plattform zur befähigung von scan-design auf basis von maschinellem lernen Pending DE102019116870A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862690601P 2018-06-27 2018-06-27
US62/690,601 2018-06-27
US16/173,448 2018-10-29
US16/173,448 US11113444B2 (en) 2018-06-27 2018-10-29 Machine-learning based scan design enablement platform

Publications (1)

Publication Number Publication Date
DE102019116870A1 true DE102019116870A1 (de) 2020-01-02

Family

ID=68886235

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019116870.8A Pending DE102019116870A1 (de) 2018-06-27 2019-06-24 Plattform zur befähigung von scan-design auf basis von maschinellem lernen

Country Status (5)

Country Link
US (1) US11113444B2 (de)
KR (1) KR102227683B1 (de)
CN (1) CN110647901B (de)
DE (1) DE102019116870A1 (de)
TW (1) TWI715945B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10761131B1 (en) * 2018-09-25 2020-09-01 Cadence Design Systems, Inc. Method for optimally connecting scan segments in two-dimensional compression chains
TWI684987B (zh) * 2019-05-31 2020-02-11 創意電子股份有限公司 電路校正系統與增加掃描測試涵蓋率的方法
KR102279047B1 (ko) * 2020-03-31 2021-07-16 연세대학교 산학협력단 필터를 이용한 스캔 체인 고장 진단 방법 및 그를 위한 장치
US11055461B1 (en) 2020-05-13 2021-07-06 International Business Machines Corporation Designing semiconductor circuit test elements
CN115803642A (zh) 2020-07-09 2023-03-14 特克特朗尼克公司 自动协助电路验证
US11507721B2 (en) * 2020-09-25 2022-11-22 International Business Machines Corporation Scan chain wirelength optimization using Q-learning based reinforcement learning
US11347920B2 (en) * 2020-10-21 2022-05-31 Taiwan Semiconductor Manufacturing Company, Ltd. Circuit synthesis optimization for implements on integrated circuit
KR102583916B1 (ko) * 2021-10-26 2023-09-26 연세대학교 산학협력단 저전력 테스트를 위한 스캔 상관관계 기반 스캔 클러스터 리오더링 방법 및 장치

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282506B1 (en) * 1996-02-20 2001-08-28 Matsushita Electric Industrial Co., Ltd. Method of designing semiconductor integrated circuit
US5983376A (en) * 1997-09-24 1999-11-09 Sun Microsystems, Inc. Automated scan insertion flow for control block design
US6305004B1 (en) * 1999-08-31 2001-10-16 International Business Machines Corporation Method for improving wiring related yield and capacitance properties of integrated circuits by maze-routing
JP4887552B2 (ja) * 2000-07-04 2012-02-29 富士通セミコンダクター株式会社 Lsiチップのレイアウト設計方法
JP2002083000A (ja) * 2000-09-06 2002-03-22 Fujitsu Ltd 論理回路設計方法及び論理回路
US7139992B2 (en) * 2000-12-01 2006-11-21 Sun Microsystems, Inc. Short path search using tiles and piecewise linear cost propagation
TW200502805A (en) 2003-05-09 2005-01-16 Incentia Design Systems Corp Timing based scan chain implementation in an IC design
JP2005032102A (ja) * 2003-07-09 2005-02-03 Matsushita Electric Ind Co Ltd スキャンテスト設計方法、スキャンテスト回路、スキャンフリップフロップ回路、スキャンテスト回路挿入用cadプログラム、大規模集積回路及び携帯デジタル機器
FR2857535A1 (fr) * 2003-07-09 2005-01-14 Atmel Corp Procede et systeme pour brouiller le contenu d'une cellule dans un circuit integre.
JP2005276069A (ja) 2004-03-26 2005-10-06 Nec Electronics Corp テスト容易化回路の設計システム、設計方法及びプログラム
US20050273683A1 (en) * 2004-06-07 2005-12-08 Logicvision, Inc. Insertion of embedded test in RTL to GDSII flow
JP2006163688A (ja) 2004-12-06 2006-06-22 Fujitsu Ltd スキャンチェーンの形成方法および集積回路の試験方法
US7555688B2 (en) * 2005-04-26 2009-06-30 Lsi Logic Corporation Method for implementing test generation for systematic scan reconfiguration in an integrated circuit
US7949971B2 (en) * 2007-03-27 2011-05-24 International Business Machines Corporation Method and apparatus for on-the-fly minimum power state transition
JP2009038072A (ja) * 2007-07-31 2009-02-19 Nec Electronics Corp 半導体集積回路及びその開発方法
US7996805B2 (en) * 2008-01-08 2011-08-09 National Semiconductor Corporation Method of stitching scan flipflops together to form a scan chain with a reduced wire length
US8584073B2 (en) * 2008-07-21 2013-11-12 Synopsys, Inc. Test design optimizer for configurable scan architectures
JP2010087244A (ja) * 2008-09-30 2010-04-15 Oki Semiconductor Co Ltd 半導体集積回路、半導体集積回路のレイアウト方法、及び半導体集積回路のレイアウトプログラム
JP2010157009A (ja) 2008-12-26 2010-07-15 Renesas Technology Corp Edaツール、半導体装置およびスキャンチェイン構成方法
JP5293461B2 (ja) * 2009-07-03 2013-09-18 富士通セミコンダクター株式会社 スキャンチェーンの生成方法、スキャンチェーンの生成プログラムおよび集積回路
US9599671B2 (en) * 2011-02-24 2017-03-21 New York University Architecture, system, method, and computer-accessible medium for partial-scan testing
CN102323538B (zh) * 2011-07-08 2013-09-11 哈尔滨工业大学 基于改进测试向量集的部分扫描的扫描单元的设计方法
KR20130031036A (ko) * 2011-09-20 2013-03-28 삼성전자주식회사 Eco 논리 셀 및 eco 논리 셀을 이용한 설계 변경 방법
US9336144B2 (en) * 2013-07-25 2016-05-10 Globalfoundries Inc. Three-dimensional processing system having multiple caches that can be partitioned, conjoined, and managed according to more than one set of rules and/or configurations
US9166595B2 (en) * 2013-12-27 2015-10-20 Freescale Semiconductor, Inc Configurable flip-flop circuit
US9535121B1 (en) * 2015-04-13 2017-01-03 Qualcomm Incorporated Methods and apparatuses to enhance timing delay fault coverage with test logic that includes partitions and scan flip-flops
JP2017106826A (ja) 2015-12-10 2017-06-15 株式会社リコー スキャンテスト回路生成装置およびスキャンテスト回路生成方法
US9953121B2 (en) * 2016-05-03 2018-04-24 International Business Machines Corporation Accommodating engineering change orders in integrated circuit design
US10539617B2 (en) * 2016-06-02 2020-01-21 Taiwan Semiconductor Manufacturing Co., Ltd. Scan architecture for interconnect testing in 3D integrated circuits
CN106709141A (zh) * 2016-11-19 2017-05-24 天津大学 基于整数规划模型的部分扫描触发器选择优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO 10303-210

Also Published As

Publication number Publication date
TW202001630A (zh) 2020-01-01
CN110647901B (zh) 2022-05-24
US20200004913A1 (en) 2020-01-02
KR102227683B1 (ko) 2021-03-16
US11113444B2 (en) 2021-09-07
CN110647901A (zh) 2020-01-03
KR20200001517A (ko) 2020-01-06
TWI715945B (zh) 2021-01-11

Similar Documents

Publication Publication Date Title
DE102019116870A1 (de) Plattform zur befähigung von scan-design auf basis von maschinellem lernen
US20200272777A1 (en) Machine-Learning Design Enablement Platform
DE60009122T2 (de) Mustererkennung für den datenaustausch zwischen rechnergestützten entwurfssystemen
TWI683228B (zh) 開發電子裝置的電子架構設計的系統、開發多個標準電路元件庫的方法及將電子裝置製作至半導體基底上的系統
US8037436B2 (en) Circuit verification apparatus, a method of circuit verification and circuit verification program
CN103093023A (zh) 计算机辅助设计模型分析系统
US11250196B2 (en) Conductor subdivision in physical integrated circuit layout for parasitic extraction
CN115169277A (zh) 一种基于版图文件建模方法、系统、设备以及存储介质
US20090254873A1 (en) Circuit board analyzer and analysis method
JP5978595B2 (ja) Lsiのレイアウトパターン表示装置および表示方法
DE102016104839A1 (de) Layoutüberprüfungssystem und -verfahren
US11704472B2 (en) Standard cells and variations thereof within a standard cell library
CN111611761B (zh) 生成电路版图图案的方法、设备和计算机可读存储介质
US10163787B2 (en) Semiconductor structure
Maynard et al. Measurement and reduction of critical area using Voronoi diagrams
JP3664934B2 (ja) 半導体集積回路解析装置とその解析方法並びに解析方法を記録した記録媒体
CN112613209A (zh) 一种基于有限元模型的全六面体单元加密方法
JP2023517549A (ja) 検査対象の欠陥パターンの抽出装置、抽出方法及び記憶媒体
US20140142896A1 (en) System and method of refining a topological indexed mesh
Kahng et al. Evaluation of placer suboptimality via zero-change netlist transformations
JP4159496B2 (ja) 回路図作成装置および回路図作成方法とそのプログラム、該プログラムを格納した記録媒体
JP2008097541A (ja) レイアウト検証方法およびレイアウト検証装置
DE102017123446A1 (de) Maschinenlernende Entwurfsplattform
DE112021007684T5 (de) Störungsprüfvorrichtung
Gómez-Pau et al. Analog circuits testing using digitally coded indirect measurements

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0017500000

Ipc: G06F0030000000