-
ERFINDUNGSGEBIET
-
Die
Erfindung bezieht sich auf programmierbare Logikeinrichtungen (PLDs).
Insbesondere bezieht sich die Erfindung auf Strukturen und Verfahren zum
Anlegen einer programmierbaren Muldenvorspannung an ausgewählte Abschnitte
einer PLD.
-
ALLGEMEINER
STAND DER TECHNIK
-
Programmierbare
Logikeinrichtungen (PLDs) sind ein gut bekannter Typ eines digitalen
integrierten Schaltkreises, der von einem Benutzer zur Durchführung vorgegebener
Logikfunktionen programmiert werden kann. Ein PLD-Typ – das feldprogrammierbare
Gate Array (FPGA) – beinhaltet
typisch ein Array konfigurierbarer Logikblöcke (CLBs), die von einem Ring
programmierbarer Eingabe-/Ausgabeblöcke (IOBs)
umgeben sind. Die CLBs und IOBs sind über eine programmierbare Interconnect-Struktur untereinander
verbunden. Manche FPGAs beinhalten außerdem zusätzliche Logikblöcke für Sonderzwecke
(zum Beispiel DLLs, RAM usw.).
-
Die
CLBs, IOBs, Interconnect- und anderen Logikblöcke werden typisch durch Laden
eines Stroms von Konfigurationsdaten (Bitstrom) in interne Konfigurations-Speicherzellen
einprogrammiert, die definieren, wie die CLBs, IOBs und Interconnects konfiguriert
sind. Die Konfigurationsdaten können aus
dem Speicher (zum Beispiel aus einem externen PROM) gelesen oder
von einer externen Einrichtung in das FPGA geschrieben werden. Die
Gesamtheit der Zustände
der einzelnen Speicherzellen bestimmt dann die Funktion des FPGAs.
-
In
einer PLD, wie auch in anderen integrierten Schaltkreisen (ICs),
werden die verschiedenen CLBs-, IOBs und Interconnects auf einem
einzigen Substrat geformt. 1A zeigt
ein erstes Siliziumsubstrat, auf dem die Transistoren NMOS 101 und PMOS 102 geformt
sind. Das Siliziumsubstrat 100 ist positiv dotiert (P-Typ).
Folglich wird zum Formen eines PMOS-Transistors eine „N-Mulde" (negativ dotierte
Region) 112 in das Substrat 100 diffundiert, und der
PMOS-Transistor 102 wird innerhalb der N-Mulde 112 geformt.
-
1B zeigt
ein zweites Siliziumsubstrat für einen
integrierten CMOS-Schaltkreis (IC), der mit einem „Dreifachmulden" Prozess geformt
ist. Bei Einsatz des Dreifachmulden-Prozesses werden die NMOS-Transistoren 101 in „P-Mulden" (positiv dotierten
Regionen) 111 innerhalb größerer N-Mulden 113 geformt,
die ihrerseits im P-Typ-Substrat 100 residieren. Desgleichen
werden alle PMOS-Transistoren 102 innerhalb N-Mulden 112 geformt,
die ebenfalls im P-Typ-Substrat 100 residieren. Somit sind
die P-Mulden 111 und N-Mulden 112 sowohl gegeneinander
als auch gegenüber
allen anderen Mulden im Substrat elektrisch isoliert.
-
1C zeigt
ein drittes Siliziumsubstrat, das mit Hilfe eines SOI-Prozesses
(SOI-Technik) geformt ist. Bei Einsatz eines SOI-Prozesses werden
die NMOS-Transistoren 101 innerhalb P-Mulden 111 geformt,
und die PMOS-Transistoren 102 werden innerhalb N-Mulden 112 geformt.
Jede P-Mulde 111 und jede N-Mulde 112 residiert
innerhalb eines elektrisch isolierenden Substrats 110.
Somit isoliert das Substrat die P-Mulden und N-Mulden sowohl gegeneinander
als auch gegenüber
allen anderen Mulden im Substrat.
-
Mit
der Zeit reduzieren IC-Konstrukteure den „VCC" oder Hochspannungspegel, für den die
ICs ausgelegt sind. Diese Senkung des VCCs hat den Vorteil, dass
der Stromverbrauch eines ICs reduziert ist. Dies hat jedoch auch
die unerwünschte
Wirkung, dass die Leistung des ICs beeinträchtigt ist. Deshalb ist es wünschenswert,
Wege zu finden, die diesem Rückgang
in der Leistung entgegenwirken. Ein Verfahren besteht darin, eine
Vorspannung an die Mulden, in denen die Transistoren residieren,
anzulegen.
-
Wenn
entweder eine Dreifachmulde oder ein SOI-Prozess verwendet wird,
können
die P-Mulden und N-Mulden auf Spannungspegel vorgespannt werden,
die sich voneinander und von anderen Mulden des gleichen Typs unterscheiden.
Ein angelegtes Spannungsdifferential wird als „Substratvorspannung" oder (bei Anlegen
an eine Mulde) als Muldenvorspannung bezeichnet.
-
1B und 1C zeigen
Beispiele für
Anlegen von Muldenvorspannungen an P-Mulden und N-Mulden. Zum Beispiel
könnte
für einen NMOS-Transistor 101 eine
positive Muldenvorspannung 105 von circa 0,4 bis 0,6 Volt
an die P-Mulde 111 angelegt werden. In anderen Worten,
wenn die P-Mulde 111 normalerweise eine Nullspannung (0 Volt)
aufweist, wird sie auf circa 0,4 bis 0,6 Volt aufgesteuert.
-
Desgleichen
kann für
einen PMOS-Transistor 102 eine positive Muldenvorspannung 106 von circa –0,4 bis –0,6 Volt
an eine N-Mulde 112 angelegt werden. In anderen Worten,
die sogenannte „positive Muldenvorspannung" steuert die N-Mulde,
bezogen auf den ursprünglichen
Spannungspegel, bis auf eine negative Spannung auf. Zum Beispiel
wird für
einen PMOS-Transistor 102, wenn die N-Mulde normalerweise
bei VCC (Hochspannungspegel) liegt, die N-Mulde auf circa VCC-0,4
bis VCC-0,6 Volt aufgesteuert.
-
So
wie der Ausdruck hier benutzt wird, nennt man das Anlegen einer
verstärkt
positiven Spannung an eine P-Mulde oder einer verstärkt negativen
Spannung an eine N-Mulde das Anlegen einer „positiven Muldenvorspannung". Somit wird effektiv
durch Anlegen einer positiven Muldenvorspannung die umgekehrte Muldenvorspannung
der Transistoren innerhalb der Mulde reduziert. Desgleichen nennt
man das Anlegen einer verstärkt
negativen Spannung an eine P-Mulde oder einer verstärkt positiven
Spannung an eine N-Mulde das Anlegen einer „negativen Muldenvorspannung". Somit wird effektiv
durch Anlegen einer negativen Muldenvorspannung die umgekehrte Muldenvorspannung
der Transistoren in der Mulde erhöht.
-
Wenn
der Spannungspegel einer Mulde geändert wird, verändert sich
die Schwellenspannung (Vt) der Transistoren innerhalb der Mulde.
Zum Beispiel bewirkt eine verstärkt
positive Spannung (das heißt
eine positive Muldenvorspannung) in einer P-Mulde einen Abfall in
der Schwellenspannung der NMOS-Transistoren
innerhalb der Mulde. Diese niedrigere Schwellenspannung erhöht wiederum
den Sättigungs-Drain-Strom, der
die Leistung aller NMOS-Transistoren innerhalb der vorgespannten Mulde
erhöht.
-
Die
umgekehrte Situation ist ebenfalls wahr. Zum Beispiel bewirkt eine
niedrigere Spannung in einer P-Mulde (das heißt eine negative Muldenvorspannung)
einen Anstieg in der Schwellenspannung der NMOS-Transistoren innerhalb
der Mulde, was zu einem reduzierten Leckstrom führt. Gitlin et al. beschreiben
ein Beispiel für
den Einsatz einer negativen Muldenvorspannung zur Reduzierung von
Leckstrom in US-Patent Nr. 5880620, betitelt „Pass Gate Circuit with Body
Bias Control". Der
Einsatz einer negativen Muldenvorspannung bewirkt jedoch auch einen
Rückgang
in der Leistung des Transistors.
-
Obwohl
durch den Einsatz einer positiven Muldenvorspannung die Leistung
eines Transistors erhöht
wird, hat dieser effizientere Vorgang seinen Preis. Abgesehen von
der Erhöhung
des Sättigungs-Drain-Stroms wird
durch die positive Muldenvorspannung auch die Strommenge erhöht, die
durch einen inaktiven Transistor fließt. Dieser Strom ist eine größere Komponente
des Leckstroms in einem integrierten CMOS-Schaltkreis (IC). Folglich
wird durch Anlegen einer positiven Muldenvorspannung an alle Transistoren
auf einem IC die Leistung des Geräts zwar verbessert, es besteht
jedoch die Möglichkeit, dass
dadurch ein unvertretbar großer
Leckstrom erzeugt wird.
-
Zur
Adressierung dieser Einschränkung
können „Festfunktions"-Logikeinrichtungen
(im Gegensatz zu programmierbaren Logikeinrichtungen oder PLDs)
entworfen werden, wobei die positive Muldenvorspannung nur an Schaltkreise
angelegt wird, die besonders geschwindigkeits-kritisch sind. Bei
Verwendung dieser Technik wird der Geschwindigkeitsvorteil nur dort
wo notwendig erzielt, während
der Anstieg des Leckstroms innerhalb akzeptabler Grenzen gehalten
wird.
-
Für PLDs ist
jedoch die Behandlung des Problems des erhöhten Leckstroms, wenn eine
positive Muldenvorspannung angelegt wird, nicht so einfach. Bei
PLDs sind die kritischen Schaltkreise und Pfade nicht auf spezifische
Bereiche der Einrichtung oder auf spezifische Transistoren beschränkt. Zum
Beispiel kann bei einem FPGA ein Benutzer jeden der CLBs zur Durchführung einer
geschwindigkeits-kritischen Funktion programmieren, und ein Pfad
zwischen zwei solchen CLBs kann jeden aus einer großen Anzahl
von Interconnect-Pfaden überqueren. Früher wäre es daher,
um sich positive Muldenvorspannung in PLDs zunutze zu machen, notwendig gewesen,
die Mulden jedes Transistors in den programmierbaren Bereichen der
Einrichtung vorzuspannen, um sicherzustellen, dass die kritischen
Pfade die vorgespannten Transistoren benutzen. Mit zunehmender Größe der PLDs
bis zu einem Punkt, an dem Millionen von Transistoren in jeder PLD
verwendet werden, werden Leckströme
in vielen Designs zu einem begrenzenden Faktor. Deshalb war es bis
jetzt nicht möglich,
sich das positive Vorspannen von Mulden im Design von größeren PLDs
zunutze zu machen.
-
Es
ist daher wünschenswert,
Strukturen und Verfahren vorzusehen, die den Einsatz von Muldenvorspannungstechniken
für große PLDs
ermöglichen.
-
Der
Artikel „VTH-Hopping
Scheme for 82% Power Saving in Low-Voltage Processors" von Koichi Nose
et al, PROCEEDINGS OF THE IEEE 2001 CUSTOM INTEGRATED CIRCUITS CONFERENCE (CICC
2001), SAN DIEGO, CA, MAI 6–9,
2001, behandelt einen Niederspannungsprozessor einschließlich dynamisch
gesteuerter Rückwärtsregelung
(Back-Biasing) (und somit Schwellenspannung) von Transistoren. Eine
Software Routine wertet die Antwortzeit des Prozessors aus und passt
die Rückwärtsregelungsspannung
an, um die notwendige Leistung zu erzielen, ohne das unnötig viel
Strom verbraucht wird.
-
Es
ist ein Ziel der Erfindung, Strukturen und Verfahren bereitzustellen,
die den Einsatz neuer Vorspannungstechniken für große PLDs ermöglichen. Dieses Ziel wird erfindungsgemäß mit einem
Verfahren nach Anspruch 1 und einem Substrat nach Anspruch 5 gelöst.
-
KURZDARSTELLUNG
DER ERFINDUNG
-
Die
Erfindung stellt ein Substrat für
einen integrierten Schaltkreis bereit, der eine Mehrzahl von Mulden
aufweist, von denen jede unabhängig
und programmierbar mit der gleichen oder einer anderen Muldenvorspannung
vorgespannt werden kann.
-
In
manchen Ausführungsformen
ist der integrierte Schaltkreis eine programmierbare Logikeinrichtung
(PLD), wie zum Beispiel ein feldprogrammierbares Gate Array (FPGA).
In einer dieser Ausführungsformen
wird die Vorspannung für
jede Mulde oder eine Gruppe von Mulden programmierbar von einem
Vorspannungserzeugerschaltkreis über
einen von einer programmierbaren Speicherzelle gesteuerten Durchgangstransistor
angelegt. Die programmierbaren Speicherzellen werden mit dem gleichen Konfigurationsbitstrom
programmiert, der das Programmieren von CLBs-, IOBs und Interconnect
im FPGA steuert. Das FPGA ist in zwei oder mehr Abschnitte unterteilt,
wobei das Vorspannen von Mulden separat gesteuert wird. Die FPGA-Abschnitte können Nachschlagetabellen,
individuelle Transistoren wie zum Beispiel Durchgangstransistoren,
Multiplexer, ganze CLBs oder irgendwelche anderen Abschnitte der
Einrichtung umfassen.
-
In
manchen Ausführungsformen
ist eine Mehrzahl von Muldenvorspannungspegeln vorgesehen. Werte,
die in zwei oder mehr SRAM Zellen gespeichert sind, werden decodiert,
um eine aus der Mehrzahl von Muldenvorspannungswerten für jede Mulde
auszuwählen.
-
Ein
weiterer Aspekt der Erfindung stellt Verfahren zum selektiven Anlegen
einer Muldenvorspannung an nur diejenigen Abschnitte einer PLD bereit,
wo eine solche Vorspannung notwendig oder wünschenswert ist, das heißt, es wird
eine positive Muldenvorspannung nur an Transistoren angelegt, die
sich in kritischen Pfaden innerhalb eines Benutzerdesigns befinden.
-
Gemäß einer
Ausführungsform
der Erfindung definiert ein FPGA Benutzer die kritischen Pfade in
seinem oder ihrem Design zur gleichen Zeit, wie der Benutzerschaltkreis
definiert wird. Die FPGA-Implementierungssoftware
(Software, die eine Designbeschreibung akzeptiert und einen Konfigurationsbitstrom
erzeugt, der das beschriebene Design in einem FPGA implementiert)
merkt sich die designierten kritischen Pfade und erzeugt einen Konfigurationsbitstrom,
der positives Vorspannen von Mulden nur für Transistoren erlaubt, die
in den kritischen Pfaden liegen, oder nur für programmierbare Logikelemente (zum
Beispiel CLBs oder Nachschlagetabellen) erlaubt, die diese Transistoren
enthalten.
-
In
einer weiteren Ausführungsform
beinhaltet die FPGA-Implementierungssoftware Timing-Software (wie in
der Technik gut bekannt ist), die automatisch die kritischen Pfade
im Benutzerdesign bestimmt. Die Software ermöglicht dann das positive Vorspannen
von Mulden für
Transistoren auf diesen bestimmten kritischen Pfaden.
-
In
einer Ausführungsform überwacht
die FPGA-Implementierungssoftware die Anzahl der Transistoren, an
die eine positive Muldenvorspannung angelegt wurde, und gibt eine
Fehlermeldung aus, wenn die Anzahl dieser Transistoren derart ist,
dass der angegebene maximale Leckstrom für die Einrichtung überschritten
wird. In einer weiteren Ausführungsform
sind negative Muldenvorspannungspegel programmierbar vorgesehen.
In anderen Worten, eine P-Mulde kann programmierbar auf eine niedrigere
Spannung vorgespannt werden, und eine N-Mulde kann programmierbar
auf eine höhere Spannung
vorgespannt werden. Dieses negative Vorspannen von Mulden führt zu einer
verminderten Leistung von Transistoren innerhalb der Mulde und einem
damit einhergehenden reduzierten Leckstrom. In einer dieser Ausführungsformen
gleicht die FPGA-Implementierungssoftware eine ansonsten nicht mehr
akzeptable große
Anzahl von Transistoren mit positiver Muldenvorspannung dadurch
aus, dass Mulden in Transistoren auf nichtkritischen Pfaden negativ
vorgespannt werden. In einer Ausführungsform gibt der Benutzer
diese nichtkritischen Pfade an. In einer weiteren Ausführungsform
bestimmt die FPGA-Implementierungssoftware automatisch die mindest-kritischen Pfade
im Benutzerdesign.
-
In
einer weiteren Ausführungsform
wird negatives Vorspannen von Mulden benutzt, um Leckströme auf nichtkritischen
Pfaden zu reduzieren, während
kein positives Vorspannen von Mulden stattfindet.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die
vorliegende Erfindung ist anhand von Beispielen, nicht Einschränkungen,
unter Bezugnahme auf die folgenden Figuren veranschaulicht, in denen
sich gleiche Bezugsziffern auf gleiche Elemente beziehen.
-
1A zeigt
das Substrat eines beispielhaften integrierten CMOS-Schaltkreises.
-
1B zeigt
das Substrat eines beispielhaften integrierten CMOS-Schaltkreises,
der einen Dreifachmuldenprozess verwendet.
-
1C zeigt
das Substrat eines beispielhaften integrierten CMOS-Schaltkreises,
der einen SOI-Prozess
(SOI-Technik) verwendet.
-
2A–2H zeigen
beispielhafte Siliziumsubstrate, an die programmierte Muldenvorspannung
gemäß verschiedener
Ausführungsformen
der Erfindung angelegt wird.
-
3 zeigt
einen Benutzerschaltkreis, der in mehreren konfigurierbaren Logikblöcken (CLBs)
eines FPGAs implementiert ist.
-
4 zeigt
ein erstes erfindungsgemäßes Verfahren
zur Implementierung einer PLD.
-
5 zeigt
ein zweites erfindungsgemäßes Verfahren
zur Implementierung einer PLD.
-
6 zeigt
ein drittes erfindungsgemäßes Verfahren
zur Implementierung einer PLD.
-
7 zeigt
ein viertes erfindungsgemäßes Verfahren
zur Implementierung einer PLD.
-
8 zeigt
ein fünftes
erfindungsgemäßes Verfahren
zur Implementierung einer PLD.
-
9 zeigt
ein sechstes erfindungsgemäßes Verfahren
zur Implementierung einer PLD.
-
10 zeigt
ein siebtes erfindungsgemäßes Verfahren
zur Implementierung einer PLD.
-
AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
vorliegende Erfindung lässt
sich auf eine Vielfalt von programmierbaren Logikeinrichtungen (PLDs)
anwenden. Sie hat sich als besonders anwendbar und vorteilhaft für feldprogrammierbare Gate
Arrays (FPGAs) erwiesen. Obwohl die vorliegende Erfindung nicht
auf diese beschränkt
ist, wird sie anhand von spezifischen Beispielen, in diesem Fall
anhand eines FPGAs beschrieben, wobei für die Programmierung SRAM Zellen
verwendet wurden.
-
In
der folgenden Beschreibung sind zahlreiche spezifischen Details
angegeben, um ein gründliches
Verständnis
der Erfindung zu vermitteln. Für
einen in der Technik bewanderten Fachmann ist jedoch erkennbar,
dass die vorliegende Erfindung auch ohne diese spezifischen Details
praktiziert werden kann.
-
SCHALTKREISKONFIGURATIONEN
-
Muldenvorspannen
kann zur Erhöhung
der Transistorleistung (positives Muldenvorspannen) oder zur Reduzierung
des Leckstroms (negatives Muldenvorspannen) verwendet werden. 2A bis 2F zeigen
verschiedene Siliziumsubstrate und beispielhafte Vorspannungskonfigurationen,
die entsprechend der verschiedenen Ausführungsformen der vorliegenden
Erfindung verwendet werden können.
-
2A zeigt
ein erstes Siliziumsubstrat, an welches eine programmierbare Muldenvorspannung angelegt
ist. Das Siliziumsubstrat 200 und die darauf ausgebildeten
verschiedenen Strukturen gleichen denen von 1B, die
mit Hilfe eines Dreifachmuldenprozesses geformt wurden. In dem Beispiel
von 2A kann selektiv eine positive Muldenvorspannung 205 an
die P-Mulde 211 mittels Schalter 203 angelegt werden.
Schalter 203 wird von der programmierbaren Speicherzelle 204 gesteuert.
In einer Ausführungsform
ist Schalter 203 ein NMOS Passgate, während Speicherzelle 204 eine
Konfigurationsspeicherzelle in einem FPGA ist.
-
Ferner
kann in 2A selektiv eine positive Muldenvorspannung 206 an
die N-Mulde 212 mittels Schalter 207 angelegt
werden (das heißt,
es wird eine verstärkt
negative Spannung an die N-Mulde angelegt). Schalter 207 wird
von der programmierbaren Speicherzelle 208 gesteuert. In
einer Ausführungsform
ist Schalter 207 ein PMOS Passgate, während Speicherzelle 208 eine
Konfigurationsspeicherzelle in einem FPGA ist.
-
Vorspannungserzeugerschaltkreise,
wie die in 2A mit 205 und 206 bezeichneten
Schaltkreise (und die in den 2C bis 2H dargestellten Schaltkreise)
sind in der Technik gut bekannt, und werden deshalb hier nicht im
Detail beschrieben.
-
In
der Ausführungsform
von 2A sind ferner Schalter 203, 207 und
Vorspannungserzeugerschaltkreise 205, 206 innerhalb
von Substrat 200 implementiert. In anderen Ausführungsformen
wird die Muldenvorspannung jedoch von einer externen Quelle bereitgestellt.
-
2B zeigt
dieselbe positive Muldenvorspannungskonfiguration, hier implementiert
auf einem SOI-Substrat ähnlich
dem in 1C.
-
2C zeigt
den Einsatz von negativer Muldenvorspannung auf P-Mulden und N-Mulden.
In dem Beispiel von 2C kann eine negative Muldenvorspannung 215 selektiv
an P-Mulde 211 mittels Schalter 203 angelegt werden.
Schalter 203 wird von der programmierbaren Speicherzelle 204 gesteuert. Desgleichen
kann eine negative Muldenvorspannung 216 selektiv an N-Mulde 212 (das
heißt,
Anlegen einer verstärkt
positiven Spannung an die N-Mulde) mittels Schalter 207 angelegt
werden. Schalter 207 wird von der programmierbaren Speicherzelle 208 gesteuert.
-
2D zeigt
dieselbe negative Muldenvorspannungskonfiguration, hier implementiert
auf einem SOI-Substrat ähnlich
dem in 1C.
-
2E zeigt
eine weitere Konfiguration des Dreifachmuldensubstrats von 1B,
wobei eine programmierbare Auswahl zwischen positivem Muldenvorspannen
und negativem Muldenvorspannen getroffen wird.
-
2F zeigt
dieselbe Konfiguration, hier auf einem SOI-Substrat.
-
2G zeigt
eine weitere Konfiguration des Dreifachmuldensubstrats von 1B,
wobei eine programmierbare Auswahl zwischen vier verschiedenen Muldenvorspannungen
getroffen wird, die von Muldenvorspannungsgeneratoren 221–224 bereitgestellt
werden. Für
den NMOS-Transistor 201 erfolgt die Auswahl über Multiplexer 220,
der von zwei programmierbaren Speicherzellen 225 und 226 gesteuert
wird. Hinweis: in dieser Ausführungsform
ist der Schalterstromkreis als Multiplexer, nicht als NMOS- oder
PMOS-Passgate, wie in den Ausführungsformen
von 2A–2F,
implementiert. Zum Beispiel könnte
der Multiplexer als eine Mehrzahl von parallelen Passgates implementiert
werden. Es gibt viele gutbekannte Schalterstromkreistypen, die zur Implementierung
der Erfindung verwendet werden können.
Außerdem
könnten
die Schalterstromkreise mit anderen Mitteln als programmierbaren
Speicherzellen gesteuert werden. Zum Beispiel könnten die Schalterstromkreise
von Flip-Flops gesteuert werden, welche von anderer programmierbare
Logik innerhalb des Benutzerschaltkreises getrieben werden. Somit
könnten
die Schalterstromkreise dynamisch gesteuert werden, vorausgesetzt,
dass genügend
Zeit zum Anlegen der Muldenvorspannung erlaubt wird. Viele andere
Arten von Schaltersteuerung könnten
ebenfalls benutzt werden.
-
Die
vier Vorspannungen V1–V4
könnten
alles Muldenvorspannungen sein, die positiv, negativ, eine Mischung,
und dergleichen mehr sind. Eine der vier Muldenvorspannungen könnte eine
Nullvorspannung sein, in welchem Fall einer der Muldenvorspannungsgeneratoren 221–224 ausgelassen
werden kann. Für
den PMOS-Transistor 202 kann die Auswahl über Multiplexer 230 vorgenommen
werden, der von zwei programmierbaren Speicherzellen 235 und 236 gesteuert
wird. Die vier Vorspannungen V5–V8 können die
gleichen wie die vier Vorspannungen V1–V4 sein oder sich von diesen
unterscheiden.
-
2H zeigt
die gleiche Konfiguration, hier für ein SOI-Substrat angelegt.
-
Viele
andere Konfigurationen sind möglich, zum
Beispiel könnte
eine einzelne Speicherzelle zur Steuerung mehrerer Schalter dienen.
Zum Beispiel könnten
die Speicherzellen 204 und 208 in 1A–2F ein
und dieselbe Speicherzelle sein. Desgleichen könnten die Speicherzellen 225 und 226 die
gleichen wie Speicherzellen 235 und 236 sein.
-
BEISPIELHAFTER
BENUTZERSCHALTKREIS
-
3 zeigt
die Logikelemente eines FPGAs, in dem Benutzerlogik abgebildet und
platziert wurde. Unter „Abbildung" wird das Zusammenfassen
spezifischer Abschnitte eines Benutzerschaltkreises zu Sätzen verstanden,
die in die Logikelemente des FPGAs hineinpassen. Unter „Platzierung" wird die Zuweisung
eines Satzes zu einem spezifischen Logikelement an einem bestimmten
Ort innerhalb des FPGAs verstanden.
-
In 3 sind
die dargestellten Logikelemente konfigurierbare Logikblöcke oder
CLBs, die in einem regulären
Array angeordnet sind. Das in 3 dargestellte
Beispiel einer Benutzerlogik beinhaltet vier Logiksätze, die
in die CLBs CLB02, CLB01, CLB11 und CLB21 platziert sind. Zwei Pfade
verlaufen durch den Schaltkreis. Ein erster Pfad 301 erstreckt
sich von Node A durch CLB02 zu Node B, und von dort durch CLB21
zu Node C. Ein zweiter Pfad 300 erstreckt sich von Node
D durch CLB01 zu Node E, durch CLB11 zu Node F und durch CLB21 zu
Node C. In diesem Beispiel durchquert die Logik in jedem der CLBs
nur eine Nachschlagetabelle, außer
in CLB21, in dem der Ausgangswert der Nachschlagetabelle in einem
Flip-Flop gespeichert wird, und der Flip-Flop-Ausgang auf Node C
platziert wird.
-
Da
der zweite Pfad 300 drei Nachschlagetabellen durchquert,
während
der erste Pfad 301 nur zwei durchquert, ist klar, dass
der zweite Pfad länger für die Durchquerung
braucht (der Einfachheit halber sei angenommen, dass Routing-Verzögerungen über diese
kurzen Entfernungen relativ vernachlässigbar sind). Es ist daher
die Geschwindigkeit des zweiten Pfads, die die Gesamtgeschwindigkeit
des Benutzerschaltkreises bestimmt. Folglich wird der zweite Pfad der „kritische
Pfad" genannt, und
der erste Pfad wird der „nichtkritische" Pfad genannt.
-
Ein
kritischer Pfad kann vom Benutzer designiert werden, wenn er oder
sie die Design-Beschreibung
eingibt, die Information kann aber auch vom Benutzer beim Initiieren
der FPGA-Implementierungssoftware
oder durch Platzieren der Information in eine Datei oder interaktiv
während
der Implementierung oder durch andere Mittel geliefert werden. Es
ist jedoch auch möglich,
dass die Information dem Design durch die Implementierungssoftware
entnommen wird, so dass auf einen Eingriff des Benutzers verzichtet
werden kann.
-
Zum
Beispiel ist in der Technik des FPGA-Softwaredesigns gut bekannt,
einem Benutzerdesign Timing-Information vor, während oder nach der Implementierung
zu entnehmen, sowohl zur Optimierung der Ergebnisse als auch zur
Bekanntgabe der Leistung des resultierenden Designs. Diese Technik
wird zum Beispiel allgemein von der zur Zeit von Xilinx Inc. angebotenen
FPGA-Implementierungssoftware benutzt.
-
Die
FPGA-Implementierungssoftware führt typisch
bei der Implementierung eines Benutzerschaltkreises im FPGA eine
Reihe von Schritten durch. Diese Schritte könnten zum Beispiel Abbildung,
Platzierung und Routing umfassen. Abbildung und Platzierung wurden
bereits oben beschrieben. „Routing" ist die Zuweisung
der verschiedenen Pfade zu den im FPGA verfügbaren verschiedenen programmierbaren
Interconnect-Ressourcen. Timing-Information (einschließlich kritischer
Pfad-Designierungen) wird allgemein in allen drei Schritten verwendet. Während des
Abbildungsschritts wird versucht, Logik auf kritischen Pfaden zu
einem einzigen Logikelement zusammenzufassen. Während des Platzierungschritts,
wie im Beispiel von 3, wird Logik auf dem kritischen
Pfad gewöhnlich
derart platziert, dass der physikalische Abstand zwischen aufeinanderfolgenden
Logiksätzen
minimiert wird. Somit wird die Routing-Verzögerung auf dem kritischen Pfad
soweit wie möglich
minimiert, um die Auswirkung dieses langsamsten Pfades auf die Leistung
des Benutzerschaltkreises zu reduzieren.
-
Während des
Routing-Schritts werden die schnellsten Interconnect-Ressourcen
den kritischsten Pfaden zugewiesen.
-
In
einer Ausführungsform
funktioniert die FPGA-Implementierungssoftware wie folgt: Das FPGA ist
in Abschnitte unterteilt, die jeweils separat gesteuertes Muldenvorspannen
aufweisen. Zum Beispiel hat in dieser Ausführungsform jede Nachschlagetabelle
(LUT) separat gesteuertes Muldenvorspannen. Jede LUT ist entweder
als schnelles Modell (mit positiver Muldenvorspannung) oder als
langsames Modell (ohne Muldenvorspannung) ausgelegt. Mit dem schnellen
Modell sind Kosten verbunden. Während der
Platzierungs- und/oder Routing-Phase wird eins der beiden Modelle
aufgrund von Verzögerungs-
und Energieeinschränkungen
ausgewählt.
Zum Beispiel könnte
der Router die von der positiv vorgespannten Mulde verbrauchte statische
Energie und die dynamische Energie aller Verbindungen im System
gegeneinander ausbalancieren.
-
In
einer anderen Ausführungsform
ist ein zusätzliches
Modell – das
energiesparende Modell – vorgesehen.
Das energiesparende Modell ist mit LUTs verknüpft, an die negative Muldenvorspannung angelegt
wurde. In einer anderen Ausführungsform werden
mehrere Modelle mit verschiedenen angelegten Vorspannungspegeln
benutzt.
-
Die
Erfindung stellt zusätzliche
Verfahren zur Minimierung von Verzögerungen auf kritischen Pfaden
bereit. Gemäß eines
erfindungsgemäßen Aspekts
werden Verzögerungen
auf einem kritischen Pfad dadurch minimiert, dass selektiv eine
positive Muldenvorspannung an Transistoren angelegt wird, die Logik
auf dem Pfad implementieren. In dem Benutzerschaltkreis von 3 könnte zum
Beispiel eine positive Muldenvorspannung an die Gesamtheit der CLBS
CLB01, CLB11 und CLB21 angelegt werden. Auf diese Weise kann der
Geschwindigkeitsvorteil der positiven Muldenvorspannung voll ausgenutzt werden
(weil der einschränkende
Pfad soweit wie möglich
beschleunigt wird), während
der zusätzliche Leckstrom
auf die CLBs auf dem kritischen Pfad beschränkt ist. Keine Muldenvorspannung
wird an CLBs angelegt, die sich nicht auf dem kritischen Pfad befinden,
zum Beispiel CLBs CLB02, CLB12 und so weiter.
-
In
einer anderen Ausführungsform
wird eine positive Muldenvorspannung nur an einige der Transistoren
auf dem kritischen Pfad angelegt. Der Pfad muss nur soweit beschleunigt
werden, wie zur Erreichung des vorgegebenen Timing-Erfordernisses
notwendig erforderlich ist. Wenn somit das Timing-Erfordernis durch
Vorspannen nur eines Teilsatzes von Transistoren erfüllt ist,
werden nur die Transistoren in diesem Teilsatz positiv vorgespannt.
Dieser Ansatz minimiert den zusätzlichen
Leckstrom, der durch das Anlegen der positiven Muldenvorspannung
erzeugt wird.
-
In
manchen Ausführungsformen
gibt es zwei oder mehr kritische Pfade. Wenn nur einige der Transistoren
auf jedem Pfad positiv vorzuspannen sind und einige Transistoren
von mehreren kritischen Pfaden gemeinsam benutzt werden, werden
die Mulden, die die gemeinsam benutzten Transistoren enthalten, vorzugsweise
zuerst vorgespannt. Wenn dann die Timing-Erfordernisse nicht erfüllt werden,
können
zusätzliche
Transistoren auf jedem Pfad wie erforderlich positiv vorgespannt
werden.
-
In
einer anderen Ausführungsform,
während positive
Muldenvorspannung an CLBs auf dem kritischen Pfad (CLB02) angelegt
wird, wird negative Muldenvorspannung an CLBs auf dem langsamsten Pfad
(CLB02) und/oder an CLBs angelegt, die nicht im Benutzerschaltkreis
verwendet werden (CLBs CLB12, CLB22, CLB00, CLB10 und CLB20). Somit werden
die nichtkritischen Pfade tatsächlich
verlangsamt, was den Leckstrom reduziert und den Ausgleich für den erhöhten Leckstrom
schafft, der sich aus der positiven Muldenvorspannung auf den kritischen
Pfaden ergibt.
-
In
anderen Ausführungsformen
wird eine Muldenvorspannung nur an diejenigen Abschnitte des CLBs
angelegt, die tatsächlich
vom Benutzerschaltkreis verwendet werden. Zum Beispiel werden im
Schaltkreis von 3 nur Nachschlagetabellen (LUTs)
in den CLBs CLB02, CLB01 und CLB11 benutzt, das heißt die Flip-Flops
in diesen CLBs werden nicht benutzt. Folglich wird in diesen CLBs
die Muldenvorspannung nur an die LUTs im CLB angelegt. In einer
anderen Ausführungsform
wird eine Muldenvorspannung auch an die Durchgangstransistoren angelegt,
um den Zugriff auf und von den LUTs und Interconnects zu gestatten.
In anderen Ausführungsformen
(einschließlich
solcher, die in PLDs mit anderen programmierbaren Unterteilungen
als CLBs und LUTs implementiert sind) wird selektiv eine Muldenvorspannung
an andere Gruppierungen programmierbarer Logik angelegt.
-
In
einer Ausführungsform
wird eine positive Muldenvorspannung an alle Transistoren in der
Benutzerlogik (oder an einen vorherbestimmten Teilsatz derselben)
angelegt. Somit wird anfänglich
eine große
Anzahl von Transistoren auf ihre höchste Geschwindigkeit eingestellt.
Dann wird die Muldenvorspannung selektiv von den nichtkritischen
Transistoren entfernt und der erwartete Leckstrom überwacht. Wenn
der erwartete Leckstrom unter einen vorgegebenen Wert abfällt, wird
die positive Muldenvorspannung auf den restlichen vorgespannten
Transistoren beibehalten.
-
Programmierbare
Spannungsgeneratoren in der Technik des programmierbaren Logikdesigns sind
bekannt. Zum Beispiel beschreibt Lee et al. eine Anzahl von illustrativen
programmierbaren Ladepumpenschaltkreisen in US-Patent 5661685, betitelt „Programmierbare
Logikeinrichtung mit konfigurierbarer Stromversorgung". Programmierbare
Ladepumpen sind allgemein verstellbar konzipiert, um Variationen
im Herstellungsprozess, die Verschiebungen in der Ausgangsspannung
der Ladepumpen verursachen können,
durch Ändern
von Spannungspegeln auszugleichen.
-
Ein
programmierbarer Spannungsgenerator kann aber auch eine weitere
Komplexitätsebene
zur vorliegenden Erfindung hinzufügen, indem er zwei oder mehr
verschiedene Muldenvorspannungen zur Auswahl bereitstellt. Wenn
mehrere Muldenvorspannungswerte verfügbar sind, kann die FPGA-Implementierungssoftware
berechnen, um wie viel die Geschwindigkeit des kritischen Pfads
erhöht
werden muss, indem sie die Differenz zwischen der Timing-Verzögerung auf
dem kritischen Pfad mit der auf dem nächstlangsamsten Pfad vergleicht.
Wenn nur eine leichte Erhöhung
der Geschwindigkeit benötigt
wird, kann eine kleine Muldenvorspannung angelegt werden, die einen
entsprechenden leichten Anstieg im Leckstrom nach sich zieht. Wenn
der kritische Pfad sehr viel langsamer als der nächstkritischste Pfad ist, wird
die stärkste
verfügbare
Muldenvorspannung angelegt. Wenn die Geschwindigkeit mehrerer Transistoren
(oder größerer FPGA-Abschnitte)
angepasst wird, kann die Implementierungssoftware verschiedene Kombinationen
von Muldenvorspannungspegeln auf verschiedenen Transistoren und
verschiedenen Pfaden ausprobieren, bis die optimale Konfiguration
erzielt wird.
-
In
einer Ausführungsform
stehen vier positive Muldenvorspannungspegel für eine P-Mulde zur Verfügung: 0
Volt, +X/3 Volt, +2X/3 Volt und +X Volt, wobei X ein positiver Wert
ist. Wenn zum Beispiel X = 0,6, sind die vier verfügbaren positiven
Muldenvorspannungspegel 0 Volt, 0,2 Volt, 0,4 Volt und 0,6 Volt. Bei
diesen Auswahlen ergibt eine positive Muldenvorspannung von 0 Volt
(das heißt
es wird keine Vorspannung angelegt) die schlechteste Leistung, aber den
niedrigsten Leckstrom, während
eine positive Muldenvorspannung von 0,6 Volt die beste Leistung, aber
den höchsten
Leckstrom ergibt. Bei vier Auswahlmöglichkeiten wird die Wahl dadurch
getroffen, dass zwei Speicherzellen (über den Konfigurationbitstrom)
mit entsprechenden Bitwerten programmiert werden.
-
In
einigen Ausführungsformen
sind die verfügbaren
Muldenvorspannungspegel negative Muldenvorspannungspegel. Zum Beispiel
könnten
für eine
P-Mulde die verfügbaren
Werte 0 Volt, –X/3
Volt, –2X/3
Volt und –X
Volt sein, wobei X ein positiver Wert ist.
-
In
anderen Ausführungsformen
stehen sowohl positive als auch negative Muldenvorspannungen für eine einzelne
Mulde zur Verfügung.
Zum Beispiel könnten
für eine
P-Mulde die verfügbaren
Werte –X
Volt, 0 Volt und +X Volt sein, wobei X ein positiver Wert ist.
-
BEISPIELHAFTE
VERFAHREN
-
4–10 zeigen
mehrere beispielhafte Verfahren für die vorliegende Erfindung.
Diese Verfahren sind dargestellt und beschrieben, um einige Einsätze der
vorliegenden Erfindung zu veranschaulichen; die Erfindung ist jedoch
nicht auf die dargestellten Variationen beschränkt.
-
4 zeigt
eine erste Ausführungsform
der Erfindung. In Schritt 401 werden die Transistoren auf einem
ersten kritischen Pfad des Benutzerdesigns bestimmt. In Schritt 402 wird
jeder Transistor auf dem kritischen Pfad identifiziert. In einer
Ausführungsform wird
jeder Transistor-Verweis in der Design-Datei mit einer Kennung „markiert", die den Transistor
als kritischen Pfad-Transistor identifiziert. In Schritt 403 wird eine
Konfigurationsdatei erzeugt, welche Information enthält, die
eine positive Muldenvorspannung auf den als kritische Pfad-Transistoren
identifizierten Transistoren erlaubt.
-
In
einer wahlweisen Reihe von Schritten, die gleichzeitig mit den Schritten 401 und 402 ablaufen können, werden
Transistoren auf einem zweiten kritischen Pfad auf ähnliche
Weise bestimmt (Schritt 404) und identifiziert (Schritt 405).
In dieser Ausführungsform
erlaubt die Konfigurationsdatendatei positive Muldenvorspannung
für Transistoren
auf beiden kritischen Pfaden.
-
In
einer weiteren wahlweisen Reihe von Schritten wird die Anzahl der
kritischen Pfad-Transistoren überwacht
(Schritt 406), um einen Anstieg des Leckstroms der PLD
bis auf ein nicht mehr akzeptables Niveau zu vermeiden. Wenn die
Anzahl der kritischen Pfad-Transistoren eine vordefinierte akzeptable
Anzahl überschreitet,
wird eine Fehler- oder Warnmeldung an den Benutzer ausgegeben.
-
5 zeigt
eine zweite Ausführungsform
der Erfindung. In Schritt 501 werden die Transistoren auf einem
kritischen Pfad des Benutzerdesigns bestimmt. In Schritt 502 wird
jeder Transistor auf dem kritischen Pfad identifiziert. In einer
Reihe von Schritten, die gleichzeitig mit Schritt 501 und
Schritt 502 ablaufen können,
werden auch die Transistoren auf einem nichtkritischen Pfad bestimmt
(Schritt 504) und identifiziert (Schritt 505).
In Schritt 503 wird eine Konfigurationsdatendatei erzeugt,
welche Information enthält,
die positive Muldenvorspannung auf den als kritische Pfad-Transistoren
identifizierten Transistoren (Schritt 508) erlaubt und
ferner negative Muldenvorspannung auf den als nichtkritische Pfad-Transistoren
identifizierten Transistoren (Schritt 509) erlaubt.
-
Ein
Transistor kein Teil sowohl des kritischen Pfads als auch des nichtkritischen
Pfads, zum Beispiel ein Transistor in CLB CLB 21 von 3,
sein. In diesem Fall wird der Transistor vorzugsweise als kritischer
Pfad-Transistor behandelt.
-
Die
in 6 dargestellte Ausführungsform gleicht der Ausführungsform
von 5 mit der Ausnahme, dass die Anzahl der Transistoren
auf dem kritischen Pfad überwacht
wird (Schritt 606), und negative Muldenvorspannung für Transistoren
auf den nichtkritischen Pfaden nur dann erlaubt wird, wenn die Anzahl
der kritischen Pfad-Transistoren eine vordefinierte Anzahl überschreitet.
-
7 zeigt
eine vierte Ausführungsform
der Erfindung. In Schritt 701 wird ein Benutzerschaltkreis ausgewertet,
um die Timing-Verzögerungen
der beiden Pfade zu bestimmen. In Schritt 702, werden die beiden
Timing-Verzögerungen
miteinander verglichen und ein schneller Pfad sowie ein langsamerer Pfad
bestimmt. In Schritt 703 wird eine Konfigurationsdatendatei
erzeugt, welche Muldenvorspannung (entweder positive oder negative
Muldenvorspannung oder beides) auf mindestens einem Transistor auf
mindestens einem der Pfade erlaubt.
-
Die
Ausführungsform
von 8 ist ähnlich der
von 7 mit der Ausnahme, dass nach Bestimmen der schnelleren
und langsameren Pfade in Schritt 802 eine Timing-Differenz
zwischen den beiden Pfaden bestimmt wird, zum Beispiel dadurch, dass
die Timing-Verzögerung
des schnelleren Pfades von der Timing-Verzögerung des langsameren Pfades
subtrahiert wird (Schritt 810). Aufgrund dieser Timing-Differenz
wird ein bevorzugter Muldenvorspannungswert aus einer Gruppe verfügbarer Muldenvorspannungswerte
ausgewählt
(Schritt 811). Diese Werte sind diejenigen, die vom Spannungsgeneratorschaltkreis
unterstützt
werden, der die Muldenvorspannung für jeden Transistor bereitstellt.
Wie bereits beschrieben kann, ein solcher Schaltkreis auf der Grundlage
von zwei in zwei Konfigurationsspeicherzellen eines FPGAs gespeicherten
Logikwerten eine Auswahl aus vier verfügbaren Werten treffen. In Schritt 812 wird
eine Konfigurationsdatendatei erzeugt, welche das Muldenvorspannen
bis auf den bevorzugten Wert auf mindestens einem Transistor auf mindestens
einem der Pfade erlaubt.
-
In 9 ist
eine sechste Ausführungsform der
Erfindung dargestellt. In Schritt 901 wird ein Benutzerschaltkreis
ausgewertet, um die Timing-Verzögerungen
auf zwei Pfaden zu bestimmen. In Schritt 902 wird die Differenz
zwischen den beiden Timing-Verzögerungen
bestimmt. In Schritt 903 wird bestimmt, zu welchem Pfad
jeder Transistor gehört. Wie
oben beschrieben, wird ein Transistor auf beiden Pfaden vorzugsweise
als ein dem langsameren der beiden Pfade angehörenden Transistor behandelt. (Die
Reihenfolge der Schritte 902 und 903 kann umgekehrt
werden.) In Schritt 904 wird auf der Grundlage der bestimmten
Timing-Differenz und des Pfades, zu dem jeder Transistor gehört, ein
bevorzugter Muldenvorspannungswert aus einer Gruppe verfügbarer Muldenvorspannungswerte
ausgewählt.
In Schritt 905 wird eine Konfigurationsdatendatei erzeugt,
welche das Muldenvorspannen bis auf den bevorzugten Wert auf mindestens
einem Transistor auf mindestens einem der Pfade erlaubt.
-
In 10 ist
eine siebte Ausführungsform der
Erfindung dargestellt. In Schritt 1001 wird ein Benutzerschaltkreis
auf der Grundlage von Kostenkriterien ausgewertet, die zum Beispiel
die durch Anlegen einer positiven Muldenvorspannung erzielte erhöhte Geschwindigkeit,
den sich durch eine positive Muldenvorspannung ergebenden erhöhten Leckstrom, die
sich aus dem Anlegen einer negativen Muldenvorspannung ergebende
reduzierte Geschwindigkeit, den sich aus einer negativen Muldenvorspannung
ergebenden reduzierten Leckstrom sowie andere Energieverbrauchsbelange,
wie zum Beispiel den aus der Verdrahtung der verschiedenen Elemente
des Benutzerschaltkreises resultierenden Leckstrom, beinhalten können.
-
In
Schritt 1002 werden aufgrund der in Schritt 1001 durchgeführten Auswertung
erste und zweite logische Gruppierungen anhand des Benutzerschaltkreises
ausgewählt.
(In manchen Ausführungsformen
werden Schritt 1001 und Schritt 1002 gleichzeitig
durchgeführt.)
In Schritt 1003 wird eine Konfigurationsdatendatei erzeugt,
welche das Muldenvorspannen bis auf einen ersten Wert in der ersten
Gruppierung und bis auf einen zweiten Wert in der zweiten Gruppierung
erlaubt.
-
In
einer Ausführungsform
weist die erste Gruppierung eine angelegte positive Vorspannung auf,
während
die zweite Gruppierung keine angelegte Vorspannung aufweist. In
einer weiteren Ausführungsform
weist die erste Gruppierung eine angelegte negative Vorspannung
auf, während
die zweite Gruppierung keine angelegte Vorspannung aufweist. In
einer wiederum weiteren Ausführungsform
weisen beide Gruppierungen angelegte positive Vorspannungen aber
mit verschiedenen Werten auf, und so weiter. Bei Einsatz dieser
Ausführungsform
sind viele andere Variationen möglich,
die für
einen auf diesem Gebiet bewanderten Fachmann ohne Weiteres erkennbar
sind.
-
Fachleute,
die in den einschlägigen
Techniken der Erfindung bewandert sind, werden verschiedene Modifikationen
und Ergänzungen
erkennen, die aufgrund dieser Offenbarung möglich sind. Zum Beispiel beschreibt
der obige Text die Strukturen und Verfahren der Erfindung im Zusammenhang
mit FPGAs, die mit CMOS-Transistoren auf einem Siliziumsubstrat
implementiert werden. Die Erfindung kann jedoch auch auf andere
programmierbare Logikeinrichtungen angewendet werden, einschließlich Einrichtungen,
die auf anderen Substraten und in anderen Logiktypen implementiert
sind, einschließlich, aber
nicht beschränkt
auf, NMOS, PMOS, Bipolar, und so weiter. Ferner können zur
Implementierung der Erfindung andere Ladepumpen, andere programmierbare
Spannungsgeneratoren, andere Speicherzellen, andere Transistoren,
andere Substrate, andere N-Mulden und P-Mulden sowie andere Konfigurationsdatendateien
als die hier beschriebenen verwendet werden. Des Weiteren werden
die Verfahren der vorliegenden Erfindung vorzugsweise mit Hilfe von
Computersofware durchgeführt,
die Erfindung ist jedoch nicht auf diese beschränkt. Dementsprechend werden
alle Modifikationen und Ergänzungen
als in den Geltungsbereich der Erfindung fallend betrachtet, der
nur durch die beigefügten
Ansprüche
und ihre Äquivalente
begrenzt ist.