DE10345150B3 - Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen - Google Patents

Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen Download PDF

Info

Publication number
DE10345150B3
DE10345150B3 DE10345150A DE10345150A DE10345150B3 DE 10345150 B3 DE10345150 B3 DE 10345150B3 DE 10345150 A DE10345150 A DE 10345150A DE 10345150 A DE10345150 A DE 10345150A DE 10345150 B3 DE10345150 B3 DE 10345150B3
Authority
DE
Germany
Prior art keywords
hardware
digital circuit
state
clock signal
design
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE10345150A
Other languages
English (en)
Inventor
Douglas Richard Beard
Holger Eisenreich
Kai Eichhorn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Priority to DE10345150A priority Critical patent/DE10345150B3/de
Priority to US10/858,601 priority patent/US7502969B2/en
Application granted granted Critical
Publication of DE10345150B3 publication Critical patent/DE10345150B3/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Abstract

Durch Bereitstellen mindestens zweier Hardwareausführungen eines spezifizierten Schaltungsentwurfs wird ein effizientes Fehlererkennungssystem bereitgestellt, das eine 100%ige Übersichtlichkeit über den Schaltungsentwurf bei einer äußerst reduzierten Simulationszeit auf Grund eines zeitverschobenen Betriebs der mindestens zwei Hardwareausführungen ermöglicht. Beim Erfassen eines spezifizierten Abbruchzustandes in der führenden Hardwareausführung kann dann der entsprechende verzögerte Zustand der zeitverschobenen Hardwareausführung für eine nachfolgende Simulation lediglich eines relevanten Bereichs des Testablaufes, der zu dem spezifizierten Abbruchzustand geführt hat, verwendet werden.

Description

  • GEBIET DER VORLIEGENDEN ERFINDUNG
  • Die vorliegende Erfindung betrifft das Gebiet der Analyse des Funktionsverhaltens digitaler Schaltungen zumindest teilweise in Echtzeit oder nahezu in Echtzeit und Anwendung einer Hardwareimplementierung des Schaltungsentwurfs, etwa eines Halbleiterchips mit dem Schaltungsentwurf, einer Prototypversion, einem in der Anwendung programmierbaren Gatearray und dergleichen.
  • BESCHREIBUNG DES STANDS DER TECHNIK
  • Die Herstellung neuer Arten digitaler integrierter Schaltungen oder integrierter Schaltungen mit einem digitalen Schaltungsteil erfordert typischerweise eine gewissenhafte Überprüfung der Funktionalität des Schaltungsentwurfs bzw. des Schaltungsdesigns vor der eigentlichen Massenproduktion. D. h., das Verhalten der Schaltung muss mit der gewünschten Funktionalität für beliebige spezifizierte Betriebsbedingungen übereinstimmen. Auf Grund der immensen Kosten des Herstellungsprozesses für wenige integrierte Schaltungen wird die Schaltungsüberprüfung häufig vor dem eigentlichen Herstellen von Prototypversionen auf Silizium durchgeführt. Eine Möglichkeit in dieser Hinsicht ist die Konversion des digitalen Schaltungsentwurfs in ein entsprechendes Schaltungsmodell, um die Funktion der Schaltung mittels Software zu simulieren. Für relativ komplexe Schaltungsaufbauten erfordert die Simulation jedoch großen Aufwand hinsichtlich der Zeit und der Prozessressourcen und kann einige Wochen bis einige Monate beanspruchen. Somit kann die Simulationszeit ungefähr 60% bis 80% zur Gesamtentwicklungszeit eines Projekts beitragen. Folglich ist die Softwaresimulation des digitalen Schaltungsentwurfs, obwohl diese eine 100%ige Übersicht über den Entwurf bietet, d. h. dieses bietet die Möglichkeit den vollständigen Zustand der Schaltung zu einem beliebigen gegebenen Zeitpunkt zu beobachten, ein wenig attraktiver Ansatz in Hinblick auf die ausgedehnte Zeitdauer von der Gestaltung bis zum tatsächlichen Produzieren eines spezifizierten digitalen Schaltungsentwurfs.
  • Aus diesem Grunde wurden Versuche unternommen, die Schaltungsüberprüfungsphase durch Bereitstellen von Hardwarekomponenten zu beschleunigen, die das Schaltungskon zept oder Teile davon repräsentieren, in Kombination mit einer Softwaresimulation bereitzustellen, wobei ein erhöhter Aufwand an Hardware, der in einem DUT (zu testendes Bauteil) deutlich die Anforderungen hinsichtlich der Softwareressourcen für das Simulieren des Schaltungskonzepts reduzieren kann, wodurch jedoch ebenso das Maß an Übersichtlichkeit über das Schaltungskonzept reduziert wird. Zum Beispiel kann der betrachtete Schaltungsentwurt vollständig oder teilweise durch programmierbare Logikbausteine (PLD's), etwa feldprogrammierbare Gatearrays (FPGA) implementiert werden; die abhängig von der Kapazität des verwendeten PLD einen Betrieb des DUT's mit der Entwurfsgeschwindigkeit oder nahezu mit der Entwurfsgeschwindigkeit ermöglicht, mit der die integrierte Schaltung nach der Herstellung betrieben werden soll. Eine Hardwarerepräsentation des Schaltungskonzepts oder eines Teils davon mittels eines programmierbaren Logikbausteins ermöglicht im Gegensatz zur Herstellung eines Testsiliziumchips eine schnelle Implementierung und eröffnet bei Bedarf die Möglichkeit einer Umgestaltung des Schaltungsentwurfs durch entsprechendes erneutes Konfigurieren des Logikbausteins. Ferner ermöglicht das Betreiben der Hardwaredarstellung bzw. Hardwareausführung in einem Zielsystem verbesserte Möglichkeiten der Entwurfsverifizierung und unterstützt ferner die Softwareentwicklung für das Zielsystem, wobei eine gegenseitige Anpassung der Software für das Zielsystem und der Hardwaredarstellung einfach erreicht werden kann, indem die Software und der programmierbare Logikbaustein umprogrammiert werden. Trotz dieser Vorteile führt die Verifizierung des Schaltungsentwurfs auf Hardwarebasis zu einer deutlich reduzierten Übersichtlichkeit über den Schaltungsentwurt im Vergleich zu der Softwaresimulierung des Schaltungsentwurfs, wodurch auch drastisch die "Debug"-Möglichkeiten, d. h. die Fähigkeit zur Erkennung und Behebung von Fehlern in dem Schaltungsentwurf, verringert werden.
  • Während die Softwaresimulierung, die eine erhöhte Übersichtlichkeit über den Schaltungsentwurf und damit Fehlerbehebungsmöglichkeiten bietet, ausgedehnte Perioden für das Simulieren des betrachteten Schaltungsentwurts erfordert, macht die Verifizierung auf Hardware- oder Prototypenbasis, die eine erhöhte Betriebsgeschwindigkeit des DUT's und damit ein höheres Maß an Ähnlichkeit zu tatsächlichen Betriebsbedingungen in einem Zielsystem liefert, das Fehlererkennen, d. h. das Identifizieren der Ursachen eines unzulässigen Verhaltens schwierig.
  • Die Patentschrift US 5 923 567 A offenbart ein Testsystem zum Testen von integrierten Schaltungen, wie z. B. Mikroprozessoren. Das Testsystem kann Testvektoren sowohl mit einem Simulator für ein entsprechendes DUT (zu testendes Bauteil) als auch mit einem tatsächlichen DUT austauschen und diese analysieren, wobei der Simulator bereits vor der Fertigung des Bauteils, das die zu testende integrierte Schaltung aufweist, eingesetzt werden kann, um den Entwicklungs- und Fertigungsprozess für das Bauteil effizienter zu gestalten.
  • Die Patentschrift US 6 336 088 B1 offenbart ein Verfahren und eine Vorrichtung zum Testen von Multiprozessor-Systemen. Mehrere Multiport-Sytemeinheiten können gleichzeitig unabhängig voneinander betrieben werden und können bei bestimmten Ereignissen durch Anhalten entsprechender Systemeinheiten vorübergehend synchronisiert werden.
  • Angesichts der zuvor erläuterten Situation besteht daher ein Bedarf für eine verbesserte Technik zum Verifizieren eines digitalen Schaltungsentwurfs in einer Zeit- und kosteneffi zienten Weise, wobei dennoch ein hohes Maß an Übersichtlichkeit über den Schaltungsentwurf während der Testphase gegeben ist.
  • ÜBERBLICK ÜBER DIE VORLIEGENDE ERFINDUNG
  • Im Allgemeinen richtet sich die vorliegende Erfindung an eine Technik, die die Analyse eines digitalen Schaltungsentwurfs oder eines oder mehrerer Bereiche davon zulässt mit der Möglichkeit des Verfolgens des Zustands eines DUT's, wie dies durch Softwaresimulierung ermöglicht wird, während gleichzeitig die Vorteile des Betriebs des DUT's bei hoher Geschwindigkeit, die ähnlich zu der Betriebsgeschwindigkeit ist, die in tatsächlichen Betriebsbedingungen vorgefunden wird, beibehalten bleibt. Gemäß einer anschaulichen Ausführungsform wird dies dadurch erreicht, dass mindestens zwei Hardwarerepräsentationen – etwa programmierbare Logikbausteine, die Flexibilität hinsichtlich der Möglichkeit des Auslesens, des Zugriffs auf interne Signale, z. B. nach Synchronisierstufen im Falle eines asynchronen Schaltungsentwurfs mit mehreren Taktsignalen, Prototypen oder tatsächliche Siliziumimplementierungen – eines spezifizierten digitalen Schaltungsentwurfs oder eines Teiles davon in einer zeitverschobenen Weise betrieben werden, wobei nach dem Detektieren eines vordefinierten Zustandes der (zeitlich) führenden Hardwaredarstellung ein entsprechend verzögerter Zustand; der von der verzögerten Hardwaredarstellung erhalten wird, für die Analyse des Schaltungsentwurfs auf der Grundlage des verzögerten Zustandes der zweiten Hardwaredarstellung verwendet werden kann. Zum Beispiel kann die Initialisierung einer Softwaresimulierung beim Antreffen einer spezifizierten Bedingung der führenden Hardwarerepräsentation initiiert werden, um damit das Schaltungsverhalten, beginnend von dem durch die verzögerte Hardwaredarstellung gewonnenen Zustand, in Bezug auf die spezifizierte Bedingungen zu analysieren, die einen beliebigen interessierenden Schaltungszustand oder einen unzulässigen oder nicht spezifizierten Entwurfszustand darstellen kann.
  • Gemäß einer weiteren anschaulichen Ausführungsform umfasst ein Verfahren das Betreiben einer zweiten Hardwaredarstellung eines digitalen Schaltungsentwurfs in einer zeitverzögerten Weise in Bezug auf eine erste Hardwaredarstellung des digitalen Schaltungsentwurfs. Anschließend wird bei Auftreten eines vorbestimmten Abbruchzustandes in der ersten Hardwaredarstellung ein funktionales Verhalten des digitalen Schaltungsentwurfs auf der Grundlage eines Zustands der zweiten Hardwaredarstellung analysiert.
  • Gemäß einer weiteren anschaulichen Ausführungsform der vorliegenden Erfindung umfasst eine Vorrichtung zum Analysieren eines digitalen Schaltungsentwurfs eine erste Hardwaredarstellung des digitalen Schaltungsentwurts und eine zweite Hardwaredarstellung des digitalen Schaltungsentwurts. Eine Schnittstelle ist vorgesehen und ist mit der zweiten Hardwaredarstellung verbunden, wobei die Schnittstelle ausgebildet ist, Zustandsdaten der zweiten Hardwaredarstellung zu empfangen. Ferner umfasst die Vorrichtung einen Zustandsmonitor, der ausgebildet ist, einen spezifizierten Zustand der ersten Hardwaredarstellung zu überwachen.
  • Gemäß einer noch weiteren anschaulichen Ausführungsform umfasst ein System zum Analysieren eines digitalen Schaltungsentwurfs eine erste Hardwaredarstellung des digitalen Schaltungsentwurfs und eine zweite Hardwaredarstellung des digitalen Schaltungsentwurfs. Ein Eingabeabschnitt ist vorgesehen und so ausgestaltet, um einen spezifizierten Satz an Eingangssignalen der ersten Hardwaredarstellung zuzuführen und den spezifizierten Satz an Eingangssignalen der zweiten Hardwaredarstellung in einer zeitverzögerten Weise zuzuführen. Das System umfasst ferner einen Simulator mit einem Simulationsmodell des spezifizierten digitalen Schaltungsentwurfs und einen Zustandsmonitor, der funktionsmäßig mit der ersten Hardwaredarstellung verbunden und so ausgebildet ist, um einen vordefinierten Zustand der ersten Hardwaredarstellung zu erkennen. Des weiteren umfasst das System eine Schnittstelle, die zwischen der zweiten Hardwaredarstellung und dem Simulator angeschlossen ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Weitere Vorteile, Aufgaben und Ausführungsformen der vorliegenden Erfindung sind in den angefügten Patentansprüchen definiert und gehen deutlicher aus der folgenden detaillierten Beschreibung hervor, wenn diese mit Bezug zu den begleitenden Zeichnungen studiert wird; es zeigen:
  • 1a schematisch ein Schaltbild einer Vorrichten zum Analysieren eines digitalen Schaltungsentwurfs gemäß einer anschaulichen Ausführungsform;
  • 1b schematisch ein Schaltbild einer Vorrichtung zum Analysieren eines digitalen Schaltungsentwurfs ähnlich zu der Vorrichtung aus 1a;
  • 2 schematisch ein Zeitablaufdiagramm, das den zeitverschobenen Betrieb eines ersten DUT und eines zweiten DUT gemäß der in 1 gezeigten Vorrichtung darstellt;
  • 3 schematisch ein Blockschaltbild einer weiteren anschaulichen Ausführungsform, wobei ein Puffer verwendet ist, um die Eingangssignale, die einem von zwei DUT's zugeführt werden, zu verzögern, um damit einen zeitverschobenen Betrieb zu ermöglichen.
  • 4 schematisch ein Blockschaltbild, das eine Vorrichtung mit Hardwaredarstellungen eines digitalen Schaltungsentwurts zeigt, wobei zwei oder mehrere asynchrone Taktsignalbereiche enthalten sind, und wobei den Taktsignalbereich wechselnde Signale zeitlich gespeichert und einem zweiten DUT in einen zeitverzögerten Weise zugeführt werden; und
  • 5 schematisch eine Vorrichtung zum Betreiben zweier Hardwaredarstellungen mit zwei oder mehreren asynchronen Taktsignalbereichen in einer im Wesentlichen zeitverschobenen Weise, wobei die Synchronität zwischen den zeitverschobenen Hardwaredarstellungen erreicht wird, indem ein Referenztaktsignal eingeführt wird, mit dem die Taktsignale der einzelnen Taktsignalbereiche korreliert sind.
  • DETAILLILERTE BESCHREIBUNG DER ERFINDUNG
  • Obwohl die vorliegende Erfindung mit Bezug zu den Ausführungsformen beschrieben ist, wie sie in der folgenden detaillierten Beschreibung sowie in den Zeichnungen dargestellt sind, sollte es selbstverständlich sein, dass die folgende detaillierte Beschreibung sowie die Zeichnungen nicht beabsichtigen, die vorliegende Erfindung auf die speziellen anschaulichen offenbarten Ausführungsformen einzuschränken, sondern die beschriebenen anschaulichen Ausführungsformen stellen lediglich beispielhaft die diversen Aspekte der vorliegenden Erfindung dar, deren Schutzbereich durch die angefügten Patentansprüche definiert ist.
  • Wie zuvor erläutert ist, basiert die vorliegende Erfindung auf dem Konzept, dass mindestens zwei Hardwaredarstellungen, d. h. DUT's für einen zu testenden spezifizierten digitalen Schaltungsentwurf, vorgesehen werden und in einer zeitverschobenen Weise so betrieben werden, dass das verzögerte DUT im Wesentlichen die gleiche "Geschichte" "durchlebt" hat, deren Entwicklung dann beispielsweise durch Simulierung beim Auftreten eines vordefinierten Ereignisses in der vorauseilenden DUT analysiert wird. Dabei reduziert die begrenzte Zeitdifferenz zwischen dem spezifizierten Zustand der führenden DUT und einem entsprechenden verzögerten Zustand der verzögerten DUT deutlich die Anforderungen auf der Simulatorseite hinsichtlich der Prozessorressourcen und der Simulationszeit. Gleichzeitig ist während dieser begrenzten Simulationsphase eine 100%ige Übersichtlichkeit über den Schaltungsentwurf gegeben und ermöglicht eine präzise Analyse des Verhaltens der DUT und damit des grundlegenden digitalen Schaltungsentwurfs "in der Nähe" eines interessierenden Zustandes, etwa eines Fehlerzustandes oder dergleichen. Andererseits können wesentliche Testabläufe der DUT's bei hoher Geschwindigkeit, beispielsweise bei nahezu der beabsichtigten Betriebsgeschwindigkeit oder einer anderen interessierenden Geschwindigkeit, abhängig von den Hardwareressourcen und den Fähigkeiten, mit denen die DUT's realisiert sind, durchgeführt werden, so dass die überlegene Flexibilität beim Testen digitaler Schaltungsentwürfe, wie sie durch eine rasche Prototypenherstellung gegeben ist, im Wesentlichen beibehalten bleibt. In anderen Ausführungsformen kann die zweite Hardwaredarstellung in einem Schrittmodus betrieben werden, indem die Taktsignale des Schaltungsentwurfs gesteuert werden, nachdem die erste Hardwaredarstellung einen interessierenden Punkt in Echtzeit erreicht hat. Dabei kann der komplette Zustand der zweiten Hardwaredarstellung, d. h. alle synchronen Speicherelemente, vor dem Ausführen des nächsten Schrittes ausgelesen werden, wodurch eine 100%ige Übersichtlichkeit über den Schaltungsentwurf gegeben ist.
  • Ein vollständige Übersichtlichkeit über den Schaltungsentwurf in der "Nähe" eines interessierenden Zustands des digitalen Schaltungsentwurfs ermöglicht eine effiziente Analyse der digitalen Schaltung beispielsweise in Hinblick auf die Wechselwirkung mit seiner Echtzeitumgebung, beispielsweise für ein zielorientiertes Fehlersuchen in der digitalen Schaltung und auch in ihrer Umgebung, d. h. in der Hardware und Software, oder dies ermöglicht eine Analyse des Leistungsverhaltens und der Hardwareausnutzung. Dies kann die Verifizierung der digitalen Schaltung beschleunigen, indem der Zeitaufwand für beispielsweise Simulationen der digitalen Schaltung und die Softwareentwicklung, d. h. die kombinierte Hardware-Softwareentwicklung und die Systemintegration der digitalen Schaltung reduziert wird.
  • Ferner erlaubt die Verwendung der aufgezeichneten Eingangssignale als Stimuli für einen Simulator das Reduzieren des Aufwandes für die Entwicklung einer Simulationsumgebung einschließlich von Modellen der System/Test/Ziel-Umgebung. Wenn diese Modelle ohnehin erforderlich sind, können die authentischen Echtzeitdaten verwendet werden, um diese Modelle den realen Bedingungen anzupassen.
  • Mit Bezug zu den 1 bis 5 werden nunmehr weitere anschauliche Ausführungsformen detaillierter beschrieben.
  • 1a zeigt schematisch ein System 100 zum Analysieren des Verhaltens eines spezifizierten digitalen Schaltungsentwurfs. Es sollte beachtet werden, dass der betrachtete digitale Schaltungsentwurf den Entwurf einer vollständigen applikationsspezifischen integrierten Schaltung (ASIC), einen interessierenden Teil einer digitalen Schaltung, den digitalen Teil oder Bereich eines Schaltungsentwurfs mit analogen und digitalen Abschnitten, und dergleichen beinhaltet. Somit soll der Begriff "digitaler Schaltungsentwurf", wie er in dieser Anmeldung und in den angefügten Patentansprüchen verwendet ist, in dem oben definierten Sinne verstanden werden, sofern er in der Beschreibung und in den Ansprüchen nicht explizit anders spezifiziert ist. Das System 100 umfasst eine Vorrichtung 110, die die Hardwarekomponenten enthält, die zum Betreiben mindestens zweier Hardwaredarstellungen des interessierenden digitalen Schaltungsentwurfs erforderlich sind. Die Vorrichtung 110 kann an einen Eingangsabschnitt 150 und einen Analyseabschnitt angeschlossen sein, der als ein Simulator 130 dargestellt ist. Die Vorrichtung 110 kann eine erste Hardwaredarstellung 111 des spezifizierten digitalen Schaltungsentwurfs umfassen, die auch als DUT 1 bezeichnet ist. Ferner ist eine zweite Hardwaredarstellung 112 des interessierenden digitalen Schaltungsentwurfs, die auch als DUT 2 bezeichnet ist, in der Vorrichtung 110 vorgesehen, wobei die erste und die zweite Hardwaredarstellung 111, 112 in Form programmierbarer Logikbausteine, etwa feldprogrammierbare Gatearrays, vorgesehen sein können, die geeignet so programmiert sind, um den spezifizierten digitalen Schaltungsentwurf zu repräsentieren. Ferner können die erste und die zweite Hardwaredarstellung 111, 112, wenn diese in Form rekonfigurierbarer Gatearrays vorgesehen sind, beliebige Komponenten aufweisen, wie sie für den korrekten Betrieb der Vorrichtung 110 erforderlich sind. Beispielsweise umfasst, wie in 1a gezeigt ist, die Vorrichtung 110 ferner einen Zustandsmonitor 113, der mit der ersten Hardwaredarstellung 111 mittels einer Schnittstelle 114 verbunden ist. Der Zustandsmonitor 113 kann so ausgestaltet sein, dass ein Zustand der ersten Hard waredarstellung 111 überwacht und mit einem Referenzzustand mit einer vordefinierten "Genauigkeit" verglichen werden kann. D. h., der Zustand der Hardwaredarstellung 111 wird durch den Zustand jeder einzelnen digitalen Komponente, etwa Flip-Flops, Register, interne Speicherabschnitte und dergleichen repräsentiert. Beim Bewerten des Verhaltens des spezifizierten Schaltungsentwurfs muss es jedoch nicht immer erforderlich sein, den Zustand jeder einzelnen Komponente in der ersten Hardwaredarstellung 111 zu beobachten, um eine entsprechende Abbruchbedingung zu definieren, die von dem Zustandsmonitor 113 zu erkennen ist. Beispielsweise kann eine spezielle Kombination mehrerer Flip-Flop-Zustände eine spezielle Bedingung anzeigen, etwa ein ungewünschtes Funktionsverhalten der ersten Hardwaredarstellung 111 und damit des spezifizierten digitalen Schaltungsentwurfs, die dann einfach durch den Zustandsmonitor 113 durch Vergleichen des momentanen "Zustands", d. h. die durch die mehreren Flip-Flop-Zustände repräsentierte digitale Codierung, mit einer vordefinierten Referenzcodierung verglichen wird. Es kann jedoch jede andere Implementierung eines "Hardwareüberprüfers", Triggers oder einer Detektierlogik, ein spezieller Wert auf einem gewissen Signal, etwa ein "FIFO-Überlauf", und dergleichen für den Zustandsmonitor 113 verwendet werden, solange es möglich ist, ein spezifiziertes Verhalten der ersten Hardwaredarstellung 111 zu erkennen. Die Datenkommunikation zwischen der ersten Hardwaredarstellung 111 und dem Zustandsmonitor 113 kann durch die Schnittstelle 114 bewerkstelligt werden. In einer Ausführungsform kann die Schnittstelle 114 mehrere Puffer aufweisen, die mit einer oder mehreren digitalen Komponenten der ersten Hardwaredarstellung 111, die zum Bewerten ihres Zustandes relevant sind, verbunden sind. In anderen Ausführungsformen kann die Schnittstelle 114 so ausgebildet sein, um eine Datenkommunikation zwischen dem Zustandsmonitor 113 und der ersten und der zweiten Hardwaredarstellung 111, 112 zu ermöglichen, wie dies durch die gestrichelte Linie dargestellt ist. Beispielsweise kann ein Stoppsignal der ersten und der zweiten Hardwaredarstellung 111, 112 über die Schnittstelle 114 bei Erkennen eines spezifizierten Abbruchzustands, beispielsweise bei Ausschalten eines Taktsignals, zugeführt werden. In anderen Ausführungsformen kann die Schnittstelle 114 so gestaltet sein, um eine bidirektionale Datenkommunikation zwischen dem Zustandsmonitor 113 und der ersten und der zweiten Hardwaredarstellung 111, 112 zu ermöglichen, um damit eine spezifizierte Startbedingung in der ersten und der zweiten Hardwaredarstellung 111, 112 durch entsprechendes Festlegen des Zustandes aller internen Logikkomponenten in der ersten und der zweiten Hardwaredarstellung 111, 112 zu erzeugen. Z. B. kann ein Resetsignal den Anfangszustand erzeugen, oder die erste und die zweite Hardwaredarstellung 111, 112 können mit speziellen Werten vorgeladen werden. Die Schnittstelle 114 kann durch Hardware oder durch eine Mischung aus Hardware- und Softwarekomponenten gebildet werden, die beispielsweise in Form einer externen Steuerungseinheit (nicht gezeigt) oder durch beliebige andere Mittel bereitgestellt werden, die im Stand der Technik gut bekannt sind, etwa ein Logikanalysierer, der mit der ersten Hardwaredarstellung 111 verbunden ist, in Kombination mit einem digitalen Komparator. In einer speziellen Ausführungsform kann die Schnittstelle 114 durch ein programmierbares Logikbauteil, beispielsweise als eine zusätzliche Komponente der ersten Hardwaredarstellung 111 gebildet sein. In ähnlicher Weise kann in einer Ausführungsform der Zustandsmonitor 113 in Kombination mit der Schnittstelle 114 und der ersten Hardwaredarstellung 111 als integrales Teil des programmierbaren Logikbausteins gebildet sein.
  • Die Vorrichtung 110 umfasst ferner eine zweite Schnittstelle 115, die mit der zweiten Hardwaredarstellung 112 verbunden ist, wobei die zweite Schnittstelle 115 so ausgebildet ist, dass der Zustand der zweiten Hardwaredarstellung 112 zu einer externen Quelle ausgelesen werden kann, etwa einem Puffer, einem Analysator und/oder dem Simulator 130. Es sollte betont werden, dass eine beliebige Quelle zum Analysieren der ausgelesenen Zustände der zweiten Hardwaredarstellung 112, etwa der Simulator 130, nicht permanent mit der Schnittstelle 115 verbunden sein muss. Beispielsweise können die Zustände der zweiten Hardwaredarstellung gepuffert und an eine externe Quelle, etwa den Simulator 130, zu einer beliebigen geeigneten Zeit übertragen werden.
  • Hinsichtlich des Zustandes der zweiten Hardwaredarstellung 112 gelten die gleichen Kriterien, wie sie zuvor mit Bezug zu der ersten Hardwaredarstellung 111 angegeben sind. In einer speziellen Ausführungsform ist die zweite Schnittstelle 115 so ausgebildet, um den vollständigen Zustand der zweiten Hardwaredarstellung 112, d. h. den Zustand aller internen digitalen Komponenten, etwa Flip-Flops, Speicherelementen und dergleichen, über die zweite Schnittstelle 115 auslesen zu können. In einer anschaulichen Ausführungsform kann die zweite Schnittstelle 115 in Form eines programmierbaren Logikbausteines implementiert sein. Beispielsweise kann ein feldprogrammierbares Gatearray die Fähigkeit bereitstellen, den Zustand aller sequentieller Komponenten festzuhalten und kann ferner eine chipinterne Standardschnittstelle enthalten, etwa eine JTAG-Schnittstelle, um die festgehaltenen Daten an die Peripherie weiterzugeben.
  • Abhängig von den Hardwareressourcen des programmierbaren Logikbausteines kann in einer Ausführungsform die Vorrichtung 111 als gesamtes durch entsprechendes Konfigurieren des programmierbaren Logikbausteines implementiert werden. Ferner sind die erste und die zweite Hardwaredarstellung 111, 112 so gestaltet, um entsprechende Eingangssignale von dem Eingangsabschnitt 150 zu empfangen und um entsprechende Taktsignale 116a und 116b zu empfangen, die in 1 als identisch gezeigt sind, die aber in anderen Ausführungsformen sich voneinander unterscheiden können. Beispielsweise kann das Taktsignal 116b als eine zu dem Taktsignal 116a synchronisierte Version bereitgestellt werden, um somit zu ermöglichen, das Taktsignal 116b für die Datensammlung bei Bedarf zu stoppen. Es sollte beachtet werden, dass das Ausbilden wesentlicher Teile der Vorrichtung 110 durch einen programmierbaren Logikbaustein eine rasche Implementierung und Neugestaltung des betrachteten spezifizierten digitalen Schaltungsentwurfs ermöglicht. In anderen Ausführungsformen kann es geeignet sein, Prototypenversionen auf Siliziumbasis oder ASIC's (applikationsspezifische IC's) für die erste und die zweite Hardwaredarstellung zu verwenden.
  • Der Betrieb des Systems 100 beruht auf dem Konzept, dass die erste Hardwaredarstellung 111 und die zweite Hardwaredarstellung 112 in einer zeitverschobenen Weise betrieben werden. In dieser Hinsicht können der Begriff "zeitverschoben" und der Begriff "zeitverzögert" oder einfach "verzögert" untereinander austauschbar angewendet werden, und es sollte klar sein, dass zumindest nach einer gewissen Zeitdauer des Betriebes der Vorrichtung 110 die erste Hardwaredarstellung 111 einen längeren Abschnitt ihrer "zeitlichen Entwicklung" im Vergleich zu der zweiten Hardwaredarstellung 112 durchlaufen hat. Die zeitliche Entwicklung, d. h. das elektrische Verhalten eines DUT's kann zusätzlich zu der Arbeitsgeschwindigkeit, d. h. der Frequenz des Taktsignals und der dazu zugeführten Eingangssignale, von dem Zielsystem abhängen, in das die DUT zu implementieren ist und von den Umgebungsbedingungen, unter denen das Zielsystem zu betreiben ist. Wenn die erste und die zweite Hardwaredarstellung 111, 112 in einer Form implementiert werden, die eine ausreichende "Ähnlichkeit" mit den Halbleiterchips bieten, die tatsächlich nach einem erfolgreichen Verifizieren des spezifizierten digitalen Schaltungsentwurts herzustellen sind, können die Umgebungsbedingungen so gewählt werden, dass diese im Wesentlichen den tatsächlichen Umgebungsbedingungen in der Zielanwendung entsprechen. In anderen Ausführungsformen können die Umgebungsbedingungen unter Umständen nicht sehr relevant sein, und daher kann die Hardwarekonfiguration der ersten und der zweiten Hardwaredar stellung 111, 112 deutlich von einem Halbleiterchip abweichen. In jedem Falle werden die Taktsignale 116a und 116b und die Eingangssignale, die von dem Eingangsabschnitt 150 bereitgestellt werden, als die relevanten Kriterien betrachtet, die die zeitliche Entwicklung, d. h. das elektrische Verhalten des betrachteten digitalen Schaltungsentwurfs bestimmen. Somit ist der Betrag an zeitlicher Verschiebung zwischen der ersten Hardwaredarstellung 111 und der zweiten Hardwaredarstellung 112 durch die Taktsignale 116a, 116b und die entsprechenden Eingangssignale bestimmt, wobei die digitale Antwort der ersten und der zweiten Hardwaredarstellung 111, 112 in Bezug auf die Taktsignale 116a, 116b und die entsprechenden Eingangsignale im Wesentlichen die gleiche ist, solange gewisse Herstellungstoleranzen zwischen der ersten und der zweiten Hardwaredarstellung 111, 112 nicht kritisch sind in Bezug auf die hochpegeleigen und die tiefpegeleigen Phasen der entsprechenden Taktsignale 116a, 116b und solange asynchrone Signale innerhalb einer einzelnen Hardwaredarstellung nicht vorkommen. Eine entsprechende Vorrichtung zur Berücksichtigung zweier oder mehrerer asynchroner Anteile in einer einzelnen DUT ist detaillierter mit Bezug zu 4 erläutert.
  • Wie in 1 dargestellt ist, kann der verzögerte oder zeitverschobene Betrieb der ersten und der zweiten Hardwaredarstellung 111, 112 erreicht werden, indem die Taktsignale 116a, 116b als im Wesentlichen identische Signale zugeführt werden und indem ein Satz ein Eingangssignalen 117 der ersten Hardwaredarstellung 111 und indem der gleiche Satz an Eingangsignalen als verzögerte Eingangsignale 117d der zweiten Hardwaredarstellung 112 eingespeist wird. Während sich der Zustand der ersten Hardwaredarstellung 111 in Reaktion auf das Eingangssignal 117 und das Taktsignal 116a ändert, antwortet die zweite Hardwaredarstellung 112 auf das Taktsignal 116b, das in diesem Beispiel identisch zu dem Taktsignal 116a ist, und auf das verzögerte Eingangssignal 117d und daher ist die Funktionsweise, d. h. die Abfolge von Zuständen der zweiten Hardwaredarstellung 112, in Bezug auf den Ablauf der Zustände der ersten Hardwaredarstellung 111 zeitlich verzögert. Bei Auftreten eines vordefinierten Abbruchzustandes, der von dem Zustandsmonitor 113 über die Schnittstelle 114 detektiert wird, kann dann der entsprechende verzögerte Zustand der zweiten Hardwaredarstellung 112 an den Simulator 130 über die zweite Schnittstelle 115 eingespeist werden. Abhängig von den Hardwareressourcen der zweiten Schnittstelle 115 und der zweiten Hardwaredarstellung 112 kann ein Unterbrechen des Betriebes der ersten und der zweiten Hardwaredarstellung 111, 112 so ausgeführt werden, um die Zustandsdaten von der zweiten Hardwaredarstellung 112 zu dem Simulator 130 zu übertragen. Wie in
  • 1 gezeigt ist, wird das verzögerte Eingangssignal 117d ebenso dem Simulator 130 zugeführt, so dass der Simulator, mit einem Modell des interessierenden digitalen Schaltungsentwurfes mit dem verzögerten Zustand der zweiten Hardwaredarstellung 112 initialisiert und durch das verzögerte Eingangssignal 117d stimuliert werden kann. Somit kann beginnend von dem verzögerten Zustand der zweiten Hardwaredarstellung 112 die Entwicklung dieses Zustandes zu dem vordefinierten Abbruchzustand "rekonstruiert" werden, wobei eine 100%ige Entwurfsübersicht mittels des Simulators 130 gegeben ist.
  • 2 zeigt schematisch einen Zeitablauf, der den Betrieb des Systems 100 repräsentiert. Die horizontale Achse entspricht der Zeit, wobei die Funktion der ersten und der zweiten Hardwaredarstellung 111, 112 als entsprechende Balken dargestellt sind. Zum Zeitpunkt t0 wird die Funktion der ersten Hardwaredarstellung 111 durch Zuführen des Taktsignals 116a und des Eingangssignals 117 gestartet. Nach einem Zeitintervall, das als Δt bezeichnet ist, wird der Betrieb der zweiten Hardwaredarstellung 112 zum Zeitpunkt t, gestartet, indem das Taktsignal 116b und das verzögerte Eingangssignal 117d zugeführt werden, wobei die Länge des Zeitintervalls Δt durch den Betrag an Zeitverzögerung des Eingangssignals 117d, wie es von dem Eingangsabschnitt 150 bereitgestellt wird, bestimmt ist. Wie zuvor beschrieben ist, kann das Signal 116b eine synchronisierte Version des Taktsignals 116a sein; ferner kann das Signal 116a identisch zu dem Signal 116b sein und die zweite Hardwaredarstellung 112 wird in einem Reset-Zustand gehalten, bis das erste verzögerte Signalmuster als Eingangssignal 117d verfügbar ist. Ferner kann das Reset-Signal ebenso verzögert sein und ein Teil des Signalsmusters darstellen. Beispielsweise können die Eingangssignale 117 und 117d als unabhängige Tabellen bereitgestellt werden, die beginnen bei t0 für das Eingangssignal 117 und beginnend beim Zeitpunkt t1 für das Eingangsignal 117d ausgelesen werden. In anderen Ausführungsformen kann der Eingabeabschnitt 150 ein Schieberegister oder einen Ringspeicher aufweisen, wobei die Eingangssignale 117 der ersten Hardwaredarstellung 111 direkt zugespeist werden, während die verzögerten Eingangssignale 117 an einer geeigneten Stelle des Schieberegisters oder Ringspeichers ausgelesen werden. Zum Zeitpunkt t2 wird ein Abbruchzustand durch den Zustandsmonitor 113 detektiert, was das Feststellen des entsprechenden Zustandes der zweiten Hardwaredarstellung 112 nach sich zieht, der dann in den Simulator 130 über die Schnittstelle 115 übertragen werden kann, wobei, wie zuvor erläutert ist, die ausgelesenen Zustände gespeichert und in dem Simulator 130 oder eine andere Analysequelle dann zu einer geeigneten Zeit übertragen werden können. Vorzugsweise wird der vollständige Zustand der zweiten Hardwaredarstellung 112 ausgelesen und in den Simulator 130 übertragen. Somit entspricht der Zustand der zweiten Hardwaredarstellung 112 zum Zeitpunkt t2 dem Zustand der ersten Hardwaredarstellung 111 zum Zeitpunkt t2, so dass der gestrichelte Bereich des Betriebes der ersten Hardwaredarstellung 111 dann analysiert oder rekonstruiert werden kann mittels Simulation, so dass der Zustand des Simulators 130 zum Zeitpunkt t3 oder ein beliebig anderer Zustand in dem gestrichelten Bereich verwendet werden kann, um das Verhalten des spezifizierten digitalen Schaltungsentwurfes zu identifizieren, zu verifizieren oder zu analysieren. Während der Simulationsphase, d. h. dem Intervall (t2, t3) ist eine 100%ige Übersichtlichkeit über den Schaltungsentwurf geben und ermöglicht, das elektrische Verhalten des interessierenden digitalen Schaltungsentwurfs präzise zu analysieren. Es sollte beachtet werden, dass die Zeit und das entsprechende Zeitintervall Δt in 2 in Hinblick auf die Anzahl der Taktzyklen anstatt als die physikalische Zeit aufzufassen sind, da die Simulation typischerweise in einer anderen Geschwindigkeit stattfindet als der tatsächliche Betrieb der ersten und der zweiten Hardwaredarstellung 111, 112. In einer speziellen Ausführungsform kann der Zustand zum Zeitpunkt t3, der von dem Simulator 130 bereitgestellt wird, mit dem Abbruchzustand der ersten Hardwaredarstellung 111 zum Zeitpunkt t2 verglichen werden, um somit die Gültigkeit des Simulationsmodells zu verifizieren, das Simulationsmodell beim Detektieren eines Unterschiedes anzupassen und/oder Zeitablaufprobleme des betrachteten spezifizierten digitalen Schaltungsentwurfs zu erkennen, indem die Zustände der ersten Hardwaredarstellung ausgelesen werden.
  • Wie zuvor erläutert ist, kann die Simulation eines komplexen Schaltungsentwurfes einen hohen Aufwand hinsichtlich der Simulationsressourcen und der Simulationszeit erfordern, und daher kann erfindungsgemäß der Aufwand hinsichtlich der Simulation durch geeignetes Auswählen des Zeitintervalls Δt eingestellt werden. Beispielsweise kann das Zeitintervall Δt als relativ klein gewählt werden, etwa einige Taktzyklen, und kann entsprechend erhöht werden, sollte die entsprechende Simulationsphase eine unzureichende 'Tiefe" für ein geeignetes Analysieren des Schaltungsverhaltens, beispielsweise das Lokalisieren und Beheben von Entwurfsfehlern, zum Vorschein bringen.
  • 1b zeigt schematisch eine weitere anschauliche Ausführungsform, wobei die gleichen Bezugszeichen für Komponenten und Teile verwendet werden, die ähnlich oder identisch zu jenen sind, die in 1a gezeigt sind. Das System 100 umfasst die Vorrichtung 110 mit einem Puffer 152, der das Eingangssignal 117 empfängt und die verzögerten Signale 117d bereitstellt. Die Eingangssignale 117 werden von dem Eingabeabschnitt 150 bereitgestellt, der ein definiertes System, eine Test- oder Zielumgebung für den betrachteten Schaltungsentwurf repräsentieren kann, so dass das Überprüfen des Schaltungsentwurfes unter beliebigen gewünschten Bedingungen stattfinden kann. Dazu kann der Eingabeabschnitt 150 so ausgebildet sein, um Ausgangssignale 118 aus der ersten Hardwaredarstellung 111 zu empfangen, wobei entsprechende Ausgangssignale 118d der zweiten Hardwaredarstellung 112 nicht angeschlossen sein müssen, da die Reaktion oder Wechselwirkung des Eingabeabschnitts 150 in dem Puffer 152 in Form der zeitlich gespeicherten Eingangssignale 117 "bewahrt" ist.
  • Die Vorrichtung 110 umfasst ferner die Schnittstelle 115, die einen Puffer zum Empfangen des Zustandes und der verzögerten Eingangssignale 117d der zweiten Hardwaredarstellung 112 aufweisen kann, die dann nach Anforderung an einen Analysierabschnitt, etwa den Simulator 130, übertragen werden können.
  • Während des Betriebs des Systems 100 der 1b liefert der Eingabeabschnitt 150 das Eingangssignal 117, das durch die Wechselwirkung des Eingabeabschnitts 150 mit den Ausgangssignalen 118 bestimmt sein kann. Bei Auftreten eines Abbruchzustandes, der von dem Zustandsmonitor 113 detektiert wird, kann ein entsprechendes Stoppsignal 119 zu dem Puffer 152 und der zweiten Hardwaredarstellung 112 zugeführt werden. Basierend auf der Eingabegeschichte, die in dem Puffer 152 gespeichert ist, und den entsprechenden Zuständen der zweiten Hardwaredarstellung 112, auf die über die Schnittstelle/Puffer 115 zugreifbar ist, kann die Analyse in ähnlicher Weise durchgeführt werden, wie dies mit Bezug zu 1a und 2 beschrieben ist.
  • In den mit Bezug zu den 1a, 1b und 2 beschriebenen anschaulichen Ausführungsformen werden die erste und die zweite Hardwaredarstellung 111, 112 mit der gleichen Geschwindigkeit betrieben, indem das gleiche Taktsignal jeder Hardwaredarstellung zugeführt und indem die entsprechenden Eingangssignale verzögert werden. In anderen Ausführungsformen kann es geeignet sein, die erste Hardwaredarstellung 111 mit höherer Geschwindigkeit als die zweite Hardwaredarstellung 112 zu betreiben, wobei die entsprechenden Eingangsignale 117 und 117d synchron mit den entsprechenden unterschiedlichen Taktsignalen 116a und 116b zugeführt werden. Beispielsweise kann der Geschwindigkeitsunterschied zwischen den zwei Hardwaredarstellungen variiert werden oder kann an die Sequenz der Eingangssignale, die den Hardwaredarstellungen 111, 112 zugeführt werden, angepasst werden, wodurch auch das Maß an Zeitverzögerung und damit Simulationstiefe entsprechend eingestellt wird. Beispielsweise kann ein einfaches Eingabemuster nur ein kurzes Zeitintervall Δt erfordern und somit eine reduzierte Simulationstiefe, und daher kann die zweite Hardwaredarstellung 112 mit einem Taktsignal 116b betrieben werden, das lediglich geringfügig langsamer als das Taktsignal 116a ist. Während eines anspruchsvolleren Eingabemusters kann es geeignet sein, eine moderat große Simulationstiefe bereitzustellen, wenn die Schaltungsanalyse während dieser Testphase erforderlich ist, und somit kann die Frequenz des Taktsignals 116b entsprechend herabgesetzt werden. In anderen Ausführungsformen kann ein anwachsendes Δt, das durch eine Differenz der Taktsignalfrequenzen hervorgerufen wird, während nicht kritischer Testlaufphasen kompensiert werden, indem die Taktsignalfrequenz 116b größer als die des Taktsignals 116a gewählt wird, wodurch das Maß an Zeitverzögerung zwischen der ersten und der zweiten Hardwaredarstellung 111, 112 reduziert wird, solange das Vergrößern der Taktsignalfrequenz mit dem statischen Gegebenheiten der zweiten Hardwaredarstellung 112 verträglich ist. D. h., die hochpegeleigen und tiefpegeleigen Anteile des Taktsignals können nur bis zu dem Maße verkürzt werden, wie die intrinsischen Einschwingzeiten und dergleichen mit der erhöhten Taktfrequenz für das Taktsignal 116b verträglich sind.
  • Hinsichtlich der Erfassung eines spezifizierten Abbruchzustandes der ersten Hardwaredarstellung 111 und der nachfolgenden Simulation in dem Simulator 130, wenn die erste und die zweite Hardwaredarstellung 111, 112 mit unterschiedlichen Geschwindigkeiten betrieben werden, gelten die gleichen Kriterien, wie sie zuvor mit Bezug zu einer im Wesentlichen konstanten Betriebsgeschwindigkeit der ersten und der zweiten Hardwaredarstellung 111, 112 beschrieben sind.
  • Es sollte beachtet werden, dass ein Anstieg der Simulationstiefe während eines Testlaufes des Systems 100 auch mit den Ausführungsformen erreicht werden kann, wie sie mit Bezug zu den 1 und 2 beschrieben sind, wobei die erste und die zweite Hardwaredarstellung 111, 112 mit der gleichen Geschwindigkeit betrieben werden, indem die Zeitverzögerung des Eingangssignals 117d erhöht wird. Beispielsweise kann während einer ersten Phase des Betriebes des Systems 100 eine Zeitverzögerung von einigen Taktsignalperioden als geeignet angesehen werden, wohingegen in einer fortgeschrittenen Betriebsphase eine erhöhte Simulationstiefe als geeignet erachtet werden kann, sollte ein Abbruchzustand de tektiert werden. Eine unterschiedliche Geschwindigkeit der Taktsignale kann vorteilhaft sein, wenn Optimierungstechniken angewendet werden, um eine effiziente Implementierung für den Verzögerungsblock, etwa den Puffer 152, zu unterstützen. Im Falle der Anwendung eines Speichers kann beispielsweise eine Datenkomprimierung auf die Speichereingabe angewendet werden, und eine Dekomprimierung auf die Speicherausgabe. Ferner kann ein Referenztaktsignal zur Handhabung asynchroner Schaltungsentwürte mit mehreren Taktsignalen eingeführt werden, wie dies später beschrieben ist. Dies kann ebenso zu unterschiedlichen Taktsignalgeschwindigkeiten führen.
  • Mit Bezug zu 3 werden nunmehr weitere anschauliche Ausführungsformen detaillierter beschrieben.
  • In 3 umfasst ein System 300 eine Vorrichtung 310 mit einer ersten DUT 311 und einer zweiten DUT 312. Die DUT 311 kann eine Hardwaredarstellung eines zu analysierenden spezifizierten digitalen Schaltungsentwurts umfassen und kann ferner einen Zustandsmonitor 313 aufweisen, der so ausgebildet ist, einen spezifizierten Zustand der Hardwaredarstellung zu erkennen und anzuzeigen. Beispielsweise kann der Zustandsmonitor 313 in der Form eines Hardwareüberprüfers vorgesehen sein, der das Überwachen des Zustands der Hardwaredarstellung ermöglicht, oder zumindest das Überwachen einer oder mehrerer spezifizierter Hardwarekomponenten der DUT 311 durch Detektieren des Zustandes mindestens eines Signals ermöglicht. In anderen Ausführungsformen kann der Zustandsmonitor 313 eine beliebige Art eines Logikanalysierers repräsentieren, der einen Zustand erfassen, diesen mit einem spezifizierten Zustand vergleichen und ein entsprechendes Signal bereitstellen kann. In einer speziellen Ausführungsform ist die erste DUT 311 mittels eines programmierbaren Logikbausteins gebildet. Die zweite DUT 312 enthält ebenso eine Hardwaredarstellung des betrachteten digitalen Schaltungsentwurfs und kann ferner Hardwarekomponenten aufweisen, die das Festhalten von Statusinformationen der zweiten DUT 312 ermöglichen. In einer speziellen Ausführungsform umfasst die zweite DUT 312 eine digitale Schaltung zum Festhalten des Zustandes nahezu aller sequenzieller Komponenten, die den betrachteten spezifizierten digitalen Schaltungsentwurt repräsentieren, etwa Flip-Flop-Zustände, den Inhalt von Speicherabschnitten, und dergleichen. Die zweite DUT 312 mit der Zustandshalteschaltung kann in Form eines geeignet konfigurierten programmierbaren Logikbausteines vorgesehen sein. Die Vorrichtung 310 umfasst ferner einen Puffer 352, der mit seiner Ausgangsseite mit der zweiten DUT 312 verbunden ist, um verzögerte Ausgangs signale 317d bereitzustellen, und der auch über eine geeignete Schnittstelle 315, etwa einer JTAG-Schnittstelle, mit einem Analyseabschnitt verbunden ist, der durch einen Simulator 330 repräsentiert ist. Eine Eingangsseite des Puffers 352 ist mit einem Eingabeabschnitt 350 verbunden, um entsprechende Eingangssignale 317 von diesem zu empfangen. Der Eingabeabschnitt 350 kann in Form einer gewünschten Systemumgebung, Testumgebung oder Zielumgebung vorgegeben sein und kann so ausgebildet sein, um Ausgangssignale 318 von der ersten DUT 311 zu empfangen. Eine digitale Schaltung 328, die eine logische Oder-Funktion repräsentiert, ist vorgesehen, deren Eingänge mit dem Zustandsmonitor 313, dem Eingabeabschnitt 350 und einer Schnittstelle 315a, die eine Verbindung zu dem Simulator 330 liefert, verbunden sind. Der Ausgang der logischen Schaltung 328 ist mit der ersten und der zweiten DUT 311, 312 und dem Puffer 352 verbunden, um ein Stopptriggersignalfür das Unterbrechen des Betriebs dieser Komponenten zu liefern.
  • Während des Betriebs des Systems 300 kann der Zustandsmonitor 313 beispielsweise über die Schnittstelle 315a entsprechend konfiguriert werden. Eine Taktsignalquelle (nicht gezeigt) kann Taktsignale an die erste und die zweite DUT 311, 312 und den Puffer 352 liefern, um somit einen synchronen Betrieb dieser Komponenten zu gewährleisten. Der externe Eingabeabschnitt 350 kann einen Satz geeigneter Eingangssignale, etwa die Eingangssignale 317 bereitstellen und kann die Ausgangssignale 318 empfangen, um somit eine gewünschte Wechselwirkung mit der Systemumgebung, die in dem Eingangsabschnitt 350 etabliert sein kann, zu ermöglichen, wobei die Eingabesignale 317 einen Betrieb der ersten DUT 311 gemäß dem zugrundeliegenden digitalen Schaltungsentwurf stimulieren, während die Eingangssignale 317 in zeitlicher Abfolge in dem Puffer 352 synchron mit dem Betrieb der ersten und der zweiten DUT 311, 312 gespeichert werden. Abhängig von der Speichertiefe des Puffers 352, der in Form eines FIFO (zuerst eingelesen, zuerst ausgelesen) Puffers vorgesehen sein kann, möglicherweise in Kombination mit einem internen oder externen RAM-Speicherelement, werden die Eingabesignale 317 der zweiten DUT 312 in einer zeitverzögerten Weise in Form der Signale 317d zugeführt. Somit sind die momentan vorherrschenden Zustände der ersten und der zweiten DUT 311 und 312, d. h. die Zustände der entsprechenden Hardwaredarstellung des betrachteten spezifizierten digitalen Schaltungsentwurfs, durch eine spezifizierte Anzahl an Taktsignalen entsprechend der effektiven Tiefe des Puffers 352 zeitlich beabstandet. Beim Auftreten eines spezifizierten Abbruchzustandes, der von dem Zustandsmonitor 313 detektiert wird, wird ein entsprechendes Stoppsignal 319b erzeugt und der Oder-Logik 328 zugeführt, um das Stopptriggersig nal 319 dem Puffer 352 und der ersten und der zweiten DUT 311, 312 zuzuführen. Somit ist die Eingabe-"Geschichte" in dem Puffer 352 gespeichert, wohingegen der entsprechende Zustand des digitalen Schaltungsentwurfs in der zweiten DUT 312 bewahrt ist. Der Betrieb der Vorrichtung 310 kann auch durch entsprechende Stoppsignale 319a von dem Eingabeabschnitt 350 und 319c von der Schnittstelle 315a unterbrochen werden, um eine bessere Flexibilität beim Betreiben des Systems 300 zu erhalten. Nach dem Unterbrechen des Betriebs des Puffers 352 und der zweiten DUT 312 werden die Zustandsdaten, die von der Zustandshaltelogik, die in der zweiten DUT 312 enthalten ist, erhalten werden, dem Simulator 330 über die Schnittstelle 315 oder einen anderen Puffer (nicht gezeigt) zugeführt, um den Simulator 330 zu einer geeigneten Zeit mit dem entsprechenden Entwurfszustand zu initialisieren. Zudem werden die verzögerten Eingabesignale 317d ebenso dem Simulator zugeführt und können daher als Stimuli für den Simulationsprozess verwendet werden. Danach kann der interessierende digitale Schaltungsentwurf im Wesentlichen in der gleichen Weise analysiert werden, wie dies zuvor mit Bezug zu den 1 und 2 erläutert ist. Die Schnittstelle 215a kann so ausgebildet sein, dass anfängliche Zustände der ersten und der zweiten DUT 311, 312 eingeladen werden können, wie dies mit Bezug zu 1a beschrieben ist.
  • Somit wird ein wirksames Hardwarefehlererkennungssystem bereitgestellt, wobei in einer speziellen Ausführungsform die Vorrichtung 310 in Form eines geeignet konfigurierten feldprogrammierbaren Gatearrays bereitgestellt ist, wobei die Komplexität des betrachteten digitalen Schaltungsentwurfs lediglich durch die Hardwareressourcen des feldprogrammierbaren Gatearrays beschränkt sind. in anderen Ausführungsformen können Einschränkungen, die durch die Hardwareressourcen eines feldprogrammierbaren Gatearrays diktiert sind, vermieden werden, indem ein oder mehrere externe Komponenten, etwa Speicherelemente, für den Puffer 352, externe Elemente für den Zustandsmonitor 313 und externe Komponenten zum Bereitstellen der Logikschaltung zum Festhalten des Zustandes der zweiten DUT 312 verwendet werden. Daher sollte die vorliegende Erfindung nicht als auf eine spezielle Hardwareimplementierung der Vorrichtung 310 eingeschränkt gesehen werden, sofern derartige Beschränkungen nicht explizit in den angefügten Patentansprüchen aufgeführt sind.
  • In dem mit Bezug zu den 1 bis 3 beschriebenen Ausführungsformen wird der zu analysierende spezifizierte digitale Schaltungsentwurf als eine Schaltung oder einen Schaltungs bereich repräsentierend betrachtet, der durch ein einzelnes Taktsignal betrieben wird. In komplexen digitalen Schaltungen können zwei oder mehrere Schaltungsbereiche vorgesehen sein, die mit unterschiedlichen Taktsignalen, d. h. mit unterschiedlichen Geschwindigkeiten betrieben werden, wobei die unterschiedliche Taktsignale im Wesentlichen in nicht korrelierter Weise erzeugt werden. Somit weisen die Taktsignale unterschiedlicher Schaltungsbereiche typischerweise keine feste Beziehung hinsichtlich der Phase und der Frequenz auf und können daher als asynchrone Taktsignale bezeichnet werden. Hierbei wird ein spezifizierter Schaltungsbereich, der von einem spezifizierten Taktsignal angesteuert wird, als eine Taktsignaldomäne bezeichnet. Da zwei oder mehrere Taktsignaldomänen in im Wesentlichen nicht korrelierter Weise betrieben werden können, muss eine Wechselwirkung, d. h. ein Signaltransfer zwischen Taktsignaldomänen mit Bedacht behandelt werden, um ein spezifiziertes Betriebsverhalten der Gesamtschaltung zu gewährleisten. Beispielsweise können Signale von einer Taktsignaldomäne zu einer anderen direkt oder über entsprechende Synchronisierlogiken transferiert werden. Beliebige Signale, die die Wechselwirkung zwischen zwei unterschiedlichen Taktsignaldomänen steuern, etwa "Handshaking"-Signale und dergleichen müssen über eine Synchronisierlogik zugeführt werden, so dass diese Steuersignale als synchronisierte Signale in Bezug auf die Zieltaktsignaldomäne betrachtet werden können. Diese synchronisierten Signale werden üblicherweise verwendet, um dann Signale, die direkt überwechseln, etwa Datensignale, Bussignale, und dergleichen, als zulässige Signale zu kennzeichnen. Da ein Synchronisiervorgang, der in einem digitalen Schaltungsentwurf auftritt, in unterschiedlicher Weise in einer ersten und einer zweiten Hardwaredarstellung oder DUT des digitalen Schaltungsentwurfs auf Grund von Schwankungen im Herstellungsprozess und unterschiedlichen Laufzeitbedingungen, etwa Temperatur, Spannung, und dergleichen, auftreten können, müssen diese Synchronisiervorgänge nicht notwendigerweise in identischer Weise in der führenden und der verzögerten DUT ablaufen. Aus diesem Grunde können in einer anschaulichen Ausführungsform die Taktsignaldomänen in der zweiten DUT, d. h. in der verzögerten DUT, voneinander entkoppelt werden, indem zusätzlich Steuersignale und Datensignale der ersten DUT, d: h. der führenden DUT, die Taktsignaldomänen überschreiten, entkoppelt werden. Dabei können Steuersignale, die zwischen den Taktsignaldomänen in synchronisierter Weise ausgetauscht werden, nach dem Durchlaufen einer entsprechenden Synchronisierlogik abgetastet und dann gespeichert werden. Auf diese Weise wird die zeitverschobene Arbeitsweise der zweiten DUT in im Wesentlichen synchroner Weise in Bezug auf die führende DUT er reicht, während der Einfluss von Herstellungsschwankungen und sich ändernden Betriebsbedingungen in der zweiten DUT reduziert oder eliminiert wird.
  • 4 zeigt schematisch eine Blockansicht, die eine Vorrichtung 410 zum Analysieren eines spezifizierten digitalen Schaltungsentwurfs mit einer ersten Taktsignaldomäne, die mit einem Taktsignal 416a, das auch als DUTclk0 bezeichnet ist, betrieben wird, und eine zweite Taktsignaldomäne, die mit einem Taktsignal 416b, das auch als DUTclk1 bezeichnet wird, betrieben wird, umfasst. Es sollte aus der vorhergehenden Erläuterung selbstverständlich sein, dass die vorliegende Erfindung jedoch nicht auf zwei unterschiedliche Taktsignalbereiche eingeschränkt ist, sondern das eine beliebige Anzahl an Taktsignaldomänen vorgesehen sein kann, abhängig von den Hardwareressourcen der Vorrichtung 410. Daher umfasst die Vorrichtung 410 eine erste DUT 411 mit einer Hardwaredarstellung des spezifizierten digitalen Schaltungsentwurfs und enthält somit einen ersten Hardwarerepräsentationsbereich 460, der die erste Taktsignaldomäne repräsentiert, die auch als DUT-CLK0-Domäne bezeichnet ist, wobei in der folgenden Beschreibung der Hardwarerepräsentationsbereich 460 der Einfachheit halber auch als die erste Taktsignaldomäne bezeichnet ist. In ähnlicher Weise ist ein zweiter Hardwarerepräsentationsbereich 461, der die zweite Taktsignaldomäne repräsentiert, und als DUT-CLK1-Domäne bezeichnet ist, vorgesehen. Die erste DUT 411 kann ferner mehrere Synchronisierlogiken aufweisen, wie sie in dem spezifizierten digitalen Schaltungsentwurf vorgesehen sind. In der in 4 gezeigten Ausführungsform sind Synchronisierlogiken 462a...462c vorgesehen, wobei die Synchronisierlogik 462a an einem Eingang der ersten DUT 411 vorgesehen ist, um ein asynchrones Eingangssignal 417b zu synchronisieren. Ferner kann ein synchronisiertes Eingangssignal 417a direkt in die erste Taktsignaldomäne 460 eingeführt und ein weiteres asynchrones Eingangssignal 417c kann ebenso direkt in die erste Taktsignaldomäne 460 eingeführt werden. Zulässige Werte in dem Signal 417c oder 463 werden durch die synchronisierten Steuersignale 417b oder 462c gekennzeichnet. Die Synchronisierlogik 462b kann vorgesehen sein, um domänenüberschreitende Signale, die von der zweiten Taktsignaldomäne 461 kommen und zu der ersten Taktsignaldomäne 460 gehen, zu synchronisieren. In ähnlicher Weise ist die Synchronisierlogik 462c vorgesehen, um Steuersignale, die aus der ersten Taktsignaldomäne 460 kommen, in Bezug auf die Zieldomäne, d. h., die zweite Taktsignaldomäne 461, zu synchronisieren. Wie gezeigt ist, werden die Eingangssignale 417a...417c auch einem Puffer 452 zugeführt zusammen mit Steuersignalen, die zwischen der ersten und der zweiten Taktsignaldomäne 460, 461 ausgetauscht werden, wobei das Abtasten der Signale nach dem Durchlaufen der entsprechenden Synchronisierlogik 462a...462c stattfindet. Das synchrone Eingangssignal 417a, das synchronisierte Eingangssignal 417b, das synchronisierte taktdomänenüberschreitende Signal 462b und das nicht synchronisierte Eingangssignal 417c werden abgetastet und mit DUT-CLK0 in einem Bereich 452a des Puffers 452 abgespeichert. In der gleichen Weise wird das synchronisierte taktsignaldomänenüberschreitende Signal 462c und das nicht synchronisierte taktsignaldomänenüberschreitende Signale 463 abgetastet und mit DUT-CLK1 in einem Bereich 452b des Puffers 452 gespeichert. Wenn beide Flanken eines Taktsignals verwendet werden, kann das Abtasten und Speichern mit der doppelten Frequenz des ursprünglichen Taktsignals ausgeführt werden. Der Einfachheit halber sind beliebige Mittel zum Erzeugen der Taktsignale nicht gezeigt.
  • Die Vorrichtung 410 umfasst ferner entsprechende Hardwarerepräsentationsbereiche, d. h. Taktsignaldomänen 460 und 461 in der zweiten DUT 412, wobei die zweite DUT 412 zusätzlich so ausgebildet ist, dass diese direkt alle verzögerten Signale, die von dem Puffer 452 ausgegeben werden, empfangen kann, ohne dass die entsprechenden Synchronisierlogiken 462a...462c zu verwenden sind. Dazu sind entsprechende Schnittstellen 464...464d in der zweiten DUT 412 vorgesehen, die eine Verbindung mit dem Puffer 452 bereitstellen. Beispielsweise ermöglicht es die Schnittstelle 464a, dass das verzögerte synchronisierte Eingangssignal 417b in die erste Taktsignaldomäne 460 der zweiten DUT 412 eingeführt wird. In ähnlicher Weise führt die Schnittstelle 462b die verzögerten Steuersignale, die nach der Synchronisationslogik 462 der ersten DUT 411 erhalten werden, der ersten Taktsignaldomäne 460 der zweiten DUT 412 zu. Die Schnittstelle 464c liefert die Steuersignale, die nach der Synchronisierlogik 462b der ersten DUT 411 erhalten werden, während die Schnittstelle 464d die verzögerten Datensignale 463 der zweiten Taktsignaldomäne 461 der zweiten DUT 412 zuführt. Auf diese Weise sind die ersten und die zweiten Taktsignaldomänen 460, 461 der zweiten DUT 412 vollständig voneinander entkoppelt, da diese ihre Eingangssignale direkt von dem Puffer 452 erhalten. Somit wird ein zeitverzögerter Betrieb der zweiten DUT 412 in Bezug auf die erste DUT 411 erreicht, wobei der Grad an Verzögerung durch die Speicherkapazität der Pufferbereiche 452a, 452b und den entsprechenden Taktfrequenzen bestimmt ist.
  • Während des Betriebs der Vorrichtung 410 wird ein spezifizierter Zustand der ersten DUT 411 durch einen entsprechenden Zustandsmonitor (nicht gezeigt) detektiert, und der Be trieb des Puffers 452 und der zweiten DUT 412 wird in ähnlicher Weise unterbrochen, wie dies mit Bezug zu den 1 bis 3 beschrieben ist. Danach kann eine Simulation auf der Grundlage des von der zweiten DUT 412 ausgelesenen Zustandes und auf der Grundlage der Geschichte der Eingangssignale 417a...417c und der Geschichte der taktsignaldomänenüberschreitenden Signale, die den Inhalt des Puffers 452 repräsentieren, ausgeführt werden. Hinsichtlich der Hardwareanforderungen (etwa in Form von Zustandsmonitoren, Schnittstellen, und dergleichen) zum Überwachen des Zustandes der ersten DUT 411 und zum Übertragen eines entsprechenden verzögerten Zustandes der zweiten DUT 412 und des Pufferinhalts an einen entsprechenden Simulator gelten die gleichen Kriterien, wie sie zuvor in Bezug auf die in den 1 bis 3 dargestellten Ausführungsformen angegeben sind. Ferner können die einzelnen Taktsignaldomänen 460, 461 separat simuliert werden, und somit kann der Aufwand an Ressourcen, der auf der Simulatorseite erforderlich ist, reduziert werden.
  • In einigen Anwendungen kann das Speichern von domänenüberschreitenden Signalen, etwa der Datensignale 463 in 4, in Hinblick auf die erforderliche Speicherkapazität des Puffers 452 als ungeeignet angesehen werden. In diesem Falle können lediglich die domänenüberschreitenden Steuersignale in dem Puffer anstelle der Steuersignale und der Datensignale gespeichert werden, wobei eine ausreichend genaue Synchronisierung der ersten DUT und der zweiten DUT erreicht wird, indem die Taktsignale für die erste DUT und die Taktsignale für die zweite DUT geeignet mit einem Referenztaktsignal korreliert werden, mit dem der Puffer betrieben wird und das Abtasten der taktsignaldomänenüberschreitenden Signale ausgeführt wird. Das Referenztaktsignal kann eine Frequenz von mindestens dem zweifachen Wert des schnellsten Entwurtstaktsignals aufweisen oder kann eine deutlich höhere Frequenz aufweisen, abhängig von den Möglichkeiten der Hardware, aus der die erste und die zweite DUT aufgebaut ist.
  • 5 zeigt schematisch eine Blockansicht zum Darstellen des Konzepts zum Synchronisieren einer ersten DUT mit einer zweiten DUT, ohne Datensignale zu speichern, die zwischen zwei oder mehreren unterschiedlichen Taktsignaldomänen ausgetauscht werden. Eine Vorrichtung 510 zum Analysieren eines spezifizierten digitalen Schaltungsentwurfs mit zwei oder mehreren unterschiedlichen Taktsignaldomänen umfasst eine erste DUT 511 und eine zweite DUT 512, die jeweils eine entsprechende Anzahl an Hardwarerepräsentationsbereichen für die diversen Taktsignaldomänen, die in dem Schaltungsentwurf enthalten sind, aufweisen können. Der Einfachheit halber sind weder die Hardwarerepräsentationsbereiche dieser diversen Taktsignaldomänen gezeigt, noch sind beliebige weitere Hardwarekomponenten, die zum Betrieb der Vorrichtung 510 erforderlich sind, dargestellt. Beispielsweise können die erste und die zweite DUT 511 und 512 eine ähnliche Konfiguration aufweisen, wie sie mit Bezug zu 4 beschrieben sind, wobei jedoch unterschiedlich zu 4 in der zweiten DUT 512 eine direkte Verbindung zwischen den taktsignaldomänenüberschreitenden Datensignale für mindestens einige der mehreren Datensignale vorgesehen ist. Die Vorrichtung 510 umfasst ferner einen Puffer 552, der so ausgebildet ist, dass dieser mit einem Referenztaktsignal 570 betrieben werden kann, das eine Frequenz von mindestens zwei mal dem schnellsten Taktsignal 561a und 561b aufweist, die in den Zeichnungen auch als CLK0 und CLK1 bezeichnet sind. Da eine digitale Schaltung zum Erhalten spezifizierter Vielfacher einer gegebenen Frequenz im Stand der Technik gut bekannt sind, ist eine entsprechende Beschreibung hierin weggelassen.
  • Während des Betriebs der Vorrichtung 510 empfängt die erste DUT 511 Eingabesignale 517, die auch als input+ctrl bezeichnet sind, die beliebige asynchrone Signale, die zu synchronisieren sind, enthalten können und die beliebige taktsignaldomänenüberschreitende Steuersignale repräsentieren sollen. Die Eingabesignale 517, synchronisierte taktsignaldomänenüberschreitende Signale 518 der DUT 511, die als internal_ctrl bezeichnet sind, und die Taktsignale 516a, 516b werden zusätzlich mit dem Referenzsignal 570 abgetastet und werden in dem Puffer 552 als abgetastete Eingabesignale 527, synchronisierte taktsignaldomänenüberschreitende Signale 518 der DUT 511 und abgetastete Taktsignale 526a, 526b, die auch als input+ctrl_s, internal_ctrl_s, CLK0-S, CLK1-S bezeichnet sind, eingespeist. Diese Signale werden dann aus dem Puffer 552 in zeitverzögerter Weise als zeitverschobene Signale 537, 538, 536a, 536b ausgelesen, die auch als Input+CTRL_S', internal_ctrl_s', CLK0-S' und CLK1-S' bezeichnet sind. Folglich werden die Taktsignalbereiche der zweiten DUT 512 mit den zeitverschobenen Taktsignalen 536a, 536b und den zeitverschobenen Eingabe- und Steuersignalen 537 betrieben, die mit den entsprechenden Signalen der ersten DUT 511 in hohem Maße korreliert sind, wodurch ein hohes Maß an Synchronität der zeitverschobenen DUT 512 in Bezug auf die führende DUT 511 gewährleistet wird. Abhängig von der Anzahl der Datensignale, die zwischen einzelnen Taktsignaldomänen ausgetauscht werden, und abhängig von dem spezifizierten digitalen Schaltungsentwurf, kann die Frequenz des Referenztaktsignals 570 entsprechend hoch gewählt werden, wobei dennoch eine deutliche Reduzierung der erforderlichen Speicherkapazität des Puf fers 552 erreicht wird. Eine erhöhte Frequenz des Referenztaktsignals 570 ermöglicht es, im Wesentlichen Zeitfehler zu vermeiden, die während des Abtastens der Signale 517, 516a und 516b auftreten. Zusätzlich oder alternativ kann eine zusätzliche Takteinstell/Korrekturlogik vorgesehen sein. In anderen Ausführungsformen kann die erste DUT 511 ebenso durch abgetastete Taktsignale, beispielsweise der Signale 526a und 526b betrieben werden. Wie man leicht erkennen kann, können diverse andere Abtastfehlerkorrekturen ausgeführt werden, um einen im Wesentlichen synchronen Betrieb der ersten und der zweiten DUT 511, 512 zu erreichen. Hinsichtlich der weiteren Bearbeitung für das Analysieren des Verhaltens des spezifizierten digitalen Schaltungsentwurfs gelten im Wesentlichen die gleichen Kriterien, wie sie zuvor mit Bezug zu den 1 bis 4 dargelegt sind.
  • Es gilt also, die vorliegende Erfindung stellt eine verbesserte Technik bereit, die eine effiziente Analyse eines spezifizierten digitalen Schaltungsentwurfs ermöglicht, wobei eine Kombination mindestens zweier Hardwaredarstellungen und einer Simulation und/oder eines schrittweisen Betriebs der verzögerten Hardwaredarstellung eine 100%ige Übersicht für den Schaltungsentwurf und eine vollständige Fehlerkorrektur bietet, wobei dennoch die erforderliche Simulationszeit deutlich reduziert wird, da der Simulationsstartpunkt erreicht wird, indem das Testsystem in Echtzeit oder nahezu in Echtzeit betrieben wird, wodurch die Phase deutlich verkürzt wird, für die eine Simulation erforderlich ist. Ferner werden Daten, die in einer zweiten Hardwaredarstellung verfolgt werden, als Stimuli in dem kurzen Simulationsprozess verwendet und daher kann die Analyse und Verifizierung mit authentischen Daten erreicht werden, wodurch die Möglichkeit für eine effiziente Hardware-Software-Co-Gestaltung gegeben ist. Selbst komplexe Schaltungsentwürfe mit eingebetteten RAM-Speichern und asynchronen Domänen mit mehreren Taktsignalen können effizient analysiert werden, indem zwei oder mehr Hardwaredarstellungen in der zeitverschobenen Weise betrieben werden.
  • Weitere Modifizierungen und Variationen der vorliegenden Erfindung werden für den Fachmann angesichts dieser Beschreibung offenkundig. Daher ist diese Beschreibung als lediglich anschaulich und für die Zwecke gedacht, dem Fachmann die allgemeine Art und Weise des Ausführens der vorliegenden Erfindung zu vermitteln.

Claims (25)

  1. Verfahren zum Analysieren eines digitalen Schaltungsentwurfs mit: Betreiben einer zweiten Hardwareausführung eines digitalen Schaltungsentwurts in einer zeitverzögerten Weise in Bezug auf eine erste Hardwareausführung des digitalen Schaltungsentwurts; und Analysieren des Funktionsverhaltens des digitalen Schaltungsentwurfes auf der Grundlage des Zustandes der zweiten Hardwareausführung beim Auftreten eines vorbestimmten Abbruchzustandes in der ersten Hardwareausführung.
  2. Das Verfahren nach Anspruch 1, wobei die erste Hardwareausführung mit einem spezifizierten Satz an Eingangssignalen betrieben wird; und wobei der spezifizierte Satz an Eingangssignalen der zweiten Hardwareausführung des spezifizierten digitalen Schaltungsentwurts in einer zeitverzögerten Weise so zugeführt wird, um die zweite Hardwareausführung in Bezug auf die erste Hardwareausführung zeitverzögert zu betreiben.
  3. Das Verfahren nach Anspruch 2, das ferner umfasst: Unterbrechen des Betriebs der ersten und der zweiten Hardwareausführung beim Auftreten des Abbruchzustandes der ersten Hardwareausführung; und Bestimmen des verzögerten Zustands der zweiten Hardwareausführung nach dem Unterbrechen des Betriebes, um den digitalen Schaltungsentwurt zu analysieren.
  4. Das Verfahren nach Anspruch 1, das ferner Bereitstellen eines Simulationsmodells des digitalen Schaltungsentwurts umfasst.
  5. Das Verfahren nach Anspruch 4, das ferner Simulieren einer Funktion des digitalen Schaltungsentwurts auf der Grundlage des verzögerten Zustands der zweiten Hardwareausführung umfasst.
  6. Das Verfahren nach Anspruch 5, das ferner Verifizieren des Simulationsmodells umfasst, indem ein simulierter Zustand des digitalen Schaltungsentwurts mit dem Abbruchzustand in der ersten Hardwareausführung verglichen wird.
  7. Das Verfahren nach Anspruch 2, wobei der spezifizierte Satz an Eingangssignalen zeitweise vor dem Zuführen zu der zweiten Hardwareausführung in einem Puffer gespeichert wird.
  8. Das Verfahren nach Anspruch 7, wobei der spezifizierte Satz an Eingangssignalen in den Puffer eingespeist wird und nach einer vordefinierten Anzahl an Taktsignalperioden eines Referenztaktsignals, das mit einem Taktsignal korreliert ist, das zum Betrieb der ersten und/oder zweiten Hardwareausführung verwendet wird, aus dem Puffer ausgelesen wird.
  9. Das Verfahren nach Anspruch 8, wobei das Referenztaktsignal das gleiche Taktsignal ist, das zum Betreiben der ersten und der zweiten Hardwareausführung verwendet wird.
  10. Das Verfahren nach Anspruch 1, wobei die zweite Hardwareausführung nach dem Auftreten des Abbruchzustandes schrittweise betrieben wird, wobei der Zustand der zweiten Hardwareausführung nach jedem Schritt ausgelesen wird.
  11. Das Verfahren nach Anspruch 1, wobei der digitale Schaltungsentwurf einen ersten Entwurfsbereich aufweist, der mit einem ersten Entwurfstaktsignal zu betreiben ist, und einen zweiten Entwurfsbereich aufweist, der mit einem zweiten Entwurfstaktsignal, das sich von dem ersten Entwurfstaktsignal unterscheidet, zu betreiben ist.
  12. Das Verfahren nach Anspruch 11, das ferner umfasst: temporäres Speichern von denjenigen Signalen der ersten Hardwareausführung, die zwischen einem ersten Hardwarerepräsentationsbereich, der den ersten Entwurfsbereich repräsentiert, und einem zweiten Hardwarerepräsentationsbereich, der den zweiten Entwurfsbereich in der ersten Hardwareausführung repräsentiert, ausgetauscht werden.
  13. Das Verfahren nach Anspruch 12, das ferner umfasst: Zuführen der zeitweilig gespeicherten Signale jeweils zu einem ersten Hardwarerepräsentationsbereich und einem zwei ten Hardwarerepräsentationsbereich der zweiten Hardwareausführung, um den ersten und den zweiten Hardwarerepräsentationsbereich der zweiten Hardwareausführung voneinander zu entkoppeln.
  14. Das Verfahren nach Anspruch 13, das ferner umfasst: Analysieren des digitalen Schaltungsentwurfs durch separates Simulieren des Betriebs des ersten Hardwarerepräsentationsbereichs und des zweiten Hardwarerepräsentationsbereichs der zweiten Hardwareausführung.
  15. Das Verfahren nach Anspruch 12, das ferner umfasst: Erzeugen eines Referenztaktsignals mit einer Frequenz, die mindestens zweimal so groß ist, wie die Frequenz der höheren Frequenz aus dem ersten und dem zweiten Entwurtstaktsignal, das verwendet wird, den zeitverschobenen Betrieb zu korrelieren, und Korrelieren des zeitverschobenen Betriebs der ersten und der zweiten Hardwareausführung mit dem Referenztaktsignal.
  16. Vorrichtung zum Analysieren eines digitalen Schaltungsentwurfs mit: einer ersten Hardwareausführung des digitalen Schaltungsentwurfs; einer zweiten Hardwareausführung des digitalen Schaltungsentwurfs; einer Schnittstelle, die mit der zweiten Hardwareausführung verbunden und so gestaltet ist, um Zustandsdaten der zweiten Hardwareausführung zu empfangen; und einem Zustandsmonitor, der ausgebildet ist, einen spezifizierten Zustand der ersten Hardwareausführung zu erkennen.
  17. Die Vorrichtung nach Anspruch 16, die ferner einen Puffer aufweist, der mit der Schnittstelle verbunden ist, um die Zustandsdaten der zweiten Hardwareausführung zu empfangen.
  18. Die Vorrichtung nach Anspruch 16, die ferner umfasst: einen Eingabeabschnitt, der ausgebildet ist, einen Satz von Eingangssignalen der ersten Hardwareausführung zuzufüh ren und um den Satz an Eingangssignalen der zweiten Hardwareausführung in zeitverzögerter Weise zuzuführen.
  19. Die Vorrichtung nach Anspruch 18, wobei der Eingabeabschnitt ausgebildet ist, Ausgangssignale von der ersten Hardwareausführung zu empfangen.
  20. Die Vorrichtung nach Anspruch 19, wobei der Eingabeabschnitt eine Testumgebung des digitalen Schaltungsentwurfs aufweist.
  21. Die Vorrichtung nach Anspruch 18, wobei der Eingabeabschnitt einen Puffer aufweist, der ausgebildet ist, zeitweilig den vordefinierten Satz an Eingangssignalen zu speichern, bevor diese der zweiten Hardwareausführung zugeführt werden.
  22. Die Vorrichtung nach Anspruch 16, die ferner einen Simulator mit einem Simulationsmodell des Schaltungsentwurts aufweist.
  23. System zum Analysieren eines digitalen Schaltungsentwurfs mit: einer ersten Hardwareausführung des digitalen Schaltungsentwurfs; einer zweiten Hardwareausführung des digitalen Schaltungsentwurfs; einem Eingabeabschnitt, der ausgebildet ist, einen spezifizierten Satz an Eingangssignalen der ersten Hardwareausführung zuzuführen; einem Verzögerungsabschnitt, der ausgebildet ist, den spezifizierten Satz an Eingangssignalen der zweiten Hardwareausführung in zeitverzögerter Weise zuzuführen; einem Analysierabschnitt, der ausgebildet ist, einen Zustand der zweiten Hardwareausführung zu erkennen; einem Zustandsmonitor, der funktionsmäßig mit der ersten Hardwareausführung verbunden und so ausgebildet ist, um einen vordefinierten Zustand der ersten Hardwareausführung zu erkennen; und einer Schnittstelle, die zwischen der zweiten Hardwareausführung und dem Analysierabschnitt angeschlossen ist.
  24. Das System nach Anspruch 23, wobei der Analysierabschnitt eine Simulationsvorrichtung umfasst.
  25. Das System nach Anspruch 23, wobei der Eingabeabschnitt so ausgebildet ist, um Ausgangssignale von der ersten Hardwareausführung zu empfangen.
DE10345150A 2003-09-29 2003-09-29 Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen Expired - Lifetime DE10345150B3 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10345150A DE10345150B3 (de) 2003-09-29 2003-09-29 Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen
US10/858,601 US7502969B2 (en) 2003-09-29 2004-06-01 Method and apparatus for analyzing digital circuits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10345150A DE10345150B3 (de) 2003-09-29 2003-09-29 Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen

Publications (1)

Publication Number Publication Date
DE10345150B3 true DE10345150B3 (de) 2005-04-14

Family

ID=34306138

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10345150A Expired - Lifetime DE10345150B3 (de) 2003-09-29 2003-09-29 Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen

Country Status (2)

Country Link
US (1) US7502969B2 (de)
DE (1) DE10345150B3 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577876B2 (en) * 2005-06-28 2009-08-18 Intel Corporation Debug system for data tracking
US7461186B2 (en) * 2006-02-03 2008-12-02 Infineon Technologies Ag Data handover unit for transferring data between different clock domains by parallelly reading out data bits from a plurality of storage elements
US7984400B2 (en) * 2007-05-09 2011-07-19 Synopsys, Inc. Techniques for use with automated circuit design and simulations
US7904859B2 (en) * 2007-05-09 2011-03-08 Synopsys, Inc. Method and apparatus for determining a phase relationship between asynchronous clock signals
US7908574B2 (en) * 2007-05-09 2011-03-15 Synopsys, Inc. Techniques for use with automated circuit design and simulations
US8756557B2 (en) * 2007-05-09 2014-06-17 Synopsys, Inc. Techniques for use with automated circuit design and simulations
EP2312719B1 (de) * 2009-10-16 2012-08-01 ABB Research Ltd. Untersuchung der zeitlichen Zuverlässigkeit in Zusammenhang mit einer Steuerung eines Energieübertragungssystems
US8566491B2 (en) 2011-01-31 2013-10-22 Qualcomm Incorporated System and method for improving throughput of data transfers using a shared non-deterministic bus
JP2012247316A (ja) * 2011-05-27 2012-12-13 Advantest Corp 試験装置および試験方法
US9146835B2 (en) 2012-01-05 2015-09-29 International Business Machines Corporation Methods and systems with delayed execution of multiple processors
US8607173B2 (en) 2012-03-09 2013-12-10 Atrenta, Inc. Hierarchical bottom-up clock domain crossing verification
US10761925B2 (en) * 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336088B1 (en) * 1998-12-22 2002-01-01 Unisys Corporation Method and apparatus for synchronizing independently executing test lists for design verification

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923567A (en) * 1996-04-10 1999-07-13 Altera Corporation Method and device for test vector analysis
US5892897A (en) * 1997-02-05 1999-04-06 Motorola, Inc. Method and apparatus for microprocessor debugging
US6230114B1 (en) * 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US6557147B1 (en) * 2000-05-01 2003-04-29 Hewlett-Packard Company Method and apparatus for evaluating a circuit
US7058855B2 (en) * 2002-07-24 2006-06-06 Infineon Technologies Ag Emulation interface system
US6904576B2 (en) * 2002-08-09 2005-06-07 Synplicity, Inc. Method and system for debugging using replicated logic

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336088B1 (en) * 1998-12-22 2002-01-01 Unisys Corporation Method and apparatus for synchronizing independently executing test lists for design verification

Also Published As

Publication number Publication date
US20050081113A1 (en) 2005-04-14
US7502969B2 (en) 2009-03-10

Similar Documents

Publication Publication Date Title
DE69533275T2 (de) Ein Steuergerät zur Durchführung der Abtastprüfung
DE19937232B4 (de) Entwicklungs- und Bewertungssystem für integrierte Halbleiterschaltungen
DE602005003225T2 (de) Verfahren und system zum simulieren eines modularen testsystems
DE112013000758B4 (de) Erzeugen von Taktsignalen für einen zyklusgenauen, zyklusreproduzierbaren FPGA-gestützten Hardware-Beschleuniger
DE10345150B3 (de) Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen
DE112005001517B4 (de) Synchronisation zwischen Niedrigfrequenz- und Hochfrequenzdigitalsignalen
DE2346617A1 (de) Verfahren zur pruefung der laufzeitverzoegerung einer funktionalen logischen einheit
DE10056160A1 (de) Halbleiterprüfsystem
DE3702408C2 (de)
DE19983138B4 (de) Verfahren und Vorrichtung zum Verändern einer Taktfrequenz auf einer Phase-zu-Phase-Basis
DE112006002097T5 (de) Vorsehen genauer Zeitsteuerung zwischen mehreren standardisierten Prüfinstrumentenchassis
DE60109321T2 (de) Prüfung von asynchroner rücksetzschaltung
DE112006002092T5 (de) Schaltungskartensynchronisation innerhalb eines standardisierten Prüfinstrumentenchassis
DE69533567T2 (de) Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen
DE19912514C2 (de) Halbleiterprüfsystem
DE10048895A1 (de) Testverfahren und -vorrichtung für quellensynchrone Signale
DE102021130630A1 (de) Testen von software-anwendungskomponenten
EP1430320B1 (de) Elektronischer baustein und verfahren zu dessen qualifizierungsmessung
DE19718467A1 (de) Frequenzunabhängige Abtastkette
DE60007196T2 (de) Vorrichtung zur Beseitigung von "Durchgleiten" von Daten während einer Schiebeoperation mit Master-Slave Kippschaltungen
DE102004050909A1 (de) Quellensynchrone Zeitextraktion, Zyklisierung und Abtastung
DE60224107T2 (de) Verfahren und einheit zur programmierung eines speichers
DE60200289T2 (de) Übergangsanpassung
DE102004010562B4 (de) Schnittstellenvorrichtung und Verfahren zur Synchronisation von Daten
DE112020007048T5 (de) Schaltung zum transferieren von daten von einer taktdomain zu einer anderen

Legal Events

Date Code Title Description
8100 Publication of patent without earlier publication of application
8364 No opposition during term of opposition
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017500000

Ipc: G06F0030000000

R071 Expiry of right