DE69528393T2 - Programmierbarer Logikbaustein für ein anwenderprogrammierbares Gate-Array - Google Patents
Programmierbarer Logikbaustein für ein anwenderprogrammierbares Gate-ArrayInfo
- Publication number
- DE69528393T2 DE69528393T2 DE69528393T DE69528393T DE69528393T2 DE 69528393 T2 DE69528393 T2 DE 69528393T2 DE 69528393 T DE69528393 T DE 69528393T DE 69528393 T DE69528393 T DE 69528393T DE 69528393 T2 DE69528393 T2 DE 69528393T2
- Authority
- DE
- Germany
- Prior art keywords
- output
- data
- input
- conductor
- conductors
- 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
Links
- 239000004020 conductor Substances 0.000 claims description 160
- 238000012360 testing method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 4
- 239000000203 mixture Substances 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2851—Testing of integrated circuits [IC]
- G01R31/2884—Testing of integrated circuits [IC] using dedicated test connectors, test elements or test circuits on the IC under test
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
- G01R31/318519—Test of field programmable gate arrays [FPGA]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17704—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
- Die vorliegende Erfindung betrifft programmierbare integrierte Schaltungen. Insbesondere betrifft die vorliegende Erfindung ein programmierbares Logikmodul zur Verwendung in integrierten Schaltungen wie zum Beispiel integrierten Schaltungen mit anwenderprogrammierbarem Gatearray.
- Jüngste Fortschritte auf dem Gebiet der benutzerprogrammierbaren Schaltungstechnik haben zur Entwicklung von integrierten Schaltungen mit anwenderprogrammierbarem Gatearray (FPGA) geführt, die von einem Benutzer so angepaßt werden können, daß sie eine große Vielzahl von kombinatorischen und sequentiellen Logikfunktionen ausführen. Es sind zahlreiche Architekturen für solche integrierten Schaltungen bekannt. Beispiele für solche Architekturen sind offenbart in den US-Patenten Nr. 4,870,302 von Freeman, Nr. 4,758,745 von EI Gamal et al. und Nr. 5,132,571 von McCollum et al. Die bei einer speziellen integrierten Schaltung mit FPGA verwendete Architektur wird die Fülle und Dichte der möglichen Verbindungen bestimmen, die unter den verschiedenen auf der integrierten Schaltung angeordneten Schaltungselementen vorgenommen werden können, und kann somit ihre Nützlichkeit zutiefst beeinflussen.
- Programmierbare Logikblöcke, die eine wählbare Logikfunktion aus einer Vielzahl von benutzerdefinierten Logikfunktionen ausführen können, sind im Stand der Technik bekannt und werden in FPGA-Architekturen verwendet, wie sie beschrieben sind in dem US-Patent Nr. 4,910,417 von EI Gamal et al., übertragen auf den Rechtsnachfolger der vorliegenden Erfindung. Die US-Patente Nr. 5,055,718 und 5,198,705 von Galbraith et al. und das US-Patent Nr. 4,453,096 von Le Can et al. offenbaren Logikmodule, die sich aus Multiplexern zusammensetzen, die eine Vielzahl von kombinatorischen Funktionen ausführen können. Das US-Patent Nr. 4,541,067 von Whittaker offenbart, wie unterschiedliche Logikfunktionen unter Verwendung unterschiedlicher Kombinationen von Schalttransistoren auszuführen sind.
- Diese Schaltungen bieten dem Entwickler von benutzerprogrammierbaren Logikanordnungen zwar ein gewisses Maß an Flexibilität, doch ist die Funktionalität solcher Schaltungen immer noch verbesserungsbedürftig.
- Die vorliegende Erfindung, die in dem beigefügten Anspruch 1 definiert ist, betrifft FPGA-Architekturen und insbesondere die manchmal als programmierbare Logikmodule bezeichneten funktionellen Schaltungsmodule und die Schaltungsarchitektur, mit der die Funktionen der programmierbaren Logikmodule sowie die Verbindungen zwischen diesen definiert werden.
- Die Architektur eines benutzerprogrammierbaren Gatearray kann eine Anordnung von Logikfunktionsmodulen gemäß der vorliegenden Erfindung umfassen, die ein oder mehr kombinatorische und/oder sequentielle Logikschaltungen umfassen können. Die Anordnung hat eine Schaltungsarchitektur aus einer Vielzahl von horizontalen und vertikalen allgemeinen Verbindungskanälen, die jeweils eine Vielzahl von Verbindungsleitern umfassen, von denen einige segmentiert sein können. Einzelne Verbindungsleiter können miteinander und mit den Eingängen und Ausgängen der Logikfunktionsmodule durch benutzerprogrammierbare Verbindungselemente verbunden werden. Eine örtliche Schaltungsarchitektur mit örtlichen Verbindungskanälen ist auf der Anordnung ebenfalls zu finden. Jeder örtliche Verbindungskanal umfaßt eine Vielzahl von örtlichen Verbindungsleitern und verläuft zwischen zwei oder mehr benachbarten Logikfunktionsmodulen.
- Ein programmierbares Logikmodul kann drei Funktionseinheiten umfassen. Jede der drei Funktionseinheiten kann aus mindestens einem kombinatorischen Baustein und einem sequentiellen Baustein gemäß derzeit bevorzugten Ausführungsformen der vorliegenden Erfindung ausgewählt sein.
- Gemäß einer bevorzugten Ausführungsform kann der kombinatorische Baustein drei Multiplexer umfassen. Ein erster Multiplexer mit zwei Eingängen hat einen ersten Dateneingang, der mit einem ersten Dateneingangsknoten verbunden ist, einen zweiten Dateneingang, der mit einem zweiten Dateneingangsknoten verbunden ist, einen Steuereingang, der mit dem Ausgang eines ersten Gate verbunden ist, und einen Ausgang. Das erste Gate hat einen ersten Eingang, der mit einem ersten Steuereingangsknoten verbunden ist, und einen zweiten Eingang, der mit einem zweiten Steuereingangsknoten verbunden ist. Ein zweiter Multiplexer mit zwei Eingängen hat einen ersten Dateneingang, der mit einem dritten Dateneingangsknoten verbunden ist, einen zweiten Dateneingang, der mit einem vierten Dateneingangsknoten verbunden ist, einen Steuereingang, der mit dem Ausgang des ersten Gate verbunden ist, und einen Ausgang. Mehrere Verbindungsleiter schneiden den ersten bis vierten Dateneingangsknoten, und ein benutzerprogrammierbares Verbindungselement ist vorzugsweise an jedem Schnittpunkt angeordnet, damit zwischen ausgewählten Verbindungsleitern und ausgewählten ersten bis vierten Dateneingangsknoten programmierbare Verbindungen hergestellt werden können. Einer der mehreren Verbindungsleiter ist über einen Inverter mit einem anderen Verbindungsleiter verbunden.
- Ein dritter Multiplexer mit zwei Eingängen hat einen ersten Dateneingang, der mit dem Ausgang des ersten Multiplexers verbunden ist, einen zweiten Dateneingang, der mit dem Ausgang des zweiten Multiplexers verbunden ist, einen Steuereingang, der mit dem Ausgang eines zweiten Gate verbunden ist, und einen Ausgang. Der Ausgang ist vorzugsweise gepuffert. Das zweite Gate hat einen ersten Eingang, der mit einem dritten Steuereingangsknoten verbunden ist, und einen zweiten Eingang, der mit einem vierten Steuereingangsknoten verbunden ist.
- Gemäß einer bevorzugten Ausführungsform der Erfindung umfaßt der sequentielle Baustein drei Multiplexer und ein Daten-Flipflop, wenngleich auch noch andere sequentielle Logikschaltungen verwendet werden können. Ein erster Multiplexer mit zwei Eingängen hat einen ersten Dateneingang, der mit einem ersten Dateneingangsknoten verbunden ist, einen zweiten Dateneingang, der mit einem zweiten Dateneingangsknoten verbunden ist, einen Steuereingang, der mit einem ersten Steuereingangsknoten verbunden ist, und einen Ausgang. Ein zweiter Multiplexer mit zwei Eingängen hat einen ersten Dateneingang, der mit dem Ausgang des ersten Multiplexers verbunden ist, einen zweiten Dateneingang, der mit dem Ausgang des Daten-Flipflops verbunden ist, einen Steuereingang, der mit einem zweiten Steuerknoten verbunden ist, und einen Ausgang, der mit dem Dateneingang des Daten-Flipflops verbunden ist. Ein erster Multiplexer mit vier Eingängen hat einen ersten Dateneingang, der mit einem ersten Takteingangsknoten verbunden ist, einen zweiten Dateneingang, der mit dem Komplement des Signals auf dem ersten Dateneingangsknoten verbunden ist, einen dritten Dateneingang, der mit einem zweiten Takteingangsknoten verbunden ist, einen vierten Dateneingang, der mit dem Komplement des Signals auf dem zweiten Takteingangsknoten verbunden ist, einen ersten Steuereingang, der mit einem Taktwählknoten verbunden ist, und einen zweiten Steuereingang, der mit einem Taktpolaritätswählknoten verbunden ist, und einen Ausgang, der mit dem Takteingang des Daten- Flipflops verbunden ist.
- Wie bereits erwähnt, sollten drei Funktionseinheiten vorzugsweise zu einem Logikmodul kombiniert werden. Diese drei Einheiten können identisch sein, d. h. das Logikmodul kann drei kombinatorische Bausteine oder drei sequentielle Bausteine umfassen, oder es kann gemischt sein, d. h. das Logikmodul kann einen kombinatorischen Baustein und zwei sequentielle Bausteine umfassen. Bei Logikmodulen, die Mischungen aus kombinatorischen und sequentiellen Bausteinen enthalten, kann es vorteilhaft sein, den vorgepufferten Ausgang des kombinatorischen Bausteins intern mit einem der Eingänge des ersten Multiplexers des sequentiellen Bausteins zu verbinden.
- Bei einer erfindungsgemäßen Architektur für ein Logikmodul können zwei oder mehr der bereits beschriebenen Logikmodule mit mehreren bereits beschriebenen örtlichen Verbindungsleitern kombiniert werden. Gemäß einer bevorzugten Ausführungsform der Erfindung gehören die örtlichen Verbindungsleiter zu einem Paar von Logikmodulen. Die Ausgänge der sechs Funktionseinheiten mit dem Paar von Logikmodulen sind jeweils mit unterschiedlichen örtlichen Verbindungsleitern fest verdrahtet.
- Ausgewählte Eingänge der sechs Funktionseinheiten mit den zwei Logikmodulen können mit ausgewählten örtlichen Verbindungsleitern programmierbar verbunden werden. Die Verbindungsleiter, die die Eingangsknoten der Multiplexer der kombinatorischen Bausteine schneiden, schneiden auch die örtlichen Verbindungsleiter. Benutzerprogrammierbare Verbindungselemente sind an den Schnittpunkten der Verbindungsleiter und der örtlichen Verbindungsleiter angeordnet, damit dazwischen selektive programmierbare Verbindungen hergestellt werden können.
- Außerdem schneidet mindestens einer der Eingänge von wenigstens einem von dem ersten und dem zweiten Gate in den kombinatorischen Bausteinen die örtlichen Verbindungsleiter und kann durch benutzerprogrammierbare Verbindungselemente mit einzelnen dieser örtlichen Verbindungsleiter programmierbar verbunden werden.
- Bei einer in Betracht gezogenen Ausführungsform der Erfindung ist eine Anordnung von Paaren von Logikmodulen gemäß der vorliegenden Erfindung auf einer integrierten Schaltung angeordnet. Eine Architektur von Verbindungsleitern ist den Logikmodulen überlagert. Gemäß einer bevorzugten Ausführungsform der Erfindung verlaufen Gruppen von allgemeinen Verbindungsleitern sowohl in horizontaler als auch in vertikaler Richtung in der Nähe der Logikmodule. Wie im Stand der Technik bekannt ist, können diese allgemeinen Verbindungsleiter durch benutzerprogrammierbare Verbindungselemente segmentiert sein. Benutzerprogrammierbare Verbindungselemente können an ausgewählten Schnittpunkten der horizontalen und vertikalen allgemeinen Verbindungsleiter und an den Schnittpunkten der vertikalen allgemeinen Verbingsleiter und der örtlichen Verbindungsleiter angeordnet sein. Die allgemeinen Verbindungsleiter sind mit den Dateneingangsknoten, den Steuereingangsknoten und den Ausgangsknoten der Funktionseinheiten in den Logikmodulen programmierbar verbunden.
- Fig. 1 ist ein vereinfachtes Blockdiagramm einer Kernarchitektur, die bei einer integrierten Schaltung mit FPGA verwendet werden kann.
- Fig. 2A ist ein schematisches Blockdiagramm einer bevorzugten kombinatorischen Funktionseinheit gemäß der vorliegenden Erfindung, in dem ein Abschnitt der Schaltungsarchitektur der vorliegenden Erfindung dargestellt ist.
- Fig. 2B ist eine Tabelle, in der die Ausgangszustände der kombinatorischen Funktionseinheit von Fig. 2A als Funktion der Zustände der Eingänge dargestellt sind.
- Fig. 2C ist ein schematisches Blockdiagramm einer bevorzugten sequentiellen Funktionseinheit gemäß der vorliegenden Erfindung, in dem ein Abschnitt der Schaltungsarchitektur dargestellt ist.
- Fig. 3A-3F sind schematische Blockdiagramme weiterer beispielhafter kombinatorischer Funktionseinheiten, die bei FPGA-Architekturen verwendet werden können.
- Fig. 4A ist ein schematisches Blockdiagramm eines bevorzugten Logikmoduls gemäß der vorliegenden Erfindung mit einer Kombination der Funktionseinheiten von Fig. 2A und 2C.
- Fig. 4B-4D sind schematische Darstellungen von Layout-Anordnungen für Logikfunktionseinheiten in Logikmodulen, die durch örtliche Verbindungskanäle miteinander verbunden sind.
- Der Durchschnittsfachmann wird erkennen, daß die folgende Beschreibung der vorliegenden Erfindung nur veranschaulichend und in keiner Weise einschränkend ist. Weitere Ausführungsformen der Erfindung werden für einen solchen Fachmann ohne weiteres auf der Hand liegen.
- Anhand von Fig. 1 ist nun zunächst ein vereinfachtes Blockdiagramm einer FPGA-Kernarchitektur 10 dargestellt. Im vorliegenden Zusammenhang bezeichnet der Begriff "Kernarchitektur" die Architektur des Kerns einer FPGA-Anordnung, die eine Vielzahl von Logikfunktionskreisen oder -modulen (Bezugszeichen 12-1 bis 12-12) umfaßt, die in einer Matrix mit einer überlagerten Schaltungsarchitektur mit Verbindungsleitern und benutzerprogrammierbaren Verbindungselementen angeordnet sind. Die Logikfunktionsmodule 12-1 bis 12-12 können jede beliebige aus einer Vielzahl von Schaltungen umfassen, entweder eine kombinatorische Logik, eine sequentielle Logik oder Kombinationen derselben, und müssen nicht identisch sein, wie hierin noch näher offenbart wird.
- Gemäß Fig. 1 sind die Logikfunktionsmodule 12-1 bis 12-12 in einem Netz von Verbindungsleitern angeordnet. Um die Figur nicht zu kompliziert und schwer verständlich zu machen, wird der Durchschnittsfachmann erkennen, daß das Netz von Verbindungsleitern in einer vereinfachten schematischen Form dargestellt ist. Während in der Zeichnung außerdem die zwischen den Logikfunktionskreisen verlaufenden Verbindungsleiter dargestellt sind, wird der Durchschnittsfachmann ohne weiteres erkennen, daß die Architektur eine Architektur mit einem "Meer von Gates" sein kann, wo die Verbindungsleiter tatsächlich direkt über und nicht zwischen den Logikfunktionskreisen verlaufen. In praktisch allen Fällen werden die Verbindungsleiter Metalleitungen in Schichten umfassen, die über den Schichten angeordnet sind, die die Logikfunktionskreise bilden.
- Eine solche Architektur mit einem "Meer von Gates" ist in der Technik bekannt und wird in dem US-Patent Nr. 5,132,571 von McCollum et al. veranschaulicht und erlaubt die Herstellung einer dichteren Anordnung als eine Architektur, bei der die Verbindungsleiter nur zwischen den Logikfunktionskreisen verlaufen.
- In Fig. 1 ist eine Schaltungsarchitektur mit einer Vielzahl von horizontalen und vertikalen Kanälen von Verbindungsleitern dargestellt. Der Einfachheit halber sind die horizontalen Kanäle als einzelne Leitungen dargestellt, die mit den Bezugszeichen 14-1, 14-2, 14-3 und 14-4 bezeichnet sind, und die vertikalen Kanäle sind als einzelne Leitungen dargestellt, die mit den Bezugszeichen 16-1, 16-2, 16-3 und 16-4 bezeichnet sind. Für den Durchschnittsfachmann ist klar, daß jeder Kanal eine Vielzahl von einzelnen Verbindungsleitern umfassen wird, von denen einige segmentiert sein können und einige sich über die Länge (oder Breite) der Anordnung erstrecken können. Die Anzahl der in jedem Kanal in einer tatsächlichen integrierten Schaltung vorhandenen Verbindungsleiter wird sich nach dem jeweils gewählten Entwurf aufgrund von Faktoren wie Größe und Dichte der Anordnung richten.
- Die Segmentierung von Verbindungsleitern ist bekannt und wird veranschaulicht in Vorveröffentlichungen wie zum Beispiel dem US-Patent Nr. 4,756,745 von EI Gamal et al. und Nr. 5,073,729 von Greene et al und ist somit in Fig. 1 nicht dargestellt, um die Figur nicht zu kompliziert zu machen. Wie für den Durchschnittsfachmann klar ist, kann jedes beliebige der vielen zur Verfügung stehenden Segmentierungsschemata bei der FPGA-Kernarchitektur verwendet werden. Ein solcher Fachmann wird erkennen, daß die segmentierten Verbindungsleiter wahlweise zu längeren Leitern verbunden werden können, indem benutzerprogrammierbare Verbindungselemente zwischen ausgewählten Leitern programmiert werden.
- Um eine reiche Auswahl an Verbindungsmöglichkeiten zu bieten, sind die Schnittpunkte der jeweils ausgewählten Leiter horizontaler und vertikaler Verbindungskanäle mit benutzerprogrammierbaren Verbindungselementen versehen, die vom Benutzer programmiert werden können, um elektrische Verbindungen zwischen ausgewählten Verbindungselementen herzustellen, um Verbindungsnetze zwischen den Eingängen und den Ausgängen der Logikfunktionskreise zu implementieren. Gruppen solcher benutzerprogrammierbaren Verbindungselemente an den Schnittpunkten der horizontalen und vertikalen Verbindungskanäle sind in Fig. 1 als Quadrate 18-1 bis 18-16 schematisch dargestellt. Die Eingänge und Ausgänge der Logikfunktionskreise können außerdem durch benutzerprogrammierbare Verbindungselemente, die an den Schnittpunkten der einzelnen Eingänge und Ausgänge angeordnet sind, mit ausgewählten Verbindungsleitern in den Kanälen verbunden werden, wie durch die Quadrate 20 schematisch dargestellt.
- Es steht eine Anzahl von benutzerprogrammierbaren Verbindungstechnologien zur Verfügung, die hier verwendet werden können. Dazu gehören Elemente wie Antischmelzsicherungen und aktive Bauelemente wie Schalttransistoren. Solche Bauelemente, ihre Implementierung und die zu ihrer Programmierung notwendigen Schaltkreise sind dem Durchschnittsfachmann wohlbekannt. Die Einzelheiten dieser bekannten Bauelemente werden hier nicht dargelegt, um die Offenbarung nicht zu kompliziert zu machen.
- Ein wichtiges Merkmal der Architektur von Fig. 1 ist ein Netz von "örtlichen Verbindungskanälen", die zwischen benachbarten Paaren von Logikfunktionskreisen in der Matrix verlaufen. In Fig. 1 verlaufen diese örtlichen Verbindungskanäle zwischen 12-1 und 12-2, 12-3 und 12-4, 12-5 und 12-6, 12-7 und 12-8, 12-9 und 12- 10, 12-11 und 12-22 und sind durch die Bezugszeichen 22-1 bis 22-6 angegeben. Wie hierin noch ausführlicher offenbart wird, bieten die örtlichen Verbindungskanäle eine verbesserte Verbindungsmöglichkeit zwischen benachbarten Logikfunktionskreisen. Der Durchschnittsfachmann wird erkennen, daß die örtlichen Verbindungskanäle mehr als ein einzelnes Paar von benachbarten Logikmodulen verbinden können. Zum Beispiel könnte der örtliche Verbindungskanal 22-1 auch in Verbindung mit den allgemeinen Verbindungskanälen verwendet werden, um Verbindungen zu den Logikmodulen 12-5 und 12-6 herzustellen, wie aus Fig. 2A deutlicher hervorgeht.
- Jeweils ausgewählte örtliche Verbindungsleiter können mit ausgewählten Verbindungsleitern in den Kanälen durch benutzerprogrammierbare Verbindungselemente verbunden werden, die sich an den Schnittpunkten dieser Verbindungsleiter befinden. Die Netze dieser benutzerprogrammierbaren Verbindungselemente sind in Fig. 1 als Quadrate 24 schematisch dargestellt.
- Bei der Kernarchitektur der FPGA 10 findet die Kommunikation zwischen Chip und Außenwelt über eine Vielzahl von Ein-/Ausgabe-Modulen (E/A-Module) statt. Die zur Veranschaulichung gezeigten E/A-Module 26-1, 26-2, 26-3 und 26-4 sind zwischen E/A-Kontaktstellen 28-1, 28-2, 28-3 und 28-4 und horizontalen Verbindungskanälen 14-2 und 14-3 und vertikalen Verbindungskanälen 16-2 und 16-3 geschaltet. Wie für den Durchschnittsfachmann klar ist, umfassen die E/A-Module 26-1, 26-2, 26-3 und 26-4 jeweils einen Eingabepuffer, einen Ausgabepuffer und eine Ein-/Ausgabe-Funktionswählschaltung. Der Entwurf der speziellen Schaltung der E/A-Module ist einfach eine Frage des gewählten Entwurfs und liegt im Rahmen des Könnens eines Durchschnittsfachmanns. Bekannte Beispiele für eine solche Schaltung finden sich in dem US-Patent Nr. 5,083,083.
- Die Programmierung der FPGA 10 wird durch die Programm- und Prüfsteuerschaltung 30 gesteuert. Die Programm- und Prüfsteuerschaltung 30 enthält die notwendigen Schaltkreise zum Empfang von Programmierdaten und Steuersignalen von außen über die E/A-Kontaktstellen 32, 34 und 36. Der Durchschnittsfachmann wird erkennen, daß die Anzahl der für eine tatsächliche Implementierung notwendigen E/A-Kontaktstellen je nach gewähltem Entwurf und je nach Anforderung schwanken wird. Die Daten und Steuersignale werden zur Programmierung ausgewählter benutzerprogrammierbarer Verbindungselemente in der integrierten Schaltung verwendet, um die Schaltungsfunktionen der Logikfunktionsmodule 12- 1 bis 12-12 und der E/A-Module 26-1 bis 26-4 und der Schaltungsverbindungswege dazwischen zu definieren. Die Programm- und Prüfsteuerschaltung 30 kann auch verwendet werden, um Prüfdaten zu liefern und Prüfdaten von den in der Technik bekannten Logikfunktionsmodulen 12-1 bis 12-12 zu erhalten. Beispiele für eine Prüfung unter Verwendung solcher Schaltkreise finden sich in den US- Patenten Nr. 4,758,745 und 5,083,083.
- Wie bereits offenbart, können die einzelnen Logikmodulschaltungen kombinatorische Logikbausteine, sequentielle Logikbausteine oder Kombinationen einer oder beider Arten von Logikbausteinen umfassen. Gemäß Fig. 2A nun, einem schematischen Blockdiagramm, kann eine bevorzugte Ausführungsform des kombinatorischen Bausteins 40 für das programmierbare Logikmodul drei Multiplexer 42, 44 und 46 mit jeweils zwei Eingängen umfassen. Der erste Multiplexer 42 mit zwei Eingängen hat einen ersten Dateneingang, der mit einem ersten Dateneingangsknoten 48 verbunden ist, einen zweiten Dateneingang, der mit einem zweiten Dateneingangsknoten 50 verbunden ist, einen Steuereingang, der mit dem Ausgang eines ersten Gate 52 verbunden ist, und einen Ausgang 54. Das erste Gate 52 hat einen ersten Eingang, der mit einem ersten Steuereingangsknoten 56 verbunden ist, und einen zweiten Eingang, der mit einem zweiten Steuereingangsknoten 58 verbunden ist. Der zweite Multiplexer 44 mit zwei Eingängen hat einen ersten Dateneingang, der mit einem dritten Dateneingangsknoten 60 verbunden ist, einen zweiten Dateneingang, der mit einem vierten Dateneingangsknoten 62 verbunden ist, einen Steuereingang, der mit dem Ausgang des ersten Gate 52 verbunden ist, und einen Ausgang 66. Der dritte Multiplexer 46 mit zwei Eingängen hat einen ersten Dateneingang, der mit dem Ausgang 54 des ersten Multiplexers 42 verbunden ist, einen zweiten Dateneingang, der mit dem Ausgang 66 des zweiten Multiplexers 44 verbunden ist, einen Steuereingang, der mit dem Ausgang eines zweiten Gate 68 verbunden ist, und einen Ausgang 70. Das zweite Gate hat einen ersten Eingang, der mit einem dritten Steuereingangsknoten 72 verbunden ist, und einen zweiten Eingang, der mit einem vierten Steuereingangsknoten 74 verbunden ist. Ein Ausgabepuffer 76 ist mit dem Ausgang 70 des dritten Multiplexers 46 verbunden. Das erste Gate 52 und das zweite Gate 68 sind als UND-Gate bzw. als ODER-Gate dargestellt, doch wird ein Durchschnittsfachmann erkennen, daß auch noch andere Kombinationen von Gates möglich sind.
- Mehrere Verbindungsleiter 78, 80, 82, 84 und 86 schneiden den ersten bis vierten Dateneingangsknoten 48, 50, 60 und 62, und benutzerprogrammierbare Verbindungselemente (in den Figuren der Zeichnung als hohle Kreise dargestellt) sind vorzugsweise an jedem Schnittpunkt angeordnet, damit programmierbare Verbindungen zwischen ausgewählten Verbindungsleitern und ausgewählten ersten bis vierten Dateneingangsknoten hergestellt werden können. Ausgewählte benutzerprogrammierbare Verbindungselemente sind durch die Bezugszeichen 88a-88d angegeben und werden später anhand von Fig. 2B erläutert.
- Ein Verbindungsleiter 86 von den mehreren Verbindungsleitern ist über einen Inverter 90 mit einem anderen Verbindungsleiter 84 verbunden. Wie für den Durchschnittsfachmann klar ist, macht die Gegenwart des Inverters 90 die Schaltungen mit den Logikfunktionsmodulen noch vielseitiger, indem ein ausgewählter Eingabeterm invertiert werden kann. Diese Vielseitigkeit könnte noch weiter erhöht werden, indem man den Verbindungsleiter 86 soweit verlängert, daß er andere Eingänge in derselben Funktionseinheit kreuzt, oder indem man ihn zu einem Bestandteil des örtlichen Verbindungskanals macht, um Verbindungen zu anderen Funktionseinheiten zu ermöglichen. Der Ausgang des Inverters 90 kann außerdem über zusätzliche Antischmelzsicherungen mit einem der Eingänge der Gates 52 und 68 verbunden werden.
- Wie außerdem aus Fig. 2A hervorgeht, schneiden die Verbindungsleiter 78, 80, 82 und 84 die horizontalen Verbindungsleiter 92, 94, 96 und 98 in einem oberen allgemeinen Verbindungskanal und die horizontalen Verbindungsleiter 100, 102, 104 und 106 in einem unteren allgemeinen Verbindungskanal. Die Eingänge 56, 58, 72 und 74 des ersten und des zweiten Gate kreuzen außerdem die horizontalen Verbindungsleiter 92, 94, 96, 98, 100, 102, 104 und 106. Weitere benutzerprogrammierbare Verbindungselemente sind an den Schnittpunkten dieser Leiter angeordnet und können programmiert werden, um wahlweise Verbindungen herzustellen, wie in der Technik bekannt ist.
- Der Durchschnittsfachmann wird erkennen, daß die in Fig. 2A dargestellte spezielle Anordnung lediglich der Veranschaulichung dient, und daß andere Anordnungen mit einer anderen Anzahl von Verbindungsleitern und mit einem anderen Schema zum Besetzen der Leiterschnittpunkte mit benutzerprogrammierbaren Verbindungselementen möglich sind.
- Die kombinatorische Einheit 40 für das in Fig. 2A dargestellte programmierbare Logikmodul ist eine kompakte und flexible Schaltung, die eine große Vielzahl von kombinatorischen Logikfunktionen ausführen kann. Anhand von Fig. 2B ist nun eine Tabelle dargestellt, die die Ausgangszustände des Modulblocks für die kombinatorischen Logikfunktionen gemäß Fig. 2A zeigt als Funktion der Zustände seiner Eingänge bei einer kleinen Abtastung der zur Verfügung stehenden kombinatorischen Funktionen, die mit dieser Einheit möglich sind. Der Durchschnittsfachmann wird ohne weiteres die übrigen möglichen Funktionen ermitteln können. Ein solcher Fachmann wird auch ohne weiteres erkennen, daß eine Vielzahl von Implementierungen für bestimmte dieser Funktionen möglich sind. Wie aus der Tabelle von Fig. 2B hervorgeht, stellen A0 und B0 den ersten und den zweiten Eingang 56 bzw. 58 des UND-Gate 52 dar, A1 und B1 stellen den ersten und den zweiten Eingang 72 bzw. 74 des ODER-Gate 68 dar. Die Eingangsleitungen L0, L1, L2 und L3 stellen Verbindungsleiter 78, 80, 82 und 84 dar. Die Eingänge D0, D1, D2 und D3 stellen die Dateneingangsknoten 48, 50, 60 und 62 des ersten und des zweiten Multiplexers 42 bzw. 44 dar. Schließlich stellt die Notation !L3 in den Einträgen unter dem Begriff "Intern" den Ausgang des Inverters 90 auf dem Verbindungsleiter 86 dar. Wenn er die Einträge unter L0, L1, L2 und L3 zusammen mit den Einträgen unter D0, D1, D2 und D3 liest, kann der Durchschnittsfachmann ohne weiteres feststellen, welche benutzerprogrammierbaren Verbindungselemente zu programmieren sind, um die gewünschte Logikfunktion zu implementieren.
- Die Einträge in Fig. 2B sind unkompliziert. Um zum Beispiel das in Fig. 2A dargestellte programmierbare Logikmodul als UND-Gate mit vier Eingängen zu konfigurieren, werden die folgenden Verbindungen hergestellt. Die Eingabeterme "a" und "b" werden dem ersten und dem zweiten Eingang des UND-Gate 52 auf den Leitungen 56 und 58 geliefert. Der Eingabeterm "c" wird einem der Eingänge 72 des ODER-Gate 68 geliefert, und eine logische Null wird dem anderen Eingang 74 des ODER-Gate 68 geliefert. Logikpegel "0" werden den Verbindungsleitern 78, 80 und 82 geliefert, und der Eingabeterm "d" wird dem Verbindungsleiter 84 geliefert.
- Aus einer Untersuchung der Einträge in der ersten Zeile der Tabelle von Fig. 2B geht hervor, daß D0 (erster Dateneingangsknoten 48 für den ersten Eingang des ersten Multiplexers 42) mit dem Verbindungsleiter 78 verbunden ist. Dies kann erreicht werden durch Programmieren des benutzerprogrammierbaren Verbindungselements 88a am Schnittpunkt des Verbindungsleiters 78 und des ersten Dateneingangsknotens 48. Analog dazu ist D1 (zweiter Dateneingangsknoten 50 für den zweiten Eingang des ersten Multiplexers 42) mit dem Verbindungsleiter 80 verbunden. Dies kann erreicht werden durch Programmieren des benutzerprogrammierbaren Verbindungselements 88b am Schnittpunkt des Verbindungsleiters 80 und des zweiten Dateneingangsknotens 50. Analog dazu ist D2 (dritter Dateneingangsknoten 60 für den ersten Eingang des zweiten Multiplexers 44) mit dem Verbindungsleiter 82 verbunden. Dies kann erreicht werden durch Programmieren des benutzerprogrammierbaren Verbindungselements 88c am Schnittpunkt des Verbindungsleiters 82 und des dritten Dateneingangsknotens 60. Analog dazu ist D3 (vierter Dateneingangsknoten 62 für den zweiten Eingang des zweiten Multiplexers 44) mit dem Eingabeterm "d" auf dem Verbindungsleiter 84 verbunden. Diese Verbindung wird hergestellt durch Programmieren des benutzerprogrammierbaren Verbindungselements 88d am Schnittpunkt des Verbindungsleiters 84 und des vierten Dateneingangsknotens 62.
- Anhand von Fig. 2C ist nun eine bevorzugte Ausführungsform eines sequentiellen Logikbausteins 110 für eine Logikmodul gemäß der vorliegenden Erfindung in einem schematischen Blockformat dargestellt. Gemäß einer bevorzugten Ausführungsform der Erfindung umfaßt der sequentielle Logikbaustein drei Multiplexer und ein Daten-Flipflop. Ein erster Multiplexer 112 mit zwei Eingängen hat einen ersten Dateneingang, der mit einem ersten Dateneingangsknoten 114 verbunden ist, einen zweiten Dateneingang, der mit einem zweiten Dateneingangsknoten 116 verbunden ist, einen Steuereingang, der mit einem ersten Steuerknoten 118 verbunden ist, und einen Ausgang 120. Ein zweiter Multiplexer 122 mit zwei Eingängen hat einen ersten Dateneingang, der mit dem Ausgang 120 des ersten Multiplexers verbunden ist, einen zweiten Dateneingang, der mit dem Ausgang des Daten-Flipflops 124 verbunden ist, einen Steuereingang, der mit einem zweiten Steuerknoten 126 verbunden ist, und einen Ausgang 128, der mit dem Dateneingang des Daten-Flipflops 124 verbunden ist. Ein erster Multiplexer 130 mit vier Eingängen hat einen ersten Dateneingang, der mit einem ersten Takteingangsknoten 132 verbunden ist, einen zweiten Dateneingang, der mit dem Komplement des Signals auf dem ersten Takteingangsknoten 132 verbunden ist, einen dritten Dateneingang, der mit einem zweiten Takteingang an dem Knoten 134 verbunden ist, einen vierten Dateneingang, der mit dem Komplement des zweiten Takteingangssignals an dem Knoten 134 verbunden ist, einen ersten Steuereingang, der mit einem Taktwählknoten 136 verbunden ist, einen zweiten Steuereingang, der mit einem Taktpolaritätswählknoten 138 verbunden ist, und einen Ausgang 140, der mit dem Takteingang des Daten-Flipflops verbunden ist. Der Ausgang des Daten-Flipflops 124 ist durch den Puffer 142 gepuffert. Schließlich ist das Daten- Flipflop 124 auch noch mit Setz- und Rücksetzeingängen 144 bzw. 146 versehen.
- Wie bei dem kombinatorischen Baustein 40 von Fig. 2A kann der sequentielle Baustein 110 von Fig. 2C mit der Schaltungsarchitektur des FPGA verbunden werden. Wie außerdem aus Fig. 2C hervorgeht, schneiden die verschiedenen Eingänge und Steuereingänge der Elemente des sequentiellen Bausteins 110 die horizontalen Verbindungsleiter 148, 150, 152 und 154 in einem oberen allgemeinen Verbindungskanal und die horizontalen Verbindungsleiter 156, 158, 160 und 162 in einem unteren allgemeinen Verbindungskanal. Benutzerprogrammierbare Verbindungselemente sind an den Schnittpunkten dieser Leiter angeordnet und können programmiert werden, um wahlweise Verbindungen herzustellen, wie in der Technik bekannt ist.
- Dem Durchschnittsfachmann ist klar, daß der sequentielle Baustein 110 außerdem eine flexible Schaltung ist. Der erste Multiplexer 130 mit vier Eingängen dient zum Wählen und Steuern der Taktquelle, so daß das Daten-Flipflop 124 über einen Systemtakt an dem ersten Takteingangsknoten 132 angesteuert werden kann, den vorzugsweise alle solchen Bausteine auf einer integrierten Schaltung gemeinsam hätten, oder über ein Taktsignal von einem Taktknoten, das von anderen Signalen hergeleitet ist, die über die allgemeinen Verbindungskanäle an den zweiten Taktknoten 134 angelegt werden. Der mit dem ersten Multiplexer 130 mit vier Eingängen verbundene Steuersignal-Steuerknoten 138 des zweiten Multiplexers erlaubt die Wahl der Ansteuerung des Daten-Flipflops 124 mit Anstiegsflanke oder mit Abfallflanke. Wie für den Durchschnittsfachmann ohne weiteres klar sein wird, läßt sich diese Funktion auch leicht durch einen dritten Multiplexer mit zwei Eingängen oder ein EXKLUSIV-ODER-Gate implementieren.
- Gemäß Fig. 2A und 2C wiederum ist ein weiterer Satz von Verbindungsleitern zum Verbinden der Eingänge und Ausgänge sowohl der kombinatorischen als auch der sequentiellen Bausteine 40 und 110 vorgesehen. Im Gegensatz zu den durch die Verbindungsleiter 92, 94, 96, 98, 100, 102, 104, 106, 148, 150, 152, 154, 156, 1158, 160 und 162 dargestellten allgemeinen Verbindungskanälen sind diese Verbindungsleiter örtliche Verbindungsleiter, die sich benachbarte Logikfunktionsbausteine teilen. Im Gegensatz zu den allgemeinen Verbindungsleitern sind außerdem die Ausgänge des kombinatorischen Bausteins 40 und des sequentiellen Bausteins 110 mit einzelnen örtlichen Verbindungsleitern fest verdrahtet.
- Die örtlichen Verbindungsleiter haben in Fig. 2A und 2C dieselben Bezugszeichen. Bei der in Fig. 2A und 2C dargestellten veranschaulichenden Struktur sind vier örtliche Verbindungsleiter 164, 166, 168 und 170 dargestellt, wenngleich der Durchschnittsfachmann erkennen wird, daß die Anzahl der bei einer tatsächlichen Realisierung der Architektur zu verwendenden örtlichen Verbindungsleiter weitgehend eine Frage des gewählten Entwurfs und der Anzahl der kombinatorischen und sequentiellen Bausteine in den örtlich miteinander verbundenen Logikmodulen sein wird.
- Der Ausgang des Puffers 76 des kombinatorischen Bausteins 40 ist mit dem örtlichen Verbindungsleiter 164 fest verdrahtet. Analog dazu ist der Ausgang des Puffers 142 des sequentiellen Bausteins 110 mit dem örtlichen Verbindungsleiter 166 fest verdrahtet. Ausgewählte weitere Daten- und Steuereingänge des kombinatorischen Bausteins 40 und des sequentiellen Bausteins 110 können mit den örtlichen Verbindungsleitern 164, 166, 168 und 170 über benutzerprogrammierbare Verbindungselemente verbunden werden, die als Kreise an den Schnittpunkten der Daten- und Steuereingänge des kombinatorischen Bausteins 40 und des sequentiellen Bausteins 110 und der örtlichen Verbindungsleiter 164, 166, 168 und 170 dargestellt sind.
- Es wird zwar beansprucht, den kombinatorischen Baustein 40 von Fig. 2A zu verwenden, doch wird dem Durchschnittsfachmann klar sein, daß auch noch andere kombinatorische Bausteine bei der FPGA-Kernarchitektur verwendet werden können. Anhand von Fig. 3A-3F sind nun mögliche nichtbeanspruchte Strukturen für alternative Schaltungen mit kombinatorischen Bausteinen dargestellt.
- Vorteilhafterweise sind drei Funktionseinheiten zu einem Logikmodul kombiniert. Diese drei Einheiten können identisch sein, d. h. das Logikmodul kann drei kombinatorische Bausteine oder drei sequentielle Bausteine umfassen oder gemischt sein, d. h. das Logikmodul kann einen kombinatorischen Baustein und zwei sequentielle Bausteine umfassen. Bei Logikmodulen, die Mischungen aus kombinatorischen und sequentiellen Bausteinen enthalten, kann es von Vorteil sein, den vorgepufferten Ausgang des kombinatorischen Bausteins intern mit einem der Eingänge des ersten Multiplexers des sequentiellen Bausteins zu verbinden. Eine solche Anordnung ist in Fig. 4A dargestellt.
- Anhand von Fig. 4A ist nun das Logikfunktionsmodul 200 in einem schematischen Blockformat dargestellt. Bei der veranschaulichenden Ausführungsform von Fig. 4A umfaßt das Logikfunktionsmodul 200 einen kombinatorischen Baustein 40 und zwei sequentielle Bausteine 110a und 110b. Der Einfachheit halber werden die Elemente dieser in Fig. 4A dargestellten Bausteine mit den in Fig. 2A und 2C verwendeten Bezugszeichen bezeichnet, wenngleich nicht alle Elemente in Fig. 4A mit Bezugszeichen versehen sind, um die Zeichnung nicht unübersichtlich zu machen.
- Ein oberer allgemeiner Verbindungskanal umfaßt allgemeine Verbindungsleiter 202, 204, 206, 208 und 210, von denen einige für Taktsignal- und Logikpegelfunktionen bestimmt sein können, und ein unterer allgemeiner Verbindungskanal umfaßt allgemeine Verbindungsleiter 212, 214, 216, 218 und 220, von denen einige ebenfalls für Taktsignal- und Logikpegelfunktionen bestimmt sein können. Ein örtlicher Verbindungskanal 222 umfaßt örtliche Verbindungsleiter 224, 226, 228, 230, 232 und 234. Der Ausgang des Ausgabepuffers 76 des kombinatorischen Bausteins 40 ist mit dem örtlichen Verbindungsleiter 224 fest verdrahtet. Der Ausgang des Ausgabepuffers 142a des kombinatorischen Bausteins 110a ist mit dem örtlichen Verbindungsleiter 226 fest verdrahtet. Der Ausgang des Ausgabepuffers 142b des kombinatorischen Bausteins 110b ist mit dem örtlichen Verbindungsleiter 228 fest verdrahtet. Außerdem besteht eine interne festverdrahtete Verbindung zwischen dem vorgepufferten Ausgang des kombinatorischen Bausteins 40 und dem ersten Eingang 114a des Multiplexers 112a in dem sequentiellen Baustein 110a. Alternativ kann der vorgepufferte Ausgang des kombinatorischen Bausteins 40 mit dem Steuereingang des Multiplexers 112a fest verdrahtet sein.
- Dem Durchschnittsfachmann ist klar, daß das Logikfunktionsmodul von Fig. 4A extrem flexibel ist und die Implementierung einer großen Vielzahl von kombinatorischen und sequentiellen Logikfunktionen erlaubt. Wenn mehrere dieser Logikfunktionsmodule 200 in einer Anordnung gemäß Fig. 1 angebracht sind, wird der Vorteil des örtlichen Verbindungskanals offensichtlich. Bei einer solchen Anordnung sind die Ausgänge der kombinatorischen und sequentiellen Elemente jeweils mit unterschiedlichen örtlichen Verbindungsleitern 224, 226, 228, 230, 232 und 234 fest verdrahtet. Weil die festverdrahteten Verbindungen die benutzerprogrammierbaren Verbindungselemente in den allgemeinen Verbindungskanälen umgehen, ist jegliche Zeitverzögerung, die solche Verbindungselemente durch sie hindurchlaufenden Signalen normalerweise auferlegen, ausgeschaltet, was eine Schaltung ergibt, die tatsächlich ein größeres, schnelleres, einzelnes Logikfunktionsmodul ist.
- Fig. 4A veranschaulicht außerdem die besondere Vielseitigkeit, die das zusätzliche Vorhandensein des Inverters 90 von Fig. 2A dem Logikfunktionsmodul verleiht. Gemäß Fig. 4A kann der physisch in dem kombinatorischen Baustein enthaltene Inverter 90 zusammen mit dem kombinatorischen Baustein oder mit dem sequentiellen Baustein 110a oder 110b verwendet werden, indem man entsprechende Antischmelzsicherungen so programmiert, daß sein Ausgang mit den Dateneingängen und Steuereingängen der zu dem sequentiellen Baustein 110a gehörigen Datenmultiplexer 112a, 122a und der zu dem sequentiellen Baustein 11 Ob gehörigen Datenmultiplexer 112b und 122b sowie mit den Setz- und Rücksetzeingängen der Daten-Flipflops 124a und 124b in den sequentiellen Bausteinen verbunden wird.
- Die Mischung und Anordnung der kombinatorischen und sequentiellen Komponenten von Paaren von Logikfunktionsmodulen kann vorteilhafterweise variiert werden. Dies wird in Fig. 4B-4D veranschaulicht, schematischen Darstellungen der Layouts von Paaren von Logikfunktionsmodulen, die durch örtliche Verbindungskanäle verbunden sind.
- Gemäß Fig. 4B ist nun zunächst ein Paar von Logikfunktionsmodulen, das die Logikfunktionsmodule 200a und 200b umfaßt, durch einen örtlichen Verbindungsbus 222a verbunden. Das Logikfunktionsmodul 200a umfaßt einen ganz links angeordneten kombinatorischen Baustein 240, einen mittigen sequentiellen Baustein 242 und einen ganz rechts angeordneten kombinatorischen Baustein 244. Das Logikfunktionsmodul 200b umfaßt einen ganz links angeordneten kombinatorischen Baustein 246, einen mittigen sequentiellen Baustein 248 und einen ganz rechts angeordneten kombinatorischen Baustein 250.
- Der Durchschnittsfachmann wird erkennen, daß die Ausgänge der kombinatorischen und sequentiellen Bausteine 240, 242, 244, 246, 248 und 250 mit jeweils unterschiedlichen örtlichen Verbindungsleitern des örtlichen Verbindungskanals 222a in der in Fig. 4A dargestellten Weise für einen einzelnen Logikfunktionsbaustein 200 festverdrahtet sind.
- Weitere Variationen des erfindungsgemäßen Layouts des Paares von Logikmodulen sind in Fig. 4C und 4D dargestellt. Gemäß Fig. 4C ist ein Paar von Logikfunktionsmodulen, das die Logikfunktionsmodule 200c und 200d umfaßt, durch den örtlichen Verbindungsbus 222b verbunden. Das Logikfunktionsmodul 200c umfaßt einen ganz links angeordneten kombinatorischen Baustein 252, einen mittigen sequentiellen Baustein 254 und einen ganz rechts angeordneten kombinatorischen Baustein 256. Das Logikfunktionsmodul 200d umfaßt einen ganz links angeordneten sequentiellen Baustein 258, einen mittigen sequentiellen Baustein 260 und einen ganz rechts angeordneten sequentiellen Baustein 262. Gemäß Fig. 4D ist ein Paar von Logikfunktionsmodulen, das die Logikfunktionsmodule 200e und 200f umfaßt, durch den örtlichen Verbindungsbus 222c verbunden. Das Logikfunktionsmodul 200e umfaßt einen ganz links angeordneten kombinatorischen Baustein 264, einen mittigen sequentiellen Baustein 266 und einen ganz rechts angeordneten sequentiellen Baustein 268. Das Logikfunktionsmodul 200f umfaßt einen ganz links angeordneten kombinatorischen Baustein 270, einen mittigen sequentiellen Baustein 272 und einen ganz rechts angeordneten kombinatorischen Baustein 274.
- Die Verbindungsleiter der Schaltungsarchitektur können als Segmente geliefert werden. Es kann auch möglich gemacht werden, die Segmente zum Beispiel zu Prüfzwecken vorübergehend zu verbinden. Ferner können benutzerprogrammierbare Verbindungselemente bereitgestellt werden, um die Segmente programmierbar miteinander zu verbinden, um während des normalen Betriebs der integrierten Schaltung längere Verbindungsleiter herzustellen.
- Gemäß Fig. 2A nun wiederum sind die Verbindungsleiter 78, 80, 82, 84 und 86 jeweils durch Schalttransistoren in Segmente unterteilt. Der Verbindungsleiter 78 ist also mit einem der Source/Drain-Anschlüsse des Schalttransistors 302 verbunden. Der andere Source/Drain-Anschluß des Schalttransistors 302 ist mit dem Verbindungsleiter 78a verbunden, der als sich nach unten erstreckende vertikale Verlängerung des Verbindungsleiters 78 angesehen werden kann. Analog dazu ist der Verbindungsleiter 80 mit einem der Source/Drain-Anschlüsse des Schalttransistors 304 verbunden. Der andere Source/Drain-Anschluß des Schalttransistors 304 ist mit dem Verbindungsleiter 80a verbunden, der als sich nach oben erstreckende vertikale Verlängerung des Verbindungsleiters 80 angesehen werden kann. Der Verbindungsleiter 82 ist mit einem der Source/Drain-Anschlüsse des Schalttransistors 306 verbunden. Der andere Source/Drain-Anschluß des Schalttransistors 306 ist mit dem Verbindungsleiter 82a verbunden, der als sich nach unten erstreckende vertikale Verlängerung des Verbindungsleiters 82 angesehen werden kann. Der Verbindungsleiter 84 ist mit einem der Source/Drain-Anschlüsse des Schalttransistors 308 verbunden. Der andere Source/Drain-Anschluß des Schalttransistors 308 ist mit dem Verbindungsleiter 84a verbunden, der als sich nach oben erstreckende vertikale Verlängerung des Verbindungsleiters 84 angesehen werden kann. Der Verbindungsleiter 86 ist mit einem der Source/Drain- Anschlüsse des Schalttransistors 310 verbunden. Der andere Source/Drain- Anschluß des Schalttransistors 310 ist mit dem Verbindungsleiter 86a verbunden, der als sich nach oben erstreckende vertikale Verlängerung des Verbindungsleiters 86 angesehen werden kann.
- Gemäß Fig. 2A sind die Schalttransistoren vorzugsweise versetzt angeordnet, um die Schaltungsarchitektur vielseitiger zu machen. Die Schalttransistoren 302 und 306 befinden sich somit an einer vertikalen Position auf ihren zugehörigen Verbindungsleitern, während sich die Schalttransistoren 304, 308 und 310 an einer anderen vertikalen Position auf ihren zugehörigen Verbindungsleitern befinden. Die Gates der Schalttransistoren werden durch die Programm- und Prüfsteuerschaltung 30 (Fig. 1) angesteuert. Während die Gates der Schalttransistoren 302 und 306 mit einer gemeinsamen Gateleitung 312 verbunden sind und die Gates der Schalttransistoren 304, 308 und 310 mit einer gemeinsamen Gateleitung 314 verbunden sind, wird der Durchschnittsfachmann erkennen, daß auch noch andere Anordnungen möglich sind.
- Dem Durchschnittsfachmann ist klar, daß die Verbindungsleiter 78a und 82a über benutzerprogrammierbare Verbindungselemente mit dem unter dem Logikfunktionsmodul 40 in der integrierten Schaltungsanordnung befindlichen Logikfunktionsmodul (in Fig. 2A nicht dargestellt) verbunden werden können, und daß die Verbindungsleiter 80a, 84a und 86a über benutzerprogrammierbare Verbindungselemente mit dem über dem Logikfunktionsmodul 40 in der integrierten Schaltungsanordnung befindlichen Logikfunktionsmodul (in Fig. 2A nicht dargestellt) verbunden werden können. Das spezielle, bei einer tatsächlichen, gemäß vorliegender Beschreibung gefertigten Architektur verwendete Segmentierungsschema wird etwas willkürlich und weitgehend eine Frage des gewählten Entwurfs in Abhängigkeit von dem speziellen Layout der Architektur sein.
- Es wurden hier zwar Ausführungsformen und Anwendungen der vorliegenden Erfindung dargestellt und beschrieben, doch wäre es für einen Fachmann offensichtlich, daß noch viel mehr Modifikationen als die oben erwähnten möglich sind, ohne von den hierin vorgelegten erfindungsgemäßen Konzepten abzuweichen. Die Erfindung dürfte daher nur durch den Rahmen der beigefügten Ansprüche begrenzt sein.
Claims (9)
1. Kombinatorischer Logikbaustein für eine FPGA, umfassend:
einen ersten Multiplexer (42) mit einem ersten Dateneingang, der mit einem ersten
Dateneingangsleiter (48) verbunden ist, einem zweiten Dateneingang, der mit
einem zweiten Dateneingangsleiter (50) verbunden ist, einem Steuereingang und
einem Ausgang (54);
einen zweiten Multiplexer (44) mit einem ersten Dateneingang, der mit einem
dritten Dateneingangsleiter (60) verbunden ist, einem zweiten Dateneingang, der mit
einem vierten Dateneingangsleiter (62) verbunden ist, einem Steuereinganag und
einem Ausgang (66);
einen dritten Multiplexer (46) mit einem ersten Dateneingang, der mit dem
Ausgang (54) des ersten Multiplexers verbunden ist, einem zweiten Dateneingang, der
mit dem Ausgang (66) des zweiten Multiplexers verbunden ist, einem
Steuereingang und einem Ausgang (70);
ein erstes Logikgatter (52) mit einem ersten Eingang, der mit einem fünften
Dateneingangsleiter (36) verbunden ist, einem zweiten Eingang, der mit einem
sechsten Dateneingangsleiter (58) verbunden ist, und einem Ausgang, der mit den
Steuereingängen des ersten und des zweiten Multiplexers (42, 44) verbunden ist;
ein zweites Logikgatter (68) mit einem ersten Eingang, der mit einem siebten
Dateneingangsleiter (72) verbunden ist, einem zweiten Eingang, der mit einem
achten Dateneingangsleiter (74) verbunden ist, und einem Ausgang, der mit dem
Steuereingang des dritten Multiplexers (46) verbunden ist;
einen Ausgangspuffer (76) mit einem Eingang, der mit dem Ausgang (70) des
dritten Multiplexers verbunden ist, und einem Ausgang, der mit einem
Ausgangsleiter (164) verbunden ist;
mehrere Verbindungsleiter (78-86, 92-106), die die Daten- und
Steuereingangsleiter (48, 50, 60, 62) des ersten, zweiten und dritten Multiplexers schneiden,
wobei die mehreren Verbindungsleiter durch benutzerprogrammierbare
Verbindungselemente wahlweise mit einzelnen Daten- und Steuereingangsleitern
verbunden werden können; und
einen Inverter (90) mit einem Eingang, der mit einem ersten Verbindungsleiter (84)
verbunden ist, und einem Ausgang, der mit einem zweiten Verbindungsleiter (86)
verbunden ist.
2. Sequentieller Logikbaustein für eine FPGA, umfassend:
ein Daten-Flipflop (124) mit einem Dateneingang, einem Takteingang und einem
Ausgang;
einen ersten Daten-Multiplexer (112) mit einem ersten Dateneingang, der mit
einem ersten Dateneingangsleiter (114) verbunden ist, einem zweiten
Dateneingang, der mit einem zweiten Dateneingangsleiter (116) verbunden ist, einem
Steuereingang, der mit einem ersten Steuereingangsleiter (118) verbunden ist,
und einem Ausgang;
einen zweiten Daten-Multiplexer (122) mit einem ersten Dateneingang, der mit
dem Ausgang des Daten-Flipflops verbunden ist, einem zweiten Dateneingang,
der mit dem Ausgang des ersten Multiplexers (112) verbunden ist, einem
Steuereingang und einem Ausgang, der mit dem Dateneingang des Daten-Flipflops
verbunden ist;
einen Ausgangspuffer (142) mit einem Eingang, der mit dem Ausgang des Daten-
Flipflops (124) verbunden ist, und einem Ausgang, der mit einem Ausgangsleiter
(166) verbunden ist; und
mehrere allgemeine Verbindungsleiter (148-162), wobei mindestens einige der
allgemeinen Verbindungsleiter die Daten-, Takt- und Steuereingangsleiter (114,
116, 118, 126) des ersten und des zweiten Multiplexers (112, 122) schneiden,
wobei die mehreren allgemeinen Verbindungsleiter durch benutzerprogrammierbare
Verbindungselemente wahlweise mit einzelnen Daten-, Takt- und
Steuereingangsleitern verbunden werden können.
3. Sequentieller Logikbaustein nach Anspruch 2, der ferner folgendes umfaßt:
einen Setzeingang, der mit einem Setzeingangsleiter (144) verbunden ist, wobei
der Setzeingangsleiter mindestens einige der allgemeinen Verbindungsleiter (148-
154) schneidet und durch benutzerprogrammierbare Verbindungselemente mit
mindestens einigen der allgemeinen Verbindungsleiter verbunden werden kann;
und
einen Rücksetzeingang, der mit einem Rücksetzeingangsleiter (146) verbunden
ist, wobei der Rücksetzeingangsleiter mindestens einige der allgemeinen
Verbindungsleiter (156-170) schneidet und durch benutzerprogrammierbare
Verbindungselemente mit mindestens einigen der allgemeinen Verbindungsleiter
verbunden werden kann.
4. Programmierbares Logikmodul mit einem kombinatorischen Logikbaustein
nach Anspruch 1 und einem sequentiellen Logikbaustein nach Anspruch 2 oder 3.
5. Programmierbares Logikmodul nach Anspruch 4, das ferner folgendes
umfaßt:
mehrere örtliche Verbindungsleiter (164-170), wobei ein erster örtlicher
Verbindungsleiter (164) mit dem Ausgang des ersten Ausgangspuffers verbunden ist, ein
zweiter örtlicher Verbindungsleiter (166) mit dem Ausgang des zweiten
Ausgangspuffers verbunden ist, mindestens einige der örtlichen Verbindungsleiter (164-170)
die Daten-, Takt- und Steuereingangsleiter der Multiplexer der kombinatorischen
und sequentiellen Logikmodule schneiden und die mehreren allgemeinen
Verbindungsleiter durch benutzerprogrammierbare Verbindungselemente wahlweise mit
einzelnen Daten-, Takt- und Steuereingangsleitern verbunden werden können.
6. Programmierbares Logikmodul nach Anspruch 5, das ferner folgendes
umfaßt:
ein zweites Daten-Flipflop (124b) mit einem Dateneingang, einem Takteingang
und einem Ausgang;
einen sechsten Daten-Multiplexer (112b) mit einem ersten Dateneingang, der mit
einem zehnten Dateneingangsleiter verbunden ist, einem zweiten Dateneingang,
der mit einem elften Dateneingangsleiter verbunden ist, einem Steuereingang, der
mit einem vierten Steuereingangsleiter verbunden ist, und einem Ausgang;
einen siebten Daten-Multiplexer (122b) mit einem ersten Dateneingang, der mit
dem Ausgang des zweiten Daten-Flipflops verbunden ist, einem zweiten
Dateneingang, der mit dem Ausgang des vierten Multiplexers verbunden ist, einem
Steuereingang, der mit einem fünften Steuereingangsleiter verbunden ist, und
einem Ausgang, der mit dem Dateneingang des zweiten Flipflops verbunden ist; und
einen dritten Ausgangspuffer (142b) mit einem Eingang, der mit dem Ausgang des
zweiten Daten-Flipflops verbunden ist, und einem Ausgang, der mit einem
Ausgangsleiter verbunden ist.
7. Programmierbares Logikmodul nach Anspruch 6, bei dem das zweite
Daten-Flipflop ferner folgendes umfaßt:
einen Setzeingang, der mit einem Setzeingangsleiter verbunden ist, wobei der
Setzeingangsleiter mindestens einige der allgemeinen Verbindungsleiter schneidet
und durch benutzerprogrammierbare Verbindungselemente mit mindestens
einigen der allgemeinen Verbindungsleiter verbunden werden kann; und
einen Rücksetzeingang, der mit einem Rücksetzeingangsleiter verbunden ist,
wobei der Rücksetzeingangsleiter mindestens einige der allgemeinen
Verbindungsleiter schneidet und durch benutzerprogrammierbare Verbindungselemente mit
mindestens einigen der allgemeinen Verbindungsleiter verbunden werden kann.
8. Baustein nach Anspruch 1 oder Modul nach Anspruch 4, 5, 6 oder 7, bei
dem das erste Logikgatter ein UND-Gatter ist und das zweite Logikgatter ein
ODER-Gatter ist.
9. Baustein oder Modul nach einem der vorhergehenden Ansprüche, bei dem
die benutzerprogrammierbaren Verbindungselemente Antischmelzsicherungen
sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/246,218 US5451887A (en) | 1986-09-19 | 1994-05-19 | Programmable logic module and architecture for field programmable gate array device |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69528393D1 DE69528393D1 (de) | 2002-10-31 |
DE69528393T2 true DE69528393T2 (de) | 2003-01-30 |
Family
ID=22929777
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69507851T Expired - Lifetime DE69507851T2 (de) | 1994-05-19 | 1995-05-18 | Programmierbarer Aufbau für eine anwenderprogrammierbare Gatterfelderanordnung |
DE69528393T Expired - Fee Related DE69528393T2 (de) | 1994-05-19 | 1995-05-18 | Programmierbarer Logikbaustein für ein anwenderprogrammierbares Gate-Array |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69507851T Expired - Lifetime DE69507851T2 (de) | 1994-05-19 | 1995-05-18 | Programmierbarer Aufbau für eine anwenderprogrammierbare Gatterfelderanordnung |
Country Status (4)
Country | Link |
---|---|
US (2) | US5451887A (de) |
EP (2) | EP0889593B1 (de) |
JP (1) | JP3589501B2 (de) |
DE (2) | DE69507851T2 (de) |
Families Citing this family (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5451887A (en) * | 1986-09-19 | 1995-09-19 | Actel Corporation | Programmable logic module and architecture for field programmable gate array device |
US5477165A (en) * | 1986-09-19 | 1995-12-19 | Actel Corporation | Programmable logic module and architecture for field programmable gate array device |
GB8906145D0 (en) * | 1989-03-17 | 1989-05-04 | Algotronix Ltd | Configurable cellular array |
US5198705A (en) | 1990-05-11 | 1993-03-30 | Actel Corporation | Logic module with configurable combinational and sequential blocks |
GB9223226D0 (en) * | 1992-11-05 | 1992-12-16 | Algotronix Ltd | Improved configurable cellular array (cal ii) |
US5546018A (en) * | 1993-09-02 | 1996-08-13 | Xilinx, Inc. | Fast carry structure with synchronous input |
US5898319A (en) * | 1993-09-02 | 1999-04-27 | Xilinx, Inc. | Method and structure for providing fast conditional sum in a field programmable gate array |
US6288570B1 (en) | 1993-09-02 | 2001-09-11 | Xilinx, Inc. | Logic structure and circuit for fast carry |
US6154053A (en) * | 1993-09-02 | 2000-11-28 | Xilinx, Inc. | Look-ahead carry structure with homogeneous CLB structure and pitch larger than CLB pitch |
IL109491A (en) * | 1994-05-01 | 1999-11-30 | Quick Tech Ltd | Customizable logic array device |
US5633601A (en) * | 1995-03-10 | 1997-05-27 | Texas Instruments Incorporated | Field programmable gate array logic module configurable as combinational or sequential circuits |
US5751162A (en) * | 1995-04-06 | 1998-05-12 | Texas Instruments Incorporated | Field programmable gate array logic module configurable as combinational or sequential circuits |
US5594363A (en) * | 1995-04-07 | 1997-01-14 | Zycad Corporation | Logic cell and routing architecture in a field programmable gate array |
US5530378A (en) * | 1995-04-26 | 1996-06-25 | Xilinx, Inc. | Cross point interconnect structure with reduced area |
US5528169A (en) * | 1995-04-26 | 1996-06-18 | Xilinx, Inc. | Method and structure for providing a flip flop circuit with a configurable data input path |
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 |
US5684412A (en) * | 1995-08-18 | 1997-11-04 | Chip Express (Israel) Ltd. | Cell forming part of a customizable logic array |
US5751165A (en) * | 1995-08-18 | 1998-05-12 | Chip Express (Israel) Ltd. | High speed customizable logic array device |
US5936426A (en) | 1997-02-03 | 1999-08-10 | Actel Corporation | Logic function module for field programmable array |
US6150837A (en) * | 1997-02-28 | 2000-11-21 | Actel Corporation | Enhanced field programmable gate array |
US6014038A (en) * | 1997-03-21 | 2000-01-11 | Lightspeed Semiconductor Corporation | Function block architecture for gate array |
US6130555A (en) * | 1997-10-13 | 2000-10-10 | Altera Corporation | Driver circuitry for programmable logic devices |
US6223313B1 (en) | 1997-12-05 | 2001-04-24 | Lightspeed Semiconductor Corporation | Method and apparatus for controlling and observing data in a logic block-based asic |
US6611932B2 (en) | 1997-12-05 | 2003-08-26 | Lightspeed Semiconductor Corporation | Method and apparatus for controlling and observing data in a logic block-based ASIC |
US6137308A (en) * | 1998-01-20 | 2000-10-24 | Cypress Semiconductor Corporation | Programmable interconnect matrix architecture for complex programmable logic device |
US6772387B1 (en) | 1998-03-16 | 2004-08-03 | Actel Corporation | Cyclic redundancy checking of a field programmable gate array having an SRAM memory architecture |
US7146441B1 (en) | 1998-03-16 | 2006-12-05 | Actel Corporation | SRAM bus architecture and interconnect to an FPGA |
US6038627A (en) * | 1998-03-16 | 2000-03-14 | Actel Corporation | SRAM bus architecture and interconnect to an FPGA |
US7389487B1 (en) * | 1998-04-28 | 2008-06-17 | Actel Corporation | Dedicated interface architecture for a hybrid integrated circuit |
US6169416B1 (en) | 1998-09-01 | 2001-01-02 | Quicklogic Corporation | Programming architecture for field programmable gate array |
US6549035B1 (en) | 1998-09-15 | 2003-04-15 | Actel Corporation | High density antifuse based partitioned FPGA architecture |
US6204686B1 (en) * | 1998-12-16 | 2001-03-20 | Vantis Corporation | Methods for configuring FPGA's having variable grain blocks and shared logic for providing symmetric routing of result output to differently-directed and tristateable interconnect resources |
US6762621B1 (en) | 1998-12-31 | 2004-07-13 | Actel Corporation | Programmable multi-standard I/O architecture for FPGAs |
US6864710B1 (en) | 1999-12-30 | 2005-03-08 | Cypress Semiconductor Corp. | Programmable logic device |
US6388464B1 (en) | 1999-12-30 | 2002-05-14 | Cypress Semiconductor Corp. | Configurable memory for programmable logic circuits |
US6608500B1 (en) | 2000-03-31 | 2003-08-19 | Cypress Semiconductor Corp. | I/O architecture/cell design for programmable logic device |
US6870396B2 (en) * | 2000-09-02 | 2005-03-22 | Actel Corporation | Tileable field-programmable gate array architecture |
US6476636B1 (en) * | 2000-09-02 | 2002-11-05 | Actel Corporation | Tileable field-programmable gate array architecture |
US7426665B1 (en) | 2000-09-02 | 2008-09-16 | Actel Corporation | Tileable field-programmable gate array architecture |
US6937063B1 (en) | 2000-09-02 | 2005-08-30 | Actel Corporation | Method and apparatus of memory clearing with monitoring RAM memory cells in a field programmable gated array |
US7015719B1 (en) | 2000-09-02 | 2006-03-21 | Actel Corporation | Tileable field-programmable gate array architecture |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
JP2004524188A (ja) * | 2001-02-28 | 2004-08-12 | シャーウッド・テクノロジー・リミテッド | レーザ印字 |
US7558967B2 (en) * | 2001-09-13 | 2009-07-07 | Actel Corporation | Encryption for a stream file in an FPGA integrated circuit |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US6696856B1 (en) | 2001-10-30 | 2004-02-24 | Lightspeed Semiconductor Corporation | Function block architecture with variable drive strengths |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US6777977B1 (en) * | 2002-05-01 | 2004-08-17 | Actel Corporation | Three input field programmable gate array logic circuit configurable as a three input look up table, a D-latch or a D flip-flop |
US6774667B1 (en) | 2002-05-09 | 2004-08-10 | Actel Corporation | Method and apparatus for a flexible chargepump scheme for field-programmable gate arrays |
US6891394B1 (en) * | 2002-06-04 | 2005-05-10 | Actel Corporation | Field-programmable gate array low voltage differential signaling driver utilizing two complimentary output buffers |
US7378867B1 (en) | 2002-06-04 | 2008-05-27 | Actel Corporation | Field-programmable gate array low voltage differential signaling driver utilizing two complimentary output buffers |
US6765427B1 (en) | 2002-08-08 | 2004-07-20 | Actel Corporation | Method and apparatus for bootstrapping a programmable antifuse circuit |
US7434080B1 (en) | 2002-09-03 | 2008-10-07 | Actel Corporation | Apparatus for interfacing and testing a phase locked loop in a field programmable gate array |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US6750674B1 (en) | 2002-10-02 | 2004-06-15 | Actel Corporation | Carry chain for use between logic modules in a field programmable gate array |
US7269814B1 (en) | 2002-10-08 | 2007-09-11 | Actel Corporation | Parallel programmable antifuse field programmable gate array device (FPGA) and a method for programming and testing an antifuse FPGA |
US6727726B1 (en) | 2002-11-12 | 2004-04-27 | Actel Corporation | Field programmable gate array architecture including a buffer module and a method of distributing buffer modules in a field programmable gate array |
US6800884B1 (en) | 2002-12-30 | 2004-10-05 | Actel Corporation | Inter-tile buffer system for a field programmable gate array |
US6774672B1 (en) | 2002-12-30 | 2004-08-10 | Actel Corporation | Field-programmable gate array architecture |
US6774669B1 (en) | 2002-12-30 | 2004-08-10 | Actel Corporation | Field programmable gate array freeway architecture |
US6774670B1 (en) | 2002-12-30 | 2004-08-10 | Actel Corporation | Intra-tile buffer system for a field programmable gate array |
US6943581B1 (en) * | 2003-03-27 | 2005-09-13 | Xilinx, Inc. | Test methodology for direct interconnect with multiple fan-outs |
US6825690B1 (en) | 2003-05-28 | 2004-11-30 | Actel Corporation | Clock tree network in a field programmable gate array |
US6838902B1 (en) * | 2003-05-28 | 2005-01-04 | Actel Corporation | Synchronous first-in/first-out block memory for a field programmable gate array |
US7385419B1 (en) | 2003-05-30 | 2008-06-10 | Actel Corporation | Dedicated input/output first in/first out module for a field programmable gate array |
US7796464B1 (en) | 2003-06-27 | 2010-09-14 | Cypress Semiconductor Corporation | Synchronous memory with a shadow-cycle counter |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US7243329B2 (en) * | 2004-07-02 | 2007-07-10 | Altera Corporation | Application-specific integrated circuit equivalents of programmable logic and associated methods |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US7737724B2 (en) * | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US7893772B1 (en) | 2007-12-03 | 2011-02-22 | Cypress Semiconductor Corporation | System and method of loading a programmable counter |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
FR2954023B1 (fr) | 2009-12-14 | 2012-02-10 | Lyon Ecole Centrale | Matrice interconnectee de cellules logiques reconfigurables avec une topologie d'interconnexion croisee |
US20160358653A1 (en) * | 2015-06-08 | 2016-12-08 | Altera Corporation | Hardware programmable device with integrated search engine |
Family Cites Families (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3816725A (en) * | 1972-04-28 | 1974-06-11 | Gen Electric | Multiple level associative logic circuits |
US3818452A (en) * | 1972-04-28 | 1974-06-18 | Gen Electric | Electrically programmable logic circuits |
US3849638A (en) * | 1973-07-18 | 1974-11-19 | Gen Electric | Segmented associative logic circuits |
US3987287A (en) * | 1974-12-30 | 1976-10-19 | International Business Machines Corporation | High density logic array |
NL7612223A (nl) | 1976-11-04 | 1978-05-08 | Philips Nv | Geintegreerde schakeling. |
US4207556A (en) * | 1976-12-14 | 1980-06-10 | Nippon Telegraph And Telephone Public Corporation | Programmable logic array arrangement |
FR2440657A1 (fr) * | 1978-10-31 | 1980-05-30 | Ibm France | Perfectionnement aux reseaux logiques programmables a fonctions multiples |
US4293783A (en) * | 1978-11-01 | 1981-10-06 | Massachusetts Institute Of Technology | Storage/logic array |
JPS57111044A (en) * | 1980-12-27 | 1982-07-10 | Fujitsu Ltd | Master-slice type lsi device |
US4433331A (en) * | 1981-12-14 | 1984-02-21 | Bell Telephone Laboratories, Incorporated | Programmable logic array interconnection matrix |
US4541067A (en) | 1982-05-10 | 1985-09-10 | American Microsystems, Inc. | Combinational logic structure using PASS transistors |
US4717912A (en) * | 1982-10-07 | 1988-01-05 | Advanced Micro Devices, Inc. | Apparatus for producing any one of a plurality of signals at a single output |
US4847732A (en) * | 1983-09-15 | 1989-07-11 | Mosaic Systems, Inc. | Wafer and method of making same |
GB8400959D0 (en) * | 1984-01-13 | 1984-02-15 | British Petroleum Co Plc | Semiconductor device |
US4870302A (en) | 1984-03-12 | 1989-09-26 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
JPH0772744B2 (ja) * | 1984-09-04 | 1995-08-02 | 株式会社日立製作所 | 半導体集積回路装置 |
US4642487A (en) * | 1984-09-26 | 1987-02-10 | Xilinx, Inc. | Special interconnect for configurable logic array |
US4713557A (en) * | 1984-09-26 | 1987-12-15 | Xilinx, Inc. | Bidirectional buffer amplifier |
ATE53152T1 (de) * | 1984-09-28 | 1990-06-15 | Siemens Ag | Schaltung zur logikgenerierung mit multiplexern. |
US4706216A (en) * | 1985-02-27 | 1987-11-10 | Xilinx, Inc. | Configurable logic element |
US4933577A (en) * | 1985-03-22 | 1990-06-12 | Advanced Micro Devices, Inc. | Output circuit for a programmable logic array |
US4963768A (en) * | 1985-03-29 | 1990-10-16 | Advanced Micro Devices, Inc. | Flexible, programmable cell array interconnected by a programmable switch matrix |
US4742252A (en) * | 1985-03-29 | 1988-05-03 | Advanced Micro Devices, Inc. | Multiple array customizable logic device |
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 |
US4677318A (en) * | 1985-04-12 | 1987-06-30 | Altera Corporation | Programmable logic storage element for programmable logic devices |
US4691161A (en) * | 1985-06-13 | 1987-09-01 | Raytheon Company | Configurable logic gate array |
US4763020B1 (en) * | 1985-09-06 | 1997-07-08 | Ricoh Kk | Programmable logic device having plural programmable function cells |
AU6596286A (en) * | 1985-10-29 | 1987-05-19 | 4C Electronics, Inc. | Progammable integrated crosspoint switch |
GB2188175B (en) * | 1986-03-18 | 1990-02-07 | Stc Plc | Data processing arrangement |
US4823181A (en) * | 1986-05-09 | 1989-04-18 | Actel Corporation | Programmable low impedance anti-fuse element |
US4789951A (en) * | 1986-05-16 | 1988-12-06 | Advanced Micro Devices, Inc. | Programmable array logic cell |
JPS6341048A (ja) * | 1986-08-06 | 1988-02-22 | Mitsubishi Electric Corp | 標準セル方式大規模集積回路 |
US5187393A (en) * | 1986-09-19 | 1993-02-16 | Actel Corporation | Reconfigurable programmable interconnect architecture |
US5367208A (en) * | 1986-09-19 | 1994-11-22 | Actel Corporation | Reconfigurable programmable interconnect architecture |
US4857774A (en) * | 1986-09-19 | 1989-08-15 | Actel Corporation | Testing apparatus and diagnostic method for use with programmable interconnect architecture |
US5015885A (en) * | 1986-09-19 | 1991-05-14 | Actel Corporation | Reconfigurable programmable interconnect architecture |
US4758745B1 (en) * | 1986-09-19 | 1994-11-15 | Actel Corp | User programmable integrated circuit interconnect architecture and test method |
US5451887A (en) * | 1986-09-19 | 1995-09-19 | Actel Corporation | Programmable logic module and architecture for field programmable gate array device |
US4910417A (en) * | 1986-09-19 | 1990-03-20 | Actel Corporation | Universal logic module comprising multiplexers |
US5172014A (en) * | 1986-09-19 | 1992-12-15 | Actel Corporation | Programmable interconnect architecture |
US5083083A (en) | 1986-09-19 | 1992-01-21 | Actel Corporation | Testability architecture and techniques for programmable interconnect architecture |
US5019736A (en) * | 1986-11-07 | 1991-05-28 | Concurrent Logic, Inc. | Programmable logic cell and array |
US5089973A (en) * | 1986-11-07 | 1992-02-18 | Apple Computer Inc. | Programmable logic cell and array |
US4786904A (en) * | 1986-12-15 | 1988-11-22 | Zoran Corporation | Electronically programmable gate array having programmable interconnect lines |
DE3875909T2 (de) * | 1987-11-20 | 1993-05-13 | Kawasaki Steel Co | Programmierbare logische vorrichtung. |
US4847612A (en) * | 1988-01-13 | 1989-07-11 | Plug Logic, Inc. | Programmable logic device |
US5023606A (en) * | 1988-01-13 | 1991-06-11 | Plus Logic, Inc. | Programmable logic device with ganged output pins |
US4912342A (en) * | 1988-05-05 | 1990-03-27 | Altera Corporation | Programmable logic device with array blocks with programmable clocking |
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 |
DE3927033C2 (de) * | 1988-08-23 | 2000-12-21 | Seiko Epson Corp | Halbleiterbauelement mit Antifuse-Elektrodenanordnung und Verfahren zu seiner Herstellung |
JP2723926B2 (ja) * | 1988-09-20 | 1998-03-09 | 川崎製鉄株式会社 | プログラマブル・ロジツク・デバイス |
GB8828828D0 (en) * | 1988-12-09 | 1989-01-18 | Pilkington Micro Electronics | Semiconductor integrated circuit |
US5231588A (en) * | 1989-08-15 | 1993-07-27 | Advanced Micro Devices, Inc. | Programmable gate array with logic cells having symmetrical input/output structures |
US5212652A (en) * | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
US4914055A (en) * | 1989-08-24 | 1990-04-03 | Advanced Micro Devices, Inc. | Semiconductor antifuse structure and method |
US5400262A (en) * | 1989-09-20 | 1995-03-21 | Aptix Corporation | Universal interconnect matrix array |
US5140193A (en) * | 1990-03-27 | 1992-08-18 | Xilinx, Inc. | Programmable connector for programmable logic device |
US5070384A (en) * | 1990-04-12 | 1991-12-03 | Actel Corporation | Electrically programmable antifuse element incorporating a dielectric and amorphous silicon interlayer |
US5181096A (en) * | 1990-04-12 | 1993-01-19 | Actel Corporation | Electrically programmable antifuse incorporating dielectric and amorphous silicon interlayer |
US5404029A (en) * | 1990-04-12 | 1995-04-04 | Actel Corporation | Electrically programmable antifuse element |
US5198705A (en) | 1990-05-11 | 1993-03-30 | Actel Corporation | Logic module with configurable combinational and sequential blocks |
US5055718A (en) * | 1990-05-11 | 1991-10-08 | Actel Corporation | Logic module with configurable combinational and sequential blocks |
US5073729A (en) | 1990-06-22 | 1991-12-17 | Actel Corporation | Segmented routing architecture |
US5132571A (en) * | 1990-08-01 | 1992-07-21 | Actel Corporation | Programmable interconnect architecture having interconnects disposed above function modules |
US5144166A (en) * | 1990-11-02 | 1992-09-01 | Concurrent Logic, Inc. | Programmable logic cell and array |
US5245227A (en) * | 1990-11-02 | 1993-09-14 | Atmel Corporation | Versatile programmable logic cell for use in configurable logic arrays |
US5220213A (en) * | 1991-03-06 | 1993-06-15 | Quicklogic Corporation | Programmable application specific integrated circuit and logic cell therefor |
US5122685A (en) * | 1991-03-06 | 1992-06-16 | Quicklogic Corporation | Programmable application specific integrated circuit and logic cell therefor |
US5313119A (en) * | 1991-03-18 | 1994-05-17 | Crosspoint Solutions, Inc. | Field programmable gate array |
US5327023A (en) * | 1991-03-28 | 1994-07-05 | Kawasaki Steel Corporation | Programmable logic device |
US5338982A (en) * | 1991-03-29 | 1994-08-16 | Kawasaki Steel Corporation | Programmable logic device |
US5338984A (en) * | 1991-08-29 | 1994-08-16 | National Semiconductor Corp. | Local and express diagonal busses in a configurable logic array |
US5260610A (en) * | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic element interconnections for programmable logic array integrated circuits |
US5260611A (en) * | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic array having local and long distance conductors |
US5208491A (en) * | 1992-01-07 | 1993-05-04 | Washington Research Foundation | Field programmable gate array |
US5258668A (en) * | 1992-05-08 | 1993-11-02 | Altera Corporation | Programmable logic array integrated circuits with cascade connections between logic modules |
US5331226A (en) * | 1992-07-23 | 1994-07-19 | Xilinx, Inc. | Logic cell for field programmable gate array having optional input inverters |
US5291079A (en) * | 1992-07-23 | 1994-03-01 | Xilinx, Inc. | Configuration control unit for programming a field programmable gate array and reading array status |
US5317210A (en) * | 1993-02-23 | 1994-05-31 | Altera Corporation | I/O cell for programmable logic device providing latched, unlatched, and fast inputs |
US5302866A (en) * | 1993-03-18 | 1994-04-12 | Xilinx, Inc. | Input circuit block and method for PLDs with register clock enable selection |
US5369314A (en) * | 1994-02-22 | 1994-11-29 | Altera Corporation | Programmable logic device with redundant circuitry |
-
1994
- 1994-05-19 US US08/246,218 patent/US5451887A/en not_active Expired - Lifetime
-
1995
- 1995-05-18 EP EP98114150A patent/EP0889593B1/de not_active Expired - Lifetime
- 1995-05-18 EP EP95303345A patent/EP0683565B1/de not_active Expired - Lifetime
- 1995-05-18 DE DE69507851T patent/DE69507851T2/de not_active Expired - Lifetime
- 1995-05-18 DE DE69528393T patent/DE69528393T2/de not_active Expired - Fee Related
- 1995-05-19 JP JP12194095A patent/JP3589501B2/ja not_active Expired - Fee Related
- 1995-06-28 US US08/504,051 patent/US5570041A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0889593B1 (de) | 2002-09-25 |
DE69507851D1 (de) | 1999-03-25 |
DE69528393D1 (de) | 2002-10-31 |
JP3589501B2 (ja) | 2004-11-17 |
EP0683565A1 (de) | 1995-11-22 |
JPH0851357A (ja) | 1996-02-20 |
DE69507851T2 (de) | 1999-06-17 |
EP0683565B1 (de) | 1999-02-17 |
EP0889593A1 (de) | 1999-01-07 |
US5451887A (en) | 1995-09-19 |
US5570041A (en) | 1996-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69528393T2 (de) | Programmierbarer Logikbaustein für ein anwenderprogrammierbares Gate-Array | |
DE69924486T2 (de) | Spezielle schnittstellenarchitektur für eine hybride schaltung | |
DE102004014472B4 (de) | Anwendungsspezifischer integrierter Halbleiter-Schaltkreis | |
DE3712178C2 (de) | ||
DE68925897T2 (de) | Gate-Array-Zelle, bestehend aus FET's von verschiedener und optimierter Grösse | |
DE69028395T2 (de) | Konfigurierbare zellenanordnung | |
DE69132984T2 (de) | Programmierbare Verbindungsarchitektur | |
DE2723821C2 (de) | Programmierbare logische Anordnung | |
DE60128960T2 (de) | Architektur für ziegelförmig aufbaubares nutzerprogrammierbares gatterfeld | |
EP0051693B1 (de) | Elektrisch umschaltbarer Festwertspeicher | |
DE2556274C2 (de) | Programmierbare logische Schaltung | |
EP0202456B1 (de) | In integrierter Technik hergestellter Logik-Array-Baustein | |
DE69317091T2 (de) | Leitweglenkung mit geringer Signalverschiebung in einem programmierbaren Feld | |
DE2754354A1 (de) | Programmierbare logische baugruppenanordnung | |
DE3603953C2 (de) | Gate-Array-Halbleiteranordnung in CMOS-Technologie | |
DE3872737T2 (de) | Verfahren zur kombinierung von "gate array"-schaltungen mit standardschaltungen auf ein gemeinsames halbleiterplaettchen. | |
DE10164606B4 (de) | Flip-Chip-Halbleitereinrichtung mit außerhalb von Energiezufuhranschlussflächen angeordneten Signalanschlussflächen | |
DE69811795T2 (de) | Integrierte Schaltung zur Taktsignalversorgung und Verfahren zu ihrer Herstellung | |
DE2113306B2 (de) | Integrierter Schaltungsblock | |
DE2514012C2 (de) | Monolithisch integrierte halbleiterschaltungsanordnung, insbesondere fuer koppelbausteine von vermittlungssystemen | |
DE69124972T2 (de) | Gate-Array mit eingebauter Programmierungsschaltung | |
DE3927143A1 (de) | Gate-feld | |
DE10354501A1 (de) | Logik-Schaltkreis-Anordnung | |
EP0166027B1 (de) | In C-MOS-Technik realisierte Basiszelle | |
DE3687780T2 (de) | Ausgerichtete verbindungen zwischen logischen stufen. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |