-
Die
Erfindung bezieht sich auf eine elektronische Schaltung mit einem
Array programmierbarer Logikzellen.
-
Programmierbarer
Logikzellen ermöglichen es
Schaltungsdesignern, die Logikfunktion individueller Instanzen elektronischer
Schaltungen, die in Massen produziert wurden, wie integrierte Schaltungen, anzupassen.
Dies reduziert die Zeitspanne vom Design bis zur Produktion einer
arbeitenden Schaltung und es reduziert Herstellungskosten für die Produktion
kleiner Chargen von Produkten und für den Prototypbau.
-
In
einem Beispiel einer Implementierung enthält eine programmierbare Zelle
einen Speicher, der durch das Eingangssignal der Zelle adressiert
wird, wobei der Speicher vorprogrammierte Ausgangssignale für jede Kombination
von Eingangssignalwerten an den jeweiligen Adressen, die durch diese
Werte adressiert werden, speichert. Man sagt, der Speicher habe
eine LUT-Funktion (LUT = Luck-Up Table = Verweistabelle), um die
Ausgangssignale nachzusehen, die als Antwort auf verschiedene Eingangssignale produziert
werden.
-
Jede
Logikfunktion kann mit einer LUT implementiert werden, vorausgesetzt,
dass sie ausreichend Speicherplatz enthält. In der Praxis aber werden
nur Logikfunktionen, die eine begrenzte Anzahl von Eingängen benötigen, typisch
nicht mehr als vier, mit LUTs in Schaltungen mit programmierbaren
Logikzellen implementiert. Eine solche LUT erfordert 16 Speicherplätze. Dies
erlaubt die Programmierung von zufälligen Logikfunktionen von
vier Eingangsbits. In vielen Fällen
reichen Schaltungen mit solchen Zellen mit vier Eingangsbitfunktionen
aus. Eine Schaltung mit einem Array solcher Zellen, in der die Ausgänge der
Zellen an die Eingänge
anderer Zellen gekoppelt sind, erlaubt dem Designer kompliziertere Logikfunktionen
zu implementieren.
-
Zunehmend
implementieren Designer Logikfunktionen, für die ein Teil des Arrays programmierbarer
Logikzellen verwendet wird, um Signalverarbeitungsoperationen wie
Additionen zu implementieren. Viele Signalverarbeitungsoperationen
haben die Eigenschaft, dass von vielen Bits eines breiteren Eingangsoperanden
durch Übertragseffekte
jedes viele Bits in einem Ausgangsergebnis beeinflussen kann. Aber
sehr ineffiziente Imple mentierungen werden erzielt, wenn eine solche
breite Abhängigkeit
unter Verwendung von LUTs mit 4-Bit-Eingängen implementiert wird.
-
XilinxTM hat dieses Problem in ihrer VirtexTM-Familie programmierbarer Logikanordnungen durch
Hinzufügen
einer Übertragskette
zu einem Array von 4-Bit-Eingangs-LUT-Zellen angesprochen. 1 zeigt
eine programmierbare Logikzelle einer solchen Anordnung. Die Zelle
enthält
eine Verweistabelle 10 mit vier Eingängen, welche die LUT-Funktion durchführt, und
eine Übertragsschaltung 12 mit
einem Übertragseingang
und einem Übertragsausgang.
Der Ausgang des Speichers 10 ist an die Übertragsschaltung 12 gekoppelt,
welche das Übertragseingangssignal
mit dem Ausgangssignal der LUT kombiniert, um das Übertragsaungangssignal
zu bilden. Ein Exklusiv-ODER-Gatter 14 wird verwendet, um
das Ausgangssignal der Zelle aus dem Übertragseingangssignal und
dem Ausgangssignal der LUT zu bilden. Der Übertragseingang und Übertragsausgang
der Zelle sind an den Übertragsausgang
und den Übertragseingang
angrenzender Zellen in dem Array (nicht gezeigt) gekoppelt, um eine Übertragskette
zu bilden. Die Übertragskette
führt die Übertragsfunktion
von dem Ausgang einer LUT mit einem 4-Bit-Eingang zu einer anderen
durch. Als Ergebnis müssen
keine LUTs bereitgestellt werden, um Übertragsfunktionen zu implementieren.
Dies spart eine beträchtliche
Anzahl von LUTs, wenn die Schaltung verwendet wird, um Logikfunktionen
zu implementieren, die einige Signalverarbeitungsoperationen enthalten.
-
Ein
anderes Beispiel einer solchen Anordnung ist in
US-Patent 5.920.202 gegeben, das die Basis
für den
Oberbegriff von Anspruch 1 bildet. Diese Anordnung hat ein Paar
Slices, wobei jedes ein Paar Logikfunktionsgeneratoren und eine Übertragsstruktur
umfasst. Die Kombination der Slices implementiert die gewünschte Funktionalität. In einer
Ausführungsform
nutzen die Übertragsmultiplexer
in jedem Slice dieselben Konfigurationsbits gemeinsam und implementieren
so dieselbe Übertragsfunktion.
-
Trotzdem,
verglichen zu dedizierten Signalverarbeitungsschaltkreisen ist die
Implementierung von Signalverarbeitungsfunktionen in eine solche mehr
Allzweckschaltung, die auch zur Implementierung von Zufallslogikfunktionen
geeignet ist, weit weniger effizient. Es wäre wünschenswert, wenn diese Effizienz
verbessert werden könnte.
-
Unter
anderem ist es eine Aufgabe der Erfindung, eine elektronische Schaltung
mit einem Array programmierbarer Logikzellen zu schaffen, welche die
Implementierung von Signalverarbeitungsoperationen erlaubt, in der
die Anzahl von Konfigurationsbits reduziert ist.
-
Die
elektronische Schaltung gemäß der Erfindung
ist in Anspruch 1 dargelegt. Die elektronische Schaltung enthält eine
programmierbare Logikzelle mit einer Vielzahl programmierbarer Logikeinheiten, die
parallel gekoppelt sind. Die programmierbaren Logikeinheiten umfassen
eine konfigurierbare Verweistabellenschaltung mit Eingängen, die
gekoppelt sind, um die logischen Eingangssignale von der Eingangsschaltung
zu empfangen, und mit einem Ausgang, wobei die konfigurierbare Verweistabelle
eine Ein-Ausgabefunktion
entsprechend einer vorher festgelegten Anzahl von Konfigurationsbits
liefert. Die programmierbaren Logikeinheiten umfassen auch eine
steuerbare Inverter/Nicht-Inverter-Schaltung mit einem an den Ausgang
der Verweistabellenschaltung gekoppelten Eingang und mit einem Ausgang,
wobei der Inverter/Nicht-Inverter durch ein Eingangsübertragssignal
steuerbar ist. Die vorher festgelegte Anzahl von Konfigurationsbits
steuert die Verweistabellen von zwei oder mehr programmierbaren
Logikeinheiten in der programmierbaren Logikzelle. Dies hat den
Vorteil, die Anzahl der von der Logikzelle geforderten Konfigurationsbits
und so die Größe des erforderlichen
Speichers zu reduzieren. Dies ermöglicht effiziente Implementierung
eines Mehrbitoperanden-Verarbeitungsmodus, in dem jede programmierbare
Logikeinheit einem unterschiedlichen Signifikanzniveau zugeordnet
ist.
-
In
einer Ausführungsform
umfassen die programmierbaren Logikeinheiten weiter einen Hilfsmultiplexer,
der Eingänge
hat, die gekoppelt sind, das Ausgangssignal der Verweistabellenschaltung
und das Ausgangssignal der Inverter/Nicht-Inverter-Schaltung zu
empfangen, und der ein Ausgangssignal von den programmierbaren Logikeinheiten
liefert.
-
In
einer weiteren Ausführungsform
umfassen die programmierbaren Logikeinheiten weiter einen Multiplexer,
Eingänge
hat, die gekoppelt sind, die logischen Eingangssignale von der Eingangsschaltung zu
empfangen, und der unter der Kontrolle eines ersten Steuersignals
ein Multiplexerausgangssignal liefert, wenn er konfiguriert ist,
in einem Multiplexermodus zu operieren. Die in dieser Ausführungsform
beschriebene Zusammenstellung hat den Vorteil, Multiplexerfunktionen
zusätzlich
zu Datenpfadfunktionen zu liefern.
-
Diese
und andere Ziele und vorteilhafte Aspekte der Erfindung werden unter
Verwendung der Zeichnung beschrieben. In dieser zeigen:
-
1 eine
programmierbare Logikzelle nach dem Stand der Technik;
-
2 ein
Array programmierbarer Logikeinheiten gemäß der vorliegenden Erfindung;
-
3 weitere
Details einer programmierbaren Logikeinheit von 2,
angepasst, um Multiplexerfunktionen bereitzustellen;
-
4 eine
alternative Ausführungsform
der programmierbaren Logikeinheit von 2, angepasst,
um Multiplexerfunktionen bereitzustellen;
-
5 eine
Logikzelle, die ein Array programmierbarer Logikeinheiten gemäß 3 implementiert;
-
6 eine
Logikzelle, die ein Array programmierbarer Logikeinheiten gemäß 4 implementiert;
und
-
7 eine
Logikzelle der vorliegenden Erfindung, wenn sie mit einer programmierbaren
Logikeinheit gemäß 3 konfiguriert
ist.
-
2 zeigt
eine programmierbare Logikzelle mit einer parallelen Zusammenstellung
programmierbarer Logikeinheiten 24a-d und einer Übertragskette 28.
Die Logikzelle empfängt
Eingangssignale A0-3 und B0-3. Übertragskette 28 hat
einen Übertragseingang
Cin und einen Übertragsausgang Cout und
ist bei einer Reihe von Positionen entlang der Kette an die programmierbaren
Logikeinheiten gekoppelt.
-
Jede
programmierbare Logikeinheit 24a-d umfasst Selektionslogik 403,
beispielsweise einen 4:1-Multiplexer, der einen Teil einer Verweistabelle 400 bildet,
die konfiguriert ist, als Antwort auf einen gegebenen Satz von Eingangssignalen
AnBn ein Ausgangssignal
O zu liefern. Die Ausgangsdaten jeder programmierbaren Logikeinheit
werden durch in einem Konfigurationsspeicher 404 gespeicherte
Konfigurationsbits bestimmt. Gemäß der Erfindung
wird der Konfigurationsspeicher 404 von einer Vielzahl programmierbarer
Logikeinheiten 24a-d gemeinsam genutzt, was dabei erlaubt,
dass die Logikzelle für das
Mapping von Datenpfadfunktion optimiert wird. Durch Programmieren
der Konfigurationsbits kann die Funktion der Logikzelle konfiguriert
werden. Die Konfigurationsbits bestimmen, welche Ausgangssignalwerte
die programmierbaren Logikeinheiten 24a-d als Antwort auf
verschiedene Eingangssignalwerte produzieren.
-
In
dem Mehrbitoperanden-Verarbeitungsmodus ist jede programmierbare
Logikeinheit 24a-d einem unterschiedlichen Signifikanzniveau
zugeordnet. Die Eingangsschaltung 22 ist konfiguriert,
Eingangssignale an jede programmierbare Logikeinheit 24a-d
zu übergeben,
welche die Bits von verschiedenen Operanden repräsentiert, wobei jedes Bit dem Signifikanzniveau
entspricht, dem die programmierbare Logikeinheit 24a-d
zugeordnet ist. Jede programmierbare Logikeinheit 24a-d
antwortet auf diese Signale durch Berechnen des Bits des Ergebnisses auf
dem Signifikanzniveau, das der programmierbaren Logikeinheit 24a-d
zugeordnet ist, wobei dabei ein Übertragseingangssignal
Cin berücksichtigt
wird, das von der Übertragskette 28 von
einem niedrigeren Signifikanzniveau empfangen wird, und wobei ein Übertragsausgangssignal
Cout zur Verwendung auf einem höheren Signifikanzniveau
an die Übertragskette
geliefert wird. In dem Mehrbitoperanden-Verarbeitungsmodus sind
aufgrund der gemeinsamen Nutzung der Konfigurationsbits im Konfigurationsspeicher 404 alle
programmierbaren Logikeinheiten 24a-d konfiguriert, dieselbe
Beziehung zwischen ihren Eingangssignalen und Ausgangssignalen zu
liefern. Die berechneten Bits „0" von jeder der programmierbaren
Logikeinheiten 24a-d werden parallel als Ausgangssignale
an eine Ausgangsschaltung (nicht gezeigt) übergeben.
-
Übertragskette 28 berechnet Übertragssignale
und übergibt
diese Übertragssignale
von einer programmierbaren Logikeinheit 24a-d zu einer
anderen. Die Konfiguration der Übertragskette 28 steuert, ob
die Übertragskette 28 ein Übertragseingangssignal
Cin vom Übertragseingang
verwendet, um die Übertragssignale
zu bestimmen. Wenn die Logikzelle Eingangssignale verarbeitet, die
signifikantere Bits eines größeren Operanden
sind, ist die Zelle so konfiguriert, dass ein solches Übertragseingangssignal verwendet
wird, um ein Übertragsausgangssignal
einer anderen Zelle, die weniger signifikante Operanden verarbeitet,
zu empfangen.
-
Durch
Verwenden der programmierbaren Logikeinheiten zur Implementierung
der Berechnung verschiedener Signifikanzniveaus einer Zwei-Mehrbitoperanden-Signalverarbeitungsoperation,
jede basiert auf den gemeinsam genutzten Konfigurationsbits, wird
die Anzahl der Konfigurationsbits, die benötigt wird, um die Implementierung
von Mehrbitoperanden-Signalverarbeitung zu unterstützen, minimiert.
In dem Beispiel von 2, mit vier programmierbaren
Logikeinheiten 24a-d mit zwei Eingängen, werden nur vier Konfigurationsbits
benötigt,
um alle vier Signifikanzniveaus jeder Zwei-Operanden-Signalverarbeitungsoperation
zu definieren. Wenn man im Gegensatz die Situation betrachtet, wo
4 Konfigurationsbits pro programmierbarer Logikeinheit eingesetzt
werden, dann würden
16 Konfigurationsbits für eine
Logikzelle mit vier programmierbaren Logikeinheiten mit zwei Eingängen benötigt, oder
64 Konfigurationsbits für
die Logikeinheit gemäß dem in 1 gezeigten
Stand der Technik.
-
2 zeigt
auch zusätzliche
Gatter 50 und 52, die ermöglichen, dass die programmierbare
Logikeinheit 24 arithmetische Substraktion ohne externe Komplementbildung
und 1-Bit-Multiplikation-plus-Akkumulation (z.B. als ein Schritt
in Mehrbit-Multiplikation)
durchführt.
Implementierung von Subtraktion wird durch Hinzufügen eines
Exlusiv-ODER-Gatters 50 zwischen der LUT-Einheit 400 und
einem der Signaleingänge
An, Bn, der ein
Bit des zu subtrahierenden Operanden empfängt, unterstützt. Ein
Subtraktionssteuersignal SUB wird an einen der Eingänge des Exklusiv-ODER-Gatters 50 geliefert,
sodass das Eingangssignal logisch invertiert wird. Das Subtraktionssteuersignal
wird auf null gesetzt, wenn Addition gefordert wird. Für diesen
Zweck kann ein gemeinsames Subtraktionssteuersignal für alle programmierbaren
Logikeinheiten verwendet werden. Das Subtraktionssteuersignal kann
durch ein Konfigurationsbit der Logikzelle oder durch ein Signal
von außerhalb
der Zelle gesteuert werden. Im Fall der Subtraktion wird ein logisch
hohes Übertragseingangssignal an
die programmierbare Logikeinheit angelegt, die dem niedrigsten Signifikanzniveau
zugeordnet ist.
-
Implementierung
von Multiplikation plus Akkumulation wird durch Hinzufügen eines
UND-Gatters 52 zwischen LUT-Einheit 400 und einem
der Signaleingänge
A, B, der ein Bit des zu multiplizierenden Operanden empfängt, und
Liefern eines Faktorsignals MUL an einen der Eingänge dieses
UND-Gatters unterstützt.
Für diesen
Zweck kann ein gemeinsames Faktorsignal MUL für alle programmierbaren Logikeinheiten
verwendet werden. Das Faktorsignal wird auf eins gesetzt, wenn Addition
gefordert wird.
-
Obwohl 2 UND-Gatter 52 und
das Exklusiv-ODER-Gatter 50 in Kombination bereitgestellt zeigt,
wird es Fachleuten leicht deutlich sein, dass beide weggelassen
werden können,
wenn keine Subtraktion oder Multiplikation gefordert wird. Es sei auch
zu verstehen, dass Multiplikation und Subtraktion auf alternative
Weisen implementiert werden können,
mit Äquivalenten
von Exklusiv-ODER-Gatter 50 an unterschiedlichen Positionen
in der Schaltung und/oder unterschiedlicher Konfiguration von LUT-Einheit 400.
-
3 zeigt
weitere Details der programmierbaren Logikeinheit 24 und
einen Teil 42 der Übertragskette 28.
Die programmierbare Logikeinheit 24 umfasst eine LUT-Einheit 400,
die funktioniert wie vorher in 2 beschrieben.
Die programmierbare Logikeinheit 24 umfasst auch ein Exklusiv-ODER-Gatter 402.
Die Signaleingänge
A, B der programmierbaren Logikeinheit 24 sind an die Eingänge der
LUT-Einheit 400 gekoppelt. Ein Ausgang der LUT-Einheit 400 ist
an einen Eingang des Exklusiv-ODER-Gatters 402 gekoppelt.
Ein zweiter Eingang des Exklusiv-ODER-Gatters 402 ist gekoppelt, um
ein Über tragssignal
Cin von der Übertragskette 28 zu
empfangen, und ein Ausgang des Exklusiv-ODER-Gatters 402 bildet ein
Ausgangssignal O1. Bin Multiplexer 405 empfängt das
Ausgangssignal O1 von dem XOR-Gatter 402 und das Ausgangssignal
O2 von der LUT 400. Der Multiplexer 405 produziert
unter der Kontrolle eines Konfigurationsbits 407 aus dem
Konfigurationsspeicher (nicht gezeigt) ein Ausgangssignal O.
-
Im
Betrieb im Mehrbitoperanden-Verarbeitungsmodus realisiert LUT-Einheit 400 unter
Verwendung der gemeinsam genutzten Konfigurationsbits eine konfigurierbare
Ein-Ausgabe-Funktion, wie vorher in 2 beschrieben.
In diesem Mehrbitoperanden-Verarbeitungsmodus wird am Ausgang O
der programmierbaren Logikeinheit 24 ein Datenpfadsignal
O1 verfügbar
gemacht. Alternativ, wenn breite Boolesche Funktionen implementiert
werden, selektiert der Multiplexer 405 den direkten Ausgang
O2 der LUT 400.
-
Es
sei bemerkt, dass das XOR-Gatter 402 auf andere Weisen
implementiert werden kann. Beispielsweise kann das XOR-Gatter 402 durch
einen 2:1-Multiplexer ersetzt werden, der das Ausgangssignal der
Verweistabelle an einem ersten Eingang und eine invertierte Version
des Ausgangssignals der Verweistabelle an einem zweiten Eingang
empfängt, wobei
der Multiplexer durch das Übertragseingangssignal
Cin gesteuert wird.
-
4 zeigt
eine alternative Ausführungsform,
die in der Lage ist, Multiplexerfunktionen zusätzlich zu Mehrbitoperanden-Verarbeitungsfunktionen
zu hantieren. Die programmierbare Logikeinheit umfasst eine LUT 400,
ein XOR-Gatter 402 und einen Multiplexer 405,
der durch ein Konfigurationsbit 407 gesteuert wird und
dieselben Merkmale hat wie die Merkmale der Erfindung, wie sie in 3 gezeigt ist.
Zusätzlich
umfasst die programmierbare Logikeinheit einen weiteren Multiplexer 406 zur
Verwendung in einem multiplexenden Betriebsmodus. Die Signaleingänge A, B
der programmierbaren Logikeinheit 24 sind an die Eingänge des
Multiplexers 406 gekoppelt (beispielsweise ein 2:1-Multiplexer für eine 2-Bit-LUT),
der parallel zu der LUT-Einheit 400 angeordnet ist. Der
Multiplexer 406 wird durch ein Steuersignal X, das ein
Hilfssignal der Logikzelle ist, gesteuert. Vorzugsweise empfängt jede
programmierbare Logikeinheit 24 dasselbe Steuersignal X. Also
produziert die programmierbare Logikeinheit 24 ein ersten
Ausgangssignal OD, wenn sie konfiguriert ist, in einem Mehrbitoperanden-Verarbeitungsmodus zu
arbeiten (d.h. der Multiplexer 405 gibt entweder das Signal
O1 von der LUT-Einheit 400 aus oder das Signal O2, wenn
er konfiguriert ist, breite Boolesche Funktionen zu verarbeiten),
und ein zweites Ausgangssignal OR, wenn sie konfiguriert ist, als
Multiplexer zu arbeiten. Wenn sie also konfiguriert ist, als Multiplexer
zu arbeiten, umgeht das Ausgangssignal OR die LUT-Einheit 400 und
das XOR-Gatter 402. Die Bereitstellung des Multiplexers 406 in
der programmierbaren Logikeinheit 24 ermöglicht es,
die Logikzelle für
multiplexende Operationen zusätzlich
zu Datenpfad- oder arithmetischen Funktionen zu konfigurieren.
-
5 zeigt
eine Implementierung einer Logikzelle 20 mit programmierbaren
Logikeinheiten 24a-d wie in 3 gezeigt.
Jede programmierbare Logikeinheit 24a-d empfängt Eingangssignale 21 und produziert
ein Ausgangssignal O entsprechend den Konfigurationsbits (nicht
gezeigt), die von allen programmierbaren Logikeinheiten 24a-d
gemeinsam genutzt werden. Die Ausgangssignale O werden an eine Schalterschaltung 268 der
Ausgangsschaltung 26 übergeben,
die Ausgangssignale 27 produziert.
-
6 zeigt
eine Implementierung einer Logikzelle 20 mit programmierbaren
Logikeinheiten 24a-d wie in 4 gezeigt.
Wenn in dem Mehrbitoperanden-Verarbeitungsmodus konfiguriert, empfängt jede
programmierbare Logikeinheit 24a-d empfangt Eingangssignale 21 und
produziert ein Ausgangssignal OD entsprechend den Konfigurationsbits
(nicht gezeigt), die von allen programmierbaren Logikeinheiten 24a-d
gemeinsam genutzt werden. Die Ausgangssignale OD werden an eine
Schalterschaltung 268 der Ausgangsschaltung 26 übergeben,
die Ausgangssignale 27 produziert. Wenn konfiguriert, in
einem Multiplexermodus zu arbeiten, produziert die Vielfalt der
programmierbaren Logikeinheiten 24a-d Signal OR und gibt
es aus. Das Ausgangssignal OR ist eines der Eingangssignale 21,
selektiert durch das Steuersignal X. In dem Multiplexermodus werden
die Ausgangssignale OR an die Eingänge einer ersten Stufe von
Multiplexer 264a, b in der Ausgangsschaltung 26 übergeben.
Die erste Stufe von Multiplexer wird durch ein Steuersignal Y gesteuert.
Der weitere Multiplexer 266 ist angeschlossen, um die Ausgangssignale
von den Multiplexern 264a, 264b zu empfangen und
liefert unter der Kontrolle von Steuersignal Z ein Multiplexerausgangssignal
an die Schalterschaltung 268.
-
In
der Praxis kann man in Applikationen auf zwei Arten von Multiplexer
treffen:
Zufallslogikmultiplexer, die eine Vielzahl von Einzelbiteingangssignalen
akzeptieren und ein Einzelbitausgangssignal produzieren (beispielsweise
ein 8:1-Multiplexer), und Datenpfadmultiplexer, die ein Mehrbiteingangssignal
akzeptieren und ein Mehrbitausgangssignal produzieren (beispielsweise
ein 4-Bit-2:1-Multiplexer).
-
Die
Logikzelle ist konfigurierbar, beide Multiplexertypen bereitzustellen,
wenn sie bis zu drei Hilfssignale X, Y, Z zusätzlich zu den acht primären Eingangssignalen verwendet.
Die drei Hilfssignale X, Y, Z werden als Selektionssignale für die Logikmultiplexer,
die auf die Logikzelle gemappt sind, verwendet. Die drei Signale
sind erforderlich, um den Maximalfall eines 1-Bit-8:1-Multiplexers
zu behandeln. Mit anderen Multiplexerzusammenstellungen sind weniger
Hilfssignale erforderlich.
-
Es
sein bemerkt, dass das Steuersignal X von dem Datenpfad- und dem
Multiplexermodus gemeinsam genutzt werden kann. In dem Datenpfadmodus
liefert das Steuersignal X das Übertragseingangssignal
Cin an die Übertragskette 28,
während
in dem Multiplexermodus das Steuersignal X verwendet wird, die Multiplexer 406 von 4 zu
steuern. Auf eine ähnliche
Weise können
die Steuersignale Y und Z des Multiplexermodus gemeinsam mit den Steuersignalen
MUL und SUB des Mehrbitoperanden-Verarbeitungsmodus genutzt werden.
Es sei auch bemerkt, dass die Steuersignale von dedizierten Hilfssteuersignalen
abgeleitet werden können, oder
von der Vielzahl der primären
Eingangssignale genommen werden können.
-
Die
in 5 und 6 gezeigten Logikzellen enthalten
vier Verarbeitungselemente und erlauben dabei eine Implementierung
von 4-Bit-Datenpfadfunktionen. Trotzdem sei bemerkt, dass die Anzahl
von Verarbeitungselementen (Bit-Slices) in der Logikzelle beliebig
sein kann. Beispielsweise kann jede Zelle so gemacht werden, dass
sie beispielsweise ein komplettes Wort von 32 Bits verarbeitet.
-
7 zeigt
eine Beispielimplementierung einer Logikzelle, die mit den programmierbaren
Logikeinheiten von 3 konfigurierten ist, und XOR-Gatter 50a-d
an ihren Eingängen
hat, um Subtraktion zu erlauben. Die programmierbaren Logikeinheiten 24a-d werden durch die
Konfigurationsbits 404 gesteuert, die von den programmierbaren
Logikeinheiten 24a-d gemeinsam genutzt werden. Die Multiplexer 405a-d
werden durch ein weiteres Konfigurationsbit 407 gesteuert.
Das Subtraktionssignal SUB ist entweder mit einem Konfigurationsbit
oder mit einem externen dynamischen Signal verbunden. So kann man
sehen, dass im schlimmsten Fall nur sechs Konfigurationsbits erforderlich
sind, um die Logikzelle 20 zu steuern, was weniger ist
als die Anzahl an Konfigurationsbits, die erforderlich sind, um
eine typische arithmetische Logikeinheit zu steuern. Die Funktionalität von 7 kann
weiter verbessert werden, wenn die programmierbaren Logikeinheiten
von 4 eingefügt
werden, um zusätzlich
Multiplexer-Mappingfähigkeiten
zu geben, oder wenn die UND-Gatter 52a-d von 2 verwendet
werden, um Multiplizierer-Mappingfähigkeiten bereitzustellen.
-
Die
oben beschriebene Erfindung schafft eine Logikzelle, die für Mapping
von Datenpfadfunktionen optimiert ist, dabei die Größe des Konfigurationsspeichers
reduziert, wobei sie es passend für eine Verwendung in einem
rekonfigurierbaren Systemchip (SoC) macht. Die Logikzelle kann deshalb als
Basislogikblock eines datenpfadoptimierten eingebetteten FPGA verwendet
werden oder als rekonfigurierbare Funktionseinheit innerhalb eines
Prozessorkerns verwendet werden. Sie kann auch auf die Implementierung
traditioneller selbstständiger
FPGAs angewendet werden. Außerdem
kann sie auch für
die Implementierung parametrierbarer ALUs verwendet werden und hat
den Vorteil, weniger Konfigurationsspeicher zu erfordern, und konfigurierbar
zu sein, mehr Flexibilität
bereitzustellen, d.h. die zusätzliche
Möglichkeit
des Mapping von Multiplexer und Subtraktions- und/oder Multipliziererfunktionen.
-
Text in der Zeichnung:
-
7:
-