-
HINTERGRUND
-
Gebiet
-
Beispielhafte Ausführungsformen sind im Allgemeinen gerichtet auf ein Verfahren und ein System zum Erzeugen einer kombinierten Zeitsteuerungswellenform aus einem maximalen ASCII-Zeitsteuerungsbericht und einem minimalen ASCII-Zeitsteuerungsbericht für eine anwendungsspezifische integrierte Schaltung (ASIC) oder einen Field Programmable Gate Array (FPGA), ein Verfahren zum Umwandeln einer ASCII-Zeitsteuerungsberichtsausgabe von einem STA-Werkzeug in eine Zeitsteuerungswellenform zum Auswerten des Verhaltens eines elektrischen Signals in einem ASIC oder FPGA, ein Verfahren zum Ermitteln der Maximal- und Minimalwerte eines Mehrzyklennachführungspfads (MCP/multicycle path) für einen Entwicklungsingenieur für einen gegebenen externen Ausgang oder einen internen Pin eines ASIC oder FPGA, sowie auf ein Verfahren zum Überprüfen der Genauigkeit eines minimalen MCP-Werts für einen gegebenen externen Ausgang oder internen Pin als ASIC oder FPGA.
-
Zugehöriger Stand der Technik
-
1 ist ein Blockdiagramm eines Zeitsteuerungsabschlusskreises mit herkömmlichem ASIC. In einem typischen ASIC-Entwurfsfluss bestimmt die geschlossene Schleife 10 gemäß 1 die Vorgehensweise beim ASIC-Entwurf. Die geschlossene Schleife 10 beinhaltet im Allgemeinen eine Reihe von fünf Stufen: Eine Layout-Stufe 11, STA (statische Zeitsteuerungsanalyse/static timing analysis)-Stufe 12, RTL/Synthese-Stufe 13, ECO (elektronischer Änderungsbefehl)-Stufe 14 und Zeitsteuerungsbeschränkungen 15. Im Interesse der Kürze wird die STA-Stufe 12 hiernach mit größeren Einzelheiten diskutiert.
-
Eine der am zeitaufwendigsten Stufen bei der ASIC-Zeitsteuerungsabschlussschleife ist die STA-Stufe. Dies ist hauptsächlich auf zwei Gründe zurückzuführen. Erstens werden viele Zeitsteuerungsberichte von einem „STA Tool“ erzeugt und müssen vom ASIC-Entwicklungsingenieur analysiert werden. Zweitens ist die STA-Stufe die entscheidende Verbindung innerhalb der Schleife 10, daher muss die richtige Handlungsweise mittels Analyse derartiger Zeitsteuerungsberichte festgelegt werden.
Eine allgemeine Definition von STA kann man verstehen als die Fähigkeit, unterschiedliche Zeitsteuerungspfade innerhalb eines elektronischen Geräts zu messen und zu analysieren, ob diese Zeitsteuerungspfade vordefinierte Zeitsteuerungskontingente, welche vom ASIC-Entwicklungsingenieur zugewiesen sind, erfüllt werden. Der Zeitsteuerungspfad ist definiert als die Zeitsteuerungsstrecke, die ein elektrisches Signal zwischen beliebigen zwei vorgegebenen Punkten innerhalb des elektronischen Geräts zurücklegt. Ein Zeitgebungspfad hat als Attribute einen Startpunkt, Endpunkt, maximalen Pfad und minimalen Pfad. Der Startpunkt bezeichnet den Beginn des Zeitsteuerungspfads; der Endpunkt das Ende des Zeitsteuerungspfads. Der maximale Zeitsteuerungspfad ist definiert als der längste Pfad zwischen Startpunkt und Endpunkt, und der minimale Zeitgebungspfad ist definiert als der kürzeste Pfad zwischen Startpunkt und Endpunkt. Der Zeitsteuerungspfad wird gemessen in Bruchteilen einer Sekunde. Die am meisten verbreitete Messeinheit ist die Nanosekunde (1/10e9 einer Sekunde), bezeichnet durch die Abkürzung „ns‟.
-
Eine typische STA-Sitzung erfordert das Durchsehen von Zeitsteuerungsberichten im Zusammenhang mit den folgenden Themen:
- • Taktgeberdefinitionen;
- • Überprüfungszeitsteuerung;
- • Fallanalyse;
- • Leerläufe zwischen Taktgebern;
- • Leerläufe innerhalb Taktgebern;
- • Eingabe-/Ausgabedefinitionen;
- • Eingabe-/Ausgabeleerläufe;
- • falsche Zeitsteuerungspfade;
- • Mehrzyklennachführungszeitsteuerungspfade;
- • asynchrone Leerläufe;
- • Taktgeber-Gating-Leerläufe;
- • berücksichtigte Ausnahmen;
- • ignorierte Ausnahmen;
- • Kreuztaktgeberzeitsteuerungspfade; und
- • spezifische Zeitsteuerungspfade.
-
Die Anzahl oder Größe der Zeitsteuerungsberichte kann erheblich sein (in einer Spanne von 10 bis 100 Gigabyte von ASCII-Zeitsteuerungsberichten, in Abhängigkeit von der Größe des ASIC/FPGA, für einen beliebigen Lauf des STA Tool), da es gewünscht ist, potentielle Entwurfs- oder Herstellungsfehler zu detektieren, und alle die obigen Berichtsarten müssen für alle möglichen PVT- (Prozess, Spannung, Temperatur) Ecken, unter welchen der ASIC funktionieren soll, erzeugt und analysiert werden. Des Weiteren ist ASCII- (das heißt: „Klartext“) Darstellung von Zeitsteuerungsberichten nicht intuitiv und kann schwer vorstellbar sein. Dies überfordert den ASIC-Entwicklungsingenieur häufig, welcher viele dieser Berichte durchsehen und analysieren muss.
-
Aus der
US 7 137 090 B1 ist die Überlegung bekannt, bei der Timing Analyse und „Slack“-Berechnung einen Anpassungsfaktor zu benutzen, der sich aus dem Unterschied zwischen abgebender und aufnehmender Taktflanke ergibt.
-
WEINER, Nicholas; SANGIOVANNI-VINCENTELLI, Albert. Timing analysis in a logic synthesis environment. In: Design Automation, 1989. 26th Conference on. IEEE, 1989. S. 655 - 661 beschäftigt sich mit grundlegenden Aspekten der Timing Analyse bei Logikschaltungen.
-
ZUSAMMENFASSUNG
-
Eine beispielhafte Ausführungsform ist gerichtet auf ein Verfahren zum Erzeugen einer kombinierten Zeitsteuerungswellenform aus einem maximalen ASCII-Zeitsteuerungsbericht und einem minimalen ASCII - Zeitsteuerungsbericht für einen anwendungsspezifischen integrierten Schaltkreis (ASIC), wobei jeder Zeitsteuerungspfad in einem ASIC durch maximale und minimale Zeitsteuerung beschrieben wird. Bei dem Verfahren werden X-Y-Koordinaten für eine erste Wellenform berechnet basierend auf in dem maximalen ASCII-Zeitsteuerungsbericht enthaltenen Daten, und X-Y-Koordinaten für eine zweite Wellenform werden berechnet basierend auf in dem minimalen ASCII-Zeitsteuerungsbericht enthaltenen Daten. Die X-Y-Koordinaten der zweiten Wellenform werden um einen Anpassungsfaktor verschoben. Eine kombinierte Zeitsteuerungswellenform wird erzeugt mit den errechneten X-Y-Koordinaten der ersten Wellenform und der verschobenen X-Y-Koordinaten der zweiten Wellenform, wobei die kombinierte Zeitsteuerungswellenform das Verhalten eines elektrischen Signals in dem ASIC widerspiegelt.
-
Eine weitere beispielhafte Ausführungsform ist gerichtet auf ein System zum Erzeugen einer kombinierten Zeitsteuerungswellenform aus einem maximalen ASCII-Zeitsteuerungsbericht und einem minimalen ASCII-Zeitsteuerungsbericht für einen applikationsspezifischen integrierten Schaltkreis (ASIC), wobei jeder Zeitsteuerungspfad in einem ASIC durch maximale und minimale Zeitsteuerung beschrieben wird. Das System beinhaltet einen Speicher zum Speichern der maximalen und minimalen ASCII-Zeitsteuerungsberichte, und einen Prozessor zum Berechnen von X-Y-Koordinaten für eine erste Wellenform basierend auf in dem maximalen ASCII-Zeitsteuerungsbericht enthaltenen Daten, welche der Prozessor aus dem Speicher entnimmt. Der Prozessor berechnet X-Y-Koordinaten für eine zweite Wellenform basierend auf in dem minimalen ASCII-Zeitsteuerungsbericht enthaltenen Daten, welche der Prozessor aus dem Speicher ausliest, und iteriert einen Algorithmus, um die berechneten X-Y-Koordinaten der zweiten Wellenform um einen Anpassungsfaktor zu verschieben. Das System beinhaltet eine Anzeige, welche eine kombinierte Zeitsteuerungswellenform unter Anleitung des Prozessors erzeugt mit den berechneten X-Y-Koordinaten der ersten Wellenform und den verschobenen X-Y-Koordinaten der zweiten Wellenform, wobei die kombinierte Zeitsteuerungswellenform das Verhalten eines elektrischen Signals in dem ASIC wiederspiegelt.
-
Eine weitere beispielhafte Ausführungsform ist gerichtet auf ein Verfahren zum Umwandeln eines ASCII-Zeitsteuerungsberichts in eine Zeitsteuerungswellenform, um das Verhalten eines elektrischen Signals in einem ASIC auszuwerten. Bei dem Verfahren wird ein vollständiger ASCII-Zeitsteuerungsbericht im Speicher eingelesen, und ausgewählte Zeitsteuerungspunkte werden aus dem abgespeicherten Bericht ausgelesen. Eine Zeitsteuerungswellenform wird erzeugt aus den ausgelesenen Zeitsteuerungspunkten zur Anzeige und Durchsicht durch einen Entwickler, um auszuwerten, ob eine gegebene externe Schnittstelle oder interner Pin des ASIC vorgegebene Zeitsteuerungsspezifikationen erfüllt.
-
Ein weiteres Ausführungsbeispiel ist gerichtet auf ein Verfahren zum Berechnen von Mehrzyklennachführungspfad (MCP)-Werten für einen gegebenen Zeitsteuerungspfad in einem applikationsspezifischen integrierten Schaltkreis (ASIC) oder Field Pogrammable Gate Array (FPGA), wobei jeder Zeitgebungspfad in dem ASIC/FPGA durch maximale und minimale Zeitsteuerung beschrieben wird, wobei die MCP-Werte indikativ für Mehrfach-Taktgeberzyklusverhalten in dem ASIC/FPGA sind. Bei dem Verfahren werden X-Y-Koordinaten für eine erste Wellenform berechnet basierend auf ausgewählten Datenpunkten ausgelesen aus einem maximalen ASCII-Zeitsteuerungsbericht, und X-Y-Koordinaten für eine zweite Wellenform werden berechnet basierend auf ausgewählten Datenpunkten ausgelesen aus einem minimalen ASCII-Zeitsteuerungsbericht. Die berechneten X-Y-Koordinaten der zweiten Wellenform werden um einen Anpassungsfaktor verschoben. Eine kombinierte Zeitsteuerungswellenform wird erzeugt mit den berechneten X-Y-Koordinaten der ersten Wellenform und den verschobenen X-Y-Koordinaten der zweiten Wellenform. Ein minimaler Mehrzyklen-Nachführungspfad (MCP)-Wert und ein maximaler MCP-Wert werden aus der kombinierten Zeitsteuerungswellenform ermittelt.
-
Eine weitere beispielhafte Ausführungsform ist gerichtet auf ein Verfahren zum Erzeugen einer kombinierten Zeitsteuerungswellenform aus maximalen und minimalen Zeitsteuerungsdaten für eine gegebene externe Schnittstelle oder internen Pin eines ASIC, wobei die maximalen und minimalen Zeitsteuerungsdaten in einer Datenbank eines STA Tools gespeichert sind. Bei dem Verfahren werden ausgewählte Zeitsteuerungsdaten, welche zu einem minimalen Pfad der Schnittstelle oder des Pins gehören, aus der Datenbank des STA Tools ausgelesen, und die ausgelesenen Daten werden in X-Y-Koordinaten für eine minimale Zeitsteuerungswellenform umgewandelt. Ausgewählte Zeitsteuerungsdaten, welche zu einem maximalen Pfad der Schnittstelle oder des Pins gehören, werden aus der Datenbank des STA Tools ausgelesen, und die ausgelesenen Daten werden in X-Y-Koordinaten für eine maximale Zeitsteuerungswellenform umgewandelt. Die X-Y-Koordinaten der minimalen Zeitsteuerungswellenform werden um einen Anpassungsfaktor verschoben. Eine kombinierte Zeitsteuerungswellenform wird mit den berechneten X-Y-Koordinaten der maximalen Zeitsteuerungswellenform und den verschobenen X-Y-Koordinaten der minimalen Zeitsteuerungswellenform erzeugt; die kombinierte Zeitsteuerungswellenform dient dabei zur Überprüfung durch einen Entwickler, um auszuwerten, ob die gegebene externe Schnittstelle oder interne Pin des ASIC vorgegebene Zeitsteuerungsspezifikationen erfüllt.
-
Figurenliste
-
Beispielhafte Ausführungsformen wird man vollständiger verstehen anhand der nachstehend gegebenen detaillierten Beschreibung und der begleitenden Zeichnungen, in denen gleiche Elemente durch gleiche Bezugsziffem dargestellt sind, welche Zeichnungen lediglich zur Veranschaulichung angegeben sind und daher nicht beschränkend für die hier enthaltenen beispielshaften Ausführungsformen sind.
- 1 ist ein Blockdiagramm einer Zeitsteuerungsabschlussschleife eines herkömmlichen ASIC.
- 2 ist ein Blockdiagramm eines Systems zum Erzeugen einer kombinierten Zeitsteuerungswellenform aus einem maximalen ASCII Zeitsteuerungsbericht und einem minimalen ASCII Zeitsteuerungsbericht für einen ASIC oder FPGA, und/oder zum Umwandeln eines ASCII Zeitsteuerungsberichts in eine Zeitsteuerungswellenform zum Auswerten des Verhaltens eines elektrischen Signals in dem ASIC oder FPGA.
- 3 ist ein Beispiel eines kollabierten Abschnitts eines vollständigen maximalen Zeitsteuerungsberichts für eine Ausgabeschnittstelle eines ASIC und welcher im Speicher des Systems eingelesen ist, wobei der kollabierte Abschnitt aus dem Speicher ausgelesen worden ist und die Zeitsteuerungspunkte, welche zum Erzeugen der x-y-Koordinaten einer maximalen Zeitsteuerungswellenform verwendet wurden, veranschaulicht.
- 4 ist ein Zeitsteuerungsdiagramm zur Veranschaulichung eines Beispiels einer maximalen Zeitsteuerungswellenform, welche aus den Zeitsteuerungspunkten in dem kollabierten Bericht aus 3 erzeugt wurde.
- 5 ist ein Beispiel eines kollabierten Abschnitts eines vollständigen minimalen Zeitsteuerungsberichts für eine Ausgabeschnittstelle eines ASIC und im Speicher eines Systems eingelesen, wobei der kollabierte Abschnitt aus dem Speicher ausgelesen worden ist und die Zeitsteuerungspunkte, welche zur Erzeugung der x-y Koordinaten einer minimalen Zeitsteuerungswellenform verwendet wurden, veranschaulicht.
- 6 ist ein Zeitsteuerungsdiagramm zur Veranschaulichung eines Beispiels einer minimalen Zeitsteuerungswellenform, erzeugt aus den Zeitsteuerungspunkten in dem kollabierten Bericht gemäß 5.
- 7 ist Zeitsteuerungsdiagramm zur Veranschaulichung eines Beispiels einer kombinierten Zeitsteuerungswellenform, welche aus den maximalen und minimalen Zeitsteuerungswellenformen gemäß den 4 und 6 erzeugt wurde.
- 8 ist ein Screenshot eines Abschnitts eines Excel Zusammenfassungsarbeitsblatts von Eingabeschnittstellen für einen gegebenen ASIC mit den berechneten angezeigten kombinierten Zeitsteuerungswellenformen für einen ausgewählten Eingabeschnittstellenhost[7] des ASIC.
- 9 ist eine vergrößerte Ansicht eines Abschnitts der kombinierten Wellenform gemäß 8, um den Jitter in der kombinierten Wellenform zu veranschaulichen.
- 10A ist ein Screenshot eines Abschnitts eines Excel-Zusammenfassungsarbeitsblatts von Ausgabeschnittstellen für einen gegebenen ASIC.
- 10B ist ein vergrößerter Abschnitt einer berechneten angezeigten kombinierten Zeitsteuerungswellenform für eine ausgewählte Ausgabeschnittstelle dex[15] des ASIC gemäß 10A, um einen Außerhalb-der-Zeitsteuerungs-Zustand für die Schnittstelle zu veranschaulichen.
- 11 ist ein Blockdiagramm, um ein Beispiel von Einzyklus- gegenüber Mehrzyklen-Logikclouds zu veranschaulichen.
- 12 ist ein Zeitsteuerungsdiagramm, um den Unterschied zwischen dem CLK gegenüber dem langsamen CLK, welcher FF5 gemäß 11 triggert, zu zeigen.
- 13 ist die kombinierte Zeitsteuerungswellenform gemäß 7, beschriftet mit Daten, welche minimale MCP- und maximale MCP-Determinaten für die Ausgangsschnittstelle mfio(2) eines ASIC widerspiegelt.
- 14 ist eine kombinierte Zeitsteuerungswellenform für eine Eingabeschnittstelle SFLASH_MISO eines ASIC, in welchem eine Überprüfung des minimalen MCP eine inkorrekte minimale MCP-Definition anzeigt.
- 15 ist eine kombinierte Zeitsteuerungswellenform für dieselbe Eingangsschnittstelle gemäß 14 nach Ingenieurkorrektur basierend auf einer korrigierten minimalen MCP-Definition.
-
DETAILLIERTE BESCHREIBUNG
-
Im Allgemeinen beschreiben die beispielhaften Ausführungsformen hiernach Verfahren und ein System zum Umwandeln von Zeitsteuerungsberichten in Zeitsteuerungswellenformen. Wie mit weiteren Einzelheiten nachstehend beschrieben werden wird, verfolgen das System und die Verfahrensweisen ASCII-Zeitsteuerungsberichte, um äquivalente Zeitsteuerungswellenformen automatisch zu erzeugen.
-
Gemäß einem Beispiel kann das Verfahren und System eine Programmiersprache, wie zum Beispiel VBA (Visual Basic for Applications by Microsoft) einsetzen, obwohl andere Programmiersprachen, wie zum Beispiel C, C++ oder C# (Cis) eingesetzt werden können. Ein Vorteil von VBA ist, dass nach deren Erzeugung die Zeitsteuerungswellenformen in der Umgebung von Microsoft Excel dargestellt werden können, was es ermöglicht, die Zeitsteuerungswellenformen mittels Excel-Skripten weiter zu verarbeiten, beispielsweise, jedoch nicht begrenzt auf (a) Erzeugen von Verweisen zwischen den Zeitsteuerungswellenformen und den ursprünglichen Zeitsteuerungsberichten; (b) Tabellieren der Zeitsteuerungsberichte; (c) Sortieren der Zeitsteuerungsberichte; und (d) Filtern der Zeitsteuerungsberichte.
-
Die Zeitsteuerungswellenform sollte die exakte Anzahl und Summen, die in den Zeitsteuerungsberichten gezeigt sind, widerspiegeln; anderenfalls wird die Wellenforminformation für den ASIC-Entwicklungsingenieur nutzlos sein. Wie in den nachfolgenden Figuren gezeigt werden soll, werden die Zeitsteuerungswellenformen dem ASIC-Entwicklungsingenieur als elektrische Signale angezeigt, welche wie ein Datenblatt irgendeines elektronischen Geräts aussehen.
-
2 ist ein Blockdiagramm eines Systems zum Erzeugen einer kombinierten Zeitsteuerungswellenform aus einem maximalen ASCII-Zeitsteuerungsbericht und einem minimalen ASCII-Zeitsteuerungsbericht, welcher mittels eines STA-Tools für ein ASIC oder FPGA erzeugt wurde, und/oder zum Umwandeln einer ASCII-Zeitsteuerungsberichtsausgabe aus dem STA-Tool in eine Zeitsteuerungswellenform, um das Verhalten eines elektrischen Signals in dem ASIC oder FPGA auszuwerten.
-
Bezugnehmend auf 2 ist das System 100 ausgelegt, um Zeitsteuerungsberichte, die für jede beliebige externe Schnittstelle oder internen Pin eines ASCII oder FPGA mittels eines herkömmlichen STA Tools 12, Beispiele sind PRIMETIME™ bei Synopsys®, Encounter® Timing System by Cadence® und TEKTON™ by Magma® Design Automation, unter anderen, zum Beispiel, erzeugt wurden, zu unterstützen. Da jeder Zeitsteuerungspfad in einem ASIC/FPGA mittels maximaler und minimaler Zeitsteuerung beschrieben wird, wird die vollständige (ursprüngliche) maximale ASCII-Zeitsteuerungsberichtausgabe des STA Tool 12 im Speicher 110 eingelesen, wo sie abgespeichert wird. Außerdem wird der vollständige (ursprüngliche) minimale ASCII-Zeitsteuerungsbericht von dem STA Tool 12 ausgegeben und im Speicher 110 eingelesen. Jeder dieser Berichte wird verwendet werden; spezifische Zeitsteuerungspunkte werden aus Speicher 110 mittels eines unter der Kontrolle von Prozessor 120 ablaufenden Software-Programms ausgelesen werden, um X-Y-Koordinaten zu berechnen, um Zeitsteuerungswellenformen zu erzeugen, welche auf einer Anzeige 130 des Systems 100 angezeigt werden sollen. Diese Wellenformen enthalten Informationen, welche visuell von Entwickler/Ingenieur durchgesehen werden können, um auszuwerten, ob eine gegebene externe Schnittstelle/interne Pin des ASIC/FPGA vorgegebene Zeitsteuerungsspezifikationen erfüllt. Mit anderen Worten wird der Entwickler in der Lage sein, das Verhalten eines elektrischen Signals in dem ASIC/FPGA zu sehen, um festzustellen, ob oder nicht Zeitsteuerungsbeschränkungen eingehalten werden.
-
Wie zuvor allgemein oben angemerkt, ist der Prozessor 120, indem er das Software-Programm ausführt, beispielsweise über eine Excel Software Schnittstelle ausgestaltet, um Verweise zwischen den Zeitsteuerungswellenformen und den ursprünglichen Zeitsteuerungsberichten zu erzeugen, um die Zeitsteuerungsberichte zu tabellieren und sortieren, sowie um die Zeitsteuerungsberichte zu filtern, um die Zeitsteuerungspunkte auszulesen, welche bei der Berechnung der X-Y-Koordinaten der Zeitsteuerungswellenformen benutzt werden.
-
Wie in größeren Einzelheiten unten gezeigt werden wird, können die zur Durchsicht angezeigten Zeitsteuerungswellenformen eine maximale Zeitsteuerungswellenform, eine minimale Zeitsteuerungswellenform und eine kombinierte Zeitsteuerungswellenform, welche die X-Y-Koordinaten der maximalen und minimalen Zeitsteuerungswellenformen kombiniert, wobei die X-Y-Koordinaten der minimalen Zeitsteuerungswellenform um einen Anpassungsfaktor, welcher hiernach weiter beschrieben werden wird, verschoben sind, umfassen.
-
Jeder Zeitsteuerungspfad in einem ASIC oder FPGA wird durch maximale und minimale Zeitsteuerung beschrieben. Für jede Art von Zeitsteuerung (maximal oder minimal) erzeugt das typische STA Tool
12 einen Zeitsteuerungsbericht. Die erzeugten Zeitsteuerungsberichte werden vororganisiert in Verzeichnissen und haben spezifische Namensgebungskonventionen, angezeigt durch: (a) Projektname, (b) Funktionsmodus, (c) PVT (Prozess, Spannung, Temperatur)-Ecke, (d) Revisionszahl, und (e) Erzeugungsdatum. Das Software-Programm, welches von Prozessor
120 abgespielt wird, läuft über diese Verzeichnisse und Zeitsteuerungsberichte, ausgewählt von dem Benutzer, öffnet die relevanten Zeitsteuerungsberichte und lädt diese in Excel. Nachdem ein spezifischer Zeitsteuerungsbericht in den Speicher
110 geladen wurde, läuft das Software-Programm unter Leitung des Prozessors
120 durch den Bericht, Zeile für Zeile, und die folgenden Daten werden ausgelesen. Diese Zeitsteuerungspunkte werden benutzt werden, um die X-Y-Koordinaten der maximalen Zeitsteuerungswellenform zu berechnen. Nicht alle der Zeitsteuerungspunkte werden direkt in dem Zeitsteuerungsdiagramm erscheinen, aber die Information darin wird zur Erzeugung der Wellenform benutzt. Um die Durchsicht von trunkierten Folge-Zeitsteuerungsberichten und Zeitsteuerungswellenformen zu erleichtern, sind Elementnummern aus gewählten unter den Zeitsteuerungspunkten zugewiesen worden, soweit möglich in der folgenden Tabelle 1, um die Zuordnung von Zeitsteuerungsbericht zu Wellenform zu zeigen.
Tabelle 1 - Ausgewählte Zeitsteuerungspunkte ausgelesen aus ASCII Max/Min Zeitsteuerungsberichten
Zeitsteuerungspunkt | Elementnummer |
Startpunkt | 202 |
Endpunkt | 204 |
Taktgebername(n) | 206; 207 |
Taktgeberauslöseflanke(n) | 208 |
Taktgeberabtastflanke(n) | 219 |
Auslösetaktgeberverzögerung (LCD) | 212 |
Aufnahmetaktgeberverzögerung (CCD) | 214 |
Externe Verzögerung | 216 |
Taktgeberunsicherheit | 228 |
Taktgeberlatenz | 229 |
CRPR (Taktgeberrekonvergenz Pessimismus Entfernung) | Nicht dargestellt in den maximalen/minimalen Berichten |
DAT (Datenankunftszeit) | 220 |
DRT (Datenbenötigtzeit) | 222 |
Gesamtzeitsteuerungsleerlauf | 224 |
-
Taktgeberunsicherheit, Taktgeberlatenz und CRPR sind alle Teil des Jitter und, obwohl als Teil der Zeitsteuerungspunkte, welche aus dem ursprünglichen ASCII-Zeitsteuerungsbericht ausgelesen wurden, berücksichtigt, können nicht auf einfache Weise visuell gesehen werden, obwohl Jitter in späteren Figuren in einer vergrößerten Ansicht auf einigen der Zeitsteuerungswellenformen gezeigt werden wird. LCD und CCD werden vom Entwicklungsingenieur berechnet aus ausgelesenen Daten, welche in den trunkierten oder kollabierten maximalen/minimalen ASCII-Zeitsteuerungsberichten enthalten sind, wie hiernach beschrieben.
-
Entsprechend, wie in größeren Einzelheiten nachstehend mit Bezugnahme auf die 3 bis 6 ersichtlich werden wird, wird ein Verfahren zum Umwandeln eines Zeitsteuerungsberichts in eine Zeitsteuerungswellenform beschrieben, bei welcher jeder der obigen Zeitsteuerungspunkte in Tabelle 1 Teil eines trunkierten oder kollabierten Zeitsteuerungsberichts der Zeitsteuerungspunkte, welche aus dem ursprünglichen ASCII-Zeitsteuerungsbericht, welcher in Speicher eingelesen wurde, ausgelesen wurden, bildet. Diese Zeitsteuerungspunkte werden benutzt, um X-Y-Koordinaten zu berechnen, um eine Zeitsteuerungswellenform zu erzeugen, welche das Verhalten eines elektrischen Signals in einem elektronischen Gerät, wie zum Beispiel einem ASIC oder FPGA, wiederspiegelt, wobei visuelle Daten vorgesehen werden, um festzustellen, ob oder nicht das Gerät benötigte Zeitsteuerungsspezifikationen erfüllt.
-
3 ist ein Beispiel eines kollabierten Abschnitts eines vollständigen maximalen Zeitsteuerungsberichts, welcher von einem STA Tool für eine Ausgangsschnittstelle eines ASIC erzeugt wurde und im Speicher des Systems eingelesen wurde, wobei der kollabierte Abschnitt aus Speicher ausgelesen wurde und die Zeitsteuerungspunkte, welche zur Erzeugung der X-Y-Koordinaten einer maximalen Zeitsteuerungswellenform benutzt wurden, veranschaulicht. 3 stellt einen Screenshot eines Excel-Arbeitsplatz des gefilterten oder kollabierten maximalen ASCII-Zeitsteuerungsberichts für eine Ausgabeschnittstelle dar, MFIO [2] eines ASIC. Der Screenshot enthält lediglich die Zeitsteuerungspunkte, welche aus dem ursprünglichen maximalen ASCII-Zeitsteuerungsbericht ausgelesen wurden, welcher von dem STA Tool 12 erzeugt worden war und in Speicher 110 eingelesen wurde.
-
Bezugnehmend auf 3 wird der Startpunkt 202 mittels einer Zeichenkette beschrieben, in welcher ein durch eine steigende Flanke ausgelöster FF durch einen Taktgeber mit dem Namen „AFERXZK“ getaktet wird. Dies ist der Taktgebername 206 für den Startpunkt 202. Der Endpunkt 204 (Ausgabeschnittstelle MFIO[2]) wird getaktet durch Taktgeber mit Namen „Spick“. Dies ist der Taktgebername 207 für den Endpunkt 204. Man beachte, dass der Pfadtyp „max“ anzeigt, somit sind dies Daten von einem maximalen ASCII-Zeitsteuerungsbericht.
-
Die Taktgeberauslöseflanke 208 ist bezeichnet durch die erste Zeile, Taktgeber AFERXZK (steigende Flanke). In der resultierenden Wellenform wird die Taktgeberauslöseflanke bei 37,5 ns von dem Start des Taktgebers auf dem AFERXZK-Zeitsteuerungsliniendiagramm erfolgen. Die Auslösetaktgeberverzögerung (LCD) berechnet wird, ermittelt als eine Differenz zwischen dem Wert, welcher einer Zeichenkette core/u_xbu/spi_cs_1_0_n_reg/CK (GFSDPRB_1), oder 44.662 (den Auslösetaktgeber 203 darstellend) und der Taktgeberauslöseflanke 208 von 37,5 ns. Dementsprechend ist LCD 212 7,182 ns; dies wird sich in der resultierenden maximalen Zeitsteuerungswellenform niederschlagen. Auf ähnliche Weise hat der Entwickler CCD 214 aus zwei Werten berechnet, der Aufnahmetaktgeber 211 (mfio[9] (inout) = 89,19ns) minus die Aufnahmetaktgeberflanke 219 (siehe Taktgeber Spick (fallende Flanke) = 75,00 ns. Dementsprechend ist der CCD 214 = 14,19 ns; dies wird sich in der resultierenden maximalen Zeitsteuerungswellenform niederschlagen.
-
Die externe Verzögerung 216 beträgt -5,00 ns. Die Datenankunftszeit 220 (DAT) beträgt 53,472 ns, die Daten-benötigt-Zeit 222 (DRT) beträgt 83,990 und die gesamte Leerlaufzeit 224 beträgt 30,518. Jeder dieser Zeitsteuerungspunkte wird umgewandelt in x-y-Koordinaten zur Anzeige als Teil der maximalen Zeitsteuerungswellenform. Zusätzlich wird ein „maximale Aufnahmetaktgeberflanke“-Wert, auch Datenverzögerung 226 (DD) berechnet. Dies ist eine Messung von dem Auslösepunkt 205 (Zeichenkette core/u_xbu/spi_cs_1_0_n_reg/Q (GFSDPRB_1) = 45,127 f (f bezeichnet absteigende Flanke) bis zum Endpunkt 210 (mfio[2] in out = 53,472 f. Die Datenverzögerung 226 (DD = 8,345 ns). Dies wird als „Max“ auf der gezeigten Wellenform bezeichnet.
-
4 ist ein Zeitsteuerungsdiagramm, um ein Beispiel einer maximalen Zeitsteuerungswellenform zu veranschaulichen, welche von den Zeitsteuerungspunkten in dem kollabierten maximalen Zeitsteuerungsbericht gemäß 3 erzeugt wurde. Mit den Zeitsteuerungspunkten und Daten, die wie in 3 angedeutet ausgelesen wurden, kann eine maximale Zeitsteuerungswellenform erzeugt werden, indem eine Vielzahl von x-y-Koordinaten erzeugt wird, um die Zeitsteuerungspunkte in dem x-y-Raum abzubilden. Bezug nehmend auf 4 ist dort eine Reihe von Zeitsteuerungsdiagrammen einer maximalen Zeitsteuerungswellenform gezeigt. Da diese Wellenform für eine Ausgabeschnittstelle erzeugt wurde, sind der Auslösetaktgebername 206 (aferxck), Endpunkt 204 (mfio[2]) und Aufnahmetaktgebemame (spick (f) auf der rechten Seite aufgelistet; wenn dies eine Eingabeschnittstelle wäre, wären diese auf der linken Seite des Zeitsteuerungsdiagramms gewesen. In 4 bedeutet „Switch to Ideal clocks“ das Zeichnen beider Wellenformen, maximale oberhalb der minimalen (wie in größeren Einzelheiten hiernach diskutiert werden wird), ohne die Wirkung von Taktgeberverzögerungen, daher können die Auslöse- und Aufnahmetaktgeber als ausgerichtet veranschaulicht werden und Flankenunterschiede können händisch auf Sicht gezählt werden. Die Wellenform wird bezeichnet durch den Namen der Schnittstelle, welche ausgewertet wird „mfio[2]“, die Art des Berichts („Max delay(wc)“, welche ein maximale Zeitsteuerungswellenform widerspiegelt. Das wc gibt schlicht eine spezielle PVT-Ecke an, (Ecke „wc“). Da es PVT-Variationen zwischen Chips gibt, ist dies lediglich ein Beispiel für eine spezifische PVT-Ecke eines ASIC.
-
Aus dem maximalen Zeitsteuerungswellenformdiagramm kann der Entwicklungsingenieur visuell die Taktgeberauslöseflanke bei 37,5 ns (bezeichnet durch Pfeil 208 und beschriftet als Flanke 6), LCD 212 (7,162 ns), sowie die Aufnahmetaktgeberverzögerung (CCD) 214 von 14,190 ns erkennen. Die externe Verzögerung 216 wird angezeigt als SODmax (-5 ns) von einer Linie und Richtung, welche die Aufnahmetaktgeber 211 rückwärts nach DRT 222 anzeigt.
-
Zusätzlich kann die Taktgeberperiode des Auslösertaktgebers 213 und die Taktgeberperiode des Aufnahmetaktgebers 215 angegeben werden; diese Daten werden von einem anderen Bericht ausgelesen. Zusätzlich wird die Aufnahmetaktgeberflanke (bezeichnet durch Pfeil 219 bei 75 ns) auf Aufnahmetaktgeber spick (f) angezeigt. Jede der DAT 220 (53,472 ns), DRT 222 (83,99 ns) und Gesamtzeitsteuerungsleerlauf 224 (30,518 ns), welcher Marge zu maximalem Pfad darstellt, wird ebenfalls angezeigt.
-
Daher zeigen und beschreiben 2 bis 4 ein Verfahren zum Umwandeln eines ASCII-Zeitsteuerungsberichts (so wie er zum Beispiel erzeugt und/oder ausgegeben wird von einem STA-Tool) in eine Zeitsteuerungswellenform, um das Verhalten eines elektrischen Signals in einem ASIC oder FPGA auszuwerten. In dem Verfahren wird ein ursprünglicher, vollständiger ASCII-Zeitsteuerungsbericht in den Speicher 110 des Systems 100 eingelesen. Unter Steuerung des Prozessors 120 wird ein Softwareprogramm ausgeführt, um ausgewählte Zeitsteuerungspunkte aus dem gespeicherten Bericht auszulesen. In einem Beispiel kann dies in einer Excel-Arbeitsblattumgebung angezeigt und bearbeitet werden. Die Zeitsteuerungspunkte, welche ausgelesen werden, werden anschließend verwendet, um eine Zeitsteuerungswellenform zur Anzeige auf der Anzeige 130 zu erzeugen, zur Durchsicht durch einen Entwickler, um auszuwerten, ob eine gegebene externe Schnittstelle oder ein interner Pin des ASIC oder FPGA vorgegebene Zeitsteuerungsspezifikationen erfüllt.
-
Auf diese Weise können das Verfahren und das System, welche zuvor beschrieben wurden, die Möglichkeit bieten, eine Zeitsteuerungswellenform zu erzeugen, welche sowohl Auslöse- als auch Aufnahmetaktgeber veranschaulicht. In einem Beispiel wird die Zeitsteuerungswellenform erzeugt durch Parsen eines maximalen ASCII-Zeitsteuerungsberichts und Zeichnen der maximalen Zeitsteuerungswellenform, wie am besten in 4 gezeigt. 4 veranschaulicht dem Entwickler zumindest, dass es eine Zeitmarge in dem Aufnahmefenster von 30,518 ns für den maximalen Pfad gibt, welches Zeitsteuerungsspezifikationen erfüllt. Ferner wird die maximale Aufnahmetaktgeberflanke oder Datenverzögerungs- 226 Wert (Max 8,345 ns) angezeigt. Dieser Wert wird entscheidend sein bei der Ermittlung eines Anpassungsfaktors zum Erzeugen einer kombinierten Wellenform, was unten im Einzelnen diskutiert werden soll.
-
5 ist ein Beispiel eines kollabierten Abschnitts eines vollständigen minimalen Zeitsteuerungsberichts, wie er, zum Beispiel, durch ein STA-Tool erzeugt wird, für die Ausgangsschnittstelle eines ASIC und in Speicher des Systems eingelesen wird, wobei der kollabierte Abschnitt aus Speicher ausgelesen wurde und die Zeitsteuerungspunkte veranschaulicht, welche zur Erzeugung der x-y-Koordinaten einer minimalen Zeitsteuerungswellenform verwendet wurden. Da dieser kollabierte minimale ASCII-Zeitsteuerungsbericht nahezu identisch zu dem in 3 gezeigten und beschriebenen ist, werden nur die Unterschiede im Einzelnen diskutiert.
-
Die gleichen Zeitsteuerungspunkte werden zur Berechnung der x-y-Koordinaten zum Erzeugen der minimalen Zeitsteuerungswellenform verwendet. Man beachte, dass die Pfadtype als „min“ angegeben ist, somit sind diese Daten von einem minimalen ASCII-Zeitsteuerungsbericht. Die Berechnungen für LCD 212, CCD 214 und Datenverzögerung 226' unterscheiden sich von der minimalen Wellenform. Dies ist zurückzuführen zum Teil auf unterschiedliche Werte des Auslösetaktgebers 203, Aufnahmetaktgebers 211, Aufnahmetaktgeberflanke 219, Auslösepunkt 205 und Endpunkt 210. Ferner unterscheiden sich die Datenankunftszeit 220, Daten-erfordert-Zeit 222 und Gesamtzeitsteuerungsleerlauf 224'-Werte in dem trunkierten minimalen ASCII-Zeitsteuerungsbericht im Vergleich zu dem maximalen Zeitsteuerungsbericht gemäß 3. Die externe Verzögerung 216' hat einen positiven Wert von +5,00 ns. Zusätzlich wird die berechnete Datenverzögerung 206 auch als „ min capturing clock edge“ bezeichnet und als „Min“ auf der minimalen Zeitsteuerungswellenform angegeben. Wie der „Max“-Wert wird dieser Parameter bei der Ermittlung eines Anpassungsfaktors zum Erzeugen einer kombinierten Zeitsteuerungswellenform benutzt.
-
6 ist ein Zeitsteuerungsdiagramm, um ein Beispiel einer minimalen Zeitsteuerungswellenform veranschaulichen, welche aus den Zeitsteuerungspunkten in dem kollabierten Bericht gemäß 5 erzeugt wurde. 6 ist ähnlich zu 4; somit wird eine detaillierte Erklärung im Interesse der Knappheit weggelassen.
-
Bezug nehmend auf 6 zeigt die minimale Zeitsteuerungswellenform gleichermaßen wie die maximale Zeitsteuerungswellenform ein Zeitsteuerungsdiagramm sowohl für die Auslöse- als auch die Aufnahmetaktgeber. Hier ist der SODmin (216') als +5,00 ns, die Datenverzögerung (Min = 3,581 ns) und die Gesamtzeitsteuerungsleerlaufzeit 224' als 4,173 ns gezeigt. Dieser Leerlauf ist innerhalb des Aufnahmefensters, wobei der Aufnahmetaktgeber eine Periode 215 von 50 ns, eine Aufnahmetaktgeberflanke 219 bei 25 ns mit CCD = 14,390 ns hat. Dementsprechend entnimmt der Entwickler aus dieser Anzeige, dass es eine Margenzeit in dem Aufnahmefenster von 4,173 ns für minimalen Pfad gibt, ohne Zeitsteuerungsanforderungen zu verletzen.
-
Zeitsteuerungswellenform-Darstellungen der ASCII-Zeitsteuerungsberichte, welche erstmalig in den 3 und 5 beschrieben wurden, können daher für den Entwicklungsingenieur inituitiv sein. Dementsprechend können die Zeitsteuerungswellenformen-Darstellungen, die in den 4 und 6 dargestellt sind, auf diese Weise umfassende und schnelle STA liefern.
-
Die alleinstehenden maximalen und minimalen Zeitsteuerungswellenformen, welche in den 4 und 6 gezeigt sind, liefern dem ASIC/FPGA-Entwicklungsingenieur einen relativen Blick unterschiedlicher Elemente in dem Zeitsteuerungspfad, welchen die ASCII-Zeitsteuerungsberichte schlicht nicht bereitstellen können. Zum Beispiel, und Bezug nehmend auf die 4 und 6, liefern die Wellenformen eine visuelle Referenz für den Entwickler für wenigstens dem folgenden: (a) relative Perioden von Auslöse-/Aufnahmetaktgebern (siehe schnellere Auslösetaktgeber/niedrigere Aufnahmetaktgeber); (b) relative Verzögerungen von Auslöse-/Aufnahmetaktgebern (größere Verzögerung bei dem Aufnahmetaktgeber selbst ohne Kenntnis der tatsächlichen Verzögerung, kann diese Verzögerung sehen); (c) relative Werte (basierend auf Länge der Pfeile) von SODmax, SODmin, SIDmax, SIDmin (wobei SID gesetzte Eingabeverzögerung beim Auswerten eines Eingabepins/Schnittstelle anstelle einer Ausgabeschnittstelle darstellt; (d) relative Richtungen von SODmax, SODmin, SIDmax, SIDmin (basierend auf Richtung der Pfeile); und (e) relative Größe von DAT/DRT.
-
7 ist ein Zeitsteuerungsdiagramm, um ein Beispiel einer kombinierten Zeitsteuerungswellenform zu veranschaulichen, welche aus den maximalen und minimalen Zeitsteuerungswellenformen gemäß 5 und 6 erzeugt wurde. Bislang sind ein System und Verfahren beschrieben worden zum Erzeugen der maximalen und minimalen Zeitsteuerungswellenformen aus jeweiligen maximalen und minimalen ASCII-Zeitsteuerungsberichten. 7 ist angegeben, um ein Verfahren zum Erzeugen einer kombinierten Zeitsteuerungswellenform aus einem maximalen ASCII-Zeitsteuerungsbericht und einem minimalen ASCII-Zeitsteuerungsbericht zu beschreiben, wie sie beispielsweise mittels eines statischen Zeitsteuerungsanalysewerkzeug (STA Tool) für ein elektronisches Gerät, wie zum Beispiel einen applikationsspezifischen integrierten Schaltkreis (ASIC) oder Field Programmable Gate Array (FPGA) erzeugt werden, wobei jeder Zeitsteuerungspfad in dem elektronischen Gerät durch maximale und minimale Zeitsteuerung beschrieben wird.
-
Im Allgemeinen sollen, um die kombinierten Zeitsteuerungswellenformen zu erzeugen, X-Y-Koordinaten für eine erste Wellenform auf Basis von in dem maximalen ASCII-Zeitsteuerungsbericht enthaltenen Daten berechnet werden, und X-Y-Koordinaten für eine zweite Wellenform sollen basierend auf in dem minimalen ASCII-Zeitsteuerungsbericht enthaltenen Daten berechnet werden. Um die kombinierte Zeitsteuerungswellenform zu erzeugen, werden die Koordinaten für beide Wellenformen ausgerichtet werden müssen, das heißt, die berechneten X-Y-Koordinaten der zweiten Wellenform müssen um einen Anpassungsfaktor verschoben werden. Die kombinierte Wellenform wird sodann erzeugt mit den berechneten X-Y-Koordinaten der ersten Wellenform und den verschobenen X-Y-Koordinaten der zweiten Wellenform. Die kombinierte Wellenform sollte das Verhalten eines elektrischen Signals in dem elektronischen Gerät, zum Beispiel ASIC oder FPGA, wiederspiegeln.
-
3 bis 6 haben die Berechnung von Koordinaten aus Zeitsteuerungspunkten beschrieben, um eine maximale Zeitsteuerungswellenform und eine minimale Zeitsteuerungswellenform zu erzeugen. Dementsprechend können die Daten aus den 3 bis 6 verwendet werden, um die kombinierte Zeitsteuerungswellenform zu erzeugen, welche in 7 veranschaulicht ist.
-
Die kombinierte Zeitsteuerungswellenform beschreibt das exakte Verhalten eines elektrischen Signals in dem elektronischen Gerät, wie zum Beispiel einem ASIC oder FPGA. Dementsprechend, da ja nach Verarbeitungsdaten für sowohl maximale und minimale Pfade des STA Tool vorhanden sind und gefiltert und in visuelle Wellenformdaten umgewandelt werden können, welche dem Entwickler mitteilen können, ob Zeitsteuerungserfordernisse erfüllt werden, um kritische Design- oder Herstellfehler zu vermeiden, kann die kombinierte Zeitsteuerungswellenform von überragendem Wert für den Chip-Designer sein. Dementsprechend zeigt die Anzeige 130 unter Steuerung des Prozessors 120 die kombinierte Zeitsteuerungswellenform gemäß 7 an zur Durchsicht durch einen Entwickler, um auszuwerten, ob eine gegebene externe Schnittstelle oder interner Pin eines ASIC benötigte Zeitsteuerungsspezifikationen erfüllt.
-
Um diese kombinierte Wellenform zu erzeugen, sollten sowohl max. und min. Informationen zur Verfügung stehen. Wie zuvor in den 3 und 5 hervorgehoben, werden lediglich ausgewählte Zeitsteuerungspunkte zur Auswertung von maximalen und minimalen Zeitsteuerungspfaden sowohl für die Auslöse- als auch für die Aufnahmetaktgeber von den ursprünglichen maximalen und minimalen ASCII-Zeitsteuerungsberichten ausgelesen. Sobald die ausgewählten maximalen und minimalen Informationen verfügbar sind, sollen die X-Y-Koordinaten zum Erzeugen der Zeitsteuerungsdiagramme übereinander gezeichnet werden, mit einem Anpassungsfaktor, welcher im Voraus berechnet und auf die X-Y-Koordinaten der minimalen Zeitsteuerungswellenform angewendet wurden, so dass sie mit den Koordinaten der maximalen Zeitsteuerungswellenform ausgerichtet sind.
-
Dieser Anpassungsfaktor ist eine vorausberechnete Anpassung, welche innerhalb des von dem Prozessor 120 iteriertiterierten Software-Programms bestimmt wird. Im Allgemeinen bestimmt ein Algorithmus in dem Programm eine Taktgeberflankendifferenz zwischen einer maximalen Aufnahmetaktgeberflanke und einer minimalen Aufnahmetaktgeberflanke, wobei die Zeitsteuerungsdifferenz den Anpassungsfaktor darstellt, um welchen die X-Y-Koordinaten der minimalen Zeitsteuerungswellenform verschoben werden, um mit den X-Y-Koordinaten der maximalen Zeitsteuerungswellenform ausgerichtet zu sein, um auf diese Weise die kombinierte Wellenform zu erzeugen.
-
Der Anpassungsfaktor wird als ein Aufnahmetaktgeberflankenindifferenz (CCED)-Faktor bezeichnet. CCED ist definiert als die Zeitsteuerungsdifferenz zwischen der maximalen Aufnahmetaktgeberflanke (max) und der minimalen Aufnahmetaktgeberflanke (min):
- CCED = Maximale Aufnahmetaktgeberflanke (siehe 219, 4) - Minimale Aufnahmetaktgeberflanke (siehe 219, 6), oder
- CCED= 75 ns - 25ns = 50ns.
-
Insbesondere wird der CCED-Wert addiert, so dass die X-Y-Koordinaten auf der minimalen Zeitsteuerungswellenform durch CCED nach rechts verschoben werden. Auf diese Weise werden die Zeitsteuerungsdiagramme für die Auslöse- und Aufnahmetaktgeber im Wesentlichen ausgerichtet, wenn die verschobenen X-Y-Koordinaten der zweiten (min) Zeitsteuerungswellenform über die X-Y-Koordinaten der ersten (max) Zeitsteuerungswellenform platziert werden.
-
Bezugnehmend nun auf die kombinierte Zeitsteuerungsform gemäß 7 für die Ausgabeschnittstelle mfio [2] sind dort Zeitsteuerungspunktdaten sowohl von den maximalen als auch von den minimalen Zeitsteuerungsberichten gezeigt. Einige der Daten sind ausgelassen, wie zum Beispiel bestimmte berechnete Verzögerungsdaten und berichtsspezifische Verzögerungen für maximale und minimale Pfade. Das Auslösetaktgeber (AFERXCK)-Zeitsteuerungsdiagramm ist so ausgerichtet wie das Aufnahmetaktgeber-Zeitsteuerungsdiagramm an Taktgeberflanken (219). Sowohl Max 226 als auch 226' werden angezeigt, gleichermaßen wie die externen Verzögerungen SODmax (216) und SODmin (216'). Auch angezeigt für den Entwickler ist die Auslösetaktgeberflanke (Pfeil 208 bei Flanke 6) und eine „nächste“ Auslösetaktgeberflanke 208'. Gezeigt durch Pfeil 208' bei Flanke 14, stellt dies die Auslösetaktgeberflanke der minimalen Zeitsteuerungswellenform nach Verschiebung um CCED dar, von wo aus die Min-Verzögerung gemessen wird. Die kombinierte Wellenform zeigt ferner die Aufnahmetaktgeberflanke bei 219 an.
-
Sowohl Gesamtzeitsteuerungsleerlauf für maximalen Pfad (224) und minimalen Pfad (224') werden auf der kombinierten Zeitsteuerungswellenform angezeigt. Diese Werte stellen Margen dar, um akzeptable Zeitsteuerungserfordernisse für den ASIC/FPGA zu erfüllen. Dementsprechend wird diese kombinierte Zeitsteuerungswellenform erzeugt durch Parsen der separaten maximalen und minimalen Zeitsteuerungsberichte und Zeichnen der max/min kombinierten Zeitsteuerungswellenform, wie am besten in 7 gezeigt.
-
In 7 zeigt die kombinierte Wellenform, dass es eine Zeitmarge in dem Aufnahmefenster von 30,518 ns für maximalen Pfad und 4,173 ns für minimalen Pfad gibt. Eine angezeigte Wellenform auf Anzeige 130, wie zum Beispiel 7, ermöglicht es dem Entwicklungsingenieur, augenblicklich festzustellen, ob der Zeitsteuerungspfad die funktionalen Anforderungen über alle PVT-Ecken erfüllt und ob ein elektronisches Gerät, wie zum Beispiel ein ASIC oder FPGA, richtig unter derartigen Bedingungen funktionieren wird. Redundante Information wird von der Max/Min kombinierten Zeitsteuerungswellenform ausgelassen, da die Absicht ist, dass der Entwicklungsingenieur die relevanten Zeitsteuerungswellenformen als komplementären Satz durchsieht, das heißt, jede der maximalen Zeitsteuerungswellenformen, minimalen Zeitsteuerungswellenformen und max/min kombinierten Zeitsteuerungswellenformen.
-
8 ist ein Screenshot eines Abschnitts eines Excel-Zusammenfassungsarbeitsblatts von Eingabeschnittstellen für einen gegebenen ASIC, mit der berechneten angezeigten kombinierten Zeitsteuerungswellenform für eine ausgewählte Eingabeschnittstelle „host[7]“ des ASICs; und 9 ist eine vergrößerte Ansicht eines Abschnitts der kombinierten Wellenform von 8, um den Jitter in der kombinierten Wellenform zu veranschaulichen.
-
8 wurde vorgesehen, um zu veranschaulichen, wie Zeitsteuerungswellenformen-Berichte kategorisiert und zur Anzeige innerhalb des Systems 100 abgespeichert werden können. Der obere Abschnitt von 8 zeigt einen Screenshot einer Excel-Dateivon abgespeicherten Zeitsteuerungswellenformen, welche für eine Vielzahl von Eingangsschnittstellen eines gegebenen ASIC erzeugt wurden. Der Zusammenfassungsbericht benennt die Schnittstelle nach Name und gibt Zusammenfassungsdaten an, beinhaltend den maximalen und minimalen Anstieg und Abfall für Eingabeverzögerung, den zugehörigen Taktgeber (Auslösetaktgeber), und gibt die Marge, minimale Zeitsteuerungswellenform (Wh), Min/max kombinierte Zeitsteuerungswellenform ((Whs) für eine Eingabe-Ausgabe-Marge - Minimale Pfadauswertung, an und die Marge, maximale Zeitsteuerungswellenform (Ws), Max/min kombinierte Zeitsteuerungswellen-form (Wsh) für eine Eingabe-Ausgabe-Marge - Maximale Pfadauswertung. Die Werte der Margen entsprechen dem Gesamtzeitsteuerungsleerlauf. Falls diese Werte positiv sind, liegen die Zeitsteuerungen innerhalb einer akzeptablen Zeitsteuerungsanforderung.
-
Ein Entwickler kann eine gewünschte Zeitsteuerungswellenform zur Anzeige auswählen, indem er auf eine ausgewählte Zelle klickt, welche als Hypertextverweis dient, um eine angezeigte Wellenform wie unter dem partiellen Screenshot in 8 angezeigt zu öffnen. In diesem Beispiel klickt der Entwickler auf Wsh für Eingabeschnittstelle „host[7]“. Der Vorgang des Klickens auf die Wsh-Zelle bringt automatisch die kombinierte Max/Min-Zeitsteuerungswellenform für diese Eingabeschnittstelle auf den Bildschirm der Anzeige 130. Da dies eine Eingabeschnittstelle ist, werden der Auslösetaktgebername 206 „mii_tx_clk“, Startpunkt 202 für die Schnittstelle „host[7] und Aufnahmetaktgebemame 207 „mii_clk“ in der linken Seite angezeigt. Hier wird die Datenverzögerung 226 oder Max (maximale Aufnahmetaktgeberflanke) für die maximale Zeitsteuerungswellenform synonym als „Setup“ bezeichnet. Die Min 226' oder minimale Aufnahmetaktgeberflanke wird als „Hold“ bezeichnet. Da dies eine Eingabeschnittstelle ist, existiert keine vorgegebene Ausgabeverzögerung (SOD) für die maximalen und minimalen Zeitsteuerungsberichte, stattdessen ein Satz Eingabeverzögerung (SID) für maximale und minimale Pfade; SIDmax = 25 ns (221) und SIDmin = 0 ns (221'). Der Gesamtzeitsteuerungsleerlauf 224 oder die Marge für den maximalen Pfad beträgt 10,160 ns; der Gesamtzeitsteuerungsleerlauf 224' oder die Marge für den minimalen Pfad beträgt 2,345 ns. Da beide positiv sind, erfüllt die Eingabeschnittstelle host[7] die Zeitsteuerungserfordernisse.
-
9 ist eine vergrößerte Ansicht, um zu zeigen, dass Jitter ebenfalls in der kombinierten Wellenform enthalten ist. Bei starker Vergrößerung kann Jitter um den Aufnahmetaktgeberflanke-1-Übergang, bezeichnet durch Pfeile 225, gesehen werden.
-
10A ist ein Screenshot eines Abschnitts eines Excel-Zusammenfassungsarbeitsblatts von Ausgabeschnittstellen für einen gegebenen ASIC; und 10B ist ein vergrößerter Abschnitt einer berechneten angezeigten kombinierten Zeitsteuerungswellenform für eine ausgewählte Ausgabeschnittstelle dex[15] des ASIC gemäß 10A, um einen außerhalb-der-Zeitsteuerung-Zustand für die Schnittstelle zu veranschaulichen. Hier haben, für eine Reihe von „dex“-Ausgangsschnittstellen, die kombinierten Max/Min-Zeitsteuerungswellenformen für den maximalen Pfad Verletzungen in dem Aufnahmefenster für den maximalen Pfad; tatsächlich ist jede außerhalb des Bereichs. Zum Beispiel wurde Ausgangsschnittstelle dex[15] zur Sichtung ausgewählt und die kombinierte Zeitsteuerungswellenform wurde unterhalb des Excel-Zusammenfassungs-Screenshots für einen gegebenen ASIC angezeigt. Wohingegen der gesamte Zeitsteuerungsleerlauf 224' (Marge) für die minimale Wellenform im Bereich ist (1,750 ns), verletzt der Gesamtzeitsteuerungsleerlauf 224 für den maximalen Pfad die Zeitsteuerungsanforderungen (-0,342 ns).
-
Die Zeitsteuerungsverletzung bedeutet, dass der spezifische Zeitsteuerungspfad das zur Verfügung stehende Zeitsteuerungsbudget überschreitet. Die korrektiven Handlungen, die dem Entwickler zur Verfügung stehen, können von verschiedener Art sein; der Entwickler wird zunächst auf jene blicken, welche keine Designänderung erfordern. Eine Möglichkeit könnte sein, dass eine Definition zu dem STA-Tool zu ändern, wobei ein Beispiel dafür ist, SODmax von -1,400 ns auf -1,000 ns zu ändern (was den Aufnahmetaktgeber um 0,400 ns verzögert). Die zusätzliche 0,400 ns Verzögerung wird den gesamten Zeitsteuerungsleerlauf für den maximalen Pfad genau in die Marge bringen (+ 0,058 ns). Diese Veränderung wird lediglich erforderlich machen, das Zeitsteuerungsbegrenzungsmodul 15 in 1 durchzuführen und dann das STA-Tool 12, um einen anderen maximalen und minimalen ASCII-Zeitsteuerungsbericht zu erzeugen. Dies wäre eine vergleichsweise „schmerzärmste“ Änderung, welche keine Designänderung erforderlich machte. Eine andere mögliche Veränderung, um den Zeitsteuerungspfad in das zulässige Zeitsteuerungsbudget zu verbringen, könnte die Einfügung stärkerer Zellen in dem verletzenden Zeitsteuerungspfad oder das Vorstellen des Auslösetaktgebers durch Einfügen stärkerer Zellen in den Auslösetaktgeberpfad sein. Dies wird es erforderlich machen, das ECO-Werkzeug 14 in 1 zu betreiben, gefolgt durch das Layout-Werkzeug 11 und dann Neuerzeugen von Zeitsteuerungsberichten im STA-Tool 12. Wenn irgendeine dieser Lösungen nicht hilft, mag dies zu einer Designänderung führen, welche die „schmerzhafteste“ Möglichkeit für den Designer und die längste für den Zeitplan ist, welche das RTL-Änderungs- und Synthese-Tool 13 in 1 erfordert.
-
11 ist ein Blockdiagramm, um ein Beispiel eines Einzelzyklus gegenüber mehrzyklus-logischer Clouds zu veranschaulichen; und 12 ist ein Zeitsteuerungsdiagramm, um den Unterschied zwischen dem CLK gegenüber dem Slow CLK, welches in 11 FF5 auslöst, zu veranschaulichen.
-
Standardmäßig führt das STA Tool 12 Zeitsteuerungsberechnungen basierend auf Einzeltaktgeberzyklusverhalten durch. Dies sind Fälle, aufgrund des Vorhandenseins von langsamer Logik innerhalb eines ASIC oder FPGA, in denen ein Mehrfachtaktgeberzyklusverhalten erforderlich ist. Eine Art, Multizyklenverhalten zu erklären, ist, es zu vergleichen gegenüber Einzelzyklusverhalten. Bezugnehmend auf 11 sind dort einige logische Clouds dargestellt, gekennzeichnet „Logic“, zwischen Flip Flops, welche durch einen ähnlichen Zeitgeber angetrieben werden, gekennzeichnet „CLK“. Logische Clouds sollten Zeitsteuerung in einem einzelnen Taktgeberzyklus erfüllen, jedoch erhält die logische Cloud in 11, welche als „Slow Logic“ gekennzeichnet ist, eine entspannte Zeitsteuerung (das heißt ihr wird zugestanden, die Zeitsteuerung in mehr als einem Zyklus zu erreichen), welche sie erfüllen sollte, definiert durch ein Gate-Signal, in der Fig. durch „enable“ gekennzeichnet.
-
Bezugnehmend nun auf 12 „öffnet“ das „enable“-Signal das Tor alle vordefinierte Anzahl von „CLK“-Zyklen und löst Flop FF5 aus, um nur auf dem vordefinierten Zyklus aufzuzeichnen. Dementsprechend liefert die obige Beschreibung von 11 und 12 eine Einleitung in MultizyklusPfad „MCP“-Fragen in elektronischen Geräten wie zum Beispiel ASICs und FPGAs.
-
In dem Falle einer MCP-Analyse, werden bestimmte Zeitsteuerungsdefinitionen, als Zeitsteuerungsausnahmen, benötigt, um das STA Tool über das aktuelle Verhalten der Logik innerhalb des ASIC/FPGA zu „unterrichten“. Basierend auf den MCP-Definitionen erzeugt das STA Tool MCP-Zeitsteuerungsberichte, welche komplexer zu analysieren und vom Entwickler zu verstehen sind als einzelne Taktgeberzyklusberichte, insbesondere minimale MCP. Die minimale MCP-Analyse, da sie im Vergleich zu maximaler NCP gemessen wird, erfordert Überprüfen sowohl maximaler MCP und minimaler MCP, deshalb kann letztere nicht einfach abgeleitet werden.
-
13 ist die kombinierte Zeitsteuerungswellenform gemäß 7 beschriftet mit Daten, welche min MCP und max MCP wiederspiegeln, welche für die Ausgabeschnittstelle mfio(2) eines ASIC ermittelt wurden. Die kombinierte Zeitsteuerungswellenform für eine gegebene Schnittstelle oder Pin eines ASIC/FPGA kann verwendet werden, um max MCP- und min MCP-Werte zu ermitteln, hier gelegentlich auch als „min MCP- und max MCP-Definitionen“ bezeichnet. Das vom Prozessor 120 iterierte Software-Programm wird weiter ausgestaltet, um den min MCP-Wert, basierend auf CCED, zu berechnen und dem ASIC- oder FPGA-Designer eine klare Visualisierung mittels der kombinierten Wellenform auf der Anzeige 130 anzubieten.
-
Bezugnehmend auf 13 ist die Periode des schnellen Taktgebers (AFERXCK) 6,25 ns, die Periode des langsamen Taktgebers (Spick (f) beträgt 50 ns. Hiervon ausgehend wird der max MCP-Wert als 12-6=6 berechnet, was bedeutet, dass die Logik Cloud zwischen dem Flop, welcher von dem schnellen Taktgeber (Auslösetaktgeber AFERXCK) bei Zeit 37,5 ns (Taktgeberauslöseflanke 6) betrieben wird, ihre Aufgaben innerhalb sechs voller Zyklen (steigende Flanke zu steigender Flanke) des schnellen Taktgebers fertigzustellen, bevor sie von dem Flop, der von dem langsamen Taktgeber (Spick (f)) bei Zeit 75 ns abgefragt wird. Dies führt zu maximaler Marge von 30,518 ns. Anschaulich kann dann der maximale MCP-Wert definiert werden als Taktgeberflankenabstand (in Zyklen) in dem schnellen Taktgeber zwischen Auslösetaktgeberflanke 208 (Flanke 6) und wo die Aufnahmetaktgeberflanke 219 schneiden würden - bezogen auf Zeitsteuerung (bei 75 ns auf AFERXCK, oder Flanke 12), das heißt, wenn der Flop, welcher von dem langsamen Taktgeber (hier Spick (f)), wie zum Beispiel in 12 gezeigt, angetrieben wird, den Flop abfragt, welcher von dem schnellen Taktgeber angetrieben wird.
-
Der min MCP-Wert wird berechnet als Differenz in dem schnellen Taktgeberflanken von AFERXCK (Auslösetaktgeberflanken 208 (Auslösetaktgeberflanke von maximaler Zeitsteuerungswellenform), und 208' (Auslösetaktgeberflanke der minimalen Wellenform verschoben um CCED, oder nächste Auslösetaktgeberflanke)), welche 14-6=8 beträgt. Mit anderen Worten bedeutet dies, dass der durch den schnellen Taktgeber getriggerte Flop in 7 die nächsten Daten lediglich acht schnelle Taktgeberzyklen nachdem die vorherigen Daten ausgelöst wurden, auslösen wird. Dies führt zu minimaler Marge von 4,173 ns. Auf diese Weise kann die min MCP-Definition definiert werden als Taktgeberflankenabstand zwischen Auslösetaktgeberflanke 208 und nächster Auslösetaktgeberflanke 208' (und folgende), somit falls der Entwickler definiert min MCP=8, Auslösetaktgeberflanken für nächste/neue Daten erfolgen bei Flanke 6/37,5 ns, Flanke 14, 87,5 ns, Flanke 22, 122,5 ns etc.
-
14 ist eine kombinierte Zeitsteuerungswellenform für Eingabeschnittstellendaten eines ASIC bei welchem Verifikation des min MCP eine falsche min MCP-Definition anzeigt. Berechnende MCP-Definition ist im Allgemeinen komplex und führt mit größter Wahrscheinlichkeit zu Definitionsfehlern, welche lediglich durch mehrere Iterationen gelöst werden oder in Schlimmstfällen unentdeckt bleiben, was zu einem sehr teuren Produktionsfehler führen könnte. Insbesondere ist die Berechnung der min MCP-Definitionen der komplexe Teil, da dessen Definition relativ zu dem max MCP-Wert ist. Daher wird eine kombinierte Zeitsteuerungswellenform von max und min benötigt, um die min MCP-Definition zu berechnen und deren Richtigkeit zu bestätigen.
-
14 zeigt eine fehlerhafte MCP-Definition, dargestellt visuell durch die kombinierte Wellenform, welche ein falsches Bild einer optimistischen Zeitsteuerungsmarge erzeugt. Wie in 14 gezeigt, für die Eingangsschnittstellen „Daten“, wird die min MCP-Definition berechnet aus dem schnellen Taktgeber, hier dem Aufnahmetaktgeber 207. Mit Bezug auf den Aufnahmetaktgeber 207 (schneller Taktgeber), ist der min MCP 11 - 0 = 11 und die min Marge (Gesamtzeitsteuerungsleerlauf 224' des minimalen Zeitsteuerungsberichts) von 19,514 ns ist daher zu optimistisch. Das durch den Prozessor 120 iterierte Software-Programm ist in der Lage, min MCP zu berechnen und den ASIC-oder FPGA-Entwickler zu warnen, dass die min MCP-Definition fehlerhaft definiert wurde.
-
Der CCED in diesem Falle ist: 30,8 ns (219) -0 ns (230) = 30,8. Daher ist die nächste Auslöseflanke (208') verschoben von Auslöseflanke 208) um 30,8 ns, und landet bei 44,8 ns. Solch eine Verschiebung erzeugt einen nicht-periodischen Abstand von 11 schnellen Taktgeberflanken. Diese nicht-periodische Distanz wird realisiert durch Berechnung des Verhältnisses zwischen dem langsamen Taktgeber und schnellen Taktgeber, welche 28 : 2,8 = 10 beträgt. Dies führt zur Detektion des min MCP-Fehlers, welcher 11 - 10 = 1 beträgt. Solch eine Differenz bedeutet, dass der ASIC-Entwickler eine fehlerhafte min MCP-Definition definierte, um 1 größer.
-
Entsprechend ermöglicht die CCED-Kalkulation die visuelle Feststellung, dass max- und min-Auslösetaktgeber nicht präzise auf denselben Flanken überlappen, wie erkennbar aufgrund der gestaffelten oder überlappenden Auslösetaktgeber in 14. Auf diese Weise bildet die visuelle Überprüfung der korrekten Überlappung von max- und min-Idealen (das heißt ohne reale Verzögerungen) Auslösetaktgeberflanken in der kombinierten Wellenform sobald CCED berechnet wurde, Teil der min MCP-Wertverifizierung durch den Entwickler. Der Fehler in der Definition für min MCP ist, dass Aufnahmeflanke 11 (bei 219) analog zu Flanke 1 und nicht Flanke 0 (gezeigt durch Pfeil 230) ist, wie irrtümlich in 14 gezeigt. Dies liegt daran, dass Definitionen für ASIC/FPGA periodisch ausgelegt sind und STA-Messungen zwischen synchronisierten Taktgebern, welche periodisch sind, durchgeführt werden. Auf diese Weise kann der Entwickler, wenn der relative Punkt die Aufnahmeflanke 11 bei 30,8 ns ist, basierend auf dem periodischen Verhältnis oder Beziehung zwischen den Taktgeberperioden (Periode = 28 ns für langsamen Taktgeber, 2,8 ns für schnellen Taktgeber), aus der kombinierten Wellenform ersehen, dass die vorhergehende Aufnahmeflanke in dem schnellen Taktgeber bei Flanke 1 bei 2,8 ns liegen sollte und die nächste Aufnahmeflanke bei Flanke 21 bei 58,8 ns liegen sollte, das heißt, der Abstand muss das Taktgeberverhältnis zwischen den Taktgebern 50 : 2,8 = 10 Taktgeberperioden oder 10*2, 8 = 28 ns sein, da anderenfalls das relative Verhalten nicht periodisch sein wird.
-
Daher kann ein berechneter min MCP-Wert als richtig bestätigt werden basierend auf (a) Berechnung von x-y-Koordinaten von Auslöse-Max- und Min-Taktgebern , (b) Berechnung des Verhältnisses der Auslöse- und Aufnahme-Taktgeberperioden und (b) Überprüfen des korrekten Überlappens von Auslöse-Max- und Min-Ideal- (ohne reale Verzögerungen) Taktgeberflanken der kombinierten Wellenform durch die entwicklerseitige Sichtung der kombinierten Wellenform. Wenn eine Verletzung festgestellt wird, kann der min MCP-Wert (d.h., min MCP Definition an das STA Tool) durch den Entwickler korrigiert werden. Als solche stellt die kombinierte Zeitsteuerungswellenform im Falle eines Multizyklus-Zeitsteuerungspfads in dem ASIC (in einer gegebenen Schnittstelle oder Pin eines ASIC) dem Entwickler Informationen über die Richtigkeit oder Genauigkeit des min MCP Wertes (d.h., min MCP Definition an das STA Tool) zur Verfügung.
-
15 ist eine kombinierte Zeitsteuerungswellenform für dieselbe Eingangsschnittstelle in 14 nach Ingenieurskorrektur basierend auf einer korrigierten min MCP Definition. Sobald der ASIC/FPGA Designer sich über den Fehler bewusst ist, wird die min MCP Definition angewendet. Zum Beispiel verändert der ASIC/FPGA Entwickler die Definition von min MCP an das STA Tool und betreibt das STA Tool erneut, um richtige maximale und minimale Zeitsteuerungsberichte zu erzeugen, um die kombinierte Zeitsteuerungswellenform für die Eingangsschnittstelle erneut zu erzeugen. 15 zeigt dieselbe Wellenform mit dem korrigierten min MCP. Der korrigierte min MCP beträgt nun 11 - 1 = 10 und die min Marge (korrigiert durch Anpassungen an die min MCP Definition vor der erneuten Ausführung des STA Tools 12) beträgt nur 16,265 ns im Gegensatz zu 19,514 ns.
-
Daher beschreiben die beispielhaften Ausführungsformen Verfahren und ein System zum Umwandeln von Zeitsteuerungsberichten in Zeitsteuerungswellenformen, welche dem ASIC/FPGA Ingenieur die gewünschten Daten zur Verfügung stellen, um jegliche Zeitsteuerungspfade in einfacher aber ausgefeilter Art und Weise analysieren. Die Anzeige von maximalen, minimalen und kombinierten Zeitsteuerungswellenformen stellt eine Vielfalt von relativen Zeitsteuerungsdaten zur Verfügung, um schnell festzustellen, visuell, ob ein gegebener Zeitsteuerungspfad eine Zeitsteuerungsvorgabe erfüllt. Zusätzlich kann die Methodik automatisch den min MCP Wert und max MCP Wert berechnen und die Wellenformdaten können Korrekturen an die min MCP Definition anbieten/vorschlagen, falls Fehler aufgedeckt werden.
-
Obwohl Verfahren und System in Bezug auf den Empfang von Zeitsteuerungsberichtdaten beschrieben wurden, welche von einem STA Tool erzeugt wurden, sind die beispielshaften Ausführungsformen nicht in dieser Weise beschränkt. Da STA Tool Entwickler eine Möglichkeit haben, maximale und minimale ASCII Zeitsteuerungsberichte intern zu erzeugen, könnte die hierin beschriebene Methodik in das STA Tool integriert werden, sodass STA Tool Hersteller die Zeitsteuerungswellenformen aus ASCII Zeitsteuerungsberichtsdaten, welche intern darin erzeugt werden, erzeugen können. Darüber hinaus kann die beispielhafte Methodik statt zum Erzeugen der Zeitsteuerungswellenformen aus ASCII Zeitsteuerungsberichten auf Skripte oder Subroutinen/Algorithmen angewendet werden, welche in die STA Tool Software geschrieben sind, welche spezielle STA Tool Definitionen ansprechen, (wie zum Beispiel ausgewählte Daten für maximale und minimale Zeitsteuerungspfade einer externen Schnittstelle oder internen Pin eines ASIC) von der internen Datenbank oder dem Speicher des STA Tools, und kann die gewünschten x-y-Koordinaten der maximalen, minimalen und kombinierten Wellenformen erzeugen, ohne den Zwischenschritt des Erzeugens von ASCII Zeitsteuerungsberichten, welche in einen internen oder externen Speicher eingelesen und dann auf Zeitsteuerungspunkte geparst werden, um die Wellenformen aufzubauen.
-
Daher umschließen in einer alternativen Ausgestaltung die beispielhaften Ausgestaltungsformen ferner ein Verfahren zum Erzeugen einer kombinierten Zeitsteuerungswellenform von maximalen und minimalen Zeitsteuerungsdaten für eine gegebene externe Schnittstelle oder interne Pin eines ASIC, welche in einer STA Tool-Datenbank abgespeichert ist. Bei dieser Methode und unter Steuerung eines Software-Programms, welches von dem STA Tool-Prozessor oder Prozessormediums iteriert wird, werden ausgewählte Zeitsteuerungsdaten im Zusammenhang mit einem minimalen Pfad der Schnittstelle oder Pin direkt aus der internen Datenbank des STA Tool ausgelesen und in X-Y-Koordinaten für eine minimale Zeitsteuerungswellenform umgewandelt ausgewählte Zeitsteuerungsdaten im Zusammenhang mit einem maximalen Pfad der Schnittstelle oder Pin wird ebenfalls unmittelbar aus der internen Datenbank ausgelesen und in X-Y-Koordinaten für eine maximale Zeitsteuerungswellenform umgewandelt. Die X-Y-Koordinaten der minimalen Zeitsteuerungswellenform werden um den Anpassungsfaktor, CCED, wie oben beschrieben verschoben, und durch einen Algorithmus des Software-Programms, welches zum Beispiel von dem STA Tool-Prozessor ausgelöst wird, berechnet, um mit den X-Y-Koordinaten der maximalen Zeitsteuerungswellenform ausgerichtet zu sein und die kombinierte Zeitsteuerungswellenform zu erzeugen.
-
Diese Methodik kann durch einen Algorithmus oder ein Software-Programm, welches in die STA Tool-Prozessorlogik (wie zum Beispiel STA Tool 12) selber integriert ist, implementiert werden. Beispielsweise kann der STA Tool-Hersteller, mit der Kenntnis über den Inhalt und Ort von Zeitsteuerungspunktdaten innerhalb der internen Datenbank des STA Tool, das Auslesen von gewünschten Datenpunkten in Bezug auf die Taktgeber, Verzögerungen und andere Zeitsteuerungsparameter oder STA Tool-Definitionen, welche zur Berechnung der X-Y-Koordinaten für die Auslöse- und Aufnahmetaktgeber, beispielsweise, die max, min, SODmax, SODmin, (oder SIDmax, SIDmin), Gesamtzeitsteuerungsleerlauf, (Margen), CCED, Taktgeberauslöse- und Abtastflanken, usw. für die in den 4, 6 und/oder 7 gezeigten maximalen, minimalen und kombinierten Zeitsteuerungswellenformen programmieren. Auf diese Definitionen könnte direkt von der internen Datenbank des STA Tool zugegriffen werden, anstatt zunächst maximale und minimale ASCII-Zeitsteuerungsberichte zu erzeugen und diese danach unter Auswahl von Zeitsteuerungspunkten aus den vollständigen Berichten auszulesen, um die X-Y-Koordinaten, wie in den vorhergehenden Ausführungsformen beschrieben, zu berechnen.
-
Das STA Tool kann ausgebildet sein, um eine Anzeigeschnittstelle aufzuweisen. Die kombinierte Zeitsteuerungswellenform wird auf diese Weise mit den X-Y-Koordinaten bei maximalen Zeitsteuerungswellenformen und der verschobenen X-Y-Koordinaten der minimalen Zeitsteuerungswellenformen erzeugt, und kann auf der Anzeigeschnittstelle des STA Tools angezeigt werden. Auf diese Weise kann die angezeigte kombinierte Zeitsteuerungswellenform Gegenstand von visueller Sichtung durch einen Entwickler und/oder STA Tool-Ingenieur sein, um auszuwerten, ob die gegebene externe Schnittstelle oder interne Pin des ASIC benötigte Zeitsteuerungsspezifikationen erfüllt, wie vorhergehend beschrieben.
-
Wie oben mit Bezug auf 13 bis 15 beschrieben, und im Fall eines Multizyklenzeitsteuerungspfads in einem ASIC oder einer gegebenen Schnittstelle oder Pin des ASIC, kann das gleiche Computerprogramm oder -software in dem STA Tool selber zur Erzeugung von kombinierten Zeitsteuerungswellenformen einen weiteren Algorithmus oder Unterprogramm beinhalten, um automatisch die min und max MCP-Definitionen aus kombinierten Wellenformen, wie zuvor beschrieben, zu berechnen. Diese Berechnungen können automatisch durchgeführt werden (basierend auf CCED, Berechnung von X-Y-Koordinaten von Auslösungsmax- und -mintaktgebern, Berechnung von Taktgeberperiodenverhältnis zwischen Auslösungs- und Aufnahmetaktgeberperioden) und anschließend visuell überprüft werden durch die Sichtung des Entwicklers der erzeugten kombinierten Zeitsteuerungswellenformendaten (das heißt, visuelles Überprüfen eines korrekten Überlappens von maximalen und minimalen idealen Auslösetaktgeberflanken in der kombinierten Wellenform), um die Korrektheit des min MCP-Werts zu verifizieren und/oder um Änderungen zu korrigieren/vorzuschlagen, sollte die Definition als falsch ermittelt werden.