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 PDF

Info

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
Application number
DE69534812T
Other languages
English (en)
Other versions
DE69534812D1 (de
Inventor
Randy T. Cupertino Ong
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Application granted granted Critical
Publication of DE69534812D1 publication Critical patent/DE69534812D1/de
Publication of DE69534812T2 publication Critical patent/DE69534812T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17704Logic 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17748Structural details of configuration resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17748Structural details of configuration resources
    • H03K19/17756Structural details of configuration resources for partial configuration or partial reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17748Structural details of configuration resources
    • H03K19/17758Structural details of configuration resources for speeding up configuration or reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17748Structural details of configuration resources
    • H03K19/1776Structural 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 von 9 unter Verwendung einer FPLA des Standes der Technik; und
  • 11 ein Blockdiagramm der Implementation der beispielhaften Logikschaltung von 9, die die FPLA der vorliegenden Erfindung nutzt.
  • 1 zeigt ein Blockdiagramm einer frei programmierbaren Logikarray („FPLA") 10. Die FPLA 10 umfasst eine Mehrzahl von Fliesen 12, die jeweils wiederum einen konfigurierbaren Logikblock („CLB") 14, einen Konfigurationsspeicher 16 und eine konfigurierbare Leitwegmatrix 18 umfasst. Die Leitwegmatrizen 18 sind miteinander verbunden und verbinden somit die CLBs untereinander. Die Leitwegmatrizen sind auch mit externen Pins auf den Leitungen 44 verbunden. Die Leitwegmatrizen 18 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 FPLA 10 gibt ein Taktsignal, den Benutzertakt, aus, mit dem die FPLA 10 arbeitet. Das (oder die) Benutzertaktsignal(e) wird auf allen Teilen der FPLA 10 auf einer (oder mehreren) der Leitungen 44 geführt.
  • Jede Fliese 12 implementiert einen Teil einer Benutzerschaltung. Die Logikfunktion jeder Fliese 12 wird durch ihren jeweiligen CLB 14 durchgeführt. Jeder CLB 14, und somit jede Fliese 12, kann eine große Vielzahl unterschiedlicher Logikfunktionen ausführen. Die von einem CLB 14 ausgeführte Logikfunktion wird durch die Daten bestimmt, die im Konfigurationsspeicher 16 gespeichert sind, der dem CLB 14 entspricht. Der CLB 14 hat Eingänge für Logikfunktionsdaten und Konfigurationsdaten und Ausgänge für Logikfunktionsdaten.
  • Jeder CLB 14 ist mit anderen CLBs 14 der FPLA 10 und den Eingängen und Ausgängen der FPLA 10 durch die konfigurierbare Leitwegmatrix 18 gekoppelt. Die konfigurierbare Leitwegmatrix 18 hat Konfigurationseingänge zum Empfangen von Konfigurationsdaten und steuert als Reaktion darauf die Kopplung der Dateneingänge und -ausgänge der CLBs 14. Gemäß den im Konfigurationsspeicher 16 gespeicherten Daten verbindet die konfigurierbare Leitwegmatrix 18 die Ausgänge von CLBs 14 und die Eingänge der FPLA 10 selektiv mit den Dateneingängen von CLBs 14. Die konfigurierbare Leitwegmatrix 18 leitet auch die Ausgänge der CLBs 14 zu den Ausgängen der FPLA 10.
  • In einer Ausgestaltung, die Funktionsgeneratorausgänge separat für separate Zyklen rastet, sind die konfigurierbare Leitwegmatrix 18 und der CLB 14 größer als in einem vergleichbaren, gemäß dem Stand der Technik aufgebauten Gerät. Die Zahl der Ausgänge des CLB 14 ist größer als im Stand der Technik, und daher ist auch die konfigurierbare Leitwegmatrix 18 größer, um die zusätzlichen Ausgänge der CLBs 14 aufzunehmen. Die konfigurierbare Leitwegmatrix 18 ist mit dem entsprechenden CLB 14 und mit anderen Leitwegmatrizen 18 gekoppelt.
  • Konfigurationsdaten für jeden CLB 14 und jede konfigurierbare Leitwegmatrix 18 einer Fliese 12 werden im entsprechenden Konfigurationsspeicher 16 gespeichert. Die Konfigurationsdaten werden von außerhalb der FPLA 10 in den Konfigurationsspeicher 16 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 Konfigurationsspeichers 16 werden mit ihrem jeweiligen CLB 14 und konfigurierbarer Leitwegmatrix 18 gekoppelt.
  • Konfigurationsspeicher
  • 2 zeigt ein Blockdiagramm eines Teils eines Konfigurationsspeichers 15 des Standes der Technik. Der Konfigurationsspeicher 15 des Standes der Technik umfasst eine Mehrzahl von Speicherzellen 20-1 bis 20-n, die zu einer Array angeordnet sind. 2 zeigt eine Spalte 22 der Array. Die tatsächliche Array hat viele Spalten.
  • Jede Speicherzelle 20-1 bis 20-n speichert ein einzelnes binäres Datenbit. Jede Speicherzelle 20-1 bis 20-n hat einen Dateneingang, einen Datenausgang und einen Adresseingang. Daten werden in den Speicherzellen 20-1 bis 20-n als Reaktion auf ein Adressiersignal gespeichert. Daten werden jeweils Spalte für Spalte in der Array gespeichert. Das Adresssignal wird zu den Speicherzellen 20-1 bis 20-n auf einem Adressbus 24 geführt, der mit dem Adresseingang jeder Speicherzelle 20-1 bis 20-n gekoppelt ist. Somit werden die Adresseingänge der Speicherzellen 20-1 bis 20-n in derselben Spalte 22 miteinander gekoppelt. Die Dateneingänge der Speicherzellen 20-1 bis 20-n werden zum Empfangen von Konfigurationsdaten mit einem konventionellen Datenbus gekoppelt. Die Ausgänge der Speicherzellen 20-1 bis 20-n sind mit dem CLB 14 und der konfigurierbaren Leitwegmatrix 18 gekoppelt. Die Adressleitung 24 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 Konfigurationsspeichers 16. Der Konfigurationsspeicher 16 der vorliegenden Erfindung umfasst einen ersten Satz von Speicherzellen 21-1 bis 21-n, einen zweiten Satz von Speicherzellen 23-1 bis 23-n und Schaltmittel 28 mit einer Mehrzahl von Schaltern 28-1 bis 28-n. Es wird zwar nachfolgend der erste Satz von Speicherzellen 21-1 bis 21-n als erste Array und der zweite Satz von Speicherzellen 23-1 bis 23-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 Spalte 26-a der ersten Array und eine Spalte 26-b der zweiten Array. In einem tatsächlichen Gerät hat jede Array viele Spalten zum Konfigurieren zahlreicher Fliesen 12 von 1. Die erste Array und die zweite Array speichern beide einen kompletten Satz von Konfigurationsdaten für die CLBs 14 und die konfigurierbaren Leitwegmatrizen 18. Somit enthält der Konfigurationsspeicher 16 gemäß der vorliegenden Erfindung mehr Speicherzellen 21-1 bis 21-n, 23-1 bis 23-n als der Konfigurationsspeicher 15 des Standes der Technik. Gemäß der vorliegenden Erfindung können jeder CLB 14 und jede konfigurierbare Leitwegmatrix 18 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 Speicherzellen 31 liegen ebenfalls Daten zum Konfigurieren der Fliesen 12 an.
  • Wie beim Konfigurationsspeicher 15 des Standes der Technik, sind die Adresseingänge der Speicherzellen 21-1 bis 21-n, 23-1 bis 23-n und 31-1 bis 31-m durch die Adressierleitung 24 miteinander gekoppelt. Jede Spalte der ersten Array entspricht einer Spalte der zweiten Array. In 3 entspricht Spalte 26-a Spalte 26-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 Spalten 26-a, 26-b und 31 entsprechende Adresssignal an die Adressierleitung 24 angelegt wird, dann werden Spalte 26-a, Spalte 26-b und Spalte 31 zum Empfangen von Daten von einem Konfigurationsmittel geschaltet. Daten von Speicherzellen 21-1 bis 21-n, 23-1 bis 23-n und 31-1 bis 31-m liegen immer am Q-Ausgang an. Der Ausgang der beiden ersten Arrays von Konfigurationsspeicherzellen 21-1 bis 21-n und 23-1 bis 23-n sind mit einem jeweiligen Schalter 28-1 bis 28-n gekoppelt. Die Zahl der Konfigurationsspeicherzellen 21 in der ersten Array ist gewöhnlich gleich der Zahl der Konfigurationsspeicherzellen 23 in der zweiten Array. Ferner gibt es gewöhnlich dieselbe Anzahl von Schaltern 28-1 bis 28-n im Schaltmittel 28, wie es Konfigurationsspeicherzellen 21, 23 in der ersten Array oder der zweiten Array gibt.
  • Jeder Schalter 28-1 bis 28-n hat zwei Dateneingänge und einen Auswahleingang. Ein erster Dateneingang jedes Schalters 28-1 bis 28-n ist jeweils mit einer der Speicherzellen 21-1 bis 21-n von Spalte 26-a gekoppelt, und ein zweiter Dateneingang ist jeweils mit einer der Speicherzellen 23-1 bis 23-n von Spalte 26-b gekoppelt. Wie 3 zeigt, sind der Ausgang der Speicherzelle 21-1 von Spalte 26-a und der Ausgang von Speicherzelle 23-1 von Spalte 26-b jeweils mit dem ersten und dem zweiten Eingang von Schalter 28-1 gekoppelt. Ebenso sind der Ausgang der Speicherzelle 21-2 von Spalte 26-a und der Ausgang der Speicherzelle 23-2 von Spalte 26-b jeweils mit dem ersten und dem zweiten Eingang von Schalter 28-2 gekoppelt. In der in 3 gezeigten Ausgestaltung sind die Schalter 28-1 bis 28-n 2:1 Multiplexer. Jeder Schalter 28-1 bis 28-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 Schalters 28-1 bis 28-n wird mit der A/B-Leitung 30 zum Empfangen des A/B-Auswahlsignals gekoppelt. Wenn das A/B-Auswahlsignal im H-Zustand ist, dann lassen die Schalter 28-1 bis 28-n die Eingänge von den Speicherzellen 21-1 bis 21-n von Spalte 26-a durch. Ist das A/B-Auswahlsignal im L-Zustand, dann lassen die Schalter 28-1 bis 28-n die Eingänge von den Konfigurationsspeicherzellen 23-1 bis 23-n von Spalte 26-b durch. Die Ausgänge der Schalter 28-1 bis 28-n sind mit dem CLB 14 und der konfigurierbaren Leitwegmatrix 18 gekoppelt. Durch Anlegen und Nichtanlegen des A/B-Auswahlsignals an die A/B-Leitung 30 werden die in der ersten Array gespeicherten Konfigurationsdaten und die in der zweiten Array gespeicherten Konfigurationsdaten selektiv zum CLB 14 und zur konfigurierbaren Leitwegmatrix 18 geleitet. Somit können die CLBs 14 und die konfigurierbaren Leitwegmatrizen 18 gemäß den beiden alternativen Sätzen von Konfigurationsdaten umkonfiguriert werden. Da die Schalter 28-1 bis 28-n sehr schnell schalten können, können die an den CLB 14 und die konfigurierbare Leitwegmatrix 18 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 CLB 14 und die konfigurierbare Leitwegmatrix 18 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 Schaltmittel 28 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 CLBs 14 und konfigurierbaren Leitwegmatrizen 18 dreimal, viermal oder noch öfter innerhalb eines einzelnen Zyklus des Benutzertaktes umkonfiguriert würden.
  • 4 zeigt eine alternative Ausgestaltung des Konfigurationsspeichers 16. In dieser Ausgestaltung werden die Multiplexer 28-1 bis 28-n, die Speicherzellen 21-1 bis 21-n und die Speicherzellen 23-1 bis 23-n jeweils durch Spaltenleseverstärker 72-1 bis 72-n, SRAM-(statischer Direktzugriffsspeicher)-Zellen 74-1 bis 74-n und 76-1 bis 76-n ersetzt. In dieser Ausgestaltung werden die Spalten 26-a und 26-b jeweils durch Reihen 78-a und 78-b ersetzt, die von konventionellen Schreibschaltungen 46-1 bis 46-n geladen werden. Multiplexer 28-1 bis 28-n werden nicht verwendet. Stattdessen werden die Reihenausgangssignale von Spaltenleseverstärkern 72-1 bis 72-n gepuffert. Die A/B-Leitung 30 wird durch eine A-Adressleitung 80 und eine B-Adressleitung 82 ersetzt. Wenn das Signal auf der A-Adressleitung 80 im H-Zustand und das Signal auf der B-Adressleitung 82 im L-Zustand ist, dann werden Daten in der SRAM-Zellenreihe 78-a an Leseverstärker 72-1 bis 72-n und dann an den CLB 14 und die konfigurierbare Leitwegmatrix 18 angelegt. Wenn das Signal auf der A-Adressleitung 80 im L-Zustand und das Signal auf der B-Adressleitung 82 im H-Zustand ist, dann werden die Daten in der SRAM-Zellenreihe 78-b an die Leseverstärker 72-1 bis 72-n und dann an den CLB 14 und die konfigurierbare Leitwegmatrix 18 angelegt. Die Fachperson wird ein Mittel zum alternativen Setzen des Signals auf der A-Adressleitung 80 in den H-Zustand und dann des Signals auf der B-Adressleitung 82 in den H-Zustand erzeugen können. Die Fachperson wird erkennen, dass weitere SRAM-Zellenreihen 78 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 CLB 14 und die konfigurierbare Leitwegmatrix 18 während des Benutzertaktzyklus umkonfiguriert werden können.
  • Konfigurierbare Logikblöcke
  • 5 zeigt ein Blockdiagramm eines CLB 13 des Standes der Technik. Der CLB 13 des Standes der Technik umfasst einen Funktionsgenerator 34, ein Register 36 und einen Ausgangsschalter 38. Der Funktionsgenerator 34 implementiert Logikfunktionen von mehreren Eingängen gemäß den im Konfigurationsspeicher 15 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 CLB 13 assoziierten Konfigurationsspeicher 15.
  • Der Ausgang des Funktionsgenerators 34 ist entweder direkt oder durch das Register 36 mit dem Ausgangsschalter 38 gekoppelt. Das Register 36 ist ein konventionelles Datensignalspeicherregister wie z.B. ein D-Flipflop. Das Register 36 hat einen Dateneingang, der mit dem Ausgang des Funktionsgenerators 34 gekoppelt ist, und einen Takteingang, der zum Empfangen eines Benutzertaktsignals auf einer Leitung 44-c der Leitungen 44 gekoppelt ist. Das Register 36 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 Schalter 38.
  • 6A zeigt ein Blockdiagramm einer Ausgestaltung eines gemäß der vorliegenden Erfindung konstruierten CLB 14. Der CLB 14 gemäß dieser Ausgestaltung umfasst einen Funktionsgenerator 34, einen ersten Datensignalspeicher 42a, einen zweiten Datensignalspeicher 42b, ein erstes Register 36a, ein zweites Register 36b, einen ersten Ausgangsschalter 39a und einen zweiten Ausgangsschalter 39b. Der erste Datensignalspeicher 42a, das erste Register 36a sowie der erste Ausgangsschalter 39a erzeugen vorteilhafterweise den Ausgang des Funktionsgenerators 34, wenn der Funktionsgenerator 34 mit Ausgängen des ersten Satzes von Speicherzellen 21 konfiguriert ist (3). Somit können die vom ersten Datensignalspeicher 42a oder vom Register 36a gespeicherten Daten in der zweiten Hälfte des Benutzertaktzyklus verwendet werden, wenn der CLB 14 gemäß dem zweiten Satz von Konfigurationsdaten von Speicherzellen 23 konfiguriert ist. Der zweite Datensignalspeicher 42b, das zweite Register 36b und der zweite Schalter 39b werden ebenfalls zum Speichern und Leiten des Ausgangs des Funktionsgenerators 34 verwendet, wenn dieser gemäß dem zweiten Satz von Konfigurationsdaten von Speicherzellen 23 konfiguriert ist.
  • Der Funktionsgenerator 34 ist zu dem von 5 oben äquivalent. Die Dateneingänge des Funktionsgenerators 34 sind mit der konfigurierbaren Leitwegmatrix 18 gekoppelt und die Steuereingänge sind mit dem Konfigurationsspeicher 16 der vorliegenden Erfindung gekoppelt. Somit kann der Funktionsgenerator 34 von den Steuersignalen, während andere Teile des CLB 14 umkonfiguriert werden.
  • Der erste Datensignalspeicher 42a ist ein herkömmlicher Datensignalspeicher zum Speichern eines binären Datenbits. Der erste Datensignalspeicher 42a hat einen Dateneingang (D), einen Datenausgang (Q) und einen Latch-enable-Eingang (Takteingang). Der Dateneingang des ersten Datensignalspeichers 42a ist mit dem Ausgang des Funktionsgenerators 34 gekoppelt. Der Latch-enable-Eingang ist mit der A/B-Leitung 30 zum Empfangen eines A/B-Signals gekoppelt. Der erste Datensignalspeicher 42a rastet entweder Daten als Reaktion auf das am Latch-enable-Eingang anliegende Signal oder lässt sie durch. Der erste Datensignalspeicher 42a 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 Datensignalspeicher 42b hat dieselbe Funktionalität und Struktur wie der erste Datensignalspeicher 42a. Der Dateneingang des zweiten Datensignalspeichers 42b ist mit dem Ausgang des Funktionsgenerators 34 gekoppelt. Der Latch-enable-Eingang des zweiten Datensignalspeichers 42b ist jedoch mit einer Leitung 68 zum Empfangen des A/B-Signals gekoppelt. Da der zweite Datensignalspeicher 42b ein Signal an seinem Latch-enable-Eingang empfängt, das die Umkehr des am ersten Datensignalspeicher 42a anliegenden Signals ist, erfolgt das Durchlassen und Rasten der Daten durch den Datensignalspeicher 42a, 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 Signalspeicher 42b verwendet werden kann, so dass sich die A/B-Leitung 68 erübrigt.
  • Das erste Register 36a ist ein Datenregister des in Verbindung mit 5 oben beschriebenen Typs. Das erste Register 36a kann beispielsweise ein D-Flipflop sein. Der Dateneingang des Registers 36b ist mit dem Datenausgang des ersten Datensignalspeichers 42a gekoppelt. Der Takteingang des ersten Registers 36a ist mit einer Leitung 44-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 Datensignalspeichers 42b gekoppelt und der Takteingang ist mit der Leitung 44-c zum Empfangen des Benutzertaktsignals gekoppelt.
  • Der erste Ausgangsschalter 39a ist ein herkömmliches Schaltgerät wie z.B. ein 3:1 Multiplexer. Der Ausgangsschalter 39a, 39b hat drei Dateneingänge, einen Datenausgang und einen Befehlseingang. Ein erster Dateneingang des Ausgangsschalters 39a ist mit dem Ausgang des Registers 36a gekoppelt. Der zweite Dateneingang des Ausgangsschalters 39a ist mit dem Datenausgang des Datensignalspeichers 42a gekoppelt. In dieser Ausgestaltung ist der Ausgang des Funktionsgenerators 34 mit einem dritten Dateneingang des Ausgangsschalters 39a gekoppelt. Der Ausgangsschalter 39a gibt eines der an den drei Eingängen anliegenden Signale als Reaktion auf Signale zu den Steuereingängen des Ausgangsschalters 39a aus. Die Steuereingänge sind mit assoziierten Speicherzellen 21, 23 oder üblicher 31 im Konfigurationsspeicher 16 der vorliegenden Erfindung gekoppelt und bleiben typischerweise unverändert, wenn die A/B-Leitung 30 schaltet.
  • Der zweite Ausgangsschalter 39b ist ebenfalls ein 3:1 Multiplexer. Der zweite Ausgangsschalter 39b beinhaltet einen ersten, zweiten und dritten Dateneingang; einen Datenausgang und ein Paar Steuereingänge. Der erste Dateneingang ist mit dem Ausgang des zweiten Registers 36b gekoppelt; der zweite Dateneingang ist mit dem Ausgang des zweiten Datensignalspeichers 42b gekoppelt. Der dritte Eingang des Ausgangsschalters 39b ist mit dem Ausgang des Funktionsgenerators 34 gekoppelt. Die Steuereingänge sind mit assoziierten Speicherzellen 21, 23 oder 31 im Konfigurationsspeicher 16 gekoppelt, um zu steuern, welches der drei Eingangssignale vom zweiten Ausgangsschalter 39b ausgegeben wird. Der Ausgang des zweiten Ausgangsschalters 39b bildet einen der Ausgänge des CLB 14.
  • Diese Ausgestaltung der vorliegenden Erfindung erhöht vorteilhafterweise die Anzahl der Logikfunktionen, die von der FPLA 10 durch Umkonfigurieren der CLBs 14 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 CLBs 14 und die konfigurierbaren Leitwegmatrizen 18 anhand der in der ersten Array des Konfigurationsspeichers 16 gespeicherten Konfigurationsdaten. Die CLBs 14 führen dann ihre Logikfunktionen aus und die A-Periode endet. Während der B-Periode werden die CLBs 14 und die konfigurierbaren Leitwegmatrizen 18 mittels der in der zweiten Array des Konfigurationsspeichers 16 gespeicherten Konfigurationsdaten umkonfiguriert. Die CLBs 14 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 FPLA 10 während eines Zyklus des Benutzertaktes ausführen kann.
  • 6A zeigt einen CLB 14, 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 CLB 14 einen zusätzlichen Ausgangspfad mit Datensignalspeicher 42, Register 36 und Schalter 39 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. In 6B sind Signalspeicher 62a62d am Eingang von CLB 17 vorgesehen und speichern in der Leitwegmatrix 18 vorhandene Signale in zwei unterschiedlichen Betriebsperioden. Die Signalspeicher 62a und 62b 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 Signalspeicher 62c und 62d 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 Signalspeichern 62a62d werden immer an die I1–I4 Anschlüsse des Funktionsgenerators 34 angelegt, obwohl zu jedem Zeitpunkt zwei der Signalspeicher 62a62d Daten von der Leitwegmatrix 18 durchlassen und zwei Daten speichern, die zuvor von der Leitwegmatrix 18 empfangen wurden. Somit können an den beiden Phasen des A/B-Taktsignals Leitungen in der Leitwegmatrix 18 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 Signalspeicher 62a, und ein Signal zum Signalspeicher 62c in der zweiten Phase des A/B-Taktsignals anzulegen. Beide Signale würden vom Funktionsgenerator 34 benutzt. Die Signalspeicher 62a bis 62d lassen es zu, dass die Leitwegmatrix 18 in den beiden Phasen praktischerweise wiederverwendet wird. Es können natürlich mehr als zwei Phasen durch separat getaktete Signalspeicher 62a62d mit mehr als zwei Taktsignalen vorgesehen werden.
  • Leitwegmatrix
  • 6C zeigt eine Ausgestaltung einer Leitwegmatrix 18, mit der die Erfindung verwendet werden kann. Am äußeren Rand von 6C sind auch Teile von vier CLBs 14a, 14b, 14c und 14d dargestellt. Transistoren in der Leitwegmatrix 18 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 CLB 14b.
  • Der Transistor T62 kann den Ausgang des Multiplexers 39b im CLB 14a 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 Konfigurationsspeicher 16 zum Gate des Transistors. Der Einfachheit halber sind die meisten Transistoren in der Zeichnung nicht beschriftet und die Verbindungen vom Konfigurationsspeicher 16 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 von 6C ist es, die Beziehung zwischen der Leitwegmatrix 18, den CLBs 14 und den Konfigurationsleitungen vom Konfigurationsspeicher 16 zu illustrieren. Der neue Aspekt von 6C ist, dass Signale vom Konfigurationsspeicher 16 die Leitwegmatrix 18 in Verbindung mit dem Umkonfigurieren der CLBs 14 umkonfigurieren und damit dieselbe Leitwegleitung in der Leitwegmatrix 18 für mehr als eine Verbindung verwenden kann, wie oben erörtert wurde.
  • Betriebsarten
  • Die vorliegende Erfindung bietet drei Betriebsarten der CLBs 14. Die CLBs 14 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 Ausgangsschalter 39a, 39b zum Empfangen und direkten Durchlassen des Datenausgangs durch den Funktionsgenerator 34 konfiguriert. Der B-Ausgangspfad wird entweder nicht benutzt oder die Ausgänge der Schalter 39a, 39b sind zu einem einzelnen Ausgangspfad zusammengeschaltet. Das A/B-Signal auf der Leitung 30 und das Benutzertaktsignal auf der Leitung 44 können angelegt werden, aber dieser erste Modus nutzt die Datensignalspeicher 42a, 42b und die Register 36a, 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 FPLA 10 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 Register 36a 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 Datensignalspeicher 42a durchgelassenen Daten in das erste Register 36a getaktet. In diesem Modus ändert sich der Ausgang des CLB 14 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 FPLA 10 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 FPLA 10 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 Signalspeichers 42a, vier beispielhafte Zustände des Signalspeichers 42b, zwei beispielhafte Ausgänge des Registers 36a und zwei beispielhafte Ausgänge des Registers 36b. 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 FPLA 10 durch die CLBs 14 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 CLB 14 bei. Die dritte Betriebsart nutzt das Vermögen der vorliegenden Erfindung, die Anzahl der von der FPLA 10 ausgeführten Logikfunktionen zu erhöhen. Im dritten Modus unterscheiden sich die Konfiguration des CLB 14 und die Konfiguration der konfigurierbaren Leitwegmatrix 18 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 Leitwegmatrizen 18 mit dem ersten Satz von Konfigurationsdaten konfiguriert werden. Während der A-Periode lässt der erste Datensignalspeicher 42a Daten durch und der Datensignalspeicher 42b 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 CLBs 14 und die konfigurierbaren Leitwegmatrizen 18 somit um. Der erste Datensignalspeicher 42a rastet die Daten an seinem Eingang, der zweite Datensignalspeicher 42b 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 Leitwegmatrizen 18 wieder gemäß dem ersten Konfigurationsdatensatz umkonfiguriert. Der erste Datensignalspeicher 42a lässt die Daten durch, der zweite Datensignalspeicher 42b rastet sie. Auf der ansteigenden Flanke des Benutzertaktes und des A/B-Signals takten das erste und das zweite Register 36a, 36b Daten ein. Das Register 36a taktet die gerasteten Daten vom Datensignalspeicher 42a ein, das Register 36b taktet die Durchlassdaten vom Datensignalspeicher 42b ein. Somit speichert das erste Register 36a den Ausgang des Funktionsgenerators 34, wenn es im früheren Teil des Benutzertaktes konfiguriert wurde, gemäß dem ersten Konfigurationsdatensatz. Das zweite Register 36b speichert den Ausgang des Funktionsgenerators 34, 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 Ausgangsschalter 39a, 39b während des Benutzertaktzyklus nicht umkonfiguriert. In der Ausgestaltung von 6A erlaubt die Struktur jedoch eine Umkonfiguration der Ausgangsschalter, und in einigen Anwendungen kann dies auch wünschenswert sein. So kann beispielsweise der Schalter 39a Daten vom Funktionsgenerator 34 während der A-Periode und vom Register 36a während der B-Periode durchlassen. Inzwischen kann der Schalter 39b Daten vom Signalspeicher 42b in beiden Perioden durchlassen.
  • Die Leitwegmatrizen 18 werden auch bei jedem Übergang des A/B-Signals umkonfiguriert. Wie bei den CLBs 14, können die Eingänge zum CLB 14 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 CLB 14 anlegen und die Ausgänge des CLB 14 korrekt leiten.
  • Nicht alle Fliesen 12 der FPLA 10 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 CLB 14 die Zahl der in der FPLA 10 implementierten Logikfunktionen im Vergleich zu der Zahl der in der FPLA 10 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 FPLA 10 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 von 8 zeigt vier Zyklen des Benutzertakts im Vergleich mit einem ersten alternativen A/B-Signal A/B-1 und seiner Umkehr A/B-1 und mit einem alternativen A/B-Signal A/B-2 und seiner Umkehr A/B/2. In 8 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 mit 7 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 FPLA 10 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-Gate 50 mit zwei Eingängen, ein zweites AND-Gate 52 mit zwei Eingängen, ein drittes AND-Gate 54 mit drei Eingängen, ein OR-Gate 56 mit drei Eingängen, ein XOR-Gate 58 mit zwei Eingängen, ein erstes Register 60, ein zweites Register 62 und ein drittes Register 64, die alle wie gezeigt geschaltet sind.
  • Für die 9, 10 und 11 zeigt das Beispiel Q 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 in Q invertiert werden kann, nur ein Ausgang benötigt. Daher zeigten die 4 und 5 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 Fliesen 11-1, 11-2, 11-3 und 11-4 des Standes der Technik. Die konfigurierbaren Leitwegmatrizen 70-1, 70-2, 70-3 und 70-4 verbinden diese Fliesen. Die Verbindungen der Ausgänge der Fliesen 11-1, 11-2, 11-3 und 11-4 erfolgen durch die konfigurierbare Leitwegmatrix 70 jeder Fliese 11. Jeder Punkt repräsentiert einen Teil der Leitwegmatrizen 70, 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 Funktionsgenerator 34-1 eine XOR-Funktion mit zwei Eingängen implementiert, und der Ausgangsschalter 38-1 (nicht dargestellt) lässt den Ausgang des Registers 36-1 durch. Der zweite CLB 13-2 des Standes der Technik ist so konfiguriert, dass der Funktionsgenerator 34-2 die Zwei-Level-Digitalfunktion mit drei Eingängen gemäß der Gleichung D = AB + AC + ABC implementiert, wobei ABC der Ausgang des Funktionsgenerators 34-4 und D der Ausgang des Funktionsgenerators 34-2 ist. Der Ausgangsschalter (siehe Ausgangsschalter 38 von 5) des zweiten CLB 13-2 des Standes der Technik ist so konfiguriert, dass er den Ausgang von Register 36-2 durchlässt. Der dritte CLB 13-3 des Standes der Technik ist so konfiguriert, dass der Funktionsgenerator 34-3 das Signal zum Ausgang C invertiert, und der Ausgangsschalter 38-3 (nicht dargestellt) lässt den Ausgang des Registers 36-3 durch. Der CLB 13-4 des Standes der Technik ist so konfiguriert, dass er eine AND-Funktion ABC mit drei Eingängen implementiert. Der Ausgangsschalter des CLB 13-4 des Standes der Technik ist so konfiguriert, dass er den Ausgang des Funktionsgenerators 34-4 durchlässt. Die konfigurierbaren Leitwegmatrizen 70-1, 70-2, 70-3 und 70-4 sind, wie durch die schwarzen Punkte angedeutet, zum Bilden des Zählers von 9 geschaltet.
  • 11 zeigt ein Blockdiagramm einer Implementation des 3-Bit-Zählers mit der FPLA 10 der vorliegenden Erfindung. Die konfigurierbaren Leitwegmatrizen 18 sind als gestrichelte Linien um die Anschlüsse dargestellt, die von den konfigurierbaren Leitwegmatrizen 18 vorgenommen werden. Die Anschlüsse sind entweder mit einem vollen Verbinder oder einem hohlen Verbinder dargestellt. Die Leitwegmatrizen 18 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 Leitwegmatrizen 18 so konfiguriert, dass sie die durch die hohlen Verbinder angedeuteten Anschlüsse vornehmen. Die Leitwegmatrizen 18 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 Speicherzelle 21-x gespeicherten Daten mit den in der Speicherzelle 23-x gespeicherten Daten identisch sind, wobei x zwischen 1 und n in 3 liegt. Die konfigurierbare Leitwegmatrix 18 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 Ausgangsschalter 39a-1, 39b-1, 39a-2 and 39b-2, die Konfigurationsspeicher, die Steuerleitungen und Taktleitungen, die denen der 6A entsprechen, nicht dargestellt.
  • In 11 verwendet der 3-Bit-Zähler zwei Fliesen 12-1 und 12-2 der FPLA 10. Jede Fliese führt zwei Logikfunktionen aus, eine während der A-Periode und eine andere während der B-Periode. In 11 repräsentieren die Bezugsziffern 34-1-a und 34-1-b dasselbe physische Bauelement, das unterschiedliche Funktionsgeneratorlogik in den beiden Perioden ausführt. In der A-Periode ist der erste CLB 14-1-a von Fliese 12-1 so konfiguriert, dass die Funktionsgeneratorlogik 34-1-a ein AND-Gate mit drei Eingängen ist und der Ausgangsschalter 39-1 (nicht dargestellt) Daten vom ersten Datensignalspeicher 42-1-a durchlässt. Wenn die Fliese 12-1 in der B-Periode umkonfiguriert wird, dann ist die Funktionsgeneratorlogik 34-1-b die Dreieingangs-Logikfunktion mit der Gleichung D = AB + AC + ABC, wobei D der Ausgang der Funktionsgeneratorlogik 34-1-b ist. Man beachte, dass der Ausgang der Funktionsgeneratorlogik 34-1-a am Ende der A-Periode in den Datensignalspeicher 42-1-a gerastet wird. Der Ausgang der Datensignalspeicherkonfiguration 42-1-a steht der Funktionsgeneratorlogik 34-1-b in der folgenden B-Periode zur Verfügung und wird davon benutzt. Der Ausgangsschalter von CLB 14-1, der zum Schalter 39b von 6A äquivalent ist, ist so konfiguriert, dass er Daten vom Register 36-1-b durchlässt, und ist nicht dargestellt.
  • Die Fliese 12-2 ist in der A-Periode so konfiguriert, dass die Funktionsgeneratorlogik 34-2-a den Eingang C einfach durchlässt. Der Ausgangsschalter ist so konfiguriert, dass er Daten vom Register 36-2-a durchlässt. In der B-Periode führt die Funktionsgeneratorlogik 34-2-b eine XOR-Funktion mit zwei Eingängen aus und der Ausgangsschalter (äquivalent zu 39b von 6a) ist so konfiguriert, dass er Daten von der Registerkonfiguration 36-2-b ausgibt.
  • Ein Vergleich von 10 mit 11 zeigt, dass die Zwei-Konfigurations-Ausgestaltung der vorliegenden Erfindung die Zahl der Logikfunktionen, die die FPLA 10 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 Fliesen 12. 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 Leitwegmatrizen 18 und der CLBs 14, 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 Funktionsgeneratoren 34 sowie Ausgangsschalter 39, wobei jedes Pfadelement von einem Multiplexer 28-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 Schalter 28-1 bis 28-n kritischer als andere. In der Ausgestaltung von 6A ist es, da in den Signalspeichern und Registern gespeicherte Signale die Schalter 39a und 39b und dann die Durchlassgatter in der Leitwegmatrix 18 erreichen, bevor sie Funktionsgeneratoren 34 des nächsten CLB weiter hinten im Pfad erreichen, während der Umkonfiguration kritischer, dass Schalter 39a und 39b und die Durchlasstransistoren in der Leitwegmatrix 18 schneller (vor der Ankunft des Datensignals) schalten, als wenn die Funktionsgeneratoren 34 schnell schalten. Daher sollte die Geschwindigkeit von Ausgangssignalen von den Schaltern 28-1 bis 28-n, die die Ausgangsschalter 39a, 39b steuern, und von denen der Durchlasstransistoren der Leitwegmatrix 18 maximiert werden [sic]. Dazu sollten die kritischsten Ausgangssignale von den Schaltern 28-1 bis 28-n auf Metallleitungen gesetzt werden. Es können zusätzliche Maßnahmen, z.B. Regulieren der Größen von Schaltern 28-1 bis 28-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)

  1. 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.
  2. 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.
  3. Programmierbare Array nach Anspruch 1 oder 2, wobei der Konfigurationsspeicher ferner ein drittes Speichermittel zum Speichern eines dritten Satzes von Konfigurationsdaten umfasst.
  4. 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.
  5. 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.
  6. 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.
  7. Programmierbare Array nach Anspruch 6, bei der jede der aufeinander folgenden Zeitperioden wenigstens so lang ist wie ein Benutzertaktzyklus.
  8. 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.
  9. Programmierbare Array nach Anspruch 8, wobei die Speicherzellen statische Direktzugriffsspeicherzellen sind.
  10. Programmierbare Array nach Anspruch 8, wobei die Speicherzellen Fuses sind.
  11. Programmierbare Array nach Anspruch 8, wobei die Speicherzellen Antifuses sind.
  12. Programmierbare Array nach Anspruch 8, wobei die Speicherzellen EPROM-Zellen sind.
  13. Programmierbare Array nach Anspruch 8, wobei die Speicherzellen EEPROM-Zellen sind.
  14. 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.
  15. 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.
  16. Programmierbare Array nach einem der vorherigen Ansprüche, wobei das Schaltmittel ein Multiplexer ist.
  17. Programmierbare Array nach einem der vorherigen Ansprüche, wobei das Schaltmittel einen Leseverstärker und eine Mehrzahl von Adresszeilen umfasst.
  18. 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.
  19. Programmierbare Array nach Anspruch 18, bei der die Mehrzahl von Schaltern eine Mehrzahl von Zwei-zu-eins-Multiplexern ist.
  20. 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.
  21. 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.
  22. 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.
  23. 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.
  24. 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.
  25. 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.
  26. Programmierbare Array nach Anspruch 25, bei der ein dritter Dateneingang des Ausgangsschalters mit dem Ausgang des Funktionsgenerators gekoppelt ist.
  27. 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.
  28. Programmierbare Array nach Anspruch 24, wobei der Ausgangsschalter ein Multiplexer ist.
  29. 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.
DE69534812T 1994-04-20 1995-04-22 Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration Expired - Lifetime DE69534812T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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