DE102005024917A1 - Dynamische Synchronisierersimulation - Google Patents

Dynamische Synchronisierersimulation Download PDF

Info

Publication number
DE102005024917A1
DE102005024917A1 DE102005024917A DE102005024917A DE102005024917A1 DE 102005024917 A1 DE102005024917 A1 DE 102005024917A1 DE 102005024917 A DE102005024917 A DE 102005024917A DE 102005024917 A DE102005024917 A DE 102005024917A DE 102005024917 A1 DE102005024917 A1 DE 102005024917A1
Authority
DE
Germany
Prior art keywords
synchronizer
delay
signal
rtl
register
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.)
Ceased
Application number
DE102005024917A
Other languages
English (en)
Inventor
Mark Langer
Nathan Austin Sheeley
Kay Hesse
Tracy Austin Harton
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.)
GlobalFoundries 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 DE102005024917A priority Critical patent/DE102005024917A1/de
Priority to US11/440,944 priority patent/US20070129923A1/en
Publication of DE102005024917A1 publication Critical patent/DE102005024917A1/de
Ceased 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

Es wird ein Synchronisierungsmodul bereitgestellt, das verwendbar ist, um die Simulation von Schaltungen zu verbessern, die taktbereichüberquerende Signale aufweisen. Ein mehrstufiger Synchronisierer kann verwendet werden, wobei mindestens eine der mehreren Synchronisierstufen dynamisch aktiviert und deaktiviert wird. Das Synchronisiermodul kann eine Verzögerungseinheit zum selektiven Anwenden einer variablen Verzögerung aufweisen. Dies erlaubt es, das reale Verhalten des Siliziumchips für Simulationszwecke besser zu modellieren, um Signalsynchronisierungsprobleme früher in dem Prozessablauf, beispeislweise während des RTL-(Registertransferlevel)Entwurfs, zu erkennen.

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft im Allgemeinen Synchronisierermodule und Verfahren und betrifft insbesondere Sychnonisierer, die in einer RTL- (Registertransferlevel- bzw. ebnen) Simulation simuliert werden können.
  • Es gibt viele integrierte Schaltungschips, die taktgesteuerte digitale Schaltungen aufweisen, die mehr als einen Taktbereich bilden. In derartigen Einrichtungen wird ein erster Teil der digitalen Schaltung von einem ersten Taktsignal angesteuert, während ein zweiter Teil von einem zweiten Taktsignal angesteuert wird. Das zweite Taktsignal kann sich von dem ersten Taktsignal unterscheiden und kann sogar von einer anderen Quelle erzeugt werden. Beispiele für Bauelemente, die mehrere Taktbereiche aufweisen, sind Computerchipsätze, USB- (universaler serieller Bus) Leitrechnersteuerungen und WLAN- (drahtlose Nahbereichsnetzwerks-) Empfänger oder Empfänger/Sender-Geräte. Im Stand der Technik gibt es auch noch viele andere Gebiete, in denen ein integrierter Schaltungschip mit mehr als einem Taktbereich auftritt.
  • In vielen Anwendungen sind die digitalen Schaltungen in den diversen Taktbereichen nicht unabhängig voneinander. Beispielsweise kann eine Schaltung in einem der Taktbereiche ein Signal von einer Schaltung in einem anderen Taktbereich für die Weiterverarbeitung erhalten. D. h., in derartigen Bauelementen ist es erforderlich, dass digitale Signale über Taktbereiche hinweg ausgetauscht werden. Diese Taktbereich überschreitenden Signale können Einzel-Bit-Signale oder sogar Mehrfach-Bit-Bussignale sein.
  • Wenn beispielsweise die in die 1a gezeigte Anordnung genommen wird, ist darin eine Schaltung 100 gezeigt, um ein erstes Taktsignal clk1 zu empfangen, während eine zweite digitale Schaltung 110 ein anderes Taktsignal clk2 empfängt. Somit sind die beiden digitalen Schaltungen 100, 110 in unterschiedlichen Taktbereichen angesiedelt. Die Schaltung 100 in dem ersten Taktbereich empfängt das Einzel-Bit-Signal bit0 und führt eine gewisse digitale Verarbeitung an diesem Signal aus. In dem Beispiel aus 1a kann die digitale Schaltung 100 ein Flip-Flop sein. Das Ausgangssignal der Schaltung 100 wird dann über die Taktbereichsgrenze als Signal bit1 geführt, das dann die zweite digitale Schaltung 110 erreicht. Die Schaltung 110 erzeugt das Einzel-Bit-Signal bit2 aus bit1 unter Ansteuerung durch das Taktsignal clk2.
  • Wie in 1b gezeigt ist, speichert die Schaltung 100 das eintreffende Signal bit0 bei einer positiven Flanke, d. h. wenn das Taktsignal clk1 vom niedrigen Pegel auf den hohen Pegel ansteigt. Die digitale Schaltung 110, die auch eine Flip-Flop-Einrichtung sein kann, wird von dem Taktsignal clk2 angesteuert, das in dem vorliegenden Beispiel eine höhere Frequenz aufweist. An der positiven Flanke des zweiten Taktzyklus registriert das Flip-Flop 110 in dem zweiten Taktbereich ein tiefpegeliges Signal. Mit der positiven Flanke des dritten Taktsignalzyklus wird ein hochpegeliges Signal korrekt zwischengespeichert. Jedoch in der Zeit zwischen den positiven Flanken des zweiten und des dritten Taktsignalzyklusses kann der Ausgangssignalpegel undefiniert sein. Dies wird allgemein als ein metastabiler Zustand bezeichnet und kann insbesondere eintreten, wenn die positive Flanke des zweiten clk2-Taktzyklus in der Nähe der positiven Flanke des clk1-Taktzyklus auftritt.
  • 2a und 2b zeigen ähnliche Beispiele, in denen Mehrfachbit-Bus-Signale von einem Taktbereich zu einem anderen geleitet werden. In dem dargestellten Beispiel weist der Bus drei separate Bit-Leitungen auf. Wie man aus 2b erkennen kann, kann ein ähnliches Problem, wie es zuvor mit Bezug zu 1b erläutert ist, auftreten. Eine RTL-Simulation (im Gegensatz zu Zeitablaufsimulationen auf Gatterebene) kann häufig darin versagen, eine nicht korrekte Bus-Synchronisierung zu erkennen, etwa jene aus 2a, da der RTL-Simulator mit allen Bus-Bits in der gleichen Weise verfährt, d. h. die Bits sind stets „in Phase". Dieses Beispiel zeigt ferner, dass ein Verfahren gemäß der 2a nicht geeignet sein kann, um in korrekter Weise einen Bus für einen weiteren Taktbereich zu synchronisieren. Wie 2b zeigt, können Wertefehler auf dem bus2 auftreten, da nicht alle Bits die gleiche Verzögerung erfahren und somit der bus2 einen Wert trägt, der nie im bus1 aufgetreten ist.
  • Um das Problem der Taktbereich überschreitenden Signale zu lösen, kann eine gewisse Synchronisiereinrichtung den Schaltungen hinzugefügt werden. Beispielsweise kann eine zusätzliche Flip-Flop-Einrichtung 310 zwischen beiden digitalen Schaltungen 300, 320 auch innerhalb des zweiten Taktbereichs eingerichtet werden. Dies ist in 3a gezeigt. 3b zeigt dann, dass die Ausgangssignale nun keine undefinierten Pegel mehr aufweisen.
  • 4a zeigt ein Beispiel von Bussignalen, die in korrekter Weise eine Taktbereichsgrenze überschreiben. Ein Multiplexer 410 ist zwischen der ersten und der zweiten digitalen Schaltung 400 bzw. 420 eingerichtet, um entweder die Ausgangssignale der ersten digitalen Schaltung 400 zu der zweiten digitalen Schaltung 420 weiterzuleiten, oder das Ausgangssignal bus2 zu dem Eingangsanschluss der zweiten Schaltung 420 zurückzuspeisen. Der Multiplexer 410 wird von einem „Capture"-Signal bzw. Einfangsignal angesteuert. Wie man aus 4b erkennen kann, werden die Ausgangsbussignale bus2 in korrekter Weise synchronisiert.
  • Obwohl somit eine Signalsynchronisierung bei einer Taktbereichsüberschreitung bereits im Stand der Technik möglich ist, gibt es eine Reihe struktureller und funktioneller Probleme, die die Ursache möglicher Fehler sein können. Beispielsweise können Synchronisationsprobleme weiterhin auftreten, wenn der Gesamtschaltungsentwurf Fehler oder Entwurfsschwachstellen aufweist, die im Voraus schwer zu erkennen sind. Wenn beispielsweise ein Signal von einer speziellen Quelle genommen wird und unabhängig in zwei unterschiedlichen Wegen geleitet wird, die dann am Ende wieder zusammengeführt werden, kann eine korrekte Synchronisierung von dem Verzögerungsverhalten beider Signalwege abhängen. Ein weiterer üblicher Schwachpunkt beim Entwerten ist die Verwendung der eigentlich korrekten Bussynchronisiererstruktur gemäß 4a, wobei jedoch ein unsynchronisiertes Signal für das Einfangssignal „capture2" verwendet wird.
  • Da die digitale Schaltung für gewöhnlich relativ komplex ist, ist es häufig nicht möglich, derartige Entwurfsfehler im Voraus zu erkennen. Dies kann zu Funktionsfehlern führen, die lediglich in einer späten Phase des Entwurfsvorganges erkennbar sind, oder die unter Umständen während der Verifizierungsphase des Siliziumchips erst erkannt werden können. Auf Grund der im Allgemeinen unzuverlässigen Natur derartiger Fehler ist es noch schwieriger, die Fehlerquelle zu finden, wodurch sich erhöhte Schaltungsentwicklungskosten ergeben.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Es wird eine verbesserte Synchronisiertechnik bereitgestellt, die eine bessere Modellierung des realen Verhaltens der Siliziumschaltung für die Simulation ermöglichen, um damit Signalsynchronisierprobleme früher im Prozessablauf zu erkennen.
  • In einer Ausführungsform wird eine RTL-Simulationsvorrichtung bereitgestellt, die ausgebildet ist, eine Bussynchronisierung über eine Taktbereichsgrenze hinweg zu simulieren. Die Vorrichtung umfasst ein erstes RTL-Entwurfselement, das ausgebildet ist, eine Schaltung in einem ersten Taktbereich zu simulieren, und ein zweites RTL-Entwurfselement, das ausgebildet ist, eine Schaltung in einem zweiten Taktbereich zu simulieren. Die Vorrichtung umfasst ferner ein drittes RTL-Entwurfselement, das ausgebildet ist, die Funktion eines Mehrstufensynchronisierers mit mehreren Synchronisiererstufen zu simulieren, die in der Lage sind, ein Synchronisierersignal zu erzeugen, das sich von den Synchronisiereisignalen unterscheidet, die von anderen Synchronisiererstufen des Mehrfachsynchronisierers erzeugt werden. Das dritte RTL-Entwurfselement ist mit dem ersten und dem zweiten RTL-Entwurfselement gekoppelt. Die RTL-Simulationsvorrichtung ist ausgebildet, mindestens eine der mehreren Synchronisiererstufen dynamisch zu aktivieren und zu deaktivieren.
  • In einer weiteren Ausführungsform wird ein Synchronisierermodul bereitgestellt, das ausgebildet ist, mit einem ersten Zwischenspeicherregister verbunden zu werden, das von einem ersten Taktsignal angesteuert wird, und mit einem zweiten Zwischenspeicherregister verbunden zu werden, das von einem zweiten Taktsignal angesteuert wird. Das erste Zwischenspeicherregister gibt ein erstes digitales Signal aus, während das zweite Zwischenspeicherregister ein zweites digitales Signal empfängt. Das Synchronisierermodul umfasst eine Verzögerungseinheit, die ausgebildet ist, selektiv das erste digitale Signal mittels einer einstellbaren Verzögerung selektiv zu verzögern, um damit das zweite digitale Signal bereitzustellen.
  • In einer weiteren Ausführungsform wird eine HDL- (Hardwarebeschreibungssprache) Bibliothek bereitgestellt, die mindestens ein Synchronisierermodul, wie es zuvor beschrieben ist, umfasst.
  • Eine noch weitere Ausführungsform betrifft ein computerlesbares Speichermedium, das computerlesbare Instruktionen speichert, die, wenn sie von einem Prozessor ausgeführt werden, den Prozessor veranlassen, eine RTL-Simulation durchzuführen, um eine Bussynchronisierung über eine Taktbereichsgrenze hinweg zu simulieren. Das computerlesbare Speichermedium umfasst ein erstes RTL-Entwurfselement, das ausgebildet ist, eine Schaltung in einem ersten Taktbereich zu simulieren, und ein zweites RTL-Entwurfselement, das ausgebildet ist, eine Schaltung in einem zweiten Taktbereich zu simulieren. Das computerlesbare Speichermedium umfasst ferner ein drittes RTL-Entwurfselement, das ausgebildet ist, die Funktion eines Mehrstufensynchronisierers mit mehreren Synchronisiererstufen zu simulieren, die in der Lage sind, ein Synchronisierersignal zu erzeugen, das sich von den Synchronisierersignalen unterscheidet, die von anderen Synchronisiererstufen des Mehrstufensynchronisierers erzeugt werden. Das dritte RTL-Entwurfselement ist mit dem ersten und dem zweiten RTL-Entwurfselement gekoppelt. Das computerlesbare Speichermedium umfasst ferner computerlesbare Instruktionen, die dynamisch mindestens eine der mehreren Synchronisiererstufen aktivieren und deaktivieren.
  • Gemäß einer noch weiteren Ausführungsform wird ein Synchronisierersimulationsverfahren bereitgestellt, um eine digitale elektronische Schaltung zu simulieren, die ein Synchronisierermodul bildet, das mit einem ersten Register verbunden werden kann, das von einem ersten Taktsignal angesteuert wird, und das mit einem zweiten Register verbunden werden kann, das von einem zweiten Taktsignal angesteuert wird, wobei das erste Register ein erstes digitales Signal ausgibt und wobei das zweite Register ein zweites digitales Signal empfängt. Das Verfahren umfasst das selektive Verzögern des ersten digitalen Signals mittels einer variablen Verzögerung und das Bereitstellen des verzögerten Signals als das zweite digitale Signal.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die begleitenden Zeichnungen sind hiermit mit inbegriffen und bilden einen Teil der Beschreibung, um die Prinzipien der Erfindung zu erläutern. Die Zeichnungen sollen die Erfindung nicht auf lediglich die dargestellten und beschriebenen Beispiele beschränken, wie die Erfindung praktiziert und angewendet werden kann. Weitere Merkmale und Vorteile gehen aus der folgenden detaillierteren Beschreibung der Erfindung hervor, wie sie auch in den begleitenden Zeichnungen dargestellt ist, wobei:
  • 1a eine Blockansicht ist, die eine Digitalschaltung mit zwei unterschiedlichen Taktbereichen darstellt, wobei ein taktbereichüberschreitendes Einzelbitsignal vorhanden ist;
  • 1b ein Zeitablauf ist, der die Signalpegel der in 1a gezeigten Schaltung darstellt;
  • 2a eine Blockansicht ist, die eine Digitalschaltung mit zwei unterschiedlichen taktbereichüberschreitenden Mehrfachbitbussignalen zeigt;
  • 2b ein Zeitablauf entsprechend der Schaltung aus 2a ist;
  • 3a eine Blockansicht ist, die eine Synchronisierung des taktbereichüberschreitenden Einzelbitsignals zeigt;
  • 3b ein Zeitablauf ist, der den Betrieb der Schaltung aus 3a zeigt;
  • 4a eine Taktbereichsüberschreitungssynchronisierung für Mehrfachbitbussignale zeigt;
  • 4b ein Zeitablauf ist, der sich auf die Anordnung aus 4a bezieht;
  • 5 ein Graph ist, der eine Technik zur statischen Verifizierung der Bussynchronisierung zeigt;
  • 6a bis 6e Ausführungsformen von Mehrstufensynchronisierern zeigen, die für eine dynamische Verifizierung einer Einzelbit- oder Bussynchronisierung verwendet werden können;
  • 7 eine weitere Ausführungsform eines Mehrstufensynchronisierers mit zwei Multiplexern zeigt;
  • 8 einen Mehrstufensynchronisierer gemäß einer weiteren Ausführungsformen zeigt, der eine reduzierte Anzahl an Elementen aufweist;
  • 9a eine Blockansicht ist, die zur Darstellung der Echtzeiterfordernisse für eine Einzelbit-Synchronisierung unter Anwendung eines Zweistufensynchronisierers zeigt;
  • 9b ein Zeitablauf ist, der den Betrieb der in 9a gezeigten Anordnung darstellt;
  • 10a eine Blockansicht ist, die zur Darstellung der Echtzeiterfordernisse für eine Einzelbit-Synchronisierung unter Anwendung eines Dreistufensynchronisierers verwendet wird;
  • 10b ein Zeitablauf ist, der den Betrieb der in 10a gezeigten Anordnung darstellt;
  • 11a eine Blockansicht ist, die zur Darstellung der Echtzeiterfordernisse einer Bussignal-Synchronisierung unter Anwendung von Zweistufensynchronisierem verwendet wird;
  • 11b ein Zeitablauf ist, der die Funktion der in 11a gezeigten Anordnung darstellt;
  • 12a eine Blockansicht ist, die zur Darstellung der Echtzeiterfordernisse einer Bussignal-Synchronisierung unter Anwendung von zweistufigen und dreistufigen Synchronisierern verwendet wird;
  • 12b ein Zeitablauf ist, der die Funktion der in 12a gezeigten Anordnung darstellt;
  • 13a eine Ausführungsform eines fünfstufigen Synchronisierers zeigt;
  • 13b ein Zeitablauf ist, der das Schalten des Synchronisierersignals von einer unteren zu einer höheren Stufe darstellt;
  • 13c ein Zeitablauf ist, der das Schalten des Synchronisierungssignals von einer höheren zu einer unteren Stufe zeigt;
  • 14 eine Blockansicht ist, die ein Implementierungsbeispiel eines mehrstufigen Synchronisierers gemäß einer Ausführungsform darstellt;
  • 15 ein Zustandsdiagramm ist, das die Zustände darstellt, die die Anordnung aus 14 einnehmen kann; und
  • 16 eine Blockansicht ist, die einen Interruptgenerator als ein weiteres Implementierungsbeispiel darstellt.
  • DETALLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die anschaulichen Ausführungsformen der vorliegenden Erfindung werden nunmehr mit Bezugnahme zu den Zeichnungen beschrieben, wobei gleiche Elemente und Strukturen durch die gleichen Bezugszeichen bezeichnet sind.
  • Bevor nun detaillierter die Synchronisationsmodule der Ausführungsformen beschrieben werden, die eine dynamische Verifizierung von Einzelbit- und Bussynchronisierung ermöglichen, wird auf 5 verwiesen, die eine statische Verifizierungstechnik zeigt, die in Verbindung mit den Ausführungsformen angewendet werden kann. In diesem Ansatz wird die gesamte Entwurfsstruktur auf ein graphisches Modell abgebildet, das aus Vertex- und Kantenelementen aufgebaut ist. Vertices können Flops (in 5 als „f" bezeichnet) und kombinatorische Elemente (mit „c" bezeichnet) sein. Kanten sind in dem graphischen Modell als Drähte dargestellt.
  • In dem statischen Verifizierungsansatz wird das Modell in Taktbereiche und Stufenebenen eingeteilt. Wie man aus 5 erkennen kann, zeigt das vorliegende Beispiel vier unterschiedliche Ebenen. Wenn man das Beispiel einer Bussynchronisierung annimmt, so können diese auf der Grundlage der Erkenntnis identifiziert werden, dass kombinatorische Logikeingänge Busanforderungen durch fettgedruckte vertikale Linien mit zugeordneten Zahlen 1), 2) oder 3) dargestellt sind. Es ist anzumerken, dass dieser Verifizierungsansatz es ermöglicht, die Anzahl der Busse zu erkennen, die zum Erreichen einer korrekten Bussynchronisierung erforderlich ist.
  • Wie nachfolgend detaillierter beschrieben ist, können in den Ausführungsformen mehrstufige Synchronisieren in einer Weise vorteilhaft ausgenutzt werden, dass eine dynamische Verzierung von einer Einzelbit- oder Bussynchronisierung möglich ist. Beispiele von mehrstufigen Synchronisierern, die in den Ausführungsformen verwendet werden können, sind in den 6a bis 6c gezeigt. In 6a sind vier parallel angeordnete Registersequenzen vorgesehen, die alle das gleiche Eingangssignal empfangen. Die Registersequenzen, die in 6a verwendet sind, besitzen zwei bis fünf Registerelemente, die Zwischenspeicher bzw. Latches, Flip-Flop-Einrichtungen oder andere Zweizustandsysteme sein können, die in der Lage sind, einen Speichervorgang bei Taktsignalschranken auszuführen. Wie man aus 6a erkennen kann, sind die Ausgangsanschlüsse jeder der Sequenzen mit einem Multiplexer verbunden, der ein beliebiges Auswahlelement zum Auswählen und Ausgeben eines der Signale sein kann.
  • Der in 6b gezeigte mehrstufige Synchronisierer unterscheidet sich von dem in 6a gezeigten dahingehend, dass jede der Registersequenzen in der Länge um ein Element reduziert ist, und dass ein einzelnes Registerelement an dem Ende des Synchronisierers hinzugefügt ist. Zu beachten ist, dass das erwähnte einzelne Registerelement gleichermaßen auch der linken Seite des mehrstufigen Synchronisierers hinzugefügt werden kann. Der Synchronisierer der Ausführungsform aus 6b kann die gleiche Funktion ausüben wie jener aus 6a, besitzt jedoch eine auf drei reduzierte Gesamtzahl an Registerelementen.
  • In 6c wird dieses Konzept erneut angewendet, indem ein weiteres Registerelement in jeder der Sequenzen entfernt und ein zweites Registerelement an dem Ende hinzugefügt wird. Wiederum können ein oder zwei der zusätzlichen Registerelemente, die so gezeigt sind, dass sie mit dem Ausgangsanschluss des Multiplexers aus 6c verbunden sind, auch vorgesehen werden, bevor die Registersequenzen verzweigt werden.
  • 7 zeigt eine weitere Ausführungsform, die in gewisser Weise den Synchronisierer aus 6a wiedergibt, die sich jedoch darin unterscheidet, dass ein zweiter Multiplexer vorgesehen ist. D. h., während die Registersequenzen in 6a jeweils das gleiche Eingangssignal empfangen, stellt die Anordnung aus 7 einen zusätzlichen Multiplexer bereit. Dies ermöglicht ein besseres Entkoppeln der Registersequenzen, um die Zuverlässigkeit zu erhöhen, wobei dies besonders für die Bussynchronisierung vorteilhaft sein kann.
  • Obwohl dies in 7 nicht gezeigt ist, sollte erwähnt werden, dass Ausführungsformen, die ähnlich zu jenen der 6b und 6c sind, auch als Modifizierungen ausgehend von der Anordnung aus 7 möglich sind.
  • In 8 ist ein mehrstufiger Synchronisierer gemäß einer Ausführungsform dargestellt, wobei die Anzahl der Registerelemente soweit wie möglich reduziert ist. In der Ausführungsform aus 8 verbleibt lediglich eine einzige physikalische Registersequenz. Um mehrere logische Registersequenzen mit unterschiedlicher Länge zu verwirklichen, werden Signale abgezweigt und werden separat dem Multiplexer zugeführt. D. h. das oberste Signal, das dem Multiplexer zugeführt wird, ist das Ausgangssignal der gesamten Registersequenz. Das zweite Signal, das dem Multiplexer zugeführt wird, wird von dem Ausgangsanschluss des vierten Registerelements gewonnen, so dass dieses dem Ausgangssignal einer Registersequenz mit vier Elementen entspricht. In ähnlicher Weise entsprechen das dritte und das vierte Signal, die dem Multiplexer zugeführt werden, den Sequenzen aus drei bzw. zwei Registerelementen.
  • Zu beachten ist, dass in einer Einzelbit-Synchronisierausführungsform jedes der einzelnen Registerelemente, die in den 6a bzw. 6c, 7 und 8 gezeigt sind, Einzelbit-Register, etwa Flip-Flops, sein können. In Bussynchronisier-Ausführungsformen kann jedes der Registerelemente so ausgebildet sein, um temporär mehrere Bits zu einem Zeitpunkt zu speichern, d. h. eines für jede Leitung in dem Bus.
  • In einer Ausführungsform wird das Auswahlelement, etwa ein Multiplexer, in einer dynamischen Weise so angesteuert, dass die verwendete Registersequenz geändert wird. Die Änderung kann regulär oder irregulär in reproduzierbarer Weise oder auch nicht durchgeführt werden. In einer Ausführungsform kann die Auswahleinrichtung durch ein zufälliges oder pseudozufälligs Steuersignal angesteuert sein. Die Verwendung eines reproduzierbaren Signals, etwa eines Pseudo-Zufall-Steuersignals, kann einen Lernprozess aus dem Korrgieren von Entwurfsfehlern ermöglichen, indem die Simulationsergebnisse vor und nach der Korrektur verglichen werden.
  • Bevor dies detaillierter erläutert wird, seien zunächst die Echtzeitanforderungen für Einzelbitsignale und Bussignale erläutert.
  • 9a und 10a zeigen Beispiele, in denen zweistufige und dreistufige Synchronisierer für die Einzelbit-Synchronisierung verwendet sind. Wie man aus den 9b und 10b erkennen kann, wird die Synchronisierung korrekt ausgeführt, so dass angenommen werden kann, dass Einzelbitsignal für gewöhnliche keine vollständige Echtzeiterfordernis besitzen.
  • 11a und 12a zeigen ähnliche Anordnungen für die Bussynchronisierung. Das Stufenmodul 1100 aus 11a benutzt zwei Stufen für jedes Bit, so dass sich daraus der Zeitablauf aus 11b ergibt. 12a zeigt eine Anordnung, in der ein einzelnes Bit durch ein zweistufiges Synchronisiererelement verarbeitet wird, während drei Stufen für das zweite Bit verwendet werden. In 12b kann man erkennen, dass das Ausgangssignal undefinierte Werte aufweisen kann, die zu möglichen Funktionsfehlern führen können. Daraus kann man schließen, dass die Bussynchronisierung höhere Echtzeitanforderungen im Vergleich zu der Einzelbit-Synchronisierung besitzt.
  • In 13a ist ein mehrstufiges Synchronisierer wie in 8 gezeigt. Dieser Synchronisierer wird nunmehr verwendet, um das Schalten von einer tieferen zu einer höheren Stufe und umgekehrt zu erläutern, wobei angenommen wird, dass das Schalten bei jeder positiven Flanke eines Taktereignisses möglich ist.
  • 13b zeigt ein Beispiel, in der die Synchronisierung von Sync 2 auf Sync 5 umgeschaltet wird. Man kann erkennen, dass das Ausgangssignal in korrekter Weise alle eintreffenden Daten wiedergibt, obwohl die Daten eine Taktbereichsüberschreitung durchlaufen haben.
  • Das Folgende ist eine kurze Zusammenfassung des Zeitablaufmodells zum Umschalten von einer tieferen zu einer höheren Stufe, wobei angenommen wird, dass tswitch an einer positiven Flanke des clk-Signals auftritt und wobei Tclk = 1/fclk ist.
  • Figure 00110001
  • Figure 00120001
  • In 13c ist ein Beispiel gezeigt, um den Synchronisierer von einer höheren zu einer tieferen Stufe umzuschalten. In dem in 13c gezeigten Beispiel wird sync5 auf sync4 umgeschaltet. In dieser und in anderen Ausführungsformen kann das Schalten ledglich bei einer positiven Taktsignalflanke möglich sein, und wenn keine Daten verloren gehen. Die Bedingung für das Umschalten von einer Rangebene zu einer nächst tieferen kann so sein, dass beide Rangebenen den gleichen Wert aufweisen müssen.
  • Im Folgenden ist das Zeitablaufmodell für das Herunterschalten der Registersequenzen kurz zusammengefasst, wobei angenommen wird, dass tswitch an den positiven Taktsignalflanken auftritt.
  • Figure 00120002
  • In 14 ist ein mehrstufiger Synchronisierer als ein Implementierungsbeispiel gemäß einer Ausführungsform gezeigt. In diesem Beispiel wird zwischen den Ebenen 2 und 3 mit einer Schaltgeschwindigkeit umgeschaltet, die durch Erweitern der Bitbreite der Zufallsvariablen SEL geändert werden kann.
  • 15 zeigt ein Zustandsdiagramm, das in der Ausführungsform aus 14 verwendet werden kann. Wie zu erkennen ist, durchläuft der Synchronisierer die beiden unterschiedlichen Synchronisiererstufen in einer Weise, wie dies durch den Zufallswert sel gesteuert ist. Ein CRC- (zyklischer Redundanzprüf-) Generator kann verwendet werden, um reproduzierbare Pseudo-Zufalls-Verzögerungen zweier oder dreier Taktzyklen für diesen Zweck zu erzeugen. In einer weiteren beispielhaften Ausführungsform kann ein linerares Rückkopplungsschieberegister für den Polynomausdruck 1 + x3 + x10 verwendet werden. In einer noch weiteren Ausführungsform kann in dem CRC-Generator ein linerares Rückkopplungsschieberegister verwendet werden.
  • Es wieder auf 14 verwiesen. Das Folgende ist eine beispielhafte Verilog-Codierung, die in einer Ausführungsform während des RTL-Entwurfs verwendet werden kann:
    Figure 00140001
  • Durch Anwenden variabler Verzögerungen in der oben beschriebenen Weise erlauben es die Ausführungsformen, das Verhalten von in Silizium implementierten Schaltungen für Simulationszwecke zu modellieren, um damit Signalsynchronisierprobleme sehr früh im Entwurfsablauf, beispielsweise während der RTL-Entwurfsphase, zu erkennen. Im Allgemeinen können die Ausführungsformen Synchronisierermodule verwenden, die unter Anwendung einer HDL- (Hardwarebeschreibungssprache) Syntax und Semantik definiert sind. Die Synchronisierungsmodule können separat definiert werden oder können als Teil einer Bibliothek vorliegen.
  • In 16 ist ein Simulationsbeispiel eines Interruptgenerators gezeigt. Diese Schaltung kann eine nicht korrekte Bussynchronisienrung aufweisen, die von der Technik der vorliegenden Ausführungsformen bereits in der RTL-Entwurfsphase aufgedeckt werden kann. In 16 ist das Synchronisierermodul als Block 1620 vorgesehen. Ein Impulsgenerator 1600 liefert ein Signal zu einem 4-Bit-Zähler 1610, um den Zähler zum Aufwärtszählen zu aktivieren. Ferner empfängt eine Eingangssignalerzeugungseinheit gen_int 1630 das Ausgangssignal des Synchronisierers 1620, um einen Interrupt zu erzeugen und auszugeben. Der Impulsgenerator 1600 zusammen mit dem 4-Bit-Zähler 1610 einerseits und der Synchronisierer 1620 mit dem Eingangsgenerator 1630 anderseits bilden unterschiedliche Taktbereiche. Zu beachten ist, dass separate Rücksetzsynchronisierer 1640 und 1650 für die Taktbereiche vorgesehen sein können.
  • Wie zuvor beschrieben ist, wird eine Simulationstechnik bereitgestellt, um einen, z. B. zweistufigen, Flip-Flop-Synchronisierer zu simulieren. Bei der Simulation (jedoch nicht später in der realen Implementierung in einer Siliziumschaltung) schaltet eine Schaltlogik zwischen beispielsweise Verzögerungen von zwei oder drei Zyklen hin und her. Dies simuliert das reale Siliziumverhalten, in welchem Signalverzögerungen aus diversen Gründen manchmal variieren. Hinsichtlich der Bussynchronisierung können in gewissen Ausführungsformen einzelne Busbits „außer Phase" gebracht werden (im Gegensatz zu konventionellen RTL-Simulatoren, die alle Bus-Bits in gleichen Weise behandeln), so dass der Entwurfsingenieur eine nicht korrekte RTL-Beschreibung früh im Entwurfsprozess erkennen kann.
  • Obwohl die Erfindung mit Bezug zu den physikalischen Ausführungsformen beschrieben ist, wie sie in Übereinstimmung mit der Erfindung aufgebaut sind, erkennt der Fachmann, dass diverse Modifizierungen, Variationen und Verbesserungen der vorliegenden Erfindung im Lichte der obigen Lehren und innerhalb des Bereichs der angefügten Patentansprüche durchgeführt werden können, ohne von dem Grundgedanken und beabsichtigten Schutzbereich der Erfindung abzuweichen. Des weiteren wurden jene Bereiche, von denen angenommen wird, dass der Fachmann damit vertraut ist, hierin nicht beschrieben, um die Erfindung, wie sie hier beschrieben ist, nicht unnötig zu verdunkeln. Somit ist die Erfindung nicht durch die speziellen anschaulichen Ausführungsformen, sondern lediglich durch den Bereich der angefügten Patentansprüche beschränkt.

Claims (50)

  1. RTL- (Registertransferebenen) Simulationsvorrichtung, die ausgebildet ist, eine Bussynchronisation über eine Taktbereichsgrenze hinweg zu simulieren, mit: einem ersten RTL-Entwurfselement, das ausgebildet ist, eine Schaltung in einem ersten Taktbereich zu simulieren; einem zweiten RTL-Entwurfselement, das ausgebildet ist, eine Schaltung in einem zweiten Taktbereich zu simulieren; und einem dritten RTL-Entwurfselement (900, 1000, 1100, 1200, 1400, 1620), das ausgebildet ist, die Funktion eines mehrstufigen Synchronisierers mit mehreren Synchronisiererstufen zu simulieren, wovon jede in der Lage ist, ein Synchronisierersignal zu erzeugen, das sich von den Synchronisierersignalen unterscheidet, die von anderen Synchronisiererstufen des mehrstufigen Synchronisierers erzeugt werden, wobei das dritte RTL-Entwurfselement mit dem ersten und dem zweiten RTL-Entwurfselement verbunden ist, wobei die RTL-Simulationsvorrichtung ausgebildet, mindestens eine der mehreren Synchronisiererstufen dynamisch zu aktivieren und zu deaktivieren.
  2. RTL-Simulationsvorrichtung nach Anspruch 1, wobei die mehreren Synchronisiererstufen ausgebildet sind, Flip-Flop-Register zu simulieren.
  3. RTL-Simulationsvorrichtung nach Anspruch 1, wobei das dritte RTL-Entwurfselement ausgebildet ist, eine dynamisch variierende Zeitverzögerung in einem Datenweg von dem ersten RTL-Entwurfselement zu dem zweiten RTL-Entwurfselement durch dynamisches Aktivieren und Deaktivieren mindestens einer der mehreren Synchronisiererstufen anzuwenden.
  4. RTL-Simulationsvorrichtung nach Anspruch 1, wobei der mehrstufige Synchronisierer eine erste und eine zweite Synchronisiererstufe aufweist, und wobei das dritte RTL-Entwurfselement umfasst: ein RTL-Auswahlelement, das mit einem Ausgangsanschluss der ersten Synchronisiererstufe und mit einem Ausgangsanschluss der zweiten Synchronisiererstufe verbunden ist und das ausgebildet ist, ein Ausgangssignal der ersten Synchronisiererstufe oder ein Ausgangssignal der zweiten Synchronisiererstufe auszuwählen.
  5. RTL-Simulationsvorrichtung nach Anspruch 4, wobei die zweite Synchronisiererstufe mit der ersten Synchronisiererstufe verbunden ist, um das Ausgangssignal der ersten Synchronisiererstufe als Eingangssignal zu empfangen.
  6. RTL-Simulationsvorrichtung nach Anspruch 5, wobei die erste und die zweite Synchronisiererstufe ausgebildet sind, die gleichen Zeitverzögerungen auf entsprechende Eingangssignale anzuwenden.
  7. RTL-Simulationsvorrichtung nach Anspruch 4, wobei die erste und zweite Synchronisiererstufe ausgebildet sind, unterschiedliche Zeitverzögerungen auf entsprechende Eingangssignale anzuwenden.
  8. RTL-Simulationsvorrichtung nach Anspruch 1, die ausgebildet ist, die mindestens eine der mehreren Synchronisiererstufen zufällig zu aktivieren und zu deaktiveren.
  9. RTL-Simulationsvorrichtung nach Anspruch 8, die ferner einen Pseudozufallssteuerungssignalerzeuger aufweist, das ausgebildet ist, das zufällige. Aktivieren und Deaktivieren der mindestens einen der Synchronisiererstufen zu steuern.
  10. RTL-Simulationsvorrichtung nach Anspruch 9, wobei der Pseudozufallssteuerungssignalerzeuger ausgebildet ist, einen CRC- (zyklischen Redundanztest) Generator zu simulieren.
  11. RTL-Simulationsvorrichtung nach Anspruch 9, wobei der Pseudozufallssteuerungssignalerzeuger ein lineares Rückkopplungsschieberegister umfasst.
  12. Synchronisierermodul, das ausgebildet ist, um mit einem ersten zwischenspeichernden Register verbunden zu werden, das von einem ersten Taktsignal angesteuert wird, und mit einem zweiten zwischenspeichernden Register verbunden zu werden, das von einem zweiten Taktsignal angesteuert wird, wobei das erste zwischenspeichernde Register ein erstes digitales Signal ausgibt, wobei das zweite zwischenspeichernde Register ein zweites digitales Signal empfängt, und wobei das Synchonisierermodul umfasst: eine Verzögerungseinheit (900, 1000, 1100, 1200, 1400, 1620), die ausgebildet ist, das erste digitale Signal um eine variable Verzögerungszeit selektiv zu verzögern, um damit das zweite digitale Signal bereitzustellen.
  13. Synchronisierermodul nach Anspruch 12, wobei die Verzögerungseinheit umfasst: eine erste Verzögerungsuntereinheit; eine zweite Verzögerungsuntereinheit; und eine Auswahleinheit, die mit einem Ausgangsanschluss der ersten Verzögerungsuntereinheit und mit einem Ausgangsanschluss der zweiten Verzögerungsuntereinheit verbunden ist und ausgebildet ist, als das zweite digitale Signal ein Ausgangssignal der ersten Verzögerungsuntereinheit oder ein Ausgangssignal der zweiten Verzögerungsuntereinheit auszuwählen.
  14. Synchronisierermodul nach Anspruch 13, wobei die zweite Verzögerungsuntereinheit mit der ersten Verzögerungsuntereinheit verbunden ist, um als Eingangssignal das Ausgangssignal der ersten Verzögerungsuntereinheit zu empfangen.
  15. Synchronisierermodul nach Anspruch 14, wobei die erste und die zweite Verzögerungsuntereinheit ausgebildet sind, die gleichen Verzögerungen auf entsprechende Eingangssignale auszuüben.
  16. Synchronisierermodul nach Anspruch 13, wobei die erste und die zweite Verzögerungsuntereinheit ausgebildet sind, unterschiedliche Verzögerungen auf entsprechende Eingangssignale anzuwenden.
  17. Synchronisierermodul nach Anspruch 12, wobei die Verzögerungseinheit ausgebildet ist, die variable Verzögerung zufällig zu ändern.
  18. Synchronisierermodul nach Anspruch 17, das ferner einen Pseudozufallssteuerungssignalgenerator aufweist, der ausgebildet ist, das zufällige Ändern der variablen Verzögerung zu steuern.
  19. Synchronisierermodul nach Anspruch 18, wobei der Pseudozufallssteuerungssignalgenerator ein CRC- (zyklischer Redundanztest) Generator ist.
  20. Synchronisierermodul nach Anspruch 18, wobei der Pseudozufallssteuerungssignalgenerator ein lineares Rückkopplungsschieberegister umfasst.
  21. Synchronisierermodul nach Anspruch 12, wobei das erste und das zweite digitale Signal Multibitbussignale sind.
  22. Synchronisierermodul nach Anspruch 12, wobei das erste und das zweite digitale Signal Einzelbitsignale sind.
  23. Synchronisierermodul nach Anspruch 12, das ausgebildet ist, mit einem ersten und einem zweiten Flip-Flop als zwischenspeichernde Register verbunden zu werden.
  24. Synchronisierermodul nach Anspruch 12, wobei die variable Verzögerungszeit eine Verzögerungszeit ist, die sich zwischen zwei und drei Taktzyklen ändert.
  25. Synchronisierermodul nach Anspruch 12, das ein RTL- (Registertransferlevel) Synchronisierermodul ist.
  26. HDL- (Hardwarebeschreibungssprache) Bibliothek mit mindestens einem Synchronisierermodul nach Anspruch 12.
  27. Computerlesbares Speichermedium, auf dem computerlesbare Instruktionen gespeichert sind, die, wenn sie von einem Prozessor ausgeführt werden, den Prozessor veranlassen, eine RTL- (Registertransferlevel) Simulation auszuführen, um eine Bussynchronisation über eine Taktbereichsgrenze hinweg zu simulieren mit: einem ersten RTL-Entwurfselement, das ausgebildet ist, eine Schaltung in einem ersten Taktbereich zu simulieren; einem zweiten RTL-Entwurfselement, das ausgebildet ist, eine Schaltung in einem zweiten Taktbereich zu simulieren; einem dritten RTL-Entwurfselement (900, 1000, 1100, 1200, 1400, 1620), das ausgebildet ist, die Funktion eines mehrstufigen Synchronisierers mit mehreren Synchronisiererstufen zu simulieren, wovon jede in der Lage ist, ein Synchronisierersignal zu erzeugen, das sich von den Synchronisierersignalen unterscheidet, die von anderen Synchronisiererstufen des mehrstufigen Synchronisierers erzeugt werden, wobei das dritte RTL-Entwurfselement mit dem ersten und dem zweiten RTL-Entwurfselement verbunden ist; und computerlesbaren Instruktionen, um mindestens eine der mehreren Synchronisiererstufen dynamisch zu aktivieren und zu deaktivieren.
  28. Computerlesbares Speichermedium nach Anspruch 27, wobei die mehrerer Synchronisiererstufen ausgebildet sind, Flip-Flop-Register zu simulieren.
  29. Computerlesbares Speichermedium nach Anspruch 27, wobei das dritte RTL-Entwurfselement ausgebildet ist, eine sich dynamisch ändernde Zeitverzögerung in einem Datenweg von dem ersten RTL-Entwurfselement zu dem zweiten RTL-Entwurfselement durch dynamisches Aktivieren und Deaktivieren mindestens einer der mehreren Synchronisiererstufen anzuwenden.
  30. Computerlesbares Speichermedium nach Anspruch 27, wobei der mehrstufige Synchronisierer eine erste und eine zweite Synchronisiererstufe aufweist, und wobei das dritte RTL-Entwurfselement umfasst: ein RTL-Auswahlelement, das mit einem Ausgangsanschluss der ersten Synchronisiererstufe und mit einem Ausgangsanschluss der zweiten Synchronisiererstufe verbunden ist und ausgebildet ist, ein Ausgangssignal der ersten Synchronisiererstufe oder ein Ausgangssignal der zweiten Synchronisiererstufe auszuwählen.
  31. Computerlesbares Speichermedium nach Anspruch 30, wobei die zweite Synchronsiererstufe mit der ersten Synchronisiererstufe verbunden ist, um das Ausgangssignal der ersten Synchronisiererstufe als Eingangssignal zu empfangen.
  32. Computerlesbares Speichermedium nach Anspruch 31, wobei die erste und die zweite Synchronsiererstufe ausgebildet sind, die gleichen Zeitverzögerungen auf entsprechende Eingangssignale anzuwenden.
  33. Computerlesbares Speichermedium nach Anspruch 30, wobei die erste und die zweite Synchronisiererstufe ausgebildet sind, unterschiedliche Zeitverzögerungen auf entsprechende Eingangssignale anzuwenden, um eine Bussynchronisierungssimulation auszuführen.
  34. Computerlesbares Speichermedium nach Anspruch 27, wobei die computerlesbaren Instruktionen ausgebildet sind, die mindestens eine der mehreren Synchronisiererstufen zufällig zu aktivieren und zu deaktivieren.
  35. Computerlesbares Speichermedium nach Anspruch 34, das ferner ein Pseudozufallssteuerungssignalerzeugungselement aufweist, das ausgebildet ist, das zufällige Aktivieren und Deaktivieren der mindestens einen der mehreren Synchronisiererstufen zu steuern.
  36. Computerlesbares Speichermedium nach Anspruch 35, wobei das Pseudozufallssteuerungserzeugungselement ausgebildet ist, einen CRC- (zyklischen Redundanztest-) Generator zu simulieren.
  37. Computerlesbares Speichermedium nach Anspruch 35, wobei das Pseudozufallssteuerungssignalerzeugungselement ein lineares Rückkopplungsschieberegister umfasst.
  38. Synchronisierersimulationsverfahren zum Simulieren einer digitalen elektronischen Schaltung, die ein Synchronisierermodul bildet, das mit einem ersten Register, das von einem ersten Taktsignal angesteuert wird, und mit einem zweiten Register, das von einem zweiten Taktsignal angesteuert wird, verbunden werden kann, wobei das erste Register ein erstes digitales Signal ausgibt, wobei das zweite Register ein zweites digitales Signal empfängt, und wobei das Verfahren umfasst: selektives Verzögern des ersten digitalen Signals mit einer variablen Verzögerung; und Bereitstellen des verzögerten Signals als das zweite digitale Signal.
  39. Synchronisierersimulationsverfahren nach Anspruch 38, wobei das selektive Verzögern umfasst: Anwenden einer ersten Verzögerung; Anwenden einer zweiten Verzögerung; und Auswählen des zweiten digitalen Signals als ein Signal, das durch Anwenden der ersten Verzögerung verzögert ist, oder eines Signals, das durch Anwenden der zweiten Verzögerung verzögert ist.
  40. Synchronisierersimulationsverfahren nach Anspruch 39, wobei die zweite Verzögerung auf das Signal angewendet wird, das durch Anwenden der ersten Verzögerung verzögert ist, um das Signal zu erzeugen, das durch Anwenden der zweiten Verzögerung verzögert ist.
  41. Synchronisierersimulationsverfahren nach Anspruch 40, wobei die erste Verzögerung gleich der zweiten Verzögerung ist.
  42. Synchronisierersimulationsverfahren nach Anspruch 39, wobei sich die erste Verzögerung von der zweiten Verzögerung unterscheidet.
  43. Synchronisierersimulationsverfahren nach Anspruch 38, wobei selektives Verzögern des ersten digitalen Signals umfasst: zufälliges Ändern der variablen Verzögerung.
  44. Synchronisierersimulationsverfahren nach Anspruch 43, wobei das zufällige Ändern der variablen Verzögerung umfasst: Betreiben eines Pseudozufallssignalgenerators, um die zufällige Änderung der variablen Verzögerung zu steuern.
  45. Synchronisierersimulationsverfahren nach Anspruch 44, wobei das Pseudozufallssignalerzeugungselement ein CRC- (zyklischer Redundanztest) Generator ist.
  46. Synchronisierersimulationsverfahren nach Anspruch 44, wobei das Pseudozufallssignalerzeugungselement ein lineares Rückkopplungsschieberegister umfasst.
  47. Synchronisierersimulationsverfahren nach Anspruch 38, wobei das erste und das zweite digitale Signal Multibitbussignale sind.
  48. Synchronisierersimulationsverfahren nach Anspruch 38, wobei das erste und das zweite digitale Signal Einzelbit-Signale sind.
  49. Synchronisierersimulationsverfahren nach Anspruch 38, wobei die variable Verzögerung eine Verzögerung ist, die sich zwischen zwei und drei Taktzyklen ändert.
  50. Synchronisierersimulationsverfahren nach Anspruch 38, das so gestaltet ist, dass es auf RTL- (Registertransferlevel) Entwurfsebene ausgeführt wird.
DE102005024917A 2005-05-31 2005-05-31 Dynamische Synchronisierersimulation Ceased DE102005024917A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102005024917A DE102005024917A1 (de) 2005-05-31 2005-05-31 Dynamische Synchronisierersimulation
US11/440,944 US20070129923A1 (en) 2005-05-31 2006-05-25 Dynamic synchronizer simulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005024917A DE102005024917A1 (de) 2005-05-31 2005-05-31 Dynamische Synchronisierersimulation

Publications (1)

Publication Number Publication Date
DE102005024917A1 true DE102005024917A1 (de) 2006-12-07

Family

ID=37401767

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005024917A Ceased DE102005024917A1 (de) 2005-05-31 2005-05-31 Dynamische Synchronisierersimulation

Country Status (2)

Country Link
US (1) US20070129923A1 (de)
DE (1) DE102005024917A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013114390B4 (de) 2013-03-14 2022-06-09 Nvidia Corporation Datensynchronisierung über asynchrone Grenzen hinweg unter Anwendung selektierbarer Synchronisiereinheiten zur Minimierung der Latenz

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895026B1 (en) * 2007-08-16 2011-02-22 Xilinx, Inc. Multi-rate simulation scheduler for synchronous digital circuits in a high level modeling system
US9060336B2 (en) * 2009-06-19 2015-06-16 Qualcomm Incorporated Apparatus and methods for low power sensing of communication access technologies
US8584067B2 (en) 2010-11-02 2013-11-12 Advanced Micro Devices, Inc. Clock domain crossing buffer
US8564337B2 (en) * 2011-02-08 2013-10-22 Lsi Corporation Clock tree insertion delay independent interface
US8493108B2 (en) * 2011-09-16 2013-07-23 Apple Inc. Synchronizer with high reliability
JP2020129170A (ja) * 2019-02-07 2020-08-27 キオクシア株式会社 検証装置及び検証方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2003320A (en) * 1931-12-09 1935-06-04 Babcock & Wilcox Co Welding device
US4713605A (en) * 1984-05-17 1987-12-15 Advanced Micro Devices, Inc. Linear feedback shift register for circuit design technology validation
US6353906B1 (en) * 1998-04-01 2002-03-05 Lsi Logic Corporation Testing synchronization circuitry using digital simulation
US6128678A (en) * 1998-08-28 2000-10-03 Theseus Logic, Inc. FIFO using asynchronous logic to interface between clocked logic circuits
US7170891B2 (en) * 2001-08-30 2007-01-30 Messenger Terabit Networks, Inc. High speed data classification system
US6982575B2 (en) * 2002-01-30 2006-01-03 Agilent Technologies, Inc. Clock ratio data synchronizer
US6944811B2 (en) * 2002-08-07 2005-09-13 Sun Microsystems, Inc. Blockage aware zero skew clock routing method
US20050210179A1 (en) * 2002-12-02 2005-09-22 Walmsley Simon R Integrated circuit having random clock or random delay
US20040225881A1 (en) * 2002-12-02 2004-11-11 Walmsley Simon Robert Variant keys
US20040225977A1 (en) * 2003-05-08 2004-11-11 Ryan Akkerman System and method for simulating clock drift between asynchronous clock domains
JP4271067B2 (ja) * 2004-03-29 2009-06-03 富士通マイクロエレクトロニクス株式会社 非同期回路検証方法および非同期回路検証プログラム
US7139988B2 (en) * 2004-05-04 2006-11-21 Texas Instruments Incorporated Modeling metastability in circuit design
US7356789B2 (en) * 2004-06-01 2008-04-08 Tai An Ly Metastability effects simulation for a circuit description
US7382824B1 (en) * 2004-08-13 2008-06-03 Emc Corporaration Method and apparatus for accurate modeling of multi-domain clock interfaces
US7363526B1 (en) * 2004-09-07 2008-04-22 Altera Corporation Method for transferring data across different clock domains with selectable delay

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013114390B4 (de) 2013-03-14 2022-06-09 Nvidia Corporation Datensynchronisierung über asynchrone Grenzen hinweg unter Anwendung selektierbarer Synchronisiereinheiten zur Minimierung der Latenz

Also Published As

Publication number Publication date
US20070129923A1 (en) 2007-06-07

Similar Documents

Publication Publication Date Title
DE10045568B4 (de) Ereignisgestütztes Halbleiterprüfsystem
DE10102887B4 (de) Verzögerungsvorrichtung, die eine Verzögerungssperrschleife aufweist und Verfahren zum Kalibrieren derselben
DE102007044110B4 (de) Verfahren und Schaltung zum Einstellen der Phasenverschiebung
DE102005024917A1 (de) Dynamische Synchronisierersimulation
DE102007020005B3 (de) Integrierte Schaltung zur Takterzeugung für Speicherbausteine
DE102010013668A1 (de) Aktives Training von Speicherbefehl-Timing
DE112006002097T5 (de) Vorsehen genauer Zeitsteuerung zwischen mehreren standardisierten Prüfinstrumentenchassis
DE19882870C2 (de) Verfahren und Einrichtung zum Weiterleiten eines Signals zwischen synchronen Taktdomänen, die bei einem nicht-ganzzahligen Frequenzverhältnis arbeiten
DE602005002931T2 (de) Prüfung eines Testobjekts mit Abtastung vom Taktsignal und vom Datensignal
DE602005003302T2 (de) Automatischer mit Geschwindigkeit ablaufender Test auf Fehler von Logikblöcken unter Verwendung von BIST-Logikschaltungen
DE10393657T5 (de) Verfahren und Vorrichtung zur Datenabfrage
DE102006020186A1 (de) Vorrichtung und Verfahren von Verzögerungsberechnung für strukturierte ASIC
DE112008001125T5 (de) Prüfgerät und Prüfverfahren
DE102009007482A1 (de) Jitterinjektionsschaltung, Mustergenerator, Prüfvorrichtung und elektronische Vorrichtung
DE19741915A1 (de) Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen
DE102005057448A1 (de) Vorrichtung und Verfahren zum Erzeugen eines Hochfrequenzsignals
DE10243765A1 (de) Halbleitervorrichtung mit Verzögerungskorrekturfunktion
DE10121165B4 (de) Verfahren und Vorrichtung zum Initialisieren einer asynchronen Latch-Kette
DE112006002098T5 (de) Vorsehen genauer Zeitsteuerung innerhalb eines standardisierten Prüfinstrumentenchassis
DE10297600T5 (de) Gerät und Verfahren zur Verarbeitung von Ereignissen für ereignisbasierte Hochgeschwindigkeitstestsysteme
DE60214379T2 (de) Verfahren und vorrichtung für eine taktschaltung
DE102006008028A1 (de) Lastschwankungs-Korrekturschaltung, elektronische Vorrichtung, Prüfvorrichtung und Zeiterzeugungsschaltung
EP1430320A2 (de) Elektronischer baustein und verfahren zu dessen qualifizierungsmessung
DE102004020030A1 (de) Testvorrichtung zum Testen einer integrierten Schaltung
DE60200289T2 (de) Übergangsanpassung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY

8128 New person/name/address of the agent

Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER,

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final