DE69534812T2 - Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration - Google Patents
Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration Download PDFInfo
- Publication number
- DE69534812T2 DE69534812T2 DE69534812T DE69534812T DE69534812T2 DE 69534812 T2 DE69534812 T2 DE 69534812T2 DE 69534812 T DE69534812 T DE 69534812T DE 69534812 T DE69534812 T DE 69534812T DE 69534812 T2 DE69534812 T2 DE 69534812T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- output
- configuration
- input
- coupled
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17704—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17756—Structural details of configuration resources for partial configuration or partial reconfiguration
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17758—Structural details of configuration resources for speeding up configuration or reconfiguration
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
Description
- Die vorliegende Erfindung betrifft allgemein programmierbare Logikbauelemente und insbesondere ein System zum Umkonfigurieren der konfigurierbaren Logikblöcke und der programmierbaren Leitwegmatrizen einer frei programmierbaren Logikanordnung.
- Die Verwendung von programmierbaren Logikbauelementen wie z.B. FPLAs (frei programmierbare Logikanordnungen) hat sich aufgrund der Flexibilität, die sich durch ihre Umprogrammierbarkeit ergibt, weit verbreitet. Eine FPLA beinhaltet typischerweise eine Array von konfigurierbaren Logikblöcken („CLBs"), die programmierbar miteinander verbunden werden können, um die vom Benutzer gewünschte Logikfunktion zu schaffen. Das Xilinx 1993 Data Book mit dem Titel „The Programmable Logic Data Book", das von Xilinx Inc. aus 2100 Logic Drive in San Jose, CA 95124 erhältlich ist, beschreibt mehrere von Xilinx, Inc., der Zessionarin der vorliegenden Erfindung, hergestellte FPLA-Produkte. Eine FPLA beinhaltet typischerweise eine regelmäßige Anordnung von identischen CLBs. Jeder der CLBs kann individuell programmiert werden, um eine beliebige aus einer Reihe von unterschiedlichen Logikfunktionen auszuführen. Die FPLA hat Konfigurationsleitwegmatrizen, um die CLBs zu einer gewünschten Konfiguration zusammenzuschalten. Die FPLA beinhaltet auch eine Reihe von Konfigurationsspeicherzellen. Die Konfigurationsspeicherzellen werden mit den CLBs gekoppelt, um die von jedem CLB ausgeführte Funktion vorzugeben, und mit den Konfigurationsleitwegmatrizen, um die Kopplung der Eingänge und Ausgänge der CLBs vorzugeben. Die FPLA beinhaltet gewöhnlich auch Datensignalspeicherzellen, auf die ein Benutzer während des Betriebs der FPLA zugreifen kann, aber die Erörterung von Speicherzellen hierin bezieht sich auf Konfigurationsspeicherzellen. Jeder CLB ist mit mehreren Speicherzellen gekoppelt, die die Funktion, die der CLB ausführen soll, und der anderen CLBs vorgeben, mit denen er gekoppelt wird. So kann jeder CLB in Bezug auf seine Funktion und Kopplung durch Speichern unterschiedlicher Werte in den Speicherzellen individuell programmiert werden.
- Die Konfigurationsdaten für die CLBs und die konfigurierbaren Leitwegmatrizen werden in den Konfigurationsspeicherzellen gespeichert. Die Konfigurationsdaten wählen, wenn sie in die Konfigurationsspeicherzellen geladen sind, die von den CLBs ausgeführten Funktionen und schalten die konfigurierbaren Leitwegmatrizen.
- Komplexität und Größe von Logikschaltungen, die in einer Reihe verschiedener Anwendungen zum Einsatz kommen, sind in letzter Zeit drastisch gestiegen. Da die Zahl der CLBs, die auf einem einzelnen IC-Chip hergestellt werden können, begrenzt ist, kann diese höhere Zahl von Schaltungselementen nicht mit einer einzigen FPLA implementiert werden. Somit besteht ein Bedarf, die Effizienz zu verbessern, mit der CLBs Logikfunktionen ausführen.
- Ein Ansatz des Standes der Technik zur Lösung dieses Problems mit existierenden FPLAs bestand darin, mehrere FPLAs extern miteinander zu verbinden. Dieser Ansatz ist jedoch nur eine Teillösung. Aufgrund der begrenzten Zahl von Ein-/Ausgangsverbindungen zwischen den FPLAs können mit diesem Ansatz nicht alle Schaltungen implementiert werden. Darüber hinaus führt die Verwendung von mehr als einer FPLA zu einer Erhöhung der Leistungsaufnahme, der Kosten und des Raums, der zum Implementieren der Schaltung benötigt wird.
- Eine weitere Lösung bestand darin, die Zahl der CLBs und Verbindungsstrukturen in der FPLA zu erhöhen. Für eine bestimmte Herstellungstechnik kann die Zahl der CLBs, die auf einem integrierten Schaltungschip hergestellt werden können, beschränkt sein. Somit besteht weiterhin, vom architektonischen Standpunkt her gesehen, ein Bedarf zur Erhöhung der Logikgatter- oder CLB-Dichten für FPLAs.
- Die FPLAs des Standes der Technik können zwar umkonfiguriert werden, um zu verschiedenen Zeiten unterschiedliche Logikfunktionen auszuführen, aber es muss ein Bitstrom neu geladen werden, was zeitaufwändig ist. Die Umkonfiguration einer FPLA erfordert die Unterbrechung der Ausführung der Logikfunktionen, das Speichern des aktuellen Zustands der Logikfunktionen in einem Speichergerät, das sich außerhalb der FPLA befindet, das Neuladen der Array von Speicherkonfigurationszellen und das Eingeben der Zustände der Logikfunktionen zusammen mit anderen Eingaben. Das Neuladen der Konfigurationsspeicherzellen an sich erfordert eine Menge an Zeit, so dass sich eine Umkonfiguration für die Implementation vieler Schaltungen nicht mehr lohnt. Es ist nützlicher, die Zahl der Logikfunktionen zu erhöhen, die innerhalb einer FPLA ausgeführt werden, ohne dass dies auf Kosten von Geschwindigkeit und Raum ginge.
- Die vorliegende Erfindung erhöht die Zahl der Logikfunktionen, die innerhalb einer FPLA ausgeführt werden können, durch internes Umkonfigurieren der CLBs und der konfigurierbaren Leitwegmatrizen zur Durchführung mehrerer Logikfunktionen. Die vorliegende Erfindung umfasst mehr als eine Array von Konfigurationsspeicherzellen und einen Schalter zum Ausgeben von Konfigurationsdaten abwechselnd für jede der Arrays, einen CLB mit einem speziellen Speichergerät und eine konfigurierbare Leitwegmatrix. Eine erste Array speichert einen Satz von Konfigurationsdaten, eine zweite Array speichert einen zweiten Satz von Konfigurationsdaten, usw. Jeder CLB greift auf ein Speichergerät zu, das einen ersten Datensignalspeicher zum Speichern von Eingängen oder Ausgängen des CLB hat, wenn der CLB gemäß den in der ersten Array gespeicherten Daten konfiguriert ist, einen zweiten Datensignalspeicher zum Speichern von Eingängen oder Ausgängen des CLB, wenn der CLB gemäß den in der zweiten Array gespeicherten Daten konfiguriert ist, usw. Jedes Speichergerät kann auch ein erstes Register zum Aus- oder Eintakten von Daten aus dem ersten Datensignalspeicher und ein zweites Register zum Aus- oder Eintakten von Daten aus dem zweiten Datensignalspeicher beinhalten.
- Der Benutzer der FPLA gibt ein Taktsignal ein, auf dem die FPLA arbeitet. Eine Ausgestaltung der vorliegenden Erfindung unterteilt den Benutzertaktzyklus in zwei Teile und stellt Speichergeräte zum Empfangen von Ausgängen der CLBs bereit.
- Im ersten Teil geben die Schalter die in der ersten Array gespeicherten Konfigurationsdaten aus und die CLBs und konfigurierbaren Leitwegmatrizen werden gemäß den in der ersten Array gespeicherten Konfigurationsdaten konfiguriert. In diesem ersten Teil führt die FPLA einen ersten Satz von Logikfunktionen der in die CLBs eingegebenen Signale aus. Die Ausgänge des zweiten Datensignalspeichers und des zweiten Registers werden als Eingangssignale an die CLBs angelegt. Wenn alle CLBs ihre Logikfunktionen der Eingänge ausgeführt haben, wird der Ausgang jedes CLB im ersten Datensignalspeicher des Ausgabegerätes des CLB gespeichert.
- Im zweiten Teil geben die Schalter die in der zweiten Array gespeicherten Konfigurationsdaten aus und die CLBs und konfigurierbaren Leitwegmatrizen werden gemäß den in der zweiten Array gespeicherten Konfigurationsdaten konfiguriert. Die FPLA führt dann die Logikfunktionen der Eingänge in die CLBs aus. Wenn die CLBs ihre Logikfunktionen der Eingänge ausgeführt haben, wird der Ausgang jedes CLB im zweiten Datensignalspeicher des CLB gespeichert. In diesem zweiten Teil des Benutzertaktzyklus werden die Ausgänge der ersten Datensignalspeicher und der ersten Register als Eingänge an die CLBs angelegt.
- Am Ende des Benutzertaktzyklus können die im ersten und im zweiten Datensignalspeicher gespeicherten Daten jeweils in das erste und das zweite Register übertragen werden. Die FPLA gibt dann die Ergebnisse ihrer Funktion aus. Wo jeder CLB des Standes der Technik eine Logikfunktion während eines Zyklus des Benutzertaktes ausführen konnte, kann jeder CLB, gemäß der Ausgestaltung mit zwei Arrays von Konfigurationsdaten, zwei Logikfunktionen während eines Zyklus des Benutzertakts ausführen. Somit hat sich in der obigen Ausgestaltung die Zahl der Logikfunktionen, die die FPLA im Vergleich zum Stand der Technik ausführen kann, verdoppelt. Allgemeiner ausgedrückt, wenn die FPLA fünf oder zehn Arrays von Konfigurationsdaten und fünf oder zehn Signalspeicher und Register für jeden CLB aufweist, dann kann die FPLA das Fünf- oder Zehnfache der Logik einer FPLA des Standes der Technik implementieren.
- Damit die Erfindung besser verständlich wird, wird nachfolgend beispielhaft auf die Begleitzeichnungen Bezug genommen. Dabei zeigt:
-
1 ein Blockdiagramm einer Ausgestaltung einer FPLA, mit der die vorliegende Erfindung umgesetzt werden kann; -
2 ein Blockdiagramm einer Spalte der Array von Konfigurationsspeicherzellen einer FPLA des Standes der Technik; -
3 ein Blockdiagramm einer Spalte der ersten Array von Konfigurationsspeicherzellen, einer Spalte der zweiten Array von Konfigurationsspeicherzellen, einer dritten Spalte von Speicherzellen und eines Schalters zum abwechselnden Koppeln der ersten und zweiten Spalten gemäß der vorliegenden Erfindung; -
4 ein Blockdiagramm einer alternativen Ausgestaltung des Konfigurationsspeichers der vorliegenden Erfindung; -
5 ein Blockdiagramm eines konfigurierbaren Logikblocks einer FPLA gemäß dem Stand der Technik; -
6A ein Blockdiagramm eines konfigurierbaren Logikblocks gemäß einer Ausgestaltung der vorliegenden Erfindung; -
6B ein Blockdiagramm eines konfigurierbaren Logikblocks gemäß einer weiteren Ausgestaltung der vorliegenden Erfindung; -
6C eine konfigurierbare Leitwegmatrix, mit der die Erfindung umgesetzt werden kann; -
7 ein Timing-Diagramm, das das A/B-Steuersignal, die gerasteten Signale und die Registertaktsignale während des Betriebs zeigt; -
8 ein Timing-Diagramm, das ein Registertaktsignal, ein erstes alternatives A/B-Steuersignal A/B-1 und ein zweites alternatives A/B-Steuersignal A/B-2 zeigt; -
9 ein Schaltschema einer beispielhaften Logikschaltung, die mit einer FPLA ausgeführt werden kann; -
10 ein Blockdiagramm der Implementation der beispielhaften Logikschaltung von9 unter Verwendung einer FPLA des Standes der Technik; und -
11 ein Blockdiagramm der Implementation der beispielhaften Logikschaltung von9 , die die FPLA der vorliegenden Erfindung nutzt. -
1 zeigt ein Blockdiagramm einer frei programmierbaren Logikarray („FPLA")10 . Die FPLA10 umfasst eine Mehrzahl von Fliesen12 , die jeweils wiederum einen konfigurierbaren Logikblock („CLB")14 , einen Konfigurationsspeicher16 und eine konfigurierbare Leitwegmatrix18 umfasst. Die Leitwegmatrizen18 sind miteinander verbunden und verbinden somit die CLBs untereinander. Die Leitwegmatrizen sind auch mit externen Pins auf den Leitungen44 verbunden. Die Leitwegmatrizen18 beinhalten sowohl globale Leitungen zum Führen von Signalen wie Taktsignalen als auch lokale Leitungen oder Leitungssegmente zum Verbinden der CLBs miteinander. Der Benutzer der FPLA10 gibt ein Taktsignal, den Benutzertakt, aus, mit dem die FPLA10 arbeitet. Das (oder die) Benutzertaktsignal(e) wird auf allen Teilen der FPLA10 auf einer (oder mehreren) der Leitungen44 geführt. - Jede Fliese
12 implementiert einen Teil einer Benutzerschaltung. Die Logikfunktion jeder Fliese12 wird durch ihren jeweiligen CLB14 durchgeführt. Jeder CLB14 , und somit jede Fliese12 , kann eine große Vielzahl unterschiedlicher Logikfunktionen ausführen. Die von einem CLB14 ausgeführte Logikfunktion wird durch die Daten bestimmt, die im Konfigurationsspeicher16 gespeichert sind, der dem CLB14 entspricht. Der CLB14 hat Eingänge für Logikfunktionsdaten und Konfigurationsdaten und Ausgänge für Logikfunktionsdaten. - Jeder CLB
14 ist mit anderen CLBs14 der FPLA10 und den Eingängen und Ausgängen der FPLA10 durch die konfigurierbare Leitwegmatrix18 gekoppelt. Die konfigurierbare Leitwegmatrix18 hat Konfigurationseingänge zum Empfangen von Konfigurationsdaten und steuert als Reaktion darauf die Kopplung der Dateneingänge und -ausgänge der CLBs14 . Gemäß den im Konfigurationsspeicher16 gespeicherten Daten verbindet die konfigurierbare Leitwegmatrix18 die Ausgänge von CLBs14 und die Eingänge der FPLA10 selektiv mit den Dateneingängen von CLBs14 . Die konfigurierbare Leitwegmatrix18 leitet auch die Ausgänge der CLBs14 zu den Ausgängen der FPLA10 . - In einer Ausgestaltung, die Funktionsgeneratorausgänge separat für separate Zyklen rastet, sind die konfigurierbare Leitwegmatrix
18 und der CLB14 größer als in einem vergleichbaren, gemäß dem Stand der Technik aufgebauten Gerät. Die Zahl der Ausgänge des CLB14 ist größer als im Stand der Technik, und daher ist auch die konfigurierbare Leitwegmatrix18 größer, um die zusätzlichen Ausgänge der CLBs14 aufzunehmen. Die konfigurierbare Leitwegmatrix18 ist mit dem entsprechenden CLB14 und mit anderen Leitwegmatrizen18 gekoppelt. - Konfigurationsdaten für jeden CLB
14 und jede konfigurierbare Leitwegmatrix18 einer Fliese12 werden im entsprechenden Konfigurationsspeicher16 gespeichert. Die Konfigurationsdaten werden von außerhalb der FPLA10 in den Konfigurationsspeicher16 geladen und können durch ein Schieberegister mit wenigstens einem externen Pin geladen werden. Ein solches Lademittel wird von Freeman im US-Patent Re 34,363 erläutert. Die Ausgänge jedes Konfigurationsspeichers16 werden mit ihrem jeweiligen CLB14 und konfigurierbarer Leitwegmatrix18 gekoppelt. - Konfigurationsspeicher
-
2 zeigt ein Blockdiagramm eines Teils eines Konfigurationsspeichers15 des Standes der Technik. Der Konfigurationsspeicher15 des Standes der Technik umfasst eine Mehrzahl von Speicherzellen20-1 bis20-n , die zu einer Array angeordnet sind.2 zeigt eine Spalte22 der Array. Die tatsächliche Array hat viele Spalten. - Jede Speicherzelle
20-1 bis20-n speichert ein einzelnes binäres Datenbit. Jede Speicherzelle20-1 bis20-n hat einen Dateneingang, einen Datenausgang und einen Adresseingang. Daten werden in den Speicherzellen20-1 bis20-n als Reaktion auf ein Adressiersignal gespeichert. Daten werden jeweils Spalte für Spalte in der Array gespeichert. Das Adresssignal wird zu den Speicherzellen20-1 bis20-n auf einem Adressbus24 geführt, der mit dem Adresseingang jeder Speicherzelle20-1 bis20-n gekoppelt ist. Somit werden die Adresseingänge der Speicherzellen20-1 bis20-n in derselben Spalte22 miteinander gekoppelt. Die Dateneingänge der Speicherzellen20-1 bis20-n werden zum Empfangen von Konfigurationsdaten mit einem konventionellen Datenbus gekoppelt. Die Ausgänge der Speicherzellen20-1 bis20-n sind mit dem CLB14 und der konfigurierbaren Leitwegmatrix18 gekoppelt. Die Adressleitung24 ist Teil eines konventionellen Busses, der mit einem Adressiermittel gekoppelt ist. Die Fachperson wird wissen, wie das Adressiermittel und das Konfigurationsmittel zu konstruieren sind. -
3 zeigt ein Blockdiagramm eines Teils eines gemäß der vorliegenden Erfindung aufgebauten Konfigurationsspeichers16 . Der Konfigurationsspeicher16 der vorliegenden Erfindung umfasst einen ersten Satz von Speicherzellen21-1 bis21-n , einen zweiten Satz von Speicherzellen23-1 bis23-n und Schaltmittel28 mit einer Mehrzahl von Schaltern28-1 bis28-n . Es wird zwar nachfolgend der erste Satz von Speicherzellen21-1 bis21-n als erste Array und der zweite Satz von Speicherzellen23-1 bis23-n als zweite Array beschrieben, aber die Fachperson wird erkennen, dass es mehr als zwei Arrays geben kann. Alternativ können die erste und die zweite Array Teile einer einzelnen Array und sogar abwechselnde Zellen in einer Spalte von Konfigurationsspeicherzellen sein.3 zeigt eine Spalte26-a der ersten Array und eine Spalte26-b der zweiten Array. In einem tatsächlichen Gerät hat jede Array viele Spalten zum Konfigurieren zahlreicher Fliesen12 von1 . Die erste Array und die zweite Array speichern beide einen kompletten Satz von Konfigurationsdaten für die CLBs14 und die konfigurierbaren Leitwegmatrizen18 . Somit enthält der Konfigurationsspeicher16 gemäß der vorliegenden Erfindung mehr Speicherzellen21-1 bis21-n ,23-1 bis23-n als der Konfigurationsspeicher15 des Standes der Technik. Gemäß der vorliegenden Erfindung können jeder CLB14 und jede konfigurierbare Leitwegmatrix18 entweder mit den in der ersten Array gespeicherten Konfigurationsdaten oder mit den in der zweiten Array gespeicherten Konfigurationsdaten konfiguriert werden. - Es können zusätzliche Speicherzellen
31 vorgesehen werden, die nicht nach der Umkonfiguration schalten, sondern über lange Zeit eine konstante Konfiguration halten. An den Ausgängen der Speicherzellen31 liegen ebenfalls Daten zum Konfigurieren der Fliesen12 an. - Wie beim Konfigurationsspeicher
15 des Standes der Technik, sind die Adresseingänge der Speicherzellen21-1 bis21-n ,23-1 bis23-n und31-1 bis31-m durch die Adressierleitung24 miteinander gekoppelt. Jede Spalte der ersten Array entspricht einer Spalte der zweiten Array. In3 entspricht Spalte26-a Spalte26-b . Eine Spalte der ersten Array hat dieselbe Adresse wie die entsprechende Spalte der zweiten Array. Eine Spalte der dritten Array nutzt diese Adresse ebenfalls. Wenn also das den Spalten26-a ,26-b und31 entsprechende Adresssignal an die Adressierleitung24 angelegt wird, dann werden Spalte26-a , Spalte26-b und Spalte31 zum Empfangen von Daten von einem Konfigurationsmittel geschaltet. Daten von Speicherzellen21-1 bis21-n ,23-1 bis23-n und31-1 bis31-m liegen immer am Q-Ausgang an. Der Ausgang der beiden ersten Arrays von Konfigurationsspeicherzellen21-1 bis21-n und23-1 bis23-n sind mit einem jeweiligen Schalter28-1 bis28-n gekoppelt. Die Zahl der Konfigurationsspeicherzellen21 in der ersten Array ist gewöhnlich gleich der Zahl der Konfigurationsspeicherzellen23 in der zweiten Array. Ferner gibt es gewöhnlich dieselbe Anzahl von Schaltern28-1 bis28-n im Schaltmittel28 , wie es Konfigurationsspeicherzellen21 ,23 in der ersten Array oder der zweiten Array gibt. - Jeder Schalter
28-1 bis28-n hat zwei Dateneingänge und einen Auswahleingang. Ein erster Dateneingang jedes Schalters28-1 bis28-n ist jeweils mit einer der Speicherzellen21-1 bis21-n von Spalte26-a gekoppelt, und ein zweiter Dateneingang ist jeweils mit einer der Speicherzellen23-1 bis23-n von Spalte26-b gekoppelt. Wie3 zeigt, sind der Ausgang der Speicherzelle21-1 von Spalte26-a und der Ausgang von Speicherzelle23-1 von Spalte26-b jeweils mit dem ersten und dem zweiten Eingang von Schalter28-1 gekoppelt. Ebenso sind der Ausgang der Speicherzelle21-2 von Spalte26-a und der Ausgang der Speicherzelle23-2 von Spalte26-b jeweils mit dem ersten und dem zweiten Eingang von Schalter28-2 gekoppelt. In der in3 gezeigten Ausgestaltung sind die Schalter28-1 bis28-n 2:1 Multiplexer. Jeder Schalter28-1 bis28-n lässt entweder das Signal am ersten Dateneingang oder das Signal am zweiten Dateneingang als Reaktion auf ein am Auswahleingang anliegendes Signal durch. Der Auswahleingang jedes Schalters28-1 bis28-n wird mit der A/B-Leitung30 zum Empfangen des A/B-Auswahlsignals gekoppelt. Wenn das A/B-Auswahlsignal im H-Zustand ist, dann lassen die Schalter28-1 bis28-n die Eingänge von den Speicherzellen21-1 bis21-n von Spalte26-a durch. Ist das A/B-Auswahlsignal im L-Zustand, dann lassen die Schalter28-1 bis28-n die Eingänge von den Konfigurationsspeicherzellen23-1 bis23-n von Spalte26-b durch. Die Ausgänge der Schalter28-1 bis28-n sind mit dem CLB14 und der konfigurierbaren Leitwegmatrix18 gekoppelt. Durch Anlegen und Nichtanlegen des A/B-Auswahlsignals an die A/B-Leitung30 werden die in der ersten Array gespeicherten Konfigurationsdaten und die in der zweiten Array gespeicherten Konfigurationsdaten selektiv zum CLB14 und zur konfigurierbaren Leitwegmatrix18 geleitet. Somit können die CLBs14 und die konfigurierbaren Leitwegmatrizen18 gemäß den beiden alternativen Sätzen von Konfigurationsdaten umkonfiguriert werden. Da die Schalter28-1 bis28-n sehr schnell schalten können, können die an den CLB14 und die konfigurierbare Leitwegmatrix18 angelegten Konfigurationsdaten schnell zwischen einem in der ersten Array gespeicherten ersten Satz von Konfigurationsdaten und einem in der zweiten Array gespeicherten zweiten Satz von Konfigurationsdaten geschaltet werden. In dieser Ausgestaltung erfolgt das Schalten mit einer solchen Geschwindigkeit, dass der CLB14 und die konfigurierbare Leitwegmatrix18 effektiv zweimal innerhalb eines einzelnen Zyklus des Benutzertaktes umkonfiguriert werden können. - Während das Schaltmittel
28 als eine Mehrzahl von 2:1 Multiplexern beschrieben wurde, wird die Fachperson erkennen, dass die n 2:1 Multiplexer durch eine Reihe verschiedener anderer Multiplexerkonfigurationen ersetzt werden können, die 2x Eingänge empfangen und x Ausgänge senden. So können beispielsweise die n 2:1 Multiplexer durch n/4 8:4 Multiplexer ersetzt werden. - Während die obige Ausgestaltung des Konfigurationsspeichers
16 mit einem ersten Satz von Speicherzellen, einem zweiten Satz von Speicherzellen und einem Schaltmittel beschrieben wurde, das zwischen zwei Eingängen schaltet, wird die Fachperson erkennen, dass zusätzliche Sätze von Speicherzellen vorgesehen werden können und dass die Schaltmittel28 die Daten von einem beliebigen einen der ersten, zweiten oder zusätzlichen Sätze von Speicherzellen ausgeben können. Solche Ausgestaltungen, mit zusätzlichen Sätzen von Speicherzellen, würden es zulassen, dass die CLBs14 und konfigurierbaren Leitwegmatrizen18 dreimal, viermal oder noch öfter innerhalb eines einzelnen Zyklus des Benutzertaktes umkonfiguriert würden. -
4 zeigt eine alternative Ausgestaltung des Konfigurationsspeichers16 . In dieser Ausgestaltung werden die Multiplexer28-1 bis28-n , die Speicherzellen21-1 bis21-n und die Speicherzellen23-1 bis23-n jeweils durch Spaltenleseverstärker72-1 bis72-n , SRAM-(statischer Direktzugriffsspeicher)-Zellen74-1 bis74-n und76-1 bis76-n ersetzt. In dieser Ausgestaltung werden die Spalten26-a und26-b jeweils durch Reihen78-a und78-b ersetzt, die von konventionellen Schreibschaltungen46-1 bis46-n geladen werden. Multiplexer28-1 bis28-n werden nicht verwendet. Stattdessen werden die Reihenausgangssignale von Spaltenleseverstärkern72-1 bis72-n gepuffert. Die A/B-Leitung30 wird durch eine A-Adressleitung80 und eine B-Adressleitung82 ersetzt. Wenn das Signal auf der A-Adressleitung80 im H-Zustand und das Signal auf der B-Adressleitung82 im L-Zustand ist, dann werden Daten in der SRAM-Zellenreihe78-a an Leseverstärker72-1 bis72-n und dann an den CLB14 und die konfigurierbare Leitwegmatrix18 angelegt. Wenn das Signal auf der A-Adressleitung80 im L-Zustand und das Signal auf der B-Adressleitung82 im H-Zustand ist, dann werden die Daten in der SRAM-Zellenreihe78-b an die Leseverstärker72-1 bis72-n und dann an den CLB14 und die konfigurierbare Leitwegmatrix18 angelegt. Die Fachperson wird ein Mittel zum alternativen Setzen des Signals auf der A-Adressleitung80 in den H-Zustand und dann des Signals auf der B-Adressleitung82 in den H-Zustand erzeugen können. Die Fachperson wird erkennen, dass weitere SRAM-Zellenreihen78 hinzugefügt werden können, um mehr als zwei Sätze von Konfigurationsdaten zu erzeugen und somit die Häufigkeit zu erhöhen, mit der der CLB14 und die konfigurierbare Leitwegmatrix18 während des Benutzertaktzyklus umkonfiguriert werden können. - Konfigurierbare Logikblöcke
-
5 zeigt ein Blockdiagramm eines CLB13 des Standes der Technik. Der CLB13 des Standes der Technik umfasst einen Funktionsgenerator34 , ein Register36 und einen Ausgangsschalter38 . Der Funktionsgenerator34 implementiert Logikfunktionen von mehreren Eingängen gemäß den im Konfigurationsspeicher15 gespeicherten Daten. Die jeweilige Logikfunktion wird nach Konfigurationsdaten gewählt. Die Eingänge werden mit einer Leitwegmatrix des Standes der Technik gekoppelt. Konfigurationsdaten kommen von einem mit dem CLB13 assoziierten Konfigurationsspeicher15 . - Der Ausgang des Funktionsgenerators
34 ist entweder direkt oder durch das Register36 mit dem Ausgangsschalter38 gekoppelt. Das Register36 ist ein konventionelles Datensignalspeicherregister wie z.B. ein D-Flipflop. Das Register36 hat einen Dateneingang, der mit dem Ausgang des Funktionsgenerators34 gekoppelt ist, und einen Takteingang, der zum Empfangen eines Benutzertaktsignals auf einer Leitung44-c der Leitungen44 gekoppelt ist. Das Register36 hat einen Datenausgang Q. - Der Ausgangsschalter
38 hat zwei Dateneingänge, einen Datenausgang und einen Auswahleingang und kann ein 2:1 Multiplexer sein. Der Konfigurationsspeicher steuert typischerweise den Auswahleingang von Schalter38 . -
6A zeigt ein Blockdiagramm einer Ausgestaltung eines gemäß der vorliegenden Erfindung konstruierten CLB14 . Der CLB14 gemäß dieser Ausgestaltung umfasst einen Funktionsgenerator34 , einen ersten Datensignalspeicher42a , einen zweiten Datensignalspeicher42b , ein erstes Register36a , ein zweites Register36b , einen ersten Ausgangsschalter39a und einen zweiten Ausgangsschalter39b . Der erste Datensignalspeicher42a , das erste Register36a sowie der erste Ausgangsschalter39a erzeugen vorteilhafterweise den Ausgang des Funktionsgenerators34 , wenn der Funktionsgenerator34 mit Ausgängen des ersten Satzes von Speicherzellen21 konfiguriert ist (3 ). Somit können die vom ersten Datensignalspeicher42a oder vom Register36a gespeicherten Daten in der zweiten Hälfte des Benutzertaktzyklus verwendet werden, wenn der CLB14 gemäß dem zweiten Satz von Konfigurationsdaten von Speicherzellen23 konfiguriert ist. Der zweite Datensignalspeicher42b , das zweite Register36b und der zweite Schalter39b werden ebenfalls zum Speichern und Leiten des Ausgangs des Funktionsgenerators34 verwendet, wenn dieser gemäß dem zweiten Satz von Konfigurationsdaten von Speicherzellen23 konfiguriert ist. - Der Funktionsgenerator
34 ist zu dem von5 oben äquivalent. Die Dateneingänge des Funktionsgenerators34 sind mit der konfigurierbaren Leitwegmatrix18 gekoppelt und die Steuereingänge sind mit dem Konfigurationsspeicher16 der vorliegenden Erfindung gekoppelt. Somit kann der Funktionsgenerator34 von den Steuersignalen, während andere Teile des CLB14 umkonfiguriert werden. - Der erste Datensignalspeicher
42a ist ein herkömmlicher Datensignalspeicher zum Speichern eines binären Datenbits. Der erste Datensignalspeicher42a hat einen Dateneingang (D), einen Datenausgang (Q) und einen Latch-enable-Eingang (Takteingang). Der Dateneingang des ersten Datensignalspeichers42a ist mit dem Ausgang des Funktionsgenerators34 gekoppelt. Der Latch-enable-Eingang ist mit der A/B-Leitung30 zum Empfangen eines A/B-Signals gekoppelt. Der erste Datensignalspeicher42a rastet entweder Daten als Reaktion auf das am Latch-enable-Eingang anliegende Signal oder lässt sie durch. Der erste Datensignalspeicher42a lässt Daten im ersten Teil des Benutzertaktzyklus durch und rastet Daten im zweiten Teil des Benutzertaktzyklus. In dieser Ausgestaltung wird das Latch-enable-Signal im L-Zustand angelegt, so dass Daten auf einem „hohen" A/B-Signal durchgelassen und auf einem „tiefen" A/B-Signal gerastet werden. Der zweite Datensignalspeicher42b hat dieselbe Funktionalität und Struktur wie der erste Datensignalspeicher42a . Der Dateneingang des zweiten Datensignalspeichers42b ist mit dem Ausgang des Funktionsgenerators34 gekoppelt. Der Latch-enable-Eingang des zweiten Datensignalspeichers42b ist jedoch mit einer Leitung68 zum Empfangen desA/B -Signals gekoppelt. Da der zweite Datensignalspeicher42b ein Signal an seinem Latch-enable-Eingang empfängt, das die Umkehr des am ersten Datensignalspeicher42a anliegenden Signals ist, erfolgt das Durchlassen und Rasten der Daten durch den Datensignalspeicher42a ,42b Daten zu entgegengesetzten Zeiten während des Benutzertaktzyklus. - Die Fachperson wird erkennen, dass ein von der A/B-Leitung
30 angesteuerter Inverter zum Ansteuern des Latch-enable-Eingangs vom Signalspeicher42b verwendet werden kann, so dass sich dieA/B -Leitung68 erübrigt. - Das erste Register
36a ist ein Datenregister des in Verbindung mit5 oben beschriebenen Typs. Das erste Register36a kann beispielsweise ein D-Flipflop sein. Der Dateneingang des Registers36b ist mit dem Datenausgang des ersten Datensignalspeichers42a gekoppelt. Der Takteingang des ersten Registers36a ist mit einer Leitung44-c zum Empfangen des Benutzertaktsignals gekoppelt. Ebenso kann das zweite Datenregister ein D-Flipflop sein. - Der Dateneingang des zweiten Registers
36b ist mit dem Datenausgang des zweiten Datensignalspeichers42b gekoppelt und der Takteingang ist mit der Leitung44-c zum Empfangen des Benutzertaktsignals gekoppelt. - Der erste Ausgangsschalter
39a ist ein herkömmliches Schaltgerät wie z.B. ein 3:1 Multiplexer. Der Ausgangsschalter39a ,39b hat drei Dateneingänge, einen Datenausgang und einen Befehlseingang. Ein erster Dateneingang des Ausgangsschalters39a ist mit dem Ausgang des Registers36a gekoppelt. Der zweite Dateneingang des Ausgangsschalters39a ist mit dem Datenausgang des Datensignalspeichers42a gekoppelt. In dieser Ausgestaltung ist der Ausgang des Funktionsgenerators34 mit einem dritten Dateneingang des Ausgangsschalters39a gekoppelt. Der Ausgangsschalter39a gibt eines der an den drei Eingängen anliegenden Signale als Reaktion auf Signale zu den Steuereingängen des Ausgangsschalters39a aus. Die Steuereingänge sind mit assoziierten Speicherzellen21 ,23 oder üblicher31 im Konfigurationsspeicher16 der vorliegenden Erfindung gekoppelt und bleiben typischerweise unverändert, wenn die A/B-Leitung30 schaltet. - Der zweite Ausgangsschalter
39b ist ebenfalls ein 3:1 Multiplexer. Der zweite Ausgangsschalter39b beinhaltet einen ersten, zweiten und dritten Dateneingang; einen Datenausgang und ein Paar Steuereingänge. Der erste Dateneingang ist mit dem Ausgang des zweiten Registers36b gekoppelt; der zweite Dateneingang ist mit dem Ausgang des zweiten Datensignalspeichers42b gekoppelt. Der dritte Eingang des Ausgangsschalters39b ist mit dem Ausgang des Funktionsgenerators34 gekoppelt. Die Steuereingänge sind mit assoziierten Speicherzellen21 ,23 oder31 im Konfigurationsspeicher16 gekoppelt, um zu steuern, welches der drei Eingangssignale vom zweiten Ausgangsschalter39b ausgegeben wird. Der Ausgang des zweiten Ausgangsschalters39b bildet einen der Ausgänge des CLB14 . - Diese Ausgestaltung der vorliegenden Erfindung erhöht vorteilhafterweise die Anzahl der Logikfunktionen, die von der FPLA
10 durch Umkonfigurieren der CLBs14 ausgeführt werden, so dass sie mehr als eine Logikfunktion während eines Zyklus des Benutzertaktes ausführen. Eine Zwei-Perioden-Ausgestaltung der vorliegenden Erfindung unterteilt den Zyklus des Benutzertaktes in zwei Perioden, eine A-Periode und eine B-Periode. Die A-Periode und die B-Periode können gleich sein, brauchen es aber nicht. Während der A-Periode konfiguriert eine Zwei-Perioden-Ausgestaltung der vorliegenden Erfindung die CLBs14 und die konfigurierbaren Leitwegmatrizen18 anhand der in der ersten Array des Konfigurationsspeichers16 gespeicherten Konfigurationsdaten. Die CLBs14 führen dann ihre Logikfunktionen aus und die A-Periode endet. Während der B-Periode werden die CLBs14 und die konfigurierbaren Leitwegmatrizen18 mittels der in der zweiten Array des Konfigurationsspeichers16 gespeicherten Konfigurationsdaten umkonfiguriert. Die CLBs14 führen dann ihre Logikfunktionen aus, und die B-Periode und der Zyklus des Benutzertaktes enden. Somit hat die vorliegende Erfindung in der vorliegenden Ausgestaltung die Anzahl der Logikfunktionen verdoppelt, die die FPLA10 während eines Zyklus des Benutzertaktes ausführen kann. -
6A zeigt einen CLB14 , wenn die vorliegende Erfindung zwei Sätze von Konfigurationsdaten umfasst. Die vorliegende Erfindung kann eine beliebige Anzahl von Konfigurationsdatensätzen umfassen. Für jeden Konfigurationsdatensatz hat jeder CLB14 einen zusätzlichen Ausgangspfad mit Datensignalspeicher42 , Register36 und Schalter39 zum Erzeugen eines Ausgangssignals. - In einer anderen Ausgestaltung können die Datensignalspeicher so angeordnet sein, dass ihre Ausgänge zum Eingang anstatt zum Ausgang des Funktionsgenerators
34 geleitet werden. - Eine solche Ausgestaltung ist in
6B dargestellt. In6B sind Signalspeicher62a –62d am Eingang von CLB17 vorgesehen und speichern in der Leitwegmatrix18 vorhandene Signale in zwei unterschiedlichen Betriebsperioden. Die Signalspeicher62a und62b lassen an ihren jeweiligen D-Eingangsanschlüssen anliegende Signale durch, wenn das A/B-Signal im H-Zustand ist, und erfassen die vorhandenen Daten, wenn das A/B-Signal in den L-Zustand geht. Die Signalspeicher62c und62d lassen Daten, die an ihren D-Eingangsanschlüssen anliegen, durch, wenn das A/B-Signal im L-Zustand ist, und erfassen die Daten, die vorhanden sind, wenn A/B in den H-Zustand geht. Alle vier Ausgänge von Signalspeichern62a –62d werden immer an die I1–I4 Anschlüsse des Funktionsgenerators34 angelegt, obwohl zu jedem Zeitpunkt zwei der Signalspeicher62a –62d Daten von der Leitwegmatrix18 durchlassen und zwei Daten speichern, die zuvor von der Leitwegmatrix18 empfangen wurden. Somit können an den beiden Phasen des A/B-Taktsignals Leitungen in der Leitwegmatrix18 für unterschiedliche Zwecke verwendet werden. So könnte beispielsweise dasselbe Leitwegmatrix-Leitungssegment oder dieselbe Folge von Leitungssegmenten verwendet werden, um ein Signal in der ersten Phase des A/B-Taktsignals an den Signalspeicher62a , und ein Signal zum Signalspeicher62c in der zweiten Phase des A/B-Taktsignals anzulegen. Beide Signale würden vom Funktionsgenerator34 benutzt. Die Signalspeicher62a bis62d lassen es zu, dass die Leitwegmatrix18 in den beiden Phasen praktischerweise wiederverwendet wird. Es können natürlich mehr als zwei Phasen durch separat getaktete Signalspeicher62a –62d mit mehr als zwei Taktsignalen vorgesehen werden. - Leitwegmatrix
-
6C zeigt eine Ausgestaltung einer Leitwegmatrix18 , mit der die Erfindung verwendet werden kann. Am äußeren Rand von6C sind auch Teile von vier CLBs14a ,14b ,14c und14d dargestellt. Transistoren in der Leitwegmatrix18 sind durch kurze Linien dargestellt, die zwischen Linien verlaufen, die sie verbinden können. So verläuft beispielsweise der Transistor T61 zwischen der Leitwegleitung R61 und der Eingangsleitung I4 im CLB14b . - Der Transistor T62 kann den Ausgang des Multiplexers
39b im CLB14a mit der Leitwegleitung R61 verbinden. Der Transistor T63 kann die Leitwegleitung R61 mit der Leitwegleitung R63 verbinden und der Transistor T64 kann die Leitwegleitung R61 mit der Leitwegleitung R64 verbinden. Die Steuerung jedes Transistors erfolgt durch eine Leitung vom Konfigurationsspeicher16 zum Gate des Transistors. Der Einfachheit halber sind die meisten Transistoren in der Zeichnung nicht beschriftet und die Verbindungen vom Konfigurationsspeicher16 zum jeweiligen Gate sind durch eine einzelne Linie zu jeder der Schalterboxen S61, S62, S63 und S64 dargestellt. Weitere Leitwegmatrizen sind im 1993 Xilinx Data Book dargestellt. Zweck von6C ist es, die Beziehung zwischen der Leitwegmatrix18 , den CLBs14 und den Konfigurationsleitungen vom Konfigurationsspeicher16 zu illustrieren. Der neue Aspekt von6C ist, dass Signale vom Konfigurationsspeicher16 die Leitwegmatrix18 in Verbindung mit dem Umkonfigurieren der CLBs14 umkonfigurieren und damit dieselbe Leitwegleitung in der Leitwegmatrix18 für mehr als eine Verbindung verwenden kann, wie oben erörtert wurde. - Betriebsarten
- Die vorliegende Erfindung bietet drei Betriebsarten der CLBs
14 . Die CLBs14 können zum Ausführen einer einfachen, schnellen, asynchronen kombinatorischen Logikfunktion verwendet werden. Dieser erste Modus ist dann gegeben, wenn die in der ersten Array gespeicherten Konfigurationsdaten mit den in der zweiten Array gespeicherten Konfigurationsdaten identisch sind. In diesem Modus sind der erste und der zweite Ausgangsschalter39a ,39b zum Empfangen und direkten Durchlassen des Datenausgangs durch den Funktionsgenerator34 konfiguriert. Der B-Ausgangspfad wird entweder nicht benutzt oder die Ausgänge der Schalter39a ,39b sind zu einem einzelnen Ausgangspfad zusammengeschaltet. Das A/B-Signal auf der Leitung30 und das Benutzertaktsignal auf der Leitung44 können angelegt werden, aber dieser erste Modus nutzt die Datensignalspeicher42a ,42b und die Register36a ,36b nicht. Daher werden das A/B-Signal und das Benutzertaktsignal ignoriert. Dieser Modus nutzt die Fähigkeit der vorliegenden Erfindung nicht, die Zahl der von der FPLA10 implementierten Logikfunktionen zu erhöhen. - Die zweite Betriebsart ist ein schneller registrierter Modus. Dieser Modus ist synchron. Wie beim schnellen asynchronen Modus ist dieser zweite Modus dann gegeben, wenn die in der ersten und der zweiten Array gespeicherten Konfigurationsdaten identisch sind. Das A/B-Signal wird nicht angelegt (im H-Zustand gehalten), so dass der erste Datensignalspeicher
42a Daten zum ersten Register36a während der A- und der B-Periode des Benutzertaktzyklus durchlässt. Dann werden auf der nächsten ansteigenden Flanke des Benutzertaktes die durch den ersten Datensignalspeicher42a durchgelassenen Daten in das erste Register36a getaktet. In diesem Modus ändert sich der Ausgang des CLB14 erst am Anfang des nächsten Zyklus des Benutzertaktes. Dieser Modus nutzt den B-Ausgangspfad nicht und nutzt auch das Vermögen der Erfindung nicht, die Zahl der von der erfindungsgemäßen FPLA10 ausgeführten Logikfunktionen zu erhöhen. - Nachfolgend wird mit Bezug auf
7 der dritte Modus erörtert. Diese Figur zeigt ein Timing-Diagramm, das die Umkonfigurationssteuersignale in der FPLA10 der vorliegenden Erfindung darstellt.7 zeigt zwei Zyklen eines beispielhaften Benutzertaktes, zwei Zyklen eines beispielhaften A/B-Signals, zwei Zyklen eines beispielhaften A/B'-Signals, vier beispielhafte Zustände des Signalspeichers42a , vier beispielhafte Zustände des Signalspeichers42b , zwei beispielhafte Ausgänge des Registers36a und zwei beispielhafte Ausgänge des Registers36b . Während die Signale A/B und A/B' in der Darstellung am Mittelpunkt T2 in den Zyklus des Benutzertaktes übergehen, ist eine solche Unterteilung nicht erforderlich. Das A/B-Signal kann einen Zyklus des Benutzertaktes an vielen Zwischenpunkten unterteilen. Eine Einschränkung der Unterteilung ist, dass sowohl die A-Periode als auch die B-Periode lang genug sein müssen, damit alle Signale in der FPLA10 durch die CLBs14 propagieren und sich einschwingen können müssen, so dass Signale an den Eingängen der Signalspeicher und Register lange genug für eine nachfolgende Speicherung vorliegen. -
7 trägt zur Erläuterung der dritten Betriebsart des CLB14 bei. Die dritte Betriebsart nutzt das Vermögen der vorliegenden Erfindung, die Anzahl der von der FPLA10 ausgeführten Logikfunktionen zu erhöhen. Im dritten Modus unterscheiden sich die Konfiguration des CLB14 und die Konfiguration der konfigurierbaren Leitwegmatrix18 während der A-Periode von der Konfiguration in der B-Periode. Der dritte Modus wird hierin als Pipeline-Modus bezeichnet. - Zu Beginn eines Benutzertaktzyklus T1 beginnt auch das A/B-Signal mit einem Zyklus. In der A-Periode ist das A/B-Signal im H-Zustand, so dass die CLBs
14 und die Leitwegmatrizen18 mit dem ersten Satz von Konfigurationsdaten konfiguriert werden. Während der A-Periode lässt der erste Datensignalspeicher42a Daten durch und der Datensignalspeicher42b rastet Daten. - Am Übergang des A/B-Signals bei T2 wählt das A/B-Signal jetzt den zweiten Satz von Konfigurationsdaten aus dem Speicher
16 und konfiguriert die CLBs14 und die konfigurierbaren Leitwegmatrizen18 somit um. Der erste Datensignalspeicher42a rastet die Daten an seinem Eingang, der zweite Datensignalspeicher42b lässt die Daten an seinem Eingang durch. - Zu Beginn des nächsten Zyklus des Benutzertakts T3 beginnt wieder ein Übergang des A/B-Signals. Auch hier werden die CLBs
14 und die konfigurierbaren Leitwegmatrizen18 wieder gemäß dem ersten Konfigurationsdatensatz umkonfiguriert. Der erste Datensignalspeicher42a lässt die Daten durch, der zweite Datensignalspeicher42b rastet sie. Auf der ansteigenden Flanke des Benutzertaktes und des A/B-Signals takten das erste und das zweite Register36a ,36b Daten ein. Das Register36a taktet die gerasteten Daten vom Datensignalspeicher42a ein, das Register36b taktet die Durchlassdaten vom Datensignalspeicher42b ein. Somit speichert das erste Register36a den Ausgang des Funktionsgenerators34 , wenn es im früheren Teil des Benutzertaktes konfiguriert wurde, gemäß dem ersten Konfigurationsdatensatz. Das zweite Register36b speichert den Ausgang des Funktionsgenerators34 , wenn es im letzteren Teil des Benutzertaktes konfiguriert wurde, gemäß dem zweiten Konfigurationsdatensatz. - Bei jedem Übergang des A/B-Signals werden der erste und der zweite Ausgangsschalter
39a ,39b umkonfiguriert. In vielen Anwendungen werden die Ausgangsschalter39a ,39b während des Benutzertaktzyklus nicht umkonfiguriert. In der Ausgestaltung von6A erlaubt die Struktur jedoch eine Umkonfiguration der Ausgangsschalter, und in einigen Anwendungen kann dies auch wünschenswert sein. So kann beispielsweise der Schalter39a Daten vom Funktionsgenerator34 während der A-Periode und vom Register36a während der B-Periode durchlassen. Inzwischen kann der Schalter39b Daten vom Signalspeicher42b in beiden Perioden durchlassen. - Die Leitwegmatrizen
18 werden auch bei jedem Übergang des A/B-Signals umkonfiguriert. Wie bei den CLBs14 , können die Eingänge zum CLB14 während der A-Periode von anderen Quellen kommen als in der B-Periode. Bei jedem Übergang des A/B-Signals werden die Leitwegmatrizen so umkonfiguriert, dass sie die richtigen Eingänge an jeden CLB14 anlegen und die Ausgänge des CLB14 korrekt leiten. - Nicht alle Fliesen
12 der FPLA10 der vorliegenden Erfindung müssen im selben Modus konfiguriert werden. Einige Fliesen können im schnellen asynchronen Modus konfiguriert werden, andere im schnellen registrierten Modus und wieder andere im Pipeline-Modus. Somit kann der CLB14 die Zahl der in der FPLA10 implementierten Logikfunktionen im Vergleich zu der Zahl der in der FPLA10 des Standes der Technik ausgeführten Logikfunktionen stark erhöhen. Die vorliegende Erfindung erzielt diese Erhöhung ohne eine beträchtliche Vergrößerung der Siliciumfläche der FPLA10 gegenüber dem Stand der Technik. -
7 zeigt den Ablauf eines vollständigen Zyklus des A/B-Signals innerhalb eines Zyklus des Benutzertaktes. Aber das A/B-Signal kann auch eine Periode haben, die länger als ein Zyklus des Taktsignals ist. Das Timing-Diagramm von8 zeigt vier Zyklen des Benutzertakts im Vergleich mit einem ersten alternativen A/B-Signal A/B-1 und seiner UmkehrA/B-1 und mit einem alternativen A/B-Signal A/B-2 und seiner UmkehrA/B/2 . In8 beträgt der erste Teil des A/B-1 Signals zwei Zyklen des Benutzertaktes. Ebenso beträgt der zweite Teil des A/B-1 Signals zwei Zyklen des Benutzertakts. Der erste Teil des A/B-2 Signals beträgt einen Zyklus des Benutzertakts. Der zweite Teil des A/B-2 Signals beträgt ebenfalls einen Zyklus des Benutzertakts. Wie in Verbindung mit7 beschrieben wurde, braucht der erste Teil eines A/B-Signals nicht die gleiche Länge zu haben wie der zweite Teil des A/B-Signals.8 illustriert, dass das A/B-Signal im Allgemeinen eine beliebige Länge, ob größer, gleich oder kleiner als die Periode des Benutzertakts, haben kann. - Beispiel
-
9 zeigt ein Blockdiagramm eines 3-Bit-Zählers, der in einer FPLA10 implementiert werden kann. Der Zähler hat drei Ausgänge A, B und C und einen Takteingang. Der 3-Bit-Zähler umfasst ein erstes AND-Gate50 mit zwei Eingängen, ein zweites AND-Gate52 mit zwei Eingängen, ein drittes AND-Gate54 mit drei Eingängen, ein OR-Gate56 mit drei Eingängen, ein XOR-Gate58 mit zwei Eingängen, ein erstes Register60 , ein zweites Register62 und ein drittes Register64 , die alle wie gezeigt geschaltet sind. - Für die
9 ,10 und11 zeigt das BeispielQ als Ausgang des CLB. Damit sollen die Vorteile der Umkonfigurierung der Leitwegmatrix deutlicher illustriert werden. Für FPLAs wird, da Q eine programmierbare Lookup-Tabelle ansteuern kann, wo es inQ invertiert werden kann, nur ein Ausgang benötigt. Daher zeigten die4 und5 Q nicht als Ausgang des CLB. -
10 zeigt ein Blockdiagramm einer Ausführung des 3-Bit-Zählers mit einer FPLA des Standes der Technik. Die Implementation umfasst Fliesen11-1 ,11-2 ,11-3 und11-4 des Standes der Technik. Die konfigurierbaren Leitwegmatrizen70-1 ,70-2 ,70-3 und70-4 verbinden diese Fliesen. Die Verbindungen der Ausgänge der Fliesen11-1 ,11-2 ,11-3 und11-4 erfolgen durch die konfigurierbare Leitwegmatrix70 jeder Fliese11 . Jeder Punkt repräsentiert einen Teil der Leitwegmatrizen70 , der durch Speichern von Daten in ihrem assoziierten Konfigurationsspeicher geschaltet wurde. Der Deutlichkeit halber sind die Ausgangsschalter, Konfigurationsspeicher, Steuerleitungen und Taktleitungen nicht dargestellt. - Der erste CLB
13-1 des Standes der Technik ist so konfiguriert, dass der Funktionsgenerator34-1 eine XOR-Funktion mit zwei Eingängen implementiert, und der Ausgangsschalter38-1 (nicht dargestellt) lässt den Ausgang des Registers36-1 durch. Der zweite CLB13-2 des Standes der Technik ist so konfiguriert, dass der Funktionsgenerator34-2 die Zwei-Level-Digitalfunktion mit drei Eingängen gemäß der Gleichung D = AB + AC +A BC implementiert, wobeiA BC der Ausgang des Funktionsgenerators34-4 und D der Ausgang des Funktionsgenerators34-2 ist. Der Ausgangsschalter (siehe Ausgangsschalter38 von5 ) des zweiten CLB13-2 des Standes der Technik ist so konfiguriert, dass er den Ausgang von Register36-2 durchlässt. Der dritte CLB13-3 des Standes der Technik ist so konfiguriert, dass der Funktionsgenerator34-3 das Signal zum AusgangC invertiert, und der Ausgangsschalter38-3 (nicht dargestellt) lässt den Ausgang des Registers36-3 durch. Der CLB13-4 des Standes der Technik ist so konfiguriert, dass er eine AND-FunktionA BC mit drei Eingängen implementiert. Der Ausgangsschalter des CLB13-4 des Standes der Technik ist so konfiguriert, dass er den Ausgang des Funktionsgenerators34-4 durchlässt. Die konfigurierbaren Leitwegmatrizen70-1 ,70-2 ,70-3 und70-4 sind, wie durch die schwarzen Punkte angedeutet, zum Bilden des Zählers von9 geschaltet. -
11 zeigt ein Blockdiagramm einer Implementation des 3-Bit-Zählers mit der FPLA10 der vorliegenden Erfindung. Die konfigurierbaren Leitwegmatrizen18 sind als gestrichelte Linien um die Anschlüsse dargestellt, die von den konfigurierbaren Leitwegmatrizen18 vorgenommen werden. Die Anschlüsse sind entweder mit einem vollen Verbinder oder einem hohlen Verbinder dargestellt. Die Leitwegmatrizen18 sind in der A-Periode so konfiguriert, dass sie die durch die vollen Verbinder angedeuteten Anschlüsse implementieren. In der B-Periode sind die konfigurierbaren Leitwegmatrizen18 so konfiguriert, dass sie die durch die hohlen Verbinder angedeuteten Anschlüsse vornehmen. Die Leitwegmatrizen18 sind so konfiguriert, dass sie die durch einen hohlen Verbinder angedeuteten Anschlüsse implementieren, der einen vollen Verbinder in der A-Periode und in der B-Periode umgibt. Dies entspricht dem Fall, bei dem die in der Speicherzelle21-x gespeicherten Daten mit den in der Speicherzelle23-x gespeicherten Daten identisch sind, wobei x zwischen 1 und n in3 liegt. Die konfigurierbare Leitwegmatrix18 ist größer als die konfigurierbare Leitwegmatrix des Standes der Technik, ist aber nicht unbedingt zweimal so groß wie die konfigurierbare Leitwegmatrix des Standes der Technik. Der Deutlichkeit halber sind die Ausgangsschalter39a-1 ,39b-1 ,39a-2 and39b-2 , die Konfigurationsspeicher, die Steuerleitungen und Taktleitungen, die denen der6A entsprechen, nicht dargestellt. - In
11 verwendet der 3-Bit-Zähler zwei Fliesen12-1 und12-2 der FPLA10 . Jede Fliese führt zwei Logikfunktionen aus, eine während der A-Periode und eine andere während der B-Periode. In11 repräsentieren die Bezugsziffern34-1-a und34-1-b dasselbe physische Bauelement, das unterschiedliche Funktionsgeneratorlogik in den beiden Perioden ausführt. In der A-Periode ist der erste CLB14-1-a von Fliese12-1 so konfiguriert, dass die Funktionsgeneratorlogik34-1-a ein AND-Gate mit drei Eingängen ist und der Ausgangsschalter39-1 (nicht dargestellt) Daten vom ersten Datensignalspeicher42-1-a durchlässt. Wenn die Fliese12-1 in der B-Periode umkonfiguriert wird, dann ist die Funktionsgeneratorlogik34-1-b die Dreieingangs-Logikfunktion mit der Gleichung D = AB + AC +A BC, wobei D der Ausgang der Funktionsgeneratorlogik34-1-b ist. Man beachte, dass der Ausgang der Funktionsgeneratorlogik34-1-a am Ende der A-Periode in den Datensignalspeicher42-1-a gerastet wird. Der Ausgang der Datensignalspeicherkonfiguration42-1-a steht der Funktionsgeneratorlogik34-1-b in der folgenden B-Periode zur Verfügung und wird davon benutzt. Der Ausgangsschalter von CLB14-1 , der zum Schalter39b von6A äquivalent ist, ist so konfiguriert, dass er Daten vom Register36-1-b durchlässt, und ist nicht dargestellt. - Die Fliese
12-2 ist in der A-Periode so konfiguriert, dass die Funktionsgeneratorlogik34-2-a den EingangC einfach durchlässt. Der Ausgangsschalter ist so konfiguriert, dass er Daten vom Register36-2-a durchlässt. In der B-Periode führt die Funktionsgeneratorlogik34-2-b eine XOR-Funktion mit zwei Eingängen aus und der Ausgangsschalter (äquivalent zu39b von6a ) ist so konfiguriert, dass er Daten von der Registerkonfiguration36-2-b ausgibt. - Ein Vergleich von
10 mit11 zeigt, dass die Zwei-Konfigurations-Ausgestaltung der vorliegenden Erfindung die Zahl der Logikfunktionen, die die FPLA10 ausführen kann, im Vergleich zur FPLA des Standes der Technik effektiv verdoppelt. Wo vier Fliesen des Standes der Technik nötig waren, um den 3-Bit-Zähler auszuführen, da benötigt die vorliegende Erfindung nur zwei Fliesen12 . Diese Ausgestaltung der vorliegenden Erfindung erfordert eine geringfügig größere Siliciumfläche aufgrund des zusätzlichen Speichers zum Speichern von Konfigurationsdaten und der Zunahme der Größe der konfigurierbaren Leitwegmatrizen18 und der CLBs14 , aber eine Fliese, die zwei Konfigurationen bietet, benötigt viel weniger als das Zweifache der Fläche einer Ein-Konfigurations-Fliese. - Die Umkonfiguration kann in einem Zyklus des Benutzertaktes stattfinden. Da die meisten Benutzer einen Taktzyklus benötigen, der größer ist als die Verzögerung von zwei Fliesen, wenn der Benutzer die Logik sorgfältig zwischen denen, die auf A laufen, und denen, die auf B laufen, partitioniert, ist der einzige Zeitverlust die Zeit, die die Elemente im Datenpfad für die Konfigurationsumschaltung benötigen. Die Elemente beinhalten Durchlassgatter in der Leitwegmatrix
18 , Durchlassgatter oder andere Bauelemente in Funktionsgeneratoren34 sowie Ausgangsschalter39 , wobei jedes Pfadelement von einem Multiplexer28-x gesteuert wird, wobei x zwischen 1 und n gemäß3 liegt. Dieser Multiplexer ist ein Hochgeschwindigkeitselement, die Elemente im Datenpfad sind schnell und die Elemente schalten parallel, daher ist der Zeitverlust gering. Für den Benutzer wird nur ein minimaler Geschwindigkeitsverlust spürbar sein. Um den Geschwindigkeitsverlust für den Benutzer noch weiter zu minimieren, sind einige der Schalter28-1 bis28-n kritischer als andere. In der Ausgestaltung von6A ist es, da in den Signalspeichern und Registern gespeicherte Signale die Schalter39a und39b und dann die Durchlassgatter in der Leitwegmatrix18 erreichen, bevor sie Funktionsgeneratoren34 des nächsten CLB weiter hinten im Pfad erreichen, während der Umkonfiguration kritischer, dass Schalter39a und39b und die Durchlasstransistoren in der Leitwegmatrix18 schneller (vor der Ankunft des Datensignals) schalten, als wenn die Funktionsgeneratoren34 schnell schalten. Daher sollte die Geschwindigkeit von Ausgangssignalen von den Schaltern28-1 bis28-n , die die Ausgangsschalter39a ,39b steuern, und von denen der Durchlasstransistoren der Leitwegmatrix18 maximiert werden [sic]. Dazu sollten die kritischsten Ausgangssignale von den Schaltern28-1 bis28-n auf Metallleitungen gesetzt werden. Es können zusätzliche Maßnahmen, z.B. Regulieren der Größen von Schaltern28-1 bis28-n , getroffen werden, um die kritischsten Geschwindigkeiten zu maximieren und die Fläche minimal zu halten, wo die Geschwindigkeit etwas weniger kritisch ist. In anderen Ausgestaltungen, z.B.6B , ist die Bedeutung der Geschwindigkeit jedoch anders. - Zusammenfassung
- Somit erhöht die vorliegende Erfindung die Zahl der Logikfunktionen, die pro Flächeneinheit mit derselben Verarbeitungstechnologie im Vergleich zur Fliese des Standes der Technik implementiert werden können, erheblich, ohne dabei unbedingt die Leistung zu beeinträchtigen.
- Die vorliegende Erfindung wurde zwar mit Bezug auf bestimmte bevorzugte Ausgestaltungen beschrieben, aber die Fachperson wird erkennen, dass verschiedene Modifikationen möglich sind. So können beispielsweise die CLBs
14 der vorliegenden Erfindung auf einer FPLA zusammen mit CLBs des Standes der Technik in einer Reihe verschiedener Konfigurationen verwendet werden. So hätte beispielsweise eine FPLA einige Fliesen, die in registrierten und asynchronen Betriebsarten arbeiten (Stand der Technik), zusammen mit anderen, die in einem Pipeline-Modus arbeiten. In einem anderen Beispiel braucht die programmierbare Logikarray der vorliegenden Erfindung nicht auf einen einzelnen Siliciumchip begrenzt zu sein, sondern kann auf mehreren Chips ausgeführt werden. Um noch ein weiteres Beispiel zu geben, die vorliegende Erfindung wurde zwar in Verbindung mit FPLA-Architekturen beschrieben, aber sie könnte genauso gut auch mit anderen Architekturen zur Anwendung kommen, die frei programmierbar und umkonfigurierbar sind. Die Erfindung kann in einem Bauelement zum Einsatz kommen, das keine Logikblöcke beinhaltet, sondern einfach Schalt- und Leitwegmatrizen beinhaltet. Ferner kann die Erfindung in einem Bauelement wie z.B. einer PLA zum Einsatz kommen, die nur ein einzelnes programmierbares Logikbauelement beinhaltet. - Die obige ausführliche Beschreibung konzentrierte sich auf Ausgestaltungen, die mit SRAM-Konfigurationsspeicherzellen konfiguriert wurden. Da eine Konfigurationsänderung in der vorliegenden Erfindung ohne eine Änderung des Konfigurationsspeichers erzielt werden kann, ist es möglich, den Konfigurationsspeicher von solchen einmalig programmierbaren Techniken als Fuses oder Antifuses auszubilden, oder von Technologien, die sich schwerer umprogrammieren lassen, wie z.B. EPROMs oder EEPROMs. Diese sowie weitere Variationen und Modifikationen der bevorzugten Ausgestaltungen sind von der vorliegenden Erfindung vorgesehen, die nur durch die nachfolgenden Ansprüche begrenzt ist.
Claims (29)
- Programmierbare Array, die Folgendes umfasst: einen Konfigurationsspeicher mit einem ersten Speichermittel zum Speichern eines ersten Satzes von Konfigurationsdaten, einem zweiten Speichermittel zum Speichern eines zweiten Satzes von Konfigurationsdaten und einem Schaltmittel, das zum Ausgeben des ersten Satzes oder des zweiten Satzes von Konfigurationsdaten geschaltet ist; und eine konfigurierbare Leitwegmatrix zum selektiven Koppeln von Leiterbahnen als Reaktion auf Konfigurationsdaten, wobei die konfigurierbare Leitwegmatrix mit dem Schaltmittel gekoppelte Konfigurationseingänge hat.
- Programmierbare Array nach Anspruch 1, die ferner einen konfigurierbaren Logikblock mit wenigstens einem Konfigurationseingang, wenigstens einem Dateneingang und wenigstens einem Datenausgang zum Ausführen von Logikfunktionen an Eingangsdaten als Reaktion auf den ersten Satz und den zweiten Satz von Konfigurationsdaten umfasst, wobei der Konfigurationseingang des konfigurierbaren Logikblocks mit einem Ausgang des Schaltmittels gekoppelt ist.
- Programmierbare Array nach Anspruch 1 oder 2, wobei der Konfigurationsspeicher ferner ein drittes Speichermittel zum Speichern eines dritten Satzes von Konfigurationsdaten umfasst.
- Programmierbare Array nach Anspruch 2 oder 3, wobei das Schaltmittel das erste Speichermittel mit dem konfigurierbaren Logikblock und der konfigurierbaren Leitwegmatrix während eines ersten Teils eines Benutzertaktzyklus koppelt und das Schaltmittel das zweite Speichermittel mit dem konfigurierbaren Logikblock und der konfigurierbaren Leitwegmatrix während eines zweiten Teils des Benutzertaktzyklus koppelt.
- Programmierbare Array nach Anspruch 2, wobei der Konfigurationsspeicher mehr als zwei Speichermittel umfasst und das Schaltmittel jedes Speichermittel selektiv mit dem Konfigurationslogikblock und der konfigurierbaren Leitwegmatrix während eines jeweiligen Teils eines Benutzertaktzyklus koppelt.
- Programmierbare Array nach Anspruch 2 oder 3, wobei das Schaltmittel selektiv das erste Speichermittel mit dem konfigurierbaren Logikblock und der konfigurierbaren Leitwegmatrix während einer ersten Zeitperiode koppelt und das zweite Speichermittel mit dem konfigurierbaren Logikblock und der konfigurierbaren Leitwegmatrix während einer zweiten Zeitperiode koppelt, wobei die erste und die zweite Zeitperiode aufeinander folgen.
- Programmierbare Array nach Anspruch 6, bei der jede der aufeinander folgenden Zeitperioden wenigstens so lang ist wie ein Benutzertaktzyklus.
- Programmierbare Array nach einem der vorherigen Ansprüche, bei der: das erste Speichermittel eine Mehrzahl von Speicherzellen umfasst, jeweils mit einem Eingang und einem Ausgang, wobei jede Speicherzelle ein Bit aus dem ersten Satz von Konfigurationsdaten speichert; und das zweite Speichermittel eine Mehrzahl von Speicherzellen umfasst, jeweils mit einem Eingang und einem Ausgang, wobei jede Speicherzelle ein Bit aus dem zweiten Satz von Konfigurationsdaten speichert.
- Programmierbare Array nach Anspruch 8, wobei die Speicherzellen statische Direktzugriffsspeicherzellen sind.
- Programmierbare Array nach Anspruch 8, wobei die Speicherzellen Fuses sind.
- Programmierbare Array nach Anspruch 8, wobei die Speicherzellen Antifuses sind.
- Programmierbare Array nach Anspruch 8, wobei die Speicherzellen EPROM-Zellen sind.
- Programmierbare Array nach Anspruch 8, wobei die Speicherzellen EEPROM-Zellen sind.
- Programmierbare Array nach einem der Ansprüche 8 bis 13, wobei jede Speicherzelle in dem ersten Speichermittel eine entsprechende Speicherzelle in dem zweiten Speichermittel hat.
- Programmierbare Array nach einem der vorherigen Ansprüche, wobei der Konfigurationsspeicher ferner eine Mehrzahl von Speicherzellen zusätzlich zu dem ersten Speichermittel und dem zweiten Speichermittel umfasst, wobei die Mehrzahl von Speicherzellen ferner die Leitwegmatrix konfiguriert.
- Programmierbare Array nach einem der vorherigen Ansprüche, wobei das Schaltmittel ein Multiplexer ist.
- Programmierbare Array nach einem der vorherigen Ansprüche, wobei das Schaltmittel einen Leseverstärker und eine Mehrzahl von Adresszeilen umfasst.
- Programmierbare Array nach einem der vorherigen Ansprüche, wobei das Schaltmittel eine Mehrzahl von Schaltern umfasst, wobei jeder Schalter einen ersten Dateneingang, der mit einer Konfigurationsspeicherzelle im ersten Speichermittel gekoppelt ist, einen zweiten Dateneingang, der mit der entsprechenden Konfigurationsspeicherzelle im zweiten Speichermittel gekoppelt ist, und einen Ausgang hat, der einen Ausgang des Konfiguratiansspeichers bildet.
- Programmierbare Array nach Anspruch 18, bei der die Mehrzahl von Schaltern eine Mehrzahl von Zwei-zu-eins-Multiplexern ist.
- Programmierbare Array nach einem der Ansprüche 2 bis 19, wobei der konfigurierbare Logikblock Folgendes umfasst: einen Funktionsgenerator zum Ausführen einer Logikfunktion, die durch Konfigurationsdaten vorgegeben wird, wobei der Funktionsgenerator wenigstens einen Konfigurationseingang, wenigstens einen Dateneingang, wenigstens einen Datenausgang hat, wobei der wenigstens eine Konfigurationseingang mit dem Schaltmittel gekoppelt ist, wobei der wenigstens eine Dateneingang mit der konfigurierbaren Leitwegmatrix gekoppelt ist; ein erstes Ausgabegerät zum Speichern des Ausgangs des Funktionsgenerators von einer ersten Periode, wobei das erste Ausgabegerät einen mit dem Ausgang des Funktionsgenerators gekoppelten Dateneingang und einen Datenausgang hat; und ein zweites Ausgabegerät zum Speichern des Ausgangs des Funktionsgenerators von einer zweiten Periode, wobei das zweite Ausgabegerät einen mit dem Ausgang des Funktionsgenerators gekoppelten Dateneingang und einen Datenausgang hat.
- Programmierbare Array nach Anspruch 20, bei der das erste Ausgabegerät ferner einen mit dem Konfigurationsspeicher gekoppelten Konfigurationseingang und das zweite Ausgabegerät ferner einen mit dem Konfigurationsspeicher gekoppelten Konfigurationseingang beinhaltet.
- Programmierbare Array nach Anspruch 20 oder 21, bei der die Datenausgänge des ersten und des zweiten Ausgabegerätes mit der konfigurierbaren Leitwegmatrix gekoppelt sind.
- Programmierbare Array nach Anspruch 20, 21 oder 22, wobei das erste Ausgabegerät den Ausgang des Funktionsgenerators, der mit dem ersten Satz von im ersten Speichermittel des Konfigurationsspeichers gespeicherten Daten konfiguriert ist, selektiv speichert und ausgibt, und das zweite Ausgabegerät den Ausgang des Funktionsgenerators, der mit dem zweiten Satz von im zweiten Speichermittel des Konfigurationsspeichers gespeicherten Daten konfiguriert ist, selektiv speichert und ausgibt.
- Programmierbare Array nach einem der Ansprüche 20 bis 23, wobei das erste Ausgabegerät Folgendes umfasst: einen Signalspeicher zum Speichern und Weiterleiten von Daten als Reaktion auf ein Signal an einem Latch-enable-Eingang, wobei der Signalspeicher einen Dateneingang, einen Latch-enable-Eingang und einen Datenausgang aufweist, wobei der Dateneingang des Signalspeichers mit dem Ausgang des Funktionsgenerators gekoppelt ist; ein Register mit einem Dateneingang, einem Takteingang und einem Datenausgang zum Speichern von Daten als Reaktion auf ein Taktsignal am Takteingang, wobei der Dateneingang des Registers mit dem Datenausgang des Signalspeichers gekoppelt ist, und wobei der Takteingang des Registers zum Empfangen eines Taktsignals gekoppelt ist; und einen Ausgangsschalter mit einer Mehrzahl von Dateneingängen, einem Konfigurationseingang und einem Datenausgang zum Ausgeben von einem aus einer Mehrzahl von Signalen.
- Programmierbare Array nach Anspruch 24, wobei ein erster Dateneingang des Ausgangsschalters mit dem Ausgang des Signalspeichers gekoppelt ist und ein zweiter Dateneingang des Ausgangsschalters mit dem Ausgang des Registers gekoppelt ist, der Konfigurationseingang des Ausgangsschalters mit dem Konfigurationsspeicher gekoppelt ist und der Ausgang des Ausgangsschalters mit der konfigurierbaren Leitwegmatrix gekoppelt ist.
- Programmierbare Array nach Anspruch 25, bei der ein dritter Dateneingang des Ausgangsschalters mit dem Ausgang des Funktionsgenerators gekoppelt ist.
- Programmierbare Array nach Anspruch 24, 25 oder 26, wobei das zweite Ausgabegerät Folgendes umfasst: einen Signalspeicher zum Speichern und Weiterleiten von Daten als Reaktion auf ein Signal an einem Latch-enable-Eingang, wobei der Signalspeicher einen Dateneingang, einen Latch-enable-Eingang und einen Datenausgang umfasst, wobei der Dateneingang des Signalspeichers mit dem Ausgang des Funktionsgenerators gekoppelt ist; ein Register mit einem Dateneingang, einem Takteingang und einem Datenausgang zum Speichern von Daten als Reaktion auf ein Taktsignal am Takteingang, wobei der Dateneingang des Registers mit dem Datenausgang des Signalspeichers gekoppelt ist und wobei der Takteingang des Registers zum Empfangen eines Taktsignals gekoppelt ist; und einen Ausgangsschalter mit einer Mehrzahl von Dateneingängen, einem Konfigurationseingang und einem Datenausgang zum Ausgeben von einem aus einer Mehrzahl von Signalen, wobei ein erster Dateneingang des Ausgangsschalters mit dem Ausgang des Funktionsgenerators gekoppelt ist, ein zweiter Dateneingang des Ausgangsschalters mit dem Ausgang des Signalspeichers gekoppelt ist und ein dritter Eingang des Ausgangsschalters mit dem Ausgang des Registers gekoppelt ist, wobei der Konfigurationseingang des Ausgangsschalters mit dem Konfigurationsspeicher gekoppelt ist und der Ausgang des Ausgangsschalters mit der konfigurierbaren Leitwegmatrix gekoppelt ist.
- Programmierbare Array nach Anspruch 24, wobei der Ausgangsschalter ein Multiplexer ist.
- Programmierbare Array nach Anspruch 1, die ferner einen konfigurierbaren Logikblock mit Dateneingängen und Datenausgängen zum Ausführen von Logikfunktionen an Eingangsdaten als Reaktion auf den ersten Satz und den zweiten Satz von Konfigurationsdaten umfasst.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/231,009 US5426378A (en) | 1994-04-20 | 1994-04-20 | Programmable logic device which stores more than one configuration and means for switching configurations |
US231009 | 1994-04-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69534812D1 DE69534812D1 (de) | 2006-04-27 |
DE69534812T2 true DE69534812T2 (de) | 2006-09-14 |
Family
ID=22867425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69534812T Expired - Lifetime DE69534812T2 (de) | 1994-04-20 | 1995-04-22 | Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration |
Country Status (4)
Country | Link |
---|---|
US (1) | US5426378A (de) |
EP (2) | EP1455455B1 (de) |
JP (1) | JP3626239B2 (de) |
DE (1) | DE69534812T2 (de) |
Families Citing this family (289)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020130681A1 (en) * | 1991-09-03 | 2002-09-19 | Cliff Richard G. | Programmable logic array integrated circuits |
US6759870B2 (en) | 1991-09-03 | 2004-07-06 | Altera Corporation | Programmable logic array integrated circuits |
US5550782A (en) * | 1991-09-03 | 1996-08-27 | Altera Corporation | Programmable logic array integrated circuits |
US5477172A (en) * | 1994-12-12 | 1995-12-19 | Advanced Micro Devices, Inc. | Configurable input buffer dependent on supply voltage |
US6052773A (en) * | 1995-02-10 | 2000-04-18 | Massachusetts Institute Of Technology | DPGA-coupled microprocessors |
US5742180A (en) * | 1995-02-10 | 1998-04-21 | Massachusetts Institute Of Technology | Dynamically programmable gate array with multiple contexts |
US6049223A (en) * | 1995-03-22 | 2000-04-11 | Altera Corporation | Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory |
US5646544A (en) * | 1995-06-05 | 1997-07-08 | International Business Machines Corporation | System and method for dynamically reconfiguring a programmable gate array |
US5838954A (en) * | 1995-08-18 | 1998-11-17 | Xilinx, Inc. | Computer-implemented method of optimizing a time multiplexed programmable logic device |
US5600263A (en) * | 1995-08-18 | 1997-02-04 | Xilinx, Inc. | Configuration modes for a time multiplexed programmable logic device |
US5629637A (en) * | 1995-08-18 | 1997-05-13 | Xilinx, Inc. | Method of time multiplexing a programmable logic device |
US5761483A (en) * | 1995-08-18 | 1998-06-02 | Xilinx, Inc. | Optimizing and operating a time multiplexed programmable logic device |
US5646545A (en) * | 1995-08-18 | 1997-07-08 | Xilinx, Inc. | Time multiplexed programmable logic device |
US5784313A (en) | 1995-08-18 | 1998-07-21 | Xilinx, Inc. | Programmable logic device including configuration data or user data memory slices |
US5701441A (en) * | 1995-08-18 | 1997-12-23 | Xilinx, Inc. | Computer-implemented method of optimizing a design in a time multiplexed programmable logic device |
US5583450A (en) * | 1995-08-18 | 1996-12-10 | Xilinx, Inc. | Sequencer for a time multiplexed programmable logic device |
US5684411A (en) * | 1995-10-13 | 1997-11-04 | Seiko Communications Systems, Inc. | Self-configuring bus |
US5794033A (en) * | 1995-10-24 | 1998-08-11 | International Business Machines Corporation | Method and system for in-site and on-line reprogramming of hardware logics with remote loading in a network device |
US5943242A (en) | 1995-11-17 | 1999-08-24 | Pact Gmbh | Dynamically reconfigurable data processing system |
US5732407A (en) * | 1995-12-11 | 1998-03-24 | Hewlett-Packard Co. | Configurable random access memory for programmable logic devices |
JPH09231788A (ja) * | 1995-12-19 | 1997-09-05 | Fujitsu Ltd | シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システム |
US5914906A (en) * | 1995-12-20 | 1999-06-22 | International Business Machines Corporation | Field programmable memory array |
US5848285A (en) * | 1995-12-26 | 1998-12-08 | Cypress Semiconductor Corporation | Macrocell having a dual purpose input register for use in a logic device |
US5760719A (en) * | 1995-12-29 | 1998-06-02 | Cypress Semiconductor Corp. | Programmable I/O cell with data conversion capability |
US7266725B2 (en) * | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
US5811989A (en) * | 1995-12-29 | 1998-09-22 | Cypress Semiconductor Corp. | Programmable I/O cell with data conversion capability |
US5786710A (en) * | 1995-12-29 | 1998-07-28 | Cypress Semiconductor Corp. | Programmable I/O cell with data conversion capability |
US5760602A (en) * | 1996-01-17 | 1998-06-02 | Hewlett-Packard Company | Time multiplexing a plurality of configuration settings of a programmable switch element in a FPGA |
US6020758A (en) * | 1996-03-11 | 2000-02-01 | Altera Corporation | Partially reconfigurable programmable logic device |
US5726584A (en) * | 1996-03-18 | 1998-03-10 | Xilinx, Inc. | Virtual high density programmable integrated circuit having addressable shared memory cells |
US5956518A (en) | 1996-04-11 | 1999-09-21 | Massachusetts Institute Of Technology | Intermediate-grain reconfigurable processing device |
US5977791A (en) | 1996-04-15 | 1999-11-02 | Altera Corporation | Embedded memory block with FIFO mode for programmable logic device |
JPH09293015A (ja) * | 1996-04-24 | 1997-11-11 | Mitsubishi Electric Corp | メモリシステムおよびそれに用いられる半導体記憶装置 |
US5838165A (en) * | 1996-08-21 | 1998-11-17 | Chatter; Mukesh | High performance self modifying on-the-fly alterable logic FPGA, architecture and method |
US5901279A (en) * | 1996-10-18 | 1999-05-04 | Hughes Electronics Corporation | Connection of spares between multiple programmable devices |
US6134707A (en) * | 1996-11-14 | 2000-10-17 | Altera Corporation | Apparatus and method for in-system programming of integrated circuits containing programmable elements |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
US6338106B1 (en) | 1996-12-20 | 2002-01-08 | Pact Gmbh | I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures |
DE19654593A1 (de) * | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
DE19654846A1 (de) * | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
EP1329816B1 (de) * | 1996-12-27 | 2011-06-22 | Richter, Thomas | Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.) |
US5959466A (en) | 1997-01-31 | 1999-09-28 | Actel Corporation | Field programmable gate array with mask programmed input and output buffers |
DE19704044A1 (de) * | 1997-02-04 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
DE19704728A1 (de) | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
DE19704742A1 (de) | 1997-02-11 | 1998-09-24 | Pact Inf Tech Gmbh | Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand |
US6150837A (en) * | 1997-02-28 | 2000-11-21 | Actel Corporation | Enhanced field programmable gate array |
US6551857B2 (en) | 1997-04-04 | 2003-04-22 | Elm Technology Corporation | Three dimensional structure integrated circuits |
JP3106998B2 (ja) * | 1997-04-11 | 2000-11-06 | 日本電気株式会社 | メモリ付加型プログラマブルロジックlsi |
US6421817B1 (en) | 1997-05-29 | 2002-07-16 | Xilinx, Inc. | System and method of computation in a programmable logic device using virtual instructions |
US6047115A (en) * | 1997-05-29 | 2000-04-04 | Xilinx, Inc. | Method for configuring FPGA memory planes for virtual hardware computation |
US5960191A (en) * | 1997-05-30 | 1999-09-28 | Quickturn Design Systems, Inc. | Emulation system with time-multiplexed interconnect |
US6011744A (en) * | 1997-07-16 | 2000-01-04 | Altera Corporation | Programmable logic device with multi-port memory |
US6020760A (en) * | 1997-07-16 | 2000-02-01 | Altera Corporation | I/O buffer circuit with pin multiplexing |
US6034857A (en) | 1997-07-16 | 2000-03-07 | Altera Corporation | Input/output buffer with overcurrent protection circuit |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
US9092595B2 (en) | 1997-10-08 | 2015-07-28 | Pact Xpp Technologies Ag | Multiprocessor having associated RAM units |
US6122719A (en) | 1997-10-31 | 2000-09-19 | Silicon Spice | Method and apparatus for retiming in a network of multiple context processing elements |
US6108760A (en) * | 1997-10-31 | 2000-08-22 | Silicon Spice | Method and apparatus for position independent reconfiguration in a network of multiple context processing elements |
US5915123A (en) | 1997-10-31 | 1999-06-22 | Silicon Spice | Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements |
US5986467A (en) * | 1997-10-31 | 1999-11-16 | Xilinx, Inc. | Time-multiplexed programmable logic devices |
US6091263A (en) * | 1997-12-12 | 2000-07-18 | Xilinx, Inc. | Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6367063B1 (en) * | 1998-02-05 | 2002-04-02 | Hughes Electronics Corporation | Method and apparatus for selectively performing a plurality of logic operations and memory functions |
DE19807872A1 (de) | 1998-02-25 | 1999-08-26 | Pact Inf Tech Gmbh | Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl. |
US6008666A (en) * | 1998-04-01 | 1999-12-28 | Xilinx, Inc. | Variable-delay interconnect structure for a programmable logic device |
US6150863A (en) * | 1998-04-01 | 2000-11-21 | Xilinx, Inc. | User-controlled delay circuit for a programmable logic device |
US6226735B1 (en) | 1998-05-08 | 2001-05-01 | Broadcom | Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements |
US6138229A (en) * | 1998-05-29 | 2000-10-24 | Motorola, Inc. | Customizable instruction set processor with non-configurable/configurable decoding units and non-configurable/configurable execution units |
US6467017B1 (en) | 1998-06-23 | 2002-10-15 | Altera Corporation | Programmable logic device having embedded dual-port random access memory configurable as single-port memory |
US6356637B1 (en) | 1998-09-18 | 2002-03-12 | Sun Microsystems, Inc. | Field programmable gate arrays |
JP3444216B2 (ja) | 1999-01-28 | 2003-09-08 | 日本電気株式会社 | プログラマブルデバイス |
US6262933B1 (en) | 1999-01-29 | 2001-07-17 | Altera Corporation | High speed programmable address decoder |
JP3616518B2 (ja) | 1999-02-10 | 2005-02-02 | 日本電気株式会社 | プログラマブルデバイス |
US6407576B1 (en) | 1999-03-04 | 2002-06-18 | Altera Corporation | Interconnection and input/output resources for programmable logic integrated circuit devices |
EP1228440B1 (de) | 1999-06-10 | 2017-04-05 | PACT XPP Technologies AG | Sequenz-partitionierung auf zellstrukturen |
GB2351824B (en) | 1999-07-02 | 2004-03-31 | Altera Corp | Embedded memory blocks for programmable logic |
US6507211B1 (en) | 1999-07-29 | 2003-01-14 | Xilinx, Inc. | Programmable logic device capable of preserving user data during partial or complete reconfiguration |
US6745317B1 (en) | 1999-07-30 | 2004-06-01 | Broadcom Corporation | Three level direct communication connections between neighboring multiple context processing elements |
US6288566B1 (en) * | 1999-09-23 | 2001-09-11 | Chameleon Systems, Inc. | Configuration state memory for functional blocks on a reconfigurable chip |
US6662302B1 (en) * | 1999-09-29 | 2003-12-09 | Conexant Systems, Inc. | Method and apparatus of selecting one of a plurality of predetermined configurations using only necessary bus widths based on power consumption analysis for programmable logic device |
US6714537B1 (en) * | 1999-10-19 | 2004-03-30 | Ciena Corp. | Switch fabric architecture and techniques for implementing rapid hitless switchover |
US6633181B1 (en) * | 1999-12-30 | 2003-10-14 | Stretch, Inc. | Multi-scale programmable array |
US6462577B1 (en) * | 2000-04-28 | 2002-10-08 | Altera Corporation | Configurable memory structures in a programmable logic device |
ATE476700T1 (de) | 2000-06-13 | 2010-08-15 | Richter Thomas | Pipeline ct-protokolle und -kommunikation |
US7031267B2 (en) | 2000-12-21 | 2006-04-18 | 802 Systems Llc | PLD-based packet filtering methods with PLD configuration data update of filtering rules |
US7013482B1 (en) | 2000-07-07 | 2006-03-14 | 802 Systems Llc | Methods for packet filtering including packet invalidation if packet validity determination not timely made |
US6526557B1 (en) * | 2000-07-25 | 2003-02-25 | Xilinx, Inc. | Architecture and method for partially reconfiguring an FPGA |
US7595659B2 (en) | 2000-10-09 | 2009-09-29 | Pact Xpp Technologies Ag | Logic cell array and bus system |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US6603330B1 (en) * | 2000-10-26 | 2003-08-05 | Cypress Semiconductor Corporation | Configuring digital functions in a digital configurable macro architecture |
US6507214B1 (en) | 2000-10-26 | 2003-01-14 | Cypress Semiconductor Corporation | Digital configurable macro architecture |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US6825689B1 (en) | 2000-10-26 | 2004-11-30 | Cypress Semiconductor Corporation | Configurable input/output interface for a microcontroller |
US8176296B2 (en) * | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US20020080784A1 (en) * | 2000-12-21 | 2002-06-27 | 802 Systems, Inc. | Methods and systems using PLD-based network communication protocols |
US20020083331A1 (en) * | 2000-12-21 | 2002-06-27 | 802 Systems, Inc. | Methods and systems using PLD-based network communication protocols |
US6990555B2 (en) * | 2001-01-09 | 2006-01-24 | Pact Xpp Technologies Ag | Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.) |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
WO2005045692A2 (en) | 2003-08-28 | 2005-05-19 | Pact Xpp Technologies Ag | Data processing device and method |
US7581076B2 (en) | 2001-03-05 | 2009-08-25 | Pact Xpp Technologies Ag | Methods and devices for treating and/or processing data |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US9436631B2 (en) | 2001-03-05 | 2016-09-06 | Pact Xpp Technologies Ag | Chip including memory element storing higher level memory data on a page by page basis |
US9250908B2 (en) | 2001-03-05 | 2016-02-02 | Pact Xpp Technologies Ag | Multi-processor bus and cache interconnection system |
US9552047B2 (en) | 2001-03-05 | 2017-01-24 | Pact Xpp Technologies Ag | Multiprocessor having runtime adjustable clock and clock dependent power supply |
US9141390B2 (en) | 2001-03-05 | 2015-09-22 | Pact Xpp Technologies Ag | Method of processing data with an array of data processors according to application ID |
US7210129B2 (en) | 2001-08-16 | 2007-04-24 | Pact Xpp Technologies Ag | Method for translating programs for reconfigurable architectures |
US6720796B1 (en) | 2001-05-06 | 2004-04-13 | Altera Corporation | Multiple size memories in a programmable logic device |
TWI234737B (en) * | 2001-05-24 | 2005-06-21 | Ip Flex Inc | Integrated circuit device |
JP2004533691A (ja) | 2001-06-20 | 2004-11-04 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データを処理するための方法 |
US10031733B2 (en) | 2001-06-20 | 2018-07-24 | Scientia Sol Mentis Ag | Method for processing data |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US8069405B1 (en) * | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US6971004B1 (en) * | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US7577822B2 (en) | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
EP1324495B1 (de) * | 2001-12-28 | 2011-03-30 | Fujitsu Semiconductor Limited | Programmierbare Logikschaltung mit ferroelektrischem Konfigurationsspeicher |
WO2003060747A2 (de) | 2002-01-19 | 2003-07-24 | Pact Xpp Technologies Ag | Reconfigurierbarer prozessor |
AU2003214003A1 (en) | 2002-02-18 | 2003-09-09 | Pact Xpp Technologies Ag | Bus systems and method for reconfiguration |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US9170812B2 (en) | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
DE60204539D1 (de) * | 2002-04-03 | 2005-07-14 | Sgs Thomson Microelectronics | Feldprogrammierbare Vorrichtung |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US6661724B1 (en) | 2002-06-13 | 2003-12-09 | Cypress Semiconductor Corporation | Method and system for programming a memory device |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US7402897B2 (en) * | 2002-08-08 | 2008-07-22 | Elm Technology Corporation | Vertical system integration |
JP4388895B2 (ja) | 2002-09-06 | 2009-12-24 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | リコンフィギュアラブルなシーケンサ構造 |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US6829756B1 (en) | 2002-09-23 | 2004-12-07 | Xilinx, Inc. | Programmable logic device with time-multiplexed interconnect |
US7111110B1 (en) | 2002-12-10 | 2006-09-19 | Altera Corporation | Versatile RAM for programmable logic device |
US8001266B1 (en) | 2003-03-31 | 2011-08-16 | Stretch, Inc. | Configuring a multi-processor system |
US7613900B2 (en) * | 2003-03-31 | 2009-11-03 | Stretch, Inc. | Systems and methods for selecting input/output configuration in an integrated circuit |
US7581081B2 (en) | 2003-03-31 | 2009-08-25 | Stretch, Inc. | Systems and methods for software extensible multi-processing |
US7590829B2 (en) * | 2003-03-31 | 2009-09-15 | Stretch, Inc. | Extension adapter |
US7000211B2 (en) * | 2003-03-31 | 2006-02-14 | Stretch, Inc. | System and method for efficiently mapping heterogeneous objects onto an array of heterogeneous programmable logic resources |
US7603542B2 (en) * | 2003-06-25 | 2009-10-13 | Nec Corporation | Reconfigurable electric computer, semiconductor integrated circuit and control method, program generation method, and program for creating a logic circuit from an application program |
US7796464B1 (en) | 2003-06-27 | 2010-09-14 | Cypress Semiconductor Corporation | Synchronous memory with a shadow-cycle counter |
US7373642B2 (en) * | 2003-07-29 | 2008-05-13 | Stretch, Inc. | Defining instruction extensions in a standard programming language |
US7418575B2 (en) * | 2003-07-29 | 2008-08-26 | Stretch, Inc. | Long instruction word processing with instruction extensions |
US7126381B1 (en) | 2004-02-14 | 2006-10-24 | Herman Schmit | VPA interconnect circuit |
US7193440B1 (en) * | 2004-02-14 | 2007-03-20 | Herman Schmit | Configurable circuits, IC's, and systems |
US7167025B1 (en) | 2004-02-14 | 2007-01-23 | Herman Schmit | Non-sequentially configurable IC |
US7622951B2 (en) * | 2004-02-14 | 2009-11-24 | Tabula, Inc. | Via programmable gate array with offset direct connections |
US7425841B2 (en) | 2004-02-14 | 2008-09-16 | Tabula Inc. | Configurable circuits, IC's, and systems |
US7109752B1 (en) * | 2004-02-14 | 2006-09-19 | Herman Schmit | Configurable circuits, IC's, and systems |
US7284222B1 (en) * | 2004-06-30 | 2007-10-16 | Tabula, Inc. | Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit |
JP3836109B2 (ja) * | 2004-02-19 | 2006-10-18 | 東京エレクトロン株式会社 | プログラマブル論理回路制御装置、プログラマブル論理回路制御方法及びプログラム |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US20050214419A1 (en) * | 2004-03-29 | 2005-09-29 | Aberle Rick A | Method and apparatus for providing instantaneous, real-time data for extrusion process control |
US7145361B1 (en) * | 2004-06-30 | 2006-12-05 | Andre Rohe | Configurable integrated circuit with different connection schemes |
US7449915B2 (en) * | 2004-06-30 | 2008-11-11 | Tabula Inc. | VPA logic circuits |
US7408382B2 (en) * | 2004-06-30 | 2008-08-05 | Tabula, Inc. | Configurable circuits, IC's, and systems |
US7312630B2 (en) * | 2004-06-30 | 2007-12-25 | Tabula, Inc. | Configurable integrated circuit with built-in turns |
JP4546775B2 (ja) * | 2004-06-30 | 2010-09-15 | 富士通株式会社 | 時分割多重処理可能なリコンフィギュラブル回路 |
US7193438B1 (en) * | 2004-06-30 | 2007-03-20 | Andre Rohe | Configurable integrated circuit with offset connection |
US7282950B1 (en) * | 2004-11-08 | 2007-10-16 | Tabula, Inc. | Configurable IC's with logic resources with offset connections |
US7439766B2 (en) * | 2004-06-30 | 2008-10-21 | Tabula, Inc. | Configurable logic circuits with commutative properties |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
US8286125B2 (en) | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
US8082531B2 (en) * | 2004-08-13 | 2011-12-20 | Cypress Semiconductor Corporation | Method and an apparatus to design a processing system using a graphical user interface |
US7183801B2 (en) * | 2004-09-08 | 2007-02-27 | Atmel Corporation | Programmable logic auto write-back |
US7301242B2 (en) * | 2004-11-04 | 2007-11-27 | Tabula, Inc. | Programmable system in package |
US7530044B2 (en) * | 2004-11-04 | 2009-05-05 | Tabula, Inc. | Method for manufacturing a programmable system in package |
US7301368B2 (en) * | 2005-03-15 | 2007-11-27 | Tabula, Inc. | Embedding memory within tile arrangement of a configurable IC |
US7317331B2 (en) * | 2004-11-08 | 2008-01-08 | Tabula, Inc. | Reconfigurable IC that has sections running at different reconfiguration rates |
US20070244958A1 (en) * | 2004-11-08 | 2007-10-18 | Jason Redgrave | Configurable IC's with carry bypass circuitry |
US7573296B2 (en) * | 2004-11-08 | 2009-08-11 | Tabula Inc. | Configurable IC with configurable routing resources that have asymmetric input and/or outputs |
US7743085B2 (en) * | 2004-11-08 | 2010-06-22 | Tabula, Inc. | Configurable IC with large carry chains |
US7342415B2 (en) * | 2004-11-08 | 2008-03-11 | Tabula, Inc. | Configurable IC with interconnect circuits that also perform storage operations |
US7242216B1 (en) | 2004-11-08 | 2007-07-10 | Herman Schmit | Embedding memory between tile arrangement of a configurable IC |
US7330050B2 (en) * | 2004-11-08 | 2008-02-12 | Tabula, Inc. | Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements |
US7224181B1 (en) * | 2004-11-08 | 2007-05-29 | Herman Schmit | Clock distribution in a configurable IC |
US7259587B1 (en) | 2004-11-08 | 2007-08-21 | Tabula, Inc. | Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs |
US7268586B1 (en) * | 2004-11-08 | 2007-09-11 | Tabula, Inc. | Method and apparatus for accessing stored data in a reconfigurable IC |
US7276933B1 (en) | 2004-11-08 | 2007-10-02 | Tabula, Inc. | Reconfigurable IC that has sections running at different looperness |
US7295037B2 (en) * | 2004-11-08 | 2007-11-13 | Tabula, Inc. | Configurable IC with routing circuits with offset connections |
US7917559B2 (en) * | 2004-11-08 | 2011-03-29 | Tabula, Inc. | Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations |
US7496879B2 (en) * | 2004-12-01 | 2009-02-24 | Tabula, Inc. | Concurrent optimization of physical design and operational cycle assignment |
US7236009B1 (en) * | 2004-12-01 | 2007-06-26 | Andre Rohe | Operational time extension |
US7428721B2 (en) * | 2004-12-01 | 2008-09-23 | Tabula, Inc. | Operational cycle assignment in a configurable IC |
JP4831957B2 (ja) * | 2004-12-02 | 2011-12-07 | ルネサスエレクトロニクス株式会社 | コピー防止回路装置およびコピー防止方法 |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
US7224182B1 (en) * | 2005-03-15 | 2007-05-29 | Brad Hutchings | Hybrid configurable circuit for a configurable IC |
US7230869B1 (en) * | 2005-03-15 | 2007-06-12 | Jason Redgrave | Method and apparatus for accessing contents of memory cells |
US7272031B1 (en) * | 2005-03-15 | 2007-09-18 | Tabula, Inc. | Method and apparatus for reduced power cell |
US7310003B2 (en) * | 2005-03-15 | 2007-12-18 | Tabula, Inc. | Configurable IC with interconnect circuits that have select lines driven by user signals |
US7298169B2 (en) | 2005-03-15 | 2007-11-20 | Tabula, Inc | Hybrid logic/interconnect circuit in a configurable IC |
US8201124B1 (en) | 2005-03-15 | 2012-06-12 | Tabula, Inc. | System in package and method of creating system in package |
US7530033B2 (en) | 2005-03-15 | 2009-05-05 | Tabula, Inc. | Method and apparatus for decomposing functions in a configurable IC |
US7825684B2 (en) * | 2005-03-15 | 2010-11-02 | Tabula, Inc. | Variable width management for a memory of a configurable IC |
US20070244959A1 (en) * | 2005-03-15 | 2007-10-18 | Steven Teig | Configurable IC's with dual carry chains |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US7301822B1 (en) * | 2005-05-18 | 2007-11-27 | Xilinx, Inc. | Multi-boot configuration of programmable devices |
US7358762B1 (en) | 2005-05-18 | 2008-04-15 | Xilinx, Inc. | Parallel interface for configuring programmable devices |
CN101189797B (zh) * | 2005-05-31 | 2011-07-20 | 富士施乐株式会社 | 可重构的装置 |
US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
US7492186B2 (en) * | 2005-07-15 | 2009-02-17 | Tabula, Inc. | Runtime loading of configuration data in a configurable IC |
US7375550B1 (en) * | 2005-07-15 | 2008-05-20 | Tabula, Inc. | Configurable IC with packet switch configuration network |
US7212448B1 (en) | 2005-07-19 | 2007-05-01 | Xilinx, Inc. | Method and apparatus for multiple context and high reliability operation of programmable logic devices |
US7266020B1 (en) | 2005-07-19 | 2007-09-04 | Xilinx, Inc. | Method and apparatus for address and data line usage in a multiple context programmable logic device |
US7250786B1 (en) | 2005-07-19 | 2007-07-31 | Xilinx, Inc. | Method and apparatus for modular redundancy with alternative mode of operation |
US7236000B1 (en) | 2005-10-18 | 2007-06-26 | Xilinx, Inc. | Method and apparatus for error mitigation of programmable logic device configuration memory |
US8463836B1 (en) | 2005-11-07 | 2013-06-11 | Tabula, Inc. | Performing mathematical and logical operations in multiple sub-cycles |
US7372297B1 (en) | 2005-11-07 | 2008-05-13 | Tabula Inc. | Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources |
US7818361B1 (en) | 2005-11-07 | 2010-10-19 | Tabula, Inc. | Method and apparatus for performing two's complement multiplication |
US7765249B1 (en) | 2005-11-07 | 2010-07-27 | Tabula, Inc. | Use of hybrid interconnect/logic circuits for multiplication |
US7262633B1 (en) | 2005-11-11 | 2007-08-28 | Tabula, Inc. | Via programmable gate array with offset bit lines |
US7489162B1 (en) | 2005-12-01 | 2009-02-10 | Tabula, Inc. | Users registers in a reconfigurable IC |
US7679401B1 (en) | 2005-12-01 | 2010-03-16 | Tabula, Inc. | User registers implemented with routing circuits in a configurable IC |
US7461362B1 (en) | 2005-12-01 | 2008-12-02 | Tabula, Inc. | Replacing circuit design elements with their equivalents |
US7783467B2 (en) * | 2005-12-10 | 2010-08-24 | Electronics And Telecommunications Research Institute | Method for digital system modeling by using higher software simulator |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
EP1974265A1 (de) | 2006-01-18 | 2008-10-01 | PACT XPP Technologies AG | Hardwaredefinitionsverfahren |
US8090568B2 (en) * | 2006-02-21 | 2012-01-03 | Cadence Design Systems, Inc. | Hardware emulator having a variable input primitive |
US7504858B1 (en) | 2006-03-08 | 2009-03-17 | Tabula, Inc. | Configurable integrated circuit with parallel non-neighboring offset connections |
US7797497B1 (en) * | 2006-03-08 | 2010-09-14 | Tabula, Inc. | System and method for providing more logical memory ports than physical memory ports |
US7694083B1 (en) | 2006-03-08 | 2010-04-06 | Tabula, Inc. | System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture |
US7518400B1 (en) | 2006-03-08 | 2009-04-14 | Tabula, Inc. | Barrel shifter implemented on a configurable integrated circuit |
US7609085B1 (en) | 2006-03-08 | 2009-10-27 | Tabula, Inc. | Configurable integrated circuit with a 4-to-1 multiplexer |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US7529992B1 (en) | 2006-03-27 | 2009-05-05 | Tabula, Inc. | Configurable integrated circuit with error correcting circuitry |
US7669097B1 (en) | 2006-03-27 | 2010-02-23 | Tabula, Inc. | Configurable IC with error detection and correction circuitry |
US7930666B1 (en) | 2006-12-12 | 2011-04-19 | Tabula, Inc. | System and method of providing a memory hierarchy |
US7587697B1 (en) | 2006-12-12 | 2009-09-08 | Tabula, Inc. | System and method of mapping memory blocks in a configurable integrated circuit |
US7870472B2 (en) * | 2007-01-31 | 2011-01-11 | Sandisk 3D Llc | Methods and apparatus for employing redundant arrays to configure non-volatile memory |
US7870471B2 (en) * | 2007-01-31 | 2011-01-11 | Sandisk 3D Llc | Methods and apparatus for employing redundant arrays to configure non-volatile memory |
EP2597777A3 (de) | 2007-03-20 | 2014-08-20 | Tabula, Inc. | Konfigurierbares IC mit einem koppelfeld mit speicherelementen |
US8112468B1 (en) | 2007-03-22 | 2012-02-07 | Tabula, Inc. | Method and apparatus for performing an operation with a plurality of sub-operations in a configurable IC |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8412990B2 (en) * | 2007-06-27 | 2013-04-02 | Tabula, Inc. | Dynamically tracking data values in a configurable IC |
US8069425B2 (en) * | 2007-06-27 | 2011-11-29 | Tabula, Inc. | Translating a user design in a configurable IC for debugging the user design |
US7839162B2 (en) | 2007-06-27 | 2010-11-23 | Tabula, Inc. | Configurable IC with deskewing circuits |
US7501855B2 (en) * | 2007-06-27 | 2009-03-10 | Tabula, Inc | Transport network for a configurable IC |
US7595655B2 (en) * | 2007-06-27 | 2009-09-29 | Tabula, Inc. | Retrieving data from a configurable IC |
US7652498B2 (en) | 2007-06-27 | 2010-01-26 | Tabula, Inc. | Integrated circuit with delay selecting input selection circuitry |
US7579867B2 (en) * | 2007-06-27 | 2009-08-25 | Tabula Inc. | Restructuring data from a trace buffer of a configurable IC |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
EP2201569A4 (de) | 2007-09-06 | 2011-07-13 | Tabula Inc | Konfigurationskontextwechsler |
WO2009039462A1 (en) | 2007-09-19 | 2009-03-26 | Tabula, Inc. | Method and system for reporting on a primary circuit structure of an integrated circuit (ic) using a secondary circuit structure of the ic |
US7996656B2 (en) * | 2007-09-25 | 2011-08-09 | Intel Corporation | Attaching and virtualizing reconfigurable logic units to a processor |
US7576561B1 (en) | 2007-11-13 | 2009-08-18 | Xilinx, Inc. | Device and method of configuring a device having programmable logic |
US7893772B1 (en) | 2007-12-03 | 2011-02-22 | Cypress Semiconductor Corporation | System and method of loading a programmable counter |
US8863067B1 (en) | 2008-02-06 | 2014-10-14 | Tabula, Inc. | Sequential delay analysis by placement engines |
GB2457912A (en) * | 2008-02-27 | 2009-09-02 | Silicon Basis Ltd | An FPGA which is reconfigured between each clock cycle |
JP5158187B2 (ja) * | 2008-02-28 | 2013-03-06 | 富士通株式会社 | ストレージ装置、ストレージ制御装置およびストレージ制御方法 |
US8166435B2 (en) | 2008-06-26 | 2012-04-24 | Tabula, Inc. | Timing operations in an IC with configurable circuits |
US8525548B2 (en) * | 2008-08-04 | 2013-09-03 | Tabula, Inc. | Trigger circuits and event counters for an IC |
US8674721B2 (en) | 2008-09-17 | 2014-03-18 | Tabula, Inc. | Controllable storage elements for an IC |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
US8072234B2 (en) | 2009-09-21 | 2011-12-06 | Tabula, Inc. | Micro-granular delay testing of configurable ICs |
EP2553815A1 (de) | 2010-04-02 | 2013-02-06 | Tabula, Inc. | System und verfahren zur reduzierung der nutzung von neukonfigurationsenergie |
US8941409B2 (en) | 2011-07-01 | 2015-01-27 | Tabula, Inc. | Configurable storage elements |
US9148151B2 (en) | 2011-07-13 | 2015-09-29 | Altera Corporation | Configurable storage elements |
US9203397B1 (en) | 2011-12-16 | 2015-12-01 | Altera Corporation | Delaying start of user design execution |
CN104321967B (zh) * | 2012-05-25 | 2018-01-09 | 株式会社半导体能源研究所 | 可编程逻辑装置及半导体装置 |
US8536896B1 (en) | 2012-05-31 | 2013-09-17 | Xilinx, Inc. | Programmable interconnect element and method of implementing a programmable interconnect element |
US8519741B1 (en) | 2012-07-06 | 2013-08-27 | Xilinx, Inc. | Operating a programmable integrated circuit with functionally equivalent configuration bitstreams |
KR101920719B1 (ko) * | 2012-11-19 | 2019-02-13 | 삼성전자주식회사 | 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법 |
US9330040B2 (en) * | 2013-09-12 | 2016-05-03 | Qualcomm Incorporated | Serial configuration of a reconfigurable instruction cell array |
US9973265B2 (en) | 2014-04-30 | 2018-05-15 | The Boeing Company | Hitless rearrangement of a satellite-hosted switch via propagated synchronization |
US10523207B2 (en) * | 2014-08-15 | 2019-12-31 | Altera Corporation | Programmable circuit having multiple sectors |
US9954531B2 (en) * | 2015-03-03 | 2018-04-24 | Semiconductor Energy Laboratory Co., Ltd. | Electronic device |
US10509757B2 (en) * | 2016-09-22 | 2019-12-17 | Altera Corporation | Integrated circuits having expandable processor memory |
WO2018174936A1 (en) | 2017-03-20 | 2018-09-27 | Intel Corporation | Systems, methods, and apparatuses for tile matrix multiplication and accumulation |
WO2019009870A1 (en) | 2017-07-01 | 2019-01-10 | Intel Corporation | SAVE BACKGROUND TO VARIABLE BACKUP STATUS SIZE |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4670749A (en) * | 1984-04-13 | 1987-06-02 | Zilog, Inc. | Integrated circuit programmable cross-point connection technique |
US4879688A (en) * | 1985-03-04 | 1989-11-07 | Lattice Semiconductor Corporation | In-system programmable logic device |
JP2541248B2 (ja) * | 1987-11-20 | 1996-10-09 | 三菱電機株式会社 | プログラマブル・ロジック・アレイ |
US5212652A (en) * | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
US4972105A (en) * | 1989-09-22 | 1990-11-20 | The U.S. Government As Represented By The Director, National Security Agency | Programmable configurable logic memory |
JP2544020B2 (ja) * | 1990-11-19 | 1996-10-16 | 川崎製鉄株式会社 | プログラマブル論理素子 |
US5122685A (en) * | 1991-03-06 | 1992-06-16 | Quicklogic Corporation | Programmable application specific integrated circuit and logic cell therefor |
US5338984A (en) * | 1991-08-29 | 1994-08-16 | National Semiconductor Corp. | Local and express diagonal busses in a configurable logic array |
CA2091860A1 (en) * | 1992-07-29 | 1994-01-30 | F. Erich Goetting | Configuration control unit for programming a field programmable gate array and reading array status |
US5329179A (en) * | 1992-10-05 | 1994-07-12 | Lattice Semiconductor Corporation | Arrangement for parallel programming of in-system programmable IC logical devices |
US5341044A (en) * | 1993-04-19 | 1994-08-23 | Altera Corporation | Flexible configuration logic array block for programmable logic devices |
US5430687A (en) * | 1994-04-01 | 1995-07-04 | Xilinx, Inc. | Programmable logic device including a parallel input device for loading memory cells |
-
1994
- 1994-04-20 US US08/231,009 patent/US5426378A/en not_active Expired - Lifetime
-
1995
- 1995-04-20 JP JP09522195A patent/JP3626239B2/ja not_active Expired - Lifetime
- 1995-04-22 DE DE69534812T patent/DE69534812T2/de not_active Expired - Lifetime
- 1995-04-22 EP EP04009807.1A patent/EP1455455B1/de not_active Expired - Lifetime
- 1995-04-22 EP EP95106039A patent/EP0678985B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP3626239B2 (ja) | 2005-03-02 |
JPH0851356A (ja) | 1996-02-20 |
US5426378A (en) | 1995-06-20 |
EP1455455A3 (de) | 2008-04-09 |
DE69534812D1 (de) | 2006-04-27 |
EP1455455B1 (de) | 2013-09-11 |
EP0678985A2 (de) | 1995-10-25 |
EP0678985A3 (de) | 1997-07-23 |
EP1455455A2 (de) | 2004-09-08 |
EP0678985B1 (de) | 2006-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69534812T2 (de) | Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration | |
DE4417575C2 (de) | Verbesserte Array-Architektur für programmierbare logische Zellen | |
DE69633370T2 (de) | Benutzerprogrammierbares Gatterfeld mit Multiport-RAM | |
DE4416881C2 (de) | Verfahren zum Betrieb einer Datenverarbeitungseinrichtung | |
DE69838462T2 (de) | Verbesserte feldprogrammierbare Gatteranordnung | |
DE69827589T2 (de) | Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen | |
DE3645224C2 (de) | ||
DE69723530T2 (de) | Durch einen Mikrokontroller steuerbare Makrozelle | |
DE69810995T2 (de) | Rekonfigurierbarer Dual-Modus-Speicher in programmierbaren logischen Einrichtungen | |
DE69721342T2 (de) | FPGA mit erhöhter Zellnutzung | |
DE3839113C2 (de) | ||
DE2654278C2 (de) | ||
DE19639629C2 (de) | Programmierbare, monolithische, integrierte Logikschaltung und Verfahren zum Implementieren derselben | |
DE102004045527B4 (de) | Konfigurierbare Logikschaltungsanordnung | |
WO2002029600A2 (de) | Zellenarordnung mit segmentierterwischenzellstruktur | |
EP0010173A1 (de) | Halbleiterplättchen mit verbesserter Prüfbarkeit der monolithisch hochintegrierten Schaltungen | |
DE102005005073B4 (de) | Rechnereinrichtung mit rekonfigurierbarer Architektur zur parallelen Berechnung beliebiger Algorithmen | |
DE60222011T2 (de) | Asynchrone sequenzschaltung mit unbestimmten impulsfolgen | |
DE2951040C2 (de) | ||
DE3543471C1 (de) | In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen | |
EP1116129B1 (de) | Konfigurierbarer hardware-block | |
DE10241385A1 (de) | Integrierter Schaltkreis | |
DE102004056322A1 (de) | Logik-Grundzelle und Logik-Grundzellen-Anordnung | |
EP1789889B1 (de) | Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten | |
WO2005088838A1 (de) | Logik-grundzelle, logik-grundzellen-anordnung und logik-vorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |