DE19510902A1 - Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern - Google Patents
Emulation eines Mehrtor-Speichers unter Verwendung von MarkierregisternInfo
- Publication number
- DE19510902A1 DE19510902A1 DE19510902A DE19510902A DE19510902A1 DE 19510902 A1 DE19510902 A1 DE 19510902A1 DE 19510902 A DE19510902 A DE 19510902A DE 19510902 A DE19510902 A DE 19510902A DE 19510902 A1 DE19510902 A1 DE 19510902A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- gate
- write
- read
- data
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/16—Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Static Random-Access Memory (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Dram (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
Die vorliegende Erfindung bezieht sich auf eine Emulation
(Nachbildung) von Hardware im allgemeinen und betrifft die
Emulation von Mehrtor-Speichern im besonderen.
Beim Entwurf von integrierten Schaltungen werden
verschiedenste Werkzeuge verwendet. Dazu gehören Systeme zur
Emulation von Hardware. Beispiele für solche Emulationssysteme
sind in den US-Patenten Nr. 5 109 353 (Sample et al.) und 5 036 473
(Butts et al.) beschrieben, die beide in die vorliegende
Offenbarung durch Bezugnahme aufgenommen werden.
Beim Entwurf von integrierten Schaltungen wird eine
Netzwerk-Beschreibungsliste des integrierten Schaltkreises
erzeugt. Die Netzwerkliste ist eine Beschreibung der
Bauelemente und elektrischen Verbindungen des integrierten
Schaltkreises. Sie kann dazu verwendet werden, alle
erforderlichen Masken für die tatsächliche Herstellung des
integrierten Schaltkreises zu erstellen.
Wie in den Patenten von Sample et al. und Butts et al.
beschrieben, kann die Emulationstechnologie verwendet werden,
um sicherzustellen, daß der im Entwurf befindliche integrierte
Schaltkreis in dem System, in das er eingebaut werden wird,
tatsächlich funktioniert. Typische rekonfigurierbare
Emulationssysteme bestehen aus einer Vielzahl von untereinander
verbundenen rekonfigurierbaren Logikeinrichtungen, wie z. B.
feldprogrammierbaren Gatteranordnungen (FPGA).
Rekonfigurierbare Logikeinrichtungen sind für die Emulation der
Logikschaltkreise eines gegebenen integrierten Schaltkreises
ideal. Neuzeitliche integrierte Schaltkreise, wie
Mikroprozessoren, enthalten jedoch auch Speicherschaltungen,
deren richtige Emulation schwierig sein kann. Außerdem weist
der Aufbau der Speicherschaltungen häufig mehrere Zugriffs-Tore
auf, deren richtige Emulation noch schwieriger ist.
Typische Speicherschaltkreise sind so ausgelegt, daß sie
eine Mehrzahl von Speicherplätzen aufweisen. Jeder
Speicherplatz kann eine bestimmte Anzahl von Bits speichern.
Klassifiziert werden Speicherschaltkreise normalerweise nach
der Anzahl ihrer Speicherplätze (häufig als "Tiefe" des
Speicherschaltkreises bezeichnet) und nach der Anzahl der Bits,
die pro Speicherplatz gespeichert werden können (häufig als
"Breite" des Speicherschaltkreises bezeichnet). Deshalb würde
ein Speicherschaltkreis mit 32 Speicherplätzen, die jeweils
acht Bits enthalten, als "32×8"-Speicherschaltkreis
bezeichnet werden. Wenn der Speicherschaltkreis mehrere
Zugriffs-Tore aufweist, wird er ferner durch die Anzahl an
Schreib-Toren und die Anzahl an Lese-Toren definiert.
Bei einem herkömmlichen Speicher mit mehreren Zugriffs-
Toren können Daten über verschiedene Tore in Speicherplätze
eingeschrieben werden. Jedes Schreib-Tor kann auf jeden
Speicherplatz zugreifen, und jedes Schreib-Tor kann zur selben
Zeit schreiben. Jedoch ist es nicht möglich, daß verschiedene
Tore gleichzeitig Daten in denselben Speicherplatz
einschreiben. Ebenso kann jedes Lese-Tor auf jeden
Speicherplatz zugreifen, und jedes Lese-Tor kann Daten zur
selben Zeit lesen. Im Unterschied zu den Schreib-Toren können
verschiedene Lese-Tore jedoch gleichzeitig Daten von derselben
Adresse lesen.
Neuere Generationen von rekonfigurierbaren
Logikeinrichtungen besitzen die Fähigkeit, innerhalb ihrer
konfigurierbaren Logikblöcke (CLB) Speicherschaltkreise zu
konfigurieren. Eine solche rekonfigurierbare Logikeinrichtung
ist die XC4000-Familie von Xilinx, Inc., San Jose, Kalifornien.
In der XC4000-Familie kann jeder CLB einen statischen 16 mal 2-
oder 32 mal 1-Schreib-Lese-Speicher (RAM) bilden. Jedoch
besteht keine Möglichkeit zur Bildung eines Mehrtor-Speichers.
Ein Beispiel für ein Verfahren zur Ausbildung von Mehrtor-
Speicherschaltkreisen in einem Emulationssystem ist in der
anhängigen US-Patentanmeldung mit der Seriennummer 08/067571
unter der Bezeichnung Multi-Port Memory Emulation (Emulation
eines Mehrtor-Speichers) beschrieben. Diese parallel anhängige
Anmeldung wird hiermit durch Bezugnahme in die vorliegende
Offenbarung aufgenommen. Dieses Verfahren wandelt die in der
Netzwerkliste enthaltenen Transistorpegel-Definitionen des
Speichers in logische Definitionen um, um den Speicher im
Rahmen einer Xilinx-FPGA auszubilden.
Dieses Verfahren nimmt jedoch einen großen Teil der CLB-
Kapazität des Emulationssystems in Anspruch. Deshalb wäre es
wünschenswert, zur Emulation von Mehrtor-Speichern über ein
Verfahren zu verfügen, das nicht eine große Zahl von CLBs in
Anspruch nimmt.
Die vorliegende Erfindung überwindet die Probleme und
Nachteile des Standes der Technik durch eine einzigartige
Methode, bei der die Speicheranordnung des emulierten Mehrtor-
Speicherschaltkreises vervielfältigt wird und innerhalb der
vervielfältigten Speicheranordnungen die Speicherplätze
markiert werden, in die Daten eingeschrieben wurden, nachdem in
dieselben Speicherplätze bereits im Rahmen eines anderen
Speicheranordnungs-Duplikats Daten eingeschrieben worden waren.
Die vorstehenden und weitere bevorzugte Merkmale der
Erfindung, einschließlich verschiedener neuer Einzelheiten der
Verwirklichung und Kombinationen von Elementen, werden
nachstehend unter Bezugnahme auf die beiliegenden Zeichnungen
näher beschrieben und in den Ansprüchen hervorgehoben. Es
versteht sich, daß die einzelnen Ausführungsformen der
erfindungsgemäßen Verfahren und Schaltungsanordnungen nur zur
Veranschaulichung und nicht als Beschränkung der Erfindung
gezeigt sind. Wie für einschlägige Fachleute ersichtlich,
können die Grundsätze und Merkmale der vorliegenden Erfindung
in verschiedensten und zahlreichen Ausführungsformen Verwendung
finden, ohne den Rahmen der Erfindung zu verlassen.
Es wird auf die beiliegenden Zeichnungen Bezug genommen, in
denen veranschaulichende Ausführungsbeispiele erfindungsgemäßer
Gesichtspunkte gezeigt sind, aus denen neue Merkmale und
Vorteile hervorgehen.
Fig. 1 ist ein Blockschaltbild eines mehrtorigen Schreib-
Lese-Speicherschaltkreises.
Fig. 2 ist ein Stromlaufplan eines konfigurierbaren
Logikblocks einer feldprogrammierbaren Gatteranordnung nach der
Bauart von Xilinx.
Fig. 3 ist ein Flußdiagramm einer Ausführungsform der
vorliegenden Erfindung zur Emulation von Mehrtor-
Speicherschaltkreisen.
Fig. 4a ist ein Blockschaltbild eines mehrtorigen Schreib-
Lese-Speicherschaltkreises, der mit erfindungsgemäßen
Schreibtor- und Lesetor-Speicheranordnungen verwirklicht ist.
Fig. 4b ist ein Blockschaltbild eines Teils der
Markierregister, die bei der Emulation des in Fig. 4a gezeigten
mehrtorigen Schreib-Lese-Speicherschaltkreises verwendet
werden.
Fig. 4c ist ein Blockschaltbild eines Teils der
Markierregister, die bei der Emulation des in Fig. 4a gezeigten
mehrtorigen Schreib-Lese-Speicherschaltkreises verwendet
werden.
Fig. 4d ist ein Blockschaltbild eines Teils der
Markierregister, die bei der Emulation des in Fig. 4a gezeigten
mehrtorigen Schreib-Lese-Speicherschaltkreises verwendet
werden.
Fig. 5 ist ein Schaubild, das zeigt, wieso es wichtig ist,
die zuletzt eingeschriebenen Daten für einen gegebenen
Speicherplatz zu überwachen.
Fig. 6a und 6b sind ein Blockschaltbild eines
Ausführungsbeispiels für einen Mehrtor-Speicherschaltkreis auf
der Grundlage des vorliegenden Erfindungsgedankens.
Unter Bezugnahme auf die Zeichnungsfiguren wird nachstehend
das gegenwärtig bevorzugte Verfahren der Erfindung beschrieben.
Fig. 1 zeigt einen Mehrtor-Speicherschaltkreis 10 nach dem
Stand der Technik. Der Schaltkreis nach Fig. 1 enthält zwei
Schreib-Tore 12 und 14 sowie drei Lese-Tore 16, 18 und 20. Die
Schreib-Tore 12 und 14 können in jeden beliebigen Speicherplatz
innerhalb der Speicheranordnung 22 des Speicherschaltkreises 10
schreiben, und die Lese-Tore 16, 18 und 20 können aus jedem
beliebigen Speicherplatz innerhalb der Speicheranordnung 22 des
Speicherschaltkreises 10 lesen. Die Anzahl an Schreib-Toren und
die Anzahl an Lese-Toren in Fig. 1 ist nur ein Beispiel. Ein
Mehrtor-Speicherschaltkreis kann weniger oder mehr Schreib- und
Lese-Tore als dargestellt aufweisen.
Fig. 2 zeigt einen Stromlaufplan eines konfigurierbaren
Logikblocks (CLB) 30 einer rekonfigurierbaren Logikeinrichtung
aus der XC4000-Familie. Der CLB 30 umfaßt Funktionsgeneratoren
32 und 34. Diese Funktionsgeneratoren 32 und 34 enthalten
Nachschlage-Tabellen, die verwendet werden, wenn logische
Funktionen nachgebildet werden. Wenn in den CLBs 30
Speicherschaltkreise nachgebildet werden, arbeiten die in ihnen
enthaltenen Nachschlage-Tabellen als statischer Schreib-Lese-
Speicher (statisches RAM). Wenn jedoch die Funktionsgeneratoren
in jedem CLB 30 als RAM arbeiten, sind sie zur Nachbildung von
Mehrtor-Speicherschaltkreisen nicht in der Lage.
Um in einem Emulationssystem Mehrtor-Speicherschaltkreise
zu bilden, werden die CLBs als Einzeltor-Speicherschaltkreise
verwendet. Jedoch werden die Einzeltor-Speicherschaltkreise so
eingesetzt, daß sie einen Mehrtor-Speicherschaltkreis
nachbilden.
Ein Flußdiagramm einer Ausführungsform der vorliegenden
Erfindung ist in Fig. 3 dargestellt. Fig. 3 zeigt, daß bei
einem erfindungsgemäßen Ausführungsbeispiel ein Schritt 1000
darin besteht, die Netzwerk-Beschreibungsliste des zu
emulierenden Schaltungsaufbaus zu importieren. In Schritt 1100
stellt das System fest, daß in einer Netzwerkliste ein
Speicherzugriff auftritt, der definiert werden muß. Dies liegt
daran, daß die zu emulierenden Speicherschaltkreise im
allgemeinen mit Transistoren ausgebildet sind, die von
Emulationssystemen normalerweise nicht gehandhabt werden
können. Die in Fig. 3 gezeigte Zugriffsdefinition betrifft
einen Mehrtor-Speicherschaltkreis. Mehrfachzugriffs-
Definitionen können für jede emulierte Netzwerkliste auftreten.
Nach der Zugriffsdefinition 1100 wird in Schritt 1300 die
Mehrtor-Speicherschaltungsanordnung 22 erzeugt. Zusätzlich zur
Erzeugung 1300 der Anordnung 22 wird in Schritt 1200 die
Markierungsanordnung erzeugt. Wie unten erläutert, umfaßt die
Markierungsanordnung eine Mehrzahl von Markierregistern und
eine diesen Registern zugeordnete Logikschaltung. Die Anzahl an
Markierregistern wird bestimmt durch die Anzahl an Schreib-
Toren des emulierten Mehrtor-Speicherschaltkreises
multipliziert mit der Tiefe des emulierten
Speicherschaltkreises. Nachdem die Speicheranordnung 22 im
Schritt 1300 erzeugt worden ist, werden in Schritt 1400
Lesetor-Speicheranordnungen erzeugt. Dann, in Schritt 1500,
werden die Schreibtor-Speicheranordnungen geschaffen. Für jedes
Schreib-Tor des emulierten Mehrtor-Speicherschaltkreises gibt
es eine Schreibtor-Speicheranordnung. Jedes Schreib-Tor besteht
jeweils aus den im Schritt 1400 erzeugten Lesetor-
Speicheranordnungen.
Nachdem die Schreibtor-Speicheranordnungen in 1500
geschaffen worden sind, werden sie mit der Markierungsanordnung
verschmolzen, und in Schritt 1600 wird die Netzwerkliste für
den im Schritt 1100 definierten Speicherzugriff erzeugt. In
Schritt 1700 findet die Kompilierung zu einem Einzeltor-
Speicher statt. Dieser Schritt 1700 kann die
Speicherkompilierungssoftware verwenden, die von einem
Verkäufer programmierbarer Logikschaltkreise, z. B. Xilinx,
bereitgestellt wird. In Schritt 1800 wird die Netzwerkliste für
den Einzeltor-Speicher erzeugt. In Schritt 1900 werden weitere
Netzwerklisten kompiliert. Schließlich, in Schritt 2000, kann
der Mehrtor-Speicherschaltkreis als Nachbildung im Zielsystem
des emulierten Schaltkreises eingesetzt werden.
Bei der vorliegenden Erfindung wird die Speicheranordnung
22 des zu emulierenden Mehrtor-Speicherschaltkreises zunächst
dupliziert. Wie viele Male die Speicheranordnung 22 dupliziert
wird, hängt davon ab, wie viele Lese-Tore der zu emulierende
Mehrtor-Speicherschaltkreis aufweist. Für jedes Lese-Tor, das
der zu emulierende Mehrtor-Speicherschaltkreis aufweist, wird
eine Lesetor-Speicheranordnung geschaffen. Jede Lesetor-
Speicheranordnung besteht aus einer Kopie (einem Duplikat) der
Speicheranordnung 22 und weist daher jeden der Speicherplätze
der Speicheranordnung 22 auf. Lesetor-Speicheranordnungen
werden erzeugt, indem jene Teile der Netzwerkliste dupliziert
werden, welche die Speicheranordnung 22 beschreiben.
Nachdem die Lesetor-Speicheranordnungen geschaffen worden
sind, werden Schreibtor-Speicheranordnungen erzeugt.
Schreibtor-Speicheranordnungen werden für jedes Schreib-Tor des
emulierten Mehrtor-Speicherschaltkreises geschaffen. Die
Schreibtor-Speicheranordnungen weisen eine Kopie jeder Lesetor-
Speicheranordnung auf, die jeweils für ein Lese-Tor dupliziert
wurde. Jede Schreibtor-Speicheranordnung enthält daher eine
Lesetor-Speicheranordnung pro Lese-Tor des emulierten Mehrtor-
Speicherschaltkreises.
Ein Blockschaltbild hiervon ist in Fig. 4a dargestellt.
Fig. 4a zeigt einen Mehrtor-Speicher 50 mit n Lese-Toren und m
Schreib-Toren. Für jedes Lese-Tor werden Lesetor-
Speicheranordnungen 52a, 52b, . . ., 52n als Vervielfältigung der
eigentlichen Speicheranordnung 22 des emulierten Mehrtor-
Speicherschaltkreises erstellt. Dann wird die Gesamtheit der
Lesetor-Speicheranordnungen 52a, 52b, . . ., 52n für jedes
Schreib-Tor vervielfältigt, wodurch Schreibtor-
Speicheranordnungen 54a, 54b, . . ., 54m entstehen. Insbesondere
besteht die Schreibtor-Speicheranordnung 54a aus Lesetor-
Speicheranordnungen 52a, 52b, . . ., 52n. Die Schreibtor-
Speicheranordnung 54b besteht aus Lesetor-Speicheranordnungen
52a¹, 52b¹, . . ., 52n¹. Die Schreibtor-Speicheranordnung 54m
besteht aus Lesetor-Speicheranordnungen 52am, 52bm, . . ., 52nm.
Diese Architektur ermöglicht es, wie nachstehend erörtert,
Daten durch eine Mehrzahl von Schreib-Toren zu schreiben und
aus einer Mehrzahl von Lese-Toren zu lesen.
Wenn Daten in einen Speicherplatz in einem Mehrtor-
Speicherschaltkreis - wie jenem gemäß Fig. 1 - eingeschrieben
werden, ersetzen die einzuschreibenden Daten die in dem
Speicherplatz vorhandenen Daten. Bei dem Mehrtor-
Speicherschaltkreis nach der vorliegenden Erfindung ist es
jedoch nicht möglich, die Daten im Speicherplatz zu ersetzen,
da dieser Speicherplatz in zahlreiche Lesetor-
Speicheranordnungen vervielfältigt worden ist. Wenn die in
einen gegebenen Speicherplatz einzuschreibenden Daten überall,
wo dieser Speicherplatz als Duplikat vorliegt, an die Stelle
der vorher vorhandenen Daten treten würden, wäre das System zu
langsam, als daß es noch praktisch einsetzbar wäre. Wenn daher
Daten in einen Speicherplatz durch ein gegebenes Schreib-Tor
eingeschrieben werden sollen, werden die Daten in diesen
Speicherplatz in jeder der duplizierten Lesetor
speicheranordnungen geschrieben, welche zu der Schreibtor
speicheranordnung gehören, die dem eigentlichen Schreib-Tor
zugeordnet ist, welches den Schreibvorgang durchführt. Jedoch
werden die Daten nicht in die anderen Lesetor
speicheranordnungen eingeschrieben, welche die den
Schreibvorgang nicht durchführenden Schreibtor
speicheranordnungen enthalten.
Diese Anordnung erlaubt eine vollständige Emulation von
Mehrtor-Speicherschaltkreisen auch im Rahmen solcher
programmierbarer Logikschaltungen, die nur Einzeltor
speicherschaltkreise bieten. Da Daten jedoch nur in die
Lesetor-Speicheranordnungen 52am, 52bm, . . ., 52nm derjenigen
schreibtor-Speicheranordnung 54m geschrieben werden, welche die
Daten schrieb, ist es möglich, daß ein gegebener Speicherplatz
innerhalb einer der Lesetor-Speicheranordnungen 52nm in einer
gegebenen schreibtor-Speicheranordnung 54m andere Daten enthält
als der gleiche Speicherplatz in einer duplizierten Lesetor
speicheranordnung, zum Beispiel 52a¹, welche zu einer anderen
schreibtor-Speicheranordnung, z. B. 54b, gehört. Daher ist es
von entscheidender Bedeutung, daß die Systemarchitektur so
ausgebildet ist, daß die Lese-Tore 56a, 56b, . . ., 56n
diejenigen für einen gegebenen Speicherplatz bestimmten Daten
lesen, die zuletzt eingeschrieben wurden.
Das erste Lese-Tor 56a erhält Eingangssignale von den
ersten Lesetor-Speicheranordnungen 52a, 52a¹, . . ., 52am, die
jeweils in den Schreibtor-Speicheranordnungen 54a, 54b, . . .,
54m enthalten sind. Jeder aus den Lesetor-Speicheranordnungen
52a, 52a¹, . . ., 52am kommende Eingang ist mit einem Treiber
60 Wm_Rn verbunden. Das zweite Lese-Tor 56b erhält Eingangssignale
von den zweiten Lesetor-Speicheranordnungen 52b, 52b¹, . . . ,
52bm, die jeweils in den Schreibtor-Speicheranordnungen 54a,
54b, . . ., 54m enthalten sind. Das n-te Lese-Tor 56n erhält
Eingangssignale von den n-ten Lesetor-Speicheranordnungen 52n,
52n¹, . . ., 52nm, die jeweils in den Schreibtor
speicheranordnungen 54a, 54b, . . ., 54m enthalten sind.
Unter Bezugnahme auf Fig. 5 wird ein Beispiel dafür
gezeigt, wieso es von kritischer Bedeutung ist, daß die Lese-
Tore die für einen gegebenen Speicherplatz zuletzt
geschriebenen Daten lesen. Wenn Daten für einen gegebenen
Speicherplatz über das erste Schreib-Tor geschrieben werden,
werden sie in den betreffenden Speicherplatz jeder Lesetor
speicheranordnung dieser bestimmten Schreibtor
speicheranordnung eingeschrieben, was in diesem Beispiel durch
einen Stern (*) dargestellt ist. Wenn dann über das zweite
Schreib-Tor Daten in denselben Speicherplatz eingeschrieben
werden, werden die Daten in diesen Speicherplatz jeder Lesetor
speicheranordnung nur dieser gegebenen Schreibtor
speicheranordnung eingeschrieben, was in diesem Beispiel durch
ein Kreuz (X) dargestellt ist. Mithin enthält der gleiche
Speicherplatz in den beiden Schreibtor-Speicheranordnungen
verschiedene Daten. Damit die Emulation des Mehrtor
speicherschaltkreises korrekt ist, müssen von dem ausgewählten
Lese-Tor die zuletzt in den Speicherplatz eingeschriebenen
Daten gelesen werden, während die älteren Daten ignoriert
werden müssen.
Um sicherzustellen, daß das ausgewählte Lese-Tor Daten aus
dem Speicherplatz der richtigen Lesetor-Speicheranordnung
liest, werden eine Reihe von Markierregistern verwendet.
Markierregister werden eingesetzt, um sicherzustellen, daß aus
dem emulierten Speicherschaltkreis nur die zuletzt für einen
gegebenen Speicherplatz geschriebenen Daten gelesen werden. Die
Anzahl an benötigten Markierregistern wird durch die Tiefe und
die Anzahl an Schreib-Toren des zu emulierenden Mehrtor
speicherschaltkreises bestimmt.
Die Architektur der Markierregister wird nachstehend unter
Bezugnahme auf die Fig. 4a bis 4d beschrieben. Wie
erläutert, bestimmt sich die Anzahl an Markierregistern durch
Multiplikation der Anzahl an Schreib-Toren mit der Anzahl an
Speicherplätzen. Bei dem in Fig. 4a gezeigten Mehrtor-Speicher
sind m Schreib-Tore und x Speicherplätze vorhanden. Daher gibt
es m*x Markierregister. Die Fig. 4b bis 4d zeigen den Aufbau
der Markierregister. Diese sind so angeordnet, daß die
Markierregister, die einer bestimmten Schreibtor
speicheranordnung zugeordnet sind, zu einer Gruppe
zusammengefaßt sind. Wie unten gezeigt, kann jedes
Markierregister durch ein Flip-Flop mit Setz- und
Rücksetzeingang gebildet sein.
Fig. 4b zeigt die der Schreibtor-Speicheranordnung 54a
zugeordneten Markierregister. Fig. 4c zeigt die der Schreibtor
speicheranordnung 54b zugeordneten Markierregister. Fig. 4d
zeigt die der Schreibtor-Speicheranordnung 54m zugeordneten
Markierregister. Für jeden Speicherplatz in einer Schreibtor
speicheranordnung gibt es ein Markierregister. So wird in Fig.
4b das Markierregister 100a¹ dazu verwendet, die Daten zu
markieren, die in den ersten Speicherplatz in der ersten
Schreibtor-Speicheranordnung 54a geschrieben werden, wenn es
die Daten sind, die als letzte in diesen Speicherplatz
eingeschrieben wurden. Da für jeden Speicherplatz der
Schreibtor-Speicheranordnung ein Markierregister erzeugt wird,
kann eine beliebige Anzahl von Markierregistern geschaffen
werden, bis hin zu einem Markierregister 100x¹. Die
Markierregister 100a¹, 100a² und 100am gewährleisten, daß durch
die Lese-Tore die in den ersten Speicherplatz zuletzt
eingeschriebenen Daten gelesen werden. Die Markierregister
100x¹, 100x² und 100xm gewährleisten, daß durch die Lese-Tore
die in den x-ten Speicherplatz zuletzt eingeschriebenen Daten
gelesen werden.
Die Eingangslogik zu jedem Markierregister 100a¹ . . . 100x¹,
100a² . . . 100x², und 100am . . . 100xm ist folgende. Der Ausgang
eines ersten UND-Gatters 105a¹ . . . 105x¹, 105a² . . . 105x², und
105am . . . 105xm, das Eingänge für alle Schreibfreigaben - also
Schreibfreigabe Nr. 1 (W₁), Schreibfreigabe Nr. 2 (W₂)
Schreibfreigabe Nr. m (Wm) - aufweist, wird einem Eingang eines
zweiten UND-Gatters 110a¹ . . . 110x¹, 110a² . . . 110x², bzw. 110am
. . . 110xm zugeführt. Die ersten UND-Gatter 105a¹ . . . 105x¹, die
den Markierregistern 100a¹ . . . 100x¹ für den ersten bis x-ten
Speicherplatz in der ersten Schreibtor-Speicheranordnung
zugeordnet sind, empfangen den W₁-Eingang nicht-invertiert,
während die Eingangssignale W₂ . . . Wm invertiert werden. Die
zweiten UND-Gatter 105a² . . . 105x², die den Markierregistern
100a² . . . 100x² für den ersten bis x-ten Speicherplatz in der
zweiten Schreibtor-Speicheranordnung zugeordnet sind, empfangen
den W₂-Eingang nicht-invertiert, während die Eingangssignale W₁
. . . Wm invertiert werden. Schließlich empfangen die m-ten UND-
Gatter 105am . . . 105xm, die den Markierregistern 100am . . . 100xm
für den ersten bis x-ten Speicherplatz in der m-ten Schreibtor
speicheranordnung zugeordnet sind, den Wm-Eingang nicht
invertiert, während die Eingangssignale W₁ . . . W₂ invertiert
werden.
Das zweite Eingangssignal des zweiten UND-Gatters 110a¹ . . .
110x¹, 110a² . . . 110x², bzw. 110am . . . 110xm ist die
Schreibfreigabe für den betreffenden Speicherplatz in der
Schreibtor-Speicheranordnung, zum Beispiel W₁L₁, d. h. die
Schreibfreigabe für den ersten Speicherplatz. Der Ausgang des
zweiten UND-Gatters 110a¹ . . . 110x¹, 110a² . . . 110x², bzw. 110am
. . . 110xm ist das Setzsignal für den betreffenden
Speicherplatz, für welches die Bezeichnung SmLx vereinbart
wird, worin m das betreffende Schreib-Tor und x den
betreffenden Speicherplatz bedeutet. Dieses Signal SmLx wird
den Setz-Eingängen der Markierregister 100a¹ . . . 100x¹, 100a²
. . . 100x², und 100am . . . 100xm zugeführt.
Der Ausgang eines ersten ODER-Gatters 115a¹ . . . 115x¹, 115a²
. . . 115x², bzw. 115am . . . 115xm wird dem Rücksetz-Eingang der
Markierregister 100a¹ . . . 100x¹, 100a² . . . 100x², bzw. 100am
100xm zugeführt. Die Eingangssignale für das erste ODER-Gatter
115a¹ . . . 115x¹, 115a² . . . 115x², und 115am . . . 115xm sind die
Setz-Signale SmLx, die denjenigen Markierregistern zugeführt
werden, die demselben Speicherplatz für die weiteren Tore
zugeordnet sind.
Der Ausgang jedes Markierregisters 100a¹ . . . 100x¹, 100a²
. . . 100x², und 100am . . . 100xm ist einem Schreib-Tor, einem
Lese-Tor und einem Speicherplatz zugeordnet und zeigt an, ob
ein bestimmter Speicherplatz einer Lesetor-Speicheranordnung in
einer Schreibtor-Speicheranordnung die in den betreffenden
Speicherplatz zuletzt eingeschriebenen Daten enthält. Deshalb
bilden die Markierregister eine dreidimensionale Anordnung,
nämlich eine Schreibtor-Dimension, eine Lesetor-Dimension und
eine Speicherplatz-Dimension. Die in der vorliegenden Anmeldung
verwendete Vereinbarung für die Bezeichnung der Ausgänge der
Markierregister lautet MARKETWm_Rn_Lxt. Da die durch ein bestimmtes
Schreib-Tor geschriebenen Daten in den gleichen Speicherplatz
jeder Lesetor-Speicheranordnung der betreffenden Schreibtor
speicheranordnung geschrieben werden, ist das Ausgangssignal
aller Markierregister so aufgespalten, daß für jede Lesetor
speicheranordnung eine MARKEWm_Rn_Lx erzeugt wird. In Fig. 4b zum
Beispiel erzeugt das Ausgangssignal des Markierregisters 100a¹
die MARKEW1_R1_L1, die MARKEW1_R2_L1 bis zur MARKEW1_Rn_L1.
Die Ausgangssignale MARKEWm_Rn_Lx der Markierregister 100a¹
. . . 100x¹, 100a² . . . 100x², und 100am . . . 100xm werden einem
Eingang eines dritten UND-Gatters 120 Wm_Rn_Lx zugeführt. Der
andere Eingang des drittens UND-Gatters 120 Wm_Rn_Lx ist die
Lesefreigabe für den Speicherplatz, welcher der MARKEWm_Rn_Lx
zugeordnet ist. Zum Beispiel werden die Ausgangssignale des
Markierregisters 100a¹, die als MARKEW1_R1_L1, MARKEW1_R2_L1, . . .
MARKEW1_Rn_L1 bezeichnet werden, da sie jeweils den ersten
Speicherplatz in der ersten, zweiten, . . . n-ten Lesetor
speicheranordnung innerhalb der ersten Schreibtor
speicheranordnung 54a markieren, den dritten UND-Gattern
120 W1_R1_L1, 120 W1_R2_L1 bzw. 120 W1_Rn_L1 zugeführt. Die Lesefreigaben
R₁L₁, R₂L₁, . . . RnL₁ für die ersten Speicherplätze bilden die
weiteren Eingangssignale der dritten UND-Gatter 120 W1_R1_L1,
120 W1_R2_L1 bzw. 120 W1_Rn_L1.
Die dritten UND-Gatter 120 Wm_Rn_Lx sind so angeordnet, daß
diejenigen unter ihnen, die einer bestimmten Lesetor
speicheranordnung einer bestimmten Schreibtor-Speicheranordnung
zugeordnet sind, ihre Ausgangssignale an ein spezifisches
zweites ODER-Gatter 125 Wm_Rn senden. Zum Beispiel ist der Ausgang
des dritten UND-Gatters 120 W1_R1_L1 ein Eingang des zweiten ODER-
Gatters 125 W1_R1. Außerdem ist der Ausgang des dritten UND-
Gatters 120 W1_R1_Lx ein Eingang desselben zweiten ODER-Gatters
125 W1_R1.
Die Ausgänge der verschiedenen zweiten ODER-Gatter 125 Wm_Rn
bilden ein Markierungs-Ausgangssignal MARKEWm_Rn, das angibt, ob
die Lesetor-Speicheranordnung der betreffenden Schreibtor
speicheranordnung die für einen Speicherplatz zuletzt
geschriebenen Daten enthält. Diese Ausgänge MARKEWm_Rn der
zweiten ODER-Gatter 125 Wm_Rn werden den verschiedenen Treibern
60 Wm_Rn der Lese-Tore 56a, 56b, . . . 56n zugeführt und geben den
Treiber entweder frei, wenn die mit ihm verbundene Lesetor
speicheranordnung die für einen Speicherplatz zuletzt
geschriebenen Daten enthält, oder sperrt den Treiber, wenn die
Lesetor-Speicheranordnung für den betreffenden Speicherplatz
die für den Speicherplatz zuletzt geschriebenen Daten nicht
enthält.
Die Markierregister 100a¹ . . . 100x¹, 100a² . . . 100x², und
100am . . . 100xm gewährleisten, daß nur die für einen
Speicherplatz zuletzt geschriebenen Daten aus dem gewählten
Lese-Tor gelesen werden. Wenn zum Beispiel am ersten Schreib-
Tor 54a eine Schreibfreigabe (W₁) auftritt, um eine logische
"Eins" in den ersten Speicherplatz (L₁) zu schreiben, würde das
erfindungsgemäße Emulationssystem eine logische "Eins" in den
jeweiligen ersten Speicherplatz L₁ aller Lesetor
speicheranordnungen 52a, 52b, . . . 52n einschreiben. Während der
Zeit, in welcher der Schreibvorgang abläuft, werden die
gelesenen Ausgangssignale durch eine Riegelschaltung (siehe das
Beispiel in den Fig. 6a bis 6b) zwischengespeichert, um
sicherzustellen, daß die gelesenen Daten nicht zum Einschreiben
weitergeleitet werden, falls eine Lesefreigabe und eine
Schreibfreigabe zur gleichen Zeit auftreten sollten.
Zur selben Zeit, in der die Daten in die Lesetor
speicheranordnungen 52a, 52b, . . . 52n geschrieben werden, wird
an die Markierregister das Schreibfreigabesignal für den
betreffenden Speicherplatz gesandt. Dieses
Schreibfreigabesignal W₁ wird allen ersten UND-Gattern 105a¹
. . . 105x¹, 105a² . . . 105x², und 105am . . . 105xm eingegeben. Da W₁
"wahr" ist und W₂ und W₃ von "falsch" zu "wahr" invertiert
werden, ist das Ausgangssignal der ersten UND-Gatter 105a¹
105x¹, die der ersten Schreibtor-Speicheranordnung 54a
zugeordnet sind, "wahr" (man beachte, daß das Signal W₁ auch
allen anderen ersten UND-Gattern 105a² . . . 105x², 105am . . .
105xm zugeführt wird; da aber das "wahre" Signal W₁ in diese
UND-Gatter 105a² . . . 105x², 105am . . . 105xm invertiert eingeht,
muß das Ausgangssignal dieser anderen UND-Gatter 105a² . . .
105x², 105am . . . 105xm "falsch" lauten). Da W₁L₁ "wahr" ist,
während W₁Lx "falsch" ist (weil eine Schreibfreigabe nur für L₁
aufgetreten ist), wird nur das Ausgangssignal des zweiten UND-
Gatters 110a¹, das dem ersten Speicherplatz zugeordnet ist,
"wahr" lauten. Mithin wird das Signal S₁L₁ "wahr" sein, so daß
an den "Setz"-Eingang des Markierregisters 100a¹ ein "wahres"
Signal angelegt wird. Da gleichzeitig die Signale S₂L₁ und SmL₁
"falsch" sind, legt das erste ODER-Gatter 115a¹ ein "falsches"
Signal an den RÜCKSETZ-Eingang des Markierregisters 100a¹.
Somit sind die den dritten UND-Gattern 120 W1_R1_L1, 120 W1_R2_L1
bzw. 120 W1_Rn_L1 zugeführten Signale MARKEW1_R1_L1, MARKEW1_R2_L1 bzw.
MARKEW1_Rn_L1 logisch "wahr". Sobald und wenn eine Lesefreigabe
für den ersten Speicherplatz auftritt (R₁L₁, R₂L₁, . . . RnL₁),
wird diese auch den dritten UND-Gattern 120 W1_R1_L1, 120 W1_R2_L1, . . .
120 W1_Rn_L1 zugeführt, die dann an die zweiten ODER-Gatter 125 W1_R1,
125 W1_R2, . . . 125 W1_Rn ein "wahres" Signal legen, was ein "wahres"
Ausgangssignal erzeugt. Diese Ausgangssignale, die als
MARKEW1_R1, MARKEW1_R2, . . . MARKEW1_Rn bezeichnet sind, werden den
Treibern 60 W1_R1, 60 W1_R2, . . . 60 W1_Rn zugeführt, um aus dem ersten
Speicherplatz der ersten Schreibtor-Speicheranordnung 54a die
logische "Eins" auszugeben.
Wenn nun, nachdem die Daten über das erste Schreib-Tor 54a
in den ersten Speicherplatz (L₁) eingeschrieben worden sind,
über das zweite Schreib-Tor 54b neue Daten, zum Beispiel eine
logische "Null", in den ersten Speicherplatz (L₁) geschrieben
werden, läuft Folgendes ab, um sicherzustellen, daß nur die
zuletzt für L₁ geschriebenen Daten, nämlich eine "Null", und
nicht die zuvor am ersten Schreib-Tor 54a geschriebenen Daten,
d. h. eine "Eins", gelesen werden.
Sobald am zweiten Schreib-Tor 54b das Schreibfreigabesignal
(W₂) erscheint, um eine logische "Null" zu schreiben, schreibt
das erfindungsgemäße Emulationssystem eine logische "Null" in
den jeweiligen ersten Speicherplatz L₁ aller Lesetor
speicheranordnungen 52a¹, 52b¹, . . . 52n¹. Während der Zeit, in
welcher der Schreibvorgang erfolgt, werden die gelesenen
Ausgangssignale von einer Riegelschaltung (siehe das Beispiel
in den Fig. 6a bis 6b) zwischengespeichert, um
sicherzustellen, daß die gelesenen Daten nicht zum Einschreiben
weitergeleitet werden, falls eine Lesefreigabe und eine
Schreibfreigabe gleichzeitig auftreten sollten.
Zur selben Zeit, in der die Daten in die Lesetor
speicheranordnungen 52a¹, 52b¹, . . . 52n¹ geschrieben werden,
wird an die Markierregister-Logik das Schreibfreigabesignal W₂
gesandt. Dieses Schreibfreigabesignal W₂ wird allen ersten UND-
Gattern 105a¹ . . . 105x¹, 105a² . . . 105x², und 105am . . . 105xm
eingegeben. Da W₂ "wahr" ist und W₁ und W₃ von "falsch" zu
"wahr" invertiert werden, ist das Ausgangssignal der ersten
UND-Gatter 105a² . . . 105x², die der zweiten Schreibtor
speicheranordnung 54b zugeordnet sind, "wahr" (man beachte, daß
das Signal W₂ auch allen anderen ersten UND-Gattern 105a¹
105x¹ und 105am . . . 105xm zugeführt wird; da das Signal W₂ aber
invertiert in diese anderen UND-Gatter 105a¹ . . . 105x¹ und 105am
. . . 105xm eingeht, muß das Ausgangssignal dieser anderen UND-
Gatter 105a¹ . . . 105x¹ und 105am . . . 105xm "falsch" lauten). Da
W₂L₁ "wahr" ist, während W₂Lx "falsch" ist (weil eine
Schreibfreigabe nur für L₁ aufgetreten ist), wird nur das
Ausgangssignal des zweiten UND-Gatters 110a², das dem ersten
Speicherplatz zugeordnet ist, "wahr" lauten. So wird das Signal
S₂L₁ "wahr" sein, so daß an den "Setz"-Eingang des
Markierregisters 100a² ein "wahres" Signal angelegt wird. Da
gleichzeitig die Signale S₁L₁ und SmL₁ "falsch" sind, legt das
erste ODER-Gatter 115a² ein "falsches" Signal an den RÜCKSETZ-
Eingang des Markierregisters 100a².
Somit sind die den dritten UND-Gattern 120 W2_R1_L1, 120 W2_R2_L1
bzw. 120 W2_Rn_L1 zugeführten Signale MARKEW2_R1_L1, MARKEW2_R2_L1 bzw.
MARKEW2_Rn_L1 logisch "wahr". Sobald und wenn eine Lesefreigabe
für den ersten Speicherplatz auftritt (R₁L₁, R₂L₁, . . . RnL₁),
wird diese neben den Eingangssignalen MARKEW2_R1_L1, MARKEW2_R2_L1,
. . . MARKEW2_Rn_L1 den dritten UND-Gattern 120 W2_R1_L1, 120 W2_R2_L1, . . .
120 W2_Rn_L1 zugeführt, die dann ein "wahres" Signal an die zweiten
ODER-Gatter 125 W2_R1, 125 W2_R2, 125W2_Rn legen, die "wahre"
Ausgangssignale erzeugen. Diese Ausgangssignale, die als
MARKEW2_R1, MARKEW2_R2, . . . MARKEW2_Rn bezeichnet sind, werden den
Treibern 60 W2_R1, 60 W2_R2, 60 W2_Rn zugeführt, um aus dem ersten
Speicherplatz der zweiten Schreibtor-Speicheranordnung 54b die
logische "Eins" auszugeben. Da die Treiber 60 W1_R1 und 60 Wm_R1 im
ersten Lese-Tor 56a, die Treiber 60 W1_R2 und 60 Wm_R2 und die
Treiber 60 W1_Rn und 60 Wm_Rn durch die Markierregister gesperrt
werden, werden nur die als letzte in den Lesetor
speicheranordnungen 52a¹, 52b¹, . . . 52n¹ gespeicherten Daten
durch die Lese-Tore 56a, 56b, . . . 56n gelesen.
Da der erste Speicherplatz L₁ in der zweiten Schreibtor
speicheranordnung 54b als "wahr" markiert wurde, ist es
wichtig, daß die auf "wahr" gesetzten Signale MARKEW1R1,
MARKEW1R2, . . . MARKEW1Rn auf logisch "falsch" zurückgesetzt
werden. Dies geschieht in der Tat, da die Schreibfreigabe W₁,
die den ersten UND-Gattern 105a¹ zugeleitet wird, welche
jeweils dem ersten Speicherplatz L₁ der ersten Schreibtor
speicheranordnung 54a zugeordnet sind, "falsch" wurde, sobald
die Schreibfreigabe W₂ "wahr" wurde. Also liegt ein "falsches"
Signal am zweiten UND-Gatter 110a¹ an, das dann ein "falsches"
Signal an den SETZ-Eingang des Markierregisters 100a¹ legt. Da
außerdem S₂L₁ nunmehr "wahr" ist, gibt das erste ODER-Gatter
115a¹ ein "wahres" Signal an den RÜCKSETZ-Eingang des
Markierregisters 100a¹ aus. Somit sind die Signale MARKEW1_R1_L1,
MARKEW1_R2_L1, . . . MARKEW1_Rn_L1 "falsch". Mithin wird ein "falsches"
Signal den dritten UND-Gattern 120 W1_R1_L1, 120 W1_R2_L1, . . . 120 W1_Rn_L1
zugeführt, die dann ein "falsches" Signal an die zweiten ODER-
Gatter 125 W1_R1, 125 W1_R2, . . . 125 W1_Rn legen. Dies bewirkt, daß die
Signale MARKEW1R1, MARKEW1R2, . . . MARKEW1Rn "falsch" werden, was
die Treiber 60 W1_R1, 60 W1_R2, 60 W1_Rn sperrt. Deshalb werden die
Daten, die jeweils am ersten Speicherplatz in den Lesetor
speicheranordnungen 52a, 52b, . . . 52n der ersten Schreibtor
speicheranordnung 54a gespeichert sind, nicht gelesen.
Die Verwendung von Markierregistern wird im Zusammenhang
mit einem Beispiel verständlicher. Die Fig. 6a und 6b zeigen
ein (2 mal 1)-RAM mit drei Schreib-Toren und einem Lese-Tor. Um
diesen Speicherschaltkreis nachzubilden, werden vervielfältigte
Lesetor-Speicheranordnungen 205a, 205a¹, 205a² gebildet. Jede
dieser Lesetor-Speicheranordnungen 205a, 205a¹, 205a² ist ein
(2 mal 1)-Speicherschaltkreis. Die Lesetor-Speicheranordnung
205a befindet sich in der ersten Schreibtor-Speicheranordnung
200a. Die Lesetor-Speicheranordnung 205a¹ befindet sich in der
zweiten Schreibtor-Speicheranordnung 200b. Die Lesetor
speicheranordnung 205a² schließlich befindet sich in der
dritten Schreibtor-Speicheranordnung 200c.
Am Eingang der Lesetor-Speicheranordnung 205a, 205a¹, 205a²
der jeweiligen Schreibtor-Speicheranordnung 200a, 200b bzw.
200c liegt jeweils ein Multiplexer 210, der eine Schreibtor-
Adresse und eine Lesetor-Adresse empfängt. Die Lesetor
speicheranordnung 205a in der Schreibtor-Speicheranordnung 200a
weist also einen Multiplexer 210 auf, dem im Wege elektrischer
Datenübertragung eine Schreibtor₁-Adresse und eine Lesetor-
Adresse zugeführt werden. Schreibtor₁-Daten werden direkt an
den richtigen Speicherplatz in der Lesetor-Speicheranordnung
205a eingegeben. Die Lesetor-Speicheranordnung 205a¹ in der
Schreibtor-Speicheranordnung 200b weist einen Multiplexer 210
auf, dem im Wege elektrischer Datenübertragung eine
Schreibtor₂-Adresse und eine Lesetor-Adresse zugeführt werden.
Schreibtor₂-Daten werden direkt an den richtigen Speicherplatz
in der Lesetor-Speicheranordnung 205a¹ eingegeben. Die Lesetor
speicheranordnung 205a² in der Schreibtor-Speicheranordnung
200c weist einen Multiplexer 210 auf, dem im Wege elektrischer
Datenübertragung eine Schreibtor₃-Adresse und eine Lesetor-
Adresse zugeführt werden. Schreibtor₃-Daten werden direkt an
den richtigen Speicherplatz in der Lesetor-Speicheranordnung
205a² eingegeben.
Die Lesetor-Speicheranordnung 205a ist mit einer
Riegelschaltung 215 verbunden, die ihrerseits mit einem Treiber
220a verbunden ist; die Lesetor-Speicheranordnung 205a¹ ist mit
einer Riegelschaltung 215 verbunden, die ihrerseits mit einem
Treiber 220b verbunden ist; und die Lesetor-Speicheranordnung
205a² ist mit einer Riegelschaltung 215 verbunden, die
ihrerseits mit einem Treiber 220c verbunden ist.
Wie oben erläutert, ist die für einen gegebenen
Schaltungsentwurf erforderliche Anzahl an Markierregistern als
das Produkt aus der Anzahl an Schreib-Toren und der Anzahl an
Speicherplätzen bestimmt. Da im Beispiel nach den Fig. 6a
und 6b drei Schreib-Tore und zwei Speicherplätze vorhanden
sind, sind sechs Markierregister 225a, 225b, 227a, 227b, 229a
und 229b erforderlich. Die Markierregister 225a, 227a und 229a
stellen sicher, daß durch jedes Lese-Tor die zuletzt in den
ersten Speicherplatz (L₁) eingeschriebenen Daten gelesen
werden. Die Markierregister 225b, 227b und 229b stellen sicher,
daß durch jedes Lese-Tor die zuletzt in den zweiten
Speicherplatz (L₂) eingeschriebenen Daten gelesen werden. Alle
Markierregister 225a, 225b, 227a, 227b, 229a und 229b sind im
vorliegenden Beispiel Flip-Flops mit Setz- und Rücksetzeingang.
Die Eingangslogik für die Markierregister 225a, 225b, 227a,
227b, 229a und 229b ist jeweils folgende. Das Ausgangssignal
eines ersten UND-Gatters 235, an dem als Eingänge alle
Schreibfreigabesignale - d. h. im vorliegenden Beispiel das
erste Schreibfreigabesignal (W₁), das zweite
Schreibfreigabesignal (W₂) und das dritte Schreibfreigabesignal
(W₃) - anliegen, wird einem zweiten UND-Gatter 240 zugeleitet.
Das zweite Eingangssignal des zweiten UND-Gatters 240 ist die
Schreibfreigabe für den betreffenden Speicherplatz in der
Schreibtor-Speicheranordnung, zum Beispiel W₁L₁, nämlich die
Schreibfreigabe für den ersten Speicherplatz. Das
Ausgangssignal des zweiten UND-Gatters 240 ist das SETZ-Signal
für den betreffenden Speicherplatz, für welches - wie oben
erörtert - die Bezeichnung SmLx vereinbart ist, worin m das
betrachtete Schreib-Tor und x der betrachtete Speicherplatz
ist. Dieses Signal SmLx wird dem SETZ-Eingang der
Markierregister 225a, 225b, 227a, 227b, 229a und 229b
zugeführt.
Die Markierregister sind nach der betrachteten Schreibtor
speicheranordnung angeordnet, der sie zugeordnet sind. Die für
die Signale W₁, W₂ und W₃ bestimmten Eingänge des ersten UND-
Gatters 235 sind so ausgebildet, daß nur der Eingang für
dasjenige Schreib-Tor, dem das Markierregister zugeordnet ist,
nicht-invertierend ist. Im vorliegenden Beispiel ist nur der
W₁-Eingang für die der ersten Schreibtor-Speicheranordnung 200a
zugeordneten Markierregister 225a und 225b nicht-invertierend.
Nur der W₂-Eingang für die der zweiten Schreibtor
speicheranordnung 200b zugeordneten Markierregister 227a und
227b ist nicht-invertierend. Schließlich ist nur der W₃-Eingang
für die der dritten Schreibtor-Speicheranordnung 200c
zugeordneten Markierregister 229a und 229b nicht-invertierend.
Das Ausgangssignal eines ersten ODER-Gatters 245 wird dem
RÜCKSETZ-Eingang der Markierregister 225a, 225b, 227a, 227b,
229a und 229b zugeführt. Als Eingangssignale des ersten ODER-
Gatters 245 dienen diejenigen SETZ-Signale SmLx, die an den
Markierregistern liegen, welche dem gleichen Speicherplatz der
anderen Tore zugeordnet sind.
Die Ausgangssignale MARKEWn_Rm_Lx der Markierregister 225a,
225b, 227a, 227b, 229a und 229b werden an einen Eingang eines
dritten UND-Gatters 250 gelegt. Da im vorliegenden Beispiel nur
ein einziges Lese-Tor vorhanden ist, gibt es nur ein einziges
Ausgangssignal aus den Markierregistern. Das zweite
Eingangssignal des dritten UND-Gatters 250 ist die Lesefreigabe
für den betreffenden, der MARKEWn_Rm_Lx zugeordneten
Speicherplatz. Im vorliegenden Beispiel ist das Ausgangssignal
des Markierregisters 225a als MARKEW1_R1_L1 bezeichnet, da es den
ersten Speicherplatz in der ersten Lesetor-Speicheranordnung in
der ersten Schreibtor-Speicheranordnung markiert. Die
MARKEW1_R1_L1 wird dem dritten UND-Gatter 250 eingegeben. Außerdem
wird dem dritten UND-Gatter 250 die Lesefreigabe für den ersten
Speicherplatz zugeführt.
Für jedes Markierregister 225a, 225b, 227a, 227b, 229a und
229b gibt es ein drittes UND-Gatter 250. Der Ausgänge all
derjenigen dritten UND-Gatter 250, die einer bestimmten
Schreibtor-Speicheranordnung zugeordnet sind, liegen am Eingang
eines zugeordneten zweiten ODER-Gatters 255. Die
Ausgangssignale der zweiten ODER-Gatter 255 bilden jeweils das
Eingangssignal der verschiedenen Treiber 220a, 220b, 220c.
Die Markierregister 225a, 225b, 227a, 227b, 229a und 229b
stellen sicher, daß aus dem gewählten Lese-Tor nur die zuletzt
für einen bestimmten Speicherplatz geschriebenen Daten gelesen
werden. Wenn zum Beispiel am ersten Schreib-Tor 200a eine
Schreibfreigabe (W₁) erfolgt, um am zweiten Speicherplatz (L₂)
eine logische "Eins" zu schreiben, würde das erfindungsgemäße
Emulationssystem eine logische "Eins" jeweils in den
Speicherplatz L₂ jeder Lesetor-Speicheranordnung 205a, 205b und
205c schreiben. In der Zeit, in welcher der Schreibvorgang
abläuft, werden die gelesenen Ausgangssignale durch die
Riegelschaltung 215 zwischengespeichert, um sicherzustellen,
daß die gelesenen Daten nicht zum Einschreiben weitergeleitet
werden, falls eine Lesefreigabe und eine Schreibfreigabe zur
gleichen Zeit auftreten sollten.
Zur selben Zeit, in der die Daten in die Lesetor
speicheranordnungen geschrieben werden, wird an die
Markierregister das Schreibfreigabesignal für den betreffenden
Speicherplatz gesandt. Dieses Schreibfreigabesignal W₁ wird den
ersten UND-Gattern 235 eingegeben, die den Markierregistern
225a und 225b für den ersten und den zweiten Speicherplatz in
der ersten Schreibtor-Speicheranordnung zugeordnet sind. Da W₁
"wahr" ist und W₂ und W₃ von "falsch" zu "wahr" invertiert
werden, ist das Ausgangssignal der ersten UND-Gatter 235, die
der ersten Schreibtor-Speicheranordnung 200a zugeordnet sind,
"wahr" (man beachte, daß das Signal W₁ auch allen anderen
ersten UND-Gattern 235 zugeführt wird; da aber das Signal W₁ in
diese ersten UND-Gatter 235 invertiert eingeht, muß das
Ausgangssignal der anderen UND-Gatter "falsch" sein). Da jedoch
W₁L₁ "falsch" ist, während W₁L₂ "wahr" ist, wird nur das
Ausgangssignal des zweiten UND-Gatters 240, das dem zweiten
Speicherplatz zugeordnet ist, "wahr" lauten. So wird das Signal
S₁L₂ "wahr" sein, so daß an den "Setz"-Eingang des
Markierregisters 225b ein "wahres" Signal angelegt wird. Da
gleichzeitig die Signale S₂L₂ und S₃L₂ "falsch" sind, legt das
erste ODER-Gatter ein "falsches" Signal an den RÜCKSETZ-Eingang
des Markierregisters 225b.
Somit ist das dem dritten UND-Gatter 250 zugeführten Signal
MARKEW1_R1_L1 logisch "wahr". Sobald und wenn eine Lesefreigabe
für den zweiten Speicherplatz auftritt (R₁L₂), wird diese auch
an das dem Eingangssignal MARKEW1_R1_L2 zugeordnete dritte UND-
Gatter 250 geführt, das dann an das zweite ODER-Gatter 255 ein
"wahres" Signal legt, was ein "wahres" Ausgangssignal erzeugt.
Dieses Ausgangssignal, das als MARKEW1R1 bezeichnet ist, wird
dem Treiber 220a zugeführt, um aus dem zweiten Speicherplatz
der ersten Schreibtor-Speicheranordnung die logische "Eins"
auszugeben.
Wenn nun, nachdem die Daten über das erste Schreib-Tor 200a
in den zweiten Speicherplatz (L₂) eingeschrieben worden sind,
über das zweite Schreib-Tor 200b neue Daten, zum Beispiel eine
logische "Null", in den zweiten Speicherplatz (L₂) geschrieben
werden, läuft Folgendes ab, um sicherzustellen, daß nur die
zuletzt für L₂ geschriebenen Daten, nämlich eine "Null", und
nicht die zuvor am ersten Schreib-Tor geschriebenen Daten, d. h.
eine "Eins", gelesen werden.
Sobald am zweiten Schreib-Tor 200b das
Schreibfreigabesignal (W₂) erscheint, um eine logische "Null"
zu schreiben, schreibt das erfindungsgemäße Emulationssystem
eine logische "Null" in die zweiten Speicherplätze L₂ der
Lesetor-Speicheranordnung 205a¹. Während der Zeit, in welcher
der Schreibvorgang erfolgt, werden die gelesenen
Ausgangssignale von einer Riegelschaltung 215
zwischengespeichert, um sicherzustellen, daß die gelesenen
Daten nicht zum Einschreiben weitergeleitet werden, falls eine
Lesefreigabe und eine Schreibfreigabe gleichzeitig auftreten
sollten.
Zur selben Zeit, in der die Daten in die Lesetor
speicheranordnung 205a¹ geschrieben werden, wird an die
Markierregister für den betreffenden Speicherplatz das
Schreibfreigabesignal W₂ gesandt. Dieses Schreibfreigabesignal
W₂ wird den ersten UND-Gattern 235 eingegeben, die den
Markierregistern 227a und 227b für den ersten und den zweiten
Speicherplatz in der zweiten Schreibtor-Speicheranordnung
zugeordnet sind. Da W₂ "wahr" ist und W₁ und W₃ von "falsch" zu
"wahr" invertiert werden, ist das Ausgangssignal der ersten
UND-Gatter, die der zweiten Schreibtor-Speicheranordnung 200b
zugeordnet sind, "wahr" (man beachte, daß das "wahre" Signal W₂
auch allen anderen ersten UND-Gattern 235 zugeführt wird; da
das Signal W₂ aber invertiert in diese UND-Gatter 235 eingeht,
muß das Ausgangssignal der anderen UND-Gatter "falsch" sein).
Da jedoch W₂L₁ "falsch" ist, während W₂L₂ "wahr" ist, wird nur
das Ausgangssignal des zweiten UND-Gatters 240, das dem zweiten
Speicherplatz zugeordnet ist, "wahr" lauten. Somit wird das
Signal S₂L₂ "wahr" sein, so daß an den "Setz"-Eingang des
Markierregisters 227b ein "wahres" Signal angelegt wird. Da
gleichzeitig die Signale S₁L₂ und S₃L₂ "falsch" sind, legt das
erste ODER-Gatter ein "falsches" Signal an den RÜCKSETZ-Eingang
des Markierregisters 225b.
Somit ist das dem dritten UND-Gatter 250 zugeführte Signal
MARKEW2_R1_L2 logisch "wahr". Sobald und wenn eine Lesefreigabe
für den zweiten Speicherplatz auftritt (R₁L₂), wird sie an das
der MARKEW2_R1_L2 zugeordnete dritte UND-Gatter 250 geführt, das
dann ein "wahres" Signal an das zweite ODER-Gatter 255 legt,
was ein "wahres" Ausgangssignal erzeugt. Dieses Ausgangssignal,
als MARKEW2R1 bezeichnet, wird dem Treibern 220b zugeführt, um
aus dem zweiten Speicherplatz der ersten Schreibtor
speicheranordnung die logische "Eins" auszugeben.
Da der zweite Speicherplatz L₂ in der zweiten Schreibtor
speicheranordnung 205b als "wahr" markiert wurde, ist es
wichtig, daß das auf "wahr" gesetzte Signal MARKEW1R1 auf
logisch "falsch" zurückgesetzt wird. Dies geschieht in der Tat,
da die Schreibfreigabe W₁, die dem ersten UND-Gatter zugeleitet
wird, welches der ersten Schreibtor-Speicheranordnung 205a
zugeordnet ist, "falsch" wurde, sobald die Schreibfreigabe W₂
"wahr" wurde. Also liegt ein "falsches" Signal am zweiten UND-
Gatter 240 an, das dann ein "falsches" Signal an den SETZ-
Eingang des Markierregisters 225a legt. Da außerdem S₂L₂
nunmehr "wahr" ist, gibt das erste ODER-Gatter 245 ein "wahres"
Signal an den RÜCKSETZ-Eingang des Markierregisters 225b aus.
Somit ist das Signal MARKEW1_R1_L2 "falsch". Mithin wird ein
"falsches" Signal dem dritten UND-Gatter 250 zugeführt, das
dann ein "falsches" Signal an das zweite ODER-Gatter 255 legt.
Dies bewirkt, daß das Signal MARKEW1R1 "falsch" wird. Deshalb
wird der zweite Speicherplatz in der ersten Schreibtor
speicheranordnung 205a nicht gelesen.
Somit wurden ein bevorzugtes Verfahren und eine bevorzugte
Vorrichtung zur Emulation von Mehrtor-Speichern beschrieben.
Wenn auch Ausführungs- und Anwendungsbeispiele der vorliegenden
Erfindung gezeigt und erläutert wurden, so ist es für
einschlägige Fachleute doch ersichtlich, daß viele weitere
Ausführungs- und Anwendungsbeispiele möglich sind, ohne von den
hier offenbarten Grundgedanken der Erfindung abzugehen. Die
Erfindung ist daher ausschließlich durch den Gedankeninhalt der
beiliegenden Ansprüche beschränkt.
Claims (5)
1. Verfahren zum Nachbilden eines Mehrtor
speicherschaltkreises mittels der Speichermöglichkeiten, die in
einer Gruppe von programmierbaren Logikeinrichtungen bestehen,
wobei der Mehrtor-Speicherschaltkreis X Speicherplätze zum
Speichern von Daten, Y Lese-Tore zum Lesen von Daten aus den X
Speicherplätzen und Z Schreib-Tore zum Schreiben von Daten in
die X Speicherplätze aufweist, mit folgenden
Verfahrensschritten:
Erzeugen einer Netzwerklistendefinition einer Lesetor speicheranordnung mit X Speicherplätzen, die in den Speichermöglichkeiten der programmierbaren Logikeinrichtungen nachbildbar ist;
Y-faches Duplizieren der Netzwerklistendefinition der Lesetor-Speicheranordnung, um eine Netzwerklistendefinition einer Schreibtor-Speicheranordnung zu erzeugen;
Z-faches Duplizieren der Netzwerklistendefinition der Schreibtor-Speicheranordnung;
Programmieren der Speichermöglichkeiten der programmierbaren Logikeinrichtungen, um die Z Schreibtor speicheranordnungen nachzubilden, wobei jede der Z Schreibtor speicheranordnungen Y Lesetor-Speicheranordnungen und jede der Y Lesetor-Speicheranordnungen X Speicherplätze aufweist;
Einschreiben von Daten in einen ausgewählten Speicherplatz der X Speicherplätze in jeder der Y Lesetor speicheranordnungen, die sich in einer ausgewählten Schreibtor speicheranordnung der Z Schreibtor-Speicheranordnungen befinden; und
Markieren des ausgewählten Speicherplatzes der X Speicherplätze in jeder der Y Lesetor-Speicheranordnungen, die sich in einer ausgewählten Schreibtor-Speicheranordnung der Z Schreibtor-Speicheranordnungen befinden, als "zuletzt beschriebener" Speicherplatz.
Erzeugen einer Netzwerklistendefinition einer Lesetor speicheranordnung mit X Speicherplätzen, die in den Speichermöglichkeiten der programmierbaren Logikeinrichtungen nachbildbar ist;
Y-faches Duplizieren der Netzwerklistendefinition der Lesetor-Speicheranordnung, um eine Netzwerklistendefinition einer Schreibtor-Speicheranordnung zu erzeugen;
Z-faches Duplizieren der Netzwerklistendefinition der Schreibtor-Speicheranordnung;
Programmieren der Speichermöglichkeiten der programmierbaren Logikeinrichtungen, um die Z Schreibtor speicheranordnungen nachzubilden, wobei jede der Z Schreibtor speicheranordnungen Y Lesetor-Speicheranordnungen und jede der Y Lesetor-Speicheranordnungen X Speicherplätze aufweist;
Einschreiben von Daten in einen ausgewählten Speicherplatz der X Speicherplätze in jeder der Y Lesetor speicheranordnungen, die sich in einer ausgewählten Schreibtor speicheranordnung der Z Schreibtor-Speicheranordnungen befinden; und
Markieren des ausgewählten Speicherplatzes der X Speicherplätze in jeder der Y Lesetor-Speicheranordnungen, die sich in einer ausgewählten Schreibtor-Speicheranordnung der Z Schreibtor-Speicheranordnungen befinden, als "zuletzt beschriebener" Speicherplatz.
2. Verfahren zum Nachbilden eines Mehrtor
speicherschaltkreises nach Anspruch 1, mit folgenden weiteren
Schritten:
der Ausgang jeder Lesetor-Speicheranordnung wird in elektrische Datenverbindung mit je einem zugehörigen Multiplexer gebracht; und
der Speicherplatz aller Lesetor-Speicheranordnungen, die sich innerhalb einer Schreibtor-Speicheranordnung befinden, wird jeweils als "zuletzt beschrieben" markiert, sobald Daten in diesen Speicherplatz geschrieben werden.
der Ausgang jeder Lesetor-Speicheranordnung wird in elektrische Datenverbindung mit je einem zugehörigen Multiplexer gebracht; und
der Speicherplatz aller Lesetor-Speicheranordnungen, die sich innerhalb einer Schreibtor-Speicheranordnung befinden, wird jeweils als "zuletzt beschrieben" markiert, sobald Daten in diesen Speicherplatz geschrieben werden.
3. Verfahren nach Anspruch 2, wobei die programmierbaren
Logikeinrichtungen konfigurierbare Logikblöcke aufweisen und
der Markiervorgang folgende weiteren Schritte umfaßt:
Nachbilden je eines Markierregisters für jeden in den Schreibtor-Speicheranordnungen vorhandenen duplizierten Speicherplatz, wobei die Markierregister in den konfigurierbaren Logikblöcken der programmierbaren Logikeinrichtungen ausgebildet werden und einen Setz-Eingang, einen Rücksetz-Eingang und einen Ausgang aufweisen; und
Herstellen einer elektrischen Datenverbindung zwischen dem Ausgang jedes Markierregisters und einem Auswahl-Eingang jedes Multiplexers, so daß der Multiplexer den "zuletzt beschriebenen" Speicherplatz mit dem Lese-Tor des Mehrtor speicherschaltkreises verbinden kann.
Nachbilden je eines Markierregisters für jeden in den Schreibtor-Speicheranordnungen vorhandenen duplizierten Speicherplatz, wobei die Markierregister in den konfigurierbaren Logikblöcken der programmierbaren Logikeinrichtungen ausgebildet werden und einen Setz-Eingang, einen Rücksetz-Eingang und einen Ausgang aufweisen; und
Herstellen einer elektrischen Datenverbindung zwischen dem Ausgang jedes Markierregisters und einem Auswahl-Eingang jedes Multiplexers, so daß der Multiplexer den "zuletzt beschriebenen" Speicherplatz mit dem Lese-Tor des Mehrtor speicherschaltkreises verbinden kann.
4. Verfahren zum Verwirklichen eines Mehrtor
speicherschaltkreises in programmierbaren Logikeinrichtungen
mit Speichereinrichtungen und Logikeinrichtungen, wobei der
Mehrtor-Speicherschaltkreis Speicherplätze zum Speichern von
Daten, Lese-Tore zum Lesen von Daten aus den Speicherplätzen
und Schreib-Tore zum Schreiben von Daten in die Speicherplätze
aufweist, mit folgenden Verfahrensschritten:
Verwirklichen der Speicherplätze in den Speichereinrichtungen der programmierbaren Logikeinrichtungen, um eine Lesetor-Speicheranordnung zu bilden;
Duplizieren der Lesetor-Speicheranordnung in den Speichereinrichtungen der programmierbaren Logikeinrichtungen für jede Lesetor-Speicheranordnung des Mehrtor speicherschaltkreises, wodurch eine Schreibtor speicheranordnung gebildet wird, welche eine Anzahl von Lesetor-Speicheranordnungen umfaßt, die gleich ist der Anzahl an Lese-Toren des Mehrtor-Speicherschaltkreises;
Duplizieren der Schreibtor-Speicheranordnung in den Speichereinrichtungen der programmierbaren Logikeinrichtungen für jedes Schreibtor des Mehrtor-Speicherschaltkreises; und
Verwirklichen einer MARKEN-Anordnung in den Speichereinrichtungen der programmierbaren Logikeinrichtungen, wobei die MARKEN-Anordnung für jeden Speicherplatz jeder Schreibtor-Speicheranordnung ein Register aufweist, das Daten speichert, welche angeben, ob der dem Register zugeordnete Speicherplatz "zuletzt geschriebene" Daten enthält.
Verwirklichen der Speicherplätze in den Speichereinrichtungen der programmierbaren Logikeinrichtungen, um eine Lesetor-Speicheranordnung zu bilden;
Duplizieren der Lesetor-Speicheranordnung in den Speichereinrichtungen der programmierbaren Logikeinrichtungen für jede Lesetor-Speicheranordnung des Mehrtor speicherschaltkreises, wodurch eine Schreibtor speicheranordnung gebildet wird, welche eine Anzahl von Lesetor-Speicheranordnungen umfaßt, die gleich ist der Anzahl an Lese-Toren des Mehrtor-Speicherschaltkreises;
Duplizieren der Schreibtor-Speicheranordnung in den Speichereinrichtungen der programmierbaren Logikeinrichtungen für jedes Schreibtor des Mehrtor-Speicherschaltkreises; und
Verwirklichen einer MARKEN-Anordnung in den Speichereinrichtungen der programmierbaren Logikeinrichtungen, wobei die MARKEN-Anordnung für jeden Speicherplatz jeder Schreibtor-Speicheranordnung ein Register aufweist, das Daten speichert, welche angeben, ob der dem Register zugeordnete Speicherplatz "zuletzt geschriebene" Daten enthält.
5. Verfahren zum Nachbilden eines integrierten
Schaltkreises in einer Mehrzahl von umprogrammierbaren
Logikschaltkreisen, die Speichermöglichkeiten aufweisen, wobei
der integrierte Schaltkreis einen Speicherschaltkreis mit X
Speicherplätzen zum Speichern von Daten, mit Y Lese-Toren zum
Lesen von Daten aus den X Speicherplätzen und mit Z Schreib-
Toren zum Schreiben von Daten in die X Speicherplätze aufweist,
mit folgenden Verfahrensschritten:
Erzeugen einer Netzwerklisten-Beschreibung einer Lesetor speicheranordnung mit X Speicherplätzen, die in den Speichermöglichkeiten der programmierbaren Logikeinrichtungen nachbildbar ist;
Y-faches Duplizieren der Lesetor-Speicheranordnung in der Netzwerklisten-Beschreibung, um eine Schreibtor speicheranordnung zu bilden;
Z-faches Duplizieren der Schreibtor-Speicheranordnung in der Netzwerklisten-Beschreibung; und
Bilden einer MARKEN-Anordnung mit X*Z Markierregistern zum Speichern der Information, welche der Z Schreibtor speicheranordnungen "zuletzt geschriebene" Daten enthalten.
Erzeugen einer Netzwerklisten-Beschreibung einer Lesetor speicheranordnung mit X Speicherplätzen, die in den Speichermöglichkeiten der programmierbaren Logikeinrichtungen nachbildbar ist;
Y-faches Duplizieren der Lesetor-Speicheranordnung in der Netzwerklisten-Beschreibung, um eine Schreibtor speicheranordnung zu bilden;
Z-faches Duplizieren der Schreibtor-Speicheranordnung in der Netzwerklisten-Beschreibung; und
Bilden einer MARKEN-Anordnung mit X*Z Markierregistern zum Speichern der Information, welche der Z Schreibtor speicheranordnungen "zuletzt geschriebene" Daten enthalten.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/217,049 US5448522A (en) | 1994-03-24 | 1994-03-24 | Multi-port memory emulation using tag registers |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19510902A1 true DE19510902A1 (de) | 1995-09-28 |
Family
ID=22809481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19510902A Ceased DE19510902A1 (de) | 1994-03-24 | 1995-03-24 | Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern |
Country Status (5)
Country | Link |
---|---|
US (2) | US5448522A (de) |
JP (1) | JPH0844787A (de) |
DE (1) | DE19510902A1 (de) |
FR (1) | FR2717923B1 (de) |
GB (1) | GB2287810B (de) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5550782A (en) * | 1991-09-03 | 1996-08-27 | Altera Corporation | Programmable logic array integrated circuits |
IL109921A (en) * | 1993-06-24 | 1997-09-30 | Quickturn Design Systems | Method and apparatus for configuring memory circuits |
US5680583A (en) * | 1994-02-16 | 1997-10-21 | Arkos Design, Inc. | Method and apparatus for a trace buffer in an emulation system |
US5920712A (en) * | 1994-05-13 | 1999-07-06 | Quickturn Design Systems, Inc. | Emulation system having multiple emulator clock cycles per emulated clock cycle |
US5566123A (en) * | 1995-02-10 | 1996-10-15 | Xilinx, Inc. | Synchronous dual port ram |
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 |
US5822564A (en) * | 1996-06-03 | 1998-10-13 | Quickturn Design Systems, Inc. | Checkpointing in an emulation system |
US5841967A (en) | 1996-10-17 | 1998-11-24 | Quickturn Design Systems, Inc. | Method and apparatus for design verification using emulation and simulation |
US6389379B1 (en) | 1997-05-02 | 2002-05-14 | Axis Systems, Inc. | Converification system and method |
US6421251B1 (en) | 1997-05-02 | 2002-07-16 | Axis Systems Inc | Array board interconnect system and method |
US6134516A (en) | 1997-05-02 | 2000-10-17 | Axis Systems, Inc. | Simulation server system and method |
US6026230A (en) * | 1997-05-02 | 2000-02-15 | Axis Systems, Inc. | Memory simulation system and method |
US6321366B1 (en) | 1997-05-02 | 2001-11-20 | Axis Systems, Inc. | Timing-insensitive glitch-free logic system and method |
US6009256A (en) * | 1997-05-02 | 1999-12-28 | Axis Systems, Inc. | Simulation/emulation system and method |
US5960191A (en) | 1997-05-30 | 1999-09-28 | Quickturn Design Systems, Inc. | Emulation system with time-multiplexed interconnect |
US5970240A (en) | 1997-06-25 | 1999-10-19 | Quickturn Design Systems, Inc. | Method and apparatus for configurable memory emulation |
US6263484B1 (en) | 1997-10-01 | 2001-07-17 | Yang-Sei Yang | Prototyping system and a method of operating the same |
US6191998B1 (en) * | 1997-10-16 | 2001-02-20 | Altera Corporation | Programmable logic device memory array circuit having combinable single-port memory arrays |
US5883852A (en) * | 1998-02-23 | 1999-03-16 | Dynachip Corporation | Configurable SRAM for field programmable gate array |
US6467017B1 (en) | 1998-06-23 | 2002-10-15 | Altera Corporation | Programmable logic device having embedded dual-port random access memory configurable as single-port memory |
US6279146B1 (en) | 1999-01-06 | 2001-08-21 | Simutech Corporation | Apparatus and method for verifying a multi-component electronic design |
JP2003503791A (ja) * | 1999-06-26 | 2003-01-28 | セイ−ヤン ヤン、 | 入出力探針装置及びこれを用いた入出力探針方法と、これを基盤とする混合エミュレーション/シミュレーション方法 |
US6272451B1 (en) * | 1999-07-16 | 2001-08-07 | Atmel Corporation | Software tool to allow field programmable system level devices |
US6556579B1 (en) * | 1999-09-21 | 2003-04-29 | 3Com Corporation | Method and apparatus for detecting duplicate buffers in a descriptor based multi-port queue |
US7111110B1 (en) | 2002-12-10 | 2006-09-19 | Altera Corporation | Versatile RAM for programmable logic device |
US6813215B2 (en) * | 2002-12-23 | 2004-11-02 | Hewlett-Packard Development Company, L.P. | Memory having multiple write ports and method of operation |
US6654308B1 (en) | 2002-12-23 | 2003-11-25 | Hewlett-Packard Development Company, Lp. | Memory having multiple write ports and multiple control memory units, and method of operation |
US6754130B1 (en) | 2002-12-23 | 2004-06-22 | Hewlett-Packard Development Company, Lp. | Memory having multiple write ports and write insert unit, and method of operation |
US7924845B2 (en) * | 2003-09-30 | 2011-04-12 | Mentor Graphics Corporation | Message-based low latency circuit emulation signal transfer |
US20060089829A1 (en) * | 2004-10-21 | 2006-04-27 | International Business Machines Corporation | Method and apparatus to efficiently access modeled memory in a logic simulation hardware emulator |
US8959010B1 (en) | 2011-12-08 | 2015-02-17 | Cadence Design Systems, Inc. | Emulation system with improved reliability of interconnect and a method for programming such interconnect |
US8743735B1 (en) | 2012-01-18 | 2014-06-03 | Cadence Design Systems, Inc. | Emulation system for verifying a network device |
US8595683B1 (en) | 2012-04-12 | 2013-11-26 | Cadence Design Systems, Inc. | Generating user clocks for a prototyping environment |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0787032B2 (ja) * | 1985-07-08 | 1995-09-20 | 日本電気アイシ−マイコンシステム株式会社 | 半導体記憶装置 |
US4862347A (en) * | 1986-04-22 | 1989-08-29 | International Business Machine Corporation | System for simulating memory arrays in a logic simulation machine |
US5148397A (en) * | 1989-03-16 | 1992-09-15 | Oki Electric Industry Co. Ltd. | Semiconductor memory with externally controlled dummy comparator |
-
1994
- 1994-03-24 US US08/217,049 patent/US5448522A/en not_active Expired - Lifetime
-
1995
- 1995-03-21 GB GB9505638A patent/GB2287810B/en not_active Expired - Fee Related
- 1995-03-24 DE DE19510902A patent/DE19510902A1/de not_active Ceased
- 1995-03-24 FR FR9503507A patent/FR2717923B1/fr not_active Expired - Fee Related
- 1995-03-24 JP JP7066549A patent/JPH0844787A/ja active Pending
- 1995-09-01 US US08/522,865 patent/US5563829A/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
DE-Z: Design & Elektronik 6 vom 16.3.1993, S. 7 * |
Also Published As
Publication number | Publication date |
---|---|
GB2287810B (en) | 1998-07-29 |
GB2287810A (en) | 1995-09-27 |
GB9505638D0 (en) | 1995-05-10 |
FR2717923B1 (fr) | 1997-01-31 |
US5448522A (en) | 1995-09-05 |
US5563829A (en) | 1996-10-08 |
FR2717923A1 (fr) | 1995-09-29 |
JPH0844787A (ja) | 1996-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19510902A1 (de) | Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern | |
DE2311034C2 (de) | Verfahren zum Prüfen eines integrierte logische Verknüpfungs- und Speicherglieder enthaltenden Halbleiterchips | |
EP0010173B1 (de) | Halbleiterplättchen mit verbesserter Prüfbarkeit der monolithisch hochintegrierten Schaltungen | |
DE69810995T2 (de) | Rekonfigurierbarer Dual-Modus-Speicher in programmierbaren logischen Einrichtungen | |
DE69028386T2 (de) | Auf statischem RAM basierende Zelle für ein programmierbares logisches Feld | |
DE69019555T2 (de) | Technik für die serielle Prüfung eingebauter Speicher. | |
DE2555439C2 (de) | Monolithische hochintegrierte Halbleiterschaltung | |
DE4417575C2 (de) | Verbesserte Array-Architektur für programmierbare logische Zellen | |
DE3882266T2 (de) | Abfrageprüfgerät für digitale Systeme mit dynamischem Direktzugriffspeicher. | |
EP0513611B1 (de) | Verfahren zur Datenübertragung für einen Halbleiterspeicher und Halbleiterspeicher zur Durchführung des Verfahrens | |
DE19530100C2 (de) | Integrierte Dram-Schaltung mit Reihenkopierschaltung und Verfahren | |
DE102011053359B4 (de) | Latch-basierte Speichervorrichtung und Verfahren zum Testen derselben | |
DE2335785C3 (de) | Schaltungsanordnung zum Prüfen einer Matrixverdrahtung | |
DE69628034T2 (de) | Hochimpedanzmodus für jtag | |
DE68923086T2 (de) | Verfahren zum Testen von hierarchisch organisierten integrierten Schaltungen und integrierte Schaltungen, geeignet für einen solchen Test. | |
DE3606650A1 (de) | Hardware logik-simulator | |
DE2550342A1 (de) | Matrixanordnung von logischen schaltungen | |
DE60221313T2 (de) | Direktzugriffsspeicher | |
DE2930610A1 (de) | Verfahren zum ueberpruefen eines datenverarbeitungssystemes und datenverarbeitungssystem zur durchfuehrung des verfahrens | |
EP0046500A1 (de) | Schieberegister für Prüf- und Test-Zwecke | |
DE4011935A1 (de) | Testsignalgenerator fuer eine integrierte halbleiterspeicherschaltung und testverfahren dafuer | |
DE3886938T2 (de) | Reprogrammierbare logische Sicherung für logische Anordnungen, basierend auf einer 6-Elementen-SRAM-Zelle. | |
DE69109703T2 (de) | Sequentielle Endlichautomatenschaltung sowie integrierte Schaltung mit einer derartigen Schaltung. | |
DE4327660C2 (de) | Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung | |
DE10032256C2 (de) | Chip-ID-Register-Anordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 11/26 |
|
8131 | Rejection |