DE19741915A1 - Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen - Google Patents

Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen

Info

Publication number
DE19741915A1
DE19741915A1 DE19741915A DE19741915A DE19741915A1 DE 19741915 A1 DE19741915 A1 DE 19741915A1 DE 19741915 A DE19741915 A DE 19741915A DE 19741915 A DE19741915 A DE 19741915A DE 19741915 A1 DE19741915 A1 DE 19741915A1
Authority
DE
Germany
Prior art keywords
input
buffer
flip
signal
flop
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.)
Withdrawn
Application number
DE19741915A
Other languages
English (en)
Inventor
Wei-Jin Dai
Junjing Yan
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.)
Quickturn Design Systems Inc
Original Assignee
Quickturn Design Systems 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 Quickturn Design Systems Inc filed Critical Quickturn Design Systems Inc
Publication of DE19741915A1 publication Critical patent/DE19741915A1/de
Withdrawn 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
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Description

Die Erfindung betrifft eine Hardware-Logik-Emulation, insbesondere die Optimierung von auf Zwischenspeichern basierenden Konstruktionen für eine Logikemulation.
Hardware-Logikemulatoren sind leistungsfähige Werkzeuge, die bei der Gestaltung von integrierten Schaltkreisen verwendet werden, wie anwendungsspezifische integrierte Schaltkreise (ASICs) und Mikroprozessoren. Hardware-Emulationssysteme ermöglichen einem Schaltkreis-Entwickler ein logisches Äquivalent zu der Hardware des entwickelten Schaltkreises zu implementieren, bevor der entwickelte Schaltkreis als integrierter Schaltkreis realisiert wird. Dies ermöglicht es dem Entwickler zu überprüfen, ob der entwickelte Schaltkreis erwartungsgemäß arbeitet. Auch wird ein gemeinsames Entwickeln von damit verwandten Komponenten ermöglicht, wie z. B. Software. Ferner ermöglichen Hardware-Emulatoren dem Entwickler zu über­ prüfen, ob der von diesem entwickelte Schaltkreis in einem System funktioniert, in dem der integrierte Schaltkreis eventuell eingesetzt werden wird (Zielsystem). Bei den aus dem Stand der Technik bekannten Emulatoren sind wieder­ programmierbare integrierte Logikschaltkreise verwendet worden, die mit programmierbaren, zusammenschaltbaren Betriebsmitteln zusammengeschaltet worden sind. Zum Beispiel sind solche Emulatoren aus den US. Patenten 5 109 353, 5 036 473, 5 452 239 und 5 475 830 bekannt.
Hardware-Logik-Emulationssysteme können auch mit Hilfe von mehreren Mikroprozessoren konstruiert werden, die in einer Parallelkonfiguration zusammengeschaltet sind. Zum Beispiel sind solche Anordnungen aus den US. Patenten 4 306 286, 4 656 580, 4 914 612 und 5 551 013 bekannt. In solchen Anordnungen werden die Signale zwischen den Prozessoren im Zeitmultiplex verarbeitet. Demgemäß werden innerhalb eines jeden Taktzyklus solche Verbindungen zwischen den Prozessoren ausgebildet, daß die erforderlichen Prozessor-Betriebsmittel zum Bewerten der während des Taktzyklus ablaufenden Logikvorgänge zusammen­ geschaltet sind. Nachdem die Logikvorgänge für diesen Taktzyklus bewertet worden sind, konfiguriert der Emulator die Verbindungen zwischen den Prozessoren erneut, so daß die erforderlichen Prozessor-Betriebsmittel zum Bewerten der Logikvorgänge im nächsten Taktzyklus zusammengeschaltet werden. Insbesondere beschreibt US. Patent 5 551 013 eine Struktur zum Implementieren der Hardware-Logikemulation nach der vorliegenden Erfindung.
Auf Zwischenspeichern ("Latch") basierende Konstruktionen sind unter Entwicklern von integrierten Schaltkreisen bekannt, da sie mit kleineren integrierten Schaltkreisentwurfsgeometrien implementiert werden können als andere sequentielle Logik­ funktionselemente, wie z. B. Flip-Flops. Obwohl auf Zwischen­ speichern basierende Konstruktionen Vorteile bieten, wenn sie als integrierter Schaltkreis realisiert sind, sind Zwischen­ speicher in einem auf Prozessoren basierenden Emulationssystem schwer zu realisieren. Um zu verstehen, warum Zwischenspeicher in solchen Systemumgebungen schwer zu realisieren sind, wird die Funktion von Flip-Flops und Zwischenspeichern kurz erörtert. Die Erörterung nimmt Bezug auf die Fig. 1-4. Wie einem Fachmann bekannt ist, sind Flip-Flops flankengesteuerte sequentielle Bauelemente. Demgemäß nimmt, wie aus Fig. 2 ersichtlich, der Ausgang Q den am Eingang D anliegenden Wert auf die Flanke eines ankommenden Taktsignals CLK hin an. Das aus den Fig. 1-2 ersichtliche Flip-Flop (FF) 10 ist ein positiv-flankengesteuertes Flip-Flop. Ferner ist dem Fachmann bekannt, daß Zwischenspeicher im Gegensatz zu Flip-Flops pegelsensitive sequentielle Bauelemente sind. Daher folgt in einem Zwischenspeicher (Latch) der Ausgang Q dem Eingang D, wenn das Taktsignal CLK einen H-Pegel annimmt. Der Ausgang hält dann den Wert, wenn das Taktsignal CLK einen L-Pegel annimmt. Der aus den Fig. 3-4 ersichtliche Zwischenspeicher 20 ist daher ein positiv-transparenter Zwischenspeicher.
Ein grundlegendes Blockdiagramm des Logikelements eines z.Z. bevorzugten Emulationsprozessors ist aus Fig. 5a ersichtlich.
Die Prozessoren in einem auf Prozessoren basierenden Emulationssystem weisen, wie aus Fig. 5a ersichtlich, einen Eingangsstapelspeicher 50, einen Ausgangsstapelspeicher 60 und einen Logiktabellenstapelspeicher 70 auf. Der Eingangs­ stapelspeicher enthält Eingangsdatensignale, welche die Eingangssignale der Logik für einen einzigen Taktzyklus aufweisen. Der Ausgangsstapelspeicher 60 weist Ausgangssignale der Logik auf, die während eines einzigen Taktzyklus bewertet worden sind. Der Logikstapelspeicher 70 weist die möglichen Primitiven auf, die von dem Prozessor bewertet werden können. Somit werden die Eingangssignale des Eingangsstapelspeichers unter Verwendung der Primitiven des Logiktabellenstapel­ speichers für einen gegebenen Taktzyklus bewertet. Das Ergebnis der Bewertung wird in dem Ausgangsstapelspeicher gespeichert.
In einer herkömmlichen integrierten Schaltkreisstruktur erzeugt ein Taktgeneratorschaltkreis 100 ein oder mehrere Taktsignale von dem der integrierten Schaltkreisstruktur zugeführten Taktsignal. Ein Blockdiagramm eines Taktsignal­ generatorschaltkreises ist aus Fig. 5b ersichtlich. Der Taktgeneratorschaltkreis 100, dem das Eingangstaktsignal FCLK (das von dem Zielsystem kommen kann) zugeführt wird, erzeugt ein oder mehrere Taktsignale A und B. Die Taktsignale A und B sind synchrone Taktsignale. Der Taktgeneratorschaltkreis kann ferner nichtüberlappende Phasen des Takts A (Signals Aph_1 und Aph_2) und des Takts B (Signale Bph_1 und Bph_2) erzeugen. Nichtüberlappende Taktsignale nehmen niemals gleichzeitig den H-Pegel an. Im allgemeinen werden von Entwicklungsingenieuren nichtüberlappende Taktsignale beim Entwickeln von Multi- Zwischenspeicher-Logikschaltkreisen verwendet. Der Grund dafür ist, daß es schwierig ist, die Signalausbreitung durch die Zwischenspeicher in der Anwenderstruktur zu steuern, wenn überlappende Taktsignale von den Entwicklungsingenieuren beim Entwickeln dieser Schaltkreise verwendet werden. Dies kann zu unerwünschten Überlaufzuständen und zu einem unvorhersehbaren Schaltkreisverhalten führen, das ebenfalls unerwünscht ist.
Aufgrund der Art und Weise, in der auf Prozessoren basierende Emulatoren arbeiten, werden auf Flip-Flops basierende Strukturen richtig emuliert. Wie beschrieben, basieren auf Prozessoren basierende Emulationssysteme auf Taktzyklen. Somit gleicht der Prozessor, in dem die momentane Bewertung statt­ findet, die kombinatorische Logik für einen gegebenen Datenpfad ab, d. h., der Prozessor ordnet die Pegel der kombinatorischen Logik, um sicherzustellen, daß richtige Eingangssignale zu jedem Pegel vorhanden sind, wenn der Pegel der Logik bewertet wird. Für jeden Emulationszyklus bewertet der Prozessor nur die kombinatorische Logik zwischen den sequentiellen Logikgattern. In dem Fall, in dem der Datenpfad Flip-Flops aufweist, führt eine solche Anordnung zu einer funktionell korrekten Emulation, da Flip-Flops flankensensitiv sind. Deshalb kann der Ausgangs­ zustand des Flip-Flops nur wechseln, wenn eine Flanke des Taktsignals auftritt. Somit übertragen die Flip-Flops in jedem Taktzyklus in einem auf Prozessoren basierenden Emulations­ system die Datensignale nur von einem Datenpfad zu dem nächsten. Somit sind die Flip-Flops inhärent Teil des Daten­ pfades in einem auf Prozessoren basierenden Emulationssystem.
Zwischenspeicher sind im Gegensatz zu den Flip-Flops wegen ihrer transparenten Natur nicht inhärent Teil der Struktur. Wie beschrieben, sind Zwischenspeicher pegelsensitive Bauelemente, bei denen der Zustand des Ausgangs solange nicht wechselt, bis das empfangene Taktsignal dem Pegel nahekommt, für den der Zwischenspeicher empfindlich ist. Wegen dieser Eigenschaft der Zwischenspeicher, können Zwischenspeicher transparent sein. Die Transparenz eines auf Zwischenspeicher basierenden Schaltkreispfades tritt ein, wenn eine Reihe von Zwischenspeichern in einem einzigen Schaltkreispfad alle mit der gleichen Taktphase getaktet werden. Falls die in Reihe geschalteten Zwischenspeicher gleichzeitig getaktet werden, durchlaufen die Ausgangssignale jedes Datenpfades die Zwischen­ speicher, d. h., die Zwischenspeicher sind transparent. Wenn diese Transparenz vorhanden ist, kann der auf Prozessoren basierende Emulator nicht das Ende des Datenpfads bestimmen. Diese Eigenschaft hat zur Folge, daß die Emulation von auf Zwischenspeicher basierenden Schaltkreisstrukturen problematisch ist. Somit ist die Emulation von auf Zwischen­ speicher basierenden Strukturen mit einem auf Prozessoren basierenden Emulationssystem, wie dem aus dem US. Patent 5 551 013 bekannten, unbefriedigend.
Wie in einer auf Flip-Flops basierenden Struktur, enthält ein Schaltkreispfad einer typischen auf Zwischenspeicher basierenden Struktur einen Datenpfad, der kombinatorische Logik aufweist, die die Eingangssignale den Zwischenspeichen zuführt. Ein Beispiel für einen solchen Schaltkreispfad 200 ist aus Fig. 6 ersichtlich. Der aus Fig. 6 ersichtliche Schaltkreispfad 200 weist einen Zwischenspeicher 210 auf, dessen Ausgang Q den Datenpfad 215 speist. Der Datenpfad 215 speist den Eingang D des Zwischenspeichers 220. Der Ausgang Q des Zwischenspeichers 220 speist den Datenpfad 225, der den Eingang D des Zwischenspeichers 230 speist. Der Emulator soll bewerten, wie der Schaltkreis 200 ein an dem Eingang D des Zwischenspeichers 210 anliegendes Datensignal in einen Emulationszyklus verarbeitet. Das heißt, daß der Emulator den Signalpfad von einem sequentiellen Logikelement zu dem nächsten sequentiellen Element bewertet. Falls jedoch jeder der Zwischenspeicher 210, 220 und 230 mit dem gleichen Taktsignal (oder mit der gleichen Phase des gleichen Taktsignals) getaktet wird, sind die Zwischenspeicher zur gleichen Zeit transparent, wenn jeder der Zwischenspeicher 210, 220 und 230 eine Taktsignalflanke empfängt. Deswegen werden die Zwischenspeicher 210, 220 und 230 die an ihren Eingängen D anliegenden Signale direkt zu ihren Ausgängen Q durchlassen, d. h., die Zwischenspeicher werden transparent. Die von dem Emulator vorzunehmende Bewertung, wie der Schaltkreis 200 das Datensignal in einem einzigen Emulationszyklus verarbeitet hat, kann aufgrund der Transparenz nicht mehr geeignet durchgeführt werden. Zum Beispiel, falls die Zwischenspeicher 210 und 230 mit dem gleichen Taktsignal (oder der gleichen Phase des gleichen Taktsignals ph1) getaktet werden und der Zwischenspeicher 220 mit einem anderen nichtüberlappenden Taktsignal (oder einer anderen, nichtüberlappenden Phase des gleichen Taktsignals ph2) getaktet wird, sind die Zwischen­ speicher nicht transparent zueinander. Andererseits, falls die Zwischenspeicher 210 und 220 mit dem gleichen Taktsignal (oder der gleichen Phase des gleichen Taktsignals ph1) getaktet werden und der Zwischenspeicher 230 mit einem anderen, nicht­ überlappenden Taktsignal (oder einer anderen nichtüberlappenden Phase des gleichen Taktsignals) getaktet wird, ist der Zwischenspeicher 210 transparent bezüglich des Zwischenspeichers 220. Zwischenspeicher 220 ist jedoch nicht transparent bezüglich des Zwischenspeichers 230. Der Grund dafür ist, daß das am Eingang D des Zwischenspeichers 220 anliegende Signal von dem Ausgang Q eines vor dem Zwischenspeicher 210 angeordneten Zwischenspeichers (nicht gezeigt) abhängig ist, da der Zwischenspeicher 220 mit dem selben Taktsignal getaktet wird wie der Zwischenspeicher 210 (Zwischenspeicher 210 ist transparent). Im Gegensatz dazu ist der Wert des Eingangs D des Zwischenspeichers 230 von dem Ausgang Q des Zwischenspeichers 220 abhängig, da die Zwischenspeicher 220 und 230 mit unterschiedlichen Taktsignalen getaktet werden (d. h., der Zwischenspeicher 220 ist nicht transparent).
Im Gegensatz dazu können Flip-Flops nicht transparent sein. Deswegen werden Flip-Flops inhärent in einer auf Zyklen basierenden Emulationsumgebung, d. h., die Ausgangssignale an dem Datenpfad 215 und dem Datenpfad 225 werden in dem Flip-Flop 220 bzw. 230 gespeichert. Aufgrund dieser Eigenschaft der Flip-Flops sind diese für eine solche Art von Emulationsumgebung ideal. Andererseits sind Zwischenspeicher wegen ihrer Trans­ parenz schwer zu emulieren. Obwohl es zum Erreichen des gewünschten Transparenzeffekts möglich ist, die Zwischen­ speicher durch Flip-Flops in der Anwenderstruktur zu ersetzen und das den Flip-Flops zugeführte Signal überabzutasten, führt ein solches Verfahren zu einer signifikant langsameren Emulationsgeschwindigkeit. Ein geringere Emulations­ geschwindigkeit ist jedoch unerwünscht. Somit ist ein Verfahren zum Optimieren von auf Zwischenspeichern basierenden Strukturen für die Emulation in einem auf Prozessoren basierenden Emulationssystem erforderlich.
Die Erfindung behebt die Probleme und Nachteile aus dem Stand der Technik durch das Bereitstellen eines einzigartigen Verfahrens zum Optimieren einer logischen Anwenderstruktur. Die erfindungsgemäßen Verfahren analysieren die Anwenderstruktur, um zu bestimmen, ob diese Zwischenspeicher aufweist. Falls die Anwenderstruktur Zwischenspeicher aufweist, bestimmen die erfindungsgemäßen Verfahren, welche der Zwischenspeicher in der Anwenderstruktur transparent sein müssen, d. h. es wird bestimmt, welche der Zwischenspeicher der Anwenderstruktur transparente Zwischenspeicher sind. Aufeinanderfolgende Zwischenspeicher, die mit der gleichen Phase des gleichen Takt­ signals (oder desselben Taktsignals) getaktet werden, sind transparent. Die Zwischenspeicher in der Anwenderstruktur, die nicht transparent sind, werden erfindungsgemäß in der Anwender­ struktur zu Flip-Flops transformiert. Falls der Zwischen­ speicher in der Anwenderstruktur transparent ist, muß erfindungsgemäß die Transparenz des Zwischenspeichers berücksichtigt werden, wenn die Optimierung durchgeführt wird. Falls der transparente Zwischenspeicher keinen Taktfreigabe­ eingang aufweist, wird er in einen ungetakteten Puffer transformiert. Falls der transparente Zwischenspeicher einen Taktfreigabeeingang aufweist, wird er in einen Logikschaltkreis transformiert, dessen Eingang für den Datenpfad, der den Zwischenspeicher speist, sowohl mit dem Eingang D des Flip-Flops als auch mit dem Eingang eines ungetakteten Puffers verbunden ist. Der Ausgang Q des Flip-Flops ist mit dem ersten Dateneingang eines zwei-zu-eins Multiplexers (Mux) verbunden, wohingegen der Ausgang des ungetakteten Puffers mit dem zweiten Dateneingang des zwei-zu-eins Multiplexers verbunden ist. Der Auswahleingang des zwei-zu-eins Multiplexers wird mit einem Freigabesignal angesteuert, welches das ursprüngliche Freigabe­ signal des transparenten Zwischenspeichers war. Dasselbe Signal wird auch dem Freigabeingang ("enable" oder "en") des Flip-Flops zugeführt.
Die Erfindung kann, falls erforderlich, Strukturen mit Multitakt (multiple, multi-nichtüberlappende Phasentakte) in Strukturen mit einem einzigen Takt konvertieren. Wie oben beschrieben, ist dieser Schritt nicht erforderlich, falls der Emulationsprozessor mehr als ein Taktsignal verarbeiten kann. Im speziellen sind erfindungsgemäß Logikgatter vorzusehen, die nach einer bevorzugten Ausführungsform UND-Gatter sind, und die an die Taktfreigabeeingänge der Flip-Flops geschaltet werden. Dem Logikgatter wird als erstes Eingangssignal das Freigabesignal zugeführt, welches das Eingangssignal des Zwischenspeicher der Anwenderstruktur bildete. Ein zweites Eingangssignal des Logikgatters ist das Taktsignal, welches das Takteingangssignal des nichtoptimierten Zwischenspeichers bildete. Dieses Taktsignal wird invertiert, bevor es dem Logikgatter zugeführt wird.
Die Erfindung wird anhand bevorzugter Ausführungsformen unter Bezugnahme auf die Zeichnung näher erläutert. In der Zeichnung zeigen
Fig. 1 eine schematische Ansicht eines Flip-Flop-Logik­ elements,
Fig. 2 ein Beispiel für einen Signalverlauf eines Taktsignals, eines Eingangssignals und eines Ausgangssignals des Flip-Flops nach Fig. 1,
Fig. 3 eine schematische Ansicht eines Zwischenspeicher-Logik­ elements,
Fig. 4 ein Beispiel für einen Signalverlauf eines Taktsignals, eines Eingangssignals und eines Ausgangssignals des Zwischen­ speichers ("Latch") nach Fig. 3,
Fig. 5a ein grundlegendes Blockdiagramm der Architektur eines Logikelements eines bevorzugten Emulationsprozessors, der für ein auf einem Prozessor basierendes Emulationssystem verwendet wird,
Fig. 5b ein Blockdiagramm eines Taktgeneratorschaltkreises,
Fig. 6 ein schematisches Diagramm eines auf Zwischenspeichern basierenden Logikschaltkreises vor der Optimierung unter Verwendung der erfindungsgemäßen Verfahren,
Fig. 7 ein schematisches Diagramm eines auf Zwischenspeichern basierenden Logikschaltkreises, der aufeinanderfolgende Zwischenspeicher aufweist, die mit unterschiedliche Phasen desselben Taktsignals getaktet werden,
Fig. 8 ein Diagramm, aus dem eine Optimierung unter Verwendung der erfindungsgemäßen Verfahren ersichtlich ist,
Fig. 8a ein Signalflußdiagramm eines positiv-transparenten Zwischenspeichers und eines negativ-flankengetriggerten Flip-Flops,
Fig. 9 ein Diagramm, aus dem eine zusätzliche Optimierung unter Verwendung der erfindungsgemäßen Verfahren ersichtlich ist,
Fig. 10 ein schematisches Diagramm des Logikschaltkreises nach Fig. 8 nach der Optimierung unter Verwendung der erfindungs­ gemäßen Verfahren,
Fig. 11 ein schematisches Diagramm eines auf Zwischenspeicher basierenden Logikschaltkreises mit aufeinanderfolgenden Zwischenspeichern, die mit der gleichen Phase des gleichen Taktsignals getaktet werden,
Fig. 12 ein Diagramm, aus dem eine zusätzliche Optimierung unter Verwendung der erfindungsgemäßen Verfahren ersichtlich ist,
Fig. 13 ein Diagramm, aus dem eine zusätzliche Optimierung unter Verwendung der erfindungsgemäßen Verfahren ersichtlich ist,
Fig. 14 ein Diagramm, aus dem eine zusätzliche Optimierung unter Verwendung der erfindungsgemäßen Verfahren ersichtlich ist,
Fig. 15 ein schematisches Diagramm des Logikschaltkreises nach Fig. 11 nach der Optimierung unter Verwendung der erfindungs­ gemäßen Verfahren,
Fig. 16 ein schematisches Diagramm des Logikschaltkreises nach Fig. 11 nach der Optimierung unter Verwendung der erfindungs­ gemäßen Verfahren, wobei einer der Zwischenspeicher keinen Freigabeeingang aufweist,
Fig. 17 ein schematisches Diagramm eines auf Zwischenspeicher basierenden Logikschaltkreises, wobei aufeinanderfolgende Zwischenspeicher mit der gleichen Phase des gleichen Takt­ signals getaktet werden,
Fig. 18 ein schematisches Diagramm des Logikschaltkreises nach Fig. 17 nach der Optimierung unter Verwendung der erfindungs­ gemäßen Verfahren,
Fig. 19 ein schematisches Diagramm eines auf Zwischenspeicher basierenden Logikschaltkreises, wobei aufeinanderfolgende Zwischenspeicher mit der gleichen Phase des gleichen Taktsignals getaktet werden,
Fig. 20 ein schematisches Diagramm des Logikschaltkreises nach Fig. 19 nach der Optimierung unter Verwendung der erfindungsgemäßen Verfahren,
Fig. 21 ein schematisches Diagramm eines auf Zwischenspeicher basierenden Logikschaltkreises mit mehreren Taktsignalen, wobei aufeinanderfolgende Zwischenspeicher mit der gleichen Phase des gleichen Taktsignals getaktet werden, und
Fig. 22 ein schematisches Diagramm des Logikschaltkreises nach Fig. 11 nach der Optimierung unter Verwendung der erfindungs­ gemäßen Verfahren.
Erfindungsgemäß werden vor der Emulation Transformationen in der Anwenderstruktur durchgeführt. Vor der Emulation der Struktur wird von einem die erfindungsgemäßen Konzepte verwendenden Logikemulationssystem die Struktur bewertet und für die Emulation durch Verwendung einer transformierten Logik optimiert. Durch den optimierten Schaltkreis wird erfindungs­ gemäß ermöglicht, ein logisches Äquivalent der Struktur zu emulieren, wobei die Emulationsfunktionen erhalten bleiben, von denen eine die funktionelle Verifizierung der Struktur ist. Somit wird von der Transformation die Struktur für die Emulation optimiert.
Die Transformationen, die erfindungsgemäß in der zu emulierenden Logikstruktur vorgenommen werden, sind wie folgt. Die Erfindung transformiert auf Zwischenspeicher basierende Strukturen, die mehrere, mehrfach-nichtüberlappende Phasentakte aufweisen, in eine auf Flip-Flops basierende Struktur. Falls gewünscht, kann die Erfindung die Anwenderstruktur in eine Struktur mit einem einzigen Taktsignal transformieren. Die Erfindung analysiert die Struktur und bestimmt für jeden Zwischenspeicher, welche Art von Transformation erforderlich ist, um die logische Äquivalenz aufrechtzuerhalten. Die zur Zeit bevorzugten Emulationsprozessoren haben nur die Fähigkeit, ein einziges Taktsignal zu verarbeiten. Somit wird erfindungs­ gemäß der Taktpfad durch Konvertieren des Schaltkreises in ein System mit einem einzigen Taktsignal optimiert, welches System den Haupttakt des Emulationsprozessors verwendet. Falls Emulationsprozessoren verwendet werden, die multitaktfähig sind, ist die Konvertierung in ein System mit einem einzigen Taktsignal nicht erforderlich.
Zwischenspeicher, die in aufeinanderfolgenden Stufen mit unterschiedlichen Phasen des Taktsignals getaktet werden, d. h., mit Phase 1 (Aph_1) und mit Phase 2 (Aph_2), sind nicht transparent. Solch ein Schaltkreis ist aus Fig. 7 ersichtlich. Der aus Fig. 7 ersichtliche Schaltkreispfad 300 weist einen Zwischenspeicher 310 auf, dessen Ausgang Q den Datenpfad 315 speist. Der Eingang des Zwischenspeicher 310 wird von dem Datenpfad 305 gespeist. Datenpfad 315 speist den Eingang D des Zwischenspeichers 320. Der Ausgang Q des Zwischenspeicher 320 speist den Datenpfad 325, der den Eingang D des Zwischen­ speichers 330 speist. Den Freigabeeingängen der Zwischen­ speicher 310, 320 und 330 werden die Signale E_1, E_2 bzw. E_3 zugeführt. Der Zwischenspeicher 310 wird mit dem Taktsignal Aph_1 getaktet; der Zwischenspeicher 320 wird mit dem Taktsignal Aph_2 getaktet; und der Zwischenspeicher 330 wird mit dem Taktsignal Aph_1 getaktet. Dabei sind die Taktsignale Aph_1 und Aph_2 unterschiedliche Phasen desselben, aus Fig. 5 ersichtlichen Haupttaktsignals FCLK.
Da keiner der aufeinanderfolgenden Zwischenspeicher mit der gleichen Phase des Haupttaktsignals FCLK getaktet wird, existiert kein transparenter Zustand. Deshalb kann der Zwischenspeicher erfindungsgemäß zu einem Flip-Flop transformiert werden. Die grundlegende Optimierung ist aus Fig. 8 ersichtlich. Der Eingang D des aus Fig. 8 ersicht­ lichen Zwischenspeichers ist mit dem Ausgang des Datenpfads (dpath) 255 verbunden. Dem Freigabeeingang des Zwischenspeicher 250 wird ein Signal E zugeführt, und dieser wird mit einem Signal ph1 getaktet. Da keine Transparenz vorhanden ist, kann der Zwischenspeicher 250 in ein Flip-Flop 260 transformiert werden. Der Flip-Flop 260 weist als Eingang D den Ausgang des Datenpfads 255 auf, der den Zwischenspeicher 250 speiste. Dem Freigabeeingang des Flip-Flops 260 wird dasselbe Signal E zugeführt. Das dem Flip-Flop 260 zugeführte Taktsignal ist das invertierte Taktsignal ph1. Aus Fig. 8a ist ein Signalfluß­ diagramm ersichtlich, das erklärt, warum das dem Flip-Flop 260 zugeführte Taktsignal das invertierte Taktsignal ph1 ist. Insbesondere ist es für einen Zwischenspeicher erforderlich, den am Eingang D zu der Zeit anliegenden Wert zu speichern, zu der das Taktsignal ph1 einen L-Pegel aufweist. Ein negatives Flanken-Flip-Flop (d. h., ein Flip-Flop mit invertiertem Taktsignaleingang) speichert das am Eingang D anliegende Signal, wenn das Taktsignal ph1 einen L-Pegel aufweist.
Nachdem der Zwischenspeicher 250 in ein Flip-Flop 260 transformiert worden ist, kann das Flip-Flop in ein System mit einem einzigen Taktsignal transformiert werden, welches System den Systemhaupttakt verwendet. Diese Transformation ist aus Fig. 9 ersichtlich. Wie aus Fig. 9 ersichtlich, wird erfindungsgemäß ein Logikgatter 265 verwendet, dessen Ausgang mit dem Freigabeingang des Flip-Flops 260 verbunden ist. Gemäß einer bevorzugten Ausführungsform ist das Logikgatter 265 ein UND-Gatter. Dem Logikgatter 265 wird als erstes Eingangssignal ein Freigabesignal E zugeführt, welches das Freigabeeingangs­ signal E des Zwischenspeichers 250 bildete. Das zweite Eingangssignal des Logikgatters 265 ist das invertierte Taktphasensignal ph1. Das Haupttaktsignal FCLK des Zielsystems wird dann dem Takteingang des Flip-Flops 260 zugeführt.
Der optimierte Schaltkreis 340 der ursprünglich auf Zwischen­ speicher basierenden und aus Fig. 7 ersichtlichen Struktur 300 ist aus Fig. 10 ersichtlich. Wie aus Fig. 10 ersichtlich, sind die Zwischenspeicher 310, 320 und 330 erfindungsgemäß in Flip-Flops 350, 360 bzw. 370 transformiert. Datenpfad 305, Datenpfad 315 und Datenpfad 325 bleiben unverändert. Zusätzlich sind erfindungsgemäß, wie oben beschrieben, Logikelemente mit den Freigabeeingängen der Flip-Flops 350, 360 und 370 verbunden, um die Struktur in eine Struktur mit einem einzigen Taktsignal zu konvertieren. Wie beschrieben ist dieser Schritt erforderlich, falls der Emulationsprozessor nur ein einziges Taktsignal verarbeiten kann. Bevorzugt werden Logikgatter 375, 380 und 385 als Logikelemente hinzugefügt. Gemäß einer aus Fig. 10 ersichtlichen bevorzugten Ausführungsform sind die Logikgatter 375, 380 und 385 UND-Gatter. Der Ausgang des Logik­ gatters 375 speist den Freigabeeingang des Flip-Flops 350, der Ausgang des Logikgatters 380 speist den Freigabeeingang des Flip-Flops 360 und der Ausgang des Logikgatters 385 speist den Freigabeeingang des Flip-Flops 370. Den Logikgattern 375, 380 und 385 werden als erste Eingangssignale die Freigabsignale zugeführt, welche die Eingangssignale der jeweiligen Zwischen­ speicher 310, 320 und 330 des nichtoptimierten Schaltkreises 300 bildeten. Somit werden dem Logikgatter 375 das Freigabe­ signal E_1 als erstes Eingangssignal, dem Logikgatter 380 das Freigabesignal E_2 als erstes Eingangssignal und dem Logikgatter 385 das Freigabesignal E_3 als erstes Eingangssignal zugeführt. Den Logikgattern 375, 380 und 385 werden als zweite Eingangssignale die invertierten Taktphasensignale zugeführt. Somit werden dem Logikgatter 375 das invertierte Taktsignal Aph_1 als zweites Eingangssignal, dem Logikgatter 380 das invertierte Taktsignal Aph_2 als zweites Eingangssignal und dem Logikgatter 385 das invertierte Taktsignal Aph_1 als zweites Eingangssignal zugeführt.
Im Gegensatz zu dem Schaltkreis 300 sind Zwischenspeicher, die in aufeinanderfolgenden Stufen eines Schaltkreispfades mit der gleichen Phase des Taktsignals getaktet werden, transparent. Wenn Transparenz auftritt, ist, wie oben beschrieben, die Basis-Flip-Flop-Transformation nicht möglich, da bei dem zu emulierenden Schaltkreis die Transparenz zu berücksichtigen ist, was mit einem Flip-Flop selbst nicht möglich ist. Ein Schaltkreis 400, in dem die Zwischenspeicher transparent sind, ist aus Fig. 11 ersichtlich. Der aus Fig. 11 ersichtliche Schaltkreis 400 weist einen Zwischenspeicher 410 auf, dessen Ausgangs Q den Datenpfad 415 speist. Das Eingangssignal des Zwischenspeichers 410 wird von dem Datenpfad 405 geliefert. Der Datenpfad 415 speist den Eingang D des Zwischenspeichers 420. Der Ausgang Q des Zwischenspeichers 420 speist den Datenpfad 425, der den Eingang D des Zwischenspeichers 430 speist. Den Freigabeeingängen der Zwischenspeicher 410, 420 und 430 werden die Signale E_1, E_2 bzw. E_3 zugeführt. Der Zwischenspeicher 410 wird mit dem Taktsignal Aphel getaktet; der Zwischen­ speicher 420 wird mit dem Taktsignal Aph_2 getaktet; und der Zwischenspeicher 430 wird auch mit dem Taktsignal Aph_2 getaktet. Dabei sind die Taktsignale Aph_1 und Aph_2 unterschiedliche Phasen desselben aus Fig. 5 ersichtlichen Haupttaktsignals FCLK.
Da die Zwischenspeicher 420 und 430 mit dem gleichen Taktsignal getaktet werden, z. B. mit der gleichen Phase des Haupttakt­ signals FCLK, sind die Zwischenspeicher 420 und 430 transparent. Deshalb kann der Zwischenspeicher 420 nicht lediglich in ein Flip-Flop transformiert werden. Die erfindungsgemäße Basisoptimierung für transparente Zwischenspeicher ist aus den Fig. 12 und 13 ersichtlich. Der aus Fig. 12 ersichtliche Zwischenspeicher 450 weist als Eingang D den Ausgang des Datenpfads 455 auf. Dem Freigabeeingang des mit Signal ph1 getakteten Zwischenspeichers 450 wird ein Signal E zugeführt. Der aus Fig. 12 ersichtliche Zwischenspeicher 460 weist als Eingang D den Ausgang des Datenpfads 465 auf. Der Zwischenspeicher 460 weist keinen Freigabeeingang auf. Im Falle des Zwischenspeichers 460 ohne Freigabeeingang, wird der Zwischenspeicher 460 in einen ungetakteten Puffer transformiert. Durch den nichtgetakteten Puffer gelangt das Ausgangssignal des Datenpfads 465 direkt zu dem nächsten Datenpfad, so daß die Transparenz aufrechterhalten wird.
Im Gegensatz dazu werden bei der Transformation eines Zwischen­ speichers mit Freigabeeingang, wie des Zwischenspeichers 450, zwei Pfade erzeugt. Der erste aufgrund der Transformation erzeugte Pfad weist ein Flip-Flop 470 mit einem invertierten Taktsignaleingang auf, und der zweite Pfad weist einen nichtgetakteten Puffer 475 auf. Eine solche Transformation wird vorgenommen, da der Zwischenspeicher 450 in Abhängigkeit vom Zustand des Signals am Freigabeeingang entweder transparent oder nichttransparent sein kann. Falls der Zwischenspeicher 450 ein positiv-transparenter Zwischenspeicher ist, der nicht freigegeben ist, ist Zwischenspeicher 450 nicht transparent. Somit werden in aufeinanderfolgenden Stufen angeordnete Zwischenspeicher 450, die mit dem gleichen Taktphasensignal (z. B. mit Taktsignal ph1) getaktet werden, erfindungsgemäß wie folgt transformiert. Der Ausgang des Datenpfads 455 wird mit dem Eingang D des Flip-Flops 470 verbunden. Der Ausgang des Datenpfads 455 wird auch mit dem Eingang des nichtgetakteten Puffers 475 verbunden. Der Ausgang Q des Flip-Flops 470 wird mit dem ersten Dateneingang eines Multiplexers 480 verbunden. Der Ausgang des nichtgetakteten Puffers 475 wird mit dem zweiten Dateneingang des Multiplexers 480 verbunden. Das Freigabesignal E wird sowohl dem Freigabeeingang des Flip-Flops 470 als auch dem Auswahleingang des Multiplexers 480 zugeführt. Somit wird in Abhängigkeit vom Zustand des Freigabeingangs entweder der Ausgang Q des Flip-Flops 470 oder der Ausgang des Puffers 475 zu dem Ausgang des Multiplexers 480 durchgeschaltet. Falls zum Beispiel das Freigabesignal einen H-Pegel aufweist, ist der Zwischenspeicher 450 transparent. Falls das Freigabesignal in dem transformierten Schaltkreis einen H-Pegel aufweist, wird von dem mit dem Auswahleingang des Multiplexers 480 verbundenen Freigabesignal das an dem zweiten Dateneingang anliegende Signal "selektiert", welches das Ausgangssignal des zweiten Puffers 475 ist. Somit wird das Ausgangssignal des Puffers 475 auf den Ausgang des Multiplexers 480 durchgeschaltet. Falls das Freigabesignal einen L-Pegel aufweist, ist im Gegensatz dazu der Zwischenspeicher 450 nicht transparent. Falls das Freigabesignal in dem transformierten Schaltkreis einen L-Pegel aufweist, wird von dem mit dem Auswahleingang des Multiplexers 480 verbundenen Freigabesignal das an dem ersten Dateneingang anliegende Signal "selektiert", welches das am Ausgang Q des Flip-Flops 470 anliegende Signal ist. Somit wird das am Ausgang Q des Flip-Flops 470 anliegende Signal auf den Ausgang des Multiplexers 480 durchgeschaltet.
Nachdem der Zwischenspeicher 450 oder der Zwischenspeicher 460 transformiert worden ist, können die transformierten Schalt­ kreise in ein den Systemhaupttakt verwendendes System mit einem einzigen Taktsignal transformiert werden, falls ein System mit einem einzigen Taktsignal gewünscht wird. Im Falle des Zwischenspeichers 460, der in einen nichtgetakteten Puffer transformiert ist, ist keine weitere Transformation erforderlich. Jedoch ist für den Zwischenspeicher 450, der einen Freigabeeingang aufweist und der, wie aus Fig. 12 ersichtlich, in einen Flip-Flop/Puffer/Multiplexer (FF-Buf-Mux)-Schalt­ kreis transformiert ist, eine weitere Transformation erforderlich. Diese Transformation ist aus Fig. 14 ersichtlich. Wie aus Fig. 14 ersichtlich, ist hierzu erfindungsgemäß ein Logikgatter 485 vorgesehen, dessen Ausgang mit dem Freigabeeingang des Flip-Flops 470 verbunden ist. Gemäß einer bevorzugten Ausführungsform ist das Logikgatter 485 ein UND-Gatter. Dem Logikgatter 485 wird als erstes Eingangssignal das Freigabesignal E zugeführt, welches das Freigabeeingangs­ signal E des Zwischenspeichers 450 bildete. Das zweite Eingangssignal des Logikgatters 485 ist das invertierte Taktphasensignal ph1. Der Haupttakt FCLK des Zielsystems wird dann an den Takteingang des Flip-Flops 470 angelegt.
Der optimierte Schaltkreis 500 der aus Fig. 11 ersichtlichen und ursprünglich auf Zwischenspeichern basierenden Struktur 400 ist aus Fig. 15 ersichtlich. Wie aus Fig. 15 ersichtlich, ist der Zwischenspeicher 410 erfindungsgemäß in ein Flip-Flop 510 transformiert. Der Datenpfad 405 bleibt unverändert. Zusätzlich ist erfindungsgemäß, wie oben beschrieben, ein Logikelement vor den Freigabeeingang des Flip-Flops 510 geschaltet worden, um die Struktur in eine Struktur mit einem einzigen Taktsignal zu konvertieren. Wie beschrieben, ist dieser Schritt nicht erforderlich, falls der in dem Emulationssystem verwendete Emulationsprozessor mehr als ein Taktsignal verarbeiten kann. Bevorzugt wird ein Logikgatter 505 als Logikelement verwendet. Gemäß einer aus Fig. 15 ersichtlichen bevorzugten Ausführungsform ist das Logikgatter 505 ein UND-Gatter. Der Ausgang des Logikgatters 505 speist den Freigabeeingang eines Flip-Flops 510. Dem Logikgatter 505 wird als ein erstes Eingangssignal das Freigabesignal E_1 zugeführt, welches das Freigabeeingangssignal des Zwischenspeichers 410 des nichtoptimierten Schaltkreises 400 bildete. Dem Logikgatter 505 wird als zweites Eingangssignal das invertierte Taktphasen­ signal Aph_1 zugeführt.
Da der Zwischenspeicher 420 der erste in einer Reihe von zwei aufeinanderfolgenden Zwischenspeichern ist, die mit der gleichen Phase des Taktsignals (Aph_2) getaktet werden, ist der Zwischenspeicher 420 transparent bezüglich des Zwischen­ speichers 430 und muß in einen aus Fig. 14 ersichtlichen Flip-Flop/Puffer/Multiplexer-Schaltkreis transformiert werden. Somit speist der Ausgang Q des Flip-Flops 510 den Datenpfad 415, dessen Ausgang sowohl den Eingang D eines Flip-Flops 520 als auch den Eingang eines nichtgetakteten Puffers 518 speist. Der Ausgang Q des Flip-Flops 520 ist mit dem ersten Dateneingang eines Multiplexers 522 verbunden und der Ausgang des nicht­ getakteten Puffers 518, mit dem zweiten Dateneingang des Multiplexers 522 verbunden. Das Freigabesignal E_2 ist ein erstes Eingangssignal eines Logikgatters 515 und das invertierte Taktphasensignal Aph_2 ist ein zweites Eingangs­ signal des Logikgatters 515. Das Ausgangssignal des Logik­ gatters 515 kommuniziert sowohl mit dem Freigabeeingang des Flip-Flops 520 als auch dem Auswahleingang des Multiplexers 522. Da der Zwischenspeicher 430 ein Zwischenspeicher ist, der einem mit dem gleichen Phasentakt getakteten Zwischenspeicher 420 folgt, sich aber dem Zwischenspeicher 430 ein Zwischenspeicher anschließt, der mit einer unterschiedlichen Phase des Taktsignals getaktet wird, wird der Zwischenspeicher 430 erfindungsgemäß in ein Flip-Flop 530 transformiert. Der Grund dafür ist, wie beschrieben, daß der Zwischenspeicher 430 bezüglich des an ihm angeschlossenen nachfolgenden Zwischen­ speichers (nicht gezeigt) nicht transparent ist. Somit wird der Ausgang des Multiplexers 522 mit dem Eingang der Datenpfads 425 verbunden. Der Ausgang des Datenpfads 425 ist an den Eingang D des Flip-Flops 530 angeschlossen. Zusätzlich ist erfindungs­ gemäß, wie oben beschrieben, ein Logikelement vor den Freigabeeingang des Flip-Flops 530 geschaltet, um die Struktur in eine Struktur mit einem einzigen Taktsignal zu konvertieren. Wie beschrieben, ist dieser Schritt nicht erforderlich, falls die Emulationsprozessoren mehr als ein Taktsignal verarbeiten können. Bevorzugt wird ein Logikgatter 525 als Logikelement verwendet. Nach einer aus Fig. 15 ersichtlichen bevorzugten Ausführungsform ist das Logikgatter 525 ein UND-Gatter. Der Ausgang des Logikgatters 525 speist den Freigabeeingang des Flip-Flops 530. Dem Logikgatter 525 wird als ein erstes Eingangssignal das Freigabesignal E_3 zugeführt, welches das Freigabeeingangssignal des Zwischenspeichers 430 des nicht­ optimierten Schaltkreises 400 bildete. Dem Logikgatter 525 wird als zweites Eingangssignal das invertierte Taktphasensignal Aph_2 zugeführt.
Falls der Zwischenspeicher 420 des aus Fig. 11 ersichtlichen Schaltkreises 400 keine Freigabelogik aufweisen würde, würde er erfindungsgemäß nach der aus Fig. 16 ersichtlichen Art und Weise transformiert werden. Wie aus Fig. 16 ersichtlich, ist der Zwischenspeicher 410 erfindungsgemäß in ein Flip-Flop 510 transformiert. Datenpfad 405 bleibt unverändert. Zusätzlich wird erfindungsgemäß, wie oben beschrieben, ein Logikelement vor den Freigabeeingang des aus Fig. 16 ersichtlichen Flip-Flops 510 geschaltet, um die Struktur in eine Struktur mit einem einzigen Taktsignal zu konvertieren. Wie beschrieben, ist dieser Schritt nicht erforderlich, falls die Emulations­ prozessoren mehr als ein Taktsignal verarbeiten können. Bevorzugt wird ein Logikgatter 505 als Logikelement verwendet. Gemäß einer aus Fig. 16 ersichtlichen Ausführungsform ist das Logikgatter 505 ein UND-Gatter. Der Ausgang des Logikgatters 505 speist den Freigabeeingang des Flip-Flops 510. Dem Logikgatter 505 wird als ein erstes Eingangssignal das Freigabesignal E_1 zugeführt, welches das Freigabeeingangs­ signal des Zwischenspeichers 410 des nichtoptimierten Schaltkreises 400 bildete. Dem Logikgatter 505 wird als zweites Eingangssignal das invertierte Taktphasensignal Aph_1 zugeführt.
Da der Zwischenspeicher 420 der erste in einer Reihe von zwei aufeinanderfolgenden Zwischenspeichern ist, die mit der gleichen Phase des Taktsignals (Aph_2) getaktet werden, ist Zwischenspeicher 420 transparent bezüglich des Zwischen­ speichers 430. Da keine Freigabelogik vorhanden ist, ist es nicht erforderlich, den Zwischenspeicher 420 in einen aus Fig. 14 ersichtlichen Flip-Flop/Puffer/Multiplexer-Schaltkreis zu transformieren. Somit speist der Ausgang Q des Flip-Flops 510 den Datenpfad 415, dessen Ausgang den Eingang eines unge­ takteten Puffers 550 speist. Diese Logik erhält die Transparenz auf Dauer aufrecht. Da der aus Fig. 11 ersichtliche Zwischen­ speicher 430 dem mit dem gleichen Phasentakt getakteten Zwischenspeicher 420 folgt, sich aber dem Zwischenspeicher 430 ein Zwischenspeicher anschließt, der mit einer unterschiedlichen Phase des Taktsignals getaktet wird, ist der Zwischenspeicher 430 nicht transparent bezüglich des an ihn angeschlossenen nachfolgenden Zwischenspeichers (nicht gezeigt). Somit wird der Zwischenspeicher 430 erfindungsgemäß in ein Flip-Flop 530 transformiert. Somit wird der Ausgang des ungetakteten Puffers 550 mit dem Eingang des Datenpfades 425 verbunden. Der Ausgang des Datenpfads 425 ist an den Eingang D des Flip-Flops 530 angeschlossen. Zusätzlich ist erfindungsgemäß, wie oben beschrieben, ein Logikelement vor den Freigabeeingang des Flip-Flops 530 geschaltet, um die Struktur in eine Struktur mit einem einzigen Taktsignal zu konvertieren. Wie beschrieben, ist dieser Schritt nicht erforderlich, falls die Emulationsprozessoren mehr als ein Taktsignal verarbeiten können. Bevorzugt wird ein Logikgatter 525 als Logikelement verwendet. Nach einer aus Fig. 16 ersichtlichen bevorzugten Ausführungsform ist das Logikgatter 525 ein UND-Gatter. Der Ausgang des Logikgatters 525 speist den Freigabeeingang des Flip-Flops 530. Dem Logikgatter 525 wird als ein erstes Eingangssignal das Freigabesignal E_3 zugeführt, welches das Freigabeeingangssignal des Zwischenspeichers 430 des nichtoptimierten Schaltkreises 400 bildete. Dem Logikgatter 525 wird als zweites Eingangssignal das invertierte Taktphasensignal Aph_2 zugeführt.
Unter Bezugnahme auf die Fig. 17-18 wird ein anderes Beispiel dafür gegeben, wie erfindungsgemäß auf Zwischen­ speicher basierende Strukturen für eine auf Zyklen basierende Emulation optimiert werden, wobei aufeinanderfolgende Zwischen­ speicher mit dem gleichen Taktphasen getaktet werden, was zur Transparenz führt. Der zweite der aufeinanderfolgenden Zwischenspeicher und wenigstens ein anderer Zwischenspeicher werden mit derselben Datenpfadlogik aber mit unterschiedlichen Taktphasen angesteuert. Im einzelnen speist der Ausgang eines Datenpfads 605 den Eingang D eines Zwischenspeichers 610. Ein Freigabesignal E_2 wird dem Freigabeeingang des Zwischen­ speichers 610 zugeführt. Der Ausgang Q des Zwischenspeichers 610 speist den Eingang eines Datenpfads 615. Der Ausgang des Datenpfads 615 ist sowohl mit dem Eingang D eines Zwischenspeichers 620 als auch mit dem Eingang D eines Zwischenspeichers 630 verbunden. Die Zwischenspeicher 610 und 620 werden mit dem Taktsignal Aph_2 getaktet, wohingegen der Zwischenspeicher 630 mit dem Taktsignal Aph_1 getaktet wird. Der Zwischenspeicher (nicht gezeigt) der sich dem Zwischen­ speicher 620 anschließt, wird mit Taktsignal Aph_1 getaktet, und der Zwischenspeicher (nicht gezeigt) der sich dem Zwischenspeicher 630 anschließt, wird mit Taktsignal Aph_2 getaktet. Freigabesignale E_3 und E_4 werden den Freigabeeingängen der Zwischenspeicher 620 bzw. 630 zugeführt.
Da die Zwischenspeicher 610 und 620 mit der gleichen Phase des Taktsignals (in diesem Beispiel: Aph_2) getaktet werden, muß der Zwischenspeicher 610 in den aus Fig. 14 ersichtlichen Flip-Flop/Puffer/Multiplexer-Schaltkreis transformiert werden. Die optimierte Version des Schaltkreises 600 ist aus Fig. 18 ersichtlich. Der Ausgang des Datenpfads 605 speist sowohl den Eingang D eines Flip-Flops 640 als auch den Eingang eines nichtgetakteten Puffers 645. Der Ausgang Q des Flip-Flops 640 speist den ersten Dateneingang eines Multiplexers 650. Das Freigabesignal E_3 wird als erstes Eingangssignal einem Logikgatter 635 zugeführt, wohingegen das invertierte Taktsignal Aph_2 als zweites Eingangssignal dem Logikgatter 635 zugeführt wird. Das Ausgangssignal des Logikgatters 635 kommuniziert sowohl mit dem Freigabeingang des Flip-Flops 640 als auch mit dem Auswahleingang des Multiplexers 650. Da der Zwischenspeicher 620 einem mit der gleichen Phase getakteten Zwischenspeicher folgt, sich aber dem Zwischenspeicher 620 ein Zwischenspeicher (nicht gezeigt) anschließt, der mit einer unterschiedlichen Phase des Taktsignals getaktet wird, ist der Zwischenspeicher 620 nicht transparent hinsichtlich dieses (nicht gezeigten) Zwischenspeichers. Somit wird der Zwischen­ speicher 620 erfindungsgemäß in ein Flip-Flop 655 trans­ formiert. Dabei ist der Ausgang des Multiplexers 650 mit dem Eingang des Datenpfads 615 verbunden. Der Ausgang des Datenpfads 615 ist an die Eingänge D der Flip-Flops 655 und 665 angeschlossen. Zusätzlich ist erfindungsgemäß, wie oben beschrieben, jeweils ein Logikelement vor die Freigabeeingänge der Flip-Flops 655 und 665 geschaltet, um die Struktur in eine Struktur mit einem einzigen Taktsignal zu konvertieren. Wie beschrieben, ist dieser Schritt nicht erforderlich, falls die Emulationsprozessoren mehr als ein Taktsignal verarbeiten können. Bevorzugt werden die Logikgatter 660 und 670 als Logikelemente verwendet. Nach einer aus Fig. 18 ersichtlichen bevorzugten Ausführungsform sind die Logikgatter 660 und 670 UND-Gatter. Der Ausgang des Logikgatters 660 speist den Freigabeeingang des Flip-Flops 655. Dem Logikgatter 660 wird als ein erstes Eingangssignal das Freigabesignal E_3 zugeführt, welches das Freigabeeingangssignal des Zwischenspeichers 620 des nichtoptimierten Schaltkreises 600 bildete. Dem Logikgatter 660 wird als zweites Eingangssignal das invertierte Taktphasensignal Aph_2 zugeführt. Der Ausgang des Logikgatters 670 speist den Freigabeeingang des Flip-Flops 665. Dem Logikgatter 670 wird als ein erstes Eingangssignal das Freigabesignal E_4 zugeführt, welches das Freigabeeingangs­ signal des Zwischenspeichers 630 des nichtoptimierten Schaltkreises 600 bildete. Dem Logikgatter 670 wird als zweites Eingangssignal das invertierte Taktphasensignal Aph_1 zugeführt.
Unter Bezugnahme auf die Fig. 19-20 wird ein anderes Beispiel dafür gegeben, wie erfindungsgemäß auf Zwischen­ speicher basierende Strukturen für eine auf Zyklen basierende Emulation optimiert werden. In dem aus Fig. 19 ersichtlichen Schaltkreis 700 wird einer von zwei Zwischenspeichern, die einen Datenpfad ansteuern, der einen dritten Zwischenspeicher speist, mit der gleichen Taktphase wie der dritte Zwischen­ speicher getaktet. Im einzelnen speist der Ausgang des Datenpfads 705 den Eingang D eines Zwischenspeichers 710. Das Freigabesignal E_2 wird dem Freigabesignaleingang des Zwischenspeichers 710 zugeführt. Der Zwischenspeicher 710 wird mit dem Taktphasensignal Aph_1 getaktet. Der Ausgang Q des Zwischenspeichers 710 speist den Eingang eines Datenpfads 715. Zusätzlich weist der Schaltkreis 700 einen Datenpfad 725 auf, dessen Ausgang den Eingang D eines Zwischenspeichers 720 speist. Das Freigabesignal E_4 wird dem Freigabesignaleingang des Zwischenspeichers 720 zugeführt. Der Zwischenspeicher 720 wird mit dem Taktphasensignal Aph_2 getaktet. Wie bei dem Zwischenspeicher 710 speist der Ausgang Q des Zwischenspeicher 720 den Eingang des Datenpfads 715.
Der Ausgang des Datenpfads 715 ist mit dem Eingang D eines Zwischenspeichers 730 verbunden. Das Freigabesignal E_3 wird dem Freigabesignaleingang des Zwischenspeichers 730 zugeführt. Der Zwischenspeicher 730 wird, wie Zwischenspeicher 720, mit dem Taktphasensignal Aph_2 getaktet. Somit sind die Zwischen­ speicher 720 und 730 aufeinanderfolgende Zwischenspeicher, die mit der gleiche Phase des Taktsignals getaktet werden. Wie beschrieben, führt dies zu einem transparenten Zustand. Erfindungsgemäß wird der Schaltkreis 700 unter Verwendung der oben beschriebenen Konzepte für die Emulation optimiert. Im einzelnen kann, da Zwischenspeicher 710 nicht mit dem gleichen Takt wie der darauffolgende Zwischenspeicher getaktet wird, die aus den Fig. 8-9 ersichtliche Transformation verwendet werden. Somit wird erfindungsgemäß der Zwischenspeicher 710 in ein Flip-Flop 740 transformiert, dessen Eingang D mit dem Ausgang des Datenpfads 705 verbunden ist. Zum Konvertieren des Schaltkreises 700 in eine Struktur mit einem einzigen Takt­ signal wird erfindungsgemäß, wie oben beschrieben, ein Logikelement vor den Freigabeeingang des Flip-Flops 740 geschaltet. Bevorzugt wird dafür ein Logikgatter 735 verwendet. Gemäß einer aus Fig. 20 ersichtlichen bevorzugten Ausführungs­ form ist das Logikgatter 735 ein UND-Gatter. Der Ausgang des Logikgatters 735 speist den Freigabeeingang des Flip-Flops 740. Dem Logikgatter 735 wird als ein erstes Eingangssignal das Freigabesignal E_2 zugeführt, welches das Freigabeeingangs­ signal des Zwischenspeichers 710 des nichtoptimierten Schalt­ kreises bildete. Dem Logikgatter 735 wird als ein zweites Eingangssignal das invertierte Taktphasensignal Aph_1 zugeführt. Der Ausgang des Logikgatters 735 speist den Freigabesignaleingang des Flip-Flops 740.
Da die Zwischenspeicher 720 und 730 mit der gleichen Phase des Taktsignals (in diesem Beispiel Aph_2) getaktet werden, muß der Zwischenspeicher 720 in den aus Fig. 14 ersichtlichen Flip- Flop/Puffer/Multiplexer-Schaltkreis transformiert werden. Wie aus Fig. 20 ersichtlich, speist der Ausgang des Datenpfads 725 sowohl den Eingang D eines Flip-Flops 750 als auch den Eingang eines nichtgetakteten Puffers 755. Der Ausgang Q des Flip-Flops 750 speist den ersten Dateneingang eines Multiplexers 760, wohingegen der Ausgang des ungetakteten Puffers 755 den zweiten Dateneingang des Multiplexers 760 speist. Um den Schaltkreis 700 in eine Struktur mit einem einzigen Taktsignal zu konvertieren, wird das Freigabesignal E_4 einem ersten Eingang eines Logikgatters 745 zugeführt, wohingegen das invertierte Taktphasensignal Aph_2 dem zweiten Eingang des Logikgatters 745 zugeführt wird. Das Ausgangssignal des Logikgatters 745 kommuniziert sowohl mit dem Freigabeeingang des Flip-Flops 750 als auch mit dem Auswahleingang des Multiplexers 760.
Da der Zwischenspeicher 730 dem mit dem gleichen Phasentakt getakteten Zwischenspeicher 720 folgt, sich aber dem Zwischen­ speicher 730 ein Zwischenspeicher (nicht gezeigt) anschließt, der mit einer unterschiedlichen Phase des Taktsignals getaktet wird, ist der Zwischenspeicher 730 nicht transparent hinsichtlich des nachfolgenden (nicht gezeigten) Zwischen­ speichers. Somit wird der Ausgang des Multiplexers 760 mit dem Eingang des Datenpfads 715 verbunden. Der Ausgang des Datenpfads 715 ist mit dem Eingang D eines Flip-Flops 765 verbunden. Zusätzlich ist erfindungsgemäß, wie oben beschrieben, ein Logikelement vor den Freigabeeingang des Flip-Flops 765 geschaltet, um die Struktur in eine Struktur mit einem einzigen Taktsignal zu konvertieren. Wie beschrieben, ist dieser Schritt nicht erforderlich, falls die Emulations­ prozessoren mehr als ein Taktsignal verarbeiten können. Bevorzugt wird ein Logikgatter 770 als Logikelement verwendet. Nach einer aus Fig. 20 ersichtlichen bevorzugten Ausführungs­ form ist das Logikgatter 770 ein UND-Gatter. Der Ausgang des Logikgatters 770 speist den Freigabeeingang des Flip-Flops 765. Dem Logikgatter 770 wird als ein erstes Eingangssignal das Freigabesignal E_3 zugeführt, welches das Freigabeeingangs­ signal des Zwischenspeichers 730 des nichtoptimierten Schaltkreises 700 bildete. Dem Logikgatter 770 wird als zweites Eingangssignal das invertierte Taktphasensignal Aph_2 zugeführt. Das Ausgangssignal des Logikgatters 770 wird dem Freigabeeingang des Flip-Flops 765 zugeführt.
Ein anderes Beispiel dafür, wie eine auf Zwischenspeicher basierende Schaltkreisstruktur für eine logische Emulation optimiert werden kann, ist aus den Fig. 21-22 ersichtlich. Fig. 21 zeigt einen Schaltkreis 800, der mehrere Taktsignale aufweist. Im einzelnen weist der aus Fig. 21 ersichtliche Schaltkreis 21 zwei Taktsignale A und B auf. Die Taktsignale A und B werden von dem aus Fig. 5 ersichtlichen Taktsignalgeneratorschaltkreis 100 erzeugt. Wie beschrieben, verwendet der Taktsignalgeneratorschaltkreis 100 das Eingangstaktsignal FCLK, um die Taktsignale A und B zu erzeugen. Der Taktsignalgeneratorschaltkreis erzeugt ferner nichtüberlappende Phasen des Taktsignals A (Signale Aph_1 und Aph_2) und des Taktsignals B (Signale Bph_1 und Bph_2).
Der Schaltkreis 800 weist einen Datenpfad 805 auf, dessen Ausgang mit dem Eingang D eines Zwischenspeichers 810 verbunden ist. Dem mit dem Taktsignal Aph_1 getakteten Zwischenspeicher 810 wird ein Signal AE1 als Freigabeeingangssignal zugeführt. Der Ausgang Q des Zwischenspeichers 810 wird einem Datenpfad 815 zugeführt. Der Ausgang des Datenpfads 815 wird dem Eingang D eines Zwischenspeichers 820 zugeführt. Dem mit dem Taktsignal Aph_2 getakteten Zwischenspeicher 820 wird ein Signal AE2 als Freigabeeingangssignal zugeführt. Der Ausgang Q des Zwischen­ speichers 820 wird einem Datenpfad 825 zugeführt. Der Datenpfad 825 weist einen Signal-Pfad zu einem Datenpfad 860 auf und sein Ausgang ist mit dem Eingang D eines Zwischenspeichers 830 verbunden. Dem mit dem Taktsignal Aph_2 getakteten Zwischen­ speicher 830 wird ein Signal AE3 als Freigabeeingangssignal zugeführt. Somit werden die Zwischenspeicher 820 und 830 mit der gleichen Phase des gleichen Taktsignals A getaktet. Die Stufe des Schaltkreises 800, die dem Zwischenspeicher 830 folgt wird mit dem Taktsignal Aph_1 getaktet. Auch weist der Schaltkreis 800 einen Datenpfad 850 auf, dessen Ausgang mit dem Eingang D eines Zwischenspeichers 855 verbunden ist. Dem mit dem Taktsignal Bph_1 getakteten Zwischenspeicher 855 wird ein Signal BE1 als Freigabeeingangssignal zugeführt. Der Ausgang Q des Zwischenspeichers 855 wird dem Datenpfad 860 zugeführt. Wie beschrieben weist der Datenpfad 860 einen Signal-Pfad zu dem Datenpfad 825 auf. Der Ausgang des Datenpfads 860 wird dem Eingang D eines Zwischenspeichers 865 zugeführt. Dem mit dem Taktsignal Bph_1 getakteten Zwischenspeicher 865 wird ein Signal BE2 als Freigabeeingangssignal zugeführt. Somit werden die Zwischenspeicher 855 und 865 mit der gleichen Phase des gleichen Taktsignals B getaktet. Der Ausgang Q des Zwischen­ speichers 865 wird einem Datenpfad 870 zugeführt. Der Ausgang des Datenpfads 870 ist mit dem Eingang D eines Zwischen­ speichers 875 verbunden. Dem mit dem Taktsignal Bph_2 getakteten Zwischenspeicher 875 wird ein Signal BE3 als Freigabesignal zugeführt. Die Stufe des Schaltkreises 800, die dem Zwischenspeicher 875 folgt, wird mit dem Taktsignal Bph_1 getaktet.
Erfindungsgemäß wird der Schaltkreis 800 für die Emulation wie folgt optimiert. Da die Zwischenspeicher 810 und 820 mit unterschiedlichen Phasen desselben Taktsignals A getaktet werden, wird der Zwischenspeicher 810 erfindungsgemäß in ein Flip-Flop 900 transformiert. Der Ausgang des Datenpfads 805 wird mit dem Eingang D des Flip-Flops 900 verbunden. Um den Schaltkreis 800 in eine Struktur mit einem einzigen Taktsignal zu konvertieren, wird erfindungsgemäß dem transformierten Schaltkreis ein Logikgatter 905 in der oben beschriebenen Art und Weise hinzugefügt. Erfindungsgemäß wird das Freigabesignal AE1 als ein erstes Eingangssignal dem Logikgatter 905 zugeführt, wohingegen das invertierte Taktsignal Aph_1 als ein zweites Eingangssignal dem Logikgatter 905 zugeführt wird. Dies ermöglicht dem Flip-Flop 900, mit dem Systemhaupttakt FCLK getaktet zu werden. Der Ausgang des Logikgatters 905 ist mit dem Freigabeeingang des Flip-Flops 900 verbunden. Da die Zwischenspeicher 820 und 830 mit dem gleichen Taktsignal getaktet werden, in diesem Fall mit Aph_2, muß der Zwischenspeicher 820 in den aus Fig. 14 ersichtlichen Flip-Flop/Puffer/Multiplexer-Schaltkreis transformiert werden. Wie aus Fig. 22 ersichtlich speist somit der Ausgang des Datenpfads 815 sowohl den Eingang D eines Flip-Flops 910 als auch den Eingang eines ungetakteten Puffers 920. Der Ausgang Q des Flip-Flops 910 speist den ersten Dateneingang eines Multi­ plexers 925, wohingegen der Ausgang des ungetakteten Puffers 920 den zweiten Dateneingang des Multiplexers 925 speist. Um den Schaltkreis 800 in eine Struktur mit einem einzigen Takt­ signal zu konvertieren, wird das Freigabesignal AE3 als ein erstes Eingangssignal einem Logikgatter 915 zugeführt, wohingegen das invertierte Taktsignal Aph_2 als ein zweites Eingangssignal dem Logikgatter 915 zugeführt wird. Das Ausgangssignal des Logikgatters 915 kommuniziert sowohl mit dem Freigabesignaleingang des Flip-Flops 910 als auch mit dem Auswahleingang des Multiplexers 925. Dies ermöglicht dem Flip-Flop 910, mit dem Haupttaktsignal FCLK getaktet zu werden.
Da der Zwischenspeicher 830 einem Zwischenspeicher folgt, der mit dem gleichen Phasentakt getaktet wird (Zwischenspeicher 820), sich aber dem Zwischenspeicher 830 ein Zwischenspeicher (nicht gezeigt) anschließt, der mit einer unterschiedlichen Phase des Taktsignals getaktet wird, ist Zwischenspeicher 830 nicht transparent. Somit wird erfindungsgemäß der Zwischen­ speicher 830 in ein Flip-Flop 930 transformiert. Dabei ist in dem optimierten Schaltkreis der Ausgang des Multiplexers 925 mit dem Eingang des Datenpfads 825 verbunden. Das Ausgangssignal des Datenpfads 825 wird an den Eingang D des Flip-Flops 930 übertragen. Zusätzlich wird erfindungsgemäß, wie oben beschrieben, ein Logikelement vor den Freigabeeingang des Flip-Flops 930 geschaltet, um die Struktur in eine Struktur mit einem einzigen Taktsignal zu konvertieren. Wie beschrieben, ist dieser Schritt nicht erforderlich, falls die Emulations­ prozessoren mehr als ein Taktsignal verarbeiten können. Im einzelnen wird ein Logikgatter 935 als Logikelement verwendet. Nach einer aus Fig. 22 ersichtlichen bevorzugten Ausführungsform ist das Logikgatter 935 ein UND-Gatter. Der Ausgang des Logikgatters 935 speist den Freigabeeingang des Flip-Flops 930. Dem Logikgatter 935 wird als ein erstes Eingangssignal das Freigabesignal AE3 zugeführt, welches das Freigabeeingangssignal des Zwischenspeichers 830 des nicht­ optimierten Schaltkreises 800 bildete. Dem Logikgatter 935 wird als zweites Eingangssignal das invertierte Taktphasensignal Aph_2 zugeführt. Zusätzlich ermöglicht das Logik-Gatter 935, daß das Flip-Flop 930 mit dem Systemhaupttaktsignal FCLK getaktet werden kann.
Da dem Zwischenspeicher 855 ein Zwischenspeicher 865 folgt, der mit der gleichen Phase des gleichen Taktsignals (d. h., mit dem gleichen Taktsignal) getaktet wird, in diesem Fall mit Bph_1, wird erfindungsgemäß der Zwischenspeicher 855 in den aus Fig. 14 ersichtlichen Flip-Flop/Puffer/Multiplexer-Schaltkreis transformiert. Wie aus Fig. 22 ersichtlich wird der Schaltkreis 800 wie folgt transformiert. Der Ausgang des Datenpfads 850 speist sowohl den Eingang D eines Flip-Flops 940 als auch den Eingang eines ungetakteten Puffers 950. Der Ausgang Q des Flip-Flops 940 speist den ersten Dateneingang eines Multiplexers 955, wohingegen der Ausgang des ungetakteten Puffers 950 den zweiten Dateneingang des Multiplexers 955 speist. Um den Schaltkreis 800 in eine Struktur mit einem einzigen Taktsignal zu konvertieren, wird das Freigabesignal BE1 als ein erstes Eingangssignal einem Logikgatter 945 zugeführt, wohingegen das invertierte Taktsignal Bph_1 als ein zweites Eingangssignal dem Logikgatter 945 zugeführt wird. Das Ausgangssignal des Logikgatters 945 kommuniziert sowohl mit dem Freigabesignaleingang des Flip-Flops 940 als auch mit dem Auswahleingang des Multiplexers 955. Dies ermöglicht dem Flip-Flop 940, mit dem Haupttaktsignal FCLK getaktet zu werden.
Da der Zwischenspeicher 865 einem Zwischenspeicher 855 folgt, der mit dem gleichen Phasentakt getaktet wird, sich aber dem Zwischenspeicher 865 ein Zwischenspeicher 875 anschließt, der mit einer unterschiedlichen Phase des Taktsignals getaktet wird, ist der Zwischenspeicher 865 hinsichtlich des Zwischenspeichers 875 nicht transparent. Somit wird erfindungsgemäß der Zwischenspeicher 865 in ein Flip-Flop 960 transformiert. Dabei ist dem optimierten Schaltkreis der Ausgang des Multiplexers 955 mit dem Eingang des Datenpfads 860 verbunden. Das Ausgangssignal des Datenpfads 860 wird an den Eingang D des Flip-Flops 960 übertragen. Zusätzlich ist erfindungsgemäß, wie oben beschrieben, ein Logikelement vor den Freigabeeingang des Flip-Flops 960 geschaltet, um die Struktur in eine Struktur mit einem einzigen Taktsignal zu konvertieren. Wie beschrieben, ist dieser Schritt nicht erforderlich, falls die Emulationsprozessoren mehr als ein Taktsignal verarbeiten können. Im einzelnen wird ein Logikgatter 965 als Logikelement verwendet. Nach einer aus Fig. 22 ersichtlichen bevorzugten Ausführungsform ist das Logikgatter 965 ein UND-Gatter. Der Ausgang des Logikgatters 965 speist den Freigabeeingang des Flip-Flops 960. Dem Logikgatter 965 wird als ein erstes Eingangssignal das Freigabesignal BE2 zugeführt, welches das Freigabeeingangssignal des Zwischenspeichers 865 des nicht­ optimierten Schaltkreises 800 bildete. Dem Logikgatter 965 wird als ein zweites Eingangssignal das invertierte Taktphasensignal Bph_1 zugeführt. Zusätzlich ermöglicht das Logik-Gatter 965, daß das Flip-Flop 960 mit dem Systemhaupttaktsignal FCLK getaktet werden kann.
Da der Zwischenspeicher 875 und der diesem direkt folgende Zwischenspeicher (nicht gezeigt) mit unterschiedlichen Phasen des gleichen Taktsignals getaktet werden (d. h., Bph_2 für Zwischenspeicher 875 und Bph_1 für den direkt folgenden Zwischenspeicher), wird der Zwischenspeicher 875 erfindungs­ gemäß in ein Flip-Flop 970 transformiert. Das Ausgangssignal des Datenpfads 870 wird an den Eingang D des Flip-Flops 970 übertragen. Um den Schaltkreis 800 in eine Struktur mit einem einzigen Taktsignal zu konvertieren, wird erfindungsgemäß, wie oben beschrieben, dem transformierten Schaltkreis ein Logikgatter 975 hinzugefügt. Im einzelnen wird dem Logikgatter 975 als ein erstes Eingangssignal das Freigabesignal BE3 zugeführt, wohingegen dem Logikgatter 975 als zweites Eingangssignal das invertierte Taktphasensignal Bph_2 zugeführt wird. Dies ermöglicht, daß das Flip-Flop 970 mit dem Systemhaupttaktsignal FCLK getaktet werden kann.
Bevorzugte Algorithmen zum Ausführen des erfindungsgemäßen Verfahrens sind im folgenden aufgeführt:
Somit ist ein bevorzugtes Verfahren zum Optimieren von auf Zwischenspeicher basierenden Schaltkreisen für eine Logikemulation beschrieben worden.

Claims (13)

1. Verfahren zum Optimieren eines Schaltkreises für eine Logikemulation mit:
Bestimmen, ob irgendwelche Zwischenspeicher des Schaltkreises transparente Zwischenspeicher sind und ob irgendwelche der Zwischenspeicher des Schaltkreises nichttransparente Zwischenspeicher sind;
Transformieren der nichttransparenten Zwischenspeicher des Schaltkreises in einen ersten transformierten Schaltkreis;
Transformieren der transparenten Zwischenspeicher des Schaltkreises in einen zweiten transformierten Schaltkreis.
2. Verfahren nach Anspruch 1, wobei der erste transformierte Schaltkreis einen Flip-Flop aufweist.
3. Verfahren nach Anspruch 1, wobei
der zweite transformierte Schaltkreis entweder einen ersten nichtgetakteten Puffer aufweist, falls der transparente Zwischenspeicher keinen Freigabeeingang aufweist, oder ein Flip-Flop, einen zweiten nichtgetakteten Puffer und einen Multiplexer aufweist, falls der transparente Zwischenspeicher einen Freigabeeingang aufweist,
die Eingänge des Flip-Flops und des zweiten nicht­ getakteten Puffers den Eingang des transparenten Zwischenspeichers aufweisen,
der Ausgang des Flip-Flops einen ersten Dateneingang des Multiplexers aufweist,
der Ausgang des zweiten ungetakteten Puffers einen zweiten Dateneingang des Multiplexers aufweist, und
der Multiplexer einen Auswahleingang aufweist, dem als Eingangssignal das gleiche Signal zugeführt wird, welches dem Freigabeeingang des transparenten Zwischenspeichers zugeführt wird.
4. Verfahren nach Anspruch 1, wobei der zweite transformierte Schaltkreis einen ungetakteten Puffer aufweist.
5. Verfahren nach Anspruch 1, wobei
der transparente Zwischenspeicher einen Freigabeeingang aufweist,
der zweite transformierte Schaltkreis ein Flip-Flop, einen ungetakteten Puffer und einen Multiplexer aufweist,
der Flip-Flop einen Dateneingang, einen Freigabeeingang, einen Taktsignaleingang und einen Ausgang aufweist,
der ungetaktete Puffer einen Eingang und einen Ausgang aufweist,
der Multiplexer einen ersten Dateneingang, einen zweiten Dateneingang und einen Auswahleingang aufweist,
der Dateneingang des Flip-Flops und der Eingang des Puffers den Eingang des transparenten Zwischenspeichers aufweisen,
der Ausgang des Flip-Flops mit dem ersten Dateneingang des Multiplexers verbunden ist,
der Ausgang des Puffers mit dem zweiten Dateneingang des Multiplexers verbunden ist, und
dem Auswahleingang des Multiplexers dasselbe Signal als dem Freigabeeingang des transparenten Zwischenspeichers zugeführt wird.
6. Verfahren zum Bilden eines optimierten Schaltkreises für eine Emulation einer Anwenderstruktur, wobei
die Anwenderstruktur aufeinanderfolgende Zwischenspeicher aufweist,
jeder Zwischenspeicher der aufeinanderfolgenden Zwischenspeicher einen Dateneingang, einen Ausgang und einen Taktsignaleingang aufweist,
die aufeinanderfolgenden Zwischenspeicher durch einen Datenpfad separiert sind,
der Datenpfad einen Eingang, der eine kombinatorische Logik speist, und einen Ausgang aufweist,
der Ausgang des Datenpfads den Dateneingang wenigstens eines der aufeinanderfolgenden Zwischenspeicher speist, und
der Taktsignaleingang jedes Zwischenspeichers der aufeinanderfolgenden Zwischenspeicher eines von einer Mehrzahl von Taktsignalen empfängt, wobei das Verfahren die folgenden Schritte aufweist:
Bestimmen, welche der aufeinanderfolgenden Zwischenspeicher mit identischen Taktsignalen getaktet werden, und welche der aufeinanderfolgenden Zwischenspeicher mit unterschiedlichen Taktsignalen getaktet werden;
Auszeichnen jedes Zwischenspeichers der aufeinander­ folgenden Zwischenspeicher, der mit einem identischen Taktsignal getaktet wird, als einen transparenten Zwischenspeicher;
Auszeichnen jedes Zwischenspeichers der aufeinander­ folgenden Zwischenspeicher, der mit einem unterschiedlichen Taktsignal getaktet wird, als einen nichttransparenten Zwischenspeicher;
Transformieren des transparenten Zwischenspeichers in einen ersten transformierten Schaltkreis, wobei der erste transformierte Schaltkreis einen Eingang aufweist, der dem Eingang des transparenten Zwischenspeichers entspricht; und
Transformieren des nichttransparenten Zwischenspeichers in einen zweiten transformierten Schaltkreis, wobei der zweite transformierte Schaltkreis einen Eingang aufweist, der dem Eingang des nichttransparenten Zwischenspeichers entspricht.
7. Verfahren nach Anspruch 6, wobei der erste transformierte Schaltkreis einen nichtgetakteten Puffer aufweist.
8. Verfahren nach Anspruch 6, wobei
der zweite transformierte Schaltkreis einen Flip-Flop aufweist,
der Flip-Flop einen Dateneingang, einen Taktsignaleingang und einen Ausgang aufweist, und
der Taktsignaleingang ein invertiertes Signal des Takt­ signals empfängt, das von dem transparenten Zwischenspeicher empfangen wird.
9. Verfahren nach Anspruch 6, wobei jeder Zwischenspeicher der aufeinanderfolgenden Zwischenspeicher ferner einen Freigabeeingang aufweist.
10. Verfahren nach Anspruch 9, wobei
der erste transformierte Schaltkreis einen Flip-Flop, einen Puffer und einen Multiplexer aufweist,
der Flip-Flop einen Dateneingang, einen Freigabeingang, einen Taktsignaleingang und einen Ausgang aufweist,
der Puffer einen Eingang und einen Ausgang aufweist,
der Multiplexer einen ersten Dateneingang, einen zweiten Dateneingang und einen Auswahleingang aufweist,
der Dateneingang des Flip-Flops und der Eingang des Puffers den Eingang des transparenten Zwischenspeichers aufweisen,
der Ausgang des Flip-Flops mit dem ersten Dateneingang des Multiplexers verbunden ist,
der Ausgang des Puffers mit dem zweiten Dateneingang des Multiplexers verbunden ist,
dem Auswahleingang des Multiplexers dasselbe Signal zugeführt wird, das dem Freigabeeingang des transparenten Zwischenspeichers zugeführt wird, und
der Taktsignaleingang des Flip-Flops ein invertiertes Signal des Taktsignals empfängt, das von dem transparenten Zwischenspeicher empfangen wird.
11. Verfahren nach Anspruch 10, ferner mit dem Schritt:
Verbinden eines Ausgangs eines Logikgatters mit dem Freigabeeingang des Flip-Flops, wobei
dem Logikgatter als ein erstes Eingangssignal das gleiche Signal zugeführt wird, das dem Freigabeeingang des transparenten Zwischenspeicher zugeführt wird, und
dem Logikgatter als ein zweites Eingangssignal das Taktsignal des transparenten Zwischenspeichers invertiert zugeführt wird.
12. Verfahren nach Anspruch 9, wobei
der zweite transformierte Schaltkreis einen Flip-Flop aufweist, und
der Flip-Flop einen Dateneingang, einen Freigabeeingang, einen Taktsignaleingang und einen Ausgang aufweist.
13. Verfahren nach Anspruch 12, ferner mit dem Schritt:
Verbinden eines Ausgangs eines Logikgatters mit dem Freigabeeingang des Flip-Flops,
wobei dem Logikgatter als ein erstes Eingangssignal das gleiche Signal zugeführt wird, das dem Freigabeeingang des nichttransparenten Zwischenspeicher zugeführt wird, und
dem Logikgatter als ein zweites Eingangssignal das Taktsignal des nichttransparenten Zwischenspeichers invertiert zugeführt wird.
DE19741915A 1996-09-23 1997-09-23 Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen Withdrawn DE19741915A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/718,655 US5886904A (en) 1996-09-23 1996-09-23 Latch optimization in hardware logic emulation systems

Publications (1)

Publication Number Publication Date
DE19741915A1 true DE19741915A1 (de) 1998-04-02

Family

ID=24886951

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19741915A Withdrawn DE19741915A1 (de) 1996-09-23 1997-09-23 Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen

Country Status (5)

Country Link
US (1) US5886904A (de)
JP (1) JPH10134091A (de)
DE (1) DE19741915A1 (de)
FR (1) FR2754368B1 (de)
GB (1) GB2319099B (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301553B1 (en) * 1996-05-31 2001-10-09 Luc M. Burgun Method and apparatus for removing timing hazards in a circuit design
US6141636A (en) * 1997-03-31 2000-10-31 Quickturn Design Systems, Inc. Logic analysis subsystem in a time-sliced emulator
US6081656A (en) * 1997-06-27 2000-06-27 Advanced Micro Devices, Inc. Method for deriving a double frequency microprocessor from an existing microprocessor
US6279146B1 (en) 1999-01-06 2001-08-21 Simutech Corporation Apparatus and method for verifying a multi-component electronic design
US6715093B1 (en) * 2000-04-28 2004-03-30 Hewlett-Packard Development Company, L.P. Method for triggering an asynchronous event by creating a lowest common denominator clock
US6433603B1 (en) 2000-08-14 2002-08-13 Sun Microsystems, Inc. Pulse-based high speed flop circuit
CA2329601A1 (en) * 2000-12-22 2002-06-22 Logicvision, Inc. Method and program product for modeling circuits with latch based design
US7260515B2 (en) * 2001-08-20 2007-08-21 Sun Microsystems, Inc. Method and apparatus for simulating transparent latches
JP2003091569A (ja) * 2001-09-17 2003-03-28 Nec Corp 半導体集積回路設計方法、半導体集積回路、電子機器
US6718530B2 (en) * 2002-07-29 2004-04-06 Sun Microsystems, Inc. Method and apparatus for analyzing inductive effects in a circuit layout
US6920625B2 (en) * 2003-04-24 2005-07-19 International Business Machines Corporation Method and apparatus for optimum transparent latch placement in a macro design
US7254793B2 (en) * 2005-02-04 2007-08-07 Synopsys, Inc. Latch modeling technique for formal verification
US7299436B2 (en) * 2005-02-10 2007-11-20 International Business Machines Corporation System and method for accurately modeling an asynchronous interface using expanded logic elements
US8595683B1 (en) 2012-04-12 2013-11-26 Cadence Design Systems, Inc. Generating user clocks for a prototyping environment
US10140413B2 (en) * 2015-04-21 2018-11-27 Synopsys, Inc. Efficient resolution of latch race conditions in emulation

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4306286A (en) * 1979-06-29 1981-12-15 International Business Machines Corporation Logic simulation machine
US4656580A (en) * 1982-06-11 1987-04-07 International Business Machines Corporation Logic simulation machine
JPH0743733B2 (ja) * 1985-12-11 1995-05-15 株式会社日立製作所 論理シミュレーション方法
US4914612A (en) * 1988-03-31 1990-04-03 International Business Machines Corporation Massively distributed simulation engine
EP0437491B1 (de) * 1988-10-05 1995-12-13 Quickturn Systems Inc Verfahren zur verwendung einer elektronisch wiederkonfigurierbaren gatterfeld-logik und dadurch hergestelltes gerät
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
US5109353A (en) * 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware system
US5329470A (en) * 1988-12-02 1994-07-12 Quickturn Systems, Inc. Reconfigurable hardware emulation system
US5475830A (en) * 1992-01-31 1995-12-12 Quickturn Design Systems, Inc. Structure and method for providing a reconfigurable emulation circuit without hold time violations
US5359535A (en) * 1992-05-04 1994-10-25 Motorola, Inc. Method for optimization of digital circuit delays
US5352123A (en) * 1992-06-08 1994-10-04 Quickturn Systems, Incorporated Switching midplane and interconnection system for interconnecting large numbers of signals
US5425036A (en) * 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
US5452239A (en) * 1993-01-29 1995-09-19 Quickturn Design Systems, Inc. Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system
US5551013A (en) * 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
US5521529A (en) * 1995-06-02 1996-05-28 Advanced Micro Devices, Inc. Very high-density complex programmable logic devices with a multi-tiered hierarchical switch matrix and optimized flexible logic allocation

Also Published As

Publication number Publication date
GB9720233D0 (en) 1997-11-26
GB2319099B (en) 2001-06-27
GB2319099A (en) 1998-05-13
FR2754368A1 (fr) 1998-04-10
JPH10134091A (ja) 1998-05-22
US5886904A (en) 1999-03-23
FR2754368B1 (fr) 2001-11-23

Similar Documents

Publication Publication Date Title
DE60202749T2 (de) Schnittstelle von synchron zu asynchron zu synchron
DE60002571T2 (de) Elastische schnittstelleanornung und verfahren dafür
DE60034788T2 (de) Verfahren und schaltung zur zeitlichen anpassung der steuersignale in einem speicherbaustein
DE102005060394B4 (de) Schaltungsanordnung und Verfahren zum Betreiben einer Schaltungsanordnung
DE102008046831B4 (de) Ereignisgesteuerte Zeitintervallmessung
DE4320681C2 (de) Schieberegisterzelle
DE60002567T2 (de) Dynamische wellenpipelineschnittstellenanordnung und verfahren dafür
DE19741915A1 (de) Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen
DE2853239A1 (de) Datenpufferspeicher vom typ first-in, first-out mit variablem eingang und festem ausgang
DE2719531B2 (de) Digitale Logikschaltung zur Synchronisierung der Datenübertragung zwischen asynchrongesteuerten Datensystemen
EP0628832B1 (de) Integrierte Schaltung mit Registerstufen
DE3829730A1 (de) Register fuer eine nacheinanderfolgende hochgeschwindigkeits-approximation in einem analog-digital-wandler
DE60101169T2 (de) Logikschaltkreis mit Pipeline-Struktur
DE3722907A1 (de) Maximallaengen-schieberegister-folgegenerator
DE19811591C2 (de) Taktsignal modellierende Schaltung mit negativer Verzögerung
DE19530669A1 (de) Verfahren zum automatischen Auswählen eines taktsteuernden Signalpfads in umprogrammierbaren Systemen zur Hardware-Emulation
DE60007196T2 (de) Vorrichtung zur Beseitigung von "Durchgleiten" von Daten während einer Schiebeoperation mit Master-Slave Kippschaltungen
DE60221515T2 (de) Speichersystem für schleifenbeschleunigung nach wunsch
DE10018988B4 (de) Hochgeschwindigkeits-Pipelinevorrichtung und Verfahren zum Erzeugen von Steuersignalen dafür
DE2235802A1 (de) Verfahren und einrichtung zur pruefung nichtlinearer schaltkreise
DE4233947A1 (de) Ausgangsschaltung fuer eine integrierte halbleiterschaltung
DE102005004807A1 (de) Taktverdoppler
DE60320057T2 (de) System und Verfahren zur Schaltungsprüfung
DE102019220472A1 (de) Synchronvorrichtung mit Schlupfschutzschaltung
DE102009041815B4 (de) Verfahren zur Erzeugung einer Schaltung aus einer Darstellung von Eigenschaften in einem Eigenschaftsgraphen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8130 Withdrawal