PatentDe  


Dokumentenidentifikation DE69834011T2 12.04.2007
EP-Veröffentlichungsnummer 0000898281
Titel Statische Direktzugriffspeicherschaltungen
Anmelder Altera Corp., San Jose, Calif., US
Erfinder Lee, Andy, San Jose, California 95131, US
Vertreter TER MEER STEINMEISTER & Partner GbR Patentanwälte, 33617 Bielefeld
DE-Aktenzeichen 69834011
Vertragsstaaten DE, GB, IT, NL
Sprache des Dokument EN
EP-Anmeldetag 27.07.1998
EP-Aktenzeichen 983059668
EP-Offenlegungsdatum 24.02.1999
EP date of grant 29.03.2006
Veröffentlichungstag im Patentblatt 12.04.2007
IPC-Hauptklasse G11C 7/00(2006.01)A, F, I, 20051017, B, H, EP
IPC-Nebenklasse G11C 11/419(2006.01)A, L, I, 20051017, B, H, EP   G11C 29/00(2006.01)A, L, I, 20051017, B, H, EP   

Beschreibung[de]
Hintergrund der Erfindung

Diese Erfindung bezieht sich auf statische RAM Speicherschaltungen und spezieller auf statische RAM Speicherschaltungen, die besonders für solche Zwecke geeignet sind wie die Einbeziehung auf integrierten Schaltungen mit programmierbarer Logik für die programmierbare Steuerung der Konfiguration dieser Schaltungen.

Ein Beispiel einer programmierbaren Logikschaltung 500 ist in 1 gezeigt. Die Schaltung 500 kann allgemein von der Art sein wie die programmierbaren Logikschaltungen, die in Cliff et al. US 5 689 195 gezeigt und beschrieben sind. Die Schaltung 500 umfaßt eine Vielzahl von Regionen 510 mit programmierbarer Logik, die auf der Schaltung in einem zweidimensionalen Array aus einander schneidenden Zeilen und Spalten solcher Regionen angeordnet sind. Jede Region umfaßt eine Vielzahl von Unterregionen 512 mit programmierbarer Logik. Zum Beispiel kann jede Unterregion 512 eine Nachschlagtabelle mit vier Eingängen umfassen, die programmierbar ist, um ein "kombinatorisches" Ausgangssignal zu erzeugen, bei dem es sich um irgendeine logische Kombination von vier an die Nachschlagtabelle angelegten Eingangssignalen handeln kann. Jede Unterregion 512 kann zusätzlich ein Register (z. B. ein Flip-Flop) zum selektiven Registrieren (Speichern) des kombinatorischen Ausgangssignals aufweisen, um ein registriertes Ausgangssignal zu erzeugen. Und jede Unterregion 512 kann programmierbare Logikverbinder (programmable logic connectors ("PLCs")) enthalten, um programmierbar entweder das kombinorische oder das registrierte Ausgangssignal als das letztendliche Ausgangssignal der Unterregion auszuwählen.

Jeder Zeile von Regionen 510 ist eine Vielzahl horizontaler Verbindungsleitern 520 zugeordnet, um Signale von den, an die und/oder zwischen den Regionen in der betreffenden Zeile zu übermitteln. Jeder Spalte der Regionen 510 ist eine Vielzahl von vertikalen Verbindungsleitern 530 zugeordnet, um Signale an die, von den und/oder zwischen den verschiedenen Zeilen zu übermitteln. Jeder Region 510 ist eine Vielzahl von lokalen Leitern 540 zugeordnet, um ausgewählte Signale auf den benachbarten horizontalen Leitern 520 für die betreffende Region verfügbar zu machen. PLCs 522 sind dazu vorgesehen, programmierbare Verbindungen zwischen ausgewählten, einander schneidenden Leitern 520 und 540 herzustellen. Jeder Unterregion 512 ist eine Vielzahl von Zufuhrleitern 550 für die Unterregion zugeordnet, um ausgewählte Signale auf den benachbarten Leitern 540 (und benachbarten lokalen Rückkopplungsleitern 560 (weiter unten beschrieben)) an die betreffende Unterregion anzulegen. PLCs 542 sind dazu vorgesehen, programmierbare Verbindungen zwischen den einander schneidenden Leitern 540/560 und 550 herzustellen. Das Ausgangssignal jeder Unterregion 512 kann über PLCs 562 an ausgewählte benachbarte vertikale Leiter und/oder über PLCs 564 an ausgewählte horizontale Leiter 520 angelegt werden. Das Ausgangssignal jeder Unterregion 512 wird auch als ein lokales Rückkopplungssignal (über einen Leiter 560) für alle Unterregionen in der Region 510 verfügbar gemacht, die diese Unterregion enthält. Ausgewählte, einander schneidende horizontale und vertikale Leiter sind durch PLCs 532 programmierbar miteinander verbindbar.

Ein weiteres Beispiel einer bekannten programmierbaren Logikschaltung 600 ist in 2 gezeigt. Die Schaltung 600 kann allgemein von der Art sein wie die programmierbaren Logikschaltungen, die in Freeman, US Re. 34 363 gezeigt und beschrieben sind, auf die hiermit verwiesen sind. Die Schaltung 600 enthält eine Vielzahl von konfigurierbaren Logikblöcken ("CLBs") 610, die auf der Schaltung in einem zweidimensionalen Array aus einander schneidenden Zeilen und Spalten von CLBs angeordnet sind. Jeder CLB 610 kann ein oder zwei kleine programmierbare Nachschlagtabellen und andere Schaltungskomponenten wie etwa ein Register und PLCs zum Lenken von Signalen innerhalb des CLB enthalten. Eine Vielzahl von horizontalen Verbindungsleiterbahnen 520 sind oberhalb und unterhalb jeder Zeile von CLBs 610 angeordnet. Eine Vielzahl von vertikalen Verbindungsleiterbahnen 630 sind links und rechts von jeder Spalte aus CLBs 610 angeordnet. Lokale Leiter 640 sind dazu vorgesehen, Signale von ausgewählten Leiterbahnen 620/630, die jeder Seite des CLB benachbart sind, in jedes CLB 610 einzubringen und/oder Signale des CLB an ausgewählte benachbarte Leiterbahnen 620/630 anzulegen. PLCs 622/632 sind dazu vorgesehen, programmierbare Verbindungen zwischen ausgewählten, einander schneidenden Leitern 620/630 und 640 herzustellen. PLCs 624 sind dazu vorgesehen, programmierbare Verbindungen zwischen ausgewählten Leitersegmenten in Bahnen 620 und/oder 630 herzustellen, die einander an den Orten dieser PLCs schneiden oder auf andere Weise zusammenkommen.

In programmierbaren Logikschaltungen wie den in 1 und 2 gezeigten werden üblicherweise für die programmierbare Steuerung der Konfiguration der Schaltung first-in/first-out ("FIFO") Ketten aus statischen RAM Zellen ("SRAM") auf der Schaltung benutzt. Ein Beispiel eines bekannten SRAM ist in US 5 325 325 gezeigt.

Zum Beispiel können die SRAM Zellen in solchen FIFO Ketten dazu benutzt werden, die von jeder Unterregion 512 oder jedem CLB 610 ausgeführte Logik zu steuern (z. B. durch Bildung oder Steuerung der Daten, die in den Nachschlagtabellen dieser Komponenten gespeichert sind, und durch Steuerung der Verbindungen, die von den PLCs in diesen Komponenten hergestellt werden). Die SRAM Zellen in den FIFO Ketten können auch dazu benutzt werden, die Verbindungen zu steuern, die von den verschiedenen Verbindungsleiter-PLCs (z. B. PLCs 522, 532, 542, 562, 564, 622, 624 und 632) auf der Schaltung hergestellt werden. Eine typische FIFO SRAM Kette 10 nach dem Stand der Technik wird nun anhand von 3 beschrieben werden.

In der in 3 gezeigten FIFO SRAM Kette 10 enthält jede SRAM Zelle 20 einen verhältnismäßig starken, vorwärts gerichteten Inverter 22, der in einer geschlossenen Schleife in Reihe mit einem relativ schwachen, rückwärts gerichteten Inverter 24 verbunden ist. In Abwesenheit eines Signals, das von oben durch ein NMOS Durchgangsgatter 14 durchgelassen wird, ist jeder Inverter 24 stark genug, den zugehörigen Inverter 22 in dem jeweiligen Zustand zu halten, in dem er durch das letzte Signal zurückgelassen wurde, das von dem Durchgangsgatter 14 unmittelbar darüber durchgelassen wurde. Andererseits ist jeder Inverter 24 nicht stark genug, den zugehörigen Inverter 22 daran zu hindern, auf irgendein Signal zu reagieren, das von dem Durchgangsgatter 14 unmittelbar darüber durchgelassen wurde.

Programmdaten werden über eine DATA IN Leitung 12 am Anfang der Kette an die FIFO Kette 10 angelegt. Anfangs sind sämtliche der Durchgangsgatter 14 durch Adressensignale ADDR-1 bis ADDR-N aktiviert. Dies erlaubt es dem ersten Bit der Programmdaten, den gesamten Weg in der Kette herunter zu laufen (invertiert durch jeden nachfolgenden Inverter 22, durch den es hindurchgeht), bis es die Zelle 20-N erreicht und dort gespeichert wird. Das Durchgangsgatter 14-N wird dann ausgeschaltet, indem das Signal ADDR-N auf logisch 0 geändert wird. Das nächste Bit der Programmdaten von der Leitung 12 läuft deshalb nur so weit in der Kette herunter, bis es die Zelle unmittelbar über der Zelle 20-N erreicht (nicht gezeigt aber ähnlich allen anderen Zellen 20) und dort gespeichert wird. Das NMOS Durchgangsgitter 14 über der Zelle 20-N wird dann abgeschaltet, und das nächste Bit der Programmdaten wird an die Leitung 12 angelegt. Dieser Prozeß setzt sich fort, bis alle Zellen 20 programmiert worden sind und alle Durchgangsgatter 14 ausgeschaltet worden sind. Jede Zelle 20 gibt die Daten, die sie gespeichert hält, über ihre Leitung DATA OUT aus. Diese DATA OUT Signale können dazu verwendet werden, verschiedene Aspekte des Betriebs einer programmierbaren Logikschaltung zu steuern, die die Kette 10 enthält. Zum Beispiel kann ein DATA OUT Signal von der Kette 10 einen programmierbaren Aspeckt der "Architektur" der programmierbaren Logikschaltung steuern (z. B., auf welche von etlichen verfügbaren Takt- oder Löschsignalen ein Register in einer Unterregion 512 (1) oder einem CLB 610 (2) reagiert). Oder ein DATA OUT Signal von der Kette 10 kann einen programmierbaren Aspekt der Logik steuern, die von der Schaltung ausgeführt wird (z. B. dadurch, daß es ein Dateninhalt in einer Nachschlagtabelle in einer Unterregion 512 oder einem CLB 610 ist). Als noch ein weiteres Beispiel kann ein DATA OUT Signal von der Kette 10 einen Verbindungsleiter-PLC auf der Schaltung steuern (z. B. einen PLC 522, 532, etc. (1) oder einen PLC 622, 624, etc. (2)).

Der Inhalt der Kette 10 kann verifiziert werden, indem die ADDR Signale dazu benutzt werden, die Durchgangsgatter 14 von unten nach oben fortschreitend zu aktivieren. Dies erlaubt es, die Dateninhalte in den Zellen 20 einen nach dem anderen von unten nach oben über eine VERIFY Leitung 16 auszulesen.

Aus dem Vorstehenden wird deutlich, daß, um die Kette 10 zu programmieren oder zu verifizieren, jedes NMOS Durchgangsgatter 14 in der Lage sein muß, effektiv sowohl logische 0 als auch logische 1 Signale durchzulassen. Wenn Schaltungskomponenten sehr klein gemacht werden (wie es infolge anhaltender Fortschritte in den Techniken zur Herstellung von Halbleitern möglich wird) und VCC (die Spannung, die für die logischen 1 Signale benutzt wird) entsprechend reduziert wird, mag ein NMOS Durchgangsgatter 14 nicht mehr in der Lage sein, ein logisches 1 Signal durchzulassen, das stark genug ist, den Ausgang logisch 0 des Inverters 24 unter ihm zu überschreiben, es sei denn, das Durchgangsgatter wird unerwünscht groß gemacht. Bei jedem unipolaren MOS (d, h., NMOS oder PMOS) Durchgangsgatter wird unter diesen Umständen dieses oder ein ähnliches Problem auftreten. So wird unter den oben beschriebenen Umständen, die die Effektivität eines NMOS Durchgangsgatters bei der Durchleitung von logisch 1 einschränken, ein PMOS Durchgangsgatter logisch 0 nicht sehr gut durchlassen. FIFO SRAM Ketten werden deshalb weniger zufriedenstellend für die Verwendung als die programmierbaren Elemente in Produkten wie etwa programmierbaren Logikschaltungen.

Im Hinblick auf das Vorstehende ist es eine Aufgabe dieser Erfindung, verbesserte SRAMs für den Gebrauch in programmierbaren Logikschaltungen oder in ähnlichen Zusammenhängen zu schaffen.

Eine speziellere Aufgabe dieser Erfindung ist es, SRAMs zu schaffen, die in programmierbaren Logikschaltungen verwendet werden können, die unter Einsatz von fortgeschrittenen Techniken zur Herstellung integrierter Schaltungen und deshalb mit extrem kleinen Schaltungskomponenten und/oder mit dem Ziel hergestellt werden, relativ niedrige VCC Potentiale zu verwenden.

Darstellung der Erfindung

Die Erfindung ist den beigefügten Ansprüchen definiert.

In einer Ausführungsform der Erfindung ist ein SRAM aus SRAM Zellen aufgebaut, die alle einen ersten von zwei logischen Zuständen speichern, wenn das SRAM initialisiert wird, und die während eines Programmiermodus individuell oder spezifisch adressiert werden, wenn es erwünscht ist, den Zustand einer adressierten Zelle in den zweiten der beiden logischen Zustände zu ändern. Außerdem ist die Adressenverbindung jeder Zelle so beschaffen, daß die Zelle in den zweiten logischen Zustand geändert wird, indem ein Signal logisch 0 durch ein NMOS Durchgangsgatter zu der Zelle durchgelassen wird oder indem ein Signal logisch 1 durch ein PMOS Durchgangsgatter zu der Zelle durchgelassen wird. Selbst NMOS Durchgangsgatter, die zu klein sind, logisch 1 Signale zuverlässig durchzulassen, lassen logisch 0 Signale völlig zufriedenstellend durch. In ähnlicher Weise lassen selbst PMOS Durchgangsgatter, die zu klein sind, logisch 0 Signale zuverlässig durchzulassen, logisch 1 Signale zufriedenstellend durch.

Die Dateneingangsklemme jeder SRAM Zelle kann auch dazu benutzt werden, den Inhalt der Zelle nach der Programmierung zu verifizieren. Um den Inhalt einer Zelle zu verifizieren, wird eine Leitung, die während der Programmierung zur Zufuhr von Daten zu den Zellen benutzt wird, in den zweiten logischen Zustand geladen und dann schwach auf diesem Potential gehalten. Die zu verifizierende Zelle wird dann so adressiert, daß die Dateneingangsklemme der Zelle mit der oben erwähnten Dateneingangsleitung verbunden wird. Wenn die Zelle den ersten logischen Zustand hat, wird die Zelle nicht versuchen, die Dateneingangsleitung zu entladen, die deshalb auf dem zweiten logischen Potential bleiben wird. Wenn sich andererseits die Zelle auf dem zweiten logischen Potential befindet, wird die Zelle die Dateneingangsleitung nach und nach auf das erste logische Potential entladen (obgleich die Zelle selbst nicht aus dem zweiten logischen Zustand in den ersten logischen Zustand übergeht). So kann das Potential auf der Dateneingangsleitung nach den vorstehenden Operationen dazu benutzt werden, den Inhalt der getesteten SRAM Zelle zu verifizieren.

Weitere Merkmale der Erfindung, ihre Natur und verschiedene Vorteile werden verdeutlicht durch die beigefügten Zeichnungen und die nachstehende detaillierte Beschreibung der bevorzugten Ausführungsformen.

Kurzbeschreibung der Zeichnungen

1 ist ein vereinfachtes schematisches Blockdiagramm eines repräsentativen Teils eines Beispiels einer herkömmlichen programmierbaren Logikschaltung, bei der diese Erfindung eingesetzt werden kann.

2 ähnelt 1, jedoch für ein anderes Beispiel einer herkömmlichen programmierbaren Logikschaltung, bei der die Erfindung eingesetzt werden kann.

3 ist ein vereinfachtes schematisches Diagramm einer herkömmlichen FIFO SRAM Kette.

4 ist ein vereinfachtes schematisches Blockdiagramm repräsentativer Teile eines Beispiels für eine Ausführungsform eines SRAM, das in Übereinstimmung mit dieser Erfindung aufgebaut ist.

5 ist ein detaillierteres schematisches Diagramm einer beispielhaften Ausführungsform eines repräsentativen Teils der in 4 gezeigten Schaltung.

6 ist ein Diagramm ähnlich 4 und zeigt eine alternative beispielhafte Ausführungsform eines SRAM, das in Übereinstimmung mit der Erfindung aufgebaut ist.

7 ist ein vereinfachtes Blockdiagramm eines Beispiels für eine Ausführungsform eines Systems, das eine programmierbare Logikschaltung enthält, die, stets in Übereinstimmung mit der Erfindung, durch ein SRAM gemäß dieser Erfindung konfiguriert wird.

Detaillierte Beschreibung von bevorzugten Ausführungsformen

Ein repräsentativer Teil einer beispielhaften Ausführungsform einer SRAM Schaltung 110 in Übereinstimmung mit dieser Erfindung ist in 4 gezeigt. Die SRAM Schaltung 110 enthält irgendeine gewünschte Anzahl von SRAM Zellen 120, von denen jede über ein jeweiliges NMOS Durchgangsgatter 114 selektiv mit einer gemeinsamen DATA IN Leitung 112 verbindbar ist. Jede SRAM Zelle 120 enthält einen relativ starken Inverter 122, der in einer geschlossenen Schleife in Reihe mit einem relativ schwachen Inverter 124 verbunden ist. Ein detaillierteres Schaltungsdiagramm einer repräsentativen SRAM Zelle 120 ist in 5 gezeigt und wird in dieser Beschreibung später erläutert. Die Ausgangsklemme des starken Inverters 122 jeder SRAM Zelle ist die DATA OUT Leitung dieser Zelle. Unter der Annahme, daß die SRAM Schaltung 110 in einer programmierbaren Logikschaltung enthalten ist, können die DATA OUT Signale dieser Schaltung auf irgendeiner der Weisen benutzt werden, in der die DATA OUT Signale in 3 dazu benutzt werden können, verschiedene Aspekte der Konnektivität und Arbeitsweise (zusammenfassend der "Konfiguration") der programmierbaren Logik programmierbar zu steuern (z. B. wie oben im Zusammenhang mit 1 bis 3 für die illustrativen Organisationen der in 1 und 2 gezeigten programmierenden Logikschaltungen beschrieben wurde). Die DATA OUT Klemme jeder SRAM Zelle ist über ein zugehöriges NMOS Durchgangsgatter 126 auch selektiv mit VSS (logisch 0 (Masse)) verbindbar. Sämtliche Gatter 126 werden parallel durch ein logisch 1 Signal aktiviert, das an die Leitung CLEAR angelegt wird. Eine VCC Ladeschaltung 130, eine schwache Pull-Up Schaltung 140 und eine Pegeldetektionsschaltung 250 werden nur während des Betriebs der Schaltung beim Verifizieren des Inhalts der SRAM Zellen 120 benutzt. Diese Schaltungskomponenten sind deshalb zunächst inaktiv und haben keine Auswirkung auf die Schaltung.

Um die Speicherschaltung 110 zu programmieren, werden alle Durchgangsgatter 114 durch Adressensignale ADDR-1, ADDR-2 etc. mit den logischen Werten 0 inaktiviert. Alle Zellen 120 werden dann gelöscht, indem das Signal CLEAR auf logisch 1 gesetzt wird. Dies aktiviert alle Durchgangsgatter 126, wodurch in jeder Zelle 120 logisch 0 an die Eingangsklemme des Inverters 124 angelegt wird. Das resultierende Ausgangssignal logisch 1 jedes Inverters 124 bewirkt, daß das Ausgangssignal des zugehörigen Inverters 122 logisch 0 wird, wodurch das DATA OUT Signal jeder Zelle 120 auf logisch 0 gehalten wird, auch nachdem das Signal CLAER auf logisch 0 zurückgekehrt ist.

Nachdem alle Zellen 120 in der oben beschriebenen Weise in den Zustand logisch 0 gelöscht worden sind, werden die Elemente 112 und 114 dazu benutzt, logisch 1 nur in jene Zellen zu schreiben, die auf logisch 1 programmiert werden müssen. An die DATA IN Leitung 112 wird logisch 0 angelegt. Dann wird logisch 1 (nacheinander oder gleichzeitig, je nach Wahl) an die ADDR Leitungen der Durchgangsgatter 114 nur derjenigen Zellen 120 angelegt, die von logisch 0 auf logisch 1 geschaltet werden müssen. Wenn das Durchgangsgatter 114 einer Zelle in dieser Weise aktiviert wird, bewirkt dies, daß das Signal logisch 0 auf der DATA IN Leitung 112 an die Eingangsklemme des Inverters 122 dieser Zelle angelegt wird. Dies führt dazu, daß die Ausgangsklemme dieses Inverters (und damit das DATA OUT Signal dieser Zelle) auf logisch 1 geschaltet wird. Der zugehörige Inverter 124 arbeitet so, daß er den Inverter 122 in dem Ausgangszustand logisch 1 hält, selbst nachdem das zugehörige ADDR Signal auf logisch 0 zurückgeschaltet ist, wodurch die Speicherzelle von der DATA IN Leitung 112 getrennt wird. Dies schließt den Prozeß der Programmierung der Zellen 120 ab.

In der tatsächlichen Praxis, in der die in 4 gezeigte Schaltung mehrfach wiederholt wird, jedoch mit gemeinsamen ADDR Signalen für all diese Wiederholungen, kann es notwendig sein, wenn eine bestimmte Adressenleitung in der oben beschriebenen Weise aktiviert wird, logisch 1 an die DATA IN Leitungen 112 etwaiger Wiederholungen anzulegen, in denen die adressierten SRAM Zellen 120 nicht auf logisch 1 programmiert werden sollen. Dies wird ein unbeabsichtigtes Umschalten von logisch 0 auf logisch 1 für die SRAM Zellen 120 verhindern, die nicht umgeschaltet werden sollen. Strukturen, die Wiederholungen der Schaltung nach 4 enthalten, werden weiter unten näher erörtert werden.

Aus dem Vorstehenden ist ersichtlich, daß alle Zellen 120 anfangs auf logisch 0 gelöscht werden. Dann werden nur diejenigen Zellen, die auf logisch 1 programmiert werden müssen, adressiert und mit logisch 1 überschrieben. Um dieses Überschreiben zu bewerkstelligen, brauchen die NMOS Durchgangsgatter der zu überschreibenden Zellen nur auf logisch 0 überzugehen, was sie sehr gut können, selbst wenn sie nur sehr klein sind. Die Schaltung arbeitet auch sehr gut mit relativ niedriger Spannung oder niedrigem Potential VCC (logisch 1 (Betriebsspannung)), da die Durchgangsgatter 114 nicht auf logisch 1 überzugehen brauchen, um die Zellen 120 zu programmieren.

Nachdem die Zellen 120 in der oben beschriebenen Weise programmiert worden sind, läßt sich der Inhalt verifizieren, wie nun beschrieben werden wird. Die DATA IN Leitung 112 wird zunächst von anderen Signalquellen wie etwa der Datensignalquelle getrennt. Die VCC Ladeschaltung 130 wird dann über ihre Steuerleitung 132 eingeschaltet, um die Leitung 112 auf logisch 1 zu laden. Die Schaltung 130 wird dann abgeschaltet, und die schwache Pull-Up Schaltung 140 wird über ihre Steuerleitung 142 eingeschaltet, um ein schwaches Pull-Up Signal (logisch 1) an die Leitung 112 anzulegen. Dann wird ein Signal logisch 1 an die ADDR Leitung der Speicherzelle 120 angelegt, deren Inhalt verifiziert werden soll. Dies schaltet das zugehörige NMOS Durchgangsgatter 114 ein. Wenn die verifizierte Zelle logisch 0 enthält, wird das Ausgangssignal des Inverters 124 dieser Zelle logisch 1 sein, und die Spannung auf der Leitung 112 wird keine Tendenz haben, von logisch 1 abzufallen. Wenn andererseits die verifizierte Zelle 120 logisch 1 enthält, wird das Ausgangssignal des Inverters 124 dieser Zelle logisch 0 sein und bewirken, daß die Spannung auf der Leitung 112 allmählich von logisch 1 in Richtung logisch 0 abfällt. (Unter diesen Umständen ist das Signal logisch 1 von der Leitung 112 nicht stark genug, den Zustand der verifizierten Zelle 120 zu verändern). Wenn der Transistor 114 der verifizierten Zelle eingeschaltet worden ist, wird ein geeignetes Zeitintervall später die Pegeldetektionsschaltung 150 über ihre Steuerleitung 152 eingeschaltet. Wenn die Spannung auf der Leitung 112 noch logisch 1 ist, liefert die Schaltung 150 ein Ausgangssignal VERIFY, das anzeigt, daß die verifizierte Zelle logisch 0 enthält. Wenn dagegen die Spannung auf der Leitung 112 auf logisch 0 (oder hinreichend weit in Richtung logisch 0) abgefallen ist, liefert die Schaltung 150 ein Ausgangssignal VERIFY, das anzeigt, daß die verifizierte Zelle logisch 1 enthält.

Die vorstehenden Verifizierungsschritte werden für jede Zelle 120 entlang der zu verifizierenden Leitung 112 wiederholt.

Es ist festzustellen, daß der oben beschriebene Verifikationsprozeß die in den Zellen 120 gespeicherten Daten nicht zerstört.

Eine programmierbare Logikschaltung wird typischerweise mehrere Wiederholungen der Schaltung nach 4 enthalten (d. h., mehrere parallele DATA IN Leitungen 112 und zugehörige Schaltungen). Die Signale ADDR-1, ADDR-2 etc. werden von all diesen parallelen SRAM Strängen geteilt. Insbesondere wird eine SRAM Zelle 120-1 in jedem Strang durch ein gemeinsames Signal ADDR-1 gesteuert, eine andere SRAM Zelle 120-2 in jedem Strang wird durch ein gemeinsames ADDR-2 Signal gesteuert usw. Wenn es erwünscht ist, die SRAM Zellen zu programmieren, die durch irgendein bestimmtes Adressensignal gesteuert werden, kann es somit (wie bereits erwähnt wurde) notwendig sein, logisch 1 an einige DATA IN Leitungen 112 anzulegen, um zu verhindern, daß die zugehörigen SRAM Zellen unbeabsichtigt aus ihrem anfänglichen Ausgangszustand logisch 0 umgeschaltet werden.

Eine illustrative Ausführungsform einer repräsentativen SRAM Zelle 120 ist in 5 detaillierter gezeigt. Der relativ starke Inverter 122 ist aufgebaut aus einem P-Kanal Transistor 122a und einem N-Kanal Transistor 122b. Der relativ schwache Inverter 124 ist aufgebaut aus einem P-Kanal Transistor 124a und einem N-Kanal Transistor 124b. Damit das Lösch-Durchgangsgatter 126 die Zelle 120 auf logisch 0 zurücksetzen kann, wie oben beschrieben wurde, sollte die Leitfähigkeit des Transistors 126 größer sein als die Leitfähigkeit des Transistors 122a. Damit ein Datensignal logisch 0 auf der Leitung 112 die Zelle 120 veranlaßt, von einem zurückgesetzten Daten-Ausgangssignal logisch 0 auf ein Daten-Ausgangssignal logisch 1 umzuschalten, wie oben beschrieben wurde, sollte die Leitfähigkeit des Transistors 114 größer sein als die Leitfähigkeit des Transistors 124a. Um die Leitung 112 zum Verifizieren des Inhalts der Zelle 120 zu benutzen, wie oben beschrieben wurde, sollte die Leitfähigkeit des Transistors 124b größer sein als die Leitfähigkeit des Transistors 114. Diese Beziehung zwischen den Leitfähigkeiten läßt sich erfüllen, indem den Transistoren 124b und 114 die gleiche Größe gegeben wird, weil niedriger Vgs und Körpereffekte die Leitfähigkeit des Transistors 114 verringern, wenn die Spannung an der Dateneingangsklemme 115 der Zelle 120 zu steigen beginnt.

6 zeigt eine alternative Ausführungsform der Schaltung nach 4, bei der die Elemente 114 und 126 von NMOS Durchgangsgattern in PMOS Durchdurchgangsgatter 214 und 226 umgewandelt sind. Es sind auch andere angemessene Modifikation vorgenommen, doch sind für insgesamt ähnliche Elemente in 4 und 6 die Bezugsziffern in 6 um 100 erhöht.

Um die Schaltung 210 nach 6 zu programmieren, werden alle SRAM Zellen 120 auf logisch 1 voreingestellt. Dies geschieht durch Anlegen von logisch 0 an die Balkenleitung CLEAR. Um die SRAM Zellen 220 umzuschalten, die auf logisch 0 geschaltet werden sollen, wird danach logisch 1 an die DATA IN Balkenleitung 212 angelegt, und logisch 0 wird an die ADDR Balkenleitung für jede SRAM Zelle angelegt, die umgeschaltet werden soll. Dies schaltet die PMOS Durchgangsgatter 214 ein, die dieses ADDR Balkensignal empfangen, wodurch ermöglicht wird, daß das Durchgangsgatter 214 logisch 1 von der Leitung 212 durchläßt. Dies schaltet wiederum DATA OUT der zugehörigen SRAM Zelle 220 auf logisch 0. Unter der Annahme, daß die SRAM Schaltung 210 in einer programmierbaren Logikschaltung enthalten ist, können die DATA OUT Signale dieser Schaltung wieder in jeder Weise verwendet werden, in der die DATA OUT Signale in 3 und 4 dazu verwendet werden können, die Konfiguration der zugehörigen programmierbaren Logikschaltung zu steuern.

Die Verifikation des Inhalts der SRAM Zellen 220 ist ähnlich der Verifikation des Inhalts der SRAM Zellen 120, mit der Ausnahme, daß die Polarität umgekehrt ist. So wird die DATA IN Datenleitung 212 zunächst durch eine VSS Ladeschaltung 230 auf logisch 0 geladen. Dann wird eine schwache Pull-Down Schaltung 240 in Betrieb gesetzt, um die Leitung 212 schwach auf logisch 0 zu halten. Als nächstes wird logisch 0 an die ADDR Balkenleitung des Durchgangsgatters 214 angelegt, das zu der SRAM Zelle gehört, deren Inhalt verifiziert werden soll. Wenn diese SRAM Zelle logisch 1 ausgibt, wird der Inverter 224 in dieser Zelle logisch 0 ausgeben, und dies wird keine Auswirkung auf das logisch 0 Potential der Leitung 212 infolge der Aktivierung des Durchgangsgatters 214 zwischen diesen Elementen haben. Die Pegeldetektionsschaltung 250 wird deshalb keine Änderung im Potential der Leitung 221 detektieren, und die Schaltung 250 wird folglich ein Ausgangssignal VERIFY erzeugen, das angibt, das die verifizierte SRAM Zelle 220 logisch 1 speichert. Wenn andererseits die verifizierte SRAM Zelle 220 logisch 0 ausgibt, wird der Inverter 224 in dieser SRAM Zelle logisch 1 ausgeben. Dies wird bewirken, daß das Potential auf der Leitung 212 ansteigt, wenn das zu dieser SRAM Zelle gehörende Durchgangsgatter 214 eingeschaltet wird. Diese Änderung des Potentials auf der Leitung 212 wird von der Pegeldetektionsschaltung 250 detektiert, die daraufhin ein Ausgangssignal VERIFY erzeugt, das angibt, daß die verifizierte SRAM Zelle logisch 0 speichert.

7 illustriert eine programmierbare Logikschaltung 402 (die ein oder mehrere SRAMs 110 oder 210 in Übereinstimmung mit dieser Erfindung zur programmierbaren Steuerung der Konfiguration der programmierbaren Logikschaltung enthält) in einem Datenverarbeitungssystem 400. Die Schaltungskomponenten der Schaltung 402, die durch das oder die SRAM(s) 110 oder 210 gesteuert werden, können so organisiert sein, wie in 1 oder 2 gezeigt ist, oder in irgendeiner anderen gewünschten Weise. Zusätzlich zu der Schaltung 402 kann das Datenverarbeitungssystem 400 ein oder mehrere der folgenden Komponenten enthalten: einen Prozessor 404, einen Speicher 406, eine I/O-Schaltung 408 und periphere Einrichtungen 410. Diese Komponenten sind durch einen Systembus 420 verbunden und auf einer Schaltungsplatine 430 angeordnet, die in einem Endanwendersystem 440 enthalten ist.

Das System 400 kann für eine große Bandbreite von Anwendungen benutzt werden, etwa Computervernetzung, Datenvernetzung, Instrumentierung, Videoverarbeitung, digitale Signalverarbeitung oder irgend eine andere Anwendung, in der der Vorteil der Verwendung von umprogrammierbarer Logik erwünscht ist. Die programmierbare Logikschaltung 402 kann dazu benutzt werden, eine Vielzahl unterschiedlicher logischer Funktionen auszuführen. Zum Beispiel kann die programmierbare Logikschaltung 402 als ein Prozessor oder Controller konfiguriert sein, der mit dem Prozessor 404 zusammenarbeitet. Die programmierbare Logikschaltung 402 kann auch als ein Verwalter zur Verwaltung des Zugangs zu einer geteilten Ressource im System 400 eingesetzt werden. In noch einem anderen Beispiel kann die programmierbare Logikschaltung 402 als eine Schnittstelle zwischen dem Prozessor 404 und einer der anderen Komponenten in dem System 400 konfiguriert sein. Es ist zu bemerken, daß das System 400 lediglich als Beispiel dient und daß die eigentliche Tragweite der Erfindung durch die nachstehenden Ansprüche angegeben wird.


Anspruch[de]
Ein programmierbares Logikarray mit:

mehreren konfigurierbaren Logikelementen;

mehreren konfigurierbaren Verbindungen;

mehreren Speicherzellen (120, 220), die den mehreren konfigurierbaren Logikelementen und den konfigurierbaren Verbindungen zugeordnet sind,

welches programmierbare Logikarray aufweist:

ausgewählte der mehreren Speicherzellen sind aus einem ersten logischen Zustand in einen zweiten logischen Zustand programmierbar, um die mehreren konfigurierbaren Logikelemente und konfigurierbaren Verbindungen dazu zu konfigurieren, eine logische Funkion auszuführen;

das programmierbare Logikarray umfaßt weiterhin:

eine Resetschaltung, die dazu konfiguriert ist, die mehreren Speicherzellen vor der Programmierung des Logikarrays in einen ersten logischen Zustand zurückzusetzen, dadurch gekennzeichnet, daß es weiterhin aufweist;

eine Programmierschaltung (112, 114, 212, 214), die mit den mehreren Speicherzellen verbunden ist, um nur die ausgewählten unter den mehreren Speicherzellen in den zweiten logischen Zustand zu setzen, nachdem die Speicherzellen in den ersten logischen Zustand zurückgesetzt worden sind.
Das programmierbare Logikarray nach Anspruch 1, bei dem die mehreren Speicherzellen SRAM Zellen sind. Das programmierbare Logikarray nach Anspruch, bei dem jede der SRAM-Zellen weiterhin aufweist:

eine Dateneingangsklemme (112, 212);

eine Datenausgangsklemme (DATA OUT); und

einen ersten Inverter (122, 222) und einen zweiten Inverter (124, 224), die in einer kreuzgekoppelten Anordnung zwischen die Dateneingangsklemmen (112, 212) und Datenausgangsklemmen (DATA OUT) geschaltet sind.
Das programmierbare Logikarray nach Anspruch 3, bei dem der erste Inverter (122, 222) gegenüber dem zweiten Inverter (124, 224) eine größere Konduktanz hat. Das programmierbare Logikarray nach Anspruch 3, bei dem die Dateneingangsklemme (112, 212) mit dem Eingang des ersten Inverters (122, 222) verbunden ist. Das programmierbare Logikarray nach Anspruch 3, bei dem die Datenausgangsklemme (DATA OUT) mit dem Ausgang des ersten Inverters (122, 222) verbunden ist. Das programmierbare Logikarray nach Anspruch 1, bei dem die Resetschaltung weiterhin mehrere Reset Elemente aufweist, die jeweils mit einer Ausgangsklemme (DATA OUT) jeder der mehreren Speicherzellen (120, 220) verbunden sind. Das programmierbare Logikarray nach Anspruch 7, bei dem die Resete Elemente Pass-Transistoren (126, 226) sind. Das programmierbare Logikarray nach Anspruch 8, bei dem die Pass-Transistoren (126, 226) die Ausgangsklemmen (DATA OUT) der Speicherzellen (120, 220) auf ein erstes Potential ziehen, um die Speicherzellen (120, 220) vor der Programmierung auf den ersten logischen Zustand zu setzen. Das programmierbare Logikarray nach Anspruch 9, bei dem die Pass-Transistoren (126, 226) die Ausgangsklemmen (DATA OUT) der Speicherzellen (120, 220) als Reaktion auf ein von der Resetschaltung erzeugtes Löschsignal (CLEAR) hin auf das erste Potential ziehen. Das programmierbare Logikarray nach Anspruch 8, bei dem die Pass-Transistoren N-Kanal-Transistoren (126) sind. Das programmierbare Logikarray nach Anspruch 8, bei dem die Pass-Transistoren P-Kanal-Transistoren (226) sind. Das programmierbare Logikarray nach Anspruch 1, bei dem die Programmierschaltung weiterhin mehrere Setz-Elemente aufweist, die jeweils mit einer Eingangsklemme jeder der mehreren Speicherzellen verbunden sind. Das programmierbare Logikarray nach Anspruch 13, bei dem die Programmierschaltung weiterhin einen Programmiersignalgenerator (130) aufweist, der dazu konfiguriert ist, ein Programmiersignal zu erzeugen, das ein zweites Potential hat. Das programmierbare Logikarray nach Anspruch 14, bei dem die Programmierschaltung weiterhin einen Adressensignalgenerator aufweist, der dazu konfiguriert ist, Adressensignale (ADDR) zu erzeugen, um die ausgewählten unter den mehreren Speicherzellen (120, 220) zu adressieren, wobei das Programmiersignal in die selektiv adressierten Speicherzellen geschrieben wird, um diese Speicherzellen in den zweiten Zustand zu setzen. Das programmierbare Logikarray nach Anspruch 13, bei dem die Setz-Elemente Pass-Transistoren (114, 214) sind. Das programmierbare Logikarray nach Anspruch 16, bei dem die Pass-Transistoren N-Kanal-Transistoren (114) sind. Das programmierbare Logikarray nach Anspruch 16, bei dem die Pass-Transistoren P-Kanal-Transistoren (214) sind. Ein digitales Verarbeitungssystem (400) mit:

einer Verarbeitungsschaltung (404);

einer Speicherschaltung (406), die mit der Verarbeitungsschaltung (404) verbunden ist; und

einem programmierbaren Logikarray nach einem der Ansprüche 1 bis 18, das mit der Verarbeitungsschaltung (404) und der Speicherschaltung (406) verbunden ist.
Eine gedruckte Schaltungsplatine, auf der ein programmierbares Logikarray nach einem der Ansprüche 1 bis 18 montiert ist. Die gedruckte Schaltungsplatine nach Anspruch 20, mit:

einer Speicherschaltung, die auf der gedruckten Schaltungsplatine montiert und mit dem programmierbaren Logikarray verbunden ist.
Die gedruckte Schaltungsplatine nach Anspruch 20, mit:

einer Verarbeitungsschaltung, die auf der gedruckten Schaltungsplatine montiert und mit dem programmierbaren Logikarray verbunden ist.
Eine SRAM Schaltung (110, 210) mit:

mehreren SRAM Zellen (120, 220), die jeweils eine Dateneingangsklemme (112, 212) und eine Datenausgangsklemme (DATA OUT) haben; wobei die SRAM Schaltung aufweist: eine Lösch-Klemme (CLEAR), wobei die Dateneingangsklemme (112, 212) jeder Zelle mit dieser Zelle verbunden ist, um die Zelle zu veranlassen, ein logisches Signal, das einen ersten von zwei logischen Zuständen aufweist, zu speichern und über ihre Datenausgangsklemme auszugeben, als Reaktion auf ein logisches Signal, das einen zweiten der beiden logischen Zustände aufweist und an die Dateneingangsklemme (112, 212) angelegt wird, und die Lösch-Klemme (CLEAR) jeder Zelle (120, 220) mit dieser Zelle (120, 220) verbunden ist, um die Zelle (120, 220) zu veranlassen, als Reaktion auf ein logisches Signal, das den zweiten der logischen Zustände aufweist und an die Lösch-Klemme (CLEAR) angelegt wird, ein logisches Signal, das den zweiten der beiden logischen Zustände aufweist, zu Speichern und über ihre Datenausgangsklemme (DATA OUT) auszugeben;

einer Datensignalleitung;

einer logischen Signalquelle, die den zweiten der beiden logischen Zustände hat;

einem Lösch-Durchgangsgatter (126, 226), das jeder der Zellen (120, 220) zugeordnet und dazu konfiguriert ist, die logische Signalquelle mit der Lösch-Klemme (CLEAR) der zugehörigen Zelle (120, 220) zu verbinden, wenn das Lösch-Durchgangsgatter aktiviert ist;

einer Lösch-Signalleitung, die dazu konfiguriert ist, selektiv die Lösch-Durchgangsgatter all der Zellen parallel zu aktivieren;

und die SRAM Schaltung dadurch gekennzeichnet, daß die SRAM Schaltung weiterhin aufweist:

ein separat adressierbares Datendurchgangsgatter (114, 214), das jeder der Zellen (120, 220) zugeordnet und dazu konfiguriert ist, die Datensignalleitung mit der Dateneingangsklemme (112, 212) der zugehörigen Zelle (120, 220) zu verbinden, wenn sie adressiert ist und dazu aktiviert ist, den in der Speicherzelle gespeicherten Wert nur mit dem ersten logischen Zustand zu überschreiben.
Die Schaltung nach Anspruch 23, bei der jedes der Datendurchgangsgatter (114, 214) einen unipolaren MOS Pass-Transistor aufweist. Die Schaltung nach Anspruch 23, bei der jedes der Datendurchgangsgatter (114, 214) im wesentlichen aus einem unipolaren MOS Pass-Transistor besteht. Die Schaltung nach Anspruch 23, bei der jedes der Lösch-Durchgangsgatter (126, 226) einen unipolaren MOS Pass-Transistor aufweist. Die Schaltung nach Anspruch 23, bei der jedes der Lösch-Durchgangsgatter (126, 226) im wesentlichen aus einem unipolaren MOS Pass-Transistor besteht. Die Schaltung nach Anspruch 23, bei der jede der Zellen aufweist:

eine relativ starke Inverterschaltung (122, 222) mit einer ersten Eingangsklemme und einer ersten Ausgangsklemme; und

eine relativ schwache Inverterschaltung (124, 224) mit einer zweiten Eingangsklemme und einer zweiten Ausgangsklemme, wobei die zweite Eingangsklemme mit der ersten Ausgangsklemme und die erste Eingangsklemme mit der zweiten Ausgangsklemme verbunden ist.
Die Schaltung nach Anspruch 28, bei der die Dateneingangsklemme jeder Zelle mit der ersten Eingangsklemme (112, 212) der Zelle verbunden ist und bei der die Datenausgangsklemmen (DATA OUT) und Lösch-Klemmen (CLEAR) jeder Zelle mit der ersten Ausgangsklemme der Zelle verbunden sind. Eine programmierbare Logikeinrichtung (402) mit einer SRAM Schaltung (110, 210) nach einem der Ansprüche 23 bis 29 zur Steuerung der Konfiguration der programmierbaren Logikeinrichtung (402). Ein digitales Verarbeitungssystem (400) mit:

einer Verarbeitungsschaltung (404);

einer Speicherschaltung (406), die mit der Verarbeitungsschaltung (404) verbunden ist; und

einer Einrichtung (402) nach Anspruch 30, die mit der Verarbeitungsschaltung (404) und der Speicherschaltung (406) verbunden ist.
Eine gedruckte Schaltungsplatine, auf der eine Einrichtung nach Anspruch 30 montiert ist. Die gedruckte Schaltungsplatine nach Anspruch 32, weiter mit:

einer Speicherschaltung, die auf der gedruckten Schaltungsplatine montiert und mit der genannten Einrichtung verbunden ist.
Die gedruckte Schaltungsplatine nach Anspruch 32, weiter mit:

einer Verarbeitungsschaltung, die auf der gedruckten Schaltungsplatine montiert und mit der genannten Einrichtung verbunden ist.
Ein Verfahren zum Betrieb einer SRAM Schaltung (110, 210), die mehrere SRAM Zellen (120, 220) aufweist, von denen jede eine Dateneingangsklemme (112, 122) und eine Datenausgangsklemme (DATA OUT) aufweist; wobei die SRAM Schaltung dadurch gekennzeichnet ist, daß die SRAM Schaltung weiterhin aufweist: eine Lösch-Klemme (CLEAR), eine Datensignalleitung, ein separat adressierbares Datendurchgangsgatter (114, 214), das jeder der Zellen (120, 220) zugeordnet und dazu konfiguriert ist, die Datensignalleitung mit der Dateneingangsklemme (112, 212) der zugehörigen Zelle (120, 220) zu verbinden, wenn es adressiert wird, einer Lösch-Potentialquelle, und einem Lösch-Durchgangsgatter (126, 226), das jeder der Zellen (120, 220) zugeordnet und dazu konfiguriert ist, die Lösch-Klemme der zugehörigen Zelle mit der Lösch-Potentialquelle zu verbinden, wenn es aktiviert ist, welches Verfahren umfaßt:

gleichzeitige Aktivierung all der Lösch-Durchgangsgatter (126, 226), um all die Zellen in einen ersten von zwei logischen Zuständen zu löschen;

Anlegen eines Datensignals an die Datensignalleitung, was eine jegliche Zelle, deren Dateneingangsklemme das Datensignal empfängt, dazu veranlaßt, in einen zweiten der beiden logischen Zustände überzugehen; und

Adressieren der Datendurchgangsgatter (114, 214), die zu Zellen gehören, von denen es erwünscht ist, daß sie in den zweiten der beiden logischen Zustände übergehen, nachdem die Speicherzellen in den ersten logischen Zustand zurückgesetzt worden sind.
Das Verfahren nach Anspruch 35, bei dem das Lösch-Potential logisch 0 ist, und bei dem jede Zelle, die gelöscht wird, logisch 0 an ihre Datenausgangsklemme anlegt. das Verfahren nach Anspruch 36, bei dem jede Zelle (120, 220) auf das Anlegen von logisch 0 an ihre Dateneingangsklemme (112, 212) reagiert, indem sie logisch 1 an ihre Datenausgangsklemme (DATA OUT) anlegt, und bei dem das Anlegen eines Datensignals an die Datensignalleitung umfaßt:

Anlegen eines logischen 0-Signals an die Datensignalleitung.
Das Verfahren nach einem der Ansprüche 35 bis 37, bei dem das Lösch-Potential logisch 1 ist, und bei dem jede Zelle, die gelöscht wird, logisch 1 an ihre Datenausgangsklemme anlegt. Das Verfahren nach Anspruch 37 oder 38, bei dem jede Zelle (120, 220) auf das Anlegen von logisch 1 an ihre Dateneingangsklemme (112, 212) reagiert, indem sie logisch 0 an ihre Datenausgangsklemme (DATA OUT) anlegt, und bei dem das Anlegen des Datensignals an die Datensignalleitung umfaßt:

Anlegen eines logischen 1-Signals an die Datensignalleitung.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com