DE19814415A1 - Logikanalyse-Untersystem in einem Zeitscheibenemulator - Google Patents
Logikanalyse-Untersystem in einem ZeitscheibenemulatorInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/25—Testing of logic operation, e.g. by logic analysers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
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.
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.
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.
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.
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:
- 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;
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.
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.
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.
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.
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.
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)
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)
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 |
EP1854035A1 (de) * | 2006-02-28 | 2007-11-14 | Mentor Graphics Corporation | Auf speicher basierendes trigger-erzeugungsschema in einer emulationsumgebung |
US20070220352A1 (en) * | 2006-02-28 | 2007-09-20 | Hernandez Adrian M | Method and apparatus for measuring signals in a semiconductor device |
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 |
US9684492B2 (en) | 2015-09-28 | 2017-06-20 | Semmle Limited | Automatic determination of compiler configuration |
US9672015B2 (en) | 2015-09-28 | 2017-06-06 | 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)
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 |
JP3060018B2 (ja) * | 1988-10-05 | 2000-07-04 | クイックターン デザイン システムズ インコーポレイテッド | 複数の電気的に再構成可能なゲートアレイを用いて論理構成を構築する方法 |
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 |
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 |
US5819065A (en) * | 1995-06-28 | 1998-10-06 | Quickturn Design Systems, Inc. | System and method for emulating memory |
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 |
US5649176A (en) * | 1995-08-10 | 1997-07-15 | Virtual Machine Works, Inc. | Transition analysis and circuit resynthesis method and device for digital circuit modeling |
US5754827A (en) * | 1995-10-13 | 1998-05-19 | Mentor Graphics Corporation | Method and apparatus for performing fully visible tracing of an emulation |
US5777489A (en) * | 1995-10-13 | 1998-07-07 | Mentor Graphics Corporation | Field programmable gate array with integrated debugging facilities |
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 |
-
1997
- 1997-03-31 US US08/831,501 patent/US6141636A/en not_active Expired - Lifetime
-
1998
- 1998-03-20 GB GB9806058A patent/GB2325317B/en not_active Expired - Fee Related
- 1998-03-30 FR FR9803910A patent/FR2764406B1/fr not_active Expired - Fee Related
- 1998-03-31 DE DE19814415A patent/DE19814415A1/de not_active Ceased
- 1998-03-31 JP JP10085904A patent/JPH10307861A/ja active Pending
Cited By (1)
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 |
---|---|
GB2325317B (en) | 2002-04-17 |
JPH10307861A (ja) | 1998-11-17 |
FR2764406A1 (fr) | 1998-12-11 |
GB9806058D0 (en) | 1998-05-20 |
FR2764406B1 (fr) | 2004-04-23 |
GB2325317A (en) | 1998-11-18 |
US6141636A (en) | 2000-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19814415A1 (de) | Logikanalyse-Untersystem in einem Zeitscheibenemulator | |
DE69737757T2 (de) | System und Verfahren zur Speicher-Emulation | |
DE3750236T2 (de) | Gerät zur In-line-Abfragesteuerung für Datenprozessorprüfung. | |
DE3882266T2 (de) | Abfrageprüfgerät für digitale Systeme mit dynamischem Direktzugriffspeicher. | |
DE3685711T2 (de) | Anordnung zur simulation von rechnerfunktionen von grossrechenanlagen. | |
DE69033360T2 (de) | Simulation von ausgewählten Logik-Schaltungsentwürfen | |
DE69132495T2 (de) | Verteilter Verarbeitungsspeicher | |
EP1720100B1 (de) | Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit | |
DE69714472T2 (de) | Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung | |
DE3687842T2 (de) | Verfahren und Gerät zum Software-Austesten. | |
DE60023882T2 (de) | System auf einem Chip mit reprogrammierbarem Testgerät, Fehlerbeseitiger und Busüberwachung | |
DE68923086T2 (de) | Verfahren zum Testen von hierarchisch organisierten integrierten Schaltungen und integrierte Schaltungen, geeignet für einen solchen Test. | |
DE69634227T2 (de) | Emulationssystem mit emulierten Mehrtaktzyklen pro Emulation-Taktzyklus und Signalweglenkung | |
DE2328058A1 (de) | Digitale datenverarbeitungsanordnung | |
DE69107476T2 (de) | Vorrichtung für eine in-circuit-prüfung mit einem minimalspeicher. | |
DE4418892C2 (de) | Mikrocomputer | |
DE3314917A1 (de) | Multimicroprozessor-system | |
DE3338333A1 (de) | Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur | |
DE19510902A1 (de) | Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern | |
DE3752280T2 (de) | Mustergenerator | |
DE2723467A1 (de) | Speichersteuerungsanordnung | |
DE69130513T2 (de) | Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern | |
DE69732793T2 (de) | Acht-bit-mikrokontroller mit risc-architektur | |
DE4211162C2 (de) | Hardware-Emulationssystem | |
DE3855524T2 (de) | Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator |
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 |