-
Die
Erfindung betrifft im allgemeinen digitale Emulationssysteme und
insbesondere ein digitales Emulationssystem unter Verwendung mehrerer
Logikprozessoren mit einem verbesserten Signal-Routing.
-
Mit
zunehmendem Anstieg der Geschwindigkeit und Komplexität beim Design
elektronischer Schaltungen wird es zunehmend kritisch, die Schaltungsanordnungen
in den verschiedenen Entwicklungsstufen bei ihrer Entwicklung zu
testen. Hardwareemulatoren stellen ein Mittel zum Test komplexer
Schaltungsanordnungen bei ihrer Entwicklung dar. Derartige Emulatoren
bieten typischerweise eine konfigurierbare Hardware, die mittels
Software gesteuert wird, um die Funktionen einer sich im Entwurf befindenden
Schaltung auszuführen.
Die Schaltungsanordnung wird durch eine Gruppe von Daten spezifiziert,
die die Schaltungsstruktur und ihr Verhalten definiert.
-
Emulatoren
arbeiten unter der Steuerung durch Software. Die Schaltungsanordnung
wird „kompiliert", um das Programm
zu erzeugen, das den Emulator steuert. Der Prozeß des Kompilierens der Anordnung
zur Herstellung des Programms für
den Emulator ist ein kritischer und langwieriger Prozeß. Der Grund
für eine
lange Kompilierungszeit besteht teilweise darin, daß es das
Ziel ist, ein Programm zu erzeugen, das die Schaltungsanordnung
so schnell wie möglich
emuliert. Bei Emulatoren ist die Geschwindigkeit besonders wichtig,
da der Emulator die Funktionen der emulierten Schaltung nicht so
schnell ausführen
kann, wie die tatsächliche
Schaltung selbst. Es ist erstrebenswert, den Emulator mit Geschwindigkeiten
zu betreiben, die so nahe wie möglich
an der Zielbetriebsgeschwindigkeit der emulierten Schaltung liegen,
um die Anordnung mit externen Schaltungen oder anderen Vorrichtungen
korrekt verbinden zu können
und die Schaltung auf zeitliche Koordinierungsprobleme zu testen.
-
Ein
anderer Grund, warum der Kompilierungsschritt komplex und zeitaufwendig
ist, besteht darin, daß Beschränkungen
bei der Hardware des Emulators eine Optimierung des Programms bezüglich der
Geschwindigkeit, ohne daß viele
Berechnungen bei der Kompilierung durchgeführt werden müssen, erschweren.
Da ein Emulator die Funktionsweise in einem breiten Bereich von
Schaltungsanordnungen ausführen
muß, sollte
er so flexibel wie möglich
sein. Das bedeutet, daß das
Emulationssystem Logikprozeßhardware
enthalten muß,
die bei unterschiedlichen Anordnungen wieder verwendbar ist. Ein
derartiges Emulationssystem würde
eine große Anzahl
von allgemein verwendbaren Prozeßelementen enthalten, die dazu
verwendet werden, die Funktion der emulierten Schaltung indirekt
auszuführen. Beispielsweise
würde man
zur Emulation einer Multiplizierer-Schaltung eher einen allgemein
verwendbaren Emulator zur Ausführung
mehrerer Boolescher Logikgleichungen verwenden als einen speziellen Hardware-Multiplizierer
für denselben
Zweck, der dann bei der Emulation von Schaltungsanordnungen, die
keine Multipliziererfunktionen enthalten, unbrauchbar wäre. Um diese
Gleichungen zu lösen, müssen viele
Steuerelemente oder andere Vorrichtungen im Emulator mit Signalen
versorgt werden. Des weiteren müssen
die Ausgangssignale der Steuerelemente oder anderen Komponenten
wirkungsvoll zu den verschiedenen Komponenten des Emulators geleitet
werden.
-
Obwohl
der Kompilierungsschritt kompliziert und aufwendig ist, ist es notwendig,
diesen Schritt so kurz wie möglich
zu gestalten, so daß ein
Entwickler nicht lange auf eine Emulierung der letzten Änderung der
Anordnung warten muß.
Dies ist insbesondere dann von Bedeutung, wenn Emulatoren beim Entwurf
und bei der Entwicklung integrierter Schaltungen verwendet werden.
Viele Änderungen
werden schrittweise vorgenommen, wobei jede einen Kompilierungsschritt
erfordert, bevor die Emulation fortgesetzt werden kann. Dies impliziert,
daß die
Dauer des Kompilierungsschrittes verkürzt werden sollte, um die Effizienz
des Emulators zu verbessern.
-
Das
Dokument US-A-4 306 286 offenbart eine Simulationsmaschine mit einem
Array speziell konstruierter paralleler Prozessoren, die ohne eine Begrenzung
der Zahl der Prozessoren zu einem Array zusammengesetzt werden können.
-
Das
Dokument EP-A-0 336 243 offenbart eine Simulationsmaschine zur Simulation
eines Logiknetzes in mehreren Hierarchie-Ebenen mit mehreren Logikeinheiten,
die über
ein Kabelnetz mit mehreren Schaltungseinheiten verbunden sind.
-
Im
Dokument EP-A-0 449 579 wird eine Logiksimulationsmaschine beschrieben,
die eine Host-Schnittstelle umfaßt, die einen FIFO-Puffer aufweist,
der sich zwischen der Logiksimulationsmaschine und dem Host-Rechner
zur Pufferung von Daten befindet, bis ein Empfänger zum Empfang der Daten
bereit ist.
-
In
Anbetracht der obengenannten Nachteile ist es erstrebenswert, einen
Simulator herzustellen, der kurze Kompilierungszeiten gewährleistet
und ein zur Emulation einer Schaltungsanordnung mit hoher Geschwindigkeit
geeignetes Emulationsprogramm erzeugt.
-
Abriß der Erfindung
-
Die
vorliegende Erfindung verwendet eine verbesserte Routing- und Verarbeitungsarchitektur, die
einen Austausch von Signalen zwischen mehreren Prozessoren in einer
integrierten Schaltung oder zwischen integrierten Schaltungen zuläßt. Die
Verwendung von Wählmitteln,
die mit Schieberegistern gekoppelt sind, die wiederum zusätzliche
Wählmittel mit
Ausgängen
zu Logikeinheiten oder Logikprozessoren versorgen, gewährleistet
eine flexible Architektur, während
ebenfalls ein einheitliches Programmier-Modell gewährleistet
wird, das zu kurzen Kompilierungszeiten führt.
-
Gemäß einer
bevorzugten Ausführungsform wird
ein Emulationssystem zur Emulation einer Schaltungsanordnung auf
einem Chip hergestellt und umfaßt
erste mit mehreren Eingangssignalen gekoppelte Wählmittel. Einige der Eingangssignale
zu den ersten Wählmitteln
umfassen Ausgangssignale von den Logikprozessoren auf demselben
Chip wie die ersten Wählmittel,
während
andere Eingangssignale von Logikprozessoren oder anderen integrierten Schaltungen
stammen. Es werden Schieberegister oder „Pipelines" vorgesehen, deren Eingangssignale die
Ausgangssignale der ersten Wählmittel
sind. Die Schieberegister gewährleisten
eine Speicherung der Signale von den ersten Wählmitteln gemäß den Programmschritten
eines zur Steuerung des Emulationssystems verwendeten Programms.
-
Zweite,
mit den Ausgängen
der Pipelines gekoppelte Wählmittel
werden dazu verwendet, die Signale, die an einen einzelnen Logikprozessor
angelegten werden sollen, weiter auszuwählen. Die Ausgänge der
zweiten Wählmittel
werden den Eingängen
der Logikprozessoren zugeführt.
Diese Anordnung von Wählmitteln,
Schieberegistern und Logikprozessoren gewährleistet ein einheitliches
Routing-Schema, das zu Vorteilen sowohl bezüglich der Geschwindigkeit der
Kompilierung vor der Emulationsphase als auch der Ausführungsgeschwindigkeit während der
Emulationsphase führt.
-
Kurzbeschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm auf Systemebene einer einzelnen integrierten Schaltung
im Emulator gemäß der vorliegenden
Erfindung;
-
2 zeigt
ein erweitertes Diagramm des Routings einiger Funktionsblöcke in 1;
-
3 zeigt
weitere Einzelheiten der Schaltung der ersten Funktionsblöcke in 1;
-
4 zeigt
ein erweitertes Diagramm der Logik im Logikeinheit-Block aus 1;
-
5 zeigt
weitere im Bezug zur Eingangsstiftschaltung aus 4 stehende
Einzelheiten;
-
6 zeigt
weitere Einzelheiten im Emulationsspeicherblock aus 1;
-
7 zeigt
eine Konfiguration auf Platinenebene der zwölf Logikeinheit-Chips gemäß der vorliegenden
Erfindung;
-
8A zeigt
ein Beispiel einer zu emulierenden Schaltung;
-
8B zeigt
das Zeitablauf-Diagramm für die
Schaltung aus 8A;
-
9 ist
eine Darstellung eines zur Verwendung beim Emulationssystem-Compiler
gemäß der vorliegenden
Erfindung geeigneten Computersystems;
-
10 ist
eine Darstellung grundlegender Untersysteme im Computersystem aus 9;
-
11 zeigt
eine Technologieabbildung der Schaltung aus 8A;
-
12 zeigt
Zuweisungen von Logikfunktionen zu Logikprozessoren;
-
13 zeigt
Zuweisungen von Logikprozessoren zu Zeitschlitzen und Busleitungen;
-
14 zeigt
die Zuordnung von Eingängen zu
Busleitungen;
-
15 ist
eine Eingangs-/Ausgangs-Abbildung für Prozessoren im Zeitschlitz
1;
-
16 ist
eine Eingangs-/Ausgangs-Abbildung für Prozessoren im Zeitschlitz
2;
-
17 zeigt
die MUX-Einstellungen für
die 1K:1-Wählmittel
im Zeitschlitz 1;
-
18 zeigt
die MUX-Einstellungen für
die 1K:1-Wählmittel
im Zeitschlitz 2;
-
19 zeigt
die Einstellungen für
die 48:1-Multiplexer im Zeitschlitz 0;
-
20 zeigt
die Einstellungen für
die 48:1-Multiplexer im Zeitschlitz 1; und
-
21 zeigt
die Einstellungen für
die 48:1-Multiplexer im Zeitschlitz 2.
-
Beschreibung
der bevorzugten Ausführung
-
1 ist
ein Blockdiagramm auf Systemebene eines einzelnen „Chips" in einer bevorzugten
Ausführungsform
des Emulators gemäß der vorliegenden
Erfindung. Der gezeigte Aufbau auf Systemebene, wie z.B. der Chip 100 in 1,
wird auf einer einzelnen integrierten Schaltungsbaugruppe (IC) hergestellt,
die als der Hydra-Chip bezeichnet wird. Die zusätzlichen 2–7 zeigen
Einzelheiten auf Platinenebene und Blockebene des Logikemulatorsystems.
Obwohl eine spezielle Ausführungsform
eines Emulators zum Zweck der Veranschaulichung erläutert wird,
ist der Umfang der Erfindung nicht auf diese spezielle Ausführungsform
beschränkt.
-
In 1 umfaßt der Chip 100 verschiedene Unterschaltungen
zur Durchführung
spezieller Funktionen. Die Unterschaltungen sind in 1 als
Blöcke,
wie beispielsweise Steuerungsdaten 102 gezeigt. Bei der
Erläuterung
des Emulationssystems wird die Architektur des Logikemulationssystems
im unmittelbar nachfolgenden Abschnitt dargestellt. Als nächstes wird
eine detaillierte Erläuterung
ausgewählter
Unterschaltungen im Logikemulationssystem mit einer Fokussierung
auf Unterschaltungen 106112 vorgestellt, die das Wählmittel-
und Schieberegister-Routing von Daten zu den Hydra-Logikeinheiten („HLU") betreffen, die
dem Logikemulationssystem bezüglich
seiner Eignung variable Daten allgemein und einheitlich zwischen
den HLUs zu routen, spezielle Vorteile verleihen. In einem nachfolgenden
Textabschnitt wird ein Beispiel einer Kompilierung einer Schaltung
zur Ausführung
im Emulationssystem vorgestellt.
-
I. Architektur des Logikemulationssystems
-
In 1 werden
Steuerungsdaten 102 zur Speicherung der Mikrocode-Steuerungswörter verwendet,
die den Betrieb des Hydra-Chips („chip") steuern. Bei der bevorzugten Ausführungsform
sehen die Kontrolldaten 102 64 Kontrollstifte vor, wovon jeder
ungefähr
10.000 Bits in der Breite umfaßt.
Mittels Steuerungsleitungen werden verschiedene Zahlen von Bits
in jedem Steuerungswort zu anderen Funktionsblöcken auf dem Chip geroutet,
um beispielsweise n:1-Wählmittel,
Schieberegister, Durchgangsgates, eine Signalumkehr, wie im nachfolgenden
erläutert
wird, zu steuern. Zur Vereinfachung der Darstellung sind die Steuerungsleitungen
in 1 weggelassen. Jedoch ist ersichtlich, daß die Steuerungswörter auf
im Stand der Technik bekannte Weise zur Steuerung der verschiedenen
Vorrichtungen und Funktionsblöcke
verwendet werden können.
-
Die
Steuerungsdaten 102 werden mit bis zu 64 Steuerungswörtern des
durch einen Compiler erzeugten Steuerungsprogramms geladen. Bei
dem Compiler handelt es sich um Software, die als Eingabe eine Beschreibung
einer zu emulierenden Schaltung erhält und ein Steuerungsprogramm
in der Form von Gleichungen und einer Steuerungslogik ausgibt, um
den Chip dazu zu veranlassen, die gewünschte Schaltung zu emulieren.
Die Wörter
des Steuerungsprogramms werden bei jedem Emulationszyklus ausgeführt, wobei
ein Emulationszyklus ein Zyklus der emulierten Schaltung ist. Das
bedeutet, daß beim Emulieren
einer Schaltung, die mit 1 MHz arbeitet, der Emulationszyklus 1,0 μs ist. Das
bedeutet, daß alle
Programmschritte innerhalb von 1 μS
beendet sein müssen.
Da ein Maximum von 64 Programmschritten zulässig ist, würde der Emulatortakt mit maximal
46 MHz laufen. Falls weniger als 64 Programmschritte vorhanden sind,
kann die Geschwindigkeit des Emulatortaktes entsprechend verringert
werden.
-
Der
Emulator umfaßt
die Möglichkeit,
jeden Programmschritt auf bis zu drei zusätzliche Emulatortaktzyklen
zu verlängern.
Dies ist bei einem Verbinden des Emulators mit Zielhardware nützlich,
die eine längere
Zugriffszeit erfordert. Wenn die Programmschritte verlängert werden,
wird dadurch verständlicherweise
der Gesamtprogrammzyklus entsprechend ausgedehnt.
-
Bei
dem RAM 104 mit programmierbaren Ausgängen handelt es sich um einen
16 × 256 – Bit-Direktzugriffsspeicher
(RAM), so daß der
Chip mit einer Möglichkeit
versehen ist, vordefinierte Ausgangswerte an eine externe Schaltung
zu senden. Wie in 1 gezeigt ist, gehen vom Chip
12 Bits zur Außenumgebung
aus, die für
eine Verbindung mit externen Schaltungen verwendet werden können. Die weiteren
vier Bits jedes Wortes sind Bits zum „internen Gebrauch", die zur Steuerung
von Chip-Funktionen verwendet werden. Das RAM mit programmierbaren
Ausgängen 104 ermöglicht,
daß der
Compiler „konfektionierte" Ausgangswerte zur
Ausgabe zu festgelegten Zeitpunkten in einem emulierten Taktzyklus
definieren kann. Es existieren 256 gemäß dem Emulatortakt in einer
Reihenfolge sequenzierte Adressen. Des weiteren gibt es vier mal
so viele Orte für
Wörter
im RAM 104 wie Orte für
Steuerungsdatenwörter
in den Steuerungsdaten 102, da der Chip zuläßt, die
Steuerungsdatenzyklen auf bis zu drei zusätzliche Zyklen auszudehnen.
Somit kann jedes der 64 Steuerungswörter für bis zu vier Zyklen auf den Ausgangsleitungen
der Steuerungsdaten 102 gehalten werden. Unterdessen werden
die Adreß-Orte
des RAMs 104 immer noch inkrementiert. Dies ermöglicht es,
daß die
Werte in einem Steuerungswortzyklus vom RAM 104 ausgegeben
werden, wenn das Steuerungswort ausgedehnt wird. Die Geschwindigkeit, mit
der der RAM 104 sequenziert ist, beträgt beim vorliegenden Beispiel
64 MHz.
-
Die
Funktionsblöcke 106–112 bilden
das Herz der Routing- und Prozeß-Fähigkeit
des Chips. Diese Blöcke
werden nachfolgend in Einzelheiten erläutert. Im wesentlichen gewähren die
Blöcke 106–110 die
Multiplexierungs- und Schieberegister-/Speicherungs-Fähigkeit
für Variablenwerte,
die den HLUs 112 zur Verarbeitung zugeführt werden.
-
Der
Funktionsblock 112 umfaßt 8 Logikeinheiten, wovon
jede aus vier Hydralogic-Prozessoren („Prozessor") mit vier Ausgängen bei
einer Gesamtzahl von 32 Ausgängen
besteht. Diese Ausgänge von
den acht internen Logikeinheiten sind als Eingänge zum 3:1-Wählmittel 114 umfaßt. Die
anderen Eingänge
des 3:1-Wählmittels 114 umfassen
Signale von der Rückwand
(die als BPlane in bezeichnet wird) über 32:1-Wählmittel 112. Dies
ermöglicht,
daß jedes
der 32 Rückwandsignale
zu einem beliebigen Eingang des 3:1-Wählmittels 114 geleitet
werden kann. Die Rückwandsignale
sind Zwischenplatinensignale. Der Aufbau des Logikemulationssystems
auf Platinenebene wird nachfolgend in Verbindung mit 7 erläutert. Die
dritte Gruppe von Eingängen zum
3:1-Wählmittel 114 kommt
vom Speicher 124. Der Speicher 124 ist mit dem
Ausgang des 3:1-Wählmittels 114 verbunden,
um zu ermöglichen,
daß das Emulationssystem
einen RAM oder mehrere RAMs in der Schaltungsanordnung des Benutzers
emulieren kann. Die Ausgänge
des 3:1-Wählmittels 114 werden zum
2:1-Wählmittel 120 und
zu Anschlußfeldern
im Chip zugeführt.
Das 2:1-Wählmittel 120 hat
die Funktion, die Signale zu den Eingängen der HLUs über die Routing-Anordnung
der Blöcke 106–110 zurückzugeben.
Somit ermöglicht
das 3:1-Wählmittel 114,
daß das
System unter drei getrennten Signalquellen zur Ausgabe zu Prozessoren
sowohl innerhalb als auch außerhalb
des Chips, auf dem die Prozessorfunktion des emulierten Systems
gemäß der vorliegenden
Erfindung hergestellt ist, wählen
kann.
-
Bei
der bevorzugten Ausführungsform
handelt es sich bei dem Speicher 124 um einen 4K × 32-Bit-RAM.
Der RAM wird mit mittels HLUs auf dem und außerhalb des Chips erzeugten
Signalen über die
Rückwand
adressiert. Eines oder mehrere Bits der Adresse können zur
Verwendung bei jedem Emulatorzyklus erhalten und gespeichert werden.
Die Adresse wird stückweise über einen
oder mehrere Zyklen aufgebaut und verknüpft, so daß das System eine hohe Flexibilität beim Emulieren
der Adreßlogik in
der emulierten Schaltungsanordnung aufweist. Die Strukturen zum
Verknüpfen
und Anwenden der Adresse sind in 1 nicht
gezeigt. Datenwerte für den
RAM werden von den Ausgängen
der HLUs, von der Rückwand
oder vom RAM selbst erhalten.
-
Das
Register 116 gewährleistet
das Speichern der Ausgangswerte von den HLUs, so daß sie um
einen Emulatorzyklus oder mehr verzögert werden können. Ob
die momentanen Variablenwerte oder die gespeicherten Variablenwerte
aus dem Register 116 ausgegeben werden, wird durch das
Einzelmodus-Bit 118 bestimmt, das zur Steuerungsleitung
des 2:1-Wählmittels 120 hinzugefügt ist.
Das Einzelmodus-Bit 118 wird von einem der vier Bits zum „internen
Gebrauch" des RAM 104 erhalten,
wie oben erläutert
ist. Daher ist es bei jedem Emulator-Taktzyklus veränderbar.
-
Die
32:1-Wählmittel 126,
UND-Gatter 128 und der RAM 130 ermöglichen,
daß Signale
von den HLUs wählbar
zur Rückwand
zur Verwendung durch Prozessoren auf anderen Platinen ausgegeben
werden können.
Die Signale werden auf dem Rückwand-Bus
unter Verwendung von Treibern mit offenem Kollektor plaziert, so
daß die
Signale von jedem Chip effektiv mit der Rückwand „festverdrahtet ODER-verknüpft" sind. Der RAM 130 wird
vom Compiler geladen und dazu verwendet, bei jedem emulierten Taktzyklus
spezielle Signale zur Rückwand freizugeben,
da eines von allen verwendeten Steuerungswörtern im RAM 130 bei
jedem emulierten Taktzyklus einmal aufeinanderfolgend adressiert
wird.
-
Die
32:1-Wählmittel 132 werden
zusammen mit Treibern 134 und dem RAM 136 verwendet,
um Unterbrechungspunktsteuerungssignale auszugeben. Der RAM 136 hat
eine ähnliche
Funktionsweise wie der RAM 130, da er vom Compiler als
Teil des Emulatorprogramms geladen wird und seine Adresse einmal
bei jedem Emulatortaktzyklus inkrementiert wird. Unterbrechungspunkte
werden implementiert, indem die HLUs Gleichungen zur Überprüfung auf
Signal-(d.h. Variablen-)-Zustände
evaluieren und nach einem Erfassen der gewünschten Kombination ein hohes
Signal ausgeben, das vom 32:1-Wählmittel 132 gewählt wird.
Das 32:1-Wählmittel 132 wird
so gesteuert, wie die anderen Wählmittel
aus 1 mit der Ausnahme des Wählmittels 120, das
durch Steuerungssignale von den Steuerungsdaten 102 gesteuert
wird.
-
Als
nächstes
wird das Routing und die Verarbeitung der Blöcke 106–112 in
Einzelheiten erläutert.
-
A. Routing
-
Die
Funktionsblöcke 106–112 bilden
den Kern des Routings und der Verarbeitung des Hydra-Chips 100.
Da der Chip pro emuliertem Zyklus mehrere Emulator-Zyklen verwendet,
ist es von besonderer Bedeutung, daß die Daten schnell und einfach
zwischen den verschiedenen lokalen und entfernten Prozessoren (d.h.
Prozessoren auf dem und außerhalb
des Chips) geleitet werden können,
so daß mehrere
Iterationen einer Datenverarbeitung mit denselben Logikeinheiten
(die im nachfolgenden erläutert
werden) wirkungsvoll erzielt werden können.
-
In 1 werden
256 48:1-Wählmittel
verwendet, um unter 32 internen Signalleitungen und 352 externen
Signalleitungen zu wählen.
Die 32 internen Signalleitungen werden von den Ausgängen der acht
HLUs 112 rückgekoppelt,
während
die externen Signalleitungen von 11 externen Prozessoren stammen,
die jeweils mit dem Diagramm aus 1 identisch
sind, um 11 × 32
= 352 Signale bereitzustellen. Somit beträgt die Gesamtzahl der in die
256 48:1-Wählmittel 106 eintretenden
Signale 352 + 32 = 384. Jedes der 384 Signale wird zu 32 Eingängen in den
256 48:1-Wählmitteln
verteilt. Somit beträgt
die Gesamtzahl von Eingängen
in der Gruppe von 48:1-Wählmitteln
82 × 384
= 12 288.
-
Die
48:1-Wählmittel
geben 256 Signale zu 256 Schieberegistern 108 aus. Das
Routing erfolgt eins-zu-eins mit jedem 48:1-Wählmittelausgang, mit dem ein
einzelner 64-stufiger oder 64-Bit-Schieberegistereingang
versorgt wird. Die Kombination eines 48:1-Wählmittels und eines Schieberegisters
wird als eine „Pipeline" bezeichnet. Jede
Stufe jedes Schieberegisters wird ausgegeben, so daß die Zahl
der Ausgänge
von der Schieberegistergruppe 64 × 256 = 16.384 Ausgänge beträgt. Die
16.384 Ausgänge
werden den 128 1K:1-Wählmitteln
zugeführt.
-
Die
Ausgänge
der 1K:1-Wählmittel
werden zu 8 HLUs 112 gesandt. Jede HLU empfängt die
Ausgänge
von 16 1K:1-Wählmitteln.
-
2 zeigt
ein erweitertes Diagramm des Routings der Blöcke 106–112.
In 2 werden 384 Signale bei 150 zu Pipelines
bei 154 geliefert. Die Zwischenverbindungen zwischen den
384 Signalen und den Pipelines liegt bei 152. Gemäß einem
bevorzugten Zwischenverbindungsschema wird jedes der 384 Signale
zu den 32 verschiedenen Eingängen
der 48:1-Wählmittel
verteilt. Die bevorzugte Zwischenverbindung ermöglicht ein Routing jedes Signals
zu 16 Paa ren von 64-Bit-Schieberegistern. Die Paare sind so voneinander
getrennt, daß die
Eingangssignalverzweigungen den kleinsten möglichen Überlapp aufweisen.
-
Die
Verbindungen zwischen den Pipelines bei 154 und den Wählmitteln
bei 158 sind so, daß aufeinanderfolgende
Gruppen von 8 1K:1-Wählmitteln
dieselben 1.024 Ausgänge
von einer Gruppe von 16 Schieberegistern empfangen. Beispielsweise empfängt in der
ersten Gruppe von 8 1K:1-Wählmitteln
(Wählmittel
0–7),
jedes Wählmittel
dieselben 1.024 Ausgänge
von den Schieberegistern 0–15.
In der nächsten
Gruppe von 8 1K:1-Wählmitteln
(Wählmittel
8–15),
empfängt
jedes Wählmittel
dieselben 1.024 Ausgänge
von den nächsten
16 Schieberegistern (Schieberegister mit den Nummern 16–31) usw.
-
Die
Verbindungen bei 160 zwischen den 1K:1-Wählmitteln
bei 158 und den HLUs bei 162 werden durch Verwenden
von 16 der 1K:1-Wählmittel Modulo
16 zugeordnet. Beispielsweise ist HLU 0 mit den 1K:1-Wählmitteln
0, 16, 32, 48, ..., 112 verbunden. HLU 1 ist mit den 1K:1-Wählmitteln
1, 17, 33, 49, ..., 113 verbunden.
-
3 zeigt
weitere Einzelheiten der Schaltung der Funktionsblöcke 106 und 108 aus 1. Insbesondere
zeigt 3 die Einbeziehung eines „Schatten"-Schieberegisters 180, eines
64:1-Wählmittels 182 und
eines 2:1-Wählmittels 184.
Das 48:1-Wählmittel 186 und
das Schieberegister 188 sind dieselben, wie die oben erläuterten
und in 1 als 106 bzw. 108 gezeigten,
Komponenten.
-
Die
Verwendung eines Schatten-Schieberegisters 180 gewährleistet
bestimmte Vorteile bezüglich
der Eignung des Emulationssystems gemäß der vorliegenden Erfindung
Logikelemente, wie beispielsweise Flipflops zu behandeln, bei welchen
der Zustand des Logikelements, der während des momentanen emulierten
Taktzyklus berechnet wurde, bis zum nächsten emulierten Taktzyklus
nicht als ein Eingangssignal zu anderen Logikelementen erforderlich
ist. Das Schieberegister 188 wird dazu verwendet, Ergebnisse
von Berechnungen in jedem der 64 (maximalen) Schritte im Emulationsprogramm
zu speichern. Jedoch tritt dort, wo beispielsweise ein Flipflopausgangssignal
oder ein beliebiges anderes „registriertes" Signal bis zum nächsten Zyklus
nicht erforderlich ist, ein Spezialfall auf. Diese registrierten Signale
müssen
für einen
Gebrauch bis zum Ende des momentanen emulierten Taktzyklus nicht
aktualisiert werden. Jedoch wird das Schattenregister zur Speicherung
der Werte dieser Arten registrierter Variablen vom Zeitpunkt, zu
dem sie erzeugt wurden, bis zum Zeitpunkt, zu dem sie als Ein gaben
in Logikfunktionen erforderlich sind, verwendet. Am Ende des Programmzyklus,
d.h. nachdem alle Programmschritte für den momentanen Zyklus ausgeführt wurden,
werden die Werte vom Schatten-Schieberegister 180 ins Schieberegister 188 kopiert,
so daß die neuen
Werte für
diese registrierten Variablen für
eine Verwendung als Eingaben für
den nächsten
Programmzyklus verfügbar
sind. Das Kopieren wird durch Laden des Schieberegisters 188 mit
den parallelen Ausgängen
des Schatten-Schieberegisters 180 durchgeführt. Dies
ermöglicht
ein zeitunabhängiges Routen
aller „registrierten" Signale durch den
Emulator, da die Signale bis zum folgenden Programmzyklus nicht
erforderlich sind.
-
Wie
in 3 zu sehen ist, werden Werte vom 48:1-Wählmittel 186 sowohl
zum Schatten-Schieberegister 180 und
wahlweise zum Schieberegister 188 über das 2:1-Wählmittel 184 geroutet. Wenn
der Wert vom 48:1-Wählmittel 186 eine
registrierte Variable ist, wird die registrierte Variable lediglich
ins Schatten-Schieberegister 180 kopiert und nicht ins
Schieberegister 188. Stattdessen erhält das Schieberegister 188 einen
Wert vom 64:1-Wählmittel 182,
der während
des vorhergehenden Programmzyklus erzeugt wurde, so daß beliebige
registrierte Variablen, die sich während des momentanen Programmzyklus ändern, bis
zum nächsten
Programmzyklus nicht aktualisiert werden.
-
Das
64:1-Wählmittel 182 ermöglicht das
Zurückrouten
von Werten von beliebigen Orten im Schieberegister 188 zur
Stufe 0 des Schieberegisters. Dies ermöglicht einen flexiblen Zugriff
auf Variablenwerte, die in einem Programmzyklus berechnet werden.
Die Auswahl der Variable durch das 64:1-Wählmittel 182 erfolgt
durch die 6 gezeigten Steuerungsleitungen, die mit dem 64:1-Wählmittel verbunden
sind und von den Steuerungsdaten gesteuert werden. Andere Steuerungssignale,
wie beispielsweise die 5 Eingangs-Multiplexer-(MUX)-Leitungen zum
48:1-Wählmittel 186 und
die einzelne Steuerungsleitung zum 2:1-Wählmittel 184 gehen ebenfalls
von den Steuerungsdaten aus.
-
B. Verarbeitung
-
Als
nächstes
werden die 4 und 5 zur Darstellung
von Einzelheiten der zur Verarbeitung im Emulationssystem gemäß der vorliegenden Erfindung
verwendeten Hydra-Logikeinheiten erläutert.
-
In 4 ist
ein erweitertes Diagramm der Logik im Block 112 aus 1 gezeigt.
In 4 ist eine der 8 HLUs auf dem Chip gezeigt. 16
Eingänge
von den 16 der 1K:1-Wählmittel
treten bei 202 in die HLU ein. Die invertierten Signale
werden ebenfalls zugeführt,
so daß die
Gesamtzahl von 32 Signalen durch die dunkel schattierte Linie wiedergegeben
wird. Die 16 Signale sind durch Umkehrschaltungen und Durchgangsgates,
die auch Eingangsstifte genannt werden und in größerem Maßstab und in weiteren Einzelheiten
in 5 gezeigt sind, mit den ODER-Gliedern 206–212 verbunden.
Jedes der 16 Signale kann durch jeden der Eingangsstifte durchgeführt werden,
so daß jedes
beliebige der Signale an jeden beliebigen der Eingänge der
ODER-Glieder 206–212 angelegt
werden kann. Man beachte, daß jede
Leitung zu den ODER-Gliedern mit einem NOR-Glied, wie beispielsweise
dem NOR-Glied 214 versehen ist, so daß jeder Eingang zu den NOR-Gliedern
wählbar
durch Anlegen eines Null- oder niedrigen Signals gesperrt werden
kann.
-
Die
ODER-Glieder 206–212 werden
dazu verwendet, Produktsummen-Ausdrücke zu berechnen, um Boolesche
Gleichungen zu lösen,
die die Funktionen der Schaltungsanordnung des Benutzers emulieren.
Der Compiler wandelt die Nutzungsschaltungsanordnung in Boolesche
Gleichungen um, die dann in mehrere Programmschritte umgewandelt werden.
Die Programmschritte werden in die Emulationsarchitektur in Form
von Mikrocode-Wörtern
in den Steuerungsdaten 102 aus 1 und Steuerungssignalen
in verschiedenen gewählten
RAMs im System geladen.
-
Wieder
mit Bezugnahme auf 4, wird eine Registeremulationslogik 220 am
Ausgang jedes ODER-Glieds vorgesehen. Die Register-Emulationslogik 220 liefert
spezialisierte Steuerungssignale, die ermöglichen, daß der Emulator eine Emulation
von sequentiellen Elementen, wie beispielsweise Registern und Latches
auf wirksame Weise abwickeln kann. Signale, wie beispielsweise „Reset", „Preset", „Clock" und „Q-1" geben Signale ihrer
gut bekannten Gegenstücke
in sequentiellen Standardvorrichtungen wieder. Diese Signale werden
aus den 16 Eingangssignalen und ihren invertierten Signalen unter Verwendung
von beispielsweise bei 222 gezeigten 34:1-Wählmitteln
erhalten. Man beachte, daß die 34:1-Wählmittel
das Auswählen
eines hohen oder niedrigen Signals zusätzlich zu den 16 Eingangssignalen
und ihren Umkehrungen erlauben. Das Signal „Q-1" ist normalerweise der dem Wert vorhergehende
Wert, der in einem emulierten Register gespeichert wurde.
-
Das
invertierte Steuerungsbit der Registeremulationslogik 220 erlaubt
die Invertierung des Datensignals gemäß den Steuerungsdaten. Die P/R-Steuerungssignale
bestimmen, ob die Steuerung durch ein Voreinstellen oder Zurücksetzen
erfolgen soll, wenn sowohl ein Voreinstellen als auch ein Zurücksetzen
zum selben Zeitpunkt auftreten. Die P/R-Steuerungsleitungen, wie auch die beiden
Steuerungsbits, sind zur Steuerung des RAM mit dem 2:1-Wählmittel
der Registeremulationslogik 220 gekoppelt. Das 2:1-Wählmittel
gewährleistet
einen Bypass der Registeremulationslogik, wenn diese nicht benötigt wird.
-
6 zeigt
weitere Einzelheiten im Funktionsblock 124, dem Emulationsspeicher
aus 1. Die Emulationsspeicherschaltung gewährleistet
einen wirksamen Weg zur Speicherung und Verwendung beim Adressieren
des Emulationsspeichers der von den HULs erzeugten Werte.
-
7 zeigt
den Aufbau von 12 Hydra-Chips auf Platinenebene. 7 umfaßt eine
Rückwand 250,
auf der zusätzliche ähnliche
Platinen untergebracht werden können.
Bei den Vorrichtungen (16646) handelt es sich um Register-Transceiver, während es
sich bei den Vorrichtungen (74FB2033) um Rückwand-Schnittstellen-Transceiver
handelt.
-
2. Betriebsweise des Logikemulationssystem-Compilers
-
8A zeigt
eine Schaltung 300 als ein Beispiel einer Schaltung, die
ein Nutzer emulieren möchte.
Bei der Schaltung 300 handelt es sich um einen 4-Bit-Binärzähler mit
Ausgängen
Q0–3,
Anschlußzähleingängen C0–3 und RESET
und CLOCK-Signalen. Die Anschlußzähleingänge C0–3 werden
zur Bestimmung, wann das Zurücksetzen
des Zählers
erfolgt, verwendet. Wenn der Zählwert
in Q0–3
mit dem im C0–3
bestimmten Wert übereinstimmt,
wird der Zähler
auf 0 zurückgesetzt
und beginnt wieder mit dem Aufwärtszählen.
-
8B zeigt
das Zeitablaufdiagramm für
die Schaltung aus 8A. In 8B wird
gezeigt, daß von
den Ausgängen
Q0–3 verschiedene
Werte (0, 1, 2 und 3) zu unterschiedlichen Zeitpunkten entsprechend
den anderen Signalen CLOCK, RESET und den Anschlußzählbits C0–3 ausgegeben
werden. Beispielsweise geben bei 302 die Ausgänge Q0–3 den Wert
0 aus. Bei 304 geben die Ausgänge Q0–3 den Wert 1 aus. Bei 306 werden
die Ausgänge
Q0–3 auf
den Wert 0 zurückgesetzt,
da die Anschlußzählbits C0–3 einen
Anschlußzählwert von
1 bei 308 festlegen. In ähnlicher Weise ist gezeigt,
daß Q0–3 bis zum
momentan für
die nachfolgenden Abschnitte des Zeitablaufdiagramms festgelegten
Anschlußzählwert inkrementieren.
Man beachte, daß sich
der Zählwert an
der Vorderkante von CLOCK ändert
und daß der Zählwert immer
dann 0 wird, wenn RESET hoch ist.
-
9 ist
eine Darstellung eines zum Gebrauch mit dem Emulationssystem-Compiler
gemäß der vorliegenden
Erfindung geeigneten Computersystems. In 9 ist lediglich
ein Beispiel vieler möglicher
Arten von Computern oder zur Verwendung bei der vorliegenden Erfindung
geeigneter Strukturen gezeigt. In 9 ist ein
Computersystem 1 gezeigt, daß eine Anzeigevorrichtung 3,
einen Anzeigeschirm 5, ein Gehäuse 7, eine Tastatur 9 und
eine Maus 11 umfaßt.
Die Maus 11 und die Tastatur 9 sind „Nutzereingabevorrichtungen". Andere Beispiele
für Nutzereingabevorrichtungen
sind ein Berührungsbildschirm,
ein Lichtstift, ein Track Ball, Datenhandschuh, etc.
-
10 ist
eine Darstellung grundlegender Untersysteme im Computersystem 1 aus 9.
In 10 werden die Untersysteme durch Blöcke, wie beispielsweise
den Zentralprozessor 52, den Systemspeicher 54 etc.
wiedergegeben. Die Untersysteme sind über einen Systembus 50 miteinander
verbunden. Zusätzliche
Untersysteme, wie beispielsweise ein Drucker, eine Tastatur, eine
Festplatte und andere sind ebenfalls gezeigt. Andere Anordnungen von
Untersystemen und Zwischenverbindungen sind ebenfalls möglich.
-
Der
Compiler akzeptiert eine elektronische Beschreibung der Schaltung 300 als
Eingabe. Bei der bevorzugten Ausführungsform werden viele Formate zur
elektronischen Beschreibung einer Schaltung, wie beispielsweise
die Verilog-Sprache zur Beschreibung von Hardware, akzeptiert. Der
Compiler führt Schritte
eines „Technologie-Mappings" der Schaltung durch,
um Betriebsschritte der Schaltung zu Prozessoren im Emulationssystem
abzubilden. Die Betriebsschritte werden in Gleichungen umgewandelt, die
einer oder mehrere Prozessoren innerhalb eines Zyklus der emulierten
Schaltung lösen
können.
Der Compiler führt
auch den Schritt einer „Zeitplanung" der Lösung der
Gleichungen durch, um sicherzustellen, daß die Ergebnisse von Gleichungen,
die als Eingaben in andere Gleichungen benötigt werden, vor der Ausführung der
anderen Gleichungen erhalten werden. Die Schritte des Technologie-Mappings bzw. der
Technologieabbildung und der Zeitplanung werden bei der vorliegenden
Erfindung in vorteilhafter Weise durch Verwenden der oben im Abschnitt
I beschriebenen einheitlichen Logikeinheiten und Routing-Architektur
ausgeführt.
-
Der
Compiler verwendet die Ergebnisse des Technologie-Mappings und die
Zeitplanungsschritte zur Ausgabe eines Emulationsprogramms, das
in den Steuerungsspeicher, Multiplexerauswahl-RAM und andere Teile
des Emulationssystems zur Steuerung des Emulationssystems geladen
wird, um die Gleichungen zu lösen.
Man beachte, daß die
Lösung der
Gleichungen durch Ausführen
von bis zu 64 Programmschritten in einer einzigen emulierten Taktperiode
(d.h. der Periode von CLOCK in 8B) vollzogen
wird. Die Kompilationsprozedur wird aufgrund der einheitlichen Verbindbarkeit
von Signalen im Emulationssystem, woraus ein „flaches" Programmiermodell folgt, effizienter
gestaltet. Dadurch wird sichergestellt, daß nach einem Technologie-Mapping folgende
Zeitplanungsschritte die Routing-Fähigkeit der
emulierten Anordnung nicht beeinflussen. Mit anderen Worten sind
die Schritte des Technologie-Mappings und der Zeitplanung von der
Routing-Phase der Kompilierung und voneinander vollkommen unabhängig.
-
11 zeigt
ein Technologie-Mapping der Schaltung aus 8A. In 11 wurde
die Schaltung in sieben mit A–G
bezeichnete Logikfunktionen unterteilt. Man beachte, daß jede Logikfunktion
eine Unterfunktion beim Betrieb der Schaltung aus 11 ist
und jede Logikfunktion mit einem Logikprozessor realisiert werden
kann. Jede Unterfunktion weist klar definierte Eingänge und
Ausgänge
auf und kann innerhalb jedes Emulationszyklus bzw. Programmschritts
berechnet werden. Es bestehen höchstens drei
logische „Stufen" oder Abhängigkeiten
von Signalen, die zu unterschiedlichen Zeitpunkten in einem Emulationszyklus
ankommen könnten.
-
Die
Schaltung aus 8A ist einfach genug, daß das Technologie-Mapping
und die Zeitplanung, wie im Diagramm aus 11, manuell
erreicht werden können.
Zu Darstellungszwecken wurden bei diesem Beispiel sieben Logikfunktionen
gewählt. Man
beachte, daß die
Logikfunktionen F und G eine zur Schaltung hinzugefügte Funktionalität umfassen. Diese
Funktionalität
trägt Flankenübergängen im Taktsignal
CLOCK präzise
Rechnung. Da die Q0–3 erzeugenden
Register für
die positive Flanke sensitiv sind, umfassen die Logikfunktionen
F und G ein mit der emulierten Detektionslogik für die positive Flanke gekoppeltes
emuliertes Verzögerungselement
zur Erzeugung eines einen positiven CLOCK-Flanken-Übergang
kennzeichnenden Signals.
-
In 12 sind
Zuordnungen der Logikfunktionen zu Logikprozessoren (pro Chip sind
32 Logikprozessoren oder 8 Logikeinheiten vorgesehen, wie oben in
Verbindung mit der Archi tektur aus den 1 bis 7 erörtert wurde),
die Eingänge
zu jeder Logikfunktion, der früheste
Zeitpunkt, zu dem ein Eingang benötigt wird (angegeben in Programmschritten),
die Ausgabe der Logikfunktion und der späteste Zeitpunkt, zu dem die
Ausgabe der Logikfunktion verfügbar
sein muß,
gezeigt. Beim vorliegenden Beispiel wird jede Logikfunktion in 11 einem
getrennten Prozessor zugeordnet. Jede HLU ist in der Lage, vier getrennte
Produktsummenausdrücke
zu bilden und vier Ausgaben zu erzeugen (d.h. vier Prozessoren). Somit
kann beispielsweise eine einzelne HLU dazu verwendet werden, die
Logikfunktionen A–D
abzuarbeiten, während
eine zweite HLU die Logikfunktionen E, F und G abarbeiten kann.
Jedoch, wie im nachfolgenden erläutert
wird, läßt das vorliegende
Beispiel zu, daß alle
Berechnungen innerhalb von drei Programmschritten von einer einzigen
HLU abgearbeitet werden. Aufgrund der Einheitlichkeit des Routings
im Emulator sind die Zuordnungen von HLUs und Prozessoren innerhalb
von HLUs bezüglich
der Routing-Fähigkeit
vollkommen willkürlich.
-
Wieder
mit Bezug auf 12 umfaßt die Logikfunktion A die
Signale QO, CLEAR und CLOCK_POSEDGE. Die Signale QO und CLEAR sind
Eingaben von der externen Nutzerschaltung, die mit dem Emulationssystem
so verbunden ist, wie sie es mit der tatsächlichen emulierten Schaltung
wären. Das
Signal CLOCK_POSEDGE wird als ein Ausgangssignal von der Logikfunktion
G erzeugt, um die ansteigende Flanke des Taktes zu kennzeichnen. Man
beachte, daß CLOCK_POSEDGE
aus dem Signal CLOCK erzeugt wird, bei dem es sich um den Takt des
Nutzers von der emulierten Schaltung handelt. Bei der Logikfunktion
A wird das Signal QO beim Programmschritt 0, das Signal CLEAR beim
Programmschritt 2, während
das Signal CLOCK_POSEDGE ebenfalls beim Programmschritt 2 benötigt wird.
Die Ausgabe der Logikfunktion A ist QO, das spätestens beim nächsten Programmzyklus erzeugt
werden muß.
-
Beim
vorliegenden Beispiel gibt es nur drei Programmschritte, die die „Zeitfenster" 0, 1 und 2 belegen.
Jeder Programmschritt wird während
einer Taktperiode des Emulatortaktes ausgeführt. Der Emulatortakt wird
im allgemeinen so schnell wie möglich
betrieben, da eine emulierte Schaltung unvermeidbar so aufgebaut
ist, daß sie
mit einer höheren
Geschwindigkeit als der Geschwindigkeit des Emulationsprogrammzyklus
betrieben werden kann. Wie erwähnt,
können
die Programmschritte auf bis zu vier Emulatortaktzyklen ausgedehnt
werden, wenn beispielsweise Verzögerungen
im Emulator erfordern, daß das
Emulationssystem für
mehr als einen Zyklus in einem vorbestimmten, einem speziellen Programmschritt
entsprechenden Zustand bleibt.
-
In 12 sind
die verbleibenden Logikfunktionen B–G ähnlich wie die Logikfunktion
A bestimmt.
-
In 13 sind
Zuordnungen von Logikprozessoren zu Zeitfenstern und Busleitungen
gezeigt. Beispielweise ist der Ausgangswert QO dem Zeitschlitz 2
und der Busleitung 355 zugeordnet. Wie oben erläutert, gibt es 384 Busleitungen
(O bis 383), welche Eingänge
zu den 48:1-Wählmitteln
darstellen. Die Busleitungen 352 bis 383 enthalten Ergebnisse, die
von den Logikeinheiten 0–7
stammen. Bei der vorliegenden, beispielhaften Schaltungsanordnung wird
ausschließlich
die Logikeinheit 0 verwendet und alle Signale werden in einem einzigen
die Logikeinheit enthaltenden Chip erzeugt und verwendet. In diesem
Fall ist für
die Emulation kein Datenaustausch zwischen Chips notwendig. Man
beachte, daß die
Signale CLEAR, CLOCK_DELAYED und CLOCK_POSEDGE im Zeitschlitz erzeugt
werden, während
die Signale QO-3 im Zeitschlitz 2 erzeugt werden.
-
14 zeigt
die Zuordnung von Eingangssignalen zu Busleitungen. Die Signale
CO-3, RESET und CLOCK geben die sechs externen Eingänge zum
Emulator wieder. Es wird davon ausgegangen, daß jeder der Eingänge am Beginn
des Programmzyklus, d.h. beim Programmschritt 0, wenn sie abgetastet
werden, frei und gültig
ist.
-
In 13 und 14 sind
die Ergebnisse des Zeitplanungsschrittes im Kompilationsprozeß wiedergegeben.
Das Zeitplanungsproblem hat sicherzustellen, daß die Ausgangswerte, die für eine gegebene
Berechnung benötigt
werden, zur Verfügung
stehen, bevor die Berechnung den Wert benötigt. Mit anderen Worten muß jede zur
Erzeugung eines Wertes notwendige Berechnung vor dem Zeitpunkt ausgeführt oder
terminiert werden, zu dem nachfolgende Berechnungen diesen Wert
verwenden können.
Beim vorliegenden einfachen Beispiel handelt es sich dabei um ein
triviales Problem, dessen Lösung
in den 13 und 14 dargestellt
ist. Es kann sich jedoch dabei um einen sehr zeitaufwendigen Schritt
im Kompilierungsprozeß handeln,
wenn die emulierte Schaltung groß ist. Ein Vorteil der vorliegenden
Erfindung besteht darin, daß der
Zeitplanungsschritt im Gegensatz zu früheren Emulationssystemen und
Compilern, die Routing-Fähigkeit
der emulierten Anordnung nicht beeinflußt. Das ist teilweise deshalb
der Fall, weil es sich bei den Prozessoren im Emulationssystem gemäß der vorliegenden Erfindung
um ersetzbare Artikel handelt, weil kein Vorteil darin besteht,
bezüglich
der Eingangs- oder Ausgangs-Routing-Fähigkeit einen bestimmten Prozessor
einem anderen gegen über
zu bevorzugen, da das gesamte Routing auf Ebene des Hydra-Chips
unter den Prozessoren einheitlich ist.
-
15 und 16 zeigen
Eingangs- und Ausgangsabbildungen für die unterschiedlichen Prozessoren
im Zeitschlitz 1 bzw. 2. In 15 ist
zu erkennen, daß die
Signale CLEAR, CLOCK_DELAYED und CLOCK_POSEDGE aus den Werten CO-3,
RESET, QO-3, CLOCK und CLOCK_DELAYED erzeugt werden. Das Ausgangssignal
CLOCK_DELAYED wird unter Verwendung einer Registeremulationslogik,
wie der bei 220 in 4 gezeigten,
erzeugt. Ähnlich
zeigt 16 die Abbildung für im Zeitschlitz
2 berechnete Signale.
-
17 und 18 zeigen
die MUX-Einstellungen für
die 1K:1-Wählmittel,
die für
die Verarbeitung gemäß dem vorliegenden
Beispiel relevant sind. Für
den Zeitschlitz 0 sind keine Einstellungen gezeigt, da die Signale
für die
Logikverarbeitung bis zum Zeitschlitz 1 nicht erforderlich sind.
-
19–21 zeigen
die MUX-Einstellungen für
die 48:1-MUXe in den Zeitschlitzen 0, 1 und 2.
-
In
der vorhergehenden Beschreibung wurde die Erfindung mit Bezugnahme
auf eine spezielle, beispielhafte Ausführungsform derselben beschrieben.