DE69121122T2 - Integrierter Schaltkreis - Google Patents

Integrierter Schaltkreis

Info

Publication number
DE69121122T2
DE69121122T2 DE69121122T DE69121122T DE69121122T2 DE 69121122 T2 DE69121122 T2 DE 69121122T2 DE 69121122 T DE69121122 T DE 69121122T DE 69121122 T DE69121122 T DE 69121122T DE 69121122 T2 DE69121122 T2 DE 69121122T2
Authority
DE
Germany
Prior art keywords
programmable
logic
input
output
macrocell
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
DE69121122T
Other languages
English (en)
Other versions
DE69121122D1 (de
Inventor
Om P Agrawal
George H Landers
Kerry A Llgenstein
Jerry D Moench
Nicholas A Schmitz
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.)
Vantis Corp
Original Assignee
Advanced Micro Devices 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23949554&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69121122(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Application granted granted Critical
Publication of DE69121122D1 publication Critical patent/DE69121122D1/de
Publication of DE69121122T2 publication Critical patent/DE69121122T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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
    • H03K19/17708Logic 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 using an AND matrix followed by an OR matrix, i.e. programmable logic arrays
    • 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/17736Structural details of routing 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/17736Structural details of routing resources
    • H03K19/1774Structural details of routing resources for global signals, e.g. clock, reset
    • 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/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Description

  • Die Erfindung betrifft programmierbare Logikvorrichtungen mit integrierter Schaltung, die in untereinander in Beziehung stehenden Gruppen oder Zellen logischer Bauteile angeordnet und durch eine benutzerprogrammierbare Schaltmatrix untereinander verbindbar sind.
  • Beschreibung des Standes der Technik
  • Es stehen mehrere einen eine alternative Implementierung logischer Funktionen gestattenden programmierbaren Chip enthaltende integrierte Schaltungsbausteine zur Verfügung. Diese integrierten Schaltungsbausteine enthalten eine Vielzahl von Pins, eine Architektur zum Anschließen der Pins mit den Eingangs- und Ausgangsleitungen der Schaltungen auf dem programmierbaren Chip, und eine andere Architektur zum Anschließen der Pins und Hilfsschaltungen auf dem chip, die zum Konfigurieren des programmierbaren Chips zu einer vom Anwender gewählten Schaltung verwendet werden. Auf diese Weise ermöglichen es diese anwenderprogrammierbaren Logikvorrichtungen dem Benutzer, die Funktionen auf einem Chip mit integrierter Schaltung mit leicht verfügbarer Ausrüstung zu programmieren oder modifizieren, um die von dem Chip durchgeführte Logikfunktion zu der von dem Benutzer gewünschten zu konfigurieren. Die programmierbaren Logik-Arrays (PLAs), programmierbaren Logikvorrichtungen (PLDs) und programmierbaren Gatter-Arrays des Standes der Technik legen jedoch dem Benutzer im Gegenzug zu der Anwenderprogrammierbarkeit Beschränkungen auf.
  • In programmierbaren Logik-Arrays, die häufig bei Randomlogiknetzwerken, beim Zuführen von Daten, Codewandlern, Befehlsdekodierern, Zustandsmaschinen und anderen Funktionen verwendet werden, ist ein Array aus logischen UND-Gattern und logischen ODER-Gattern vorgesehen, die für eine anwenderspezifizierte Funktion programmiert werden können. Jede Ausgangsfunktion (Ausgangssignal) eines programmierbaren Logik-Arrays ist die Summe (ODER-Gatter-Ausgangssignal) gewählter Produkte (UND-Gatter-Ausgangssignale), und jedes Produkt (UND-Gatter-Ausgangssignal) ist das Produkt gewählter Eingangssignale. Die Programmierung erfolgt durch Vorsehen eines programmierbaren Arrays oder einer programmierbaren Matrix zwischen den Schaltungseingangsleitungen und den UND-Gatter-Eingangsleitungen bzw. zwischen den Ausgangsleitungen der UND-Gatter und den Eingangsleitungen der ODER-Gatter. Das PLA wird durch Durchbrennen oder Nichtdurchbrennen von die Leiter der Arrays untereinander verbindenden Schmelzverbindungen programmiert.
  • In einem anderen bekannten Array sind die Ausgangsleitungen aus Untergruppen der UND-Gatter des PLA nichtprogrammierbar mit den Eingangsleitungen eines ODER-Gatters verbunden. Eine derartige programmierbare Array-Logikvorrichtung (PAL) ist in US-A-4 124 899 offenbart. Die PAL-Gestaltung läßt eine Verringerung der Größe des Chips mit integrierter Schaltung zu, wodurch eine Steigerung der Produktionsmengen und eine Senkung der Produktionskosten gegenüber einem herkömmlichen PLA möglich ist.
  • Um die Flexibilität einer PAL-Vorrichtung oder einer PLA-Vorrichtung weiter zu erhöhen, wird jedes Ausgangssignal aus dem ODER- Gatter-Array von einer programmierbaren Einrichtung verarbeitet, die den Benutzer entweder ein registriertes Ausgangssignal oder ein kombinatorisches Ausgangssignal wählen läßt. Ferner kann das Ausgangssignal entweder als aktives High- oder aktives Low-Signal konfiguriert werden. Ein Beispiel einer Ausgangsmakrozelle 10, die im Stand der Technik an einer Ausgangsleitung 11 entweder einer PLA- oder einer PAL-Schaltung verwendet wurde, ist in Figur 1 gezeigt. Die Ausgangsleitung 11 von einer programmierbaren Logikschaltung ist mit einem D-Eingangsanschluß eines Registers 12 sowie mit einer ersten Eingangsleitung 13 eines programmierbaren Multiplexers 19 verbunden. Der Q-Ausgangsanschluß des Registers 12 treibt eine zweite Eingangsleitung 14 des Multiplexers 19. Das Ausgangssignal des Multiplexers 19, das durch den Zustand der Sicherung 20 auf Leitung 21 bestimmt ist, treibt einen ersten Eingangsanschluß eines Exklusiv-ODER-Gatters 25. Die Stromversorgungsspannung wird durch einen Widerstand 31 der Eingangswählleitung 21 des Multiplexers 19 und einem ersten Ende der Sicherung 20 zugeführt. Das zweite Ende der Sicherung 20 ist geerdet. Dementsprechend wird an die Eingangswählleitung 21 ein Logisch-Null- Signal angelegt, wenn die Sicherung 20 intakt belassen wird. Wird die Sicherung 20 jedoch durchgebrannt, ist das Signal auf der Eingangswählleitung 21 eine logische Eins. Daher koppelt der Multiplexer 19 entweder das Signal auf Leitung 13 oder das Signal auf Leitung 14 mit der Ausgangsleitung 26.
  • Das Ausgangssignal von dem Exklusiv-ODER-Gatter 25 wird durch eine Sicherung 23 bestimmt. Wird die Sicherung 23 intakt belassen, wird an den zweiten Eingangsanschluß des Exklusiv-ODER-Gatters 25 eine logische Null angelegt und das Signal auf Leitung 26 wird nicht von dem Gatter 25 invertiert. Wird dagegen die Sicherung 23 durchgebrannt, wird dem zweiten Eingangsanschluß des Exklusiv-ODER- Gatters 25 eine logische Eins zugeführt und das Exklusiv-ODER- Gatter 25 invertiert das Signal auf Leitung 26. Leitung 27 wird verwendet, um das Exklusiv-ODER-Gatter 25 in den Dreizustand zu versetzen.
  • Die Ausgangsmakrozelle 10 weist ferner eine Einrichtung zum Liefern eines Rückkopplungssignals zu einer Logikschaltung auf Leitung 17 des programmierbaren Multiplexers 18 auf. Eine erste Eingangsleitung 22 des programmierbaren Multiplexers 22 ist mit der Ausgangsleitung 25 des Exklusiv-ODER-Gatters 25 verbunden und eine zweite Eingangsleitung 15 ist mit dem Q-Ausgangsanschluß des Registers 12 verbunden. Das Signal auf der Eingangswählleitung 16 des Multiplexers 18 wird von der Sicherung 20 so gesteuert, wie dies zuvor für den Multiplexer 19 beschrieben ist. Der Multiplexer 18 hat drei Signaiquellen: (1) ein invertiertes registriertes Ausgangssignal aus Register 12; (2) ein Eingangssignal an Pin 30; oder (3) ein Signal aus dem Exklusiv-ODER-Gatter 25. Versetzt das Signal auf Leitung 27 das Exklusiv-ODER-Gatter 25 in den Dreizustand, wird ein Eingangssignal an Pin 30 über die Leitungen 29,33 zu dem ersten Eingangsanschluß des Multiplexers 18 weitergeleitet. Die Ausgangsleitung 17 des Multiplexers 18 liefert daher entweder ein invertiertes oder ein nicht invertiertes registriertes Rückkopplungssignal, ein invertiertes oder ein nicht invertiertes kombinatorisches Rückkopplungssignal oder ein Eingangssignal an die Logikschaltung, mit der die Ausgangsmakrozelle 10 verbunden ist. Die Ausgangsmakrozelle ist in US-A-4 717 912 in näheren Einzelheiten beschrieben.
  • Ein Nachteil monolithischer PAL-Schaltungen besteht darin, daß zur Erhöhung der Anzahl von Eingangsleitungen zu dem programmierbaren UND-Logik-Array die Steigerung der Array-Größe im Verhältnis zu der Anzahl der Eingangsleitungen erforderlich ist. Dementsprechend ist die Größe einer PAL-Schaltung sowohl durch die Technologie integrierter Schaltungen als auch durch die Herstellungskosten einer solchen Schaltung begrenzt. Ferner können die Sicherungen, die zur Programmierung eines bipolaren Logik-Arrays verwendet werden, nur einmal programmiert werden, und somit kann das Logik- Array vor der Programmierung durch den Benutzer nicht komplett getestet werden.
  • Die Funktionalität einer herkömmlichen PAL-Vorrichtung wird durch die Eingangs/Ausgangs-Fähigkeit, die Anzahl der Register und die Verteilung der Produktterme der Vorrichtung bestimmt. Eine herkömmliche PAL-Vorrichtung, die sowohl für breite Gatterkombinationsfunktionen wie Adreßdekodierung, Multiplexen und Demultiplexen als auch für sequentielle Funktionen wie breite Zustandsrnaschinen und Funktionen nach Art eines Schieberegisters geeignet ist, erfordert sowohl eine breite Eingangsfähigkeit, d.h. eine Reihe von Eingangsleitungen, als auch eine ausreichend große Registerleistungsfähigkeit. Die Steigerung der Eingangsleistungsfähigkeit einer herkömmlichen monolithischen PAL-Vorrichtung hat eine Vergrößerung des Arrays zur Folge, wie zuvor beschrieben, was wiederum zu einem größeren Siliziumchip, höheren Kosten, langsamerer Leistung und ineffizienter Array-Ausnutzung führt.
  • Löschbare programmierbare Logikvorrichtungen (EPLDs) überwinden die einstmalige Programmierbarkeitsbeschränkung abgesicherter Logik-Arrays und verwenden üblicherweise eine segmentierte Struktur, um die Leistung zu steigern. Eine EPLD ist als Blockdiagramm in Figur 2A gezeigt. Die Vorrichtung weist achtundvierzig Eingangs/Ausgangs-(I/O-)Pins 40, zwölf zweckbestimmte Eingangspins 41 und vier Pins 42 auf, die entweder als Takteingangspins oder zusätzliche zweckbestimmte Eingangspins verwendet werden können. Das Signal an jedem I/O-Pin 40 wird entweder als Eingangssignal zu einer Makrozelle 43 geliefert oder von einer Makrozelle 43 als Ausgangssignal erzeugt. Die Makrozellen 43 sind in drei allgemeine Typen unterteilt, eine allgemeine Makrozelle 43, eine globale Makrozelle 60 und eine verbesserte Makrozelle 61.
  • Die allgemeine Makrozelle 43, wie sie in Figur 2C dargestellt ist, liefert ein Eingangssignal von dem I/O-Pin 40 über das Rückkopplungswählelement 47 zu dem lokalen Bus 44 und dem programmierbaren UND-Array 46. Alternativ wird ein aus den acht Produktsignalen auf den von dem programmierbaren UND-Array herkommenden Leitungen 49a- 49h von der I/O-Architektursteuerzelle 48 erzeugtes Signal durch den Puffer 49 zu dem I/O-Pin 40 und durch das Rückkopplungswählelement 47 zu dem lokalen Bus 44 und dem programmierbaren UND- Array 46 weitergeleitet. Auf diese Weise wird das UND-Array 46 entweder mit einem lokalen Rückkopplungssignal oder einem Eingangssignal an Pin 40, aber nicht mit beiden, versorgt. Außerdem empfängt das programmierbare UND-Array 46 (1) Eingangssignale von den Makrozellen auf dem lokalen Quadrantbus 44, (2) Rückkopplungssignale von dem globalen Bus 45 von den Makrozellen 60A&sub0;-60A&sub3;, 60B&sub0;- 60B&sub3;, 60C&sub0;-60C&sub3; und 60D&sub0;-60D&sub3; und (3) Signale auf den sechzehn zweckbestimmten Eingangspins 41,42, wie zuvor beschrieben. Das lokale programmierbare UND-Array 46 ist auf acht Produktterme begrenzt, und die I/O-Architektursteuerzelle 48 stellt eine Einrichtung zur Erzeugung entweder kombinatorischer oder registrierter Eingangssignale dar, wie zuvor beschrieben.
  • In Figur 2B ist eine globale Makrozelle gezeigt. Das programmierbare UND-Array 46 der globalen Makrozelle 60 ist identisch mit dem programmierbaren UND-Array 46 der allgemeinen Makrozelle 43. Die Eingangssignale zu dem programmierbaren UND-Array 46 der globalen Makrozelle 60 jedoch umfassen sowohl das Signal von dem I/O-Pin 40, das direkt zu dem globalen Bus 45 geliefert wird, als auch das Signal von der I/O-Architektursteuerzelle 48, das zu dem lokalen Bus 44 geliefert wird. Die (nicht dargestellten) verbesserten Makrozellen 61 werden für kritische kombinatorische Logikverzögerungswege verwendet, da diese Zellen die Schnelligkeitsleistungsfähigkeit durch das Logik-Array gesteigert haben.
  • In einer andere EPLD (Fig. 3) ist ein programmierbares Logik-Array 50 als zwei symmetrische Teile 50A,50B konfiguriert, wobei jede Hälfte 14 Makrozellen 51, drei I/O-Architektursteuerzellen 53 und eine vergrabene Makrozelle 52 aufweist. Die vergrabene Makrozelle 52 ist mit den Gruppen-I/O-Architektursteuerzellen 51 vergleichbar, außer daß die vergrabene Makrozelle 52 nicht mit einem I/O- Pin 40 verbunden ist und daher nur verwendet wird, um zwei Makrozellen an einen globalen Bus und einen lokalen Bus anzuschließen.
  • Bei dieser Anordnung kann eine ausgewählte Gruppe von Makrozellen 51h-51k, 51x-51aa eine Gesamtheit von sechzehn zusätzlichen Produktterrnen von dem Logik-Array teilen. Die Teilung muß jedoch zwischen benachbarten Makrozellenpaaren erfolgen, so daß die zusätzlichen Produktterme zu einer gegebenen Zeit nur für eine Seite der Vorrichtung verfügbar sind.
  • Die elektrischen programmierbaren Logikvorrichtungen sind unter Verwendung einer CMOS-Technik implementiert. Ferner gestattet die EPLD-Technik das Testen aller Elemente in der EPLD im Werk, anders als bei der durch Durchbrennen von Sicherungen programmierbaren Vorrichtung, die im Werk nur auf bestimmte Konfigurationen getestet werden kann. Die programmierbaren Verbindungen in einer EPLD verwenden üblicherweise eine CMOS-Floating-Gate-Architektur, die unter Verwendung von ultraviolettem (UV-)Licht von kurzer Wellenlänge gelöscht wird.
  • Zwar bietet eine EPLD Vorteile gegenüber den sicherungsprogrammierbaren Vorrichtungen, die UV-EPLD jedoch kann versehentlich gelöscht werden, wenn die Vorrichtung entweder im Sonnenlicht oder in Leuchtstofflampenbeleuchtung liegengelassen wird. Ferner sind die Anzahl der programmierbaren Gatter, die Ausnutzung der Bauteile in der Vorrichtung und die Flexibilität der Vorrichtung durch die Architektur der Vorrichtung beschränkt. Genauer gesagt, die in den Figuren 2 und 3 dargestellten Vorrichtungen verwenden einen Ansatz mit segmentierter PAL, aber die PAL-Strukturen sind jeweils relativ groß. Die Größe der Struktur führt zu geringerer Leistung im Vergleich mit einer kleineren Struktur, und auch zu einer ineffizienten Ausnutzung des Arrays. Falls in größeren Arrays nur eine oder zwei Eingangsleitungen eines bestimmten Produktterms verwendet werden oder falls nur ein oder zwei Produktterme einer bestimmten Ausgangsmakrozelle verwendet werden, sind die übrigen Eingangsleitungen oder die übrigen Produktterme im wesentlichen verschwendet oder ungenutzt.
  • Die EPLD in Fig. 2 hat 48 Register in einer 68-Pin-Packung und die EPLD in Figur 3 hat 28 Register in einer 40-Pin-Packung. Daher ist die Anzahl der Register im Vergleich zu der Anzahl der Packungspins eingeschränkt, und folglich ist die Funktionalität dieser Vorrichtungen für registrierte Anwendungen eingeschränkt. Somit leidet sowohl die Schnelligkeit als auch die Funktionalität dieser EPLDS durch die Architektur der Vorrichtungen.
  • Eine Alternative zu einem monolithischen oder einem segmentierten programmierbaren Logik-Array ist ein programmierbares Gatter-Array, in dem konfigurierbare Logikblöcke 70, wie in Figur 4A gezeigt, durch Schaltmatrizes gemäß Figur 4B gekoppelt werden. Jeder konfigurierbare Logikblock 70 weist eine kombinatorische Logikzelle 73 mit vier Eingangsleitungen 70A,70B,70C,70D und zwei Ausgangsleitungen 70G,70H, eine Takteingangsleitung 70K, ein Speicherelement 71 und mehrere programmierbare Multiplexer zum Signalleiten innerhalb des Logikblocks auf. Die kombinatorische Logikzelle 73 verwendet einen Tabellenverweisspeicher, um Boolesche Logikfunktionen von bis zu vier Variablen zu implementieren. Die programmierbaren Multiplexer verwenden flüchtige Speicherzellen in Verbindung mit Durchlaßtransistoren zur Lieferung von Konfigurationssignalen für den Multiplexer. Jede Schaltmatrix 72 koppelt vier horizontale Metallsegmente mit fünf vertikalen Metallsegmenten. Die Schalter in den Schaltmatrizes sind Durchlaßtransistoren, die von einem Konfigurationsbit in einer flüchtigen Speicherzelle gesteuert werden.
  • Die programmierbare Gate-Array-Schaltung stellt 112 Flipflops in einer 68-Pin-PLCC-Packung und 174 Flipflops in einer 84-Pin-PGA- Packung zur Verfügung. Obwohl diese Vorrichtungen die Anzahl der Register gegenüber den oben beschriebenen EPLDs bedeutend erhöhen, sind diese Vorrichtungen auf diese Weise ineffizient bei breiten Gatteranwendungsbereichen, da die konfigurierbaren Logikblöcke 73 jeweils relativ klein sind. Daher erfordert ein Anwendungsgebiet, das breites Gattern verlangt, ein Kaskadieren von mehreren konfigurierbaren Logikblöcken in Reihe, was wiederum zu herabgesetzter Leistung führt.
  • EP-A-0340890 beschreibt eine programmierbare Logikvorrichtung oder integrierte Schaltung mit einer Vielzahl von programmierbaren Logik-Array-Blöcken, die programmierbaren Verbidungseinrichtungen zugeordnet sind und Makrozellen aufweisen, die mit einer entsprechenden Anzahl von Verbindungsleitungen direkt in die Logikblöcke rückkoppeln.
  • US-A-4878200 beschreibt eine EPROM-Vorrichtung mit Makrozellen und einer Logikzuordnungseinrichtung.
  • Fig. 5 zeigt ein Diagramm der Architektur einer bekannten programmierbaren Mehrfach-Array-Logikvorrichtung, wie sie in US-A-4742252 beschrieben ist. Die Vorrichtung 310 weist eine erste programmierbaren Array-Einrichtung 311 zum Empfang einer Vielzahl von ersten Eingangstermen (Signalen) und zur Erzeugung einer Vielzahl von ersten Ausgangstermen (Signalen) und eine zweite programmierbare Array-Einrichtung 312 zum Empfang einer Vielzahl von zweiten Eingangstermen und zur Erzeugung einer Vielzahl von zweiten Ausgangstermen auf.
  • Die erste programmierbare Array-Einrichtung 311 weist eine UND- Array 316 auf, die die Vielzahl von ersten Eingangstermen über Leitung 313 und vorzugsweise einen Takteingangsterm über Leitung 314 für sequentielle Zustandsmaschinenfunktionen empfängt und auf die ersten Eingangsterme und die Taktterme hin, wie durch den Benutzer programmiert, eine Vielzahl von ersten Produkttermen über die Leitung 315 erzeugt. Die UND-Array 316 ist vorzugsweise eine anwenderprogrammierbare UND-Array wie die in der Publikation mit dem Titel Programmable Array Logic Handbook, veröffentlicht von Advanced Micro Devices, Inc. (1988) und erhältlich durch Advanced Micro Devices, Inc., Sunnyvale, Kalifornien, beschriebenen. Natürlich können je nachdem andere Ausführungsbeispiele der UND-Array einschließlich einer festen UND-Array verwendet werden.
  • In der ersten programmierbaren Array-Einrichtung 311 werden die ersten Produktterme auf Leitung 315 einer ODER-Array 317 zugeführt. Die ODER-Array 317 erzeugt auf die ersten Produktterme auf Leitung 315 hin eine Vielzahl von ersten Produktsummentermen auf Leitung 318. Die ODER-Array kann eine feste ODER-Array oder eine programmierbare ODER-Array, wie in dem oben erwähnten Programmable Array Logic Handbook beschrieben, sein.
  • Die ersten Produktsummenterme auf Leitung 318 werden einer Vielzahl von Ausgangszellen 319 zugeführt, die auf Leitung 320 Ausgangslogikterme für die erste programmierbare Array-Einrichtung 311 erzeugen. Ferner können die Ausgangszellen 319 Rückkopplungsterme auf Leitung 321 erzeugen, die zu der UND-Array 316 rückgekoppelt und bei der Erzeugung der ersten Produktterme 315, wie durch den Benutzer programmiert, verwendet werden.
  • Die zweite programmierbare Array-Einrichtung 312 besteht aus ähnlichen Bauteilen wie die erste programmierbare Array-Einrichtung 311. Somit weist die zweite programmierbare Array-Einrichtung 312 ein UND-Array 322, das entweder fest oder programmierbar sein kann, ein ODER-Array 323, entweder fest oder programmierbar, und eine Vielzahl von Ausgangszellen 324 auf. Die zweite programmierbare Array-Einrichtung 312 empfängt als Eingang eine Vielzahl von zweiten Eingangstermen auf Leitung 325 und vorzugsweise einen Takteingangsterm auf Leitung 326 für sequentielle Zustandsmaschinenfunktionen. Das Ausgangssignal des UND-Arrays 322 der zweiten programmierbaren Array-Einrichtung 312 weist eine Vielzahl von zweiten Produkttermen 327 auf. Das Ausgangssignal des ODER-Arrays 323 weist eine Vielzahl von zweiten Produktsummentermen auf Leitung 328 auf. Die Vielzahl von zweiten Produktsummentermen wird durch die Ausgangszellen 324 weitergeleitet und als Vielzahl von zweiten Ausgangstermen auf Leitung 329 geliefert. Die Ausgangszellen 324 können Rückkopplungsterme über Leitung 330 zur Rückführung zu dem UND-Array 322 erzeugen, um sie bei der Erzeugung der zweiten Produktterme auf Leitung 327, wie durch den Benutzer programmiert, zu verwenden.
  • Es darauf hingewiesen, daß die erste programmierbare Array-Einrichtung 311 und die zweite programmierbare Array-Einrichtung 312 vorzugsweise individuell konfiguriert sind, so daß sie ein programmierbares UND-Array mit einem festen ODER-Array, ein festes UND-Array mit einem programmierbaren ODER-Array, ein programmierbares UND-Array mit einem programmierbaren ODER-Array oder eine andere programmierbare Array-Konfiguration aufweisen, die Produktsummenterme erzeugt, um die herkömmliche Produktsummenlogikausführung zu ermöglichen.
  • Die Ausgangszellen 319 und die Ausgangszellen 324 für die erste bzw. zweite programmierbare Array-Einrichtung 311,312 bestehen vorzugsweise aus Ausgangszellen, deren Konfigurationen in dem oben erwähnten Programmable Array Logic Handbook offenbart sind.
  • Die Vorrichtung 310 weist eine Einrichtung 350 zum selektiven Verbinden von wenigstens Untermengen der Vielzahl der ersten Eingangsterme von den Leitungen 313,314, der Vielzahl der ersten Ausgangsterme von den Leitungen 320, der Vielzahl der zweiten Eingangsterme von den Leitungen 325,326 und der Vielzahl der zweiten Ausgangsterme von den Leitungen 329 auf. Die Einrichtung 350 zum selektiven Verbinden ermöglicht, daß die Vorrichtung 310 so konfiguriert ist, daß die erste programmierbare Array-Einrichtung 311 mit der zweiten programmierbaren Array-Einrichtung 312 in Reihe geschaltet ist oder die erste programmierbare Array-Einrichtung 311 mit der zweiten programmierbaren Array-Einrichtung parallel geschaltet ist, oder eine beliebige Kombination von Verbindungen. Bei einem bestimmten Ausführungsbeispiel können Untermengen der Eingangs- und Ausgangsterme untereinander verbunden sein, so daß alle oder beliebige Teile der Vielzahl der ersten Eingangsterme, der Vielzahl der ersten Ausgangsterme, der Vielzahl der zweiten Eingangsterme und der Vielzahl der zweiten Ausgangsterme nach Wunsch geleitet werden können, um die vom Hersteller gewünschte Flexibilität zu ermöglichen.
  • In der in Fig. 5 gezeigten Vorrichtung weist die Einrichtung 350 zum selektiven Verbinden eine Eingangsmultiplexeinrichtung 351 (MUX I&sub1;, MUX I&sub2;) auf, die auf ein Eingangswählsignal auf Leitungen 352,353 reagiert, um aus einer Vielzahl von Signalen einen Signalsatz als Vielzahl der ersten Eingangsterme oder als Vielzahl der zweiten Eingangsterme zu wählen und zu liefern. Die Eingangsmultiplexeinrichtung 351 (Fig. 5) wählt aus der Vielzahl von Signalen einschließlich eines ersten, von den Eingangspins 354 gelieferten Taktsignalsatzes, eines von einem ersten Satz von Eingangs/Ausgangs-Pins 355 extern dem Chip zugeführten ersten Eingangssignalsatzes, eines von einem zweiten Satz von Eingangs/Ausgangs-Pins 356 gelieferten zweiten Eingangssignalsatzes (diese I/O-Pins werden üblicherweise von einem Ausgangssignal von einer anderen (nicht dargestellten) Vorrichtung getrieben, die Vorrichtung 310 ähnlich ist), eines von den Eingangspins 357 gelieferten zweiten Taktsignalsatzes und eines in Reaktion auf mindestens eine Untermenge der Vielzahl erster Ausgangsterme von Leitung 320 und der Vielzahl zweiter Ausgangsterme von den Leitungen 329, über die Leitungen 358 bzw. 359 geliefert, erzeugten Ausgangssignalsatzes.
  • Das Eingangswählsignal auf Leitungen 352 und 353 wird als mindestens eine Untermenge der ersten und zweiten Produktterme von den Leitungen 315 bzw. 327 oder als mindestens eine Untermenge der ersten und zweiten Produktsummenterme von den Leitungen 318 bzw. 328 oder als eine beliebige Kombination der Produktterme und Produktsummenterme, die von der ersten programmierbaren Array-Einrichtung 311 und der zweiten programmierbaren Array-Einrichtung 312 erzeugt werden, geliefert.
  • Ferner kann das Eingangswählsignal, wie in Fig. 5 gezeigt, anwenderprogrammierbar sein. So zeigt Fig. 5 ein Eingangswählsignal, das auf Leitung 390 von einem sicherungsprogrammierbaren Signalgenerator 391 einem Eingangsmultiplexer MUX 12 zugeführt wird. Der sicherungsprogrammierbare Signalgenerator 391 weist eine Sicherung 392, die von Leitung 390 auf Masse geschaltet ist, und einen Widerstand 393 auf, der von Leitung 390 zu einer Stromversorgungsspannung Vcc geschaltet ist. Sicherung 392 ist eine anwenderprogrammierbare Sicherung wie die in dem oben erwähnten Programmable Array Logic Handbook.
  • Die Eingangsmultiplexeinrichtung 351 in dem bevorzugten Ausführungsbeispiel besteht aus einem ersten Eingangsmultiplexer MUX I&sub1;, der auf das Eingangswählsignal auf den Leitungen 352 reagiert, um einen Satz Signale zwecks Lieferung als Eingangssignale auf den Leitungen 313,314 auszuwählen, und einem zweiten Eingangsmultiplexer MUX I&sub2;, der auf das Eingangswählsignal auf den Leitungen 353 oder 390 reagiert, um einen Satz Signale zur Lieferung als Eingangstermsignale auf den Leitungen 325,326 auszuwählen. In dem gezeigten Ausführungsbeispiel werden sowohl dem ersten Eingangsmultiplexer MUX I&sub1; als auch dem zweiten Eingangsmultiplexer MUX I zur Auswahl und Lieferung als Eingangsterme dieselben Signalsätze von den Pins 354,355,356 und 357 zugeführt. Der erste Eingangsmultiplexer MUX I&sub1; liefert die Vielzahl der ersten Eingangsterme auf den Leitungen 313,314. Der zweite Eingangsmultiplexer MUX 12 liefert die Vielzahl der zweiten Eingangsterme auf den Leitungen 325,326.
  • Die Einrichtung 350 zum selektiven Verbinden weist ferner eine Ausgangsmultiplexeinrichtung 360 auf, die auf ein Ausgangswählsignal auf den Leitungen 361,362 reagiert, um als Ausgangssignale auf den Leitungen 363 bzw. 364 einen Signalsatz zu wählen und zu liefern, der aus der Vielzahl von Signalen gewählt ist, die aus mindestens einer Untermenge der Vielzahl der ersten Ausgangsterme von den Leitungen 320 und der Vielzahl der zweiten Ausgangsterme von den Leitungen 329 gewählt sind. Die Ausgangssignale auf den Leitungen 363,364 werden extern von der integrierten Schaltungsvorrichtung 310 durch die Ausgangstreiber 365,366 zu den Sätzen der I/O-Pins 367,368 geliefert.
  • Die Ausgangswählsignale auf den Leitungen 361 und 362 können aus dem ersten Satz Produktterme auf den Leitungen 315, dem zweiten Satz Produktterme auf den Leitungen 327, dem ersten Satz Produktsummenterme auf den Leitungen 318, dem zweiten Satz Produktsummenterme auf den Leitungen 328 oder einer beliebigen Kombination aus Produkttermen und Produktsummentermen, wie für den Benutzer passend, erzeugt werden.
  • Ferner kann, wie in Fig. 5 gezeigt, das Ausgangswählsignal sicherungsprogrammierbar sein. So zeigt Fig. 5 einen sicherungsprogrammierbaren Signalgenerator 395, der auf Leitung 396 ein Ausgangswählsignal liefert. Der sicherungsprogrammierbare Signalgenerator 395 weist eine Sicherung 397, die von der Leitung 396 auf Masse geschaltet ist, und einen Widerstand 398 auf, der von Leitung 396 mit einer Stromversorgungsspannung Vcc verbunden ist. Die Sicherung 396 ist gemäß der Beschreibung in dem oben erwähnten Programmable Array Logic Handbook programmierbar.
  • Die Ausgangsmultiplexeinrichtung 360 in der in Fig. 5 gezeigten Vorrichtung besteht aus einem ersten Ausgangsmultiplexer MUX O&sub1; und einem zweiten Ausgangsmultiplexer MUX O&sub2;. Der erste Ausgangsmultiplexer MUX O&sub1;, der auf das Ausgangswählsignal auf Leitungen 361 reagiert, wählt einen Signalsatz zur Lieferung als Ausgangssignale auf Leitungen 363 aus, während der zweite Ausgangsmultiplexer MUX O&sub2;, der auf das Ausgangswählsignal auf den Leitungen 362 oder 396 reagiert, einen Signalsatz zur Lieferung als Ausgangssignale auf den Leitungen 364 auswählt.
  • Das Diagramm von Fig. 5 zeigt vier Sätze von I/O-Pins, die mit 355, 356, 365 und 368 bezeichnet sind. Diese Sätze von I/O-Pins können jeweils eine beliebige Zahl von I/O-Pins aufweisen, entsprechend der Zahl an Ausgangssignalen, die auf den Leitungen 363 und 364 erzeugt werden, und der Zahl an Eingangssignalen, die von den I/O-Pins 355,356 wie gewünscht geliefert werden. Es sei darauf hingewiesen, daß die vier Sätze von I/O-Pins 355,356,367 und 368 nicht notwendigerweise exklusiv sind. Beispielsweise ist der Satz von I/O-Pins 367, die von dem Ausgangsmultiplexer MUX O&sub1; Ausgangssignale über Leitung 363 empfangen, ebenfalls zur Lieferung von Eingangssignalen über Leitung 358 zu den Eingangsmultiplexern MUX I&sub1; und MUX I&sub2; geschaltet. Auf diese Weise kann eine Architektur für eine Vorrichtung 310 entworfen werden, bei der alle oder eine beliebige Untermenge der I/O-Pins so konfiguriert sind, daß sie Ausgangssignale empfangen und/oder Eingangssignale liefern.
  • Ferner können der Satz von Takteingangspins 354 und der Satz von Takteingangspins 357 eine beliebige Zahl von Takteingängen aufweisen und, wie dargestellt, gibt es zwei Takteingangspins in dem ersten Satz von Takteingangspins 354, zwei Takteingangspins in dem zweiten Satz von Takteingangspins 357, und vierzig I/O-Pins, die so konf iguriert sind, daß sie Sätze von I/O-Pins wie die mit 355,356,367 und 368 bezeichneten bilden.
  • Somit ist ersichtlich, daß die Vorrichtung 310 eine totale Verbindungsfähigkeit der verfügbaren Signale und Logikterme als Eingangsterme oder Ausgangsterme untereinander ermöglicht. Dies gestattet es dem Benutzer, die Vorrichtung 310 derart zu konfigurieren, daß die erste programmierbare Array-Einrichtung 311 in Reihe mit der zweiten programmierbaren Array-Einrichtung 312 arbeitet, indem beispielsweise die Ausgangssignale von Leitung 363 als einer der Signalsätze über Leitung 358, der von dem zweiten Eingangsmultiplexer MUX 12 als mindestens eine Untermenge der Vielzahl von zweiten Eingangstermen auf Leitung 325,326 wählbar ist, geliefert werden. Im Hinblick auf die erste programmierbare Array-Einrichtung 311 kann die zweite programmierbare Array-Einrichtung 312 natürlich genauso geschaltet sein. Alternativ können die erste programmierbare Array-Einrichtung 311 und die zweite programmierbare Array-Einrichtung 312 parallel derart geschaltet sein, daß jede dieselben Eingangssignale als Eingangsterme auf den Leitungen 313,314 bzw. 325,326 empfängt, wie beispielsweise die von dem Satz von Eingangspins 356 gelieferten Eingangssignale, und daß jede eine Vielzahl von Ausgangstermen über die Leitungen 320 bzw. 329 erzeugt, die selektiv zu einem Satz von I/O-Pins 367,368 geliefert werden.
  • Unter Verwendung der Einrichtung 350 zum selektiven Verbinden untereinander kann eine breite Vielfalt anderer Verbindungsarchitekturen durchgeführt werden. Beispielsweise könnte eine Untermenge der Ausgangssignale von den Leitungen 363 als Teil des Satzes der Eingangssignale, der von dem zweiten Eingangsmultiplexer MUX 12 über Leitung 358 wählbar ist, geliefert werden. Auf diese Weise würde ein Teil der von der zweiten programmierbaren Logik- Array-Einrichtung 312 erzeugten Logikterme in Reaktion auf eine Reihenschaltung der ersten programmierbaren Logik-Array-Einrichtung 311 und der zweiten programmierbaren Logik-Array-Einrichtung 312 erzeugt werden, während andere der von einer zweiten programmierbaren Array-Einrichtung 312 erzeugten Logikterme parallel mit oder unabhängig von den von der ersten programmierbaren Array- Einrichtung 311 erzeugten Logiktermen erzeugt würden. In dieser Vorrichtung könnten beispielsweise die I/O-Pins 367, die Ausgangsterme von der ersten programmierbaren Array-Einrichtung 311 empfangen, weniger Pins als I/O-Pins aufweisen, die Ausgangssignale von der zweiten programmierbaren Array-Einrichtung 312 liefern.
  • Die Halbleiterindustrie wird ständig dazu getrieben, höhere Integration, Siliziumvorrichtungen mit höherer Schnelligkeit für erhöhte Leistung, kostengünstigere Systemeinsätze anzubieten. Für eine PAL-artige Vorrichtung mit hoher Dichte ist das Erzielen höherer Geschwindigkeit von besonderer Bedeutung. Zur Zeit jedoch steht keine hochdichte PAL-Vorrichtung mit programmierbarem Hochgeschwindigkeits-Array und großer Registerleistungsfähigkeit zur Verfügung. Ferner sind die verfügbaren programmierbaren Logikvorrichtungen nach dem Stand der Technik, wie oben beschrieben, nicht in der Lage, ein optimales Gleichgewicht von Funktionalität, Siliziumchipgröße und Leistung zu erreichen.
  • Gemäß der vorliegenden Erfindung wird eine integrierte Schaltung mit einer Vielzahl von Pins geschaffen, mit:
  • einer Vielzahl von programmierbaren Logikblöcken, wobei jeder programmierbare Logikblock eine Vielzahl von Eingangsleitungen und eine Vielzahl von Ausgangsleitungen aufweist; und
  • einer programmierbaren Schaltverbindungseinrichtung, die betriebsmäßig mit jedem der Logikblöcke verbunden ist, um auf den Vielzahlen von Ausgangsleitungen von der Vielzahl von programmierbaren Logikblöcken Signale zu empfangen und um den Vielzahlen von Eingangsleitungen der Vielzahl von programmierbaren Logikblöcken Eingangssignale zuzuführen:
  • wobei jeder programmierbare Logikblock aufweist:
  • eine programmierbare Array-Einrichtung, die zum Empfang einer Vielzahl von Eingangssignalen nur von der Vielzahl von programmierbaren Logikblockeingangsleitungen und zur Erzeugung einer Vielzahl von Ausgangssignalen betriebsmäßig mit der programmierbaren Schaltverbindungseinrichtung gekoppelt ist;
  • eine Vielzahl von programmierbaren Logikmakrozelleinrichtungen&sub1; wobei jede programmierbare Logikmakrozelleinrichtung mit der programmierbaren Schaltverbindungseinrichtung betriebsmäßig gekoppelt ist und mindestens eine Eingangsleitung sowie eine Ausgangsleitung aufweist;
  • eine Logikzuordnungseinrichtung, die mit der programmierbaren Array-Einrichtung betriebsmäßig gekoppelt ist und selektiv betriebsmäßig mit jeder der Vielzahl von programmierbaren Logikmakrozelleinrichtungen koppelbar und selektiv betriebsmäßig davon abkoppelbar ist, um die Vielzahl von Ausgangssignalen der programmierbaren Array-Einrichtung zu ausgewählten Eingangsleitungen der Vielzahl von programmierbaren Logikmakrozelleinrichtungen zu leiten und die nicht gewählten Eingangsleitungen der Vielzahl von programmierbaren Logikmakrozelleinrichtungen von der programmierbaren Array-Einrichtung abzukoppeln; und
  • eine Vielzahl von programmierbaren Eingabe/Ausgabe- oder I/O-Makrozelleinrichtungen, wobei jede I/O-Makrozelleinrichtung mit einem der Pins und mit der Ausgangsleitung einer der programmierbaren Logikmakrozelleinrichtungen verbunden ist, um auf einer der Ausgangsleitungen des programmierbaren Logikblockes ein Signal zu liefern, und wobei jede I/O-Makrozelleinrichtung die Ausgangsleitung der programmierbaren Logikmakrozelleinrichtung selektiv mit dem Pin verbindet und sie selektiv davon trennt.
  • Die Anmelderin beschreibt eine hochdichte segmentierte PAL-artige Vorrichtung, die ein optimales Gleichgewicht zwischen Funktionalität, Siliziumchipgröße und Leistung ergibt. Die hochdichte programmierbare Logikvorrichtung weist zwei oder mehr identische programmierbare Logikschaltungen (Blöcke) auf, die mittels einer Schaltmatrix untereinander verbunden sind. In einem Ausführungsbeispiel sind vier in einer einzelnen integrierten Schaltung enthaltene identische programmierbare Logikblöcke mittels einer Schaltmatrix untereinander verbunden, während in einem anderen Ausführungsbeispiel zwei identische programmierbare Logikblöcke mittels einer Schaltmatrix untereinander verbunden sind. Diese segmentierte Logikstruktur ermöglicht eine Hochgeschwindigkeitsleistung, wobei eine größere Funktionalität gewahrt wird, als dies bei programmierbaren Logikvorrichtungen nach dem Stand der Technik möglich war.
  • Die Schaltmatrix weist eine Gruppe programmierbarer Multiplexer für jeden programmierbaren Logikblock in der PLD auf. Die Eingangssignale für die Multiplexer in jeder Gruppe werden aus den Eingangssignalen an den Pins der integrierten Schaltungspackung, die die integrierte Schaltung dieser Erfindung enthält, und Ausgangssignalen von den programmierbaren Logikblöcken ausgewählt. Somit fungiert die Schaltmatrix sowohl als Eingangseinrichtung als auch als Rückkopplungseinrichtung zu den verschiedenen Logikschaltungen.
  • Jeder der Multiplexer in der Schaltmatrix hat Konfigurationsarchitekturzellen, die Eingangswählsignale an den Multiplexer liefern. Die Eingangswählsignale konfigurieren den Multiplexer so, daß eines der Signale auf einer Eingangsleitung zu dem Multiplexer durch den Multiplexer zu einer Ausgangsleitung des Multiplexers durchgelassen wird und die anderen Signale auf den übrigen Eingangsleitungen von der Ausgangsleitung getrennt werden.
  • Die programmierbaren Logikblöcke kommunizieren nur über die Schaltmatrix miteinander. Darüber hinaus empfangen die programmierbaren Logikblöcke alle Eingangssignale von der Schaltmatrix. Auf diese Weise können die programmierbaren Logikblöcke als unabhängige programmierbare Logikvorrichtungen auf demselben Chip mit integrierter Schaltung betrachtet werden.
  • Die Anmelderin beschreibt eine Schaltung, in der jeder programmierbare Logikblock ein programmierbares Logik-Array, eine programmierbare Logikzuordnungseinrichtung, programmierbare Logikmakrozellen und programmierbare I/O-Makrozellen aufweist. Die Eingangsleitungen von der Schaltmatrix zu dem programmierbaren Logikblock treiben das programmierbare Logik-Array. Die Logikzuord-. nungseinrichtung ist so programmierbar, daß Signale von dem programmierbaren Logik-Array in der von dem Benutzer der programmierbaren Logikvorrichtung geforderten Weise an die Logikmakrozellen verteilt werden. Die Logikmakrozellen konfigurieren die Signale von der Logikzuordnungseinrichtung entweder als registrierte Signale oder kombinatorische Signale. Das Ausgangssignal von einer Logikmakrozelle wird einer I/O-Makrozelle zugeführt und zu der Schaltmatrix zurückgeführt. Die I/O-Makrozelle liefert das Logikmakrozellensignal selektiv an die I/O-Pins. Alternativ kann die I/O-Makrozelle unter Verwendung eines Ausgangsfreigabesignals konfiguriert werden, so daß der I/O-Pin ein Eingangssignal zu dem Schaltmatrix-Array liefert und die Logikmakrozelle von dem I/O-Pin abgekoppelt wird.
  • Die Logikzuordnungseinrichtung weist mehrere programmierbare Routerelernente auf. Jedes Routerelement ist mit einer ausgewählten Anzahl von Ausgangsleitungen von dem programmierbaren Logik-Array verbunden. Diese Ausgangsleitungen sind Eingangsleitungen zu einem Logikgatter. Die Ausgangsleitung von dem Logikgatter steuert den Eingangsanschluß eines programmierbaren Demultiplexers an. Der programmierbare Dernultiplexer weist eine Vielzahl von Ausgangsleitungen auf, die jeweils mit der Eingangsleitung einer der programmierbaren Logikmakrozellen verbunden sind. Auf ein Eingangswählsignal hin läßt der programmierbare Demultiplexer das Signal auf der Eingangsleitung zu der gewählten Ausgangsleitung durch. Dementsprechend ist keine der Ausgangsleitungen von dem programmierbaren Logik-Array permanent mit einer Logikmakrozelle verbunden. Wenn ein I/O-Pin als Eingangspin verwendet wird, kann dementsprechend die diesem Pin zugeordnete programmierbare Logikmakrozelle als vergrabenes Register verwendet werden, oder falls die Makrozelle nicht verwendet wird, werden die Signale von dem programmierbaren Logik-Array alternativ zu anderen Logikmakrozellen geleitet, so daß keine Produktterme verschwendet werden.
  • Während das Abkoppeln der Logikmakrozellen von den I/O-Pins die Verwendung der Logikmakrozellen als vergrabene Register wiederherstellt, spricht dieses Ankoppeln nicht die Skalierbarkeit der Benutzerkonstruktion zu Vorrichtungen mit höherer Dichte an. Das bedeutendere Problem bei der Skalierbarkeit ist das Ankoppeln des Produktterm-Arrays von den Makrozellen, so daß bei zunehmender Zahl der Makrozellen die Produktterm-Array-Größe nicht proportional zunimmt.
  • Die Logikzuordnungseinrichtung ordnet Produkttermresourcen in einer variablen Verteilung unter allen Makrozellen in einem programmierbaren Logikblock zu. Daher koppelt die Logikzuordnungseinrichtung im wesentlichen unbenutzte Makrozellen von dem Produktterm-Array ab und ordnet in einem Ausführungsbeispiel bis zu zwölf bis sechzehn Produktterme pro Logikmakrozelle mit minimalen Schnelligkeitseinbußen zu.
  • Die Hochgeschwindigkeitsschaltmatrix stellt eine feste, einheitliche, vorhersagbare und wegunabhängige Zeitverzögerung für alle Signale zur Verfügung, die durch die Schaltmatrix geleitet werden. Da ferner das programmierbare Logik-Array nur Signale von der Schaltmatrix empfängt, koppelt die Schaltmatrix das Produktterm- Array wirksam von den Logikmakrozellen, den I/O-Makrozellen und der Array-Größe ab.
  • Auf diese Weise werden programmierbare Verbindungen innerhalb der Schaltmatrix und innerhalb jedes programmierbaren Logikblocks verwendet, um das Produktterm-Array von der Schaltmatrix, den Makrozellen und den I/O-Pins abzukoppeln. Diese Ankopplung bietet eine größere Flexibilität, als dies bei den programmierbaren Logikvorrichtungen nach dem Stand der Technik möglich war, und ermöglicht es der PLD dieser Erfindung, für einen Benutzereinsatz effizient und schnell konfiguriert zu werden.
  • Ferner steht das vollständige Ankoppeln der internen Resourcen innerhalb eines programmierbaren Logikblockes in krassem Gegensatz zu den programmierbaren Logikvorrichtungsfamilien nach dem Stand der Technik.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockdiagramm einer Eingabe/Ausgabe-Makrozelle nach dem Stand der Technik zur Verwendung mit einer PLA- oder einer PAL-Schaltung.
  • Fign. 2A,2B und 2C zeigen eine löschnare programmierbare Logikvorrichtung nach dem Stand der Technik.
  • Fig. 3 ist ein Blockdiagramm einer anderen löschbaren programmierbaren Logikvorrichtung nach dem Stand der Technik.
  • Fign. 4A und 4B sind Blockdiagramme eines konfigurierbaren Logikblocks nach dem Stand der Technik und einer Schaltmatrix nach dem Stand der Technik.
  • Fig. 5 ist ein schematisches Diagramm einer anderen bekannten integrierten Schaltungsvorrichtung.
  • Fig. 6 ist ein abstraktes Blockdiagramm einer programmierbaren Logikvorrichtung nach einem Ausführungsbeispiel dieser Erfindung.
  • Fign. 7A und 7B sind schematische Blockdiagramme zweier einer programmierbaren Logikvorrichtung nach zwei Ausführungsbeispielen dieser Erfindung.
  • Fign. 8A und 8B sind schematische Blockdiagramme einer programmierbaren Logikvorrichtung nach zwei Ausführungsbeispielen dieser Erfindung.
  • Fig. 9 ist ein abstraktes Blockdiagramm einer programmierbaren Logikvorrichtung mit vollständiger Symmetrie gemäß einem Ausführungsbeispiel dieser Erfindung.
  • Fig. 10 ist ein detaillierteres Blockdiagramm eines symmetrischen programmierbaren Logikblockes eines Ausführungsbeispiels dieser Erfindung.
  • Fig. 11 ist ein detaillierteres Blockdiagramm einer Familie von programmierbaren Logikvorrichtungen nach einem Ausführungsbeispiel der Erfindung.
  • Fign. 12A, 12B und 12C sind detailliertere Blockdiagramrne, die verschiedene Ausführungsbeispiele der ersten Familie von programmierbaren Logikvorrichtungen nach einem Ausführungsbeispiel dieser Erfindung darstellen.
  • Fig. 13 ist ein Blockdiagramm der zweiten Familie von programmierbaren Logikvorrichtungen nach einem Ausführungsbeispiel dieser Erfindung.
  • Fign. 14A,14B und 14C sind detailliertere Blockdiagramme verschiedener Ausführungsbeispiele der zweiten Familie programmierbarer Logikvorrichtungen nach einem Ausführungsbeispiel dieser Erfindung.
  • Fig. 15 ist ein schematisches Diagramm des programmierbaren Logikblockes in der ersten Familie programmierbarer Logikvorrichtungen nach einem Ausführungsbeispiel dieser Erfindung.
  • Fig. 16 ist ein schematisches Diagramm des programmierbaren Logikblockes in der zweiten Familie programmierbarer Logikvorrichtungen nach einem Ausführungsbeispiel dieser Erfindung.
  • Fign. 17A bis 17C stellen die Routerelemente in der Logikzuordnungseinrichtung einer ersten Familie programmierbarer Logikvorrichtungen nach einem Ausführungsbeispiel dieser Erfindung dar.
  • Fig. 18 stellt die Produkttermsteuerung der Logikzuordnungseinrichtung 411A dar.
  • Fign. 19A,19B,19C und 19D stellen die Routerelemente in der Logikzuordnungseinrichtung einer zweiten Familie von programmierbaren Logikvorrichtungen nach einem Ausführungsbeispiel dieser Erfindung dar.
  • Fig. 20 stellt das Produkttermsteuern der Logikzuordnungseinrichtung 411B dar.
  • Fig. 21 ist ein schematisches Diagramm einer programmierbaren Logikmakrozelle nach einem Ausführungsbeispiel dieser Erfindung.
  • Fign. 22A bis 22F stellen die möglichen Konfigurationen der programmierbaren Logikmakrozelle in Fig. 21 dar.
  • Fig. 23 ist ein schematisches Diagramm einer programmierbaren vergrabenen Logikmakrozelle nach einem Ausführungsbeispiel dieser Erfindung.
  • Fign. 24A bis 24F veranschaulichen die verschiedenen Konfigurationen für die vergrabene Logikmakrozelle in Fig. 23.
  • Fig. 25 ist ein schematisches Diagramm einer I/O-Makrozelle nach einem Ausführungsbeispiel dieser Erfindung.
  • Fig. 26 ist ein Diagramm der programmierbaren Multiplexer in der Schaltmatrix 401A.
  • Fign. 27A und 27B sind eine alternative Darstellung der Eingangsleitungen und Ausgangsleitungen zu den programmierbaren Multiplexern in der Schaltmatrix 401A nach einem Ausführungsbeispiel dieser Erfindung.
  • Fign. 28A und 28B sind ein schematisches Diagramm der programmierbaren Multiplexer der Schaltmatrix 410B nach einem Ausführungsbeispiel dieser Erfindung.
  • Fign. 29A bis 29D sind eine alternative Darstellung der Eingangsleitungen und Ausgangsleitungen der programmierbaren Multiplexer in der Schaltmatrix 401B nach einem Ausführungsbeispiel dieser Erfindung.
  • Fign. 30A bis 30D veranschaulichen ein anderes Ausführungsbeispiel der programmierbaren Multiplexer in der Schaltmatrix nach einem Ausführungsbeispiel dieser Erfindung.
  • In den Zeichnungen sind dieselben Teile mit denselben Bezugszeichen bezeichnet. Ferner kann ein Bezugszeichen mehrere gleichartige Vorrichtungen repräsentieren. Das Basisbezugszeichen 140 beispielsweise repräsentiert eine Gruppe von Makrozellen in dieser Erfindung. Das Bezugszeichen 140A repräsentiert einen bestimmten Satz von Makrozellen innerhalb der Gruppe von Makrozellen 140, und das Bezugszeichen 140A&sub0; oder 140A0 repräsentiert eine bestimmte Makrozelle in dem Satz von Makrozellen 140A. Dasselbe Bauteil bei unterschiedlichen Teilen der Erfindung weist dasselbe Basisbezugszeichen, einen Strich und dann eine Zahl auf, die die Teile unterscheidet. Dementsprechend ist ein Bezugszeichen eine Kurzschriftschreibweise, die mehrere gleichartige Vorrichtungen, Leitungen, Bauteile oder andere miteinander in Beziehung stehende Gegenstände reprasentiert.
  • In Figur 6 ist ein einen Chip mit integrierter Schaltung mit vier programmierbaren Logikquadranten (Zellen) 100A, 100B, 100C, 100D enthaltendes integriertes Schaltungspaket und eine programmierbare Schaltmatrix 101 abstrakt dargestellt. Jeder Logikquadrant 100A, 100B, 100C, 100D enthält eine programmierbare Logikschaltung 106A, 106B, 106C, 106D und eine Einrichtung zum Koppeln 105A, 105B, 105C&sub1;, 105C&sub2;, 105D&sub1;, 105D&sub2; jeder Logikschaltung mit den integrierten Schaltungspackungspins. Somit ist in diesem Ausführungsbeispiel, wie in Fig. 5, eine Einrichtung zum Koppeln von Eingangssignalen und Rückkopplungssignalen, eine programmierbare Schaltmatrix 101 (Fig. 6), mit mehreren programmierbaren Logikschaltungen vorgesehen.
  • Genauer gesagt, eine erste ausgewählte Gruppe von integrierten Schaltungspackungspins 102a sind zweckbestimmte Eingangspins 102, die mittels einer ersten Kopplungseinrichtung 111 mit der Schaltmatrix 101 gekoppelt sind. Die Kopplungseinrichtung 111 weist programmierbare kombinatorische und registrierte/gespeicherte (registrierte) Schaltungswege von den Eingangspins 102a zu der Schaltmatrix 101 auf. Eine zweite ausgewählte Gruppe der Packungspins 103a, 103b, 103c sind bidirektionale I/O-Pins 103, die mittels einer zweiten Kopplungseinrichtung 105A, 105B, 105C&sub1;, 105C&sub2;, 105D&sub1;, 105D&sub2; (105) mit vier programmierbaren Logikschaltungen gekoppelt sind. Jede der zweiten Kopplungseinrichtungen ist derart programmierbar, daß der I/O-Pin 103 entweder ein Eingangssignal an einen Logikquadranten liefert oder ein Ausgangssignal von einem Logikquadranten empfängt.
  • Jede zweite Kopplungseinrichtung 105 hat eine programmierbare Schaltungsanordnung, und zwar derart, daß entweder ein Weg für einen kombinatorischen Eingang oder ein Weg für einen registrierten/gespeicherten Eingang zwischen einem Packungspin und einem logischen Quadranten erstellt werden kann. Der Weg für den kombinatorischen Eingang leitet das Eingangssignal zu der Eingangsleitung eines logischen Quadranten weiter, während der Weg für den registrierten/gespeicherten Eingang das Eingangssignal zu dem Eingangsanschluß eines programmierbaren Speicherelementes weiterleitet, das anschließend ein Signal an die Eingangsleitung eines logischen Quadranten weiterleitet In ähnlicher Weise weist jede Kopplungseinrichtung 105 eine programmierbare Schaltungsanordnung auf, so daß gewählte Ausgangsleitungen von einer Logikschaltung durch entweder einen Weg für einen kombinatorischen Ausgang oder einen Weg für einen registrierten/gespeicherten Ausgang mit einem I/O-Pin gekoppelt sind. Eine dritte Gruppe der integrierten Schaltungspackungspins 104a,104b sind Globaltakteingangspins. Die Globaltakteingangspins liefern synchrone Taktsignale an die Kopplungseinrichtungen 105, 111.
  • Jede der vier Logikschaltungen 106A, 106B, 106C, 106D kann beispielsweise eine PLA-Schaltung, eine PAL-Schaltung, eine NAND.NAND-Schaltung oder eine NOR.NOR-Schaltung sein. In einem Ausführungsbeispiel sind die Schaltungen 106A, 106B, 106C, 106D auf einem programmierbaren UND/ODER-Logik-Array basierende PAL- Schaltungen. Jede auf einem programmierbaren UND/ODER-Array basierende Schaltung stellt 3.200 (80x40) programmierbare E²-Zellen zwecks logischer Flexibilität. Jeder Quadrant hat zwanzig Eingangsleitungen, die achtzig Produktterme ansteuern. Sechsundsiebzig der Produktterme werden für logische Funktionen und die anderen vier für Steuerfunktionen verwendet, wie dies nachfolgend ausführlicher beschrieben wird. Diese segmentierte Struktur bewahrt die Vorzüge einer herkömmlichen PAL, wie die breite Eingangsdekodierung, die Multiplex- und Demultiplexfähigkeit, ohne das Array proportional zu der Anzahl der Eingangsleitungen zu vergrößern. Ferner sind die Array-Größe und die Kopplungseinrichtung so gewählt, daß die programmierbare Logikvorrichtung dieser Erfindung ein optimales Gleichgewicht an Funktionalität, Siliziumchipgröße und Leistung erreicht.
  • Die segmentierte Struktur und Leistung der programmierbaren Logikvorrichtung wird durch eine Schaltmatrix 101 weiter verbessert. Die Schaltmatrix 101 ist mit jeder der Logikschaltungen 106A, 106B, 106C und 106D verbunden und mittels der Einrichtung 111 mit zweckbestimmten Eingangspins 102a gekoppelt. Die Schaltmatrix 101, die im folgenden ausführlicher beschrieben wird, stellt eine programmierbare Hochgeschwindigkeitseinrichtung zum selektiven Übertragen von Signalen zwischen Logikschaltungen 106A-106D zur selektiven Lieferung von Eingangssignalen zu Logikschaltungen 106A-106D und zum selektiven Rückkoppeln von Signalen zu einer Logikschaltung dar. Somit führt die Schaltmatrix 101 (Fig. 6) eine ähnliche Funktion wie die Eingangsmultiplexer 11,12 (Fig. 5) aus. Tatsächlich ist die programmierbare Logikvorrichtung ein Array aus vier programmierbaren Logikvorrichtungen, die durch die Schaltmatrix 101 untereinander verbunden sind.
  • Dieses Ausführungsbeispiel der Erfindung ermöglicht im ungünstigsten Fall eine Eingang-Ausgang-Signalverzögerungszeit von 25 nsec und eine maximale externe Taktfrequenz von 33 MHz.
  • In den Figuren 7A und 7B sind zwei Ausführungsbeispiele der vorliegenden Erfindung gezeigt. In diesen Ausführungsbeispielen sind der Quadrant 100A und der Quadrant 100C identisch und der Quadrant 100B und der Quadrant 100D identisch. Die in Figur 7B gezeigte Architektur ist identisch mit der von Figur 7A, außer daß die vier globalen Eingangspins 102 und die zugehörige Schaltungsanordnung nicht vorgesehen sind. Die in den Figuren 7A und 7B gezeigten Blockdiagramme dienen nur zur Veranschaulichung und sollen nicht den Rahmen der Erfindung beschränken. In Anbetracht der hier offenbarten Grundgedanken sind für den Fachmann andere Konfiguratio-. nen der Eingangsmakrozellen, Ausgangsmakrozellen, Schaltmatrixeingangszellen und Logikschaltungen naheliegend. Die Fign. 8A und 8B beispielsweise stellen eine der Architektur der Fign. 7A bzw. 7B ähnliche Architektur dar. In den Fign. 8A und 8B ist die Gesamtzahl und Art der Makrozellen in jedem Quadranten dieselbe wie oben beschrieben, außer daß jeder Quadrant zwei vergrabene Makrozellen 119 enthält, die nicht direkt mit der Logikschaltung in dem Quadranten gekoppelt sind, d.h. die Leitungen 195 in den Fign. 7A und 7B entfallen. Dementsprechend hat die Logikschaltung in jedem Quadranten nur achtzehn Eingangsleitungen, acht von den Rückkopplungszellen 127 und zehn von der Schaltmatrix 101, statt der in den Fign. 7A und 7B dargestellten zwanzig Eingangsleitungen.
  • In einem bevorzugten Ausführungsbeispiel ist die integrierte Schaltung, wie in den Figuren 7 und 8 gezeigt, eine hochdichte, elektrisch löschbare (E²) wiederprogrammierbare PLD, die für Hochleistungs- und Logikkonfigurationszwecke die 1,5-Mikron-CMOS-Doppelmetall-E²-PROM-Technik anwendet. Alternativ kann die integrierte Schaltung der Erfindung entweder unter Verwendung von löschbarer programmierbarer ROM-Technik oder von bipolarer Durchschmelztechnik implementiert werden. Die Struktur in den Fign. 7B und 8B ist in einer einzelnen Vierzig-Pin-DIP und die Struktur in den Fign. 7A und 8A in einer Vierundvierzig-Pin-PLCC-Packung enthalten. Die Vierundvierzig-Pin-PLCC-Packung mit den 24 I/O-Pins, 14 zweckbestimmten Eingangspins und zwei Synchrontakt/Speicherfreigabe-Pins nutzen nur eine geringe Menge des Leiterplattenplatzes, aber dennoch wird in der kleinen Packung ein bedeutendes Ausmaß an Flexibilität und Hochgeschwindigkeitsleistung geboten.
  • Die diagonale Symmetrie der programmierbaren Logikvorrichtung gemäß den Fign. 7A, 7B, 8A und 8B ist ein wichtiger Aspekt dieser Erfindung. Die Symmetrie vereinfacht die Entwicklung des Siliziumchips durch den Siliziumchipkonstrukteur und die durch den Systemplaner erfolgende Planung eines die PLD dieser Erfindung verwendenden Systems. Ferner ist die Entwicklung von Softwaregeräten für die PLD ohne die inhärente Symmetrie schwieriger.
  • In einem bevorzugten Ausführungsbeispiel ist das programmierbare UND/ODER-Array als NOR.NOR-Array implementiert, das funktionsmäßig zu dem hier beschriebenen programmierbaren UND/ODER-Array aquivalent ist. Wie nachfolgend ausführlicher beschrieben, kann die Logikschaltung 106A beispielsweise auch ein programmierbares ODER- Array/festes UND-Array, ein PLA (programmierbares UND-Array und programmierbares ODER-Array), ein NOR.NOR-Array oder ein NAND.NAND-Array sein. Dementsprechend ist die Verwendung eines programmierbaren UND/ODER-Logik-Arrays nur illustrativ und soll nicht den Umfang der Erfindung einschränken.
  • In dem vorhergehenden Ausführungsbeispiel waren die programmierbaren Logikquadranten 100A, 100B, 100C und 100D diagonal symmetrisch, d.h. die Quadranten 100A und 100C waren identisch und die Quadranten 100B und 100D waren identisch, wie dies oben in den Fign. 7A, 7B, 8A und 8B dargestellt ist. Jeder programmierbare Logikquadrant 100A-100D wies ein programmierbares Array 106, vergrabene Zellen 120, Ausgangszellen 121, Eingangszellen 123, Rückkopplungszellen 127 und Schaltmatrixzellen 128 auf.
  • Diese Architektur bietet eine hohe Flexibilität, Hochgeschwindigkeitsleistung und bessere Siliziumchipeffizienz als programmierbare Logikvorrichtungsstrukturen nach dem Stand der Technik. Das Zell-Array 100 hat im ungünstigsten Fall eine Eingangs-Ausgangs- Signalausbreitungsverzögerung von 25 Nanosekunden und ermöglicht eine maximale externe Taktfrequenz von 33 MHz.
  • Während das obige Ausführungsbeispiel bedeutende Vorteile gegenüber Vorrichtungen nach dem Stand der Technik bietet, werden eine weitergehende Verbesserung bei der Siliziumchipeffizienz, Schnelligkeit und Flexibilität durch Verwendung symmetrischer programmierbarer Logikblöcke anstelle von lediglich diagonal symmetrischen Quadranten wie im obigen Ausführungsbeispiel erreicht. In dem nachfolgend beschriebenen Ausführungsbeispiel ist die Produkttermflexibilität weiter verbessert.
  • In diesem Ausführungsbeispiel weist eine elektrisch programmierbare Logikvorrichtung 400 (Fig. 9) eine Vielzahl von identischen programmierbaren Logikblöcken 402 auf, die in einem Array angeordnet sind. Die programmierbaren Logikblöcke 402 sind durch eine programmierbare Schaltmatrix 401 untereinander verbunden. Die programmierbaren Logikblöcke 402 kommunizieren nur durch die Schaltmatrix 401 miteinander. Darüber hinaus empfangen die programmierbaren Logikblöcke 402 alle Eingangssignale von der Schaltmatrix 401. Auf diese Weise können die programmierbaren Logikblöcke 402 als unabhängige programmierbare Logikvorrichtungen auf demselben Chip mit integrierter Schaltung angesehen werden.
  • Jeder programmierbare Logikblock 402 kann eine erste Vielzahl von Eingangssignalen von einer Vielzahl von Eingangs/Ausgangs-(I/O)- Pins 403 durch die Schaltmatrix 401 empfangen. Die Eingangssignale werden, wie nachfolgend ausführlicher erläutert, durch den Block 402 zu der Schaltmatrix 401 durchgelassen. Zweckbestimmte Eingangspins 404 liefern eine Vielzahl von Eingangssignalen zu der Schaltmatrix 401. Die von einem beliebigen Logikblock 402 verarbeiteten Eingangssignale sind die auf Eingangsleitungen 426 von der Schaltmatrix 401 empfangenen Signale. Jeder programmierbare Logikblock 402 kann ferner eine erste Vielzahl von Ausgangssignalen für die I/O-Pins 403 liefern.
  • Jeder der programmierbaren Logikblöcke 402 kann beispielsweise eine PLA-Schaltung, eine PAL-Schaltung, eine programmierbare NAND.NAND-Schaltung oder eine programmierbare NOR.NOR-Schaltung aufweisen. In einem Ausführungsbeispiel weist jeder programmierbare Logikblock 402 eine auf einem programmierbaren UND/ODER-Logik-Array basierende PAL-Schaltung auf. Jeder programmierbare Logikblock 402 hat zweiundzwanzig Eingangsleitungen von der Schaltmatrix 401 her, die Produktterme in der Größenordnung von achtzig ansteuern.
  • Diese segmentierte Struktur bewahrt wie die anderen, oben beschriebenen Ausführungsbeispiele die Vorzüge einer traditionellen PAL-Schaltung, wie beispielsweise die breite Eingangsdekodierung, die Multiplex- und Demultiplexfähigkeit, ohne das Array proportional zu der Anzahl der Eingangsleitungen zu vergrößern. Ferner sind die Array-Größe und die Schaltmatrix 401 so gewählt worden, daß die programmierbare Logikvorrichtung 400 ein optimales Gleichgewicht von Funktionalität, Siliziumchipgröße und Leistung erreicht.
  • Ein wichtiger Aspekt ist die feststehende Anzahl der Eingangsleitungen von der Schaltmatrix 401 zu jedem programmierbaren Logikblock 402. Wie nachfolgend ausführlicher beschrieben, wahrt dieses Merkmal die Schnelligkeitsleistung der Vorrichtung bei zunehmender Eingangs/Ausgangs-Fähigkeit, und dieses Merkmal verbessert die Möglichkeit, daß der Planer ein Konzept zu anderen Vorrichtungen in der Familie der programmierbaren Logikvorrichtung 400 überträgt.
  • Vorrichtungen nach dem Stand der Technik stellen dem programmierbaren Logik-Array üblicherweise eine Eingangsleitung für jede Logikmakrozelle in dem programmierbaren Logikblock und eine Eingangsleitung zu dem programmierbaren Logik-Array für jeden zweckbestimmten Eingangspin zur Verfügung. Jede Eingangsleitung zu dem programmierbaren Logik-Array treibt üblicherweise zwei Leitungen innerhalb des Arrays. Somit nimmt bei diesen Vorrichtungen nach dem Stand der Technik bei Zunahme der Anzahl der physischen Pins die Anzahl der Makrozellen zu und folglich die Anzahl der Eingangsleitungen zu dem programmierbaren Logik-Array. Bei zunehmender Anzahl der Eingangsleitungen erhöht sich die Größe des programmierbaren Logik-Arrays. Die größere Array-Größe führt zu schlechter Leistung bei der Geschwindigkeit und schlechter Ausnutzung des Arrays. Ferner begrenzt die Größe des programmierbaren Logik-Arrays die Pläne zur Übertragung auf andere Vorrichtungen mit verbesserter Eingangs/Ausgangs-Leistung.
  • Ein anderer wichtiger Aspekt in einem Ausführungsbeispiel dieser Erfindung ist die vollständige Symmetrie der programmierbaren Logikvorrichtung 400. Jeder der programmierbaren Logikblöcke 402 in der Vorrichtung 400 ist identisch. Darüber hinaus sind die programmierbaren Logikblöcke 402 in der programmierbaren Logikvorrichtung 400 symmetrisch um die Schaltmatrix 401 angeordnet (Fig. 9). Die Symmetrie vereinfacht die Entwicklung des Siliziumchips durch den Siliziumchipkonstrukteur und die durch den Systemplaner erfolgende Planung eines Systems, das die PLD dieser Erfindung verwendet. Ferner ist die Entwicklung von Softwaregeräten für die PLD ohne die inhärente Symmetrie schwieriger.
  • Die Schaltmatrix 401 bietet eine Einrichtung zum Auswählen von zweiundzwanzig Eingangssignalen, d.h. zweiundzwanzig Wegen für Informationen für die Logikschaltung in jedem programmierbaren Logikblock 402. Die Schaltmatrix 402 kann Signale von einem Block zu einem anderen Block, Signale von den zweckbestimmten Eingangspins zu einem Block oder Blöcken und ein Signal von einem Block zurück zu diesem Block leiten. Die Signalübertragung durch diese Schaltmatrix erfolgt sehr schnell, und die Flexibilität durch die zweiundzwanzig Wege für jeden programmierbaren Logikblock ermöglicht zahlreiche Kombinationen der Eingangssignale für jeden programmierbaren Logikblock der Vorrichtung.
  • In einem Ausführungsbeispiel ist die Schaltmatrix 401 unter Verwendung von programmierbaren Multiplexern implementiert. Wie nachfolgend ausführlicher beschrieben, sind unter Verwendung von programmierbaren Multiplexern mehrere Konfigurationen der Schaltmatrix 401 durchführbar. Die Anzahl der Multiplexer und die Größe jedes Multiplexers stellt einen Kompromiß zwischen der Größe des Chips und der Siliziumausnutzung dar. Nachfolgend ist ein bevorzugtes Ausführungsbeispiel beschrieben, und im Lichte dieser Beschreibung sind für den Fachmann andere Ausführungsbeispiele er sichtlich.
  • Wie in Fig. 10 detaillierter dargestellt, enthält jeder programmierbare Logikblock 402 ein programmierbares Logik-Array, beispielsweise ein Produktterm-Array 410, eine Logikzuordnungseinrichtung 411, programmierbare Logikmakrozellen 412 und I/O-Makrozellen 413. Das Produktterm-Array 410 erzeugt die Basislogik unter Verwendung von Signalen, die nur von der Schaltmatrix 401 geliefert werden.
  • Während das programmierbare Logik-Array 410 als programmierbares UND/ODER-Array bescchrieben ist, ist das programmierbare UND/ODER- Array in einem bevorzugten Ausführungsbeispiel als NOR.NOR-Array implementiert, das funktionell zu dem hier beschriebenen UND/ODER- Array äquivalent ist. Wie im folgenden ausführlicher beschrieben, kann das Produktterm-Array 410 beispielsweise auch ein programmierbares ODER-Array/feststehendes UND-Array, ein PLA (programmierbares UND-Array und programmierbares ODER-Array), ein NOR.NOR- Array oder ein NAND.NAND-Array sein. Dementsprechend ist die Verwendung eines programmierbaren UND/ODER-Logik-Arrays rein veranschaulichend und soll nicht den Umfang der Erfindung einschränken.
  • Die Logikzuordnungseinrichtung 411 ist so programmierbar, daß die Produktterme von dem Array 410, wie durch den Benutzer der Vorrichtung 400 gefordert, an die Logikmakrozellen 412 verteilt werden. Die Logikmakrozellen 412 konfigurieren die Signale von der Logikzuordnungseinrichtung 411, wie dies nachfolgend ausführlicher erläutert wird. Jede Logikmakrozelle weist ein programmierbares Speicherelement auf.
  • Die Ausgangssignale von den Logikmakrozellen 412 werden den I/O- Makrozellen 413 zugeführt und über die Leitungen 427 zu der Schaltmatrix 401 rückgekoppelt. Jede Logikmakrozelle, die zur Erzeugung eines Ausgangssignals verwendet werden könnte, ist mit einer I/O-Makrozelle gekoppelt. Die I/O-Makrozellen 413 liefern selektiv die Ausgangssignale von den Makrozellen 413 zu den I/O- Pins 403. Alternativ liefern die I/O-Makrozellen 413 Eingangssignale von den I/O-Pins 403 über die Leitungen 428 zu der Schaltmatrix 401. Wird eine I/O-Zelle zum Konfigurieren eines I/O-Pins als Eingangspin verwendet, kann die zu dieser I/O-Zelle gehörende Logikmakrozelle als vergrabene Logikmakrozelle funktionieren. Somit ist, wie nachfolgend ausführlicher erläutert, die Architektur der programmierbaren Logikvorrichtung 4000 zur effizienten Verwendung aller Resourcen innerhalb der Vorrichtung gedacht.
  • Jeder programmierbare Logikblock 402 enthält in diesem Ausführungsbeispiel zusätzlich einen asynchronen Rücksetzproduktterm und einen asynchronen Voreinstellproduktterm. Diese Produktterme werden zur Initialisierung aller Flipflops innerhalb des programmierbaren Logikblockes 402 verwendet. Außerdem enthält in einem Ausführungsbeispiel jeder programmierbare Logikblock 402 zwei Ausgangsfreigabeproduktterme für jede achte I/O-Makrozelle in dem Block. In jedem programmierbaren Logikblock 402 sind die I/O-Makrozellen 413 in Gruppen unterteilt, wobei in diesem Ausführungsbeispiel jede Gruppe acht I/O-Makrozellen enthält. Jede Gruppe von I/O-Makrozellen 413 empfängt zwei der Ausgangsfreigabeproduktterme.
  • Auf diese Weise weist in diesem Ausführungsbeispiel jeder programmierbare Logikblock 402 mehrere Produktterme in dem Produktterm- Array 410 auf, die für die Steuerfunktionen für alle Makrozellen in dem Block 402 sorgen. Dagegen wiesen die meisten EPLDs nach dem Stand der Technik eine jeder Makrozelle zugeordnete Vielzahl von Steuerprodukttermen auf. Bei den meisten synchronen registrierten Anwendungsgebieten wurde die Vielzahl von Steuerprodukttermen nach dem Stand der Technik nicht vollständig ausgenutzt. Daher waren Vorrichtungen nach dem Stand der Technik mit einer Vielzahl von Steuerprodukttermen pro Makrozelle üblicherweise sehr ineffizient. Folglich waren die Chipgröße und die Kosten der Vorrichtungen nach dem Stand der Technik beträchtlicher als erforderlich. Dagegen bieten die Steuerproduktterme dieser Erfindung eine Funktionalität, die derjenigen, die üblicherweise mit den früheren Vorrichtungen implementiert wurde, äquivalent ist, wobei die ineffiziente Verwendung von Resourcen innerhalb der Vorrichtung entfällt.
  • Wie im folgenden eingehender beschrieben wird, werden die programmierbaren Verbindungen innerhalb jedes programmierbaren Logikblockes 402 verwendet, um das Produktterm-Array 410 von der Schaltmatrix 401, den Makrozellen 412,413 und den I/O-Pins 403 abzukoppeln. Dieses Ankoppeln ermöglicht eine größere Flexibilität als bei den programmierbaren Logikvorrichtungen nach dem Stand der Technik möglich war, und ermöglicht es der Vorrichtung 400, effizient und schnell für die Anwendung durch einen Benutzer konfiguriert zu werden. Ein weiterer bedeutender Vorteil dieser Architektur liegt darin, daß die Schaltmatrix 401 eine feste, einheitliche, vorhersagbare und wegunabhängige Zeitverzögerung für alle Signale liefert, die durch die Schaltmatrix 401 durchgelassen werden. Somit ist in vielen Fällen die Leistung einer Konstruktion konstruktionsunabhängig und bereits bekannt, bevor mit der Konstruktion begonnen wurde.
  • Außerdem ermöglicht die Schaltmatrix 401 globale Anschlußfähigkeit und hohe Siliziumeffizienz. In diesem Ausführungsbeispiel liegt die Verzögerungszeit durch die Schaltmatrix 401 zum Anschluß eines programmierbaren Logikblocks an einen anderen programmierbaren Logikblock im Bereich von etwa einer bis zwei Nanosekunden. Dagegen hatten die auf einem zentralisierten programmierbaren Verbindungs-Array basierenden Architekturen eine Verzögerungszeit im Bereich von 13 bis 16 Nanosekunden zwischen den Blöcken. Die hohe interne Geschwindigkeit der Schaltmatrix dieser Erfindung ermöglicht, daß ein programmierbarer Logikblock ohne die normalen Ausgangspufferverzögerungen mit anderen programmierbaren Logikblöcken kommuniziert.
  • Das Abkoppeln der internen Resourcen innerhalb eines programmierbaren Logikblocks 402 steht in krassem Gegensatz zu den Familien der programmierbaren Logikvorrichtung nach dem Stand der Technik. Geschichtlich gesehen, stellten zwei der bekanntesten synchronen programmierbaren Logikvorrichtungsfamilien die programmierbaren Industrienorm-Logikvorrichtungen mit einer 16R8/16V8-Architektur von geringer Komplexität und die programmierbaren Logikvorrichtungen mit 22V10-Architektur von mittlerer Komplexität dar. Jede dieser Vorrichtungsarchitekturen umfaßt ein programmierbares UND- ODER-Array.
  • Bei jeder dieser drei synchronen programmierbaren Industrienorm- Logikvorrichtungen, d.h. der 16R8-, 16V8- und 22V10-Vorrichtung, ist das UND-ODER-Array stark mit den Makrozellen gekoppelt, d.h. die jeder der Makrozellen zugeordneten Produktterme gehören nur zu dieser bestimmten Makrozelle. Die Makrozellen sind ferner stark mit den I/O-Pins gekoppelt. Wird der I/O-Pin als Eingangspin verwendet, geht das dem I/O-Pin zugeordnete Register verloren. Diese Vorrichtungen haben nicht die Fähigkeit, die Speicherelemente als vergrabene Register zu betreiben. Ferner führt ein zweckbestimmter Ausgangsfreigabeproduktterm für jeden der I/O-Pins zu einer ineffizienten Produktterm-Array-Ausnutzung.
  • Die Hauptnachteile der bestehenden synchronen programmierbaren Logikvorrichtungen waren (i) das vollständige Koppeln von Makrozellen mit UND-ODER-Array und I/O-Pins, (ii) die statische Zuordnung von Produkttermen zu Makrozellen, (iii) das Fehlen von T- Flipflops innerhalb der Makrozellen zum Aufbau von Zählern, (iv) das Fehlen einer flexiblen Taktquellenauswahl, (v) die Zweckbestimmung einzelner Ausgangsfreigabeproduktterme für jeden I/O-Pin, (vi) eine begrenzte Anzahl von I/O-Pins und (vii) eine begrenzte Anzahl von Makrozellen.
  • Darüber hinaus führt das vollständige Koppeln der Makrozellen an das programmierbare Array und die I/O-Pins mit einer festgelegten, statischen Zuordnung der Produktterme für die Logik- und die Steuerfunktion zu einer schlechten Siliziumleistungsfähigkeit und einer Minderung der Geschwindigkeit. Auch die Übertragung der Architektur auf hochdichte Strukturen wird äußerst schwierig. Besonders Vorrichtungen nach dem Stand der Technik, die hohe Anzahlen an I/O-Pins und Makrozellen aufweisen, zeigen üblicherweise eine schwache Geschwindigkeitsleistung, und die Architektur ist keiner erhöhten Dichte zugänglich, da, wie oben erläutert, das Produktterm-Array bei zunehmender Anzahl der Makrozellen weiter vergrößert wird.
  • Dagegen bieten die programmierbaren Logikblöcke 402 (Fig. 10) dieses Ausführungsbeispiels eine simple hohe Leistung und eine dennoch flexible dichte und skalierbare Architektur. Die programmierbaren Logikblöcke 402 enthalten die besten Merkmale der verbreiteten oben beschriebenen programmierbaren Industrienorm-Logikvorrichtungen, wie beispielsweise die Einfachheit der Architektur mit einem einzelnen programmierbaren Logik-Array und Makrozellstrukturen zusammen mit abgekoppelten Elementen und einer optimierten globalen Anschlußfähigkeit mit festgelegten vorhersagbaren Hochgeschwindigkeitsverzögerungen. Die programmierbaren Logikblöcke 402 eliminieren die schlechte Siliziumleistungsfähigkeit der Vorrichtungen nach dem Stand der Technik.
  • In einem Ausführungsbeispiel ist die programmierbare Logikvorrichtung 400 dieser Erfindung mit einer elektrisch löschbaren 0,8- Mikron-Doppelmetall-CMOS-Technologie implementiert. Ferner hat die Vorrichtung 400 im ungünstigsten Fall eine Pin-Pin-Signalausbreitungsverzögerungszeit von etwa 15 Nanosekunden mit einem externen Systemtakt von 50 MHz. Darüber hinaus sind nach den Prinzipien dieser Erfindung sowohl die Ausgangslogikmakrozellen als auch die vergrabenen Logikmakrozellen durch die Schaltmatrix und die Logikzuordnungseinrichtung von dem Produktterm-Array abgekoppelt. Bei zunehmender Anzahl der Makrozellen ist das Produktterm-Array nicht proportional beeinflußt. Daher verschlechtert das Produktterm- Array dieser Erfindung, anders als die Vorrichtungen nach dem Stand der Technik, nicht die Geschwindigkeitsleistungsfähigkeit bei zunehmender Dichte der Makrozellen.
  • Tatsächlich bleibt die Pin-Pin-Signalausbreitungsverzögerungszeit bei zunehmender Logikmakrozellendichte in etwa konstant, da die Schaltmatrix für eine festgelegte bekannte Verzögerung sorgt, und die Produktterm-Array-Größe wird beibehalten. Auf diese Weise läßt sich eine mit einer Vorrichtung dieser Erfindung implementierte Konstruktion leicht auf eine Vorrichtung mit größeren Makrozellenfähigkeiten übertragen. Wie nachfolgend ausführlicher erläutert, besteht bei dieser Architektur keine Notwendigkeit eines Kompromisses zwischen Vorrichtungsgeschwindigkeit und Makrozellendichte mehr.
  • Die symmetrische programmierbare Logikvorrichtung 400 mit der programmierbaren Schaltverbindungsmatrix 401 ist in diesem Ausführungsbeispiel weiter in zwei Familien unterteilt. Eine erste Familie 400A (Fig. 11, Tabelle 1) weist 44-, 68- und 84-Pin-Vorrichtungen mit 32, 48 bzw. 64 Logikmakrozellen auf. Diese Familie, die ein hohes Pin/Logik-Verhältnis hat, ist für I/O-intensive Anwendungen bestimmt.
  • Dagegen ist eine zweite Familie 400B (Fig. 13, Tabelle 1) mit einem hohen Logik/Pin-Verhältnis für logikintensive Anwendungen bestimmt. Die zweite Familie bietet die doppelte Logikfähigkeit der ersten Familie in derselben Packung. Die Verwendung zweier Familien stellt eine geeignete Weise zum Auf- oder Anwärtsverschieben von Konstruktionen mit geringen Schwierigkeiten dar. Die I/O- und logikintensive Natur der Familien bietet den Systemplanern breitere Möglichkeiten, was es ihnen ermöglicht, ihre Konstruktionen den geeigneten Vorrichtungen anzupassen.
  • Die Merkmale für mehrere Ausführungsbeispiele jeder Familie sind in Tabelle 1 angegeben. TABELLE 1
  • Die Spalte "Pins" in Tabelle 1 gibt die Gesamtzahl der Pins für die die Packung enthaltende programmierbare Logikvorrichtung 400 an. Die Spalten "Max Eingänge" und "Max Ausgänge" entsprechen der Gesamtzahl von für Eingangs- bzw. Ausgangssignale zur Verfügung stehenden Pins. In diesem Ausführungsbeispiel weist jede der Vorrichtungen entweder sechs oder zehn zweckbestimmte Eingangspins auf. Ferner können, wie im folgenden erläutert, zwei der zweckbestimmten Eingngspins entweder als Taktquellen oder als Eingangsquellen funktionieren. Die Spalte "Max F/Fs" stellt die Höchstzahl an Flipflops in Vorrichtung 400 dar und, wie nachfolgend eingehender erläutert wird, weist in diesem Ausführungsbeispiel jede Logikmakrozelle in beiden Familien ein Flipflop auf.
  • Die Figuren 11, 12A, 12B und 12C sind Diagramme, die die erste Familie der programmierbaren Logikvorrichtungen 400A gemäß den Grundlagen dieser Erfindung darstellen. Die Figuren 11 und 12A zeigen die 44-Pin-Vorrichtung, die 32 I/O-Pins 403A-1, 403A-2 und sechs zweckbestimmte Direkteingangspins 404A aufweist. Wie zuvor beschrieben, sind die programmierbaren Logikblöcke 402A-1, 402A-2 jeweils identisch und weisen ein programmierbares Produktterm- Array 410A-1, 410A-2, eine programmierbare Logikzuordnungseinrichtung 411A-1, 411A-2, 16 programmierbare Logikmakrozellen 412A-1, 412A-2 und 16 programmierbare I/O-Makrozellen 413A-1, 413A-2 auf.
  • In den Figuren zeigt eine Leitung mit einem Strich hindurch und danach der Buchstabe N an, daß die Leitung N Leitungen repräsentiert. Somit liefert die Schaltmatrix 401A zweiundzwanzig Eingangssignale über zweiundzwanzig Eingangsleitungen 426A-1 zu dem Produktterm-Array 410A-1. In ähnlicher Weise liefern die Logikmakrozellen 412A-1 Rückkopplungssignale über sechzehn Leitungen 427A-1 zu der Schaltmatrix 401A und die I/O-Makrozellen 413A-1 liefern über sechzehn Leitungen 428A-1 I/O-Pin-Rückkopplungssignale zu der Schaltmatrix 401A.
  • Die Figuren 12A und 12C zeigen zwei unterschiedliche Ausführungsbeispiele der Vorrichtung 400A (Fig. 11), wobei die Verbindung der zweckbestimmten Eingangspins 404A detaillierter gezeigt ist. In den Fign. 12A und 12C sind zwei zweckbestirnrnte Eingangspins 404A5, 404A6 entweder ein zweckbestimmter Eingangspin, ein zweckbestimmter Taktpin oder ein Takt/Eingangs-Pin. Die Pins 404A5, 404A6 sind mit der Schaltmatrix 401A und den Logikmakrozellen 412A gekoppelt. Es sei darauf hingewiesen, daß in den Fign. 12A und 12C das Produktterm-Array 410A und die Logikzuordnungseinrichtung 411A kombiniert worden sind und durch ein einzelnes Kästchen 410A-411A repräsentiert werden.
  • Fig. 12B ist mit den Fign. 11 und 12A vergleichbar, in diesem Ausführungsbeispiel jedoch weist die programmierbare Logikvorrichtung 402A1 vier identische programmierbare Logikblöcke 402A1 und 10 zweckbestimmte Eingangspins auf, von denen zwei als zweckbestimmte Taktsignaleingangspins verwendet werden können. Jeder programmierbare Logikblock 402A1 hat 12 Logikmakrozellen 412A1, 12 I/O-Makrozellen 413A1 und 12 I/O-Pins 403A1.
  • Fign. 13, 14A, 14B und 14C sind Blockdiagramme der zweiten Familie der programmierbaren Logikvorrichtungen 400B nach den Grundlagen dieser Erfindung. Wie zuvor beschrieben, hat diese Familie von Logikvorrichtungen 400B ein höheres Logik/Pin-Verhältnis als die erste Familie 400A. Daher hat in diesem Ausführungsbeispiel jeder programmierbare Logikblock 402B (Fig. 13) nur acht I/O-Pins 403B. Das Produktterm-Array 410B, die Logikzuordnungseinrichtung 411B und die Logikmakrozellen 412B in dem programmierbaren Logikblock 402B sind den entsprechenden Vorrichtungen in dem programmierbaren Logikblock 402A (Fig. 11) ähnlich. Wie nachfolgend ausführlicher erläutert wird, weisen die Logikmakrozellen 412B (Fig. 13) jedoch Ausgangslogikmakrozellen 412B (Fig. 14A) und vergrabene Logikmakrozellen 412BB auf.
  • In einem Ausführungsbeispiel der zweiten Familie 400B ist jeder programmierbare Logikblock 402B (Fig. 13) mit nur acht I/O-Pins 403B verbunden. Auf diese Weise sind nur acht der Logikmakrozellen 412B mit acht I/O-Makrozellen 413B gekoppelt, welche ihrerseits mit acht I/O-Pins 403B gekoppelt sind (Fig. 14A). Die anderen acht Logikmakrozellen sind vergrabene Logikzellen 412BB, die auf Leitung 427B Rückkopplungssignale zu der Schaltmatrix 401B liefern.
  • Figuren 14A,14B und 14C zeigen die Unterteilung der Logikmakrozellen 412B in zwei Gruppen deutlicher. Die erste Gruppe der Logikmakrozellen 412BA liefert Rückkopplungssignale zu der Schaltmatrix 401B und Signale zu den I/O-Makrozellen 413B. Die zweite Gruppe der Logikmakrozellen 412BB empfängt Signale von den I/O-Pins 403B und liefert entweder Rückkopplungssignale oder Eingangssignale zu der Schaltmatrix 401 und funktioniert daher, wie zuvor beschrieben, als vergrabene Makrozellen. Auch die zweite Familie von Vorrichtungen 400B hat wie die erste Vorrichtungsfamilie 400A entweder sechs oder zehn zweckbestimmte Eingangspins 404B, von denen zwei entweder als Direkteingangspins oder Taktsignaleingangspins konfiguriert sein können. Die Erweiterung der Grundlagen der zweiten Familie von programmierbaren Logikvorrichtungen 400 auf andere Logikmakrozellen/Pin-Verhältnisse, z.B. 3:1 oder 4:1, ist im Lichte dieser Offenbarung für den Fachmann ersichtlich.
  • Der programmierbare Logikblock 402A für die erste Familie der programmierbaren Logikvorrichtungen 400 eines Ausführungsbeispiels dieser Erfindung ist in Fig. 15 in näheren Einzelheiten gezeigt. Insbesondere ist die Verbindung der Schaltmatrix 401A, des Produktterm-Arrays 410A, der Logikzuordnungseinrichtung 411A, einer Spalte von sechzehn Logikmakrozellen 412A, einer Spalte von sechzehn I/O-Makrozellen 413A und einer Spalte von sechzehn I/O-Pins 403A dargestellt. Das Produktterm-Array 410A weist ein programmierbares 40-mal-70-UND-Logik-Array auf. Vierundsechzig der Produkttermleitungen sind für die Logikzuordnungseinrichtung 411A vorgesehen. Außerdem weist das Produktterm-Array 410A in diesem Ausführungsbeispiel sechs zusätzliche Produkttermleitungen 410A64 bis 410A69 auf. (Das Produktterm-Array 410A1 (Fig. 12B) ist lediglich ein programmierbares 44x54-UND-Logik-Array. Die 54 Produktterme umfassen 48 Logikproduktterme und sechs Steuerproduktterme. In der folgenden Beschreibung wird diese Vorrichtung nicht weiter berücksichtigt. Im Licht dieser Offenbarung jedoch wird die Architektur dieser Vorrichtung für den Fachmann naheliegend sein.)
  • In Fig. 15 ist gezeigt, daß eine einzige Leitung die Logikzuordnungseinrichtung 411A mit jeder Logikmakrozelle 412An (n=1, ..., 16) verbindet. Wie jedoch nachfolgend ausführlicher erläutert wird, stellt die Leitung zwischen der Logikzuordnungseinrichtung 411A und jeder Makrozelle 412An mehrere Leitungen dar, z.B. 3 bis 4 Leitungen.
  • In diesem Ausführungsbeispiel sind die I/O-Makrozellen in zwei Gruppen unterteilt. Die erste Gruppe an I/O-Makrozellen 413A wird durch die I/O-Makrozellen 413A1 bis 413A8 gebildet, die die Signale auf den Ausgangsfreigabeprodukttermleitungen 410A64 und 410A65 empfangen. Die zweite Gruppe an I/O-Makrozellen 413A ist ebenso von I/O-Makrozellen 413A9 bis 413A16 gebildet, die Signale auf den Ausgangsfreigabeprodukttermleitungen 410A66 und 410A67 empfangen. Die Signale auf den Leitungen CLK0, CLK1 von den zweckbestimmten Eingangspins 404A5, 404A6 (Fig. 12A) werden jeder Logikmakrozelle 412A zugeführt (Fig. 15). Annlich werden der Produktterm auf der asynchronen Rücksetzleitung 410A68 und der Produktterm auf der asynchronen Voreinstelleitung 410A69 jeder der Logikmakrozellen 412A zugeführt.
  • Ausführliche Untersuchungen der Verwendungsstruktur der bekannten PAL-Vorrichtungen nach dem Stand der Technik zeigte, daß Produktterm-Arrays mit mehr als etwa zweiundzwanzig Eingangsleitungen sowohl siliziumineffizient als auch langsam in ihrer Leistung sind. Infolgedessen weist in diesem Ausführungsbeispiel jedes Produktterm-Array 410A zweiundzwanzig von der Schaltmatrix 401A herkommende Eingangsleitungen auf. Jede Eingangsleitung von der Schaltmatrix 401A ist mit einem Treiber verbunden, der sowohl das Signal auf der Eingangsleitung als auch das Komplement des Signals auf der Eingangsleitung zu dem Produktterm-Array 410A liefert, das seinerseits alle Logik- und Steuerproduktterme für den programmierbaren Logikblock 402A erzeugt.
  • Die Größe des 44x70-Produktterm-Arrays dieser Erfindung liegt zwischen den Produktterm-Arrays in der 16V8-Architektur und der oben beschriebenen 22V10-Architektur. Somit ist das Produktterm- Array so optimiert, daß es die Leistungs- und Kostenstruktur der 16V8-Architektur und dabei eine höhere Siliziumeffizienz als sowohl die 16V8- als auch die 22V10-Architektur aufweist. Tatsächlich hat das Produktterm-Array 410A eine derjenigen der 22V16- Architektur gleichwertige Logikfunktionalität, aber diese Funktionalität wird in einer programmierbaren Logikvorrichtung mit einem Produktterm-Array bereitgestellt, das ungefähr halb so groß ist wie die 22V10-Architektur.
  • Der programmierbare Logikblock 402B für die zweite Familie von programmierbaren Logikvorrichtungen 400 ist in Fig. 16 detaillierter dargestellt. Insbesondere die Verbindung von Schaltmatrix 401B, Produktterm-Array 410B, Logikzuordnungseinrichtung 411B, einer Spalte von sechzehn Logikmakrozellen 412B, die acht Ausgangslogikmakrozellen 412BA und acht vergrabene Logikmakrozellen 412BB aufweist, einer Spalte von acht I/O-Makrozellen 413B und einer Spalte von acht I/O-Pins 403B ist dargestellt. Das Produktterm-Array 410B weist ein programmierbares 44x68-UND-Logik-Array auf. Vierundsechzig der Produkttermleitungen sind für die Logikzuordnungseinrichtung 411B vorgesehen. Außerdem weist das Produktterm-Array 410B in diesem Ausführungsbeispiel vier zusätzliche Produkttermleitungen 410B64 bis 410B67 auf.
  • In diesem Ausführungsbeispiel empfangen die I/O-Makrozellen 413B die Signale auf den Ausgangsfreigabeprodukttermleitungen 410B64 und 410B65. Die Signale auf den Leitungen CLK0,CLK1 von den zweckbestimmten Eingangspins 404B5, 404B6 (Fig. 14A) werden jeder Ausgangslogikmakrozelle 412BA und vergrabenen Logikmakrozelle 412BB zugeführt (Fig. 16). In ähnlicher Weise werden der Produktterm auf der asynchronen Rücksetzleitung 410B66 und der Produktterm auf der asynchronen Voreinstelleitung 410B67 jeder Ausgangslogikmakrozelle 412BA und vergrabenen Logikmakrozelle 412BB zugeführt.
  • Jeder I/O-Pin ist mit einer vergrabenen Logikmakrozelle verbunden, so daß, wie nachfolgend ausführlicher erläutert, das Eingangssignal sowohl zu der vergrabenen Logikmakrozelle als auch zu der Schaltmatrix 401B geliefert wird, wenn der I/O-Pin als Eingangspin konfiguriert ist. Auf diese Weise kann das Eingangssignal entweder von der vergrabenen Logikmakrozelle verarbeitet werden, d.h. ein registriertes Eingangssignal sein, und dann der Schaltmatrix 401B zugeführt werden, oder direkt als einfaches kombinatorisches Eingangssignal der Schaltmatrix 401B zugeführt werden.
  • Die Schaltmatrix 401B ist durch zweiundzwanzig Eingangsleitungen mit dem programmierbaren Produktterm-Array 410B gekoppelt. Wie oben für Vorrichtung 410A beschrieben, ist jede Eingangsleitung mit einem Treiber verbunden, der das Signal auf der Eingangsleitung und das Komplement des Signais auf der Eingangsleitung erzeugt.
  • Die Logikzuordnungseinrichtung 411, d.h. die Logikzuordnungseinrichtung 411A (Fig. 15) und die Logikzuordnungseinrichtung 411B (Fig. 16), weist mehrere Routerelemente auf, wobei jedes Routerelement die Summe einer ausgewählten Anzahl von Produktsummentermen von dem Produktterm-Array 410 zu einer ausgewählten Makrozelle steuert. Die Anzahl der Produktterme pro Routerelement kann auf zahlreiche Arten ausgewählt werden. In diesem Ausführungsbeispiel beträgt die gewählte Anzahl an Produkttermen vier und es gibt ein Routerelement für jede Logikmakrozelle 412.
  • Hat ein programmierbarer Logikblock sechzehn Logikmakrozellen, liefert also, wie oben beschrieben, das Produktterm-Array vierundsechzig Produktterme an die Logikzuordnungseinrichtung 411. Ähnlich liefert in dem Ausführungsbeispiel, das 12 Logikmakrozellen pro programmierbaren Logikblock aufweist, das Produktterm- Array vierundachtzig Produktterme an die Logikzuordnungseinrichtung. Die Konfiguration der Routerelemente ist nur für eine Vielzahl der Routerelemente veranschaulichend, wobei jedes Routerelement eine festgelegte Anzahl an Produkttermen zu einer ausgewählten Makrozelle steuert, und soll die Erfindung nicht auf diese spezielle Konfiguration beschränken.
  • In der ersten Familie 400A von Logikvorrichtungen 400 weist die Logikzuordnungseinrichtung 411A sechzehn Routerelernente 520A auf (Fign 17A bis 17C). Jedes Routerelernent 520A weist ein ODER-Gatter 521A, das von Signalen von vier Produkttermleitungen in dem Produktterm-Array 410A angesteuert wird, und einen programmierbaren Eins-zu-Drei-Demultiplexer 522A auf, der einen einzigen Eingangsanschluß und drei Ausgangsanschlüsse aufweist. Die Architekturkonfigurationszellen 523A,524A werden zur Bildung einer Verbindung zwischen dem Eingangsanschluß und nur einem der Ausgangsanschlüsse verwendet, wie nachfolgend ausführlicher erläutert wird. Die Zellen 523A,524A liefern ein Ausgangswählsignal zu dem Demultiplexer, so daß das Signal auf der Eingangsleitung zu der gewählten Ausgangsleitung dort hindurchgelassen wird. In diesem Ausführungsbeispiel ist das ODER-Gatter 521A in dem Routerelement 520A enthalten, alternativ könnte das ODER-Gatter aber auch in dem UND-Array enthalten sein, so daß ein programmierbares UND-ODER- Array Signale für die Logikzuordnungseinrichtung 411A erzeugte.
  • Zwei Routerelernente 520A1, 520A9 (Fig. 17A) der Logikzuordnungseinrichtung 411A können zu nur zwei Makrozellen ein Signal liefern, z.B. treibt das Routerelement 520A1 entweder die Logikmakrozelle 412A1 oder die Logikmakrozelle 412A2, und das Routerelement 520A9 treibt entweder die Logikmakrozelle 412A9 oder die Logikmakrozelle 412A10 (Fig. 15). In ähnlicher Weise können die Routerelemente 520A8, 520A16 (Fig. 17C) in der Logikzuordnungseinrichtung 411A nur zu zwei Makrozellen ein Signal liefern; das Element 520A16 zu der Logikmakrozelle 412A15 oder der Logikmakrozelle 412A16 und das Element 520A8 zu der Logikmakrozelle 412A7 oder der Logikmakrozelle 412A8 (Fig. 15). Jedes der anderen zwölf Routerelemente 520An (Fig. 17B) in der Logikzuordnungseinrichtung kann ein Signal zu der Makrozelle 412A(n-1) oder der Makrozelle 412An oder zu der Makrozelle 412A(n+1) liefern, wobei n = 2, 3, ..., 7, 10, ..., 15 ist.
  • Daher können in diesem Ausführungsbeispiel die Logikmakrozellen 412A2 bis 412A7 und 412A9 bis 412A15 bis zu maximal eine Summe von zwölf Produkttermen empfangen, während die Logikmakrozellen 412A1, 412A8, 412A9 und 412A16 maximal nur eine Summe von acht Produkttermen empfangen. Die Logikmakrozellen 412A1, 412A8, 412A9 und 412A16 empfangen aufgrund des vollständigen Umlaufs am Ende des programmierbaren Logikblocks 402A maximal nur eine Summe von acht Produkttermen, z.B. das Vorsehen einer Leitung von dem Demultiplexer 522A16 zu der Logikmakrozelle 412A1 wird nicht unterstützt. Man nimmt an, daß ein vollständiger Umlauf eine Verschlechterung bei der Geschwindigkeitsleistung von etwa ein bis zwei Nanosekunden bei der Signalausbreitung von einem Eingangspin durch die programmierbare Logikvorrichtung 400A zu einem Ausgangspin verursacht.
  • Der Betrieb der Logikzuordnungseinrichtung 411A ist in Fig. 18 dargestellt. Die Kästchen L0 bis L15 auf der linken Seite der Figur, die jeweils die Ziffer 411 enthalten, stellen die jeweils vier Produktterme enthaltenden Produkttermklumpen in dem Produktterm-Array 410A dar. Auf der rechten Seite von Fig. 18 befinden sich 16 Kästchen R0 bis R15, die jeweils die Logikmakrozellen 412A1-412A16 repräsentieren. Die Zahl in den Kästchen R0 bis R15 ist die Höchstzahl an Produkttermen, die die Logikzuordnungseinrichtung 411A zu dieser Logikmakrozelle leiten kann. Die Zahlen in der Logikzuordnungseinrichtung 411A repräsentieren die Produktterme, wie sie auf der linken Seite der Figur numeriert sind. Demnach zeigt Fig. 18 deutlich die Produkttermsteuerfähigkeit der Logikzuordnungseinrichtung 411A dieser Erfindung.
  • Hierbei ist es wichtig, daß von der Logikzuordnungseinrichtung 411A keine Produkttermresourcen einer spezifischen Makrozelle auf Dauer zugeordnet werden. Falls ein I/O-Pin, der mit einer Makrozelle, beispielsweise mit der mit R7 bezeichneten Makrozelle in Fig. 18, gekoppelt ist, als Eingangspin verwendet wird und die Fähigkeit des vergrabenen Registers der Makrozelle R7 nicht benötigt wird, können demnach die Produktterme von den Zellen L6 und L7 in dem Produktterm-Array von der Makrozelle R6 verwendet werden. Auf diese Weise gibt es keine der Makrozelle L7 zugeordneten verschwendeten Produktterme, wenn die Makrozelle nicht verwendet wird.
  • Das von dem Ausgangsanschluß des ODER-Gatters 521A weitergeleitete Signal wird an den Eingangsanschluß des Demultiplexers 522A geliefert, und der Ausgangsanschluß des Demultiplexers 522A, der das Eingangssignal empfängt, wird durch die Konfiguration der Architekturzellen 523A und 524A bestimmt. Die möglichen Werte der Architekturzellen 523A und 524A sind in Tabelle 2 zusammen mit der Logikmakrozelle gezeigt, die die Summe der Produktterme empfängt, wenn die Architekturzellen diese Werte haben. Die Größen n, n-1 und n+1 in Tabelle 2 entsprechen der Definition in Fig. 17B. Die Konfiguration der Architekturzellen in Tabelle 2 sowie auch die anderen Tabellen in dieser Anmeldung sind rein veranschaulichend und sollen die Erfindung nicht auf die in Tabelle 2 oder den anderen Tabellen gegebene spezifische Konfiguration beschränken. TABELLE 2 Produkttermsteuerung
  • In Tabelle 2 entspricht eine Null einer logischen Null und ist einem programmierten Zustand gleichwertig, und eine Eins entspricht einer logischen Eins und ist einem unprogrammierten oder gelöschten Zustand gleichwertig. Die Programmierung für Logikmakrozellen 520A1, 520A8, 520A9 und 520A16 ist ebenfalls in Tabelle 2 angegeben, wobei n = 1, 8, 9 bzw. 16 ist, wobei (i) die Logikmakrozelle 412A(n-1) für die Makrozellen 520A1 und 520A9 reserviert ist; und (ii) die Logikmakrozelle 412(n+1) für die Logikmakrozellen 520A8 und 520A16 reserviert ist.
  • In der zweiten Familie 400B von Logikvorrichtungen 400 weist die Logikzuordnungseinrichtung 411B ferner sechzehn Routerelemente 520B (Fig. 19A bis Fig. 19D) auf. Jedes Routerelement 520B weist ein ODER-Gatter 521B, das von Signalen von vier Produkttermleitungen in dem Produktterm-Array 410B angesteuert ist, und einen programmierbaren Eins-zu-Vier-Demultiplexer 522B auf, der einen einzigen Eingangsanschluß und vier Ausgangsanschlüsse aufweist. Die Architekturkonfigurationszellen 523B, 524B werden zur Bildung einer Verbindung zwischen dem Eingangsanschluß und nur einem der Ausgangsanschlüsse verwendet, wie nachfolgend eingehender erläutert wird.
  • Das erste Routerelement 520B1 (Fig. 19A) der Logikzuordnungseinrichtung 411B kann entweder der Ausgangslogikmakrozelle 412BA1 (Fig. 16) oder der vergrabenen Logikmakrozelle 412BB1 ein Signal zuführen. Das zweite Routerelement 520B1 (Fig. 19B) kann entweder der Ausgangslogikzelle 412BA1 (Fig. 16), der vergrabenen Logikmakrozelle 412BB1 oder der Ausgangsmakrozelle 412BA2 ein Signal zuführen. Ebenso kann das letzte Routerelement 520B16 (Fig. 19D) in der Logikzuordnungseinrichtung 411B der vergrabenen Logikmakrozelle 412BB7 (Fig. 16), der Ausgangslogikmakrozelle 412BA8 oder der vergrabenen Logikmakrozelle 412BB8 ein Signal zuführen.
  • Jedes der anderen dreizehn Routerelemente 520Bn (Fig. 19C) in der Logikzuordnungseinrichtung 411B kann einer der vier Logikmakrozellen ein Signal zuführen. In Fig. 19C sind vier von dem Demultiplexer 522Bn ausgehende Ausgangsleitungen als Leitungen zu den Makrozellen (n-2), (n-1), (n) und (n+1) angegeben, wobei n=3,4,...,15 ist. Hier repräsentiert n die Position des Routerelements 520Bn in der Spalte der Routerelemente innerhalb der Logikzuordnungseinrichtung 411B. Um die Ausgangslogikmakrozellen und die vergrabenen Logikmakrozellen (n-2), ..., (n+1), mit denen die von dem programmierbaren Demultiplexer 522Bn ausgehenden Ausgangsleitungen n-2, n+1 verbunden sind, zu lokalisieren, sind die Spalte 412B der Ausgangslogikmakrozellen 412BA und die vergrabenen Logikmakrozellen 412BB (Fig. 16) von Eins bis Sechzehn durchnumeriert, wobei die Ausgangslogikmakrozelle 412BA1 Eins und die vergrabene Logikmakrozelle 412BB8 Sechzehn ist, d.h. n=1 ... 16. Leitung n ist dann mit der nten Logikmakrozelle in Spalte 412B verbunden.
  • Es sei beispielsweise angenommen, daß n=7 ist, d.h. Routerelement 520B7. Die siebte Makrozelle in Spalte 412B (Fig. 16) ist die Ausgangslogikmakrozelle 412BA4. Somit ist die von dem Routerelement 520B7 herkommende Leitung n mit der Ausgangslogikmakrozelle 412BA4 verbunden. Leitung n-1 ist mit der vergrabenen Logikmakrozelle 412BB3 und Leitung n-2 mit der Ausgangslogikmakrozelle 412BA2 verbunden. Leitung n+1 ist mit der vergrabenen Logikmakrozelle 412BB4 verbunden.
  • Daher können in diesem Ausführungsbeispiel die Logikmakrozellen 412B3 bis 412B14 bis zu maximal einer Summe von sechzehn Produkttermen empfangen, während die Logikmakrozellen 412B1 und 412B15 bis zu maximal einer Summe von zwölf Produkttermen empfangen können. Die Makrozelle 412B16 kann nur bis zu einer Summe von acht Produkttermen empfangen. Wiederum wird ein vollständiger Umlauf am Ende des programmierbaren Logikblockes 402B nicht unterstützt.
  • Der Betrieb der Logikzuordnungseinrichtung 411B ist in Fig. 20 dargestellt. Die Kästchen L0 bis L15 auf der linken Seite der Figur, die jeweils die Ziffer "4" enthalten, repräsentieren die jeweils vier Produktterme enthaltenden Produkttermklumpen in dem Produktterm-Array 410B. Auf der rechten Seite von Fig. 20 befinden sich 16 Kästchen R0 bis R15, wobei die Kästchen R0, R2, ..., R14 die Ausgangslogikmakrozellen und die Kästchen R1, R3, ..., R15 die vergrabenen Logikmakrozellen repräsentieren. Die Ziffer innerhalb der Kästchen R0 bis R15 ist die Höchstzahl an Produkttermen, die die Logikzuordnungseinrichtung 411B zu dieser Logikmakrozelle leiten kann. Die Zahlen innerhalb der Logikzuordnungseinrichtung 411B repräsentieren die Produktterme so, wie sie auf der linken Seite der Figur numeriert sind. Demnach zeigt Fig. 20 deutlich die Produkttermsteuerfähigkeit der Logikzuordnungseinrichtung 411B.
  • Es ist von Bedeutung, daß die Logikzuordnungseinrichtung 411B einer spezifischen Makrozelle keine Produkttermresourcen auf Dauer zuordnet. Daher gibt es in diesem Ausführungsbeispiel, wie zuvor für die Logikzuordnungseinrichtung 411A beschrieben, keine einer Makrozelle zugeordneten verschwendeten Produktterme, wenn die Makrozelle nicht verwendet wird.
  • Das von dem ODER-Gatter 521B des Ausgangsanschlusses weitergeleitete Signale wird dem Eingangsanschluß des Demultiplexers 522B zugeführt, und der Ausgangsanschluß, der das Eingangssignal empfängt, wird durch die Konfiguration der Architekturzellen 523B und 524B bestimmt. Die möglichen Werte der Architekturzellen 523B und 524B sind in Tabelle 3 gezeigt, und die Größen n, n-1, n-2 und n+1 sind gemäß der Definition in Fig. 19C. Wiederum dienen die Architekturzeilenwerte in Tabelle 3 nur der Veranschaulichung, wie oben für Tabelle 2 beschrieben, und sollen die Erfindung nicht auf die bestimmten gezeigten Werte beschränken. TABELLE 3 Produkttermsteuerung
  • In Tabelle 3 entspricht eine Null einer logischen Null und ist einem programmierten Zustand gleichwertig, und eine Eins entspricht einer logischen Eins und ist einem unprogrammierten oder gelöschten Zustand gleichwertig. Die Programmierung für die Zellen 520B1, 520B2 und 520B16 wird ebenfalls in Tabelle 3 angegeben, wobei n = 1, 2 bzw. 16 ist.
  • Auf diese Weise sind die Größen der Summen der Logikproduktterme für jede Makrozelle 412 in dem programmierbaren Logikblock 402 variabel und können für jede Logikmakrozelle in einem Bereich von einer Summe aus vier Produkttermen bis zu vier Summen aus vier Produkttermen, d.h. sechzehn Produkttermen, liegen. Anders als bei den meisten der herkömmlichen programmierbaren Industriestandardlogikvorrichtungen, bei denen die Produktterme bei jeder Makrozelle entweder in einem gleichen festgelegten Verteilungsmuster, wie bei der 16R8/16V8-Architektur, oder in einem variablen, aber festgelegten Verteilungsmuster wie der 22V10-Architektur, vorprogrammiert und festgelegt sind, werden nach den Grundlagen dieser Erfindung die Produkttermresourcen je nach Bedarf einer bestimmten Makrozelle zugeordnet. Diese Flexibilität bei der Zuordnung von Produkttermen zu Makrozellen führt zu einer bedeutenden gesteigerten Ausnutzung der Fähigkeit des programmierbaren UND-Arrays.
  • Ferner bietet die Logikvorrichtung 400 gegenüber den Vorrichtungen nach dem Stand der Technik eine höhere Geschwindigkeit und geringere Kosten.
  • Eine der Hauptursachen der Siliziumineffizienz bei den PAL-Strukturen nach dem Stand der Technik war die festgelegte Produkttermzuordnung für jede Makrozelle. Die meisten der synchronen PAL- Vorrichtungen haben einen festgelegten Überhang von sieben oder mehr Logikprodukttermen und weniger als einen oder zwei Steuerproduktterme für jeden Ausgangspin. Obwohl die festgelegte Zuordnung der Produktterme Flexibilität dahingehend bietet, daß erforderlichenfalls Produktterme verfügbar sind, sind die Produktterme verschwendet, wenn der Einsatz, für den die Vorrichtung verwendet wird, weniger als die festgelegten zugeordneten Resourcen erfordert. Die festgelegte Zuordnung der Produktterme zu Makrozellen zusammen mit der festgelegten Kopplung der Makrozellen mit den I/O-Pins oder I/O-Zellen, wie zuvor erläutert, führt zu einer signifikanten Siliziumineffizienz und Schwierigkeiten bei der Übertragung der Architektur auf höhere Dichten.
  • Ausführliche Untersuchungen der gängigsten PAL-Vorrichtungsverwendungsstrukturen ergaben, daß eine Vorrichtung mit vier bis sechzehn Produkttermen pro Makrozelle, die entweder ein D- oder ein T-Flipflop enthält, 90-95% der Bedürfnisse einer hochdichten programmierbaren Logik handhaben würde. Jegliche festgelegte Zuordnung von Produkttermen pro Makrozelle, selbst von zwei oder drei Produkttermen pro Makrozelle, stellt eine Verschwendung dar. Somit hat die programmierbare Logikvorrichtung 400 diese Beschränkungen überwunden, indem es keine festgelegte Zuordnung von Produkttermen pro Makrozelle gibt, aber dennoch stehen der Vorrichtung 400 durch die Logikzuordnungseinrichtung 411 vier bis sechzehn Produktterme programmierbar für jede Logikmakrozelle 412 zur Verfügung.
  • Ferner hat die Anmelderin herausgefunden, daß 85-95% der Synchronlogikeinsätze von PAL-Vorrichtungsstrukturen keine einzelnen Steuerproduktterme wie RÜCKSETZEN, VOREINSTELLEN, Ausgangsfreigabe oder Takt für jede Logikmakrozelle erfordern. Somit sind die Vorrichtungen nach dem Stand der Technik mit einer Vielzahl von Steuerprodukttermen für jede Makrozelle nicht siliziumeffizient, wenn sie für Synchroneinsätze verwendet werden, da der Großteil der Steuerproduktterme vergeudet ist. Ferner müssen, wie oben beschrieben, zur Erzielung von maximaler Siliziumeffizienz die Logikmakrozellen sowohl von dem Produktterm-Array als auch von den I/O-Pins abgekoppelt werden.
  • Für maximale Siliziumeffizienz jedoch reicht ein simples Ankoppeln der Logikmakrozellen von den I/O-Pins nicht aus. Zwar stellt das Ankoppeln der Logikmakrozellen von den I/O-Pins die Verwendung einer Logikmakrozelle als vergrabenes Register wieder her, ist jedoch keine Lösung für das Skalierbarkeitsproblem. Das bedeutendere Problem ist das Ankoppeln des Produktterm-Arrays von den Makrozellen, so daß bei zunehmender Anzahl von Makrozellen die Größe des Produktterm-Arrays konstant oder nahezu konstant bleibt, d.h. sich um etwa ein bis fünf Eingangsleitungen ändert.
  • Wie oben beschrieben, ordnet die Logikzuordnungseinrichtung 411 Produkttermresourcen in einer variablen Verteilung unter allen Makrozellen 412 in einem programmierbaren Logikblock 402 zu. Auf diese Weise koppelt die Logikzuordnungseinrichtung 411 im wesentlichen nicht genutzte Makrozellen 412 von dem Produktterm-Array 410 ab und ordnet bis zu zwölf bis sechzehn Produktterme pro genutzte Logikmakrozelle 412 zu, und dies mit minimaler Geschwindigkeitseinbuße, d.h. die Signalverzögerungszeit von Pin zu Pin, die die Signalverzögerungszeit der Logikzuordnungseinrichtung 411 umfaßt, ist kürzer als bei Vorrichtungen nach dem Stand der Technik mit äquivalenter Dichte.
  • Die Logikzuordnungseinrichtung 411 steht in starkem Kontrast zu dem Erweiterungs-Array-Konzept der EPLD-Familie der zweiten Generation. Genauer gesagt, um das Problem der Ineffizienz der fest zugeordneten Produktterme zu lösen, wählten einige der EPLDs mit mittlerer Dichte der zweiten Generation das Konzept eines Erweiterungsproduktterm-Arrays. Das Erweiterungs-Array-Konzept, das eine Variation des Konzepts eines Arrays aus gefalteten NANDs ist, ist ein Versuch zur Lösung des grundlegenden Problems eines festgelegten Überhangs von mindestens sieben bis acht Produkttermen pro Ausgangspin. Das Erweiterungsproduktterm-Array ist eine Sammlung von nicht zugeordneten Produkttermen, die zur Erweiterung der logischen Fähigkeit der programmierbaren Logikvorrichtung zur Verfügung stehen.
  • Da der Erweiterungs-Array-Überhang ein Zusatz zu dem feststehenden Überhang von acht Produkttermen pro Makrozelle ist (drei bis vier Logikproduktterme plus vier Steuerproduktterme), scheint dieser Ansatz jedoch die Produkttermüberhangprobleme eher zu erschweren als zu lösen. Ferner bringt das Erweiterungs-Array eine bedeutende Geschwindigkeitsverzögerung ein, da die Zeit, die ein Signal zum Durchlaufen des Arrays benötigt, für die Logik etwa 13-16 Nanosekunden betrug, wobei mehr als drei Produktterme erforderlich sind.
  • Auf diese Weise erlegt das Erweiterungs-Array-Konzept logikintensiven Einsätzen nicht nur eine signifikante Leistungseinbuße von mehr als drei Produkttermen auf, sondern auch signifikante Kosten bei dem mit dem Erweiterungs-Array in Zusammenhang stehenden feststehenden Überhang, und folglich eine größere Chipgröße für weniger logikintensive Funktionen. Also koppelt die Logikzuordnungseinrichtung 411, anders als das Erweiterungs-Array, nicht nur das Produktterm-Array 410 von den Logikmakrozellen 412 ab, sondern hat auch zur Folge, daß die bedeutende Geschwindigkeitsverschlechterung bei logikintensiven Einsätzen entfällt, während Siliziumchipeffizienz gegeben ist. Genauer gesagt, bei der Konfiguration der Vorrichtung 400 für einen bestimmten Einsatz sind die festgelegten Resourcen nicht verschwendet.
  • Jede Logikmakrozelle 412A dieser Erfindung in der Familie 400A ist identisch, so daß die in Fig. 21 dargestellte Logikausgangsmakrozelle 412A1 für jede Logikmakrozelle 412A in diesem Ausführungsbeispiel repräsentativ ist. In der Logikmakrozelle 412A1 wird eine Vielzahl von Logiktermen von der Logikzuordnungseinrichtung 411A auf den n Eingangsleitungen zu dem ODER-Gatter 500 geliefert. Die Ausgangsleitung des ODER-Gatters 500 ist mit einem ersten Eingangsanschluß eines programmierbaren Zwei-zu-Eins-Ausgangswegwahlmultiplexers 505 und mit dem Eingangsanschluß eines anstiegsflankengetriggerten programmierbaren D- oder T-Flipflops 503 mit asynchronen Voreinstell- und asynchronen Rücksetzeingangsanschlüssen, d.h. eines programmierbaren Speicherelementes, verbunden. Die asynchrone Voreinstelleitung 410A69 ist mit dem asynchronen Voreinstellanschluß des Flipflops 503 und die asynchrone Rücksetzproduktterrnleitung 410A68 ist mit dem asynchronen Rücksetzanschluß des Flipflops 503 verbunden.
  • Wie zuvor beschrieben und in den Fign. 15 und 16 gezeigt, hat bei jeder der programmierbaren Logikvorrichtungen dieser Erfindung jeder programmierbare Logikblock 402 innerhalb der Vorrichtung eine asynchrone Voreinstellprodukttermleitung und eine asynchrone Rücksetzprodukttermleitung, die mit den entsprechenden Anschlüssen jedes Flipflops 503 in den Logikmakrozellen, einschließlich der vergrabenen Logikmakrozellen, die im folgenden eingehender beschrieben sind, verbunden sind.
  • Die von den zweckbestimmten Eingangspins 404A5,404A6 ausgehenden Leitungen CLK0 und CLK1 sind mit dem ersten bzw. zweiten Eingangsanschluß eines programmierbaren Zwei-zu-Eins-Taktwahlmultiplexers 501 verbunden. Der Zustand des programmierbaren Multiplexers 501 wird durch die Architekturzelle 502 bestimmt. Ist die Zelle 502 auf eine logische 0 programmiert, wird das Signal auf Leitung CLK0 zu der Ausgangsleitung des Multiplexers 501 geliefert, die mit dem Takteingangsanschluß des Flipflops 503 verbunden ist. Ist dagegen die Zelle 502 auf eine logische 1 gesetzt, wird das Signal auf Leitung CLK1 dem Takteingangsanschluß des Flipflops 503 zugeführt.
  • Die Architekturkonfigurationszelle 504 wird zur Konfiguration des Flipflops 503 entweder als D-Flipflop oder als T-Flipflop verwendet. Der Ausgangsanschluß Q des Flipflops 503 ist mit einem zweiten Eingangsanschluß des programmierbaren Ausgangswegwahlmultiplexers 505 verbunden. Die Architekturzelle 506 konfiguriert den Multiplexer 505 so, daß entweder das Signal an dem ersten Eingangsanschluß, ein kombinatorisches Signal, oder das Signal an dem zweiten Eingangsanschluß, ein registriertes Signal, dem Ausgangsanschluß des Multiplexers 505 zugeführt wird.
  • Wie in den Fign. 22A und 22B gezeigt, wird, wenn die Architekturzelle 506 auf eine logische 1 programmiert ist, das Signal an dem ersten Eingangsanschluß von dem ODER-Gatter 500 zu dem Ausgangsanschluß von 505 geliefert, so daß die logische Makrozelle 412A1 einen kombinatorischen Ausgang liefert. Ist dagegen die Architekturzelle 506 auf eine logische 0 programmiert, wird das Ausgangssignal von dem Flipflop 503 an den Ausgangsanschluß des Multiplexers 505 geliefert, so daß die Logikmakrozelle 412A-1 als registrierte Zelle funktioniert (Fign. 22C-22F). Das Signal an dem Ausgangsanschluß des Multiplexers 505 (Fig. 21) wird zu Leitung 427A1 geliefert, die, wie zuvor beschrieben, eine der Rückkopplungsleitungen zu der Schaltmatrix 401 ist.
  • Die Endstruktur in der Logikmakrozelle 412A1 (Fig. 21) ist ein programmierbarer Zwei-zu-Eins-Polaritätswahlmultiplexer 507, dessen erster Eingangsanschluß mit dem Ausgangsanschluß des Multiplexers 505 verbunden ist und dessen zweiter Eingangsanschluß, der einen Inverter enthält, ebenfalls mit dem Ausgangsanschluß des Multiplexers 505 verbunden ist. Die Architekturzelle 508 steuert den Betrieb des Multiplexers 507.
  • Wenn die Zelle 508 auf eine logische 1 programmiert ist, liefert der Multiplexer 507 das Signal von dem Multiplexer 505 zu der I/O- Zelle. Ist dagegen die Architekturzelle 508 auf eine logische programmiert, invertiert der Inverter das Signal von dem Ausgangsanschluß des Multiplexers 505 so, daß das Komplement des Signals von dem Multiplexer 505 zu der I/O-Zelle geliefert wird. Daher bestimmt der Multiplexer 505 die Polarität des Ausgangssignals von der Logikmakrozelle 412A1.
  • In einem anderen (nicht gezeigten) Ausführungsbeispiel ist der Multiplexer 507 nicht in der Logikmakrozelle enthalten. Vielmehr wird zur Steuerung der Ausgangssignalpolarität ein Exklusiv-ODER- Gatter verwendet, das in der Eingangsleitung zu dem Speicherelement 503 unmittelbar vor dem Anschluß in der Eingangsleitung an den Multiplexer 505 angeordnet ist. Also besteht der wichtige Aspekt darin, daß die Logikmakrozelle 412A1 eine Einrichtung zur Steuerung der Logiksignalpolarität aufweist.
  • Daher kann eine Logikmakrozelle so konfiguriert sein, daß die Ausgangssignale entweder registriert oder kombinatorisch mit einer Polarität sind, die entweder aktiv high oder aktiv low ist. Wenn die Logikmakrozelle als Register verwendet wird, kann die Logikrnakrozelle ferner als D- oder T-Flipflop konfiguriert sein. Programmierbare Polarität zusammen mit der eingebauten T-Flipflopfähigkeit minimiert die Anzahl der zum Implementieren mancher Logikfunktionen erforderlichen Produktterme.
  • Die möglichen Konfigurationen der Logikmakrozelle 412A1 sind in den Fign. 22A bis 22F detaillierter gezeigt. Fig. 22A zeigt die als kombinatorische Zelle mit einer Aktiv-High-Polarität konfigurierte Zelle, während Fig. 2213 die als kombinatorische Zelle mit einer Aktiv-Low-Polarität konfigurierte Zelle zeigt. Die Fign. 22C und 22D zeigen die als registrierte Zelle mit einem D-Flipflop und Aktiv-High- bzw. Aktiv-Low-Polarität konfigurierte Zelle, während die Fign. 22E und 22F die Zelle als T-Flipflop mit Aktiv-High- bzw. Aktiv-Low-Polarität zeigen.
  • In den Fign. 22C bis 22F können die Signale auf Leitung CLK0 oder Leitung CLK1 durch den Multiplexer 501 gewählt werden, so daß jede dieser Figuren eigentlich zwei mögliche Konfigurationen repräsentiert. Daher lassen sich in diesem Ausführungsbeispiel mit den vier programmierbaren Architekturzellen in der Logikmakrozelle 412A1 insgesamt zehn mögliche Konfigurationen erhalten, die vier programmierbaren Architekturzellen konnen jedoch eine Gesamtheit von sechzehn möglichen Konfigurationen unterstützen.
  • Jede Ausgangslogikmakrozelle 412A1 liefert ein Ausgangssignal an eine I/O-Zelle und sendet das Ausgangssignal auch über eine zweckbestimmte interne Rückkopplungsleitung 427A1 an die Schaltmatrix 401. Das Rückkopplungssignal wird entweder für ein registriertes oder für ein kombinatorisches Signal geliefert und ist ungeachtet der I/O-Zellenkonfiguration immer verfügbar, wie im folgenden eingehender beschrieben wird. Da das Rückkopplungssignal entweder registriert oder kombinatorisch sein kann, ermöglicht es vergrabene sequentielle oder kombinatorische Funktionen und befreit folglich die I/O-Pins, so daß sie nur als Eingangspins verwendet werden. Wie zuvor beschrieben, wird jede Logikmakrozelle von einer I/O-Makrozelle von einem I/O-Pin abgekoppelt.
  • In einem anderen (nicht gezeigten) Ausführungsbeispiel ist das programmierbare Flipflop 503 durch ein programmierbares Speicherelement ersetzt, das als D-Flipflop, T-Flipflop oder Haltespeicher konfiguriert sein kann. Die Architekturzellen 504 und 506 werden zum Konfigurieren des Multiplexers 505 und des programmierbaren Speicherelementes verwendet, so daß das Signal an dem Ausgangsanschluß des Multiplexers 505 entweder: (i) ein D-Flipflop-Ausgangssignal, (ii) ein T-Flipflop-Ausgangssignal, (iii) ein Haltespeicherausgangssignal oder (iv) ein kombinatorisches Ausgangssignal ist.
  • In einem wieder anderen (nicht gezeigten) Ausführungsbeispiel ist das programmierbare Flipflop 503 durch ein programmierbares Speicherelement ersetzt, das entweder als T-Flipflop, D-Flipflop, JK- Flipflop, RS-Flipflop oder transparenter Haltespeicher funktioniert. Da das Speicherelement in diesem Ausführungsbeispiel in einem von vier Modi funktioniert, sind für das Speicherelement zwei Architekturzellen erforderlich. Ferner können zur Unterstützung der Funktion des JK-Flipflops oder des RS-Flipflops eine zusätzliche Eingangsleitung oder -leitungen erforderlich sein. Das Speicherelement arbeitet als T-Flipflop, wenn beide Zellen eine logische Null liefern, als D-Flipflop, wenn die erste Zelle eine logische Eins und die zweite Zelle eine logische Null liefert, als JK-Flipflop, wenn die erste Zelle eine logische Null und die zweite Zelle eine logische Eins liefert, und als RS-Flipflop, wenn beide Zellen eine logische Eins liefern.
  • Wie zuvor beschrieben, weist der programmierbare Logikblock der zweiten Familie 400B der programmierbaren Logikvorrichtung 400 eine Vielzahl von Logikausgangsmakrozellen 412BA und eine Vielzahl von begrabenen Logikmakrozellen 412BB auf. Die Logikmakrozelle 412BA, die manchmal als Ausgangslogikmakrozelle bezeichnet wird, gleicht der Logikmakrozelle 412A1 und die Beschreibung der Makrozelle 412A1 wird durch Bezugnahme hier aufgenommen.
  • Die vergrabene Logikmakrozelle 412BB (Fig. 23) gleicht ebenfalls den Ausgangslogikmakrozellen 412A,412BA (Fig. 21), außer daß die vergrabene Logikmakrozelle 412BB keinen Polaritätssteuerungsrnultiplexer 505 aufweist. Das Ausgangssignal von der vergrabenen Logikmakrozelle 412BB (Fig. 23) ist ein internes Rückkopplungssignal auf Leitung 427B2 zu Schaltmatrix 401B. Die vergrabenen Logikmakrozellen 412BB steigern die Logikfähigkeit der programmierbaren Logikvorrichtung 400B und bieten eine höhere Siliziumeffizienz als ohne die Zellen erreichbar wäre.
  • In der vergrabenen Logikmakrozelle 412BB weist das ODER-Gatter 500 eine Ausgangsleitung auf, die mit einem ersten Anschluß eines programmierbaren Eingangssignalwahl-Zwei-zu-Eins-Multiplexers 509 verbunden ist. Die Eingangsleitung von dem I/O-Pin ist mit dem zweiten Eingangsanschluß des programmierbaren Multiplexers 509 verbunden. Die Architekturkonfigurationszelle 510 wird zum Konfigurieren des Multiplexers 509 verwendet, so daß entweder das Signal von dem I/O-Pin oder von dem ODER-Gatter 500 zu dem Ausgangsanschluß des Multiplexers 509 geliefert wird.
  • Der Ausgangsanschluß des Multiplexers 509 ist mit dem Eingangsanschluß D/T des programmierbaren Flipflops 503 und dem zweiten Eingangsanschluß des Multiplexers 505 verbunden. Der Rest der vergrabenen Logikmakrozelle 412BB ist so konfiguriert, wie dies zuvor für die Ausgangslogikmakrozelle 412A1 beschrieben ist.
  • Die vergrabene Logikmakrozelle 412BB hat ebenfalls zehn unterschiedliche Konfigurationen. Die vergrabene Logikmakrozelle 412BB kann (i) einen kombinatorischen Ausgang von der Logikzuordnungseinrichtung 411 zu der Schaltmatrix 401 (Fig. 24A) liefern, (ii) ein registriertes D-Flipflop-Signal von der Logikzuordnungseinrichtung 411 zu der Schaltmatrix 401 liefern (Fig. 24B) oder (iii) ein registriertes T-Flipflop-Signal von der Logikzuordnungseinrichtung 411 zu der Schaltmatrix 401 liefern (Fig. 24C).
  • Ähnlich kann das Signal an dem I/O-Pin von dem Multiplexer 509 gewählt werden, so daß die vergrabene Logikmakrozelle (i) ein kombinatorisches Eingangssignal zu der Schaltmatrix 401 (Fig. 24D), (ii) ein registriertes Eingangssignal von einem D-Flipflop zu der Schaltmatrix 401 (Fig. 24B) oder (iii) ein registriertes Eingangssignal von einem T-Flipflop zu der Schaltmatrix 401 (Fig. 24F) liefert. Jedes der registrierten Signale kann mit einem beliebigen der Signale auf den Leitungen CLK0,CLK1 getaktet werden. Alternativ könnten die vergrabenen Logikmakrozellen 412BB die oben für das Flipflop 503 in der Logikausgangsmakrozelle 412A2 beschriebenen alternativen Speicherelemente aufweisen. Diese Beschreibung wird durch Bezugnahme hier aufgenommen.
  • Ein bedeutendes Merkmal der vergrabenen Logikmakrozelle 412BB ist der Dualbetriebsmodus, d.h. die Fähigkeit der vergrabenen Logikmakrozelle, entweder als Ausgangszelle mit Rückkopplung zu der Schaltmatrix 401 oder als Registriereingangszelle zu funktionieren. Die vergrabene Logikmakrozelle 412BB steigert zusammen mit dem umgehbaren registrierten Eingang die Ausnutzung und Siliziumeffizienz der programmierbaren Logikvorrichtung 400B. Der Schaltmatrix 401B stehen jederzeit sowohl Signale des zweckbestimmten Eingangspins als auch Rückkopplungssignale der vergrabenen Logikmakrozelle zur Verfügung. Dies gestattet die gleichzeitige Verwendung entweder der Signale des zweckbestimmten Eingangspins und der registrierten Eingangssignale von den vergrabenen Logikmakrozellen, oder der Signale der zweckbestimmten Eingangspins plus der vergrabenen registrierten Rückkopplungssignale.
  • Sowohl die Ausgangslogikmakrozellen 412A,412B als auch die vergrabenen Logikmakrozellen 412BB sind auf einer individuellen Makrozellbasis durch ein Signal von einem der beiden Synchrontakteingangspins getaktet. Diese Taktung ermöglicht es dem Benutzer, in einer einzigen Vorrichtung flexible und mehrere Zustandsmaschinene zu implementieren. Ferner steht der Pin der Schaltmatrix noch immer als Eingangspin zur Verfügung, selbst wenn einer der Takteingangspins als Taktsignalquelle verwendet wird.
  • Wie zuvor beschrieben, werden alle Logikmakrozellen einschließlich jeglicher vergrabenen Logikmakrozellen in dem programmierbaren Logikblock von einem gemeinsamen asynchronen Rücksetzproduktterm und einem gemeinsamen asynchronen Voreinstellproduktterm gesteuert. Auf diese Weise werden für jeden programmierbaren Logikblock alle Flipflops in den Logikmakrozellen, ob in einer Ausgangslogikmakrozelle oder einer vergrabenen Logikmakrozelle, gleichzeitig initialisiert.
  • In diesem Ausführungsbeispiel sind die Primärfaktoren bei der Architektur die Leistung und die Kosten in einer optimalen siliziumeffizienten Struktur. Viele programmierbare Logikvorrichtungen beispielsweise unterstützen sowohl synchrone als auch asynchrone Logikeinsätze auf einem einzigen Chip. Die Bedürfnisse bei synchronen und asynchronen Logikeinsätzen sind jedoch unterschiedlich. Zwar ergibt diese Konfiguration eine flexiblere Struktur, aber sie erfordert unabänderlich einen Kompromiß, der wiederum zu einer ineffizienten Struktur im Hinblick auf Verwendung, Geschwindigkeit und Siliziumeffizienz führt.
  • Ein spezielles Beispiel ist die festgelegte Zuordnung von einzelnen Rücksetz-, Voreinstell-, Takt- und Ausgangsfreigabeprodukttermen pro Makrozelle. Während eine derartige Zuordnung von Produkttermen ein großes Ausmaß an Flexibilität bietet, ist eine feste Zuordnung von vier Produkttermen pro Makrozelle - ein sehr kostenintensiver Vorschlag für synchrone Logikeinsätze - erforderlich. Bei synchronen Logikeinsätzen sind die Steuerproduktterme im wesentlichen verschwendet. Ferner erfordert die Individualprodukttermzuordnung Kompromisse bei der Taktwahl für die Logikmakrozellen, da die Makrozellen auf nur ein Taktsignal von einem externen Synchrontaktpin begrenzt sind, was wiederum die Vorrichtung auf eine Einzelsynchronzustandsmaschine begrenzt.
  • In Fig. 25 ist die I/O-Makrozelle 413 dieser Erfindung dargestellt. Die I/O-Makrozelle 413 hat einen einzelnen Dreizustandspuffer 540, der mit dem I/O-Pin 541 gekoppelt ist. Der Eingangsanschluß des Dreizustandspuffers ist mit der von einer Ausgangslogikmakrozelle, zum Beispiel der Logikmakrozelle 412A1 oder der Logikmakrozelle 412BA, ausgehenden Ausgangsleitung verbunden. Der Steueranschluß des Puffers 540 ist mit der Ausgangsleitung eines programmierbaren Vier-zu-Eins-Multiplexers 542 verbunden. Der Ausgangsanschluß des Puffers 540 ist auch mit der Schaltmatrix 401A in der ersten Familie 400A der Vorrichtungen und mit dem Multiplexer 509 für die vergrabene Makrozelle und der Schaltmatrix 401B in der zweiten Familie 400B von Vorrichtungen gekoppelt.
  • Zwei Ausgangsfreigabeproduktterme sind mit den ersten beiden Eingängen des Vier-zu-Eins-Multiplexers 542 verbunden. Der dritte Eingangsanschluß ist auf die Strornversorgungsspannung VCC gezogen und der vierte Anschluß ist geerdet. Der Multiplexer 542 liefert selektiv ein Ausgangsfreigabesignal zu dem Puffer 540.
  • Der Vier-zu-Eins-Multiplexer 542 weist zwei Architekturzellen 543,544 auf. Wenn die erste Zelle 543 auf eine logische 0 und die zweite Zelle 544 auf eine logische 1 programmiert ist, wird der erste Ausgangsfreigabeproduktterm dem Steueranschluß des Dreizustandspuffers 540 zugeführt. Wenn beide Architekturzellen 543,544 auf eine logische 1 programmiert sind, wird der zweite Ausgangsfreigabeproduktterm dem Ausgangssteueranschluß des Dreizustandspuffers 540 zugeführt. Wenn die Architekturzelle 543 auf eine logische 1 und die Zelle 544 auf eine logische 0 programmiert ist, wird der Anschluß des Puffers 540 mit der Stromversorgungsspannung VCC versorgt, und wenn beide Architekturzellen 543,544 auf eine logische 0 programmiert sind, ist der Anschluß des Dreizustandspuffers 540 geerdet.
  • Wenn dem Dreizustandspuffer 540 die Stromversorgungsspannung VCC zugeführt wird, ist der Puffer 540 dauerhaft zur Verwendung als Ausgangspuffer freigegeben; wenn dagegen der Steueranschluß geerdet ist, ist der Puffer 540 in den Dreizustand versetzt, so daß der I/O-Pin 541 auf Dauer als Eingangspin funktioniert. Wenn einer der Ausgangsfreigabeterme an den Steueranschluß angelegt wird, funktioniert der I/O-Pin als bidirektionaler I/O-Pin, der von dem Produktterm gesteuert wird.
  • Wie zuvor erläutert, sind die beiden Produktterme acht I/O-Zellen gemeinsam. Die beiden Produktterme ermöglichen, daß die Gruppe der acht I/O-Zellen als zwei separate Teilgruppen innerhalb der Gruppe von acht I/O-Makrozellen konfiguriert wird. Einer der Produktterme steuert die erste Teilgruppe der I/O-Makrozellen und der andere Produktterm steuert die zweite Teugruppe der I/O-Makrozellen. Auf diese Weise verbessert die Verwendung von zwei Produkttermen für jede I/O-Makrozelle die Fähigkeiten der PLDs 400 bedeutend.
  • Ein wichtiges Merkmal der I/O-Zellenstruktur dieser Erfindung besteht darin, daß diese Struktur die Logikmakrozellen 412 von den I/O-Pins 403 abkoppelt. Das Ankoppeln der Logikmakrozellen 412 von den I/O-Pins 403 hat zwei große Vorteile. Erstens bietet das Ankoppeln eine Dualrückkopplungsfähigkeit für die programmierbare Schaltmatrix 401 und zweitens wird durch das Ankoppeln die Verbindbarkeitsfrage an die Schaltmatrix 401 übertragen, wo sie hingehört, statt an dem Pin im voraus festgelegt zu werden. Dualrückkopplungsfähigkeiten sind günstig für solche Einsätze, die große Mengen an vergrabener Logik wie Zähler, Schieberegister und komplexe Zustandsmaschinen erfordern, und für I/O-intensive Einsätze, die große Mengen an Pins verlangen, wobei die Makrozellenfunktionen für die vergrabene Logik reserviert werden.
  • Die Schaltverbindungsmatrix 401 ist so angeordnet, daß jedes durch diese Matrix passierende Signal durch dieselbe Zahl an Bauteilen innerhalb der Schaltmatrix passiert. Dies gewährleistet, daß die Zeitverzögerungen für alle durch die Schaltmatrix 401 passierenden Signale im wesentlichen dieselben sind, und ermöglicht, falls gewünscht, eine Resynchronisierung von Gruppen gleichzeitiger Signale, die durch die Schaltmatrix 401 passieren.
  • Um durch die Schaltmatrix 401 maximale Geschwindigkeit zu erzielen, wurde die Matrix absichtlich nicht als Vollkoppelschalter implementiert. Die Schaltmatrix könnte als Vollkoppelschalter implementiert werden, um eine verbesserte Funktionalität zu erreichen. Die verbesserte Funktionalität der Vollkoppelschaltmatrix jedoch führt zu verminderter Geschwindigkeitsleistung und gesteigerter Chipgröße.
  • Die Schaltmatrix 401 wurde so gewählt, daß sie ein Gleichgewicht zwischen Funktionalität, Geschwindigkeitsleistung und Chipgröße lieferte. Die Schaltmatrix 401 ist als einzelner zentralisierter Schalter implementiert, um die einheitliche, festgelegte Verzögerungszeit für alle Signalwege durch die Schaltmatrix 401 zu erzielen, wie oben beschrieben. Die Schaltmatrix 401 kann jedoch auch als mehrere dezentralisierte Schalter implementiert sein. Im Lichte der Beschreibung der Schaltmatrix 401 und der Vollkoppelschaltmatrix könnten von einem Fachmann andere Schaltmatrizes mit veränderlichen Funktionalitäts-, Geschwindigkeits- und Chipgrößengraden konzipiert und implementiert werden.
  • Die Schaltmatrix 401A für die erste Familie 400A der programmierbaren Logikvorrichtungen 400 ist in Figur 26 dargestellt. In Figur 26 repräsentieren die horizontalen Linien Signaleingangsleitungen zu der Schaltmatrix 401A. Die vertikalen Linien stellen die Eingangsleitungen zu den programmierbaren Logikblöcken 402A-1, 402A-2 dar. Die Kreise an den Schnittpunkten der horizontalen und vertikalen Linien repräsentieren programmierbare Verbindungen. Genauer gesagt, weist die Schaltmatrix 401A, wie nachfolgend ausführlicher beschrieben, mehrere programmierbare Vier-zu-Eins-Multiplexer und mehrere programmierbare Fünf-zu-Eins-Multiplexer auf. Die oberste Gruppe von sechzehn horizontalen Leitungen sind Leitungen 428A-1 (Fig. 26), die Eingangssignale von den I/O-Pins 403A-1 liefern (Fig. 12A). Die nächste Gruppe von sechzehn horizontalen Leitungen sind von Logikmakrozellen 412A-1 (Fig. 12A) herkommende Leitungen 427A-1 (Fig. 26). Dementsprechend liefern diese Leitungen Rückkopplungssignale von den Logikmakrozellen 412A-1 zu der Schaltmatrix 401A. Die dritte Gruppe von sechzehn horizontalen Leitungen sind von den I/O-Pins 403A-2 herkommende Leitungen 428A-2 (Fig.l 26) und die vierte Gruppe von sechzehn horizontalen Leitungen sind von den Logikmakrozellen 412A-2 herkommende Leitungen 427A-2 (Fig. 26). Die beiden nächsten Leitungen sind zweckbestimmte Eingangsleitungen von zweckbestimmten Eingangspins 404A-1 und 404A-2. Die unteren sechs horizontalen Leitungen sind mit den vier zweckbestimmten Eingangspins 404A-3, 404A-4 und den beiden Takt/Eingangs-Pins 404A-5 und 404A-6 verbunden.
  • Die ersten zweiundzwanzig vertikalen Leitungen 426A-1 bis 426A22-1 von der linken Seite der Schaltmatrix 401A aus sind mit den Eingangsleitungen 426A-1 zu dem programmierbaren Logikblock 402A-1 verbunden. Die anderen zweiundzwanzig vertikalen Leitungen 426A1-2 bis 426A22-2 auf der rechten Seite der Schaltmatrix 401A sind Eingangsleitungen 426A-2 des programmierbaren Logikblocks 402A-2.
  • Der einem programmierbaren Logikblock zugeordnete Teil der Schaltmatrix 401A weist insgesamt zwanzig programmierbare Multiplexer auf, die ausgewählte Schaltmatrixeingangsleitungen, die horizontalen Linien in Fig. 26, programmierbar mit ausgewählten Schaltmatrixausgangsleitungen, den vertikalen Linien in Fig. 26, koppeln, welche ihrerseits die Eingangsleitungen zu einem programmierbaren Logikblock darstellen. Daher besteht die Schaltmatrix 401A aus insgesamt vierzig programmierbaren Multiplexern.
  • In jeder Gruppe von den Eingangsleitungen eines programmierbaren Logikblocks zugeordneten zwanzig programmierbaren Multiplexern sind sechzehn der Multiplexer Vier-zu-Eins-Multiplexer und vier Fünf-zu-Eins-Multiplexer. Zwei der Eingangsleitungen für jeden programmierbaren Logikblock sind direkt durch die Schaltmatrix 401A mit zweckbestimmten Eingangspins verbunden. In Fig. 26 ist jede vertikale Leitung entweder eine Ausgangsleitung von einem der Multiplexer oder eine der beiden festgelegten Leitungen. Die Kreise auf einer vertikalen Leitung stellen die programmierbaren Verbindungen zwischen den Eingangsleitungen und der Ausgangsleitung des bestimmten Multiplexers dar.
  • Die neunte vertikale Leitung von der linken Seite der Matrix aus beispielsweise ist die Eingangsleitung 426A9-1 zu dem programmierbaren Logikblock 402A-1 und die Ausgangsleitung eines programmierbaren Vier-zu-Eins-Multiplexers. Die Eingangsleitungen zu diesem Multiplexer sind die von dem neunten I/O-Pin des programmierbaren Logikblocks 402A herkommende Leitung 428A-9, die von der ersten Logikmakrozelle 402A1-1 herkommende Leitung 427A1-1 und die von dem zweiten programmierbaren Logikblock 402A-2 herkommenden entsprechenden Leitungen.
  • So stammen sechzehn der Eingangssignale für beide programmierbaren Logikblöcke 402A-1, 402A-2 aus vier unterschiedlichen Quellen, d.h. zwei I/O-Pin-Quellen und zwei Makrozellrückkopplungsquellen, die verschoben wurden, um eine Dualrückkopplungsfähigkeit zu ermöglichen.
  • Genauer gesagt, jeder programmierbare Vier-zu-Eins-Multiplexer hat zwei Architekturzellen, die zum Konfigurieren des Multiplexers verwendet werden, so daß nur eine der Eingangsleitungen mit der Ausgangsleitung verbunden ist. Die Architekturzellen liefern ein Eingangswählsignal an den Multiplexer. Die Resourcenwahl für jede Gruppe von Multiplexern ist in den Tabellen 4 und 5 gezeigt. In Tabelle 5 sei darauf hingewiesen, daß die Multiplexer Eingangssignale von nur einem einzigen programmierbaren Logikblock empfangen, so daß nur die dem Block 402A-1 zugeordneten Multiplexer in Tabelle 5 angeführt sind. Die Architekturzellenkonfiguration für Block 402A-2 ist dieselbe wie die für Block 402A-1 gezeigte, außer daß die Quellen von Block 402A-1 ausgehen. TABELLE 4 Signalwahl für programmierbarem Vier-zu-Eins-Multiplexer in Schaltmatrix 401A von Familie 400A TABELLE 5 Signalauswahl für programmierbaren Fünf-zu-Eins-Multiplexer in Schaltmatrix 401A von Familie 400A
  • Es sei darauf hingewiesen, daß in der Schaltmatrix 401A jedes Eingangssignal, das kein Signal der zweckbestimmten Eingangspins ist, mindestens zwei verschiedene Eintrittspunkte in einen programmierbaren Logikblock hat. Auf diese Weise werden die Eingangssignalquellen zu der Schaltmatrix 401A in geeigneter Weise verschoben, so daß bei jeder Logikmakrozellen und dem dieser Logikmakrozelle zugeordneten I/O-Pin sowohl das Logikmakrozellenrückkopplungssignal als auch das Signal an dem entsprechenden I/O-Pin jedem programmierbaren Logikblock in der Vorrichtung 400A zur Verfügung stehen.
  • Das Signal an dem ersten I/O-Pin beispielsweise ist ein Eingang zu dem ersten Vier-zu-Eins-Multiplexer, während das Rückkopplungssignal ein Eingang zu dem neunten Vier-zu-Eins-Multiplexer ist. Auf diese Weise ermöglicht diese Verschiebung die vergrabene registrierte Fähigkeit, ohne die Größe des Produktterm-Arrays zu steigern. Also ist die Größe des Produktterm-Arrays, anders als beim Stand der Technik, unabhangig von der Anzahl der Logikmakrozellen.
  • Ferner sei darauf hingewiesen, daß jeder programmierbare Logikblock dieselben Eingangssignale oder unterschiedliche Eingangssignale empfangen kann. Dies ermöglicht, daß die Struktur entweder als monolithisches Array mit einem Maximum von jedem Array gemeinsamen zweiundzwanzig Eingängen oder als zwei sesparate, relativ unabhängige geteilte Arrays mit einer maximalen Gesamtanzahl von zweiundvierzig Eingangssignalen funktionieren kann.
  • Eine alternative Darstellung der Schaltmatrix 401A ist in Fig. 27A und 2713 dargestellt. Zur Vereinfachung der Darstellung sind die Blöcke 402A-1 und 402A-2 als Blöcke "A" bzw. "B" dargestellt. In ähnlicher Weise wird die Logikmakrozelle 412A1-1 zu A1 und die Logikmakrozelle 412A1-2 zu B1, so daß die Makrozellen in Block 420A-1 zwischen Makrozelle A1 und Makrozelle A16 rangieren und in Block 402A-2 von Makrozelle B1 zu 132. Die Rückkopplungsleitungen sind durch das Makrozellenbezugszeichen repräsentiert. Der einer Makrozelle zugeordnete I/O-Pin ist durch das Makrozellenbezugszeichen, gefolgt von einem Karat "^". Die zweckbestirnrnten Eingangspins 404A sind von I1 bis I6 durchnumeriert.
  • Die Schaltmatrix 401B für die erste Familie 400B der programmierbaren Logikvorrichtungen ist in den Figuren 28A und 28B dargestellt. Die Schaltmatrix 401B ist eine kontinuierliche Vorrichtung, aber in den Figuren zur Erleichterung der Darstellung in zwei Teile geteilt. Die horizontalen Leitungen repräsentieren Signaleingangsleitungen zu der Schaltmatrix 401B. Die vertikalen Leitungen repräsentieren die Eingangsleitungen zu den programmierbaren Logikblöcken 402B-1 bis 402B-4. Die Kreise an den Schnittpunkten der horizontalen und vertikalen Leitungen repräsentieren programmierbare Verbindungen. Genauer gesagt, weist die Schaltmatrix 401B, wie nachfolgend eingehender erläutert, mehrere programmierbare Zwölf-zu-Eins-Multiplexer und mehrere programmierbare Vier-zu-Eins-Multiplexer auf.
  • Die oberste Gruppe von acht horizontalen Leitungen sind die Leitungen 428B-1 (Fign. 28A,28B), die Eingangssignale von den I/O- Pins 403B-1 liefern (Fig. 14A) (dem programmierbaren Logikblock 402B-1 zugeordnet). Die nächste Gruppe von sechzehn horizontalen Leitungen sind die Leitungen 427B-1 (Fign. 28A,28B) von den Logikmakrozellen 412B-1 (Fig. 14A). Die erste Gruppe von acht Leitungen 427BA-1 in den Leitungen 427B-1 kommen von den Ausgangslogikmakrozellen 412BA-1 her und die zweite Gruppe von acht Leitungen in den Leitungen 427B-1 kommen von den vergrabenen Logikmakrozellen 412BB-1 des programmierbaren Logikblocks 402B-1 her. Dementsprechend liefern die Leitungen 427BB-1 Rückkopplungssignale von den Logikmakrozellen 412B-1.
  • Die horizontalen Leitungen 428B3-2, 427B-2, 428B-3, 427B-3, 428B-4, 427BB-4 sind die gleichen Leitungen für die programmierbaren Logikblöcke 402B-2, 402B-3 bzw. 402B-4 wie die Leitungen 428B-1, 427B-1 für den programmierbaren Logikblock 402B-1. Die beiden nächsten Leitungen 429B1, 429B2 sind zweckbestimmte Eingangsleitungen von den zweckbestimmten Elngangsleitungen 404B-1 und 404B-2. Die unteren vier horizontalen Leitungen sind mit den zweckbestimmten Eingangspins 404B-3, 404B-4 und den beiden Takt/Eingangs-Pins 404B-5 und 404B-6 verbunden.
  • Die vertikalen Leitungen in den Fign. 28A und 28B sind in vier Gruppen von zweiundzwanzig Leitungen angeordnet. Jede Gruppe von zweiundzwanzig Leitungen ist ein Satz von Eingangsleitungen für einen der programmierbaren Logikblöcke 402B in der Vorrichtung 400B. Darüber hinaus ist die Gruppe von sechzehn vertikalen Leitungen 426B1-n bis 426B16-n, wobei n = 1, 2, 3, 4 in jeder der vier Leitungsgruppen ist, auf identische Weise programmierbar mit den horizontalen Eingangsleitungen gekoppelt. Die Gruppe von zwei Leitungen 426B17-n und 426BB17-n in jeder der vier Gruppen von zweiundzwanzig Leitungen ist mit den zweckbestimmten Eingangsleitungen 429B1 bzw. 429B2 verbunden.
  • Die letzten vier vertikalen Leitungen in jeder der vier Gruppen von zweiundzwanzig Leitungen sind programmierbar mit (i) zweckbestimmten Eingangsleitungen 429B3 bis 429B6 und (ii) gewählten Eingangsleitungen von dem programmierbaren Logikblock gekoppelt, für den die vier vertikalen Leitungen Eingangsleitungen sind.
  • Die ersten zweiundzwanzig vertikalen Leitungen 426B-1 bis 426B22-1 (Fig. 28A) von der linken Seite der Schaltmatrix 401B sind Eingangsleitungen 426B-1 zu dem programmierbaren Logikblock 402B-1. Die anderen zweiundzwanzig vertikalen Leitungen 426B1-2 bis 426B22-2 auf der rechten Seite der Schaltmatrix 401B sind Eingangsleitungen zu dem programmierbaren Logikblock 402B-2. In ähnlicher Weise sind die beiden Paare von zweiundzwanzig Leitungen 426B1-3 bis 426B22-3 und 426B1-4 bis 426B22-4 Eingangsleitungen zu den programmierbaren Logikblöcken 402B-3 bzw. 402B-4.
  • Der einem programmierbaren Logikblock zugeordnete Teil der Schaltmatrix 401B weist eine Gesamtmenge von zwanzig programmierbaren Multiplexern auf, die die Schaltmatrixeingangsleitungen, die horizontalen Leitungen in den Fign. 28A,28B, mit den Schaltmatrixausgangsleitungen, den vertikalen Leitungen in den Fign. 28A,28B, die die Eingangsleitungen zu einem programmierbaren Logikblock bilden, programmierbar koppeln. Daher besteht die Schaltmatrix 401B aus insgesamt achtzig programmierbaren Multiplexern.
  • In jeder Gruppe von den Eingangsleitungen eines programmierbaren Logikblocks zugeordneten zwanzig programmierbaren Multiplexern sind sechzehn der Multiplexer Zwölf-zu-Eins-Multiplexer und vier Vier-zu-Eins-Multiplexer. Zwei der Eingangsleitungen für jeden programmierbaren Logikblock sind direkt durch die Schaltmatrix 401B mit zweckbestimmten Eingangspins verbunden. In den Fign. 28A und 28B ist jede vertikale Leitung entweder eine Ausgangsleitung von einem der Multiplexer oder eine der beiden festgelegten Leitungen. Die Kreise an dieser vertikalen Leitung repräsentieren programmierbare Verbinder zwischen den Eingangsleitungen und der Ausgangsleitung des bestimmten Multiplexers.
  • Sechzehn der Eingangssignale für jeden programmierbaren Logikblock 402B-1, 402B-2, 402B-3, 402B-4 stammen von zwölf unterschiedlichen Quellen, d.h. vier I/O-Pin-Quellen, vier Ausgangslogikmakrozellrückkopplungsquellen und vier vergrabenen Logikmakrozellrückkopplungsquellen, die verschoben werden, um eine Dualrückkopplungsfähigkeit zu ermöglichen.
  • Genauer gesagt, hat jeder programmierbare Zwölf-zu-Eins-Multiplexer vier Architekturzellen, die zum Konfigurieren des Multiplexers verwendet werden, so daß nur eine der Eingangsleitungen mit der Ausgangsleitung verbunden ist. Die Resourcenwahl für jede Gruppe von Multiplexern ist in den Tabellen 6 und 7 dargestellt. TABELLE 6 Auswahl für programmierbaren Zwölf-zu-Eins-Multiplexer in Schaltmatrix 401B TABELLE 7 Auswahl für programmierbaren Vier-zu-Eins-Multiplexer in Schaltmatrix 401B
  • Es sei darauf hingewiesen, daß in der Schaltmatrix 401B jedes Eingangssignal, das kein Signal eines zweckbestimmten Eingangspins ist, mindestens zwei unterschiedliche Eintrittspunkte zu einem programmierbaren Logikblock hat. Auf diese Weise werden die Eingangssignalquellen zu der Schaltmatrix 401B in geeigneter Weise so verschoben, daß bei jeder Ausgangslogikmakrozelle und dem dieser Ausgangslogikmakrozelle zugeordneten I/O-Pin sowohl das Ausgangslogikmakrozellrückkopplungssignal als auch das Signal an dem entsprechenden I/O-Pin jedem programmierbaren Logikblock in der Vorrichtung 400B zur Verfügung stehen. Auf diese Weise ermöglicht diese Verschiebung die vergrabene registrierte Fähigkeit für die Ausgangslogikmakrozellen, ohne die Größe des Produktterm-Arrays zu steigern. Ferner sei darauf hingewiesen, daß jeder programmierbare Logikblock dieselben Eingangssignale oder unterschiedliche Eingangssignale empfangen kann. Dies ermöglicht es der Struktur, entweder als monolithisches Array mit einem Maximum von zweiundzwanzig Eingängen oder als vier separate relativ unabhängige geteilte Arrays mit einer maximalen Gesamtzahl von zweiundachtzig Eingangssignalen zu funktionieren.
  • Eine alternative Darstellung der Schaltmatrix 401B ist in den Fign. 29A bis 29D dargestellt. Der Einfachheit der Darstellung halber sind die programmierbaren Logikblöcke 402B-1 bis 402B-4 als Blöcke "A", "B", "C" bzw. "D" dargestellt. In ähnlicher Weise sind die Ausgangslogikmakrozellen und die vergrabenen Logikmakrozellen durch den Buchstaben des Blocks und die Ziffer der Position der Makrozelle in Spalte 412B dargestellt. Dementsprechend sind die Ausgangslogikmakrozellen und vergrabenen Makrozellen für den programmierbaren Logikblock A von A1 bis A16 durchnumeriert, wobei A1, A3, ..., A15 Ausgangsmakrozellen und die Größen A2, A4, A16 vergrabene Makrozellen sind. Die Makrozellen in den anderen programmierbaren Logikblöcken sind auf ähnliche Weise neu numeriert. Wie zuvor für die Schaltmatrix 401A angegeben, werden die Rückkopplungsleitungen durch das Bezugszeichen der Makrozelle reprasentiert. Der einer Makrozelle zugeordnete I/O-Pin wird durch das Makrozellenbezugszeichen, gefolgt von einem Karat "^", dargestellt. Die zweckbestimmten Eingangspins 404B sind von 11 bis 16 durchnumeriert. Die Figuren 29A bis 29D sind völlig äquivalent zu den Figuren 28A und 28B und sind einfach eine andere Art der Darstellung der Eingangs- und Ausgangsleitungen des programmierbaren Multiplexers, die die Schaltmatrix 401B umfassen.
  • In den vorhergehenden Ausführungsbeispielen der programmierbaren Logikvorrichtungen 400A,400B trieb die Schaltmatrix 401 zweiundzwanzig Eingangsleitungen für jeden programmierbaren Logikblock in der Vorrichtung. Der bedeutende Aspekt, wie zuvor beschrieben, besteht darin, daß die Anzahl der Eingangsleitungen festgelegt ist und sich bei Veränderungen bei der Anzahl der Logikmakrozellen oder der zweckbestimmten Eingangspins nicht ändert. In einem anderen (nicht gezeigten) Ausführungsbeispiel gleicht die Architektur der programmierbaren Logikvorrichtung der Vorrichtung 400A. In diesem Ausführungsbeispiel weist die Vorrichtung jedoch vier identische programmierbare Logikblöcke auf, die jeweils, wie zuvor beschrieben, mit dem programmierbaren Logikblock 402A identisch sind. In diesem Ausführungsbeispiel jedoch beträgt die Anzahl der Eingangsleitungen zu dem Produktterm-Array vierundzwanzig. Die Schaltmatrix für dieses Ausführungsbeispiel ist in den Figuren 30A bis 30D dargestellt.
  • Wieder sind die vier programmierbaren Logikblöcke mit den Buchstaben "A", "B", "C", "D" bezeichnet. Die Logikmakrozellen sind von 1 bis 16 durchnumeriert, so daß die Logikmakrozelle A10. die zehnte Logikmakrozelle in dem ersten programmierbaren Logikblock ist. Die einer Logikmakrozelle zugeordneten I/O-Pins sind mit einem Karat "^" bezeichnet. Wie in den Figuren 30A bis 30D gezeigt, besteht die Schaltmatrix aus vierundzwanzig programmierbaren Dreizehn-zu-Eins-Multiplexern für jeden programmierbaren Logikblock. Dementsprechend weist die Schaltmatrix zweiundfünfzig programmierbare Multiplexer auf.
  • In den Figuren 30A bis 30D repräsentiert die am weitesten links gelegene Spalte die Eingangsleitung zu dem programmierbaren Logikblock, und die anderen Größen in der Zeile mit der Eingangsleitung repräsentieren die Eingangsleitungen zu dem programmierbaren Dreizehn-zu-Eins-Multiplexer. Dementsprechend kann die Schaltmatrix 401 dieser Erfindung unter Verwendung vieler verschiedener unterschiedlich großer programmierbarer Multiplexer implementiert werden, und in jedem Fall hat die Schaltmatrix eine festgelegte vorhersagbare Verzögerungszeit und liefert für jedes Eingangssignal mehrere Wege, um die Schaltmatrix zu einer Eingangsleitung eines programmierbaren Logikblocks zu passieren.
  • Somit weisen die programmierbaren Logikvorrichtungen 400A,400B dieser Erfindung, wie oben beschrieben, eine Vielzahl von programmierbaren Verbindungen auf. Die programmierbaren Verbindungen werden von mehreren elektrisch löschbaren Zellen gesteuert. Die Anzahl der Zellen hängt von der speziellen Implementierung ab, doch die Zahl der Zellen für die Vorrichtung 400A (Fig. 12A) und für die Vorrichtung 400B (Fig. 14A) sind in Tabelle 8 bzw. 9 angegeben. TABELLE 8 Vorrichtung 400A TABELLE 9 Vorrichtung 400B
  • In der vorangehenden Beschreibung wurden der Einfachheit des Terminus halber nur programmierbaren Architekturzellen beschrieben. Die Zellen in diesen Anwendungsgebieten können Sicherungen, EPROM- Zellen oder EEPROM-Zellen sein. Die Architekturzellen sind eine Einrichtung, um entweder ein Eingangswählsignal oder ein Ausgangswählsignal an eine programmierbare Vorrichtung zu liefern, so daß die Vorrichtung ein gewünschtes Signal dort hindurchleitet.
  • Die vorangehende Beschreibung hat ein programmierbares UND/ODER- Array als eine Anordnung von UND-Gattern beschrieben, die zur Bildung von Produkten aus logischen Variablen verwendet wird, woran sich eine Anordnung von ODER-Gattern zur Bildung von Summen aus diesen Produkttermen anschließt. In einem bevorzugten Ausführungsbeispiel jedoch ist das programmierbare UND-/festgelegte ODER-Array (UND/ODER-Array) jedoch unter Verwendung von dem Fachmann bekannten logischen Transformierten durch ein programmierbares NOR-/festgelegtes NOR-Array ersetzt. Die Verwendung der NOR- Logik bietet eine gegenüber dem äquivalenten programmierbaren UND/ODER-Array eine verbesserte Geschwindigkeit, aber die logischen Funktionen der beiden Arrays sind äquivalent.
  • Das UND/ODER-Array kann auch Inverter aufweisen, die Komplemente ( ) der Eingangssignale (A) bilden. Das UND/ODER-Array kann auch als Anordnung von ODER-Gattern zur Bildung von Summen aus logischen Variablen, gefolgt von einer Anordnung aus UND-Gattern zur Bildung von Produkten aus diesen Summen, angeordnet sein, indem die Demorgan-Theoreme
  • auf dem Durchschnittsfachmann bekannte Weise verwendet werdcen. Die Summe der logischen Produktterme A B+C D+E F G kann als das Komplement des Produktes der Summen komplementierter Variablen geschrieben werden, nämlich
  • Der Einfachheit halber werden eine logische Summe aus logischen Produkten und ein logisches Produkt aus logischen Summen hier kollektiv als "logische Summe/Produktterme" bezeichnet.
  • Die in Figur 15 dargestellte Gatterkonfiguration beispielsweise ist im PAL-Modus ausgedrückt, in dem die UND-Gatter normalerweise programmierbar und die ODER-Gatter normalerweise festgelegt sind. Unter Verwendung der oben angewandten Demorgan-Theoreme und durch Einbringen von Signalinvertern in die Signalwege kann man die Gatterkonfiguration auch als programmierbare ODER-Gatter und festgelegte UND-Gatter ausdrücken. Allgemeiner gesagt, kann man die Gatter in einem PLA-Modus konfigurieren, wobei sowohl die UND- als auch die ODER-Gatter programmierbar sind.
  • Die Schaltcharakteristiken der programmierbaren Logikvorrichtung 400 sind in Tabelle 10 angegeben. Die Parametersymbole und Parameterdefinitionen sind ausführlicher in dem PAL Device Data Book, Advanced Micro Devices, Sunnyvale, CA, S. 5-533 bis 5-535 (1988) beschrieben, die hiermit durch Bezugnahme Teil dieser Anmeldung bilden. TABELLE 10 SCHALTCHARAKTERISTIKEN IN KOMMERZIELLEN BETRIEBSBEREICHEN
  • Der Parameter fMAX ist die maximale Taktrate, mit der die Vorrichtung garantiert arbeiten kann. Da die programmierbaren Logikvorrichtungen inhärente Flexibilität eine Auswahl getakteter Flipflopkonstruktionen bietet, ist der Parameter fMAX für drei Synchronkonzeptarten spezifiziert.
  • Der erste Konstruktionstyp ist eine Zustandsmaschine mit chipextern gesendeten Rückkopplungssignalen. Diese externe Rückkopplung köönte zu den Vorrichtungseingangspins oder zu einer zweiten Vorrichtung in einer Mehrchipzustandsmaschine zurückgehen. Der die Periode definierende langsamste Weg ist die Summe der Takt-zu- Ausgang-Zeit und der Eingangsaufbauzeit für die externen Signale (tS + tCO). Der Reziprokwert fMAX ist die Höchstfrequenz bei externer Rückkopplung oder in Verbindung mit einer Vorrichtung von aqulvalenter Geschwindigkeit. Dieses fMAX wird mit "fMAX extern" bezeichnet.
  • Der zweite Konstruktionstyp ist eine Einzelchipzustandsmaschine mit bloßer interner Rückkopplung. In diesem Fall sind die Flipflopeingänge durch die Vorrichtungseingänge und die Flipflopausgänge definiert. Unter diesen Umständen ist die Periode durch die interne Verzögerung von den Flipflopausgängen durch die interne Rückkopplung und Logik zu den Flipflopeingängen begrenzt (tS + tCF). Diese fMAX wird mit "fMAX intern" bezeichnet.
  • Der dritte Konstruktionstyp ist ein einfacher Datenwegeinsatz. In diesem Fall werden Eingangsdaten an den Flipflop angelegt und durchgetaktet; es wird keine Rückkopplung verwendet. Unter diesen Umständen ist die Periode durch die Summe der Datenaufstellzeit und die Datenhaltezeit begrenzt (tS + tH). Eine Untergrenze für die Periode jeder fMAX-Art jedoch ist die Mindesttaktperiode (tWH + tWL). Üblicherweise bestimmt diese Mindesttaktperiode die Periode für die dritte fMAX, die als "fMAX keine Rückkopplung" bezeichnet wird.
  • Die Familie der programmierbaren Logikvorrichtungen 400 unterstützt 50-MHz-Systemtakte der Einsätze von sich entwickelnden Hochgeschwindigkeits-RISC- und CISC-Mikroprozessoren. Wie oben beschrieben, ist die externe fMAX für Familie 400 50 MHz. Diese 50- MHz-Frequenz umfaßt die Verzögerungszeit von Takt zu externern Pin und die Vorbereitungszeit des Flipflops. Somit kann in der Vorrichtung 400 eine Zustandsmaschine implementiert werden, die bei einer Systemtaktfrequenz von 50 MHz läuft. Zum Kommunizieren entweder mit einer zweiten Vorrichtung oder um möglicherweise extern zu Vorrichtung 400 mit einer Taktrate von 50 MHz rückzukoppeln, können chipextern Datensignale gesendet werden.
  • Außer der externen 50-MHz-Taktfrequenz unterstützt die Familie der Vorrichtungen 400 interne Taktfrequenzen von 62,5 MHz und Pipelinefrequenzen von bis zu 83 MHz.
  • Im Grunde hat die Architektur zwei einfache Zeitverzögerungsparameter, d.h. eine Array-Verzögerung und eine Schaltmatrixverzögerung. Die Eingang-Ausgang-Pin-Pin-Verzögerung bei einem einzelnen programmierbaren Logikblock 402, einschließlich der Schaltmatrix 401 und programmierbarer Array-Zeitverzögerungen beträgt im ungünstigsten Fall etwa 15 ns (einschließlich Temperatur, Spannung). Bei Signalen, die die mehreren programmierbaren Logikblöcke extern durchlaufen, ist die Verzögerungszeit ein Vielfaches von 15 ns. Die Zeitverzögerung bei einem zwei programmierbare Logikblöcke über die Schaltmatrix 401 durchlaufenden Signal beträgt etwa 30 ns, eine Zeitverzögerung bei drei Blöcken etwa 45 ns. Verzögerungsberechnungen für die Vorrichtungen dieser Erfindung sind einfach, schnell, vorhersagbar und unabhängig von dem internen Weg. Dies ist anders als bei einigen der komplexen PLDs mittlerer Dichte, bei denen die Verzögerungen langsam, variabel, abhängig von dem internen Weg und mühsam zu berechnen sind. Die Familie der Vorrichtungen 400 wahrt die inhärente Einfachheit und festgelegte Zeitvorhersagbarkeit traditioneller PAL-Vorrichtungen - wobei den Planern vor der Implementierung von Konzepten eine recht einfache, vorhersagbare Leistung geboten wird.
  • Die Hochleistungsarchitektur der Vorrichtungen 400 unterstützt sowohl gatterintensive als auch registerintensive Funktionen mit hoher Geschwindigkeit. Beispielsweise können ein 16-Bit-Adreßdekodierer, ein 16-Bit-Multiplexer oder 4 bis 16 Demultiplexer (gatterintensive Funktionen) oder ladefähige 16-Bit-Vorwärts-Rückwärts-Zähler und 16-Bit-Binärsynchronzähler (registerintensive Funktionen) bei einer Maximalfrequenz von 50 MHz implementiert werden, wobei ermöglicht wird, daß die Vorrichtung 400 mit bis zu 50-MHz-RISC- und CISC-Mikroprozessoren implementiert werden kann.
  • Ferner unterstützt die Struktur des programmierbaren Logikblocks 402 mit einer Hochgeschwindigkeitsmatrix 401 extrem logikintensive Funktionen über zwei Ebenen von festgelegten Zeitverzögerungen von 30 ns für den ungünstigsten Fall. In einer programmierbaren Logikvorrichtung 400 mit vier programmierbaren Logikblöcken 402, wie beispielsweise Vorrichtung 400B, können mehr als 192 Produkttermlogikfunktionen mit Zeitverzögerungen von 30 ns implementiert werden.
  • Die einfache programmierbare Architektur dieser Erfindung erfordert einfache, leicht verwendbare Software zum Programmieren der Vorrichtung und macht ein kostspieliges, komplexes Softwarepaket überflüssig.
  • Benutzerentwürfe für die Vorrichtung 400 werden über zahlreiche unterschiedliche Entwurfseingabemechanismen eingegeben, beispielsweise Boolesche Gleichung- und Zustandsmaschinen. Signale, die an den kritischen Pins positioniert werden müssen, können von dem Benutzer spezifiziert werden. Eine Softwarepaßeinrichtung ordnet die Resourcen der programmierbaren Logikvorrichtung 400 automatisch jeder der Logikgleichungen in dem Benutzerentwurf zu.
  • Infolge der fortschrittlichen Synthese- und Optimierungstechniken der Paßeinrichtung lassen sich innerhalb von Minuten Entwürfe zu der Architektur dieser Erfindung konfigurieren. Die Paßeinrichtung hat das Wissen und die Kenntnis über optimale Blockpartitionierung (Einfügen von Benutzerlogikgleichungen in einen einzigen programmierbaren Logikblock) und das Leiten von Signalen über die Schaltmatrix zu entsprechenden Blöcken ohne jegliche manuelle Intervention. Also brauchen sich die Planer über manuelles Leiten oder Einfügen der Logik keine Sorgen zu machen.
  • Die Software erzeugt eine JEDEC-Datei zum Programmieren der Vorrichtung 400. Die Vorrichtung 400 kann an herkömmlichen Industriestandard-PAL-Programmiereinrichtungen mit geeigneten Personality- und Zwischenfassungsmodulen programmiert werden. Ein Ausführungsbeispiel der Paßeinrichtung ist in US-A-5128871 unter dem Titel "An Apparatus and Method for Allocation of Resources in Programmable Logic Devices" beschrieben, die hiermit in ihrer Gesamtheit durch Bezugnahme Teil der Offenbarung dieser Anmeldung bildet.
  • Alle programmierbaren Logikmakrozellen 412 sind so konzipiert, daß sie während des Einschaltens rückgesetzt werden. Im Anschluß an das Einschalten werden alle programmierbaren Logikmakrozellen 412 gelöscht, wobei die Ausgangssignale auf eine logische Null gesetzt werden. Dieses Merkmal ist insbesondere bei der Vereinfachung der Zustandsmaschineninitialisierung wertvoll.
  • An jeder Vorrichtung ist eine Sicherheitszelle vorgesehen, um ein unbefugtes Kopieren des geschützten Logikkonzepts des Benutzers zu verhindern. Sobald die Sicherheitszelle programmiert ist, sperrt sie die Programmier- und Prüfmodi. Die einzige Möglichkeit zum Löschen der Schutzzelle besteht im Aufladen der Architekturzellen des gesamten Arrays. Diese Zelle sollte vorzugsweise erst programmiert werden, nachdem der Rest der Vorrichtung vollständig programmiert worden ist.
  • Die programmierbare Logikvorrichtung 400 ist mit einer durch Hochspannung freigegebenen Vorladeschaltung konstruiert, die ein einfaches Verfahren zum Testen der Logikfunktionalität bietet.
  • Die Vorladefunktion ermöglicht, daß jeder beliebige Zustandswert in die Makrozellen 412 geladen wird. Eine typische Funktionstestsequenz wäre es, alle möglichen Zustandsübergänge für die im Test befindliche Vorrichtung zu prüfen. Dies erfordert die Fähigkeit, die Zustandsregister in einen beliebigen "gegenwärtigen Zustand" zu setzen und die Vorrichtung in einen beliebigen "gegenwärtigen Eingang"swert zu setzen. Sobald dies geschehen ist, wird die Zustandsrnaschine in einen neuen Zustand oder den nächsten Zustand getaktet, der dahingehend geprüft werden kann, daß er den Übergang aus dem "gegenwärtigen Zustand" auf Gültigkeit überprüft. Auf diese Weise kann jeder einzelne Zustandsübergang überprüft werden.
  • Da die Vorladefunktion es ermöglicht, daß die Vorrichtung direkt in einen beliebigen gewünschten Zustand geht, können die Testsequenzen stark verkürzt werden. Ferner können alle möglichen Werte getestet werden, wodurch sowohl die Testzeit als auch die Entwicklungskosten stark reduziert werden und ein korrekter systeminterner Betrieb garantiert wird.
  • Ein Beobachtbarkeitsmodus gibt die Möglichkeit, den Inhalt der internen Zustands- oder Ausgaberegister an den entsprechenden I/O- Pins auf ihre Prüfbarkeit hin zu beobachten. Man gelangt in diesen Beobachtbarkeitsmodus, indem an bestimmte Pins eine Hochspannung angelegt wird. Sobald man in diesen Modus gelangt ist, unterdrückt er das Erscheinen der kombinatorischen Ausgangsdaten an den I/O- Pins und ermöglicht das Beobachten des Inhalts der Ausgaberegister an den den programmierbaren Logikmakrozellen entsprechenden Ausgangspins. Dies ermöglicht eine einfache Fehlerbeseitigung und Verfolgung der vergrabenen Register.
  • Zwar wurde die vorliegende Erfindung als ein Ausführungsbeispiel mit programmierbaren Multiplexern mit einer bestimmten Anzahl von Eingangsleitungen und einer bestimmten Anzahl von Architekturkonfigurationszellen beschrieben, aber diese Ausführungsbeispiele sind rein illustrativ und sollen nicht den Umfang der Erfindung einschränken. Entsprechend den Grundlagen dieser Erfindung könnte ein Fachmann verschiedene Konfigurationen von Leitungen zu den Multiplexern implementieren und Konfigurationszellen hinzufügen oder wegnehmen, wie zuvor beschrieben, um eine bei den programmierbaren Vorrichtungen nach dem Stand der Technik nicht gegebene Flexibilität zu erreichen.
  • Darüber hinaus wurden die PLDs 400 für den Synchrongebrauch beschrieben. Die PLD 40013 jedoch kann durch die Wahlmöglichkeit einer Metallmaske für den Asynchrongebrauch konfiguriert werden. Genauer gesagt, in einem Ausführungsbeispiel werden die Anschlüsse zu jedem Produkttermklumpen, der sich in Figur 16 gegenüber einer vergrabenen Logikmakrozelle befindet, neu verteilt, so daß dieser Produkttermklumpen Produktsteuerterme zu der benachbarten Ausgangslogikmakrozelle liefert. Die vergrabenen Logikmakrozellen werden in diesem Ausführungsbeispiel nicht verwendet und sind in der Praxis möglicherweise nicht auf dem Siliziumchip vorhanden.
  • Daher können die Grundgedanken dieser Erfindung, insbesondere das Ankoppeln der verschiedenen Bauteile in dem programmierbaren Logikblock, das symmetrische Layout und die Hochgeschwindigkeitsmatrix in einer breiten Vielfalt programmierbarer Logikvorrichtungen implementiert werden.

Claims (20)

1. Integrierte Schaltung mit einer Vielzahl von Pins (403) und mit:
einer Vielzahl von programmierbaren Logikblöcken (402), wobei jeder programmierbare Logikblock (402) eine Vielzahl von Eingangsleitungen (426) und eine Vielzahl von Ausgangsleitungen (428) aufweist;
und einer programmierbaren Schaltverbindungseinrichtung (401), die betriebsmäßig mit jedem der Logikblöcke (402) verbunden ist, um auf den Vielzahlen von Ausgangsleitungen (428) von der Vielzahl von programmierbaren Logikblöcken (402) Signale zu empfangen und um den Vielzahlen von Eingangsleitungen (426) der Vielzahl von programmierbaren Logikblöcken (402) Eingangssignale zuzuführen:
wobei jeder programmierbare Logikblock (402) aufweist:
eine programmierbare Array-Einrichtung (410), die zum Empfang einer Vielzahl von Eingangssignalen nur von der Vielzahl von programmierbaren Logikblockeingangsleitungen (426) und zur Erzeugung einer Vielzahl von Ausgangssignalen betriebsmäßig mit der programmierbaren Schaltverbindungseinrichtung (401) gekoppelt ist;
eine Vielzahl von programmierbaren Logikmakrozelleinrichtungen (412), wobei jede programmierbare Logikmakrozelleinrichtung (412) mit der programmierbaren Schaltverbindungseinrichtung (401) betriebsmäßig gekoppelt ist und mindestens eine Eingangsleitung sowie eine Ausgangsleitung aufweist;
eine Logikzuordnungseinrichtung (411), die mit der programmierbaren Array-Einrichtung (410) betriebsmäßig gekoppelt ist und selektiv betriebsmäßig mit jeder der Vielzahl von programmierbaren Logikmakrozelleinrichtungen (412) koppelbar und selektiv betriebsmäßig davon abkoppelbar ist, um die Vielzahl von Ausgangssignalen der programmierbaren Array-Einrichtung (410) zu ausgewählten Eingangsleitungen der Vielzahl von programmierbaren Logikmakrozelleinrichtungen (412) zu leiten und die nicht gewählten Eingangsleitungen der Vielzahl von programmierbaren Logikmakrozelleinrichtungen (412) von der programmierbaren Array-Einrichtung (410) abzukoppeln; und
eine Vielzahl von programmierbaren Eingabe/Ausgabe- oder I/O- Makrozelleinrichtungen (413), wobei jede I/O-Makrozelleinrichtung (413) mit einem der Pins (403) und mit der Ausgangsleitung einer der programmierbaren Logikmakrozelleinrichtungen (412) verbunden ist, um auf einer der Ausgangsleitungen (428) des programmierbaren Logikblockes (402) ein Signal zu liefern, und wobei jede I/O-Makrozelleinrichtung (413) die Ausgangsleitung der programmierbaren Logikmakrozelleinrichtung selektiv mit dem Pin (403) verbindet und sie selektiv davon trennt.
2. Integrierte Schaltung nach Anspruch 1, bei der:
die programmierbare Schaltverbindungseinrichtung (401) mehrere Multiplexeinrichtungen aufweist, wobei jede der Multiplexeinrichtungen mehrere Eingangsleitungen (427A-1, 428A-1) und eine Ausgangsleitung (426A1-1) aufweist und jede der Multiplexeinrichtungen auf ein Eingangswählsignal hin ein Signal auf einer gewählten Eingangsleitung zu der Ausgangsleitung durchläßt; und
eine Einrichtung zum Liefern eines Eingangswählsignals zu jeder der mehreren Multiplexeinrichtungen vorgesehen ist.
3. Integrierte Schaltung nach Anspruch 1 oder 2, bei der jede der programmierbaren Logikmakrozelleinrichtungen (412) aufweist:
eine programmierbare Speichereinrichtung (503), die betriebsmäßig mit der Eingangsleitung der programmierbaren Logikmakrozelleinrichtung gekoppelt ist und einen Eingangsanschluß und einen Ausgangsanschluß aufweist;
eine erste programmierbare Einrichtung (505), die betriebsmäßig mit der Eingangsleitung der programmierbaren Logikmakrozelleinrichtung und mit dem Ausgangsanschluß der programmierbaren Speichereinrichtung (503) gekoppelt ist und eine Ausgangsleitung (427A-1) aufweist, um ein von einem Signal auf der Eingangsleitung angesteuertes Signal oder ein Signal von der programmierbaren Speichereinrichtung (503) zu der Ausgangsleitung der ersten programmierbaren Einrichtung (505) durchzukoppeln, wobei die Ausgangsleitung (427A1) der ersten programmierbaren Einrichtung mit der programmierbaren Schaltverbindungseinrichtung (401) verbunden ist; und
eine betriebsmäßig mit der programmierbaren Speichereinrichtung (503) und der Eingangsleitung der programmierbaren Logikmakrozelleinrichtung gekoppelte Einrichtung (507) zur Steuerung der Polarität eines Logiksignals;
wobei die Polaritätssteuereinrichtung (507) in einem ersten Betriebsmodus auf ein Eingangssigual hin ein erstes Ausgangssignal erzeugt und die Polaritätssteuereinrichtung in einem zweiten Betriebsmodus auf das Eingangssignal ein zweites Ausgangssignal erzeugt, wobei das zweite Ausgangssignal invers zum ersten Ausgangssignal ist.
4. Integrierte Schaltung nach Anspruch 3, bei der die programmierbare I/O-Makrozelleinrichtung (413) ferner aufweist:
eine Einrichtung (542) zum selektiven Liefern eines Freigabesignals; und
eine Einrichtung (540), die betriebsmäßig mit der Ausgangsleitung der programmierbaren Logikmakrozelleinrichtung (412), einem der Pins und der Freigabesignalliefereinrichtung (542) gekoppelt ist, um das Signal von der Polaritätssteuereinrichtung (507) selektiv nur bei Empfang des Freigabesignals an den Pin zu liefern.
5. Integrierte Schaltung nach Anspruch 4, bei der die Einrichtung zum selektiven Liefern eines Freigabesignals ferner aufweist:
eine Einrichtung zum Liefern eines Eingangswählsignals; und
eine programmierbare Multiplexereinrichtung (542), die betriebsmäßig mit der Eingangswählsignaleinrichtung verbunden ist und mehrere Eingangsanschlüsse und einen Ausgangsanschluß aufweist, wobei die Multiplexereinrichtung (542) auf das Eingangswählsignal hin das Freigabesignal an einem gewählten Eingangsanschluß zu dem Ausgangsanschluß durchläßt.
6. Integrierte Schaltung nach Anspruch 5, bei der eine erste Produkttermleitung von der programmierbaren Array-Einrichtung (410) mit einem ersten Eingangsanschluß der programmierbaren Makrozellmultiplexereinrichtung (542) von mehreren der I/O- Makrozellen der Vielzahl von I/O-Makrozellen verbunden ist; und
eine zweite Produkttermleitung von der programmierbaren Array-Einrichtung (410) mit einem zweiten Eingangsanschluß der programmierbaren I/O-Makrozellmultiplexereinrichtung (542) der mehreren I/O-Makrozellen der Vielzahl von I/O-Makrozellen verbunden ist.
7. Integrierte Schaltung nach einem der Ansprüche 3 bis 6, bei der die Polaritätssteuereinrichtung ferner aufweist:
eine zweite programmierbare Einrichtung (507), die einen mit der Ausgangsleitung der ersten programmierbaren Einrichtung verbundenen Eingangsanschluß&sub1; einen mit der Ausgangsleitung der ersten programmierbaren Einrichtung verbundenen signalinvertierenden Eingangsanschluß und eine Ausgangsleitung aufweist, wobei die zweite programmierbare Einrichtung dazu dient, eines von einem Signal auf der Ausgangsleitung der ersten programmierbaren Einrichtung (505) und einem Inversionssignal des Signals auf der Ausgangsleitung der ersten programmierbaren Einrichtung (505) zu der Ausgangsleitung der zweiten programmierbaren Einrichtung (507) durchzukoppeln, wobei die Ausgangsleitung der zweiten programmierbaren Einrichtung die Ausgangsleitung der programmierbaren Logikmakrozelleinrichtung (412) ist.
8. Integrierte Schaltung nach einem der Ansprüche 3 bis 7, bei der jede Makrozelleinrichtung ferner aufweist:
mehrere Eingangsleitungen, zu denen die mindestens eine Eingangsleitung gehört, und
eine Logikgattereinrichtung (500), die betriebsmäßig mit den mehreren Eingangsleitungen verbunden ist und eine mit dem Eingangsanschluß der programmierbaren Speichereinrichtung (503) verbundene Ausgangsleitung aufweist.
9. Integrierte Schaltung nach einem der Ansprüche 3 bis 8, bei der die programmierbare Speichereinrichtung (503) ein programmierbares Speicherelement aufweist, das als D-Flipflop, T-Flipflop oder Halteeinrichtung konfigurierbar ist.
10. Integrierte Schaltung nach einem der Ansprüche 3 bis 9, bei der die programmierbare Speichereinrichtung (503) einen Taktanschluß aufweist.
11. Integrierte Schaltung nach Anspruch 10, bei der jede der Makrozelleinrichtungen ferner aufweist:
eine programmierbare Taktmultiplexereinrichtung (501) mit mehreren Eingangsanschlüssen und einem Ausgangsanschluß, der mit dem Taktanschluß des programmierbaren Speicherelernentes verbunden ist, wobei die Taktmultiplexereinrichtung (501) auf ein Eingangswählsignal hin ein Signal an einem gewählten Eingangsanschluß zu dem Ausgangsanschluß durchläßt; und
eine mit der programmierbaren Taktmultiplexereinrichtung betriebsmäßig gekoppelte Einrichtung (502) zum Liefern des Eingangswählsignals.
12. Integrierte Schaltung nach Anspruch 11, bei der:
ein erster Anschluß der mehreren Eingangsanschlüsse der Taktmultiplexereinrichtungen (501) mit einem der Pins verbunden ist; und
ein zweiter Anschluß der mehreren Eingangsanschlüsse der Taktrnultiplexereinrichtungen (501) mit einem anderen der Pins verbunden ist.
13. Integrierte Schaltung nach einem der Ansprüche 1 bis 12, bei der die Vielzahl von programmierbaren Logikmakrozelleinrichtungen (412) eine erste Vielzahl von programmierbaren Ausgangslogikmakrozelleinrichtungen (412BA) und eine zweite Vielzahl von vergrabenen programmierbaren Logikmakrozelleinrichtungen (412BB) aufweist.
14. Integrierte Schaltung nach Anspruch 1, bei der die Vielzahl von programmierbaren Logikmakrozelleinrichtungen (412) eine erste Vielzahl von programmierbaren Ausgangslogikmakrozelleinrichtungen (412BA) und eine zweite Vielzahl von vergrabenen programmierbaren Logikmakrozelleinrichtungen (412BB) aufweist und jede der vergrabenen programmierbaren Logikmakrozelleinrichtungen aufweist:
eine betriebsmäßig mit der Eingangsleitung der programmierbaren vergrabenen Logikmakrozelleinrichtung und mit einem der Pins gekoppelte und eine Ausgangsleitung aufweisende erste programmierbare Einrichtung (509) zum Durchkoppeln eines Signals zu der Ausgangsleitung der ersten programmierbaren Einrichtung in Reaktion auf ein Signal auf der Eingangsleitung der programmierbaren vergrabenen Logikmakrozelleinrichtung oder ein Signal von dem Pin,
eine betriebsmäßig mit der Ausgangsleitung der ersten programmierbaren Einrichtung gekoppelten und eine Ausgangsleitung aufweisende programmierbare Speichereinrichtung (503),
eine zweite programmierbare Einrichtung (505) mit einem mit der Ausgangsleitung der ersten programmierbaren Einrichtung verbundenen ersten Eingangsanschluß, einem mit der Ausgangsleitung der programmierbaren Speichereinrichtung verbundenen zweiten Eingangsanschluß, und einer mit der programmierbaren Schaltverbindungseinrichtung (401) verbundenen Ausgangsleitung (427B2), wobei die zweite programmierbare Einrichtung zum Durchkoppeln eines von einem Signal auf der Ausgangsleitung der ersten programmierbaren Einrichtung und einem Signal auf der Ausgangsleitung der programmierbaren Speichereinrichtung (503) zu der Ausgangsleitung der zweiten programmierbaren Einrichtung dient und die Ausgangsleitung der zweiten programmierbaren Einrichtung die Ausgangsleitung der programmierbaren vergrabenen Logikmakrozelleinrichtung ist.
15. Integrierte Schaltung nach einem der Ansprüche 1 bis 14, bei der:
die Logikzuordnungseinrichtung (411) mehrere Routereinrichtungen (520) aufweist, wobei jede der Routereinrichtungen (520) mehrere Ausgangsleitungen und mehrere Eingangsleitungen aufweist, wobei die Routereinrichtungen (520) zum Durchkoppeln von Signalen auf den mehreren Eingangsleitungen zu einer gewählten Ausgangsleitung der mehreren Ausgangsleitungen dienen;
wobei jede Routereingangsleitung mit einer Ausgangsleitung von der programmierbaren Array-Einrichtung (410) verbunden ist, und
jede Routerausgangsleitung mit einer Eingangsleitung einer der programmierbaren Logikmakrozelleinrichtungen verbunden ist.
16. Integrierte Schaltung nach Anspruch 15, bei der jede der Routereinrichtungen (520) ferner aufweist:
eine mit den mehreren Routereingangsleitungen verbundene und eine Ausgangsleitung aufweisende Logikgattereinrichtung (521);
eine Demultiplexeinrichtung (522), die einen mit der Ausgangsleitung der Logikgattereinrichtung (521) verbundenen Eingangsanschluß und mehrere Ausgangsleitungen aufweist;
wobei die Demultiplexeinrichtung (522) auf ein Eingangswählsignal hin ein Signal an dem Eingangsanschluß zu einer gewählten Ausgangsleitung der mehreren Ausgangsleitungen durchläßt und die mehreren Ausgangsleitungen der Demultiplexeinrichtung die mehreren Ausgangsleitungen der Routereinrichtung sind; und
eine betriebsmäßig mit der Demultiplexeinrichtung (522) gekoppelte Einrichtung zum Liefern des Eingangswählsignals.
17. Integrierte Schaltung nach einem der Ansprüche 1 bis 16, bei der die programmierbaren Logikblöcke (402) jeweils identisch sind.
18. Integrierte Schaltung nach Anspruch 17, bei der die identischen programmierbaren Logikblöcke (402) symmetrisch um die programmierbare Schaltverbindungseinrichtung (401) herum angeordnet sind.
19. Integrierte Schaltung nach einem der Ansprüche 1 bis 18, bei der die Schaltverbindungseinrichtung (401) eine festgelegte leitungswegunabhängige Verzögerungszeit für jeden Leitungsweg zwischen einem Eingangsanschluß und einem Ausgangsanschluß der Schaltverbindungseinrichtung (401) hat.
20. Integrierte Schaltung nach Anspruch 19, bei der die Verzögerungszeit durch die Schaltverbindungseinrichtung (401) für einen der programmierbaren Logikblöcke (402), der an einen anderen der programmierbaren Logikblöcke (402) angeschlossen ist, im Bereich von etwa 1 bis 2 Nanosekunden liegt.
DE69121122T 1990-03-07 1991-01-18 Integrierter Schaltkreis Expired - Fee Related DE69121122T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/490,808 US5015884A (en) 1985-03-29 1990-03-07 Multiple array high performance programmable logic device family

Publications (2)

Publication Number Publication Date
DE69121122D1 DE69121122D1 (de) 1996-09-05
DE69121122T2 true DE69121122T2 (de) 1997-02-13

Family

ID=23949554

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69121122T Expired - Fee Related DE69121122T2 (de) 1990-03-07 1991-01-18 Integrierter Schaltkreis

Country Status (5)

Country Link
US (1) US5015884A (de)
EP (1) EP0445909B1 (de)
JP (1) JP3454834B2 (de)
AT (1) ATE141034T1 (de)
DE (1) DE69121122T2 (de)

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5225719A (en) * 1985-03-29 1993-07-06 Advanced Micro Devices, Inc. Family of multiple segmented programmable logic blocks interconnected by a high speed centralized switch matrix
US5151623A (en) * 1985-03-29 1992-09-29 Advanced Micro Devices, Inc. Programmable logic device with multiple, flexible asynchronous programmable logic blocks interconnected by a high speed switch matrix
US5489857A (en) * 1992-08-03 1996-02-06 Advanced Micro Devices, Inc. Flexible synchronous/asynchronous cell structure for a high density programmable logic device
US5457409A (en) * 1992-08-03 1995-10-10 Advanced Micro Devices, Inc. Architecture of a multiple array high density programmable logic device with a plurality of programmable switch matrices
US5079451A (en) * 1990-12-13 1992-01-07 Atmel Corporation Programmable logic device with global and local product terms
US5978831A (en) * 1991-03-07 1999-11-02 Lucent Technologies Inc. Synchronous multiprocessor using tasks directly proportional in size to the individual processors rates
US5861760A (en) 1991-04-25 1999-01-19 Altera Corporation Programmable logic device macrocell with improved capability
US5204556A (en) * 1991-05-06 1993-04-20 Lattice Semiconductor Corporation Programmable interconnect structure for logic blocks
US6759870B2 (en) 1991-09-03 2004-07-06 Altera Corporation Programmable logic array integrated circuits
US5260611A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic array having local and long distance conductors
US5371422A (en) * 1991-09-03 1994-12-06 Altera Corporation Programmable logic device having multiplexers and demultiplexers randomly connected to global conductors for interconnections between logic elements
US5282271A (en) * 1991-10-30 1994-01-25 I-Cube Design Systems, Inc. I/O buffering system to a programmable switching apparatus
US5369772A (en) * 1992-05-21 1994-11-29 Compaq Computer Corporation Method of maximizing data pin usage utilizing post-buffer feedback
FR2693252B1 (fr) * 1992-07-01 1994-08-26 Orbey Plastiques Ind Dispositif pour adapter un élément chaud sur un corps creux en matière thermoplastique comportant au moins une arrivée de fluide froid, et corps creux comportant un tel dispositif.
EP0584910B1 (de) * 1992-08-03 1996-09-04 Advanced Micro Devices, Inc. Programmierbare logische Vorrichtung
US5361373A (en) * 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5362999A (en) * 1993-03-18 1994-11-08 Xilinx, Inc. EPLD chip with hybrid architecture optimized for both speed and flexibility
US5483178A (en) * 1993-03-29 1996-01-09 Altera Corporation Programmable logic device with logic block outputs coupled to adjacent logic block output multiplexers
US5444394A (en) * 1993-07-08 1995-08-22 Altera Corporation PLD with selective inputs from local and global conductors
US5689686A (en) * 1994-07-29 1997-11-18 Cypress Semiconductor Corp. Methods for maximizing routability in a programmable interconnect matrix having less than full connectability
US5848066A (en) * 1994-08-01 1998-12-08 Cypress Semiconductor Corp. Methods for maximizing routability in a programmable interconnect matrix having less than full connectability
US5815726A (en) * 1994-11-04 1998-09-29 Altera Corporation Coarse-grained look-up table architecture
US5636368A (en) * 1994-12-23 1997-06-03 Xilinx, Inc. Method for programming complex PLD having more than one function block type
US5521529A (en) * 1995-06-02 1996-05-28 Advanced Micro Devices, Inc. Very high-density complex programmable logic devices with a multi-tiered hierarchical switch matrix and optimized flexible logic allocation
US5818254A (en) * 1995-06-02 1998-10-06 Advanced Micro Devices, Inc. Multi-tiered hierarchical high speed switch matrix structure for very high-density complex programmable logic devices
US6531890B1 (en) 1995-06-02 2003-03-11 Lattice Semiconductor Corporation Programmable optimized-distribution logic allocator for a high-density complex PLD
US5781030A (en) * 1995-06-02 1998-07-14 Advanced Micro Devices, Inc. Programmable uniform symmetrical distribution logic allocator for a high-density complex PLD
US6028446A (en) * 1995-06-06 2000-02-22 Advanced Micro Devices, Inc. Flexible synchronous and asynchronous circuits for a very high density programmable logic device
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US6229812B1 (en) * 1996-10-28 2001-05-08 Paxonet Communications, Inc. Scheduling techniques for data cells in a data switch
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
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
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
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.)
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.)
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
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
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
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US6191611B1 (en) 1997-10-16 2001-02-20 Altera Corporation Driver circuitry for programmable logic devices with hierarchical interconnection resources
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
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.
US6243664B1 (en) 1998-10-27 2001-06-05 Cypress Semiconductor Corporation Methods for maximizing routability in a programmable interconnect matrix having less than full connectability
AU5805300A (en) 1999-06-10 2001-01-02 Pact Informationstechnologie Gmbh Sequence partitioning in cell structures
EP1342158B1 (de) 2000-06-13 2010-08-04 Richter, Thomas Pipeline ct-protokolle und -kommunikation
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
AU2002220600A1 (en) 2000-10-06 2002-04-15 Pact Informationstechnologie Gmbh Cell system with segmented intermediate cell structure
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
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.)
EP1227385A3 (de) * 2001-01-24 2005-11-23 Matsushita Electric Industrial Co., Ltd. Integrierte Halbleiterschaltung
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
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
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
TW504898B (en) * 2001-04-17 2002-10-01 Himax Tech Inc Distributed data signal converting device and method
EP1402382B1 (de) 2001-06-20 2010-08-18 Richter, Thomas Verfahren zur bearbeitung von daten
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7139292B1 (en) * 2001-08-31 2006-11-21 Cypress Semiconductor Corp. Configurable matrix architecture
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
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
US6774707B1 (en) 2002-01-14 2004-08-10 Altera Corporation Charge pump circuits and methods
US8281108B2 (en) 2002-01-19 2012-10-02 Martin Vorbach Reconfigurable general purpose processor having time restricted configurations
ATE402446T1 (de) 2002-02-18 2008-08-15 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US6848095B1 (en) * 2002-05-17 2005-01-25 Lattice Semiconductor Corp. Method of assigning logic functions to macrocells in a programmable logic device
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
EP1634182A2 (de) * 2003-06-17 2006-03-15 PACT XPP Technologies AG Datenverarbeitungseinrichtung und verfahren
US7159196B2 (en) * 2004-02-04 2007-01-02 Hewlett-Packard Development Company, L.P. System and method for providing interface compatibility between two hierarchical collections of IC design objects
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US20070164784A1 (en) * 2006-01-19 2007-07-19 Altera Corporation Modular I/O bank architecture
US20100272811A1 (en) * 2008-07-23 2010-10-28 Alkermes,Inc. Complex of trospium and pharmaceutical compositions thereof
US8438522B1 (en) 2008-09-24 2013-05-07 Iowa State University Research Foundation, Inc. Logic element architecture for generic logic chains in programmable devices
US8661394B1 (en) 2008-09-24 2014-02-25 Iowa State University Research Foundation, Inc. Depth-optimal mapping of logic chains in reconfigurable fabrics
JP5311382B2 (ja) * 2008-09-29 2013-10-09 独立行政法人産業技術総合研究所 再構成可能集積回路
JP2017130837A (ja) * 2016-01-21 2017-07-27 日本電気株式会社 論理回路、及び設定回路の制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4742252A (en) * 1985-03-29 1988-05-03 Advanced Micro Devices, Inc. Multiple array customizable logic device
US4758747A (en) * 1986-05-30 1988-07-19 Advanced Micro Devices, Inc. Programmable logic device with buried registers selectively multiplexed with output registers to ports, and preload circuitry therefor
US4876640A (en) * 1986-02-07 1989-10-24 Advanced Micro Devices, Inc. Logic controller having programmable logic "and" array using a programmable gray-code counter
US4878200A (en) * 1987-12-30 1989-10-31 Intel Corporation Product term sharing/allocation in an EPROM array
US4903223A (en) * 1988-05-05 1990-02-20 Altera Corporation Programmable logic device with programmable word line connections
US4871930A (en) * 1988-05-05 1989-10-03 Altera Corporation Programmable logic device with array blocks connected via programmable interconnect

Also Published As

Publication number Publication date
JP3454834B2 (ja) 2003-10-06
EP0445909B1 (de) 1996-07-31
ATE141034T1 (de) 1996-08-15
EP0445909A1 (de) 1991-09-11
JPH04219021A (ja) 1992-08-10
US5015884A (en) 1991-05-14
DE69121122D1 (de) 1996-09-05

Similar Documents

Publication Publication Date Title
DE69121122T2 (de) Integrierter Schaltkreis
DE69304163T2 (de) Programmierbare logische Vorrichtung
DE69716771T2 (de) Benutzerprogrammierbares gatterfeld mit sich wiederholender verbindungsstruktur
DE69028395T2 (de) Konfigurierbare zellenanordnung
DE69125201T2 (de) Konfigurierbares logisches Feld
DE69304471T2 (de) Programmierbare logische Vorrichtung
DE69431848T2 (de) Konfigurierbares logisches Feld
DE3888374T2 (de) Programmierbare integrierte Logik-Array-Einrichtung mit verbesserter Verbindbarkeit zu Mikroprozessoren.
DE69924486T2 (de) Spezielle schnittstellenarchitektur für eine hybride schaltung
DE69431732T2 (de) Architektur und Verbindungsschema für programmierbare logische Schaltungen
DE69730254T2 (de) FPGA mit Nachschlagtabellen
DE69904241T2 (de) Konfigurierbarer logischer block in einem nutzerprogrammierbaren gatterfeld mit einer vielzwecklogig/speicherschaltung
US5612631A (en) An I/O macrocell for a programmable logic device
DE69534812T2 (de) Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration
DE60128960T2 (de) Architektur für ziegelförmig aufbaubares nutzerprogrammierbares gatterfeld
DE69813974T2 (de) Programmierbares gatterfeld mit erhöhter leistung
DE3687383T2 (de) Programmierbare logische anordnung mit zusaetzlicher gatteranordnung und zusaetzlicher flexibilitaet der ausgangsumsteuerung.
DE69231933T2 (de) Programmierbare logische zelle und programmierbares logisches feld
DE69812898T2 (de) Nutzerprogrammierbare prozessorfelder
DE69031861T2 (de) Programmierbare logische Schaltung mit Multifunktionseingangspin
DE69031525T2 (de) Konfigurierbare Logikanordnung und zugehöriges Verfahren
DE69528393T2 (de) Programmierbarer Logikbaustein für ein anwenderprogrammierbares Gate-Array
EP0537885B1 (de) Programmierbare logische Vorrichtung
DE69030257T2 (de) Logisch programmierbare ausdehnungsvorrichtung
EP0202456B1 (de) In integrierter Technik hergestellter Logik-Array-Baustein

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: VANTIS CORP.)N.D.GES.D.STAATES DELAWARE), SUNNYVAL

8339 Ceased/non-payment of the annual fee