-
Die
folgende Erfindung betrifft eine Schaltungsanordnung zum Zuführen von
Konfigurationsdaten in FPGA-Einrichtungen. Insbesondere ermöglicht die
erfindungsgemäße Schaltungsanordnung den
Betrieb von in konfigurierbaren Logikzellen einer FPGA-Einrichtung vorgesehenen
Ausgangs-Flip-Flops zum Transport solcher Konfigurationsdaten bei
FPGA-Einrichtungen mit Konfigurationsspeichern aus Feldern von nichtflüchtigen
Speicherzellen.
-
FPGAs
(Field Programmable Gate Arrays) sind integrierte elektronische
Schaltungen, die vollständig
durch den Anwender („im
Feld") programmierbar
sind und gemäß ihrer
Programmierung bzw. ihrer Konfiguration eine Vielzahl der vom Anwender gewünschten
logischen Funktionen durchführen. Dazu
sind in der Regel in einem FPGA konfigurierbare logische Blöcke und
konfigurierbare Verdrahtungsresourcen vorgesehen, wobei die elektrischen
Verschaltungen dieser untereinander durch eine Vielzahl von durch
Konfigurationsbits setzbare Schalter festgelegt werden. Die logischen
Funktionen der konfigurierbaren logischen Blöcke, welche wiederum aus konfigurierbaren
Logikzellen aufgebaut sind, werden ebenfalls durch Konfigurationsbits
festgelegt. Die Konfiguration oder Programmierung eines FPGAs erfolgt
somit durch Einschreiben und (flüchtiges)
Abspeichern von entsprechenden Konfigurationsdaten in in den logischen
Blöcken
vorgehaltenen Speichern. So wird insgesamt einen komplexen logischen Baustein
gebildet.
-
Mehrere
Logikzellen und ihre zugehörigen Verdrahtungsresourcen,
also vorgefertigte elektrische durch die Konfigurationsbits definierbare
Verbindungselemente, werden als ein konfigurierbarer Logikblock
oder als eine Logikkachel zusammengefasst. Eine entsprechende Logikkachel
weist auch einen loka len Konfigurationsspeicher auf, in dem die benötigten Konfigurationsbits
abgelegt sind. Im Folgenden wird vereinfacht von einzelnen Logikzellen mit
Konfigurationsschieberegistern als lokale Konfigurationsspeicher
gesprochen.
-
Bevor
ein FPGA in Betrieb geht müssen
alle Konfigurationsbits von Außen
in die lokalen Konfigurationsspeicher geschrieben werden. Dies muss
bei jeder erneuten Inbetriebnahme nach Abschalten der Spannungsversorgung
geschehen. Es ist jedoch häufig
gewünscht,
die Konfigurationsdaten in einem in dem entsprechenden FPGA-Chip
integrierten Speicher nichtflüchtig
vorzuhalten. Dann ist lediglich ein Transport der Konfigurationsdaten
aus dem nichtflüchtigen
Speicher in die lokalen Konfigurationsspeicher notwendig.
-
Ein
so genannter nichtflüchtiger
FPGA-Baustein weist daher als Grundelemente die eingangs genannten
konfigurierbare Logikzellen und zusätzlich einen nichtflüchtigen
Speicher zum Abspeichern von Konfigurationsdaten auf. In diesem
Konfigurationsspeicher werden beispielsweise „im Feld" die entsprechenden Konfigurationsbits
in geeignet strukturierter Form abgespeichert und beim Hochfahren
des FPGAs zunächst
den in den konfigurierbaren Zellen vorhandenen setzbaren Schaltern
als Konfigurationsbits zugeführt.
Eine jeweilige konfigurierbare Logikzelle verfügt deshalb über ein Konfigurationsregister,
das ein jeweiliges Konfigurationswort aus Konfigurationsbits für den Betrieb
des FPGAs flüchtig
abspeichert und die Konfigurationsbits, welche letztlich die Logikfunktion
der konfigurierbaren Logikzelle bestimmen, einzeln bereitstellt.
-
Typischerweise
sind die konfigurierbaren Logikzellen und der lokale Konfigurationsspeicher
in derselben Fertigungstechnologie, beispielsweise CMOS realisiert,
während
der nichtflüchtige
Konfigurationsspeicher eine weitere Technologie, z.B. FLASH, benötigt. Dann
werden für
die in unterschiedlichen Technologien ausgeführten Schaltungsteile unterschiedli che
Signalpegel verwendet. Die Anpassung der entsprechenden logischen
Pegel erhöht dann
den Schaltungsaufwand.
-
Eine
Besonderheit bei nichtflüchtigen
Konfigurationsspeichern ist die Verifikation der eingeschriebenen
Konfigurationsdaten. Diese kann durch Auslesen der eingeschriebenen
Informationen und Vergleich mit den geschriebenen Daten erfolgen. Dieses
Verifikationsverfahren kann nachteilig mehrere Zyklen beanspruchen.
-
Die
1 zeigt beispielhaft den
Aufbau einer konfigurierbaren Logikzelle LC für FPGAs nach dem Stand der
Technik, wie es beispielsweise in der
EP 1 324 495 A1 offenbart ist.
-
Eine
entsprechend konfigurierbare Logikzelle LC dient der Umsetzung einer
Logikfunktion, die Eingangsdaten PD entgegennimmt und ein entsprechendes
logisch verknüpftes
Ergebnis FFO ausgibt. Es ist ein Konfigurationsschiebregister CM
vorgesehen, das Konfigurationsbits CB speichert und an die Eingänge eines
erstes Multiplexers MUX1 bereitstellt. Der erste Multiplexer MUX1
definiert in Abhängigkeit
von den Eingangsdaten PD eines der Konfigurationsbits CB als Ausgangssignal
LTO. Der Multiplexer MUX1 mit den durch das Konfigurationsschieberegister
CM zugeführten
Konfigurationsbits CB kann als Nachschlagetabelle LUT verstanden
werden. Es kann daher eine Boolesche Funktion mit den Eingangsdaten
PD als Eingangsvariablen und dem Ausgangssignal LTO des Multiplexers
bzw. der Nachschlagetabelle LUT ausgeführt werden.
-
Ferner
ist ein D-Flip-Flop DFF mit einem Dateneingang D, einem Datenausgang
Q und einem Takteingang CK vorgesehen. Das Ausgangssignal LTO der
Nachschlagetabelle ist an den Dateneingang D geführt, und an den Takteingang
CK ist ein Taktsignal CLK1 angelegt. Das Ausgangssignal LTO der
Nachschlagetabelle LUT ist ferner an einen Eingang eines zweiten
Multiplexers MUX2 geführt,
der auch das Ausgangssignal FFO des D-Flip-Flops DFF erhält. Der zweite Multiplexer
MUX2 schaltet in Abhängigkeit
eines der Konfigurationsbits CB' entweder das
Ausgangssignal FFO des Flip-Flops DFF oder das Ausgangssignal LTO
der Nachschlagetabelle LUT als Ausgangssignal FFO' der konfigurierbaren Logikzelle
LC durch. Werden FPGA-Bausteine für Anwendungen in der Datenverarbeitung
verwendet, sind meist die getakteten Ausgangssignale FFO des D-Flip-Flops
DFF, welcher in der Regel in einer konfigurierbaren Logikzelle LC
für einen
FPGA-Baustein vorgesehen ist, verwendet. Das D-Flip-Flop DFF dient
dann dem Zwischenspeichern des Ausgangssignals der Logikzelle LC.
-
In
der 2 nach dem Stand
der Technik sind schematisch die Basiselemente eines nichtflüchtigen
FPGA-Bausteins FPGA dargestellt.
-
Das
FPGA weist konfigurierbare Logikzellen LC1, LC2, LCN in einer Spalte
angeordnet auf, wobei jede konfigurierbare Logikzelle an einem Ausgang A1,
A2, AN ein jeweiliges logisches Ergebnis FFO, FF1, FFN aus den jeweiligen
Eingangssignalen PD1, PD2, PD3 liefert. Die konfigurierbaren Logikzellen LC1,
LC2, LCN weisen jeweils Konfigurationsschieberegister CM1, CM2,
CMN zum Speichern und Bereitstellen von Konfigurationsbits für die jeweilige
Logikzelle LC1, LC2, LCN auf.
-
Bevor
das FPGA in Betrieb geht, werden in einer Konfigurationsphase die
jeweiligen Konfigurationsbits aus einem nichtflüchtigen Speicher MCA als serielle
Konfigurationsdaten SCD1, SCD2, SCDN in die Konfigurationsschieberegister
CM1, CM2, CMN eingelesen. Der Konfigurationsspeicher MCA kann beispielsweise
ein Speicherzellenfeld aus nichtflüchtigen Speicherelementen wie
beispielsweise MRAM-oder FRAM-Speicherzellen aufweisen. Die eigentliche
Programmierung des FPGAs geschieht in einer Einlesephase, in der
das Speicherzellenfeld MCA mit den Konfigurationsdaten beschrieben
wird. Dazu ist ein weiteres Ladeschieberegister ISR vorgesehen,
mit einer Anzahl N von Schieberegisterzellen Z1, Z2, ZN, die der
Anzahl der an das Speicherzellenfeld MCA aus nichtvolatilen Speicherelementen gekoppelten
Bitleitungen BL1, ...BLN entspricht.
-
Die
Konfigurationsdaten CD werden seriell in dieses Ladeschieberegister
ISR taktweise mit einem Takt CLK eingelesen. Jede dieser Schieberegisterzellen
Z1, Z2, ZN ist an eine Bitleitung BL1, BL2, BLN gekoppelt. Die jeweiligen
Bitleitungen BL1, BL2, BLN des Speicherzellenfeldes MCA sind mit
Wortleitungen WL1, WL2, WLN gekreuzt, wobei die Anzahl der Wortleitungen
der Anzahl der jeweiligen Konfigurationsbits für eine konfigurierbare Logikzelle
LC1 entspricht. In der Einschreibephase der Konfigurationsdaten
CD werden somit zunächst
seriell alle ersten Konfigurationsbits für die konfigurierbaren Logikzellen
LC1, LC2, LCN in die nichtvolatilen Speicherzellen NVMC geschrieben.
In einem weiteren Schritt werden zweite Konfigurationsbits geschrieben,
bis alle Konfigurationsdaten CD in das Speicherzellenfeld MCA geführt sind.
Erst dann können
die Konfigurationsschieberegister CM1, CM2, CMN bei geschlossenen
steuerbaren Schaltern SW1, SW2, SWN in der Konfigurationsphase des
FPGAs mit den in den nichtvolatilen Speicherzellen NVMC einer jeweiligen
Bitleitung BL1, BL2, BLN abgespeicherten Konfigurationsbits gefüllt werden.
-
Insbesondere
bei einer Ausführung
der nichtvolatilen Speicherzellen NVMC als FRAM-Zellen sind zum
Lesen und Schreiben der Speicherzelleninhalte zusätzliche
aufwändige
Wandlerschaltungen erforderlich, welche hier nicht dargestellt sind. Ein
Nachteil der in 2 dargestellten
Lösung
zum Beschreiben des nichtvolatilen Speichers MCA mit Konfigurationsdaten
CD über
ein Schieberegister ISR ist ferner der zusätzliche Verdrahtungsaufwand durch
die Kopplung der einzelnen Schieberegisterzellen Z1, Z2, ZN des
Ladeschieberegisters ISR an die Bitsleitungen BL1, BL2, BLN und
der erhöhte Schaltungsaufwand
durch das Schieberegister ISR selbst.
-
Die
EP 0 317 287 B1 offenbart
programmierbare Logikschaltkreise und programmierbare Logikzellenfelder,
die FPGAs ähn lich
sind. Dort sind D-Flip-Flops als Ausgangs-Flip-Flops vorgesehen, die
jeweils einem Logikschaltkreis zugeordnet sind. Dabei sind ferner
Multiplexer eingesetzt, die entweder logische Ausgangssignale der
jeweiligen zugeordneten Logikeinrichtung an die Eingänge der
Ausgangs-Flip-Flops zuführen
oder das Ausgangsdatensignal eines Ausgangs-Flip-Flops an den Dateneingang
eines weiteren Ausgangs-Flip-Flops schalten. Nachteilig bei der
in der
EP 0 317 287
B1 beschriebenen Anordnung ist u. A., dass alle Ausgangs-Flip-Flops
der Logikzellenfelder mit derselben Taktrate betrieben werden müssen. Dies
schränkt insbesondere
die Möglichkeiten
von Tests auf die Integrität
der eingeschriebenen Konfigurationsdaten ein.
-
Es
ist daher eine Aufgabe der vorliegenden Erfindung, eine Schaltungsordnung
anzugeben, die einen vereinfachten Transport bzw. ein einfacheres Einschreiben
von Konfigurationsdaten, beispielsweise in einen nichtvolatilen
Speicher und eine vielseitige Verwendung von Ausgangs-Flip-Flops
ermöglicht.
-
Diese
Aufgabe wird durch eine Schaltungsanordnung mit den Merkmalen des
Patentanspruchs 1 gelöst.
-
Demgemäß ist eine
Schaltungsanordnung zum Betrieb von in konfigurierbaren Logikzellen
einer FPGA-Einrichtung vorgesehenen Ausgangs-Flip-Flops zum Transport
von Konfigurationsdaten angegeben, wobei die Schaltungsanordnung mehrere
Ausgangs-Flip-Flops,
welche jeweiligen konfigurierbaren Logikzellen zugeordnet sind,
aufweist, wobei jedes Ausgangs-Flip-Flop zumindest einen Dateneingang
und einen Datenausgang aufweist. Dabei ist erfindungsgemäß ein Dateneingang eines
ersten Ausgangs-Flip-Flops mit einem Datenausgang eines zweiten
Ausgangs-Flip-Flops zum Ausbilden eines Schieberegisters mittels
einem in der FPGA-Einrichtung integrierten Schaltmittel schaltbar
verbunden. Zumindest weist ein Ausgangs-Flip-Flop einen Takteingang
auf, wobei an dem Takteingang ein Einlesetaktsignal oder ein Logikzellentaktsignal
umschaltbar zugeführt
ist. Dem Takteingang eines jeweiligen Ausgangs-Flip- Flops ist ein zweiter,
mittels eines zweiten Auswahlsignals steuerbarer Multiplexer zum
Schalten des Einlesetaktsignals oder des jeweiligen Logikzellentaktsignals
vorgeschaltet.
-
Eine
wesentliche, der Erfindung zugrundeliegende Idee besteht darin,
die Ausgangs-Flip-Flops in den konfigurierbaren Logikzellen während der
Einschreibephase von Konfigurationsdaten in einen nichtvolatilen
Speicher als Schieberegister zusammenzuschalten. Dazu sind erfindungsgemäß Schaltmittel
in die FPGA-Einrichtung integriert. Während der Normalbetriebsphase
der entsprechenden FPGA-Einrichtung dienen die Ausgangs-Flip-Flops der getakteten
Ausgabe von durch die jeweilige Logikzelle verarbeiteten Ausgangsdaten.
Die erfindungsgemäße Schaltungsanordnung
ermöglicht
somit den Verzicht auf zusätzliche
Schieberegister zum Transport von Konfigurationsdaten in nichtflüchtige Konfigurationsspeicher
und reduziert den Verdrahtungsaufwand. Gemäß der Erfindung ist daher zumindest ein
alternatives Schalten der jeweiligen Ausgangs-Flip-Flops als Schieberegisterkette,
wobei jeweilige Datenausgänge
an Dateneingänge
anderer Ausgangs-Flip-Flops geschaltet sind, oder als Ausgangselemente
der Logikzellen zum Ausgeben der entsprechend der Konfiguration
der Logikzelle verarbeiteten Daten. Durch die erfindungsgemäße Schaltungsanordnung
wird durch eine einfach zu erzielende Schaltbarkeit der Ein- und
Ausgänge
der Ausgangs-Flip-Flops erreicht und ein erheblicher Verdrahtungs-
und Schaltungsaufwand durch spezielle Ladeeinrichtungen zum Einschreiben
der Konfigurationsdaten in nichtvolatile Konfigurationsspeicher eingespart.
Ferner ist es möglich,
verschiedene Takte während
des Einlesens von mehreren Konfigurationsdaten in die erfindungsgemäß ausgebildete Schieberegisterkette
aus den Ausgangs-Flip-Flops und während des Normalbetriebs der
jeweiligen Logikzellen, bei dem die Ausgangs-Flip-Flops dann mit dem
Logikzellentaktsignal getaktete logische Ausgangssignale liefern,
zu verwenden.
-
Bevorzugterweise
ist dem Datenausgang eines jeweiligen Ausgangs-Flip-Flops ein Mittel
zur Signalpegelwandlung nachge schaltet. Dadurch können durch
unterschiedliche Herstellungstechnologien der konfigurierbaren Logikzellen
und weiterer Schaltungsteile des FPGAs, insbesondere von Konfigurationsspeichern,
bedingte Unterschiede in den logischen Pegeln ausgeglichen werden.
Dies ist besonders von Vorteil, wenn die FPGA-Einrichtung einen integrierten,
nichtvolatilen Speicher zum Speichern der Konfigurationsbits aufweist.
Dann liefern entsprechende Signalpegelwandler aus den an den Ausgängen der
Ausgangs-Flip-Flops anliegenden Pegeln entsprechend angepasste Pegel
für den
angeschlossenen nichtvolatilen Konfigurationsspeicher.
-
Vorteilhafterweise
ist in einer konfigurierbaren Logikzelle an den Eingang eines jeweiligen
Ausgangs-Flip-Flops ein Ausgangssignal einer Nachschlagetabelle
der jeweiligen Logikzelle zuführbar. Dadurch
wird im Normalbetrieb als Logikzelle die entsprechend konfigurierte
Boolesche Funktion für
die Logikzelle dem Ausgangs-Flip-Flop zum Zwischenspeichern zugeführt.
-
In
einer bevorzugten Ausführungsform
der erfindungsgemäßen Schaltungsanordnung
ist dem Dateneingang eines jeweiligen ersten Ausgangs-Flip-Flops
ein mittels eines ersten Auswahlsignals steuerbarer erster Multiplexer
zum Schalten des Ausgangssignals der jeweiligen Nachschlagetabelle
oder des Ausgangssignals des zweiten Ausgangs-Flip-Flops vorgeschaltet.
Der Einsatz eines Multiplexers stellt eine einfache Möglichkeit
dar, den Dateneingang eines ersten Ausgangs-Flip-Flops mit einem
Datenausgang eines zweiten Ausgangs-Flip-Flops zum Ausbilden des
Schieberegisters schaltbar zu verbinden.
-
Besonders
bevorzugt sind dann das erste und das zweite Auswahlsignal identisch.
In diesem Fall genügt
eine einzelne Auswahlsignalleitung zur Steuerung der beiden Multiplexer.
-
Die
Ausgangs-Flip-Flops sind bevorzugt als Taktflankengesteuerte D-Flip-Flops
ausgebildet.
-
In
einer vorteilhaften Ausgestaltung der Schaltungsanordnung ist der
Datenausgang eines jeweiligen Ausgangs-Flip-Flops mit einem Ein-/Ausleseverstärker für eine Bitleitung
eines Speicherzellenfeldes verbunden. Der Ein-/Ausleseverstärker dient dabei
dem Schreiben von Bits in an die jeweilige Bitleitung gekoppelte
Speicherzellen und zum Auslesen der jeweiligen gespeicherten Bitzustände in den Speicherzellen.
Es ist daher von besonderem Vorteil, dass die jeweilige Bitleitung
an eine vorbestimmte Anzahl von Speicherzellen zum Speichern von
Konfigurationsbits gekoppelt ist, wobei die Speicherzellen an Kreuzungspunkten
von entsprechenden Wortleitungen mit den Bitleitungen angeordnet
sind.
-
Eine
derartige matrixförmige
Anordnung der Speicherzellen für
die Konfigurationsbits kann beispielsweise für FRAM-Speicherzellen günstig sein. Dann
dient auch der Ein-/Ausleseverstärker
der Signalanpassung einerseits beim Einschreiben der Konfigurationsdaten
in das Speicherzellenfeld und andererseits beim Auslesen der Konfigurationsbits,
die in Speicherzellen an einer Bitleitung gespeichert sind, in entsprechende
Konfigurationsregister der zugehörigen
konfigurierbaren Logikzelle.
-
Es
ist ferner von besonderem Vorteil, dass die Anzahl der Wortleitungen
der Anzahl M der Konfigurationsbits für eine konfigurierbare Logikzelle
entspricht. Somit sind alle Konfigurationsbits bzw. ein entsprechendes
Konfigurationswort für
eine Logikzelle in Speicherzellen abgelegt, welche an die Bitleitung
gekoppelt sind, die wiederum über
einen Ein-/Ausleseverstärker
mit dem Ausgangs-Flip-Flop verbunden ist. Diese besonders vorteilhafte
erfindungsgemäße Verschaltung
ermöglicht
neben dem Datentransport über
die ausgebildete Schieberegisterkette zum Schreiben von Daten in
das Speicherzellenfeld, ferner die Verifikation von in das Speicherzellenfeld
eingeschriebenen Konfigurationsdaten.
-
Vorteilhafterweise
haben die Ein-/Ausleseverstärker
jeweils einen Einleseeingang zum Einlesen von Daten, welche in die
an die jeweilige Bitleitung gekoppelten Speicherzellen zu schreiben
sind, und einen Ausleseausgang zum Ausgeben von Konfigurationsdaten
an die jeweilige konfigurierbare Logikzelle. Besonders bevorzugt
weist der jeweilige erste Multiplexer dann einen dritten Eingang
auf, mit dem der jeweilige Ausleseausgang des Ein-/Ausleseverstärkers verbunden
ist zum Schalten von Konfigurationsbits der Konfigurationsdaten
an den Dateneingang des jeweiligen Ausgangs-Flip-Flops. Durch dieses
Verschalten ist es möglich,
in dem Ausgangs-Flip-Flop in einem besonderen Betriebsmodus die
Speicherzelleninhalte aus dem Konfigurationsspeicher zwischenzuspeichern.
Dies kann beispielsweise der Verifikation der in den Speicher eingeschriebenen
Konfigurationsdaten dienen.
-
Ein
jeweiliger Ausleseausgang des Ein-/Ausleseverstärkers ist dann vorteilhaft
mit einem Konfigurationsschieberegister der jeweiligen konfigurierbaren
Logikzelle schaltbar verbunden, um eine Übertragung der Konfigurationsbits
zu schaffen.
-
In
einer bevorzugten Weiterbildung der erfindungsgemäßen Schaltungsanordnung
weist ein jeweiliger Ein-/Ausleseverstärker eine Logikeinrichtung zum
Vergleichen eines an dem Einleseeingang und dem Ausleseausgang anliegenden
Datums und zum Ausgeben eines Vergleichsergebnisses auf. In Kombination
mit einem zwischengespeicherten Datum in dem jeweiligen Ausgangs-Flip-Flops
ist somit ein Vergleich von in den Speicherzellen gespeicherten Daten
und dem zwischengespeicherten Datum möglich.
-
In
einer bevorzugten Weiterbildung der vorliegenden Erfindung ist eine
FPGA-Einrichtung vorgesehen, die eine Mehrzahl von konfigurierbaren
Logikzellen aufweist, eine Mehrzahl von erfindungsgemäßen Schaltungsanordnungen
aufweist, und ein Speicherzellenfeld aufweist. Dabei sind die konfigurierbaren
Logikzellen spaltenweise angeordnet, und mittels der Ausgangs- Flip-Flops der jeweiligen
Spalten ist ein Schieberegister ausbildbar.
-
Die
erfindungsgemäße spaltenhafte
Anordnung der Logikzellen ermöglicht
eine besonders verdrahtungsgünstige
Ausführung
und Ausbildung des erfindungsgemäßen Schieberegisters
zum Transport von Konfigurationsdaten. Die matrixförmig angeordneten
Speicherzellen an Kreuzungspunkten von Wort- und Bitleitungen des
Speicherzellenfeldes sind einfach mittels der Ein-/Ausleseverstärker ein-
und auslesbar. Mittels der erfindungsgemäßen FPGA-Einrichtung kann diese
aufwandsgünstig
hergestellt werden, weil keine zusätzlichen Mittel zum Einschreiben
der Konfigurationsdaten in das Speicherzellenfeld vorgesehen werden
müssen.
-
Vorteilhafterweise
werden die an einem Datenausgang eines jeweiligen Ausgangs-Flip-Flops anliegenden
Pegel mit dem entsprechenden Pegel an dem zugeordneten Ausleseausgang
zum Erzeugen eines Vergleichsergebnisses verglichen. Dann werden
die Vergleichsergebnisse der Ein-/Ausleseverstärker einer Spalte miteinander
logisch verknüpft,
um so ein Spaltenfehlersignal zu erzeugen. So lässt sich beispielsweise das
jeweilige Vergleichsergebnis kaskadiert mit einem weiteren verknüpfen, und
es lässt
sich feststellen, ob bei einem der Ein-/Ausleseverstärker einer Spalte unterschiedliche logische
Zustände
anliegen. Bevorzugt ist eine Steuereinrichtung zum Erzeugen der
Auswahlsignale vorgesehen. Die Steuereinrichtung kann beispielsweise das
Anlegen der verschiedenen Taktsignale an die Takteingänge der
Ausgangs-Flip-Flops und die entsprechenden Signale an die Dateneingänge koordinieren.
-
In
einer bevorzugten Weiterbildung ist eine Versorgungsspannung für die ersten
oder zweiten Multiplexer getrennt schaltbar. Da die Multiplexer
in der Hauptsache während
des Einschreibens der Konfigurationsdaten in das Speicherzellenfeld
oder während
eines Verifikationsbetriebsmodus zum Vergleichen von eingeschriebenen
Referenzdaten in das Speicherzellenfeld verwendet werden, können diese stromsparend
abgeschaltet werden, während
der FPGA-Baustein im Normalmodus arbeitet. Im Normalmodus arbeiten
die konfigurierbaren Logikzellen entsprechend ihrer Konfiguration
durch die Konfigurationsbits in ihren Konfigurationsschieberegistern als
logische Funktionen.
-
In
einer alternativen Ausbildungsform der erfindungsgemäßen FPGA-Einrichtung
ist jede an eine jeweilige Bitleitung gekoppelte Speicherzelle an
einen Schalttransistor der jeweiligen konfigurierbaren Logikzelle
gekoppelt. Dabei legen die Schalttransistoren eine Logikfunktion
der konfigurierbaren Logikzelle fest.
-
Weitere
vorteilhafte Weiterbildungen und Ausführungsformen der Erfindung
sind Gegenstand der Unteransprüche
sowie der nachfolgenden Beschreibung und unter Bezugnahme auf die
Figuren näher
erläutert.
Es zeigt dabei:
-
1:
eine konfigurierbare Logikzelle nach dem Stand der Technik;
-
2:
eine schematische Darstellung eines nichtflüchtigen FPGAs nach dem Stand
der Technik;
-
3:
eine schematische Darstellung einer ersten Ausführungsform der erfindungsgemäßen Schaltungsanordnung;
-
4:
ein Blockschaltbild der erfindungsgemäßen Schaltungsanordnung;
-
5:
eine schematische Darstellung einer zweiten Ausführungsform der erfindungsgemäßen Schaltungsanordnung
in einem Einschreibebetriebsmodus;
-
6:
die zweite Ausführungsform
der erfindungsgemäßen Schaltungsanordnung
in einem Konfigurationsbetriebsmodus;
-
7:
ein Blockschaltbild einer dritten Ausführungsform der erfindungsgemäßen Schaltungsanordnung;
-
8:
eine schematische Darstellung eines erfindungsgemäßen FPGAs;
und
-
9:
einen erfindungsgemäßen Ein-/Ausleseverstärker für eine Bitleitung.
-
In
den Figuren sind, sofern nichts Anderes angegeben ist, gleiche bzw.
funktionsgleiche Elemente mit denselben Bezugszeichen versehen worden.
-
Die 3 zeigt
zur Erläuterung
der Erfindung eine Verschaltung mit an einen nichtflüchtigen Speicher
gekoppelten Ausgangs-Flip-Flops von zugeordneten konfigurierbaren
Logikzellen. Es sind mehrere in einer Spalte angeordnete Flip-Flops 1, 2, 3, 4 dargestellt,
die jeweils einen Dateneingang 5, einen Datenausgang 6 und
einen Takteingang 7 aufweisen. Die dargestellten Flip-Flops 1, 2, 3, 4 sind
jeweils Teil einer programmierbaren Logikzelle, welche hier nicht
näher dargestellt
ist. In einem Betrieb nach dem Stand der Technik, wie es beispielsweise
in der 1 dargestellt ist, dienen die Flip-Flops 1, 2, 3, 4 als
Ausgangs-Flip-Flops zum Ausgeben von Ausgangssignalen einer ebenfalls
vorgehaltenen Nachschlagetabelle der jeweiligen Logikzelle.
-
Erfindungsgemäß ist jeweils
der Dateneingang 5 eines ersten Flip-Flops 2 über einen
Schalter 8 mit einem Datenausgang 6 eines zweiten
Ausgangs-Flip-Flops 1 schaltbar verbunden. Den Takteingängen 7 der
Ausgangs-Flip-Flops 1, 2, 3, 4 ist ein
gemeinsames Taktsignal CLK zugeführt.
Es ist ferner ein Speicherzellenfeld 9 vorgesehen, welches als
Speicher für
Konfi gurationsdaten für
die konfigurierbaren Logikzellen dient. Die entsprechenden nichtvolatilen
Speicherzellen 10 sind jeweils an Kreuzungspunkten einer
Bitleitung 11 mit einer Wortleitung 12 vorgesehen.
-
In
dem hier dargestellten Beispiel sind vier Bitleitungen 11 dargestellt,
die jeweils über
einen Ein-/Ausleseverstärker 13 an
die Datenausgänge 6 der
Ausgangs-Flip-Flops 1, 2, 3, 4 gekoppelt
sind. Die Ein-/Ausleseverstärker 13 dienen
unter Anderem als Signalpegelwandler, da das Speicherzellenfeld, bzw.
der in das FPGA integrierte Konfigurationsspeicher, und die übrigen die
logischen Funktionen bestimmenden Elemente in verschiedenen Fertigungstechnologien
hergestellt sein können.
Dann ist eine Anpassung der jeweiligen logischen Pegel zwischen den
Technologien durch die Ein-/Ausleseverstärker 13 möglich.
-
Die
Wortleitungen 12 sind jeweils über Ein-/Ausleseverstärker 14 an
einen Wortleitungsdekoder 15 gekoppelt. Dem Wortleitungsdekoder 15 sind
Wortleitungsadress-Signale WA zugeführt, die beim Ein- und Auslesen
aus dem Konfigurationsspeicher 9 die jeweiligen Speicherzellen 10 adressieren.
-
Die
Anzahl der nichtvolatilen Speicherzellen 10, welche an
eine Bitleitung 11 gekoppelt sind, entspricht der Anzahl
der Konfigurationsbits für
eine konfigurierbare Logikzelle, der das jeweilige Ausgangs-Flip-Flop 1 zugeordnet
ist.
-
Die
Erfindung ermöglicht
nun, die Ausgangs-Flip-Flops 1 zu einem Schieberegister
zusammenzuschalten. Dabei ist dann der Datenausgang 6 des
der nullten Zeile bzw. Bitleitung 11 zugeordneten Ausgangs-Flip-Flops 1 an
den Dateneingang 5 des der ersten Zeile zugeordneten Ausgangs-Flip-Flops 2 verbunden.
Der Datenausgang 6 des der ersten Zeile zugeordneten Ausgangs-Flip-Flops 2 ist
mit dem Dateneingang 5 des der zweiten Zeile zugeordneten
Ausgangs-Flip-Flops 3 verbunden, und der Datenausgang 6 dieses
Flip-Flops 3 ist mit dem Dateneingang 5 des der
dritten Zeile zugeordneten Ausgangs-Flip-Flops 4 verbunden.
Somit ist ein serieller Datentransport von Konfigurationsdaten CDIN
in die so ausgebildete Schieberegisterkette möglich.
-
Nachdem
die Ausgangs-Flip-Flops 1, 2, 3, 4 mit
Konfigurationsbits gefüllt
sind, lassen sich diese Bits in Abhängigkeit von den Wortadress-Signalen CA
durch die Ein-/Ausleseverstärker 13, 14 in
entsprechende nichtvolatile Speicherzellen 10 einschreiben.
Dieser Vorgang wird dann M-fach wiederholt, um die vollständigen Konfigurationsdaten
in das Speicherzellenfeld 9 einzuschreiben.
-
In
einer anschließenden
Konfigurationsphase, wie sie im Folgenden beispielsweise in der 6 näher erläutert ist,
werden die Konfigurationsbits, welche in nichtvolatilen Speicherzellen 10 derselben Bitleitung 11 bzw.
derselben Zeile gespeichert sind, in Konfigurationsschieberegister
(hier nicht dargestellt) der konfigurierbaren Logikzellen eingelesen.
-
Im
Normalbetriebsmodus des entsprechenden FPGA-Bausteins sind dann
die bevorzugt als steuerbare Schalter ausgeführten Schalter 8 geöffnet, so
dass die Ausgangs-Flip-Flops 1, 2, 3, 4 lediglich
der (getakteten) Ausgabe der jeweiligen digitalen Ausgangssignale
der der jeweiligen konfigurierbaren Logikzelle zugeordneten Nachschlagetabelle
dienen.
-
Die 4 zeigt
eine bevorzugte Ausführungsform
der erfindungsgemäßen Schaltungsanordnung
16 um ein Ausgangs-Flip-Flop anhand eines Ausgangs-Flip-Flop 2 einer
jeweiligen konfigurierbaren Logikzelle. Das Ausgangs-Flip-Flop 2 hat
einen Dateneingang 5, einen Datenausgang 6 und
einen Takteingang 7.
-
Dem
Dateneingang 5 ist ein erster Multiplexer 17 vorgeschaltet,
dessen Ausgang 18 mit dem Dateneingang 5 verbunden
ist. Der erste Multiplexer 17 schaltet in Abhängigkeit
von dem Auswahlsignal CSEL1 entweder ein an seinem ersten Eingang 19 zugeführtes Signal
FFO0, das das Ausgangssignal eines zweiten (hier nicht dargestellten)
Ausgangs-Flip-Flops ist, oder ein Ausgangssignal LTO1 einer Nachschlagetabelle
der entsprechenden Logikzelle (hier nicht dargestellt), das an den
zweiten Eingang 20 des ersten Multiplexers 17 geführt ist.
Mittels des ersten Multiplexers 17 ist somit ein Umschalten in
Abhängigkeit
des Auswahlsignals CSEL1 zwischen einem Betriebsmodus in dem eine
Schieberegisterkette durch Zuführen
der Ausgangssignale FFO0 eines anderen Ausgangs-Flip-Flops gebildet ist
(Einlesebetriebsmodus), oder einem Normalbetriebsmodus, bei dem
dem Ausgangs-Flip-Flop 2 als Eingangssignal das Ausgangssignal
LTO1 der zugeordneten Nachschlagetabelle zugeführt ist.
-
Es
ist zweiter Multiplexer 21 vorgesehen mit einem ersten
Eingang 22, dem ein Einlesetaktsignal CCLK zugeführt ist
und einem zweiten Eingang 23, dem ein Logikzellentaktsignal
CLK1 zugeführt
ist. Der Ausgang 24 des zweiten Multiplexers 21 ist
mit dem Takteingang 7 des Ausgangs-Flip-Flops 2 verbunden.
Der zweite Multiplexer 21 schaltet in Abhängigkeit
eines zweiten Auswahlsignals CSEL2 entweder das Einlesetaktsignal
CCLK oder das Logikzellentaktsignal CLK1 an den Takteingang 7 des
Auslese-Flip-Flops 2. Es sind somit zwei verschiedene Taktungen
je nach Betriebsmodus möglich.
-
Das
Einlesetaktsignal CCLK kann beispielsweise bei der erfindungsgemäßen Verschaltung
des Ausgangs-Flip-Flops 2, bei dem das Ausgangssignal FFO0
an den Eingang 5 geführt
ist, als Taktsignal für den
bitweisen Transport durch die Schieberegisterkette verwendet werden.
Im Normalbetrieb hingegen ist es möglich, das Ausgangs-Flip-Flop 2 einer
jeden konfigurierbaren Logikzelle mittels des individuellen Logikzellentaktsignals
CLK1 zu takten.
-
Die 5 zeigt
schematisch den Einsatz der erfindungsgemäßen Schaltung 16 in
einem FPGA-Baustein. Die schematische Darstellung einer FPGA-Einrichtung 28 zeigt
beispielhaft drei Schaltungsanordnungen 16, wie sie in
der 4 dargestellt sind, sowie ein Speicherzellenfeld 9 gemäß der 3.
-
Die
Ausgangssignale LTO0, LTO1, LTO2 der Nachschlagetabellen 25, 26, 27 sind
an die ersten Multiplexer 17 geführt. An den ersten Multiplexer 17 der
nullten Zeile sind ferner die seriellen Konfigurationsdaten DCIN
geführt.
Der Datenausgang des Ausgangs-Flip-Flops 1 der Nullten
Zeile ist an den ersten Multiplexer 17 der ersten Zeile
verbunden, und die Signale des Ausgangs-Flip-Flops 2 der
ersten Zeile sind an den ersten Multiplexer 17 der zweiten
Zeile geführt.
Ferner ist den zweiten Multiplexern 21 jeweils das Einlesetaktsignal
CCLK zugeführt
wie auch jeweils ein Logikzellentaktsignal CLK0, CLK1, CLK2.
-
In
der Einlesephase der Konfigurationsdaten in das Speicherzellenfeld
sind daher die Ausgangs-Flip-Flops 1, 2, 3 zu
einer Schieberegisterkette verschaltet, wobei die als Schieberegisterzellen wirkenden
Ausgangs-Flip-Flops 1, 2, 3 jeweils gemeinsam
mit dem Einlesetakt CLK getaktet sind. Die Multiplexer 17, 21 werden
von einem gemeinsamen Auswahlsignal CSEL gesteuert. Nach drei Taktzyklen ist
das hier beispielhaft dargestellte dreigliedrige Schieberegister 1, 2, 3 gefüllt, und über die
Ein-/Ausleseverstärker 13, 14 sowie
den Wortleitungsdekodern 15 werden in jeder Zeile nichtvolatile
Speicherzellen 10 beschrieben. Dieser Vorgang wiederholt sich,
bis für
jede konfigurierbare Logikzelle M Konfigurationsbits in dem Speicherzellenfeld 9 abgespeichert
sind. Der entsprechende FPGA-Baustein 28 enthält damit
die für
seine Funktion notwendige Konfigurationsdaten. Nach dieser Einlesephase
schließt sich
die Konfigurationsphase der einzelnen konfigurierbaren Logikzellen
an, in der Konfigurationsschieberegister mit den Konfigurationsbits
gefüllt
werden.
-
In
der 6 ist wiederum ein Ausschnitt der erfindungsgemäßen FPGA-Einrichtung 28 dargestellt.
In der 6 sind fer ner das Konfigurationsschieberegister 29 für die konfigurierbare
Logikzelle, welche das erste Ausgangs-Flip-Flop 1 aufweist,
dargestellt, sowie das entsprechende Konfigurationsschieberegister 30 für die konfigurierbare
Logikzelle, welcher das zweite Ausgangs-Flip-Flop 2 zugeordnet ist,
dargestellt. Die Konfigurationsschieberegister 29, 30 weisen
jeweils M Schieberegisterzellen 31 auf zum Abspeichern
der Konfigurationsbits. Nachdem die Einlesephase, wie sie zur 5 erläutert wurde, abgeschlossen
ist, d.h. mittels des Auswahlsignals CSEL die seriellen Konfigurationsdaten
CDIN in die aus den Ausgangs-Flip-Flops 1, 2 gebildete
Schieberegisterkette eingelesen wurden und in das Speicherzellenfeld 9 abgespeichert
wurden, beginnt die Konfigurationsphase für die konfigurierbaren Logikzellen.
-
In
der Konfigurationsphase werden die in dem Speicherzellenfeld 9 abgelegten
Konfigurationsdaten in die Konfigurationsschieberegister 29, 30 eingeschrieben.
Dazu ist den Konfigurationsschieberegistern 29, 30 ein
Konfigurationstaktsignal LCLK zugeführt und die Ein-/Ausleseverstärker 13,
welche an die jeweiligen Bitleitungen gekoppelt sind, verfügen über einen
Einleseeingang 32 und einen Ausleseausgang 33.
Dabei ist der Einleseeingang 32 mit dem jeweiligen Datenausgang
des jeweiligen Ausgangs-Flip-Flops 1, 2 verbunden,
und der jeweilige Ausleseausgang 33 ist direkt an einen
Eingang 34 des Konfigurationsschieberegisters 29, 30 verbunden.
-
In
der Konfigurationsphase werden nun, durch das Konfigurationstaktsignal
LCLK getaktet, die in den Speicherzellen 10, welche an
eine jeweiligen Bitleitung 11 gekoppelt sind, abgespeicherten Konfigurationsbits
als serielle Zellenkonfigurationsdaten SCD0, SCD1 in die Konfigurationsschieberegister 29 geschrieben.
-
Damit
sind dann die Logikoperationen der jeweiligen konfigurierbaren Logikzellen
durch die Konfigurationsbits festgelegt. Das heißt, die entsprechende Nachschlagetabelle 25, 26 setzt
eine gewünschte
Boolesche Operation um, die die jeweiligen Eingangsdaten PD0, PD1
in Ausgangssignale LTO0, LTO1 der Nachschlagetabellen überführt. Im dann
anschließenden
Normalbetrieb des FPGA-Bausteins 28 sind wiederum diese
Ausgangssignale LTO0, LTO1 zum Zwischenspeichern an die Dateneingänge der
Ausgangs-Flip-Flops 1, 2 geführt.
-
Die 7 zeigt
eine Weiterbildung der erfindungsgemäßen Schaltungsanordnung 35.
Die erweiterte Schaltungsanordnung 35 ermöglicht ferner
die Durchführung
eines Verifikationsmodus, um das korrekte Einschreiben der Konfigurationsbits
in die nichtvolatilen Speicherzellen zu überprüfen.
-
Die
weitergebildete Schaltungsanordnung 35 weist im Wesentlichen
dieselben Elemente auf, wie die in 4 dargestellte
Schaltungsanordnung 16. Es ist ein Ausgangs-Flip-Flop 2 mit
einem Dateneingang 5, einem Datenausgang 6 und
einem Takteingang 7 dargestellt. Dem Takteingang 7 ist
ein Multiplexer 21 vorgeschaltet, der in Abhängigkeit
von einem Auswahlsignal CSEL2 ein Einlesetaktsignal CCLK oder Logikzellentaktsignal
CLK1 durchschaltet.
-
Das
Ausgangssignal FF01 des Ausgangs-Flip-Flops 2 wird an seinem
Datenausgang 6 und über
einen steuerbaren Schalter 8 an den Einleseeingang 32 des
Ein-/Ausleseverstärkers 13 geführt. Der
Schalter 8 ist über
ein weiteres Auswahlsignal CSEL4 steuerbar. Der Ein-/Ausleseverstärker 13 ist,
wie bereits in den 3 und 5 dargestellt, an
eine jeweilige Bitleitung gekoppelt, die wiederum an nichtvolatile
Speicherzellen verbunden ist.
-
Dem
Dateneingang 5 dieses Ausgangs-Flip-Flops 2 ist
ebenfalls ein Multiplexer 17 vorgeschaltet, der drei Eingänge 19, 20, 37 aufweist, an
die das Ausgangssignal LTO1 der jeweiligen Nachschlagetabelle, ein
Ausgangssignal FFO0 eines anderen Ausgangs-Flip-Flops (hier nicht
dargestellt) oder ein Auslesesignal SCD1' zugeführt ist, wobei das Auslesesignal
SCD1' an dem Ausleseausgang 33 des
Ein-/Ausleseverstärkers 13 abgreifbar
ist und über
einen weiteren steuerbaren Schalter 38 dem jeweiligen Eingang 37 des
Multiplexers 17 schaltbar zugeführt ist. Der weitere steuerbare
Schalter 38 ist über
ein weiteres Auswahlsignal CSEL3 gesteuert. Der Multiplexer 17 ist über ein
erstes Auswahlsignal CSL1 gesteuert.
-
Mittels
des steuerbaren Schalters 38 kann das Auslesesignal SCD1' entweder dem Multiplexer 17 oder
dem Konfigurationsschieberegister 30 zugeführt werden.
Das Konfigurationsschieberegister 30 weist Schieberegisterzellen 31 auf
und ist mittels eines Konfigurationstaktsignals LCLK taktbar. In
dem zur 6 beschriebenen Konfigurationsmodus
sind die Auslesesignale SCD1' aus
dem Speicherzellenfeld über
den Schalter 38 in das Konfigurationsschieberegister 30 geführt.
-
In
dem zuvor beschriebenen Einlesemodus, in dem die Konfigurationsbits
in das Speicherzellenfeld (hier nicht dargestellt) eingelesen werden,
ist das Signal FFFO0, welches ein Ausgangssignal eines weiteren
Ausgangs-Flip-Flops ist, über
den ersten Multiplexer 17 an den Dateneingang 5 geführt und wird
seriell bzw. durch das Flip-Flop 2 geführt, so dass das Ausgangssignal
FFO1 weiteren Flip-Flops der entsprechenden Spalte zugeführt wird.
Nachdem das Schieberegister, wie zuvor ausgeführt wurde, gefüllt ist,
wird der Schalter 8 umgelegt, so dass mittels des Ein-/Ausleseverstärkers 13 eine
nichtvolatile Speicherzelle mit dem entsprechenden Bitwert, welcher
in dem Ausgangs-Flip-Flop 2 abgespeichert ist, eingeschrieben
werden kann.
-
Die
Weiterbildung 35 ermöglicht
nun eine Verifikation des in eine nichtvolatile Speicherzelle eingeschriebenen
Konfigurationsbits. Nachdem ein in dem Ausgangs-Flip-Flop 2 abgelegtes
Konfigurationsbit über
den Ein-/Ausleseverstärker 13 in
eine entsprechende nichtvolatile Speicherzelle geschrieben wurde,
kann der entsprechende Ein-/Ausleseverstärker 13 über eine
geeignete Vergleichsschaltung das an seinem Einleseeingang 32 anliegende Signal,
also der logische Pegel des eingeschriebenen Konfigurationsbits,
da dieses nach wie vor in dem Ausgangs-Flip-Flop abgespeichert vorliegt,
mit dem an seinem Ausgang 36 anliegenden Signal vergleichen.
Das an seinem Ausgang 36 anliegende Signal entspricht dann
dem logischen Pegel eines Bits, welches in einer (durch den hier
nicht dargestellten Wortleitungsdekoder) adressierten nichtvolatilen Speicherzelle
anliegt. Wenn der Einschreibevorgang zuvor fehlerlos erfolgte, stimmen
die beiden logischen Pegel an dem Einleseeingang 32 und
dem Ausgang 36 überein.
Falls dies nicht der Fall ist, ist beim Einschreiben in die nichtvolatile
Speicherzelle ein Fehler aufgetreten, der von dem Ein-/Ausleseverstärker 13 signalisiert
werden kann. Beispielsweise kann ein entsprechendes Fehlersignal
ES ausgegeben werden.
-
Es
ist mittels der erfindungsgemäßen Schaltungsanordnung 35 ferner
möglich,
eine weitere Verifikation des Betriebs der konfigurierbaren Logikzellen durchzuführen. Dazu
werden, nachdem die Konfigurationsphase durchgeführt wurde, also die Konfigurationsschieberegister
mit entsprechenden Konfigurationsbits gefüllt sind, die Ausgangs-Flip-Flops
2 wiederum als Schieberegisterkette geschaltet und mit erwarteten
Referenz-Ausgangsdaten
gefüllt,
welche in eine Spalte von Speicherzellen des Speicherzellenfeldes 9 geschrieben
werden. Diese Referenz-Ausgangsdaten werden beim Anlegen von Test-Eingangsdaten
an die konfigurierbaren Logikzellen als Ausgangssignale der entsprechenden Nachschlagetabellen
LTO1 erwartet.
-
In
einer weiteren Phase dieses Verifikationsmodus für die Funktionstüchtigkeit
der konfigurierbaren Logikzellen werden nun die Ausgangs-Flip-Flops 2 als
konventionelle Ausgangs-Flip-Flops
für die
konfigurierbaren Logikzellen betrieben. Die Testdaten werden entsprechend
den konfigurierbaren Logikzellen durchgeführt, die daraufhin ein Ausgangssignal LTO1
der jeweiligen Nachschlagetabelle in das jeweilige Flip-Flop liefern.
Ein entsprechend vorbereiteter Ein-/Ausleseverstärker 13 vergleicht
nun das Ergebnis der konfigurierten Logik- Operationen, welches in dem Auslese-Flip-Flop 2 vorliegt,
mit dem entsprechend erwarteten Referenz-Datum, welches in einer nichtvolatilen
Speicherzeile des Speicherzellenfeldes abgelegt ist. Stimmen die
beiden Daten überein, funktioniert
der entsprechende FPGA-Baustein bzw. die konfigurierten Logikzellen
einwandfrei.
-
Die 8 stellt
schematisch den Einsatz der weiter gebildeten erfindungsgemäßen Schaltungsanordnung 28 in
einer FPGA-Einrichtung 39 dar.
Dabei entspricht die Verschaltung im wesentlichen der in 3, 5 und 6 gezeigten.
Ferner ist eine Steuereinrichtung 40 dargestellt, die die
Auswahlsignale CSEL1–CSEL4
liefert und den Wortleitungsdekoder 15 mit Wortadresssignalen
WA steuert sowie die Ein-/Ausleseverstärker 13, 14 koordiniert.
-
In
der 9 ist eine bevorzugte Ausführungsform eines Schreib-/Leseverstärkers 13 dargestellt.
Der Schreib-/Leseverstärker 13 hat
einen Einleseeingang 32, einen Ausleseausgang 33 und
einen Ausgang 36 zum Ankoppeln an eine entsprechende Bitleitung 11.
Signale SCDOUT1, welche in eine an die Bitleitung 11 gekoppelte
Speicherzelle schrieben werden sollen, werden durch einen Schreibkonverter 41 in
eine geeignete Pegelform gebracht und auf die Bitleitung 11 gegeben.
Ein ähnlicher
Lesekonverter 42 wandelt die an einer Bitleitung anliegenden
Signale SCD1 in entsprechende, für
die Datenverarbeitung erforderliche logische Pegel um und gibt sie
an den Ausleseausgang 33 weiter.
-
An
den Einleseeingang 32 und den Ausleseausgang 33 ist
eine Vergleichseinrichtung 43 gekoppelt, die ein Vergleichsergebnis
ES in Abhängigkeit
der an dem Ein- bzw. Ausgang anliegenden Signale erzeugt. Dadurch
ist es beispielsweise möglich, den
Inhalt eines an den Einleseeingang 32 gekoppelten Auslese-Flip-Flops
mit dem Speicherzelleninhalt einer an die Bitleitung 11 gekoppelte
Speicherzelle, welcher durch den Lesekonverter 42 verstärkt wird, mittels
der Vergleichseinrich tung 43 zu vergleichen. Dies kann
beispielsweise zur Verifikation des Einschreibens der Konfigurationsdaten
in die Speicherzellen erfolgen, oder aber wie bereits zu 7 angemerkt,
auch zur Überprüfung der
Funktionsfähigkeit der
konfigurierten Logikzellen.
-
Der
hier dargestellte Ein-/Ausleseverstärker 13 verfügt ferner über ein
logisches UND-Gatter 44, dem das Vergleichsergebnis ES
zugeführt
ist sowie ein Fehlersignal SV2 eines weiteren (hier nicht dargestellten)
Ein-/Ausleseverstärkers.
Das UND-Gatter 44 liefert daraus ein Fehlersignal SV1 des
hier betrachteten Ein-/Ausleseverstärkers 13. Das Fehlersignal
des weiteren Ein-/Ausleseverstärkers
bzw. eines Ein-/Ausleseverstärkers,
der einer direkt benachbarten Bitleitung 11 zugeordnet
ist, ist an einen Fehlereingang 45 des Ein-/Ausleseverstärkers 13 geführt. Das
Fehlersignal SV1 des Ein-/Ausleseverstärkers 13 ist an einem
Fehlerausgang 46 abgreifbar.
-
Das
hier in 9 gezeigte Ausführungsbeispiel
des Ein-/Ausleseverstärkers 13 ermöglicht die Gestaltung
und Bewertung entsprechender Fehlersignale SV2, SV1. Durch diese
UND-Verknüpfung
ist es beispielsweise möglich,
ein globales Fehlersignal an den entsprechenden Ein-/Ausleseverstärkers der nullten
Zeile (beispielsweise wie in 8 gezeigt)
abzugreifen.
-
Die
vorliegende Erfindung liefert somit eine Schaltungsanordnung, die
es ermöglicht,
in konfigurierbaren Logikzellen vorhandene Ausgangs-Flip Flops zu
einer Schieberegisterkette zu verschalten. Dadurch können in
einem Einlesebetriebsmodus Konfigurationsdaten über eine derart ausgebildete Schieberegisterkette
in einen Konfigurationsspeicher aus einem Speicherzellenfeld von
nichtvolatilen Speicherzellen geschrieben werden. Dies ist ohne sonst üblichen
weiteren Verdrahtungsaufwand möglich.
-
Ferner
erlaubt die erfindungsgemäße Schaltungsanordnung
gemäß ihrer
Ausführungsbeispiele in
einer Konfigurationsphase das Einlesen der in den nichtvolatilen
Speicherzellen abgespeicherten Konfigurationsdaten in entsprechende
Konfigurationsschieberegister der konfigurierbaren Logikzellen. Darüber hinaus
ermöglicht
die erfindungsgemäße Schaltung
bzw. erfindungsgemäße FPGA-Einrichtungen
Verifikationsmodi, in denen das korrekte Einschreiben der Konfigurationsdaten
in den Konfigurationsspeicher überprüft wird.
Dies gelingt u.a. durch die erfindungsgemäße Ausführung der Ein-/Ausleseverstärker und
die Verschaltung der vorgehaltenen Multiplexer.
-
In
einem weiteren Verifikationsmodus ist es ferner möglich, die
korrekte Funktionsweise der konfigurierbaren Logikzellen zu prüfen, indem
Referenzdaten in das Speicherzellenfeld eingelesen werden. Das Einlesen
kann wiederum erfindungsgemäß durch
das Ausbilden eines Schieberegisters durch die Ausgangs-Flip-Flops
erfolgen. Dann werden Testeingangsdaten an die konfigurierbaren
Logikzellen geführt
und die entsprechenden logischen Ausgangsdaten mit den Referenzdaten
im Speicherzellenfeld durch die Ein-/Ausleseverstärker verglichen.
-
Die
vorliegende Erfindung eignet sich besonders zur Anwendung in FPGA-Bausteinen,
in denen die konfigurierbaren Logikzellen bereits in einer spaltenförmigen Anordnung
ausgeführt
sind. Dann ist es besonders einfach, die vorgehaltenen Auslese-Flip-Flops zu einem
Schieberegister zu verschalten. Die vorliegende Erfindung ermöglicht es
ferner, in dem Konfigurationsspeicher vorbehaltene Ein-/Ausleseverstärker für die beschriebenen
Verifikationsmodi zu verwenden. Der Transport der Konfigurationsdaten
durch das von den Ausgangs-Flip-Flops ausgebildete Schieberegister
ermöglicht
auch die nur partielle Beschreibung oder Veränderung von Konfigurationsdaten
in den nichtvolatilen Speicherzellen. Bei der matrixförmigen Anordnung
der nichtvolatilen Speicherzellen ist eine einfache Erweiterung
mit Wortleitungen über
die Anzahl der für
eine jeweilige konfigurierbare Logikzelle benötigten Konfigurati onsbits hinaus
möglich,
um mehrere Konfigurationsdatensätze
abzuspeichern. Es ist darüber
hinaus einfach möglich,
Teile der erfindungsgemäßen Schaltungsanordnungen
während
der unterschiedlichen Betriebsmodi abzuschalten bzw. die Versorgungsspannung
herunterzuregeln. Dadurch wird der Stromverbrauch eines entsprechenden
FPGAs reduziert.
-
- LC
- Programmierbare
Logikzelle
- CM
- Konfigurationsschieberegister
- CB
- Konfigurationsbits
- LUT
- Nachschlagetabelle
- PD
- Eingangsdaten
- MUX1,
MUX2
- Multiplexer
- LTO
- Ausgangssignal
- FFO,
FFO'
- Flip-Flop-Ausgangssignal
- DFF
- D-Flip-Flop
- D
- Dateneingang
- Q
- Datenausgang
- CK
- Takteingang
- LC1,
LC2, LCN
- Programmierbare
Logikzelle
- A1,
A2, AN
- Ausgang
- CM1,
CM2, CMN
- Konfigurationsschieberegister
- PD1,
PD2, PDN
- Eingangsdaten
- SW1,
SW2, SWN
- Schalter
- FFO1,
FFON
- Flip-Flop-Ausgangssignal
- SCD1,
SCD2, SCDN
- serielle
Konfigurationsdaten
- CCLK
- Taktsignal
- ISR
- Schieberegister
- Z1,
Z2, ZN
- Schieberegisterzelle
- CD
- Konfigurationsdaten
- MCA
- Speicherzellenfeld
- FPGA
- Einrichtung
- NVMC
- nichtvolatile
Speicherzelle
- WL1,
WL2, WLN
- Wortleitung
- BL1,
BL2, BLN
- Bitleitung
- CLK1
- Taktsignal
- CSEL,
CSEL1, CSEL2
- Auswahlsignal
- ES
- Fehlersignal
- SV1,
SV2
- Fehlersignal
- WA
- Wortleitungsadresse
- 1,
2, 3, 4
- Flip-Flop
- 5
- Dateneingang
- 6
- Datenausgang
- 7
- Takteingang
- 8
- Schalter
- 9
- Konfigurationsspeicher
- 10
- Speicherzelle
- 11
- Bitleitung
- 12
- Wortleitung
- 13
- Bitleitungs-Ein-/Ausleseverstärker
- 14
- Wortleitungs-Ein-/Ausleseverstärker
- 15
- Wortleitungsdecoder
- 16
- Schaltungsanordnung
- 17
- Multiplexer
- 18
- Ausgang
- 19,
20
- Eingang
- 21
- Multiplexer
- 22,
23
- Eingang
- 24
- Ausgang
- 25,
26, 27
- Nachschlagetabelle
- 28
- FPGA-Einrichtung
- 29,
30
- Konfigurationsschieberegister
- 31
- Schieberegisterzelle
- 32
- Einleseeingang
- 33
- Ausleseausgang
- 34
- Eingang
- 35
- Erfindungsgemäße Schaltungsanordnung
- 36
- Ausgang
- 37
- Eingang
- 38
- Steuerbarer
Schalter
- 39
- FPGA-Einrichtung
- 40
- Steuereinrichtung
- 41
- Schreibkonverter
- 42
- Lesekonverter
- 43
- Vergleichseinrichtung
- 44
- UND-Gatter
- 45
- Eingang
- 46
- Ausgang