DE19814415A1 - Logikanalyse-Untersystem in einem Zeitscheibenemulator - Google Patents

Logikanalyse-Untersystem in einem Zeitscheibenemulator

Info

Publication number
DE19814415A1
DE19814415A1 DE19814415A DE19814415A DE19814415A1 DE 19814415 A1 DE19814415 A1 DE 19814415A1 DE 19814415 A DE19814415 A DE 19814415A DE 19814415 A DE19814415 A DE 19814415A DE 19814415 A1 DE19814415 A1 DE 19814415A1
Authority
DE
Germany
Prior art keywords
analysis subsystem
logic analysis
signals
signal
logic
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
DE19814415A
Other languages
English (en)
Inventor
Tony R Sarno
Ingo Schaefer
John E Chilton
Mark S Papamarcos
Bernard Y Chan
Michael C Tsou
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 DE19814415A1 publication Critical patent/DE19814415A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Description

Die Erfindung betrifft die Simulation digitaler Schaltkreise mittels eines Hardwareemulators und insbesondere ein Verfahren und eine Vorrichtung zum Implementieren eines Logikanalyse-Untersystems zur Fehlersuche für Schaltkreise in einem derartigen Emulator.
Da elektronische Schaltkreisgestaltungen fortdauernd an Geschwindigkeit und Komplexität zunehmen, wird es immer kritischer die Entwicklungsschaltkreisgestaltungen in unterschiedlichen Entwicklungsstadien zu testen. Hardwareemulatoren liefern ein Mitteln zum Testen komplexer Schaltkreisgestaltungen während diese Gestaltungen entwickelt werden. Solche Emulatoren sehen typischerweise konfigurierbare Hardware vor, welche mittels Software gesteuert wird, um die Funktionen eines zu entwickelnden Schaltkreises auszuführen. Die Schaltkreisgestaltung wird durch einen Satz Daten spezifiziert, welcher Aufbau und Verhalten des Schaltkreises festlegt. Der Emulator ist oft an ein Targetsystem (Zielsystem) angeschlossen, welches der tatsächliche Schaltkreis ist, mit dem die Schaltkreisgestaltung schließlich betrieben werden soll.
Emulatoren werden unter Softwaresteuerung betrieben. Die Schaltkreisgestaltung wird kompiliert, um das Programm zu erzeugen, welches den Emulator steuert. Weil ein Emulator die Funktionen einer Vielzahl von Schaltkreisgestaltungen ausführen muß, sollte dieser so flexibel wie möglich sein. Das heißt, das Emulationssystem muß logische Verarbeitungshardware enthalten, welche für unterschiedliche Gestaltungen wiederverwendbar ist. Ein derartiges Emulationsssytem würde eine große Anzahl von universellen Verarbeitungselementen enthalten, welche benutzt werden, um die Funktion des zu emulierenden Schaltkreises indirekt auszuführen. Beispielsweise würde ein Universalemulator mehrere boolesche Logikgleichungen verarbeiten, um einen Multipliziererschaltkreis zu emulieren, anstatt einen geeigneten Hardwaremultiplizierer für denselben Zweck zu verwenden, welcher dann bei der Emulation von Schaltkreisgestaltungen, welche keine Multiplizierfunktionen enthalten, unbrauchbar würde. Um diese Gleichungen zu lösen, müssen in dem Emulator viele Tore oder andere Komponenten mit Signalen versehen werden. Außerdem müssen die Ausgänge der Tore oder anderen Komponenten effizient mit den unterschiedlichen Komponenten des Emulators verschaltet werden.
Herkömmliche Emulatoren werden zum Entwickeln und Testen von Gestaltungen verwendet. Zu diesem Zweck ist es erwünscht, Daß es ermöglicht ist, unterschiedliche Signale während des Emulationsprozesses zu überwachen. Bei herkömmlichen Emulatoren sind jedoch bestimmte Signale nicht für die Überwachung verfügbar, weil sie während des Compilierprozesses verlorengehen. Der Compiler nimmt eine Beschreibung der zu emulierenden Gestaltung und verwandelt sie in Steueranweisungen für den Emulator. Dieser Prozeß reduziert bestimmte Gruppen von Signalen in der Gestaltung. Reduzierte Signale sind nicht für die Überwachung während des Emulationsprozesses verfügbar. Erforderlich ist eine Möglichkeit, dem Verwender reduzierte Signale sichtbar zu machen. Derartige Funktionen würden die Möglichkeiten des Verwenders zum Fehlersuchen (debugging) und Testen des zu emulierenden Schaltkreises erweitern.
Zusätzlich ist es erwünscht, dem Verwender das Setzen von Zwischenstopps (Breakpoint) und Auslösesignalen (Trigger) während des Emulationsprozesses zu ermöglichen. Es ist auch erwünscht, dem Verwender während der Emulation zu ermöglichen, die Inhalte von Signalen in dem Emulator auf einen externen Computer einer Workstation zu speichern.
Die Erfindung vermeidet die Probleme und Nachteile des Standes der Technik mittels Implementieren eines Logikanalyse- Untersystems (auch Ablaufverfolgungsuntersystem genannt) in einen Zeitscheibenemulator. Das Logikanalyse-Untersystem "rekonstruiert" Signale, welche zuvor von dem Compiler reduziert wurden und ermöglicht dem Verwender, Zwischenstopps und diese verwendende Auslösesignale und andere Signale des emulierten Schaltkreises zu setzen.
Eine bevorzugte Ausführungsform der Erfindung weist einen "Logikanalyse-Untersystem-Compiler" und "Logikanalyse- Untersystem-Hardware" auf. Der Logikanalyse-Untersystem- Compiler ist entweder eine Unterkomponente des normalen Emulator-Compilers oder ein eigenständiger Compiler. Er compiliert die zu emulierende Gestaltung (Schaltkreisentwicklung) und erzeugt Steueranweisungen für die Logikanalyse-Untersystem-Hardware. Die Logikanalyse- Untersystem-Hardware ist an den Zeitscheibenemulator angeschlossen, um von dem Emulator während der Emulation erzeugte Signale zu empfangen. Beim Betrieb des Logikanalyse- Untersystems verursachen die von dem Logikanalyse-Untersystem- Cornpiler erzeugten Steueranweisungen, daß das Logikanalyse- Untersystem vorher reduzierte von dem Emulator empfangene Signale rekonstruiert. Diese Signale können (zusammen mit anderen von dem Emulator empfangenen Signalen) von dem Verwender verwendet werden, um Zwischenstopps und Auslösesignale in dem Logikanalyse-Untersystem zu setzten.
Eine bevorzugte Ausführungsform der Erfindung ist an eine Workstation oder einen anderen Universalcomputer gekoppelt und ermöglicht es dem Verwender, die Konfiguration des Logikanalyse-Untersystems zu steuern. Das Logikanalyse- Untersystem gibt beim Eintreten eines verwender-spezifizierten Zwischenstopps oder Auslösesignals oder wenn der Speicher der Ablaufverfolgung voll ist (und das Logikanalyse-Untersystem sich nicht in einem Modus befindet, welcher es ermöglicht, seinen Speicher zu überschreiben, wenn der Speicher voll ist) ein Interuptsignal an die Workstation aus.
Ein Emulator mit einem erfindungsgemäßen Logikanalyse- Untersystem betreibt bis zu vier Chassis. Jedes Chassis enthält bis zu acht Emulatorplatten. Jede Emulatorplatte enthält bis zu zwölf Emulatorprozessorchips und weist außerdem einen Bereich des Logikanalyse-Untersystems auf. Jede der acht Platten ist mit einem 384 Bit Bus des Zeitscheibenemulators gekoppelt. Während jedes Verwendertaktzyklus werden Ausgaben von dem Emulator mittels dieses Busses auch an das Logikanalyse- Untersystem gesendet.
Gemäß dem erfindungsgemäßen Ziel betrifft die Erfindung ein an ein Emulationssystem angekoppeltes Logikanalyse- Untersystem.
Das erfindungsgemäße Logikanalyse-Untersystem weist auf: Eingangsleitungen, welche Ausgangswerte von dem Emulationssystem empfangen; mindestens einen Prozessorchip, welcher eine Prüffunktion in Übereinstimmung mit auf den Eingangsleitungen empfangenen Signalen implementiert; und einen Controller, welcher den Betrieb der Prüffunktion in Übereinstimmung mit von dem mindestens einem Prozessorchip empfangenen Anweisungen steuert.
Gemäß dem Ziel der Erfindung betrifft die Erfindung ferner ein Verfahren zum Compilieren einer funktionellen Schaltkreisgestaltung. Das erfindungsgemäße Verfahren verfolgt (trace) den Ablauf der Schaltkreisgestaltung mittels eines Logikanalyse-Untersystems, wobei das Verfahren mittels eines Datenverarbeitungssystems durchgeführt wird, und folgende Schritte aufweist: Speichern einer Mehrzahl von Ausgangssignalen, welche von einem Emulationssystem während der Emulation verfügbar sind, in einem Speicher; Empfangen einer Beschreibung eines reduzierten Signals, welches von dem Logikanalyse-Untersystem benötigt wird, wobei das reduzierte Signal eine Beschreibung aufweist, wie die Ausgangssignale verwendet werden, um das reduzierte Signal zu erzeugen; Bestimmen der Inhalte eines zweiten Schaltkreises, welcher die Ausgangssignale empfängt und das reduzierte Signal in Übereinstimmung mit der Beschreibung des reduzierten Signals erzeugt; und Compilieren des zweiten Schaltkreises, so daß dieser mittels des Logikanalyse-Untersystems implementiert werden kann, um das reduzierte Signal zu rekonstruieren.
Die angehängten Zeichnungen zeigen unterschiedliche Ausführungsformen der Erfindung und dienen zusammen mit der Beschreibung zum Erläutern der erfindungsgemäßen Prinzipien.
Fig. 1 zeigt ein Blockschaltbild eines Emulators, mit welchem eine bevorzugte Ausführungsform der Erfindung zusammenarbeitet.
Fig. 2 zeigt ein Blockschaltbild, in welchem eine Platte des erfindungsgemäßen Emulators aus Fig. 1 an einen Abschnitt eines Logikanalyse-Untersystems angeschlossen ist.
Fig. 3a zeigt ein Blockschaltbild des Logikanalyse- Untersystems aus Fig. 2.
Fig. 3b zeigt ein Blockschaltbild weiterer Details eines Controllers des Logikanalyse-Untersystems aus Fig. 3a.
Fig. 4 zeigt ein Blockschaltbild, welches Ein- und Ausgänge eines Emulator-Compilers und eines Logikanalyse- Untersystem-Compilers einer ersten bevorzugten Ausführungsform der Erfindung zeigt.
Fig. 5 zeigt ein Blockschaltbild, welches Ein- und Ausgänge eines Emulatorcompilers einer zweiten bevorzugten Ausführungsform der Erfindung zeigt.
Fig. 6 zeigt eine Ausführungsform einer Schaltkreisgestaltung, welche emuliert werden soll.
Fig. 7 zeigt das Beispiel aus Fig. 6, nachdem der Emulatorcompiler die Signale in der Gestaltung reduziert hat.
Fig. 8 zeigt ein Beispiel, wie die nicht reduzierten Signale aus Fig. 7 den Prozessoren in dem Emulator eingegeben werden.
Fig. 9a bis 9f zeigen die compilierten Schaltkreise, welche mittels des Logikanalyse-Untersystem-Compilers rekonstruiert werden müssen, so daß das Logikanalyse- Untersystem früher, während der Emulation reduzierte Signale rekonstruieren und zugänglich machen kann.
Fig. 10 zeigt eine schematische Ansicht eines Beispiels eines compilierten Schaltkreises, welcher mittels des Logikanalyse-Untersystem-Compilers erzeugt wurde, so daß das Logikanalyse-Untersystem ein Zwischenstopp-Signal erzeugen kann.
Fig. 11 zeigt eine schematische Ansicht eines Beispiels eines compilierten Schaltkreises, welcher von dem Logikanalyse- Untersystem-Compiler erzeugt wurde, so daß das Logikanalyse- Untersystem ein Meldesignal erzeugen kann.
Fig. 12a zeigt eine schematische Ansicht eines Beispiels eines compilierten Schaltkreises, welcher mittels des Logikanalyse-Untersystem-Compiler erzeugt wurde, so daß das Logikanalyse-Untersystem ein Auslösesignal erzeugen kann.
Fig. 12b zeigt ein Beispiel eines compilierten Schaltkreises, welcher mittels eines Compilers in einem System erzeugt wurde, welches es ermöglicht, die Zwischenstopps während des Betriebs des Emulators zu verändern.
Fig. 13 zeigt ein Blockschaltbild eines einzelnen integrierten Schaltkreises in dem erfindungsgemäßen Logikanalyse -Untersystem.
Fig. 14 zeigt eine erweiterte Ansicht der Verschaltung einiger funktioneller Blöcke aus Fig. 13.
Fig. 15 zeigt mehr Details der Verschaltung des ersten funktionellen Blocks aus Fig. 13.
Fig. 16 zeigt ein Blockschaltbild des Logikeinheit-Blocks aus Fig. 13.
Fig. 17 zeigt mehr Details bezüglich der Eingangs-Lese- Verschaltung aus Fig. 16.
Fig. 18 zeigt mehr Details des Emulationsspeicherblocks aus Fig. 13.
Fig. 19 zeigt ein Blockschaltbild von 12 Hydra­ prozessorchips und einem Abschnitt des Logikanalyse- Untersystems.
Die Erfindung wird jetzt unter Bezugnahme auf die bevorzugten Ausführungsformen, deren Beispiele in den angehängten Zeichnungen gezeigt sind, näher erläutert. Die Zeichnungen sind durchwegs mit gleichen Bezugszeichen für gleiche oder ähnliche Teile versehen, wo immer dies möglich ist.
Die folgenden Absätze liefern einen Überblick über die Hardware eines Emulators, welcher in Verbindung mit der Erfindung verwendbar ist, und einen Überblick über ein Logikanalyse-Untersystem gemäß der Erfindung.
Fig. 1 zeigt ein Blockschaltbild eines Emulators 100, mit welchem eine bevorzugte Ausführungsform der Erfindung betrieben wird. Ein derartiger Emulator kann beispielsweise ein Zeitscheibenemulator sein, wie er in der US-Anmeldung Nr. 08/496,239 mit dem Titel "Emulation System having multiple emulated clock cycles per emulated clock cycle and improved signal routing" von Chilton ua., AT 28.06.1995 beschrieben ist. Der Emulator 100 weist bevorzugt eine Anzahl (C) von Chassis auf, von welchen jedes, wie aus Fig. 1 ersichtlich, M Platten 102. . .106 enthält, welche mittels eines 384 Bit Busses gekoppelt sind. Bei einer Version des Emulators ist C=4 und M=8. Also sind es vier Chassis und acht Platten in jedem Chassis.
Der Emulator 100 ermöglicht das Implementieren einer technologisch geplanten Verwendergestaltung über eine Reihe von Zeitscheiben oder Programmschritten. Ein technologischer Abbildungsprozeß (Compilierung) verwandelt Bereiche der Verwendergestaltung (z. B. eine Netzliste) in eine Form, welche in die Verarbeitungselemente der physikalischen Hardware eingesetzt werden kann. Nach diesem Prozeß sind nur noch die Knoten der Gestaltung, welche entweder als Eingänge oder als Ausgänge der Verarbeitungselemente in dem Emulator verfügbar sind, für externe Hardware zum Prüfen sichtbar.
Fig. 1 weist auch eine CT-Platte (Controller) 107, wie in der US-Anmeldung Nr. 08/496,239 beschrieben, und eine Workstation 101 auf, welche mittels eines Hauptbusses 356 an die CT-Platte 107 angeschlossen ist.
Fig. 2 zeigt ein Blockschaltbild einer Platte 102 des Emulators aus Fig. 1. Bei einer bevorzugten Ausführungsform der Erfindung enthält jede Platte 1. . .M einen Teil des Logikanalyse-Untersystems 202. Die Platte 102 weist einen Abschnitt eines Logikanalyse-Untersystems 202 und ein Logikverarbeitungssystem 203 auf. Jede Platte in dem Emulatoruntersystem 203 weist N Prozessorchips 204 bis 208 auf, wenn N=12. Jeder Abschnitt des Logikanalyse-Untersystems 202 weist zwei Prozessorchips 302 und 304 auf ("Ablaufverfolgungsprozessorchips", trace processor chips) und einen Controller/Ablaufverfolgungsspeicher 306. Jeder Prozessorchip in dem Emulator 203 ist durch den 384 Bit Emulatorbus angeschlossen. Die Ablaufverfolgungsprozessorchips 302 und 304 in dem Logikanalyse-Untersystem nehmen auch den 384 Bit Emulatorbus auf.
Das Emulatoruntersystem 203 berechnet die primären Ausgänge einer Verwendergestaltung aus primären Eingängen der Gestaltung und dem internen Gestaltungsstadium auf dem 384 Bit Bus. Während der Berechnung des Emulators 203 erscheinen auf dem 384 Bit Logikbus mittels Chipausgängen erzeugte Werte. Durch Verwenden dieser Zwischenwerte als Eingänge implementiert das Logikanalyse-Untersystem 202 flexible und wirkungsvolle Fehlersuchmerkmale ohne Erniedrigen der logischen Kapazität oder Leistung des Emulators 203. Dies wird durch zusätzliche Zeitscheibenlogikmittel im Logikanalyse-Untersystem 202 erreicht (d. h. Ablaufverfolgungsprozessorchips 302 und 304). Durch Programmieren des Logikanalyse-Untersystems 202 können folgende Merkmale hinzugefügt werden:
  • 1. Verwenderknoten, welche nicht bereits auf dem logischen Bus zum direkten Prüfen verfügbar sind, weil sie während des technologischen Abbildens/Compilierens beseitigt wurden, können rekonstruiert werden. Das heißt, daß wenn der Verwender einen Knoten zum prüfen auswählt und dieser nicht auf dem logischen Bus verfügbar ist, die zum Erzeugen des Knotens aus auf dem Bus verfügbaren Eingängen erforderliche Logik erzeugt wird (zur Compilierzeit) und in das Logikanalyse-Untersystem 202 implementiert wird.
  • 2. Zusätzlich zur Knotenrekonstruktion können die Mittel in dem Logikanalyse-Untersystem mit unterschiedlicher Logik, welche zum Erzeugen von Ablaufverfolgungs-, Erfassungs-, Auslösesignalen, Zwischenstopps und Workstation- Interuptsignalen erforderlich sind, programmiert werden. Die mit diesen Signalen verbundene Logik wird ebenfalls zur Compilierzeit erzeugt und kann innerhalb der Grenzen der zur Verfügung stehenden logischen Mittel eigenständig komplex sein und kann sequentielle Elemente und/oder Speicherwerte enthalten. Zwischenstopps, Auslösesignale, Meldeereignisse, usw. werden durch den allgemeinen Namen "Prüffunktionen" aufgerufen.
Aus Fig. 19 ist eine etwas detailliertere Version von Fig. 2 ersichtlich.
Aus Fig. 3a ist ein Blockschaltbild des Logikanalyse- Untersystems 202 aus Fig. 2 ersichtlich. Das Untersystem 202 weist zwei Ablaufverfolgungsprozessorchips (trace processor chips) 302 und 304 auf, von welchen jeder 320 Eingänge von dem 384 Bit Emulatorbus empfängt (256 Bits des Busses werden zu beiden trace processor chips 302 und 304 gesendet und die verbleibenden 128 Bits werden gleichmäßig zwischen den Ablaufverfolgungsprozessorchips aufgeteilt). Andere Implementierungen der Erfindung können unterschiedliche Anzahl von Ablaufverfolgungsprozessorchips aufweisen. Die Ablaufverfolgungsprozessorchips 302 und 304 funktionieren im wesentlichen auf die gleiche Weise, wie die Prozessorchips 1. . .N im Untersystem 203 aus Fig. 2, welche nachfolgend detailliert beschrieben werden. Der Trace-Speicher, welcher ein 128 K×64 Speicher ist, und der Controller 306 werden ebenfalls nachfolgend detailliert beschrieben.
Der Controller 306 ist an einen 60 Bit Hauptbus (host bus) 356 gekoppelt, welcher eine Schnittstelle (über die CT-Platte 107 des Emulators) zu der Workstation 101 herstellt. Der Hauptbus verwendet bevorzugt eine MXI-Schnittstelle, welche durch die National Instruments Corporation definiert und hergestellt wird, kann aber auch irgendeine andere geeignete Schnittstelle verwenden, welche es dem Controller ermöglicht, mit einer Workstation oder mit einer anderen externen Vorrichtung oder einem anderen externen Controller zu kommunizieren. Der Speicher/Controller 306 gibt auch eine Mehrzahl anderer Signale aus. Diese Signale weisen ein NOTIFICATION-Signal (Melde-Signal) 360, welches durch ORing erzeugt wird, gleichzeitig ein BREAKPOINT-Signal (Zwischenstopp), welches von dem Trace-Prozessorchip 302 erzeugt wird, und ein TRACE-MEMORY-FULL-Signal auf, welches durch den Controller 306 erzeugt wird. Das Meldesignal wird an die CT-Platte 107 gesendet und von dort aus zu der Workstation 101 gesendet. Das NOTIFICATION-Signal wird betätigt, wenn sich eine Zwischenstoppbedingung ereignet oder wenn der Speicher 306 voll ist (und der Speicher nicht auf einen Modus eingestellt ist, in welchem er Speicher überschreiben kann). Der Effekt des NOTIFICATION-Signals hängt von der Funktionalität der Workstation ab. Beispielsweise könnte die Workstation Befehle an den Speicher/Controller mittels der Schnittstelle 310 senden, wenn sie eine Meldung (NOTIFICATION) empfängt. Ähnlich dazu könnte die Workstation als Reaktion auf ein Meldesignal neue Zwischenstopps, Auslösesignale oder Meldebedingungen auswählen (wie in Verbindung mit Fig. 12b nachfolgend beschrieben).
Als weiteres Beispiel könnte die Workstation einen Befehl zum Lesen der Inhalte von Speichern senden, wenn sie ein TRACE- MEMORY-FULL-Signal empfängt. Bei einer bevorzugten Ausführungsform hält die Workstation das Logikanalyse- Untersystem an und sendet einen Befehl auf den Hauptbus 356, um den Speicher 306 zu lesen. Als Erwiderung auf einen derartigen Befehl sendet der Controller die Inhalte des Speichers 306 über die MXI-Busschnittstelle an die Workstation.
Das Logikanalyse-Untersystem sendet das BREAKPOINT-Signal auch selbst an die CT-Platte 107. Das TRIGGER-Signal wird zu jeder der anderen Platten in dem Emulator 203 gesendet. Das TRIGGER-Signal kann bewirken, daß die Trace-Speicher- Untersysteme Prüfdaten einlesen. Die genaue Konfiguration von durch das Logikanalyse-Untersystem gesendeten Prüfsignalen unterscheidet sich bei verschiedenen Ausführungsformen der Erfindung. Die Prüfsignale können unterschiedliche Namen oder Bezeichnungen haben und können unterschiedliche Herkunft oder Bestimmungsorte aufweisen, so lange sie durch Ausführung einer compilierten Netzliste mittels eines oder mehrerer der Trace- Prozessorchips in dem Logikanalyse-Untersystem gesetzt werden.
Fig. 3b zeigt ein Blockschaltbild, welches mehr Details eines Controllers des Logikanalyse-Untersystems aus Fig. 3a zeigt. Fig. 3b zeigt die Trace-Prozessorchips 302 und 304 zusammen mit Details des Controllers/Speichers 306. Der Controller 306 weist bevorzugt zwei Controller 372 und 374 auf, von denen jeder jeweils mittels 32 Bit Daten- und Trigger- Leitung 352 (wie aus Fig. 3a ersichtlich) an die Trace- Prozessorchips 302 und 304 angekoppelt ist. Jeder Controller 372, 374 ist jeweils an einen Speicher, wie die 128 K × 32 RAMs 382, 384, angeschlossen. Bei der beschriebenen Ausführungsform ist jeder Controller 372, 374 als eine FPGA implementiert. Jede FPGA weist einen Adresszähler 392 auf und implementiert eine Funktion, wie in dem Verylog-Code, welcher hierzu als Anhang A beigefügt ist, beschrieben. Anhang B beschreibt zusätzliche Funktionen der Controller 372 und 374. Andere Ausführungsformen der Erfindung können die Funktionen der Controller 372 und 374 unter Verwendung anderer Technologie, wie ASIC, implementieren.
Ein Teil der Funktionen, welche in den Controllern 372 und 374 implementiert ist, ist in dem vergrößerten Bereich 394 von Fig. 3b ersichtlich. Diese Funktionen weisen einen Wählschalter 397 auf, welcher zwischen 32 Bit Daten von dem Trace-Prozessorchip und 32 Bit Daten von dem Hauptbus wählt; einen Wählschalter 398, welcher zwischen 17 Bit Adressdaten von dem Trace-Prozessorchip und 17 Bit Adressdaten von dem Hauptbus wählt; und einen Wählschalter 399, welcher zwischen 1 Bit Lese/Schreibermöglichungsdaten (read/write enable) und 1 Bit Ausgangsermöglichungsdaten (output enable) entweder von dem Hauptrechner (host) oder einer Zustandsmaschine der Controller 372 und 374. Jeder Controller 372 und 374 implementiert auch eine Zustandmaschine 396, welche von einem Adresszähler 392 gesteuert wird, und deren Funktionsweise in Anhang A beschrieben ist. Wie aus der Fig. 3b ersichtlich, steuert die Zustandmaschine den Betrieb der Wählschalter im Bereich 394.
Fig. 4 zeigt ein Blockschaltbild, welches Eingänge und Ausgänge von einem Emulatorcompiler und einem Logikanalyse- Untersystem-Compiler bei einer ersten bevorzugten Ausführungsform der Erfindung zeigt. Die Compilierung hat zwei unabhängige Zustände. Zuerst wird eine Netzliste 402, welche eine zu emulierende Gestaltung beschreibt, von dem Emulatorcompiler 404 compiliert, um eine compilierte Gestaltung zu gewinnen, welche von dem Emulator 203 im Element 406 ausgeführt werden wird.
Ein zweiter Compilierungszustand kann entweder als ein Teil der Emulatorcompilierung implementiert werden oder getrennt ausgeführt werden. Wenn der Compiler 404 die Gestaltung für den Emulator compiliert, erzeugt er eine "abgebildete Netzliste", welche die den Eingängen und Ausgängen der Prozessorchips des Emulators auf dem 384 Bit Bus zugeschriebenen Signale enthält. Die abgebildete Netzliste enthält auch Informationen, welche die Signale, welche von dem Compiler reduziert wurden, spezifiziert (so daß bestimmt werden kann, welche Signale rekonstruiert werden). Während der zweiten Compilierungsphase wird die abgebildete Netzliste und eine Ausführungs-Steuerungsfluß-Netzliste (ecf, Execution Control Flow) an den Compiler 408 gesendet, welcher compilierte Schaltkreise erzeugt, welche jeweils: 1) durch den Compiler 404 reduzierte Signale rekonstruieren und 2) Zwischenstopps, Auslösesignale, Meldesignale, usw., welche von dem Verwender zur Compilierzeit spezifiziert wurden, implementiert. Diese zusätzlichen compilierten Schaltkreise werden von dem Logikanalyse-Untersystem 202 implementiert, wie in Element 410 gezeigt. Die ecf-Netzliste ist eine Netzliste für einen Schaltkreis, welcher die Umstände, unter welchen Zwischenstopps, usw. gesetzt werden sollten, implementiert. Ein solcher Schaltkreis kann beispielsweise die Elemente 1008 und 1010 aus Fig. 10 enthalten, welche von dem Emulator kommenden Signale mit UND verknüpfen und das BREAKPOINT-Signal aktivieren. Die ecf-Netzliste kann beispielsweise eine Verilog- Netzliste sein, welche durch ein geeignetes Verfahren erzeugt wurde, wie durch Verwenden von "Design Compiler", erhältlich von Synopsis Incorporated, Mountainview, Californien. Stellvertretend kann eine spezialisierte Verwenderschnittstelle dem Verwender ermöglichen Zwischenstopps, usw., graphisch zu implementieren und kann die ecf-Netzliste aus der Verwendereingabe erzeugen.
Wie aus der Fig. 4 ersichtlich, tauschen der Emulator und das Logikanalyse-Untersystem während der Ausführung Informationen aus, wie beispielsweise Informationen auf dem 384 Bit Emulatorbus und Prüfsignale.
Fig. 5 zeigt ein Blockschaltbild, welches Eingänge und Ausgänge eines Emulatorcompilers bei einer zweiten bevorzugten Ausführungsform der Erfindung zeigt. Bei der Ausführungsform aus Fig. 5 erzeugt der Compiler 404' keine Netzlisten, um Rekonstruktion durchzuführen, sondern ermöglicht dem Verwender eine "bewahrte Knotenliste" in den Compiler 404' einzugeben, welche anzeigt, welche Signale nicht reduziert werden sollten. Dies erzeugt eine umfangreichere Gestaltung, macht aber die Signale dem logischen Analyseuntersystem zum Setzen von Zwischenstopps (BREAKPOINT), Auslösesignalen (TRIGGER), Meldesignalen (NOTIFICATION), usw. verfügbar. Wie in der Fig. 5 auch gezeigt, tauschen der Emulator und das Logikanalyse- Untersystem während der Ausführung Informationen aus, wie oben beschrieben.
Die folgenden Absätze beschreiben ein Beispiel einer zu emulierenden Gestaltung, wobei bestimmte Signale während der Compilierung durch den Compiler 404 verloren gehen (d. h. reduziert werden). Bei diesem Beispiel setzt der Verwender verschiedene Zwischenstopps, Trigger und Meldeereignisse, welche Rekonstruktion der reduzierten Signale erfordern.
Fig. 6 zeigt ein Beispiel einer zu emulierenden Verwendergestaltung. Der Schaltkreis enthält 16 unterschiedliche Signale einschließlich der Eingänge A, B, C, D, E, F, G, und H; der Ausgänge p und O; und der internen Signale N, I, J, K, L, und M. Fig. 7 zeigt das Beispiel aus Fig. 6 nachdem der Emulatorcompiler 404 die Signale in der Gestaltung reduziert hat. Bei dem Beispiel entfernt der von dem Compiler ausgeführte Abbildungsprozeß die internen Signale. Fig. 8 zeigt ein Beispiel, wie die nicht reduzierten Signale aus Fig. 7 in die Prozessoren des Emulators eingegeben werden. Bei diesem Beispiel werden die Signale A, B, C, D, E, und F in einen ersten Prozessor eingegeben, während die Signale C, D, E, F, G, und H in einen zweiten Prozessor eingegeben werden. Außer wenn Rekonstruktion durchgeführt wird, stehen nur die Eingangs- und Ausgangssignale dem Logikanalyse-Untersystem mittels des 384 Bit Busses zur Verfügung.
Die Fig. 9a bis 9f zeigen die Netzlisten, welche mittels dem Logikanalyse-Untersystem-Compiler rekonstruiert werden müssen, so daß das Logikanalyse-Untersystem vorher reduzierte Signale rekonstruieren und auf diese zugreifen kann. Diese Netzlisten werden von dem Compiler 404 aus Fig. 2 erzeugt und compiliert und von den Trace-Prozessorchips 302 und 304 aus Fig. 3a implementiert. Jeder compilierte Schaltkreis in Fig. 9 verwendet die Informationen in der geplanten Netzliste, um die von dem Compiler 404 beseitigten internen Signale zu rekonstruieren. Bei einer bevorzugten Ausführungsform der Erfindung paßt die Rekonstruktionslogik für ein Signal in einen einzigen Prozessor.
Fig. 10 zeigt eine schematische Ansicht eines Beispiels eines compilierten Schaltkreises, welcher durch den Logikanalyse-Untersystem-Compiler erzeugt wurde, so daß das Logikanalyse-Untersystem ein Zwischenstoppsignal erzeugen kann. Bei diesem Beispiel hat der Verwender einen Zwischenstopp gesetzt, welcher eintritt, wenn (J UND N) wahr ist. Daher implementiert das Logikanalyse-Untersystem compilierte Schaltkreise, um die Signale J und N zu rekonstruieren, um die rekonstruierten Signale mit UND zu verknüpfen, und um das BREAKPOINT-Signal zu aktivieren, wenn das Ergebnis der UND- Operation wahr ist.
Fig. 11 zeigt eine schematische Ansicht eines Beispiels eines compilierten Schaltkreises, welcher von dem Logikanalyse- Untersystem-Compiler erzeugt wurde, so daß das Logikanalyse- Untersystem ein Meldesignal erzeugen kann. Obwohl die Ausführungsform aus Fig. 3a das BREAKPOINT-Signal nicht direkt setzt, ermöglicht es eine alternative Ausführungsform auch, das BREAKPOINT-Signal direkt zu setzen. Bei diesem Beispiel hat der Verwender angewiesen, daß die Workstation benachrichtigt werden sollte, wenn (J UND N) wahr ist. Daher implementiert das Logikanalyse-Untersystem einen compilierten Schaltkreis, um die Signale J und N zu rekonstruieren, die Signale mit UND zu verknüpfen und das NOTIFICATION-Signal zu aktivieren, wenn das Ergebnis-der UND-Operation wahr ist.
Fig. 12a zeigt eine schematische Ansicht eines Beispiels eines compilierten Schaltkreises, welcher durch den Logikanalyse-Untersystem-Compiler erzeugt wurde, so daß das Logikanalyse-Untersystem ein TRIGGER-Signal erzeugen kann. Bei diesem Beispiel hat der Verwender angewiesen, daß sich ein Trigger-Ereignis ereignet, wenn J UND N wahr ist. Daher implementiert das Logikanalyse-Untersystem einen compilierten Schaltkreis, um die Signale J und N zu rekonstruieren, die rekonstruierten Signale miteinander UND zu verknüpfen, und das TRIGGER-Signal zu betätigen, wenn das Ergebnis der UND- Operation wahr ist.
Fig. 12b zeigt ein Beispiel eines compilierten Schaltkreises, welcher von einem Compiler in einem System erzeugt wurde, welches ermöglicht, die Zwischenstopps während des Betriebs des Emulators zu verändern. Somit ist der compilierte Schaltkreis aus Fig. 12b von dem Verwender konstruiert (als eine ecf) und mittels der Hardware des Logikanalyse-Untersystems ohne Anhalten während der Emulation compiliert und implementiert, wenn der Verwender Zwischenstopps usw. zu ändern wünscht. Der compilierte Schaltkreis enthält kleinere compilierte Schaltkreise 1002, 1304 usw., deren Ausgänge an einen Compilerwahlschalter 1306 weitergeleitet werden. Der compilierte Wahlschalter 1306 wählt einen der Ausgänge, abhängig von einem Signal 1308, aus, welches beispielsweise ein Wertesatz von der Workstation (durch Memory Mapping) oder eine Werteingabe von der zu emulierenden Gestaltung oder von einem Gestaltungs-Eingangspin sein kann. (Im letzteren Fall müßte die zu emulierende Gestaltung verändert werden, um einen solchen Wert zu erzeugen).
Die folgenden Absätze liefern zusätzliche Details über den Emulator, welcher mit der Erfindung verwendet wird. Die TRACE- Prozessorchips 302 und 304 in dem Logikanalyse-Untersystem 202 auf jeder Emulatorplatte sind im wesentlichen die gleichen, wie der Hydra-Prozessorchip, welcher nachfolgend beschrieben ist. Fig. 13 zeigt ein Blockschaltbild eines einzelnen "Chips" in einem mit einer bevorzugten Ausführungsform der Erfindung verwendeten Emulator. Es wird beabsichtigt, daß hierin erörterte Beispiel als kommerzielles Produkt zu produzieren, welches in der Entwicklung als das Hydra Logic Emulation System bekannt ist und welches hier als "Logik-Emulationssystem" bezeichnet wird. Es wurde von Arcos Design Incorporated entwickelt. Die in dem Blockschaltbild als Chip 100 gezeigte Struktur wird auf einem einzigen integrierten Schaltkreis (IC) hergestellt, welcher als Hydrachip bezeichnet wird. Die zusätzlichen Fig. 14 bis 19 zeigen Blockschaltdetails und Platinendetails des logischen Emulationssystems.
Wie aus Fig. 13 ersichtlich, weist der Chip 100 verschiedene Unterschaltkreise zum Ausführen bestimmter Funktionen auf. Die Unterschaltkreise sind aus Fig. 13 als Blöcke ersichtlich, wie beispielsweise die Steuerdateneinheit 102. Beim Erläutern des Emulationssystems wird die Architektur des Logik-Emulationssystems in dem direkt folgenden Abschnitt vorgestellt.
Nachfolgend wird eine detaillierte Erörterung bestimmter Unterschaltkreise in dem Logik-Emulationssystem, konzentriert auf die Unterschaltkreise 106 bis 112, vorgestellt, welche die Wählschalter- und Schieberegisterverschaltung von Daten an die Hydra-Logik-Einheiten (HLUs) betreffen, welche dem Logik- Emulationssystem durch die Fähigkeit, variable Daten allgemein und gleichförmig unter den HLUs zu verschalten, einen bestimmten Vorteil verschafft. In einem nachfolgenden Textabschnitt ist ein Beispiel des Compilierens eines Schaltkreises zur Ausführung in dem Emulationssystem beschrieben.
a. Architektur des logischen Simulationssystems
Aus Fig. 13 ist ersichtlich, daß die Steuerdateneinheit 102 verwendet wird, um die Mikrocode-Steuerwörter zu speichern, welche den Betrieb des Hydrachip ("Chip") steuern. Bei der beschriebenen Ausführungsform liefert die Steuerdateneinheit 102 64 Steuerworte, von denen jedes annähernd 10.000 Bits breit ist. Verschiedene Anzahlen von Bits in jedem Steuerwort werden mittels Steuerleitungen mit anderen funktionellen Blöcken auf dem Chip verschaltet, um beispielsweise N:1 Wählschalter, Schieberegister, Durchgangstore (Pas Gates), Signalinversion, wie nachfolgend beschrieben zu steuern. Um die Abbildung zu vereinfachen, sind die Steuerleitungen aus Fig. 13 nicht gezeigt. Es ist jedoch sichtbar, daß die Steuerworte auf bekannte Weise verwendet werden können, um die verschiedenen Vorrichtungen und funktionellen Blöcke zu steuern.
Die Steuerdateneinheit 102 ist mit bis zu 64 Steuerworten des mittels eines Compiler erzeugten Steuerprogramms beladen. Der Compiler ist eine Software, welche als Eingang eine Spezifikation eines zu emulierenden Schaltkreises empfängt, und ein Steuerprogramm im Form von Gleichungen und Steuerlogik ausgibt, welches bewirkt, daß der Chip den gewünschten Schaltkreis emuliert. Die Worte des Steuerprogramms werden jeden Emulationszyklus ausgeführt, wobei ein Emulationszyklus ein Zyklus des emulierten Schaltkreises ist. Das heißt, wenn ein emulierter Schaltkreis mit 1 MHz betrieben wird, ist der Emulationszyklus 1,0 µs. Das bedeutet, daß alle Schritte in dem Programm innerhalb 1,0 µs. abgeschlossen sein müssen. Da maximal 64 Programmschritte erlaubt sind, würde der Emulatortakt maximal 64 MHz betragen. Bei weniger als 64 Programmschritten nimmt die Emulationsgeschwindigkeit entsprechend zu.
Der Emulator weist die Fähigkeit auf, einen beliebigen der Programmschritte mittels bis zu drei zusätzlichen Emulatortaktzyklen zu verlängern. Dies ist nützlich, um den Emulator an Targethardware anzuschließen, welche längere Zugriffszeiten erfordert. Wenn Programmschritte verlängert werden, dehnt dies natürlich den Gesamtprogrammzyklus entsprechend.
Das RAM 104 der programmierbaren Ausgänge ist ein 16K × 256 Bit Random Acces Memory (RAM), welches es dem Chip ermöglicht, vorbestimmte Ausgangswerte an externe Schaltkreise zu senden. Wie aus Fig. 13 ersichtlich, von dem Chip 12 Bits den Chip ausgegeben, um zum Anschließen an externe Schaltkreise verwendet zu werden. Das RAM 104 mit programmierbaren Ausgängen ermöglicht es dem Compiler "Dosen"-Ausgabewerte zum Ausgeben zu bestimmten Zeitpunkten innerhalb eines emulierten Taktzyklus zu definieren. Es gibt 256 Adressen, welche gemäß dem Emulatortakt sequenziert werden. Es gibt vier mal so viele Wortplätze im RAM 104 wie Steuerdatenwortplätze in der Steuerdateneinheit 102 weil es der Chip ermöglicht, Steuerdatenzyklen durch bis zu drei zusätzliche Zyklen zu erweitern. So kann jedes der 64 Steuerworte auf den Ausgangsleitungen der Steuerdateneinheit 102 bis zu vier Zyklen lang erhalten werden. Währenddessen werden die Adressplätze des RAM 104 immer weiter erhöht. Dies ermöglicht es, Werte von dem RAM 104 innerhalb eines Steuerwortzyklus aus zugeben, während das Steuerwort erhalten wird. Die Frequenz, mit welcher das RAM 104 sequenziert wird, beträgt bei obigem Beispiel 64 MHz.
Die Funktionsblöcke 106 bis 112 bilden den wesentlichen Bereich der Verdrahtungs- und Verarbeitungsfähigkeit des Chips. Diese Blöcke werden nachfolgend detailliert beschrieben. Im wesentlichen liefern die Blöcke 106 bis 110 Multiplexingfähigkeiten und Schieberegister/Speicher- Fähigkeiten für verschiedene Werte, welche den HLUs 112 zum Verarbeiten zugeführt werden.
Der Funktionsblock 112 weist acht logische Einheiten auf, von denen jede aus vier Hydralogikprozessorchips mit vier Ausgängen besteht, um insgesamt 32 Ausgänge zu erhalten. Diese Ausgänge von den acht internen Logikeinheiten sind als Eingänge an den 3 : 1 Wählschalter 114 enthalten. Die anderen Eingänge des 3 : 1 Wählschalters 114 erhalten Signale von der Rückwandplatine (als BPlane bezeichnet) über die 32 : 1 Wählschalter 112. Dies ermöglicht es, ein beliebiges der 32 Rückwandplatinensignale an einen beliebigen der Eingänge des 3 : 1 Wählschalters 114 zu verschalten. Die Rückwandplatinensignale sind Interplattensignale (Interboard Signals). Bezogen auf Fig. 19 wird nachfolgend die Gestaltung der platten des logischen Emulationssystems erläutert. Der dritte Satz Eingänge an den 3 : 1 Wählschalter 114 stammt vom Speicher 124. Der Speicher 124 ist an den Ausgang des 3 : 1 Wählschalters 114 angeschlossen, um es dem Emulationssystem zu ermöglichen, ein RAM oder mehrere RAMs in der Schaltkreisgestaltung des Verwenders zu emulieren. Die Ausgänge des 3 : 1 Wählschalters 114 versorgen den 2 : 1 Wählschalter 120 und die Pin Anschlußflächen in dem Chip. Der 2 : 1 Wählschalter 120 dient zur Rückführung der Signale an die Eingänge der HLUs durch die Verschaltungsanordnung der Blöcke 106 bis 110. So ermöglicht der 3 : 1 Wählschalter 114 dem System, unter drei getrennten Signalquellen zum Ausgeben an Chips innerhalb und außerhalb des Chips, auf welchem die Prozessorfunktion des Emulationssystems der Erfindung hergestellt wird, auszuwählen.
Bei einer bevorzugten Ausführungsform ist der Speicher 124 ein 4K × 32 Bit RAM. Das RAM wird von durch die HLUs lokal an den Chip und extern an den Chip über die Rückwandplatine angelegten Signalen adressiert. Ein oder mehrere Bits der Adresse können erhalten und zum Verwenden jedes Emulatorzyklus gespeichert werden. Die Adresse wird erzeugt und stückweise über einen oder mehrere Zyklen gepuffert, so daß das System beim Emulieren der Adreßlogik in der zu emulierenden Schaltkreisgestaltung große Flexibilität aufweist. Die Strukturen zum Puffern und Anlegen der Adresse sind nicht aus Fig. 13 ersichtlich. Datenwerte für das RAM werden aus den Ausgängen der HLUs, von der Rückwandplatine oder von dem RAM selbst erhalten.
Das Register 116 dient zum Speichern der Ausgangswerte von den HLUs, so daß diese über einen oder mehrere Emulatorzyklen verzögert werden können. Ob die gegenwärtigen verschiedenen Werte oder die gespeicherten verschiedenen Werte von dem Register 116 ausgegeben werden, wird durch das Single-Modus-Bit 118, bestimmt, welches an die Steuerleitung des 2 : 1 Wählschalters 120 angeschlossen ist. Das Single-Modus-Bit 118 wird von einem der vier "Internal Use"-Bits des RAM 104, welches oben beschrieben wurde, erhalten, so daß es jeden Emulatortaktzyklus änderbar ist.
Die 32 : 1 Wählschalter 126, UND Gatter 128 und RAM 130 ermöglichen es, Signale von den HLUs selektiv an die Rückwandplatine zum Verwenden durch Prozessoren auf anderen Platten auszugeben. Die Signale werden auf den Bus der Rückwandplatine unter Verwenden von Open-Collector-Treibern plaziert, so daß die Signale von jedem Chip tatsächlich "wire ORed" auf der Rückwandplatine sind. Das RAM 130 wird von dem Compiler geladen und zum Ermöglichen spezifischer Signale auf der Rückwandplatine jeden Emulatortaktzyklus verwendet, bis ein jedes der verwendeten Steuerwörter in dem RAM 130 aufeinanderfolgend jeden emulierten Taktzyklus adressiert ist.
Die 32 : 1 Wählschalter 132 werden zusammen mit den Treibern 134 und dem RAM 136 verwendet, um Zwischenstopp-Steuersignale auszugeben. Das RAM 136 funktioniert ähnlich dem RAM 130, dadurch, daß es durch den Compiler als Teil des Emulatorprogramms geladen wird und seine Adresse einmal pro Emulatortaktzyklus erhöht wird. Zwischenstops werden implementiert, indem die HLUs Bewertungsgleichungen haben, um Signal-Zustände (d. h. Variable) zu testen und nach Abtasten der gewünschten Kombination ein HIGH-Signal, welches durch den 32 : 1 Wählschalter 132 ausgewählt ist, auszugeben. Der 32 : 1 Wählschalter 132 wird durch Steuersignale von der Steuerdateneinheit 102 gesteuert, wie die anderen Wählschalter aus Fig. 13 außer dem Wählschalter 120. Nachfolgend wird das Verschalten und Verarbeiten der Blöcke 106 bis 112 detailliert beschrieben.
1. Verschalten
Die Funktionsblöcke 106 bis 112 sind der wesentliche Bereich des Verschaltens und des Verarbeitens des Hydrachips 100. Da der Chip auf mehrere Emulatorzyklen pro emuliertem Zyklus aufbaut, ist es wichtig, daß Daten schnell und leicht zwischen den verschiedenen lokalen und entfernten (d. h. Onchip und Offchip) Prozessoren verschaltet werden können, so daß mehrere Iterationen zum Verarbeiten von Daten mit den gleichen Logikeinheiten (wie nachfolgend beschrieben) effizient erreicht werden können.
Aus Fig. 13 ist ersichtlich, daß 256 48 : 1 Wählschalter verwendet werden, um unter 32 internen Signalleitungen und 352 externen Signalleitungen auszuwählen. Die 32 internen Signalleitungen sind von den Ausgängen der 8 HLUs 112 zurückgeführt, während die externen Signalleitungen von 11 externen Prozessoren stammen, von denen jeder identisch dem aus dem Diagramm in Fig. 13 ersichtlichen ist, um 11 × 32 = 352 Signale zu liefern. So ist die Gesamtzahl der Signale, welche an den 256 48 : 1 Wählschalter 106 eingehen 352 + 32 = 384. Jedes der 384 Signale wird auf die 32 Eingänge in den 256 48 : 1 Wählschaltern verteilt. Somit ist die Gesamtzahl der Eingänge in die 48 : 1 Wählschaltergruppe 32 × 384 = 12288.
Die 48 : 1 Wählschalter geben 256 Signale an 256 Schieberegister 108 aus. Die Verschaltung ist eins-zu-eins mit jedem 48 : 1 Wählschalterausgang, welcher in einen einzelnen 64- Stufen, oder 64 Bit Schieberegistereingang einspeist. Die Verbindung des 48 : 1 Wählschalters und des Schieberegisters wird als "Pipe" bezeichnet. Jede Stufe jedes Schieberegisters wird ausgegeben, so daß die Anzahl der Ausgänge der Schieberegistergruppe 64 × 256 = 16384 Ausgänge ist. Die 16384 Ausgänge sind an die 128 1K:1 Wählschalter angeschlossen.
Die Ausgänge der IK:1 Wählschalter werden an die 8 HLUs 112 gesendet. Jede HLU empfängt die Ausgänge von 16 1K:1 Wählschaltern.
Aus Fig. 14 ist die Verschaltung der Blöcke 106 bis 112 ersichtlich. 384 Signale 150 versorgen die Pipes 154. Die Zwischenverbindungen zwischen den 384 Signalen und den Pipes sind mit 152 bezeichnet. Ein bevorzugtes Zwischenverbindungsschema verteilt jedes der 384 Signale auf 32 unterschiedliche Eingänge der 48 : 1 Wählschalter. Die beschriebene Zwischenverbindung ermöglicht das Verschalten jedes Signals an 16 64-Bit-Schieberegisterpaare. Die Paare sind getrennt, so daß die Eingangssignalverzweigungen den geringstmöglichen Überhang haben. Die exakten Verbindungen sind aus der US-Anmeldung Nr. 08/496,239 von Chilton ua. mit dem Titel "Emulationsystem having multiple emulated clock cycles per emulater clock", AT 28.06.1995 ersichtlich.
Die Verbindungen zwischen den Pipes 154 und den Wählschaltern 158 sind derart, daß aufeinanderfolgende Gruppen von 8 1K:1 Wählschaltern die gleichen 1024 Ausgänge von einer Gruppe von 16 Schieberegistern empfangen. Beispielsweise empfängt in der ersten Gruppe von 8 1K:1 Wählschaltern (Wählschalter 0 bis 7) jeder Wählschalter die gleichen 1024 Ausgänge von den Schieberegistern 0 bis 15. In der nächsten Gruppe von 8 1K:1 Wählschaltern (Wählschalter 8 bis 15) empfängt jeder Wählschalter die gleichen 1024 Ausgänge von den nächsten 16 Schieberegistern (Schieberegister Nr. 16 bis 31) usw.
Die Verbindungen in 160 zwischen den 1K:1 Wählschaltern 158 und den HLUs 162 sind zugewiesen, in dem 16 der IK:1 Wählschalter modulo 16 genommen werden. Beispielsweise ist die HLU 0 an die 1K:1 Wählschalter 0, 16, 32, 48, . . ., 112 angeschlossen. Die HLU 1 ist an die 1K:1 Wählschalter 1, 17, 33, 49, . . ., 113 angeschlossen.
Fig. 15 zeigt mehr Details der Verschaltung der Funktionsblöcke 106 und 108 aus Fig. 13. Insbesondere zeigt
Fig. 15 die Einbeziehung eines "Schatten"-Schieberegisters 180, eines 64 : 1 Wählschalters 182 und eines 2 : 1 Wählschalters 184. Der 48 : 1 Wählschalter 186 und das Schieberegister 188 sind die gleichen Komponenten, welche oben erläutert wurden und aus Fig. 13 als 106 bzw. 108 ersichtlich sind.
Die Verwendung des Schattenschieberegisters 180 schafft verschiedene Vorteile der Fähigkeit des Emulationssystems gemäß der Erfindung Logikelemente, wie FlipFlops, zu handhaben, wobei der Zustand des Logikelementes, welches während des gegenwärtigen emulierten Taktzyklus berechnet wurde, bis zum nächsten emulierten Taktzyklus nicht als Eingang für andere Logikelemente erforderlich ist. Das Schieberegister 188 wird verwendet, um Ergebnisse der Berechnungen in jedem der 64 (Maximum) Schritte des Emulationsprogramms zu speichern. Jedoch tritt ein spezieller Fall auf, wenn beispielsweise ein FlipFlop-Ausgang oder irgendein anderes "registriertes" Signal bis zum nächsten Zyklus nicht erforderlich ist. Diese registrierten Signale müssen nicht zum Verwenden bis zum Ende des gegenwärtigen emulierten Taktzyklus auf den neuesten Stand gebracht werden. Also wird das Schattenregister verwendet, um die Werte dieser Arten von registrierten Variablen von dem Zeitpunkt an, zu dem sie erzeugt wurden, bis zu dem Zeitpunkt zu speichern, an dem sie als Eingänge für logische Funktionen erforderlich sind. Am Ende des Programmzyklus, d. h. nachdem alle programmschritte für den gegenwärtigen Zyklus ausgeführt wurden, werden die Werte von dem Schattenschieberegister 180 in das Schieberegister 188 kopiert, so daß die neuen Werte für die registrierten Variablen zur Verwendung als Eingänge in den nächsten Programmzyklus verfügbar sind. Das Kopieren wird durch Laden des Schieberegisters 188 mit den parallelen Ausgängen des Schattenschieberegisters 180 durchgeführt. Dies ermöglicht ein zeitunabhängiges Verschalten aller "registrierten" Signale durch den Emulator, da die Signale bis zum folgenden Programmzyklus nicht benötigt werden.
Wie aus Fig. 15 ersichtlich, werden die Werte des 48 : 1 Wählschalters 186 mittels des 2 : 1 Wählschalters 184 an das Schattenschieberegister 180 und selektiv an das Schieberegister 188 verschaltet. Wenn der Wert des 48 : 1 Wählschalters 186 eine registrierte Variable ist, wird die registrierte Variable nur an das Schattenschieberegister 180 kopiert und nicht an das Schieberegister 188. Statt dessen empfängt das Schieberegister 188 einen Wert von dem 64 : 1 Wählschalter 182, welcher während des vorhergehenden Programmzyklus erzeugt wurde, so daß beliebige registrierte Variablen, welche sich während des gegenwärtigen Programmzyklus ändern, bis zum nächsten Programmzyklus nicht auf den neuesten Stand gebracht werden.
Der 64 : 1 Wählschalter 182 ermöglicht es, Werte von einer beliebigen Stufe des Schieberegister 188 zurück zu der Stufe 0 des Schieberegisters zu verschalten. Dies ermöglicht flexiblen Zugriff auf verschiedene Werte, welche innerhalb eines Programmzyklus berechnet werden. Die Auswahl von Variablen durch den 64 : 1 Wählschalter 182 wird durch die an den 64 : 1 Wählschalter 182 angeschlossen gezeigten 6 Steuerleitungen, welche von der Steuerdateneinheit gesteuert werden, durchgeführt. Andere Steuersignale, wie die 5 Multiplexer (MUX) Eingangsleitungen an den 48 : 1 Wählschalter 186 und eine einzelne Steuerleitung an den 2 : 1 Wählschalter 184 stammen ebenfalls von der Steuerdateneinheit.
2. Verarbeitung
Nachfolgend werden die Fig. 16 und 17 erläutert, welche Details der Hydralogikeinheiten näher erläutern, welche zum Verarbeiten in dem erfindungsgemäßen Emulationssystem verwendet werden.
Fig. 16 zeigt ein vergrößertes Blockschaltbild der Logik in dem Block 112 aus Fig. 13. Fig. 16 zeigt eine oder acht HLUs auf dem Chip. 16 Eingänge von 16 der 1K:1 Wählschalter treten in die HLU in 202 ein. Die invertierten Signale werden ebenfalls ausgegeben, so daß insgesamt 32 Signale durch die dunkle schattierte Linie dargestellt werden. Die 16 Signale sind mittels Inverter- und Passiertoren (Pass Gates), auch Input "Worte" genannt -11 davon sind in größerem Maßstab und mit mehr Details aus Fig. 17 ersichtlich - an die ODER-Tore 206 bis 212 gekoppelt. Jedes der 16 Signale kann durch jeden der Leseeingänge geführt seine so daß irgendeines der Signale irgendeinem der Eingänge der ODER-Tore 206 bis 212 zugeführt werden kann. Jede der Leitungen zu den ODER-Toren ist mit einem NODER-Tor, wie das NODER-Tor 14 versehen, so daß jeder Eingang an die NODER-Tore durch Anlegen eines 0- oder Low-Signals selektiv gesperrt werden kann.
Die ODER Tore 206 bis 212 werden verwendet, um Summen von Produkttermen zu berechnen, um boolesche Gleichungen zu lösen, welche die Funktionen der Schaltkreisgestaltung des Verwenders emulieren. Der Compiler verwandelt die Verwenderschaltkreisgestaltung in boolesche Gleichungen, welche dann in mehrere Programmschritte verwandelt werden. Die Programmschritte werden in die Emulationsarchitektur in Form von Mikrocodeworten in der Steuerdateneinheit 102 (in Fig. 3 gezeigt) geladen und steuern Signale in verschiedenen Auswahl- RAMs überall in dem System. In dieser Hinsicht ist das erfindungsgemäße System ähnlich dem System der Patentanmeldung 08/242,164.
Aus Fig. 16 ist ersichtlich, daß eine Registeremulationslogik 220 am Ausgang jedes der ODER-Tore vorgesehen ist. Die Registeremulationslogik 220 liefert spezialisierte Steuersignale, welche es dem Emulator ermöglichen, die Emulation sequentieller Elemente, wie Register und Puffer, aufeffiziente Weise zu handhaben. Signale wie "Reset", "Preset", 11 "Clock" und "IQ-111" stellen Signale ihrer wohlbekannten Gegenstücke in sequentiellen Standardvorrichtungen dar. Diese Signale werden aus den 16 Eingangssignalen erhalten und ihre invertierten Signale durch Verwenden des 34 : 1 Wählschalters, wie beispielsweise als 222 gezeigt. Die 34 : 1 Wählschalter ermöglichen das Auswählen eines HTGH- oder LOW-Signals zusätzlich zu den 16 Eingangssignalen und deren Inversionen. Das Signal "Q-1" ist gewöhnlich der vorausgehende Wert dessen, was in einem emulierten Register gespeichert wurde.
Das Invertier-Steuerbit der Registeremulationslogik 220 ermöglicht die Inversion der Datensignale gemäß der Steuerdateneinheit. Die P/R-Steuersignale bestimmen, ob ein Preset oder ein Reset steuert, wenn ein Preset und ein Reset gleichzeitig auftreten. Die P/R-Steuerleitungen sind mit dem Steuer-RAM gekoppelt, wie die beiden Steuerbits an den 2 : 1 Wählschalter der Registeremulationslogik 220. Der 2 : 1 Wählschalter sieht eine Umgehung der Registeremulationslogik vor, wenn diese nicht erforderlich ist.
Fig. 18 zeigt mehr Details des funktionellen Blocks 124, dem Emulationsspeicher aus Fig. 13. Die Verschaltung des Emulationsspeichers schafft einen effizienten Weg, die von den HLUs erzeugten Werte zu Speichern und zum Adressieren des Emulationsspeichers zu verwenden. Das Logikanalyse-Untersystem 202 ist vergleichbar den Chips des Emulators an den 384 Bit Bus gekoppelt.
Fig. 19 zeigt die Konfiguration einer Platine mit 12 Hydraprozessorchips und einem Abschnitt des Logikanalyse- Untersystems. Fig. 19 zeigt die Rückwandplatine 250, welche zusätzliche ähnliche Platinen aufnehmen kann. Die Vorrichtungen 162652 sind Registerübertrager und die Vorrichtungen 74FB2033 sind Rückwandplatinen-Schnittstellenübertrager.
Die beschriebenen Ausführungsformen der Erfindung ermöglichen es dem Verwender, Zwischenstopps, Trigger und Meldeereignisse unter Verwenden irgendeines der Eingangs- oder Ausgangssignale, welche von dem Emulator über den 384 Bit Bus verfügbar sind, zu setzen. Zusätzlich implementiert das Logikanalyse-Untersystem zusätzliche compilierte Schaltkreise, welche Signale, die während der Compilierungsphase verloren" oder "reduziert" wurden. Diese Signale können ebenfalls verwendet werden, um Zwischenstopps, Trigger und Meldeereignisse zu setzen. Schließlich ist das Logikanalyse- Untersystem an eine externe Workstation oder einen ähnlichen Controller über einen herkömmlichen Bus angeschlossen, so daß der Controller auf den Betrieb der Logikanalyse-Untereinheit während der Emulation einwirken kann.
Nachfolgend sind der Verliog-Code und weiter Details des Controllers beschrieben. Dabei enthält Anhang A Verilog-Code, welcher die Funktionsweise eines Controllers in einem Logikanalyse-Untersystem einer bevorzugten Ausführungsform der Erfindung beschreibt und Anhang B enthält weitere Beschreibungsdetails des Controllers aus Anhang A.
Anhang B
Physikalische Abmessung/Begrenzung:
  • - Physikalische Abmessung 3000 × 5750 mils2
  • - Prozessorplattendicke = 123 mils
  • - Prozeßplattenzwischenraum = 1570 mils
  • - Tracespeicherkartendicke = 62 mils
  • - Höchster Computer (comp) unter der Tracespeicherkarte = 80 (comp) + 240 (hsink) = 320 mils
  • - größter Abstand von der Oberfläche der Prozessorplatte zur Oberfläche des Tracespeichers = 738 mils
  • - Höchster Computer (comp) auf anderer prozessorplatte, dem Tracespeicher zugewandt = 200 mils
  • - Freiraum unter der Tracespeicherplatte:
    738-320 = 418 mils
  • - Freiraum über der Tracespeicherplatte:
    1570-123-738-62-200 = 447 mils
  • - Größe des 7C1032 = 761 × 761 mils2
    Größe des QL24×32B = 1214 × 1214 mils2
Anmerkungen:
  • - Tracehydra 12 erhält die Ausgänge folgender Hydras:
    0, 1, 2, 13, 5, 6, 7, 8, 9, 10, 11
  • - Tracehydra 13 erhält die Ausgänge folgender Hydras:
    0, 1, 2, 3, 4, 5, 6, 12, 9, 10, 11
  • - Die Ausgänge von TH 12 gehen nach TH 13 (und umgekehrt), so daß TH 13 Zugang zu den Ausgängen von LH 7 und LH 8 erhalten kann, welche nicht direkt angeschlossen sind. Dies ist erforderlich, um die Zwischenstopp-Bedingung (Trace Enable) zu erzeugen.
  • - Für mehrere 32bit Broken kann während eines Benutzerzyklus (pro Trace Hydra) eine Ablaufverfolgung (trace) durchgeführt werden. Die bits sind an unterschiedlichen Zeitscheiben und an unterschiedlichen bit-Positionen verfügbar. Es liegt an der Trace Hydra, diese bits in einem 32bit-Wort zu sammeln und TRACE_STEP_EN anzulegen, um dieses Wort im SRAM zu speichern.
  • - Die Beziehungen von TRACE_EN, TRACE_STEP_EN und TCYC_END während eines Benutzerzyklus sind nachfolgend beschrieben:
TRACE_EN ist einen Taktzyklus lang und kann irgendwann während des Benutzertaktzyklus gesetzt werden. Hier zeigt TRACE_STEP_EN, daß vier 32bit-Worte in dem SRAM gespeichert sind. Diese Anzahl muß nicht für jede TRACE Hydra gleich sein. Der Adresszähler in der FPGA wird mit jedem Auftreten von TRACE_STEP_EN erhöht.
TCYC_END zeigt das Ende des Benutzerzyklus an. Wenn TRACE_EN während dieses Benutzerzyklus gesetzt wurde sollen die vier Worte gespeichert werden. Andernfalls soll der Zähler zurückgestellt werden.
- Implementieren des Adresszählers:
Fall 1: Daten für diesen Benutzerzyklus speichern Wenn TCYC_END gesetzt wird, und TRACE EN während dieses benutzerzyklus gesetzt wurde, dann ist:
REG <= CTR;
Fall 2: Daten für diesen Benutzerzyklus nicht speichern Wenn TCYC_END gesetzt wird, aber TRACE_EN während dieses Benutzerzyklus nicht gesetzt wurde, dann ist:
CTR < = REG;
Adressbelegung
A22 = Chip-Auswahl (chip select, dieses bit wird mit STRAP verglichen; der Chip reagiert, wenn A22===STRAP). Dies wird verwendet, um zwischen den zwei FPGA's auf der Trace- SRAM-Karte zu unterscheiden.
A21 = Speicher/Register Adressraum-Auswahl, Null (0) bedeutet Speicher und Eins (1) bedeutet Register.
A20:A2 = Adressiert Inhalt in dem obigen Adressraum. Beachten sie, daß 1M Worte als Adressraum vorhanden sind so daß ein Fensterregister (window register) erforderlich Ist, wenn mehr als 512K Worte an Tracespeicher unterstützt werden sollen.
A1:A0 = vom Chip ignoriert.
- Registeradressierung: (A21 = 1)
  • - Rücksetzen des Adresszählers (Reset Adress Counter) Beschreiben dieser Adresse mit einem beliebigen Wert bewirkt, daß der Adresszähler und das Adresszähler- Sicherungsregister zurückgesetzt werden.
  • - Version Register bit[2 : 0]
    RevA = 3'b0
  • - Steuerregister (Control Register):
  • - Chassisart bit [7 : 6]
    00 = Einzelchassis (single chassis)
    01 = Einzelcluster (single cluster)
    10 = Supercluster (super cluster)
  • - Mode Register bit[5 : 4]
  • - WARP_AROUND_FILL b01; Fortsetzen des Beschreiben des SRAM und Verändern der Adresse. Setzen von TRC_DONE am Ende des Benutzerzyklus und Anhalten der Ablaufverfolgung (tracing), wenn TRACE_EN zwei Zyklen lang ist.
  • - SINGLE_FILL b00; Setzen von TRC_DONE am Ende des Benutzerzyklus, wenn TRACE_EN gesetzt wurde und das SRAM voll ist.
  • - SINGLE_FILL_INT b10; Wird verwendet, wenn zwischen zwei DRAM Schreibvorgängen eine lange Pause ist. In diesem Fall wird TRC_DONE am Ende eines Benutzerzyklus gesetzt, während welchem tatsächlich Wort(e) in das SRAM gespeichert werden.
  • - TRACE-STEP_EN bit [3 : 2]
    00 = PROG[8]
    01 = PROG[9]
    10 = PROG[10]
    11 = PROG[11]
  • - G/C/L_TRACE_EN select bit[l:0]
    00 = G TRACE_EN (global)
    01 = C TRACE_EN (chassis)
    10 = L TRACE_EN (lokal)
  • - Schreib-/Lese-Synchronisierung der Prozessorplatte
    Schreib-Synchronisierung
  • Lese-Synchronisierung
  • - Schreib-/Lese-Synchronisierung von FPGA zu SRAM
    Schreibsynchronisierung (Verwendet ausgewählten, durch ADSC* initiierten Schreibzyklus)
  • - Lese-Synchronisierung verwendet ausgewählten, durch ADSC* initiierten Lesezugriff)

Claims (13)

1. Logikanalyse-Untersystem (202), welches an ein Emulationssystem (100) gekoppelt ist und aufweist:
Eingangsleitungen, welche von dem Emulationssystem (100) ausgegebene Werte empfangen;
mindestens einen Prozessorchip (302, 302) , welcher eine Prüffunktion in Übereinstimmung mit den von den Eingangsleitungen empfangenen Signalen implementiert; und
einen Controller (306), welcher den Betrieb der Prüffunktion in Übereinstimmung mit den von dem mindestens einen Prozessorchip (302, 304) empfangenen Anweisungen steuert.
2. Logikanalyse-Untersystem (202) nach Anspruch 1, wobei der Prozessorchip (306) konfigurierbare Logikschaltkreise zum Implementieren von Verschaltungen aufweist, um Signale, welche während eines Compilierungsprozesses reduziert wurden, zu rekonstruieren, wobei die Rekonstruktion in Übereinstimmung mit den auf den Eingangsleitungen empfangenen Signalen ausgeführt wird.
3. Logikanalyse-Untersystem (202) nach Anspruch 1, wobei der Prozessorchip (302, 304) konfigurierbare Logikschaltkreise zum Implementieren von Verschaltungen aufweist, um ein Prüfsignal zu aktivieren, wobei das Prüfsignal in Übereinstimmung mit den auf den Eingangsleitungen empfangenen Signalen gesetzt ist.
4. Logikanalyse-Untersystem (202) nach Anspruch 1, wobei der Controller (306) eine Schnittstelle zu einer externen Workstation (101) zum Empfangen von Befehlen von der Workstation (101) aufweist.
5. Logikanalyse-Untersystem (202) nach Anspruch 1, wobei der Controller (306) eine Schnittstelle zu einer externen Workstation (101) zum Senden von Daten aus dem Speicher an die Workstation (101) aufweist.
6. Logikanalyse-Untersystem (202) nach Anspruch 1, wobei der Prozessorchip (302, 304) konfigurierbare Logikschaltkreise zum Implementieren von Verschaltungen aufweist, um ein Zwischenstoppsignal in Übereinstimmung mit den empfangenen Eingangssignalen zu setzen.
7. Logikanalyse-Untersystem (202) nach Anspruch 1, wobei der Prozessorchip (302, 304) konfigurierbare Logikschaltkreise zum Implementieren von Verschaltungen aufweist, um ein Triggersignal in Übereinstimmung mit den empfangenen Eingangssignalen zu setzen.
8. Logikanalyse-Untersystem (202) nach Anspruch 1, wobei der Prozessorchip (302, 304) konfigurierbare Logikschaltkreise zum Implementieren von Verschaltungen aufweist, um ein Zwischenstoppsignal in Übereinstimmung mit den rekonstruierten Signalen zu setzen.
9. Logikanalyse-Untersystem (202) nach Anspruch 1, wobei der Prozessorchip (302, 304) konfigurierbare Logikschaltkreise zum Implementieren von Verschaltungen aufweist, um ein Triggersignal in Übereinstimmung mit den rekonstruierten Signalen zu setzen.
10. Logikanalyse-Untersystem (202) nach Anspruch 1, wobei das Logikanalyse-Untersystem (202) ein Meldesignal in Übereinstimmung mit einem Zwischenstoppsignal von dem Prozessorchip (302, 304) und einem TRACE-MEMORY-FULL-Signal von dem Trace-Speicher sendet.
11. Verfahren zum Compilieren einer funktionellen Schaltkreisgestaltung, derart, daß deren Ablaufmittels eines Logikanalyse-Untersystem (202) verfolgt werden kann, wobei das Verfahren mittels eines Datenverarbeitungssystems durchgeführt wird und folgende Schritte aufweist:
Speichern einer Mehrzahl von Ausgangssignalen in einem Speicher, welche während der Emulation von einem Emulationssystem (100) verfügbar sind;
Empfangen einer Beschreibung eines reduzierten Signals, welches von dem Logikanalyse-Untersystem (202) benötigt wird, wobei das reduzierte Signal eine Beschreibung dessen aufweist, wie die Ausgangssignale zum Erzeugen des reduzierten Signals verwendet werden;
Bestimmen der Inhalte eines zweiten Schaltkreises, welcher die Ausgangssignale empfängt und das reduzierte Signal in Übereinstimmung mit der Beschreibung des reduzierten Signals erzeugt; und
Compilieren des zweiten Schaltkreises, so daß dieser mittels des Logikanalyse-Untersystem (202) zum Rekonstruieren des reduzierten Signals implementiert werden kann.
12. Verfahren nach Anspruch 11, welches folgende Schritte aufweist:
Empfangen einer Beschreibung eines Prüfsignals, welches von dem Logikanalyse-Untersystem (202) benötigt wird, wobei das Prüfsignal eine Beschreibung dessen aufweist, wie das reduzierte Signal zum Erzeugen des Prüfsignals verwendet wird;
Bestimmen der Inhalte eines dritten Schaltkreises, welcher das reduzierte Signal empfängt und das Prüfsignal in Übereinstimmung mit der Beschreibung des Prüfsignals erzeugt; und
Compilieren des dritten Schaltkreises, so daß dieser mittels des Logikanalyse-Untersystems (202) zum Erzeugen des Prüfsignals implementiert werden kann.
13. Verfahren zum Compilieren einer funktionellen Schaltkreisgestaltung, derart, daß deren Ablaufmittels eines Logikanalyse-Untersystems (202) verfolgt werden kann, wobei das Verfahren von einem Datenverarbeitungssystem durchgeführt wird und folgende Schritte aufweist:
Speichern einer Mehrzahl von Ausgangssignalen in einem Speicher, welche während der Emulation von einem Emulationssystem verfügbar sind;
Empfangen einer Beschreibung eines Prüfsignals, welches von dem Logikanalyse-Untersystems (202) benötigt wird, wobei das Probesignal eine Beschreibung dessen aufweist, wie die Ausgangssignale zum Erzeugen des Prüfsignals verwendet werden;
Bestimmen der Inhalte eines zweiten Schaltkreises, welcher die Ausgangssignale empfängt und das Prüfsignal in Übereinstimmung mit der Beschreibung des Prüfsignals erzeugt; und
Compilieren des zweiten Schaltkreises, so daß dieser mittels des Logikanalyse-Untersystems (202) zum Erzeugen des Prüfsignals implementiert werden kann.
DE19814415A 1997-03-31 1998-03-31 Logikanalyse-Untersystem in einem Zeitscheibenemulator Ceased DE19814415A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/831,501 US6141636A (en) 1997-03-31 1997-03-31 Logic analysis subsystem in a time-sliced emulator

Publications (1)

Publication Number Publication Date
DE19814415A1 true DE19814415A1 (de) 1998-11-12

Family

ID=25259204

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19814415A Ceased DE19814415A1 (de) 1997-03-31 1998-03-31 Logikanalyse-Untersystem in einem Zeitscheibenemulator

Country Status (5)

Country Link
US (1) US6141636A (de)
JP (1) JPH10307861A (de)
DE (1) DE19814415A1 (de)
FR (1) FR2764406B1 (de)
GB (1) GB2325317B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10004198C2 (de) * 1999-02-18 2002-06-20 Agilent Technologies Inc System und Verfahren für eine intelligente Analysesonde

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3214830B2 (ja) * 1998-02-27 2001-10-02 アジレント・テクノロジー株式会社 Icテスト用データ処理装置
US6643803B1 (en) * 1999-02-19 2003-11-04 Texas Instruments Incorporated Emulation suspend mode with instruction jamming
JP2001249824A (ja) * 2000-03-02 2001-09-14 Hitachi Ltd 論理エミュレーションプロセッサおよびそのモジュールユニット
US6832185B1 (en) * 2000-03-09 2004-12-14 Quickturn Design Systems, Inc. Non-synchronous hardware emulator
US7379859B2 (en) * 2001-04-24 2008-05-27 Mentor Graphics Corporation Emulator with switching network connections
US7130788B2 (en) 2001-10-30 2006-10-31 Mentor Graphics Corporation Emulation components and system including distributed event monitoring, and testing of an IC design under emulation
US7035787B2 (en) * 2001-10-30 2006-04-25 Mentor Graphics Corporation Emulation components and system including distributed routing and configuration of emulation resources
US20030188278A1 (en) * 2002-03-26 2003-10-02 Carrie Susan Elizabeth Method and apparatus for accelerating digital logic simulations
DE102004008499B4 (de) * 2004-02-20 2008-05-08 Infineon Technologies Ag Verfahren zum Emulieren einer integrierten Schaltung und Halbleiterchip
US7698118B2 (en) 2004-04-15 2010-04-13 Mentor Graphics Corporation Logic design modeling and interconnection
US7739093B2 (en) 2004-06-01 2010-06-15 Quickturn Design System, Inc. Method of visualization in processor based emulation system
US7640155B2 (en) * 2004-06-01 2009-12-29 Quickturn Design Systems, Inc. Extensible memory architecture and communication protocol for supporting multiple devices in low-bandwidth, asynchronous applications
US20070038431A1 (en) * 2005-08-12 2007-02-15 Arm Limited Data processing apparatus simulation
US20070220352A1 (en) * 2006-02-28 2007-09-20 Hernandez Adrian M Method and apparatus for measuring signals in a semiconductor device
WO2007098804A1 (en) * 2006-02-28 2007-09-07 Mentor Graphics Corp. Memory-based trigger generation scheme in an emulation environment
US8612201B2 (en) * 2006-04-11 2013-12-17 Cadence Design Systems, Inc. Hardware emulation system having a heterogeneous cluster of processors
US7458238B2 (en) * 2006-07-13 2008-12-02 Stolk Frank M Load binder locking device
US7930165B2 (en) * 2008-02-07 2011-04-19 Accemic Gmbh & Co. Kg Procedure and device for emulating a programmable unit providing system integrity control
US8595683B1 (en) 2012-04-12 2013-11-26 Cadence Design Systems, Inc. Generating user clocks for a prototyping environment
GB2507049A (en) * 2012-10-16 2014-04-23 Ibm Synchronizing Trace Data
US9672015B2 (en) 2015-09-28 2017-06-06 Semmle Limited Automatic determination of compiler configuration
US9684492B2 (en) 2015-09-28 2017-06-20 Semmle Limited Automatic determination of compiler configuration
US11714449B2 (en) * 2021-09-27 2023-08-01 International Business Machines Corporation High-speed deserializer with programmable and timing robust data slip function

Family Cites Families (26)

* 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
US4697241A (en) * 1985-03-01 1987-09-29 Simulog, Inc. Hardware logic simulator
US4914612A (en) * 1988-03-31 1990-04-03 International Business Machines Corporation Massively distributed simulation engine
EP0651343B1 (de) * 1988-10-05 2004-04-28 Quickturn Design Systems, Inc. Verfahren zur Verwendung einer elektronisch wiederkonfigurierbaren Gatterfeld-Logik und dadurch hergestelltes Gerät
US5329470A (en) * 1988-12-02 1994-07-12 Quickturn Systems, Inc. Reconfigurable hardware emulation system
US5109353A (en) * 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware 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
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
US5596742A (en) * 1993-04-02 1997-01-21 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
US5392420A (en) * 1993-09-30 1995-02-21 Intel Corporation In circuit emulator(ICE) that flags events occuring in system management mode(SMM)
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5761484A (en) * 1994-04-01 1998-06-02 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
US5920712A (en) * 1994-05-13 1999-07-06 Quickturn Design Systems, Inc. Emulation system having multiple emulator clock cycles per emulated clock cycle
US5551013A (en) * 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
US5659716A (en) * 1994-11-23 1997-08-19 Virtual Machine Works, Inc. Pipe-lined static router and scheduler for configurable logic system performing simultaneous communications and computation
US5923865A (en) * 1995-06-28 1999-07-13 Quickturn Design Systems, Inc. Emulation system having multiple emulated clock cycles per emulator clock cycle and improved signal routing
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
US5649176A (en) * 1995-08-10 1997-07-15 Virtual Machine Works, Inc. Transition analysis and circuit resynthesis method and device for digital circuit modeling
US5777489A (en) * 1995-10-13 1998-07-07 Mentor Graphics Corporation Field programmable gate array with integrated debugging facilities
US5754827A (en) * 1995-10-13 1998-05-19 Mentor Graphics Corporation Method and apparatus for performing fully visible tracing of an emulation
US5802348A (en) * 1995-12-18 1998-09-01 Virtual Machine Works, Inc. Logic analysis system for logic emulation systems
US5790832A (en) * 1996-04-23 1998-08-04 Mentor Graphics Corporation Method and apparatus for tracing any node of an emulation
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US5886904A (en) * 1996-09-23 1999-03-23 Quickturn Design Systems, Inc. Latch optimization in hardware logic emulation systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10004198C2 (de) * 1999-02-18 2002-06-20 Agilent Technologies Inc System und Verfahren für eine intelligente Analysesonde

Also Published As

Publication number Publication date
JPH10307861A (ja) 1998-11-17
FR2764406B1 (fr) 2004-04-23
FR2764406A1 (fr) 1998-12-11
GB9806058D0 (en) 1998-05-20
US6141636A (en) 2000-10-31
GB2325317B (en) 2002-04-17
GB2325317A (en) 1998-11-18

Similar Documents

Publication Publication Date Title
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE69737757T2 (de) System und Verfahren zur Speicher-Emulation
DE19742577C1 (de) Schaltungsanordnung zur In-Circuit-Emulation eines Mikrocontrollers
EP1720100B1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE60023882T2 (de) System auf einem Chip mit reprogrammierbarem Testgerät, Fehlerbeseitiger und Busüberwachung
DE69634227T2 (de) Emulationssystem mit emulierten Mehrtaktzyklen pro Emulation-Taktzyklus und Signalweglenkung
DE4418892C2 (de) Mikrocomputer
DE3338333A1 (de) Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur
DE3606650A1 (de) Hardware logik-simulator
DE19510902A1 (de) Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern
DE1499722B1 (de) Einrichtung zur modifizierung von informationswoertern
DE2723467A1 (de) Speichersteuerungsanordnung
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE4211162C2 (de) Hardware-Emulationssystem
DE602005001900T2 (de) Rekonfigurierbarer Prozessor und Halbleiterbaustein
WO2004049159A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
DE69532152T2 (de) System zur parallelen Datenverarbeitung für digitale Tongeräte
EP1449083B1 (de) Verfahren zum debuggen rekonfigurierbarer architekturen
DE2245284A1 (de) Datenverarbeitungsanlage
DE112019007386T5 (de) Verbesserte jtag-register mit gleichzeitigen eingängen
EP1789889B1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
DE69910172T2 (de) Schaltkreis mit pseudo-mehrport-speicher
DE102015121128B4 (de) Verfahren und Vorrichtung zum beschleunigten Zugriff auf Signale eines programmierbaren Logikbausteins
DE112019007428T5 (de) Jtag-basierte architektur für multi-core-betrieb
EP3142032B1 (de) Verfahren zum ändern der konfiguration eines programmierbaren logikbausteins

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20130730