-
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
-
-
Zitierte Nicht-Patentliteratur
-