DE69019654T2 - Logischer Block für programmierbare logische Einrichtungen. - Google Patents

Logischer Block für programmierbare logische Einrichtungen.

Info

Publication number
DE69019654T2
DE69019654T2 DE69019654T DE69019654T DE69019654T2 DE 69019654 T2 DE69019654 T2 DE 69019654T2 DE 69019654 T DE69019654 T DE 69019654T DE 69019654 T DE69019654 T DE 69019654T DE 69019654 T2 DE69019654 T2 DE 69019654T2
Authority
DE
Germany
Prior art keywords
logic
programmable
memory
block
random access
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 - Fee Related
Application number
DE69019654T
Other languages
English (en)
Other versions
DE69019654D1 (de
Inventor
Randy Charles Steele
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.)
STMicroelectronics lnc USA
Original Assignee
SGS Thomson Microelectronics 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 SGS Thomson Microelectronics Inc filed Critical SGS Thomson Microelectronics Inc
Application granted granted Critical
Publication of DE69019654D1 publication Critical patent/DE69019654D1/de
Publication of DE69019654T2 publication Critical patent/DE69019654T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body
    • H01L27/06Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers the substrate being a semiconductor body including a plurality of individual components in a non-repetitive configuration
    • 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/17772Structural details of configuration resources for powering on or off
    • 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/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Logic Circuits (AREA)
  • Executing Machine-Instructions (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Static Random-Access Memory (AREA)

Description

  • Die vorliegende Erfindung betrifft im allgemeinen integrierte Schaltungsvorrichtungen und genauer programmierbare Logikvorrichtungen, Logikblöcke für derartige Vorrichtungen und Verfahren zur Konfigurierung derartiger Vorrichtungen. Ausführungsformen der Erfindung sind durch einen Benutzer konfigurierbar bzw. gestaltbar.
  • Programmierbare Logikvorrichtungen werden aufgrund ihrer Flexibilität in der Elektronikindustrie zunehmend populärer. Diese Vorrichtungen erlauben es einem Benutzer, ein Standardteil zu konfigurieren, um eine breite Vielfalt an Standardlogikfunktionen durchzuführen. Da eine einzelne Standardvorrichtung für viele verschiedene Funktionen gestaltet bzw. konfiguriert werden kann, können die Gesamtkosten bei der Verwendung einer derartigen Vorrichtung in einem System bedeutend geringer sein als die Kosten von kundenspezifisch gestalteten Teilen, insbesondere in Fällen, wo das Produktvolumen nicht extrem groß ist.
  • Viele programmierbare Logikvorrichtungen können nur einmal programmiert werden. Dies kann in der Art eines Endmetallisierungs-Maskenschritts bei einer Siliziumgießerei bzw. einem Siliziumhersteller getan werden. Bei einer anderen Gestaltung wird eine Vorrichtung zur Verfügung gestellt, die durch die Verwendung schmelzbarer Verbindungen bzw. Anschlüsse programmierbar ist, wobei die Programmierung durchgeführt wird, indem der Benutzer eine spezialisierte Ausrüstung zum Programmieren verwendet.
  • Andere Designs programmierbarer Logikvorrichtungen ermöglichen es, daß die Vorrichtungen durch den Benutzer neu programmiert werden bzw. reprogrammiert werden. Diese Designs beinhalten typischerweise nicht-flüchtige Speicher, wie z.B. EPROMs oder EEPROMS, um die Programmierungs- oder Konfigurationsinformation zu erhalten. Falls es erwünscht ist, die Vorrichtung zu reprogrammieren, kann die Konfigurationsinformation, die in einem nicht-flüchtigen Speicher in der Vorrichtung gespeichert ist, geändert werden, was die Funktionen ändert, die durch jene Vorrichtung durchgeführt werden.
  • Reprogrammierbare Logikvorrichtungen können ebenso gestaltet bzw. aufgebaut werden, indem RAM-Speicher, üblicherweise SRAM-Speicher, verwendet werden, um Konfigurationsinformationen zu erhalten. Obwohl derartige Vorrichtungen ihre Konfiguration nur so lange beibehalten, wie der Vorrichtung Leistung zugeführt wird bzw. an dieser anliegt, sind sie leicht durch den Benutzer reprogrammierbar. Die Verwendung von RAM-Speicher, um Logikfunktionen durchzuführen, sind seit langem bekannt. Ein Schritt zur Verwendung von RAM-Speicher bzw. Speichern mit wahlfreiem Zugriff in einer programmieren Logikvorrichtung ist es, eine Anordnung identischer Logikblöcke, ebenso als Makrozellen bezeichnet, bereitzustellen, die untereinander durch Matrizen programmierbarer Schaltelemente verbunden sind.
  • Bezugnehmend auf Fig. 1, wird auf eine derartige programmierbare Logikvorrichtung im allgemeinen mit 10 Bezug genommen. Die Vorrichtung 10 beinhaltet eine Anordnung von Makrozellen 12-15. Nur 4 derartiger Makrozellen sind in der Fig. 1 gezeigt, aber eine typische tatsächliche Vorrichtung würde eine viel größere Anordnung beinhalten.
  • Die Makrozellen 12-15 sind untereinander über programmierbare Schaltmatrizen 16-22 verbunden. Jede der programmierbaren Schaltmatrizen 16-22 beinhaltet eine Anzahl programmierbarer Schalter, um Paare von Signalleitungen, die dort hindurchführen, zu verbinden. Ihre Funktion ähnelt dem gut bekannten Kontaktbrückenschalter bzw. Crossbar-Schalter. Indem die Schaltmatrizen sachgemäß programmiert werden, können Signale zwischen physikalisch nicht benachbarten Abschnitten der Vorrichtung 10 geführt werden. Zum Beispiel kann ein Ausgangssignal von der Makrozelle 14 als ein Eingang bzw. ein Eingangssignal für die Makrozelle 13 verwendet werden, indem ein derartiges Signal durch programmierbare Schaltmatrizen 21, 22, 20 und 17 in dieser Reihenfolge hindurchgeführt wird.
  • Eingaben bzw. Eingangssignale werden der Vorrichtung durch Eingangspuffer 24 zugeführt, die mit Eingangspins bzw. Kontaktstiften 26 verbunden sind. Die Signale von den Eingangspuffern 24, die vorzugsweise in wahren und komplementären Varianten verfügbar sind, sind mit der Schaltmatrix 16 verbunden. Von diesem Punkt aus können sie zu verschiedenen Teilen der Vorrichtung 10 geführt werden, so wie es gebraucht wird. Ausgangspuffer 28 werden durch Signale getrieben bzw. angesteuert, die durch eine Schaltmatrix 21 geführt werden, und sie steuern bzw. treiben Ausgangspins bzw. Ausgangskontaktstifte 30.
  • In vielen Vorrichtungen sind die Eingangs-/Ausgangspins gemäß ihrer Funktion programmierbar. Somit kann jeder gegebene Eingangs-/Ausgangspin programmiert werden, um einen Eingangspuffer 24 oder einen Ausgangspuffer 28 zu bilden. Eine derartige Technik wird vorzugsweise bei der vorliegenden Erfindung angewandt, wobei Eingangspuffer 24 jene Eingangs-/Ausgangspuffer sind, die als Eingänge programmiert wurden, und Ausgangspuffer 28 jene sind, die als Ausgänge programmiert wurden.
  • Die Anzahl der Signalleitungen, die verschiedene Abschnitte der Vorrichtung 10 verbinden, kann, falls gewünscht, geändert werden. Wie in der Fig. 1 gezeigt, hat jede Makrozelle 12-15 n Eingänge und m Ausgänge. Alle Makrozellen sind vorzugsweise zur Erleichterung des Designs und des Layouts identisch. Alle programmierbaren Schaltmatrizen 16-22 sind ebenso mit der möglichen Ausnahme der Matrizen 16 und 21, die verwendet werden, um mit den Eingangspuffern 24 bzw. Ausgangspuffern 28 in Verbindung zu stehen, vorzugsweise identisch. k Signalleitungen werden vorzugsweise zwischen jeder programmierbaren Schaltmatrix geführt. Ein typisches, tatsächliches bzw. aktuelles Design der Vorrichtung 10 könnte z.B. ein 10x10-Feld bzw. eine 10x10-Anordnung von Makrozellen mit programmierbaren Schaltmatrizen zwischen Makrozellen, wie in der Fig. 1 gezeigt, beinhalten. Jede Makrozelle könnte n=24 Eingänge und m=4 Ausgänge mit k=32 Signalleitungen zwischen jeder programmierbaren Schaltmatrix aufweisen.
  • Bei einer Vorrichtung, wie sie in Verbindung mit der Fig. 1 beschrieben ist, wäre es wünschenswert, einen Benutzer-RAM-Speicher auf der Vorrichtung zu haben. Ungeachtet dessen, daß der RAM-Speicher zur Speicherung von Konfigurationsinformationen verwendet wird und somit Logikfunktionen festlegt, wäre der Benutzer-RAM-Speicher für die Verwendung als ein Speicher durch den Benutzer verfügbar.
  • Ein Vorteil einer der Ausführungen der vorliegenden Erfindung ist die Bereitstellung von einer programmierbaren Logikvorrichtung, die einen RAM-Speicher aufweist, der für den Benutzer zusätzlich zu Logikfunktionen verfügbar ist.
  • Ein weiterer Vorteil liegt in der Fähigkeit, eine derartige Vorrichtung zu liefern, bei welcher für den Benutzer- RAM-Speicher und eine programmierte Logik verwendete Logikblöcke dasselbe Design und Layout aufweisen.
  • Noch ein weiterer Vorteil liegt in der Fähigkeit, eine derartige Vorrichtung zu liefern, bei welcher der Benutzer jeden Logikblock selektiv konfigurieren kann, um als durch den Benutzer beschreibbarer RAM-Speicher oder als programmierte Logik zu funktionieren bzw. zu arbeiten.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird eine programmierbare Logikvorrichtung mit einem Schaltungsblock bereitgestellt, wobei der Schaltungsblock folgendes aufweist: einen Dekoder, einen Speicher mit wahlfreiem Zugriff mit einer Anzahl von Bits, die durch den Dekoder adressiert werden, wenigstens einen Schreib-Treiber und wenigstens einen Abtast- bzw. Leseverstärker, der bzw. die mit dem Speicher mit wahlfreiem Zugriff verbunden ist bzw. sind, und eine Einrichtung, um den Schaltungsblock zu konfigurieren bzw. zu gestalten, um als ein benutzerbeschreibbarer Speicher zu wirken oder um eine Logikfunktion bereitzustellen.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird eine programmierbare Logikvorrichtung bereitgestellt, die folgendes aufweist: eine Anzahl von Eingangs- und Ausgangspuffern, eine Anzahl von programmierbaren Schalt-Matrizen, und eine Anzahl von Logikblöcken, die zwischen den programmierbaren Schalt-Matrizen angeschlossen sind, dadurch gekennzeichnet, daß jeder Logikblock konfigurierbar bzw. gestaltbar ist, um als ein benutzerbeschreibbarer Speicher mit wahlfreiem Zugriff zu arbeiten oder um eine Logikfunktion bereitzustellen.
  • Gemäß einem dritten Aspekt der vorliegenden Erfindung wird ein Verfahren zur Bestimmung bzw. Festlegung der Wirkungsweise einer programmierbaren Logikvorrichtung bereitgestellt, das folgende Schritte aufweist: eine Vorrichtung wird bereitgestellt, die eine Anordnung von Logikblöcken aufweist, die durch programmierbare Schaltmatrizen verbunden sind, gekennzeichnet durch: jeder Logikblock wird unabhängig konfiguriert bzw. gestaltet, um als ein benutzerbeschreibbarer Speicher mit wahlfreiem Zugriff zu arbeiten oder um eine Logikfunktion durchzuführen.
  • Bei einer bevorzugten Ausführungsform wird eine Pufferbatterie bereitgestellt und eine Einrichtung, um den Leistungsverlust an der Vorrichtung festzustellen, wobei die Pufferbatterie so angeschlossen ist, daß den Logikblöcken und den programmierbaren Schaltmatrizen, nicht aber den Eingangs- und Ausgangspuffern, Leistung zur Verfügung gestellt wird, jedesmal wenn ein Leistungsverlust festgestellt wird.
  • Deshalb wird ein Standardlogikblock oder Makrozelle zur Verwendung bei bzw. auf einer programmierbaren Logikvorrichtung offenbart. Die Makrozelle verwendet einen RAM-Speicher, um Logikfunktionen durchzuführen, und beinhaltet weiter eine Schaltung bzw. Schaltungsanordnung, die das Schreiben von Daten zu dem RAM-Speicher während des Benutzens erlaubt. Jeder Logikblock kann während der Programmierzeit konfiguriert werden, um entweder ein Benutzer-RAM-Speicher zu sein, der es dem Benutzer erlaubt, Daten zu einem derartigen Speicher während des Benutzens zu schreiben, oder er kann konfiguriert werden, um Logikfunktionen durchzuführen. Der Inhalt der konfigurierten Makrozellen kann nicht geändert werden, wenn sie Logikfunktionen bereitstellen, außer die Vorrichtung wird reprogrammiert.
  • Die für charakteristisch gehaltenen neuen Merkmale der Erfindung sind in den beigefügten Ansprüchen dargelegt. Jedoch die Erfindung selbst sowie eine bevorzugte Verwendungsweise und weitere Aufgaben bzw. Ziele und Vorteile davon werden am besten unter Bezugnahme auf die folgende, detaillierte Beschreibung einer erläuternden bzw. veranschaulichenden Ausführung verständlich, wenn diese in Verbindung mit den begleitenden Zeichnungen gelesen wird, in denen:
  • Figur 1 ein Blockdiagramm einer programmierbaren Logikvorrichtung, wie sie dem Stand der Technik entnehmbar ist, darstellt;
  • Figur 2 ein Blockdiagramm eines Abschnittes einer Makrozelle gemäß der vorliegenden Erfindung ist; und
  • Figur 3 ein Blockdiagramm einer bevorzugten Makrozelle gemäß der Erfindung ist.
  • Bezugnehmend auf die Figur 2 hat ein Dekoder 40 n Eingänge 42. 2n Zeilensignalleitungen 44 werden von dem Dekoder 40 ausgegeben und sind mit einem SRAM-Speicher 46 verbunden. Der SRAM-Speicher 46 ist vorzugsweise ein Einzelspalten- SRAM-Speicher, der zwei 2n Positionen aufweist, die individuell durch Zeilenleitungen 44 des Dekoders 40 adressiert werden. Der Wert bzw. die Größe des Einganges des gewählten SRAM-Speichers 46 ist mit einer Spaltensignalleitung 48 verbunden, die ein Eingangssignal zu dem Abtast- bzw. Leseverstärker 50 liefert. Der Ausgang des Abtast- bzw. Leseverstärkers 50 liefert ein Ausgangssignal DATEN AUS.
  • Ein Schreibtreiber 52 ist ebenso an die Spaltenleitung 48 angeschlossen. Der Schreibtreiber 52 besteht aus P-Kanaltransistoren 54 und 56 und N-Kanaltransistoren 58 und 60. Die Transistoren 56 und 58 sind mit der Spaltensignalleitung 48 verbunden und werden durch ein Signal DATEN EIN angesteuert bzw. getrieben. DATEN EIN beinhaltet einen Wert, der in eine Stelle des SRAM-Speichers 46 geschrieben wird.
  • Signale WE (SCHREIBFREIGABE) und WE-Strich werden verwendet, um Daten in den SRAM-Speicher 46 zu schreiben. Wenn WE auf logisch hoch ist, ist WE-Strich logisch niedrig, was die Transistoren 54 und 60 anschaltet. In diesem Fall wird die Spaltenleitung 48 zu einem Wert getrieben bzw. gesteuert, der durch DATEN EIN bestimmt ist. Falls DATEN EIN auf logisch hoch ist, wird die Spaltenleitung 48 auf Erde gelegt und falls DATEN EIN auf logisch niedrig ist, wird die Spaltenleitung 48 auf Vcc gelegt. Der Wert, der auf der Spaltenleitung 48 liegt, wird in diejenige Position des SRAM-Speichers 46 gespeichert, welche auch immer gerade durch die Signale adressiert wurde, die zum Ansteuern des Dekoders 40 verwendet werden.
  • Figur 3 zeigt einen Aufbau einer bevorzugten Makrozelle 68, die die Schaltung bzw. Schaltungsanordnung, die in Verbindung mit der Figur 2 beschrieben ist, benutzt. Die Makrozelle 68 beinhaltet vier Dekoder 70 und vier zugehörige SRAM-Speicher 72. Jeder der Dekoder 70 weist vier Eingangssignalleitungen auf und jeder ist dazu in der Lage, 16 Bitpositionen zu adressieren. Die entsprechenden SRAM-Speicher 72 weisen deshalb 16 Bitspeicherpositionen bzw. Speicherstellen auf. Getrennte Steuerleitungen werden bereitgestellt, um jeden Dekoder zu adressieren, so daß insgesamt 16 Dekodersteuerleitungen 74 den Makrozellen 68 bereitgestellt werden.
  • Jeder SRAM-Speicher steuert eine Spaltensignalleitung 76 an, die an einen Schaltungsblock 78 angeschlossen ist, der einen Abtast- bzw. Leseverstärker und einen Schreibtreiber, wie in Verbindung mit der Figur 2 beschrieben, beinhaltet. Abtast- bzw. Leseverstärker-Ausgangsleitungen 80 sind mit kombinatorische und sequentiellen Logikblöcken 82 verbunden, die wiederum Makrozellen-Ausgangsleitungen 84 ansteuern. Logikblöcke 82 beinhalten vorzugsweise Flip-Flops und kombinatorische Logik, um verschiedene Ausgangsfunktionen der Werte auf den Ausgangsleitungen 80 bereitzustellen.
  • Es werden vier Ausgangsdatenleitungen 86 jeder Makrozelle 68 bereitgestellt, wobei eine Leitung an den Schreibtreiber in jedem Schaltungsblock 78 angeschlossen ist. Steuersignalleitungen 88 werden der Makrozelle 68 bereitgestellt und dienen abhängig davon, wie die Makrozelle 68 konfiguriert ist, einem doppelten Zweck. Ein Schalter 90 wird verwendet, um die Signalleitungen 88 zu Schreib-Freigabeleitungen 92 oder kombinatorischen und sequentiellen Logikkontrollsignalleitungen 94 zu führen.
  • Die Figur 3 zeigt eine Ansicht der Makrozelle 68, gesehen durch einen Benutzer. Nicht gezeigt sind die Konfigurationsbits und ihre zugehörigen Kontrolleitungen, die zur tatsächlichen Konfiguration der Makrozelle 68 verwendet werden. Zum Beispiel sind Konfigurationsbits innerhalb des kombinatorischen und sequentiellen Logikblöcke 82 enthalten, die Multiplexer treiben, um zu selektieren, welche der verfügbaren Logikfunktionen durchgeführt werden sollen. Diese Konfigurationsbits werden während der Zeit der Konfiguration gesetzt und können während des normalen Gebrauchs nicht verändert werden. Der Schalter 90 wird während der Zeit der Konfiguration in ähnlicher Weise festgelegt. Falls die Makrozelle 68 verwendet werden soll, um Logikfunktionen bereitzustellen, werden Steuersignale auf Leitungen 88 zu den kombinatorischen und sequentiellen Logiksteuer-Signalleitungen 94 geschaltet. Falls die Makrozelle 68 konfiguriert ist, um als benutzerbeschreibbarer SRAM-Speicher zu arbeiten, werden vier der Signale 88 zu Schreibfreigabe-Signalleitungen 92 geschaltet. Wenn die Makrozelle 68 als benutzerbeschreibbarer SRAM-Speicher arbeitet, werden die kombinatorischen und sequentiellen Logikblöcke 82 konfiguriert, um einfach eine direkte Verbindung zwischen den Leseverstärker- Ausgangsleitungen 80 und den Makrozellen-Ausgangsleitungen 84 bereitzustellen. Die Konfiguration verschiedener Elemente innerhalb der Makrozelle 68 wird gesteuert, indem Konfigurationsbits innerhalb der Makrozelle 68 gesetzt werden. Diese Konfigurationsbits werden, wie in der Fachwelt bekannt, geschrieben, um einen Satz von Adressen und Steuerleitungen zu verwenden, der von demjenigen, der durch den Benutzer während des normalen Betriebs gesehen wird, getrennt ist, und dieser getrennte Satz von Signalleitungen ist nicht in der Figur 3 gezeigt.
  • Wenn eine Makrozelle 68 konfiguriert wird, um als ein Logikblock zu arbeiten, werden DATEN-EIN-Signalleitungen 86 nicht beachtet und die Schreibtreiber in Blöcken 78 werden gesperrt bzw. abgeschaltet. Steuersignalleitungen 88 werden geschaltet, um mit Signalleitungen 94 verbunden zu werden, und werden verwendet, um den Zustand der kombinatorischen und sequentiellen Logikblöcke 82 zu steuern. Die Signale auf den Leitungen 92 werden z.B. verwendet, um Flip-Flops zu takten, Flip-Flops zu setzen oder rückzusetzen, Ausgangs- Freigabesignale für Signalleitungen 84 bereitzustellen und um ähnliche Funktionen durchzuführen. In dieser Konfiguration arbeiten Makrozellen 68 ungefähr wie jene gemäß dem Stand der Technik.
  • Wenn die Makrozelle 68 konfiguriert wird, um als benutzerbeschreibbarer RAM-Speicher zu arbeiten, wird der Schalter 90 konfiguriert, um vier ausgewählte Steuersignale 88 zu führen, um Freigabesignalleitungen 92 zu schreiben. Vier zusätzliche Steuersignale 88 können verwendet werden, um Ausgangs-Freigabesignale auf den Leitungen 94 bereitzustellen. Die kombinatorischen und sequentiellen Logikblöcke 82 werden konfiguriert, um eine direkte Verbindung zwischen Signalleitungen 80 und Signalleitungen 84 bereitzustellen. Die Schreibtreiber innerhalb der Logikblöcke 78 werden freigegeben und Dateneingangssignalleitungen 86 liefern Daten dahin.
  • Wenn eine Makrozelle 68 als benutzerbeschreibbarer RAM- Speicher verwendet wird, werden die Dekodersteuersignalleitungen 74 als Adressenleitungen interpretiert bzw. ausgelegt. Falls gewünscht, kann jeder der Dekoder 70 mit identischen Adresseneingängen vorgesehen werden, was die Makrozelle 68 als 16x4-RAM-Speicher konfiguriert. Bei geeigneter Auswahl der Steuersignale 74 kann eine Makrozelle 68 ebenso als ein 32x2-RAM-Speicher oder als ein 64x1-RAM-Speicher konfiguriert werden. Um die Makrozelle 68 als einen 64x1- RAM-Speicher zu konfigurieren, werden die vier Signalleitungen 84 mit einem gemeinsamen Punkt in einer programmierbaren Schaltmatrix außerhalb der Makrozelle 68 verbunden, wobei nur eine zur selben Zeit durch die Ausgangs-Freigabesignale, die auf den Signalleitungen 94 verfügbar sind, freigegeben wird. Da die Form bzw. Gestalt des RAM-Speichers durch die Dekoder-Steuerleitungen 74 bestimmt wird, wird die Gestalt bzw. Form des RAM-Speichers tatsächlich in der programmierbaren Schaltmatrix konfiguriert, die die Eingangssignalleitungen zu der Makrozelle 68 liefert. Verschiedene Makrozellen 68 können zusammen konfiguriert werden, um so einen benutzerbeschreibbaren RAM-Speicher jeder gewünschten Tiefe und Breite bereitzustellen.
  • Die Verwendung von Makrozellen 68, die konfiguriert werden können, um Logikfunktionen bereitzustellen oder um als benutzerbeschreibbare RAM-Speicher zu arbeiten, erlaubt, wie dies von Fachleuten begrüßt werden wird, eine zunehmende Flexibilität bei der Konfigurierung einer programmierbaren Logikvorrichtung. Falls nur ein zweckbestimmter RAM-Speicher als benutzerbeschreibbarer RAM-Speicher bereitgestellt wird, ist es sicher, daß in vielen Fällen das Verhältnis von verfügbaren benutzerbeschreibbaren RAM-Speichern und RAM-Speicher, die Logikfunktionen bereitstellen, nicht richtig sein wird. Mit einer Makrozelle 68, die konfiguriert werden kann, um eine der beiden der Funktionen bereitzustellen, kann ein Benutzer die programmierbare Logikvorrichtung in der effizientesten Art und Weise konfigurieren, um eine vollständige Verwendung aller Elemente auf dem Chip zu ermöglichen. Dies ermöglicht es, eine oder eine kleine Anzahl von Standardteilen für eine weite Vielfalt von Anwendungen bzw. Applikationen zu verwenden.
  • Wie in der korrespondierenden, parallel anhängigen europäischen Patentanmeldung Nr. 90307158.7 beschrieben, kann ein Batteriepuffersystem verwendet werden, um den Inhalt aller SRAM-Speicher aufrechtzuerhalten, wenn Leistung an die programmierbare Logikvorrichtung verlorengeht. Konfigurationsdaten werden während des Leistungsverlustes aufrechterhalten, so daß die Vorrichtung nicht jedesmal neu konfiguriert werden muß, wenn sie hochgefahren bzw. eingeschaltet wird. Da dieselben Makrozellen 68 für benutzerbeschreibbare Speicher und für Logikfunktionen verwendet werden, wird der benutzerbeschreibbare Speicher zusätzlich ebenso durch die Pufferversorgung gesichert.
  • Obwohl die Erfindung insbesondere unter Bezugnahme auf eine bevorzugte Ausführung gezeigt und beschrieben wurde, ist es selbstverständlich für die Fachleute, daß verschiedene bzw. viele Änderungen in der Form bzw. Gestalt und im Detail gemacht werden können, ohne dabei von der Erfindung abzuweichen.
  • Die vorliegenden Erfindung enthält einen Gegenstand, der mit der parallel anhängigen europäischen Patentanmeldung Nr. 90307158.7 gemeinsam ist, die hiermit an demselben Tag eingereicht wird.

Claims (17)

1. Programmierbare Logikvorrichtung mit einem Schaltungsblock, wobei der Schaltungsblock folgendes aufweist:
einen Dekoder (40; 70);
einen Speicher (46; 72) mit wahlfreiem Zugriff mit einer Anzahl von Bits, die durch den Dekoder (40) adressiert werden;
wenigstens einen Schreib-Treiber (52; 78) und wenigstens einen Abtast- bzw. Leseverstärker (50; 78), der bzw. die mit dem Speicher mit wahlfreiem Zugriff verbunden ist bzw. sind; und
eine Einrichtung (82), um den Schaltungsblock zu konfigurieren bzw. zu gestalten, um als ein benutzerbeschreibbarer Speicher zu wirken oder um eine Logikfunktion bereitzustellen.
2. Programmierbare Logikvorrichtung gemäß Anspruch 1, in der der oder jeder Schreib-Treiber (52; 78) unwirksam gemacht bzw. gesperrt ist, wenn der Schreibblock konfiguriert bzw. gestaltet ist, um eine Logikfunktion bereitzustellen.
3. Programmierbare Logikvorrichtung gemäß Anspruch 1 oder Anspruch 2, in der der Speicher (46; 72) mit wahlfreiem Zugriff eine Anzahl von Ausgängen bzw. Ausgangswerten liefert, von denen jeder einer Spalte des Speichers entspricht, und bei welcher der wenigstens eine Abtast- bzw. Leseverstärker (52; 78) einen separaten Abtast- bzw. Leseverstärker (52; 78) für jede Speicherspalte aufweist.
4. Programmierbare Logikvorrichtung gemäß Anspruch 3, in der jede Spalte des Speichers (72) mit wahlfreiem Zugriff einen separaten Dekoder (70) zur Adressierung der Bits der Spalte aufweist.
5. Programmierbare Logikvorrichtung gemäß Anspruch 4, in der jede Spalte des Speichers (72) mit wahlfreiem Zugriff (72) weiter einen unabhängig adressierbaren Schreib-Treiber (78) aufweist, der daran angeschlossen ist.
6. Programmierbare Logikvorrichtung gemäß einem der Ansprüche 1 bis 3, die weiter folgendes aufweist:
eine kombinatorische und sequentielle Logik (82), die zwischen den Abtast- bzw. Leseverstärker (78) und die Ausgänge (84) des Schaltungsblocks gekoppelt ist.
7. Programmierbare Logikvorrichtung gemäß dem Anspruch 6, in der die kombinatorische und sequentielle Logik (82) Flip-Flops beinhaltet.
8. Programmierbare Logikvorrichtung gemäß Anspruch 5 oder Anspruch 6, die weiter folgendes aufweist:
Kontrollsignaleingänge (88) zu dem Schaltungsblock, bei welcher die Steuersignaleingänge Steuer- und Schaltfunktionen in der kombinatorischen und sequentiellen Logik (82) durchführen, wenn der Schaltungsblock konfiguriert bzw. gestaltet ist, um eine Logikfunktion bereitzustellen, und in der die Steuersignaleingänge (88) Schreib-Freigabesignale für die Schreib-Treiber (78) zur Verfügung stellen, wenn der Schaltungsblock konfiguriert bzw. gestaltet ist, um als benutzerbeschreibbarer Speicher zu arbeiten.
9. Programmierbare Logikvorrichtung, die folgendes aufweist:
eine Anzahl von Eingangs- und Ausgangspuffern (24);
eine Anzahl von programmierbaren Schalt-Matrizen (16-21); und
eine Anzahl von Logikblöcken (12-15), die zwischen den programmierbaren Schalt-Matrizen angeschlossen sind, dadurch gekennzeichnet, daß jeder Logikblock konfigurierbar bzw. gestaltbar ist, um als ein benutzerbeschreibbarer Speicher mit wahlfreiem Zugriff zu arbeiten oder um eine Logikfunktion bereitzustellen.
10. Vorrichtung nach Anspruch 9, in der jeder der Logikblöcke folgendes aufweist:
wenigstens einen Dekoder (40; 70);
einen Speicher (46; 72) mit wahlfreiem Zugriff, der in einer Anzahl von Speicherspalten organisiert ist und durch den Dekoder adressiert wird;
ein jeweiliger Verstarker (50; 78), der an jede Spalte des Speichers mit wahlfreiem Zugriff angeschlossen ist;
ein jeweiliger Schreib-Treiber (52; 78), der an jede Speicherspalte angeschlossen ist; und
eine Einrichtung (82) zur Konfigurierung bzw. Gestaltung des Logikblocks, um als ein benutzerbeschreibbarer Speicher zu wirken oder um eine Logikfunktion bereitzustellen.
11. Vorrichtung nach Anspruch 10, in der die Schreib-Treiber (52; 78) innerhalb eines Logikblocks unwirksam gemacht bzw. gesperrt sind, wenn jener Block konfiguriert bzw. gestaltet ist, um eine Logikfunktion bereitzustellen.
12. Vorrichtung nach Anspruch 10, in der jede Speicherspalte (72) innerhalb eines Logikblocks durch einen separaten Dekoder (70) adressiert wird.
13. Vorrichtung nach Anspruch 12, in der jeder Logikblock vier Dekoder (70) und vier Speicherspalten (72) beinhaltet.
14. Vorrichtung nach einem der Ansprüche 10 bis 13, in der jeder Logikblock weiter kombinatorische und sequentielle Schaltungen bzw. Schaltungsanordnungen (82) zwischen dem Abtast- bzw. Leseverstärkern (78) und Ausgängen des Logikblocks (84) aufweist.
15. Vorrichtung nach Anspruch 10, in der die Logikblöcke und die programmierbaren Schalt-Matrizen zwischengeschaltet sind, um eine rechteckige Anordnung auszubilden, wobei alle Eingänge jedes Logikblocks an eine programmierbare Schalt-Matrix angeschlossen sind.
16. Vorrichtung nach einem der Ansprüche 9 bis 15, die weiter folgendes aufweist:
eine Pufferbatterie bzw. Stützbatterie; und
eine Einrichtung zum Feststellen eines Verlustes an Leistung zu der bzw. an der Vorrichtung, in der die Pufferbatterie bzw. Stützbatterie so angeschlossen ist, daß den Logikblöcken und den programmmierbaren Schalt-Matrizen, nicht aber den Eingangs- und Ausgangspuffern, Leistung zur Verfügung gestellt wird, jedesmal wenn ein Leistungsverlust festgestellt wird.
17. Verfahren zur Bestimmung bzw. Festlegung der Wirkungsweise eines programmierbaren Logikvorrichtung, das folgende Schritte aufweist:
eine Vorrichtung wird bereitgestellt, die eine Anordnung von Logikblöcken aufweist, die durch programmierbare Schalt-Matrizen verbunden sind;
gekennzeichnet durch:
jeder Logikblock wird unabhängig konfiguriert bzw. gestaltet, um als ein benutzerbeschreibbarer Speicher mit wahlfreiem Zugriff zu arbeiten oder um eine Logikfunktion durchzuführen.
DE69019654T 1989-09-29 1990-06-29 Logischer Block für programmierbare logische Einrichtungen. Expired - Fee Related DE69019654T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/414,695 US4975601A (en) 1989-09-29 1989-09-29 User-writable random access memory logic block for programmable logic devices

Publications (2)

Publication Number Publication Date
DE69019654D1 DE69019654D1 (de) 1995-06-29
DE69019654T2 true DE69019654T2 (de) 1995-12-07

Family

ID=23642544

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69019654T Expired - Fee Related DE69019654T2 (de) 1989-09-29 1990-06-29 Logischer Block für programmierbare logische Einrichtungen.

Country Status (5)

Country Link
US (1) US4975601A (de)
EP (1) EP0420389B1 (de)
JP (1) JP3210660B2 (de)
KR (1) KR0171209B1 (de)
DE (1) DE69019654T2 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5343406A (en) * 1989-07-28 1994-08-30 Xilinx, Inc. Distributed memory architecture for a configurable logic array and method for using distributed memory
US5128559A (en) * 1989-09-29 1992-07-07 Sgs-Thomson Microelectronics, Inc. Logic block for programmable logic devices
JP2544020B2 (ja) * 1990-11-19 1996-10-16 川崎製鉄株式会社 プログラマブル論理素子
US5255221A (en) * 1991-04-02 1993-10-19 At&T Bell Laboratories Fully configurable versatile field programmable function element
US5237218A (en) * 1991-05-03 1993-08-17 Lattice Semiconductor Corporation Structure and method for multiplexing pins for in-system programming
US20020130681A1 (en) * 1991-09-03 2002-09-19 Cliff Richard G. Programmable logic array integrated circuits
US5550782A (en) * 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
US6759870B2 (en) 1991-09-03 2004-07-06 Altera Corporation Programmable logic array integrated circuits
US5250859A (en) * 1991-09-27 1993-10-05 Kaplinsky Cecil H Low power multifunction logic array
US5319261A (en) * 1992-07-30 1994-06-07 Aptix Corporation Reprogrammable interconnect architecture using fewer storage cells than switches
GB9303084D0 (en) * 1993-02-16 1993-03-31 Inmos Ltd Programmable logic circuit
US5815024A (en) * 1993-06-11 1998-09-29 Altera Corporation Look-up table using multi-level decode
US5438295A (en) * 1993-06-11 1995-08-01 Altera Corporation Look-up table using multi-level decode
USRE38651E1 (en) 1994-05-18 2004-11-09 Altera Corporation Variable depth and width memory device
US5532957A (en) * 1995-01-31 1996-07-02 Texas Instruments Incorporated Field reconfigurable logic/memory array
US5757207A (en) * 1995-03-22 1998-05-26 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
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
US5768562A (en) * 1995-09-26 1998-06-16 Altera Corporation Methods for implementing logic in auxiliary components associated with programmable logic array devices
US6107822A (en) 1996-04-09 2000-08-22 Altera Corporation Logic element for a programmable logic integrated circuit
US5977791A (en) * 1996-04-15 1999-11-02 Altera Corporation Embedded memory block with FIFO mode for programmable logic device
US5715197A (en) 1996-07-29 1998-02-03 Xilinx, Inc. Multiport RAM with programmable data port configuration
US6014038A (en) * 1997-03-21 2000-01-11 Lightspeed Semiconductor Corporation Function block architecture for gate array
US6020759A (en) 1997-03-21 2000-02-01 Altera Corporation Programmable logic array device with random access memory configurable as product terms
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
US6011744A (en) * 1997-07-16 2000-01-04 Altera Corporation Programmable logic device with multi-port memory
US6052327A (en) * 1997-10-14 2000-04-18 Altera Corporation Dual-port programmable logic device variable depth and width memory array
US6288970B1 (en) 1997-10-16 2001-09-11 Altera Corporation Programmable logic device memory array circuit having combinable single-port memory arrays
US6191998B1 (en) 1997-10-16 2001-02-20 Altera Corporation Programmable logic device memory array circuit having combinable single-port memory arrays
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
US6144573A (en) 1998-06-26 2000-11-07 Altera Corporation Programmable logic devices with improved content addressable memory capabilities
US6453382B1 (en) 1998-11-05 2002-09-17 Altera Corporation Content addressable memory encoded outputs
US6262933B1 (en) 1999-01-29 2001-07-17 Altera Corporation High speed programmable address decoder
JP3616518B2 (ja) * 1999-02-10 2005-02-02 日本電気株式会社 プログラマブルデバイス
GB2351824B (en) 1999-07-02 2004-03-31 Altera Corp Embedded memory blocks for programmable logic
US6625794B1 (en) * 2000-11-06 2003-09-23 Xilinx, Inc. Method and system for safe device reconfiguration
US6720796B1 (en) 2001-05-06 2004-04-13 Altera Corporation Multiple size memories in a programmable logic device
US6696856B1 (en) 2001-10-30 2004-02-24 Lightspeed Semiconductor Corporation Function block architecture with variable drive strengths
US7111110B1 (en) * 2002-12-10 2006-09-19 Altera Corporation Versatile RAM for programmable logic device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4293783A (en) * 1978-11-01 1981-10-06 Massachusetts Institute Of Technology Storage/logic array
US4524430A (en) * 1983-01-11 1985-06-18 Burroughs Corporation Dynamic data re-programmable PLA
US4791602A (en) * 1983-04-14 1988-12-13 Control Data Corporation Soft programmable logic array
DE3585756D1 (de) * 1984-07-02 1992-05-07 Fujitsu Ltd Halbleiterschaltungsanordnung in hauptscheibentechnik.
US4754160A (en) * 1984-08-23 1988-06-28 Intersil, Inc. Power supply switching circuit
US4642487A (en) * 1984-09-26 1987-02-10 Xilinx, Inc. Special interconnect for configurable logic array
JPH073838B2 (ja) * 1985-02-28 1995-01-18 株式会社東芝 半導体集積回路
JPS62231495A (ja) * 1986-03-31 1987-10-12 Toshiba Corp 半導体記憶装置
JPS62293598A (ja) * 1986-06-12 1987-12-21 Toshiba Corp 半導体記憶装置
FR2606199B1 (fr) * 1986-11-04 1988-12-09 Eurotechnique Sa Circuit integre du type circuit logique comportant une memoire non volatile programmable electriquement
EP0272869B1 (de) * 1986-12-19 1993-07-14 Fujitsu Limited Halbleiterspeicher mit Doppelzugriffseinrichtung zur Realisierung eines Lesebetriebs mit hoher Geschwindigkeit
JPH088304B2 (ja) * 1987-08-19 1996-01-29 富士通株式会社 半導体集積回路装置及びその設計方法
JPS6478023A (en) * 1987-09-18 1989-03-23 Fujitsu Ltd Programmable logic device
JP2541248B2 (ja) * 1987-11-20 1996-10-09 三菱電機株式会社 プログラマブル・ロジック・アレイ
US4847612A (en) * 1988-01-13 1989-07-11 Plug Logic, Inc. Programmable logic device

Also Published As

Publication number Publication date
EP0420389B1 (de) 1995-05-24
JP3210660B2 (ja) 2001-09-17
KR910007130A (ko) 1991-04-30
US4975601A (en) 1990-12-04
KR0171209B1 (ko) 1999-02-01
JPH03166625A (ja) 1991-07-18
EP0420389A1 (de) 1991-04-03
DE69019654D1 (de) 1995-06-29

Similar Documents

Publication Publication Date Title
DE69019654T2 (de) Logischer Block für programmierbare logische Einrichtungen.
DE69031861T2 (de) Programmierbare logische Schaltung mit Multifunktionseingangspin
DE68923541T2 (de) Programmierbare Logikeinrichtung mit einer Vielzahl von programmierbaren Logikarrays, die sich in mosaikförmiger Anordnung zusammen mit einer Vielzahl von vermischt angeordneten Interface-Blöcken befinden.
DE69810995T2 (de) Rekonfigurierbarer Dual-Modus-Speicher in programmierbaren logischen Einrichtungen
DE4417575C2 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE69028386T2 (de) Auf statischem RAM basierende Zelle für ein programmierbares logisches Feld
DE3884037T2 (de) Programmierungsschaltung für Eingabe-/Ausgabezelle eines programmierbaren Logikarrays.
US5128559A (en) Logic block for programmable logic devices
DE69834011T2 (de) Statische Direktzugriffspeicherschaltungen
DE69031525T2 (de) Konfigurierbare Logikanordnung und zugehöriges Verfahren
DE102005023118B3 (de) Schaltungsanordnung zum Zuführen von Konfigurationsdaten in FPGA-Einrichtungen
DE68918413T2 (de) Integrierte Halbleiterschaltung.
DE69822796T2 (de) Nutzerprogrammierbarer prozessor
US5099150A (en) Circuit block for programmable logic devices, configurable as a user-writable memory or a logic circuit
DE69031648T2 (de) Programmierbare logische Vorrichtung
DE19510902A1 (de) Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern
DE102004045527B4 (de) Konfigurierbare Logikschaltungsanordnung
DE4204119A1 (de) Dual-port-speicher
DE69020384T2 (de) Integrierte Halbleiterspeicherschaltung mit Möglichkeit zum Maskieren des Schreibens im Speicher.
DE68920908T2 (de) Programmierbare Logik-Vorrichtung.
DE69030914T2 (de) Halbleiterspeicheranordnung
DE69029634T2 (de) Prüflatchschaltung
DE69029450T2 (de) PLD mit einem Konfigurationsspeicher mit Aushilfsstromversorgung, und Verfahren für die Stromversorgung eines PLDs mit Konfigurationsspeicher
DE3884062T2 (de) Programmierbare logische Einrichtung.
DE60129269T2 (de) Speicherschaltung für eine programmierbare logische integrierte Schaltungsanordnung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee