DE60128960T2 - Architektur für ziegelförmig aufbaubares nutzerprogrammierbares gatterfeld - Google Patents

Architektur für ziegelförmig aufbaubares nutzerprogrammierbares gatterfeld Download PDF

Info

Publication number
DE60128960T2
DE60128960T2 DE60128960T DE60128960T DE60128960T2 DE 60128960 T2 DE60128960 T2 DE 60128960T2 DE 60128960 T DE60128960 T DE 60128960T DE 60128960 T DE60128960 T DE 60128960T DE 60128960 T2 DE60128960 T2 DE 60128960T2
Authority
DE
Germany
Prior art keywords
fpga
routing
signals
regular
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60128960T
Other languages
English (en)
Other versions
DE60128960D1 (de
Inventor
Jung-Cheun Sunnyvale LIEN
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.)
Microsemi SoC Corp
Original Assignee
Actel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Actel Corp filed Critical Actel Corp
Application granted granted Critical
Publication of DE60128960D1 publication Critical patent/DE60128960D1/de
Publication of DE60128960T2 publication Critical patent/DE60128960T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • 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/17732Macroblocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • G06F30/3947Routing global
    • 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/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf feldprogrammierbare Gate-Arrays und insbesondere auf eine Architektur für durch Bausteine konstruierbare (tileable) feldprogrammierbare Gate-Arrays.
  • 2. Beschreibung des Standes der Technik
  • Ein feldprogrammierbares Gate-Array (FPGA) ist eine integrierte Schaltung (IC), die ein zweidimensionales Array von Universallogikschaltungen enthält, die Zellen oder Logikblöcke genannt werden, deren Funktionen programmierbar sind. Die Zellen sind durch programmierbare Busse miteinander verknüpft. Die Zellen können kleine Multifunktionsschaltungen (oder konfigurierbare Funktionsblöcke oder -gruppen sein), die alle booleschen Funktionen weniger Variablen realisieren können. Die Zellentypen sind nicht auf Gatter beschränkt. Zum Beispiel enthalten die konfigurierbaren Funktionsgruppen üblicherweise Speicherzellen und Verbindungstransistoren, die verwendet werden können, um innerhalb des FPGA logische Funktionen wie etwa Addition, Subtraktion usw. zu konfigurieren. Außerdem kann eine Zelle ein oder zwei Flipflops enthalten. Zwei Typen von Logikzellen, die in FPGAs zu finden sind, sind jene, die auf Multiplexern beruhen, und jene, die auf programmierbaren Nur-Lese-Speicher-Tabellennachschlagespeichern (Nur-Lese-Speicher-PROM-Tabellennachschlagespeichern) beruhen. Löschbare FPGAs können viele Male neu programmiert werden. Besonders zweckmäßig ist diese Technologie, wenn für ein neues Produkt ein Prototypentwurf entwickelt und ausgetestet wird, sowie für die Einzelfertigung.
  • FPGAs enthalten üblicherweise eine physikalische Schablone, die ein Array von Schaltungen, Mengen nicht gebundener Routing-Verdrahtungen und Mengen anwenderprogrammierbarer Schalter, die sowohl den Schaltungen als auch den Routing-Verdrahtungen zugeordnet sind, enthalten. Wenn diese Schalter richtig programmiert sind (auf Ein- oder Aus-Zustände eingestellt sind), ist die Schablone oder die zugrundeliegende Schaltung und Verdrahtung des FPGA zum Ausführen spezifischer angepasster Funktionen angepasst oder konfiguriert. Durch Neuprogrammieren der Ein-Aus-Zustände dieser Schalter kann ein FPGA viele verschiedene Funktionen ausführen. Wenn eine spezifische Konfiguration eines FPGA entschieden worden ist, kann es so konfiguriert werden, dass es diese eine spezifische Konfiguration ausführt.
  • Die anwenderprogrammierbaren Schalter in einem FPGA können in verschiedenen Technologien wie etwa ONO-Antifuse, M-M-Antifuse, SRAM-Speicherzelle, Flash-EPROM-Speicherzelle und EEPROM-Speicherzelle implementiert werden. FPGAs, die als Schalter Sicherungen oder Antifuses nutzen, können nur einmal programmiert werden. Eine speicherzellengesteuerte Schalterimplementierung eines FPGA kann wiederholt neu programmiert werden. In diesem Szenarium wird üblicherweise ein NMOS-Transistor als der Schalter verwendet, um zwei ausgewählte Punkte (A, B) in der Schaltung entweder zu verbinden oder zu trennen. Der Source- und der Drain-Knoten des NMOS sind mit Punkten A, B verbunden und sein Gate-Knoten ist direkt oder indirekt mit der Speicherzelle verbunden. Dadurch, dass der Zustand der Speicherzelle entweder auf eine logische "1" oder auf eine logische "0" eingestellt wird, kann der Schalter ein- oder ausgeschaltet werden, wobei die Punkte A und B somit entweder verbun den oder getrennt werden. Somit schafft die Fähigkeit, diese Schalter zu programmieren, eine sehr flexible Vorrichtung.
  • FPGAs können das Programm, das die zu implementierende Schaltung bestimmt, in einem RAM oder PROM auf dem FPGA-Chip speichern. Das Muster der Daten in diesem Konfigurationsspeicher CM bestimmt die Funktionen der Zellen und ihre Verbindungsverdrahtung. Jedes Bit des CM steuert einen Transistorschalter in der Zielschaltung, der eine Zellenfunktion auswählen oder eine Verbindung herstellen (oder trennen) kann. Durch Ersetzen der Inhalte des CM können Entwickler Entwurfsänderungen vornehmen oder Entwurfsfehler korrigieren. Der CM kann von einer externen Quelle heruntergeladen oder on-Chip gespeichert werden. Dieser Typ eines FPGA kann wiederholt neu programmiert werden, was die Entwicklungs- und Herstellungskosten wesentlich verringert.
  • Im Allgemeinen ist ein FPGA ein Typ einer programmierbaren Logikvorrichtung (PLD), d. h. einer Vorrichtung, die viele Gatter oder andere Universalzellen enthält, deren Verbindungen konfiguriert oder "programmiert" werden können, um irgendeine gewünschte Kombinations- oder Folgefunktion zu implementieren. Wie sein Name bedeutet, ist ein FPGA "feldprogrammierbar", d. h., dass die Vorrichtung allgemein durch Entwickler oder Endanwender über kleine, preiswerte Programmiereinheiten "im Feld" programmiert wird. Dies steht im Gegensatz zu maskenprogrammierbaren Vorrichtungen, die spezielle Schritte in dem IC-Chip-Herstellungsprozess erfordern.
  • Eine feldprogrammierbare Einheit verwendet üblicherweise Entwurfssoftware, um das FPGA zu programmieren. Die Entwurfssoftware kompiliert einen spezifischen Anwenderentwurf, d. h. eine spezifische von dem Endanwender gewünschte Konfiguration der programmierbaren Schalter, in FPGA-Konfigurationsdaten. Die Entwurfssoftware assembliert die Konfigurationsdaten zu einem Bitstrom, d. h. zu einem Strom von Einsen und Nullen, der in das FPGA eingespeist und zum Programmieren der Konfigurationsspeicher für die programmierbaren Schalter verwendet wird. Der Bitstrom erzeugt das Muster der Daten in dem Konfigurationsspeicher CM, das bestimmt, ob jede Speicherzelle eine "1" oder eine "0" speichert. Das gespeicherte Bit in jedem CM steuert, ob sein zugeordneter Transistorschalter ein- oder ausgeschaltet ist. Endanwender verwenden üblicherweise Entwurfssoftware, um verschiedene Entwürfe zu testen und Simulationen für FPGAs laufen zu lassen.
  • Wenn ein FPGA, das zur Ausführung einer spezifischen Funktion programmiert worden ist, mit einer anwendungsspezifischen integrierten Schaltung (ASIC) verglichen wird, die zur Ausführung derselben spezifischen Funktion entworfen und hergestellt worden ist, ist das FPGA notwendig eine größere Vorrichtung als die ASIC. Dies liegt daran, dass FPGAs sehr flexible Vorrichtungen sind, die viele verschiedene Funktionen implementieren können, und somit eine große Menge Zusatzschaltungsanordnung enthalten, die entweder nicht verwendet wird oder durch fest verdrahtete Verbindungen ersetzt werden könnte, wenn eine spezifische Funktion ausgeführt wird. Diese Zusatzschaltungsanordnung enthält allgemein die zahlreichen programmierbaren Transistorschalter und entsprechende Speicherzellen, die bei der Implementierung einer spezifischen Funktion nicht verwendet werden, die Speicherzellen innerhalb der Funktionsgruppen und die FPGA-Programmierungsschaltungsanordnung. Diese Zusatzschaltungsanordnung wird beim Entwurf einer ASIC üblicherweise weggelassen, was die ASIC zu einer kleineren Vorrichtung macht.
  • Andererseits ist eine ASIC keine flexible Vorrichtung. Mit anderen Worten, wenn eine ASIC entworfen und hergestellt worden ist, kann sie nicht, wie es bei einem FPGA möglich ist, neu konfiguriert werden, um eine andere Funktion auszuführen.
  • Entwickler von FPGAs (sowie von anderen PLDs) stellen ihre Schaltungsentwürfe häufig für IC-Hersteller bereit, die die FPGAs üblicherweise auf zwei verschiedenen Wegen herstellen. Zunächst kann ein FPGA-Entwurf als sein eigener Chip hergestellt werden, wobei in dem IC-Gehäuse keine weiteren Vorrichtungen enthalten sind. Zweitens kann ein FPGA-Entwurf in eine größere IC eingebettet sein. Ein Beispiel einer solchen größeren IC ist ein System auf einem Chip (SOC), das das eingebettete FPGA sowie mehrere weitere Komponenten enthält. Die mehreren weiteren Komponenten können z. B. einen Mikroprozessor, einen Speicher, eine Arithmetik-Logik-Einheit (ALU), eine Zustandsmaschine usw. enthalten. In diesem Szenarium kann das eingebettete FPGA nur ein kleiner Teil des gesamten SOC sein.
  • Gleich, ob ein FPGA als seine eigene IC hergestellt oder in eine größere IC (z. B. in einen SOC) eingebettet werden soll, bestimmt die beabsichtigte Anwendung/Verwendung der IC die Größe und die Komplexität des benötigten FPGA. In einigen Szenarien wird ein großes FPGA benötigt und in anderen Szenarien wird ein kleines FPGA benötigt. Da herkömmliche FPGAs üblicherweise für die beabsichtigte Anwendung/Verwendung entworfen worden sind, muss ein zur Erfüllung einer Notwendigkeit eines kleinen FPGA entworfenes FPGA für die Verwendung, wo ein größeres FPGA benötigt wird, im Wesentlichen neu entworfen werden. Somit wäre es sehr vorteilhaft, eine FPGA-Vorrichtung und ein FPGA-Verfahren zu haben, die leicht für die Verwendung sowohl in ICs, die große FPGAs erfordern, als auch in ICs, die kleine FPGAs erfordern, angepasst werden könnten. Darüber hinaus wäre es sehr vorteilhaft, wenn diese FPGA-Vorrichtung und dieses FPGA-Verfahren sowohl in dem Szenarium, in dem das FPGA als seine eigene IC hergestellt werden soll, als auch in dem Szenarium, in dem das FPGA in eine größere IC eingebettet werden soll, verwendet werden könnte.
  • US 5,874,834 A offenbart ein FGPA mit verteilter Gate-Array-Funktionalität gemäß dem Oberbegriff von Anspruch 1, das eine Vielzahl konfigurierbarer Logikblöcke besitzt. Diese Blöcke enthalten feldprogrammierbare Logikelemente und entsprechende nicht feldprogrammierbare Gate-Arrays.
  • GB 2 346 240 A offenbart außerdem ein FGPA und eine darin enthaltene programmierbare Zelle. Die Zellen sind mit einem Verbindungsnetz verbunden, um Steuereinformationen an sie zu senden. Jede der programmierbaren Zellen wählt in Übereinstimmung mit den Steuereinformationen geeignete konfigurierbare Informationen aus.
  • KURZZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung schafft eine Vorrichtung, die ein feldprogrammierbares Gate-Array (FPGA) enthält. Das FPGA enthält einen ersten FPGA-Baustein und der erste FPGA-Baustein enthält eine Vielzahl von Funktionsgruppen (FGs), eine reguläre Routing-Struktur und eine Vielzahl von Schnittstellengruppen (IGs). Die Vielzahl von FGs sind in Zeilen und Spalten angeordnet, wobei jede der FGs konfiguriert ist, um reguläre Eingangssignale zu empfangen, eine logische Operation auszuführen und reguläre Ausgangssignale zu erzeugen. Die reguläre Routing-Struktur ist mit den FGs gekoppelt und konfiguriert, um die regulären Ausgangssignale zu empfangen, Signale nach innerhalb von dem ersten FPGA-Baustein zu routen und die regulären Eingangssignale an die FGs zu liefern. Die Vielzahl von IGs umgeben die Vielzahl von FGs, sodass an jedem Ende jeder Zeile und Spalte eine IG angeordnet ist. Jede der IGs ist mit der regulären Routing-Struktur gekoppelt und konfiguriert, um Signale von der regulären Routing-Struktur nach außerhalb von dem ersten FPGA-Baustein zu übertragen. Darüber hinaus enthält die Vorrichtung eine Vielzahl von Eingangsmultiplexern, die konfiguriert sind, um von der regulären Routing-Struktur empfangene Signale auszuwählen und die ausgewählten Signale nach außerhalb von dem FPGA-Baustein zu liefern, und eine Vielzahl von Eingangs/Ausgangs-Anschlussflächen (E/As), wobei jeder der Eingangsmultiplexer zumindest mit einer der E/A direkt gekoppelt ist.
  • Ein besseres Verständnis der Merkmale und Vorteile der vorliegenden Erfindung wird anhand der folgenden ausführlichen Beschreibung der Erfindung und der beigefügten Zeichnungen erhalten, die eine veranschaulichende Ausführungsform angeben, in der die Prinzipien der Erfindung genutzt werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockschaltplan, der einen FPGA-Baustein in Übereinstimmung mit der vorliegenden Erfindung veranschaulicht.
  • 2, 3A, 3B und 4 sind Blockschaltpläne, die verschiedene Konfigurationen von FPGA-Bausteinen in Übereinstimmung mit der vorliegenden Erfindung veranschaulichen.
  • 5 ist ein Blockschaltplan, der den in 1 gezeigten FPGA-Baustein ausführlicher veranschaulicht.
  • 6 ist ein Blockschaltplan, der eine der in 5 gezeigten Funktionsgruppen (FGs) ausführlicher veranschaulicht.
  • 7 ist ein Prinzipschaltbild, das die in 6 gezeigte FG ausführlicher veranschaulicht.
  • 8 ist ein Prinzipschaltbild, das die in 7 gezeigte LGG-Auswahlschaltung ausführlicher veranschaulicht.
  • 9 ist ein Prinzipschaltbild, das die in 7 gezeigte C/E/P/C-Auswahlschaltung ausführlicher veranschaulicht.
  • 10 ist ein Prinzipschaltbild, das eine der in 7 gezeigten Logikeinheiten (LU) ausführlicher veranschaulicht.
  • 11 ist ein Blockschaltplan, der eine der in 5 gezeigten Schnittstellengruppen (IGs) ausführlicher veranschaulicht.
  • 12 ist ein Blockschaltplan, der eine alternative Version einer der in 5 gezeigten Schnittstellengruppen (IGs) ausführlicher veranschaulicht.
  • 13 ist ein Prinzipschaltbild, das einen Abschnitt des in 5 gezeigten FPGA-Bausteins ausführlicher veranschaulicht.
  • 14 ist ein Prinzipschaltbild, das einen Abschnitt der in 13 gezeigten regulären Routing-Struktur ausführlicher veranschaulicht.
  • 15 ist ein Prinzipschaltbild, das einen Abschnitt der in 14 gezeigten regulären Routing-Struktur ausführlicher veranschaulicht.
  • 16A und 16B sind Prinzipschaltbilder, die die in dem in 5 gezeigten FPGA-Baustein enthaltene sekundäre Routing-Struktur veranschaulichen.
  • 17 ist ein Prinzipschaltbild, das die in 4 gezeigte globale Signal-Routing-Struktur ausführlicher veranschaulicht.
  • 18 ist ein Prinzipschaltbild, das ein optionales Verfahren der Kopplung zweier FPGA-Bausteine miteinander veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Anhand von 1 ist ein feldprogrammierbarer Gate-Array-Baustein (FPGA-Baustein) 20 in Übereinstimmung mit der vorliegenden Erfindung veranschaulicht. Der FPGA-Baustein 20 überwindet viele der Nachteile herkömmlicher FPGAs dahingehend, dass er leicht sowohl für die Verwen dung in integrierten Schaltungen (ICs), die große FPGAs erfordern, als auch in ICs, die kleine FPGAs erfordern, angepasst werden kann. Darüber hinaus kann der FPGA-Baustein 20 verwendet werden, wo das FPGA als seine eigene IC hergestellt werden soll und wo das FPGA in eine größere IC (z. B. in ein System auf einem Chip (SOC)) eingebettet werden soll.
  • Ein Merkmal des FPGA-Bausteins 20, das ihn zu einer so flexiblen und anpassungsfähigen Vorrichtung macht, ist, dass er "durch Bausteine kombinierbar" ist. Wie der Begriff "durch Bausteine kombinierbar" hier verwendet wird, bedeutet er, dass der FPGA-Baustein 20 mit weiteren FPGA-Bausteinen kombiniert werden kann, um ein größeres FPGA zu bilden. Zum Beispiel veranschaulicht 2 ein FPGA 22, das durch Kombinieren zweier FPGA-Bausteine 20 gebildet ist. Die zwei FPGA-Bausteine 20 arbeiten zusammen und kommunizieren miteinander, um das größere FPGA 22 zu bilden. Es ist zu erkennen, dass in Übereinstimmung mit der vorliegenden Erfindung irgendeine Anzahl von FPGA-Bausteinen 20 kombiniert werden können, um ein größeres FPGA zu bilden. Zum Beispiel veranschaulicht 3A ein FPGA 24, das durch Kombination vierer FPGA-Bausteine 20 gebildet ist.
  • In Übereinstimmung mit der vorliegenden Erfindung können FPGA-Bausteine 20 kombiniert werden, um ein größeres FPGA zu bilden, das als seine eigene IC hergestellt werden soll oder das in eine größere IC eingebettet werden soll. In Bezug auf das letztere Szenarium können z. B. die FPGAs 22, 24 in SOCs eingebettet werden. 3B zeigt ein SOC 25 mit dem darin eingebetteten FPGA 24. Das SOC 25 enthält mehrere weitere Komponenten. Die weiteren Komponenten können z. B. einen Nur-Lese-Speicher (ROM) 27, einen Schreib-Lese-Speicher (RAM) 29, einen Mikroprozessor 31 und irgendwelche weiteren Komponenten 33 enthalten. Es ist zu erkennen, dass die spezifischen Typen weiterer Komponenten und die Anzahl weiterer Komponenten, die auf dem SOC 25 enthalten sind, je nach der bestimmten Anwendung stark variieren. In Bezug auf das erstere Szenarium veranschaulicht 4 ein FPGA 26, das als seine eigene IC hergestellt worden ist. Genauer enthält das FPGA 26 vier FPGA-Bausteine 20 und vier Anschlussflächenringe 28, 30, 32, 34. Die Anschlussflächenringe 28, 30, 32, 34 werden verwendet, um die FPGA-Bausteine 20 mit den IC-Gehäuse-Anschlussflächen des FPGA 26 zu koppeln.
  • Außerdem ist in 4 eine globale Signal-Routing-Struktur 36 veranschaulicht. Die globale Signal-Routing-Struktur 36 wird im Folgenden ausführlicher beschrieben, wird im Allgemeinen aber verwendet, um globale Inter-Baustein-Signale zwischen den FPGA-Bausteinen 20 zu routen. Es ist zu erkennen, dass die globale Signal-Routing-Struktur 36 in Übereinstimmung mit der vorliegenden Erfindung in irgendeiner Kombination von FPGA-Bausteinen 20 einschließlich z. B. der FPGAs 22, 24 enthalten sein kann. Darüber hinaus kann die globale Signal-Routing-Struktur 36 verwendet werden, gleich, ob die kombinierten FPGA-Bausteine 20 als ihre eigene IC hergestellt oder in eine größere IC eingebettet sind.
  • Die FPGA-Bausteine, die kombiniert werden, können in Übereinstimmung mit der vorliegenden Erfindung (wie die Bausteine in den FPGAs 22, 24, 26) gleich sein oder verschiedene Größen und Entwürfe haben. Ein Vorteil dessen, gleiche FPGA-Bausteine zu verwenden, ist, dass es eine wirtschaftliche Lösung dafür schafft, FPGAs mit Größen bereitzustellen, die für die beabsichtigten Verwendungen/Anwendungen geeignet sind. Da nur ein FPGA-Baustein entworfen zu werden braucht und daraufhin die notwendige Anzahl von Bausteinen kombiniert werden, um ein FPGA zu bilden, ist eine solche Lösung wirtschaftlich. Es ist festzustellen, dass ein "FPGA-Baustein" hier außerdem als ein FPGA betrachtet wird. Mit ande ren Worten, ein einzelner FPGA-Baustein 20 kann selbst verwendet werden, um ein FPGA zu bilden.
  • Anhand von 5 sind einige der inneren Komponenten des FPGA-Bausteins 20 veranschaulicht. Genauer enthält der FPGA-Baustein 20 mehrere Funktionsgruppen (FGs) 40, die von mehreren Schnittstellengruppen (IGs) 42 umgeben sind. Die FGs 40 sind kleine Multifunktionsschaltungen, die viele oder alle booleschen Funktionen realisieren können. Die FGs 40 enthalten Nachschlagtabellen (LUTs) und weitere Schaltungen, die boolesche Funktionen realisieren können, sowie Speicherzellen, die verwendet werden, um logische Funktionen wie etwa Addition, Subtraktion usw. zu konfigurieren. Die IGs 42 werden als Schnittstelle des FPGA-Bausteins 20 mit weiteren FPGA-Bausteinen oder Vorrichtungen oder zu Anschlussflächenringen zum Verbinden des FPGA-Bausteins 20 mit IC-Gehäuseanschlussstiften verwendet. Im Allgemeinen ist die Logikstruktur des FPGA-Bausteins 20 durch die FGs 40 und durch die IGs 42 bereitgestellt. Außerdem sind in dem FPGA-Baustein 20 mehrere horizontale und vertikale reguläre Routing-Busse, Routing-Verdrahtungsbereiche, Schalttransistoren und eine globale Routing-Struktur enthalten, die alle im Folgenden diskutiert werden, in 5 aber nicht gezeigt sind.
  • Anhand von 6 ist eine beispielhafte Version der ersten Menge der Eingangs- und Ausgangsports 44, der globalen Intra-Baustein-Eingangs- und Ausgangsports 46 und des globalen Inter-Baustein-Eingangsports 48 der FG 40 gezeigt. Die erste Menge von Eingangs- und Ausgangsports 44 übermitteln Eingangssignale [EUI[0:4] (oberer Eingang) und EBI[0:4] (unterer Eingang). Dies sind die Basiseingänge, an denen die booleschen Funktionen und die logische Operation der FG 40 ausgeführt werden. Die erste Menge von Eingangs- und Ausgangsports 44 enthält außerdem Ausgangssignale Y[0:4]. Dies sind die Basisausgänge, die das Ergebnis der booleschen Funktionen und der logischen Operation der FG 40 übermitteln. Die erste Menge der Eingangs- und Ausgangsports 44 routet Signale, die innerhalb des FPGA-Bausteins 20 auf horizontalen und vertikalen regulären Routing-Bussen und Routing-Verdrahtungsbereichen übermittelt werden. Falls irgendeines der über die ersten Eingangs- und Ausgangsports 44 gesendeten Signale zu einem anderen FPGA-Baustein gesendet werden soll, werden sie wie in 5 gezeigt über eine IG 42 übergeben.
  • Die globalen Intra-Baustein-Eingangs- und -Ausgangsports 46 übermitteln Eingangssignale LGG[0:5] und ein Ausgangssignal LINT. Das Signal LINT wird über eine sekundäre Routing-Struktur übermittelt. Genauer können die regulären Ausgangssignale Y[0:4] in einigen Situationen nicht an die beabsichtigte FG 40 gesendet werden, da die regulären Routing-Leiter und Routing-Verdrahtungsbereiche nicht die notwendigen Verbindungen bereitstellen. Außerdem kann es in anderen Situationen erwünscht sein, nicht die Zeit der Systemzentraleinheit (System-CPU) zu verwenden, um ein Signal über die regulären Routing-Leiter und Routing-Verdrahtungsbereiche zu senden. In diesen Situationen können die benötigten der regulären Routing-Ausgangssignale Y[0:4] als das Signal LINT ausgewählt werden. Das Signal LINT wird durch eine Routing-Struktur, die von den regulären Routing-Leitern und Routing-Verdrahtungsbereichen, die zum Routen der ersten Menge von Ausgangssignalen Y[0:4] verwendet werden, getrennt ist, um den FPGA-Baustein 20 herum geroutet. Somit kann das Signal LINT unabhängig davon, ob die regulären Routing-Leiter und Routing-Verdrahtungsbereiche die notwendigen Verbindungen bereitstellen, an irgendeine FG 40 oder IG 42 gesendet werden. Die Signale LINT werden über Eingangsports LGG[0:5], die Teil der sekundären Routing-Struktur sind, von der FG 40 empfangen. Wie der Name besagt, übermittelt der globale Intra-Baustein-Eingangs- und -Ausgangsport 46 Signale, die innerhalb der Grenzen des FPGA-Bausteins 20 geroutet werden und vorzugsweise nicht zwischen FPGA-Bausteinen geroutet werden. Die globalen Intra-Baustein-Eingangs- und -Ausgangsports 46 und die Erzeugung und Verwendung des Signals LINT werden im Folgenden ausführlicher diskutiert.
  • Der globale Inter-Baustein-Eingangsport 48 übermittelt die Eingangssignale GG[0:7]. Diese Signale werden an jede FG 40 in allen FPGA-Bausteinen gesendet. Wie im Folgenden diskutiert wird, werden Ausgewählte der Eingangssignale GG[0:7] verwendet, um die Takt/Freigabe/Voreinstellungs/Lösch-Eingänge (C/E/P/C-Eingänge) der in jeder FG 40 enthaltenen Flipflops zu steuern.
  • Außerdem enthält jede FG 40 einen Eingang CL und einen Ausgang CO. Der Zweck dieser Eingangs- und Ausgangsports ist es, eine Übermittlungskette für die schnellere Nutzung von Logikbetriebsmitteln zu implementieren.
  • Anhand von 7 enthält jede FG 40 vorzugsweise vier Logikeinheiten (LU) 50, 52, 54, 56. Die LUs 50, 52, 54, 56 stellen die booleschen Funktionen und die logischen Operationen der FG 40 bereit. Jede der LUs 50, 52, 54, 56 enthält mehrere Eingänge, an denen boolesche Funktionen und logische Operationen ausgeführt werden. Wie gezeigt ist, enthält jede der LUs 50, 52, 54, 56 zwanzig solcher Eingänge, wobei aber festzustellen ist, dass die Anzahl der Eingänge in Übereinstimmung mit der vorliegenden Erfindung variieren kann. Genauer empfängt jede der LUs 50, 52, 54, 56 über die Eingangsports UI[0:4] und BI[0:4] Signale, die Signalen entsprechen, die über die oben diskutierten regulären Eingangsports EUI[0:4] und EBI[0:4] empfangen werden. Darüber hinaus empfängt jede der LUs 50, 52, 54, 56 Signale über den Eingangsport GI[0:1]. Die Eingangssignale GI[0:1] werden durch die LGG-Auswahlschaltung 58 erzeugt, die zwei der Eingangssignale LGG[0:5] auswählt. Wie oben erwähnt wurde, übermittelt der Eingangsport LGG[0:5] Ausgewählte der Signale, die über den LINT-Bus laufen. Schließlich empfängt jede der LUs 50, 52, 54, 56 Signale über den Eingangsport JI[0:7]. Die Eingangssignale über den Eingangsport JI[0:7] enthalten zwei Ausgangssignale von jeder der LUs 50, 52, 54, 56. Somit werden zwei Ausgangssignale jeder der LUs 50, 52, 54, 56 über JI[0:7] zu den Eingängen rückgekoppelt.
  • Außerdem enthält jede der LUs 50, 52, 54, 56 einen Takt/Freigabe/Voreinstellungs/Lösch-Eingang (C/E/P/C-Eingang). Dieser Eingang wird verwendet, um ein innerhalb jeder der LUs 50, 52, 54, 56 enthaltenes Flipflop zu steuern. Die C/E/P/C-Eingabe wird durch eine C/E/P/C-Auswahlschaltung 60 erzeugt. Die C/E/P/C-Auswahlschaltung 60 empfängt Eingaben EUI[0:4], EBI[0:4], JI[0:7], GI[0:1] und GG[0:7]. Die C/E/P/C-Auswahlschaltung 60 wählt aus diesen Signalen vier Signale aus, die als die C/E/P/C-Signale zu verwenden sind.
  • Anhand von 9 ist eine beispielhafte Version der C/E/P/C-Auswahlschaltung 60 veranschaulicht. Die Auswahlschaltung 60 enthält zwei Zwanzig-zu-eins-Multiplexer 70, 72. Jeder Multiplexer 70, 72 wählt ein Signal von den Bussen EUI[0:4], EBI[0:4], JI[0:7] und GI[0:1] aus. Das durch den Multiplexer 70 ausgewählte Signal wird zu dem Signal GX[0] und das durch den Multiplexer 72 ausgewählte Signal wird zu dem Signal GX[1]. Der Bus GX[0:1] wird an die Eingänge von vier Elf-zu-eins-Multiplexern 74, 76, 78, 80 geliefert. Außerdem werden der Bus GG[0:7] und eine Massesignalleitung an die Eingänge der vier Multiplexer 74, 76, 78, 80 geliefert. Das durch den Multiplexer 74 ausgewählte Signal wird zu dem Taktsignal CLK, das durch den Multiplexer 76 ausgewählte Signal wird zu dem Freigabesignal E, das durch den Multiplexer 78 ausgewählte Signal wird zu dem Voreinstellungssignal PRSTN und das durch den Multiplexer 80 ausgewählte Signal wird zu dem Löschsignal CLRN. Die Verwendung der vier Multiplexer 74, 76, 78, 80 ermöglicht, dass irgendwelche der Signale GX[0:1], GG[0:7] und die Masse als eines der C/E/P/C-Signale ausgewählt werden.
  • Unter Verwendung eines Multiplexers 64 kann das Signal LINT als eines der Signale Y[0:4] ausgewählt werden. Da das Signal LINT an irgendeine der FGs 40 oder IGs 42 gesendet werden kann, fügt die Verwendung des Signals LINT zu den FPGA-Baustein 20 eine gewaltige Menge an Flexibilität hinzu. Dies liegt daran, dass das Signal LINT unter Verwendung einer Routing-Struktur, die von der des Busses Y[0:4] getrennt und unabhängig ist, um den FPGA-Baustein 20 herum geroutet wird. In jenen Situationen, in denen eines der Signale auf dem Bus Y[0:4] nicht an das gewünschte Ziel gesendet werden kann oder CPU-Zeit gespart werden muss, kann der Multiplexer 64 verwendet werden, um dieses eine der Signale Y[0:4] als das Signal LINT auszuwählen, um das Signal an das gewünschte Ziel zu senden.
  • Anhand von 8 enthält eine beispielhafte Version der LGG-Auswahlschaltung 58 zwei Sechs-zu-eins-Multiplexer 66, 68. Jeder Multiplexer 66, 68 wählt eines der Eingangssignale LGG[0:5] aus. Das durch den Multiplexer 66 ausgewählte Signal wird zu dem Signal GI[0] und das durch den Multiplexer 68 ausgewählte Signal wird zu dem Signal GI[1]. Da der Bus LGG[0:5] an beide Multiplexer 66, 68 geliefert wird, ist es möglich, dass die Signale GI[0] und GI[1] dasselbe Signal sind. Wie oben erwähnt wurde, ist der Bus LGG[0:5] eine Möglichkeit, damit die Signale LINT von irgendeiner FG 40 oder IG 42 an irgendeine FG 40 oder IG 42 gesendet werden. Die gezeigte beispielhafte Version der LGG-Auswahlschaltung 58 kann irgendeines dieser Signale LINT zum Senden über den Bus GI[0:1] an die LUs 50, 52, 54, 56 auswählen. Es ist festzustellen, dass in Übereinstimmung mit der vorliegenden Erfindung viele verschiedene Entwürfe der LGG-Auswahlschaltung 58 verwendet werden können, um für die LUs 50, 52, 54, 56 viele verschiedene Anzahlen von Signalen von dem Bus LGG[0:5] auszuwählen.
  • Anhand von 9 ist eine beispielhafte Version der C/E/P/C-Auswahlschaltung 60 veranschaulicht. Die Schaltung 60 enthält zwei Zwanzig-zu-eins-Multiplexer 70, 72. Jeder Multiplexer 70, 72 wählt ein Signal von den Bussen EUI[0:4], EBI[0:4], JI[0:7] und GI[0:1] aus. Das durch den Multiplexer 70 ausgewählte Signal wird zu dem Signal GX[0] und das durch den Multiplexer 72 ausgewählte Signal wird zu dem Signal GX[1]. Der Bus GX[0:1] wird an die Eingänge von vier Elf-zu-eins-Multiplexern 74, 76, 78, 80 geliefert. Außerdem werden der Bus GG[0:7] und ein Massesignal an die Eingänge der vier Multiplexer 74, 76, 78, 80 geliefert. Das durch den Multiplexer 74 ausgewählte Signal wird zu dem Taktsignal CLK, das durch den Multiplexer 76 ausgewählte Signal wird zu dem Freigabesignal E, das durch den Multiplexer 78 ausgewählte Signal wird zu dem Voreinstellungssignal PRSTN und das durch den Multiplexer 80 ausgewählte Signal wird zu dem Löschsignal CLRN. Die Verwendung der vier Multiplexer 74, 76, 78, 80 ermöglicht, dass irgendwelche der Signale GX[0:1], GG[0:7] und die Masse als eines der Signale C/E/P/C ausgewählt werden.
  • Wie oben diskutiert wurde, ist der Bus GG[0:7] ein globaler Inter-Baustein-Bus, der an jede FG 40 in allen FPGA-Bausteinen gesendet wird. Die Signale in dem Bus GG[0:7] werden häufig als die Signale C/E/P/C ausgewählt. Außerdem ermöglicht die C/E/P/C-Auswahlschaltung 60 vorteilhaft, dass die zwei Signale GX[0:1] als die Signale C/E/P/C ausgewählt werden. Außerdem können die zwei Signale in dem Bus GX[0:1] von irgendeinem der Busse EUI[0:4], EBI[0:4], JI[0:7] und GI[0:1] ausgewählt werden. Somit ermöglicht die C/E/P/C-Auswahlschaltung 60, dass zahlreiche verschiedene Signale als die Signale C/E/P/C ausgewählt werden, was eine sehr flexible Vorrichtung schafft. Es ist festzustellen, dass die veranschaulichte C/E/P/C-Auswahlschaltung 60 aber nur eine beispielhafte Version einer solchen Auswahlschaltung ist, wobei in Übereinstimmung mit der vorliegenden Erfindung viele verschiedene Entwürfe der C/E/P/C-Auswahlschaltung 60 verwendet werden können, um viele verschiedene Signale auszuwählen.
  • Anhand von 10 ist eine beispielhafte Version der LU 50 veranschaulicht. Die LUs 50, 52, 54, 56 haben vorzugsweise alle denselben Entwurf, wobei aber festzustellen ist, dass dies in Übereinstimmung mit der vorliegenden Erfindung nicht notwendig ist. Die LU 50 enthält zwei Nachschlagtabellen (LUT) 82, 84. Jede LUT 82, 84 enthält drei Eingänge A, B, C, einen Ausgang Y und mehrere interne Speicherzellen (nicht gezeigt). Die LUTs 82, 84 werden durch Programmieren der internen Speicherzellen konfiguriert, wobei die spezifische Einstellung der internen Speicherzellen zusammengenommen eine spezifische Konfiguration für jede der LUTs 82, 84 schafft. Die zum Programmieren der internen Speicherzellen verwendeten Konfigurationsdaten werden durch Entwurfssoftware erzeugt. Wenn eine spezifische Konfiguration der internen Speicherzellen entschieden wird, können die Eingangssignale A, B, C verwendet werden, um in Übereinstimmung mit der gewünschten logischen Funktion das Ausgangssignal Y zu erzeugen.
  • Die Eingaben A, B, C der LUT 82 werden in dieser Reihenfolge durch die Zwanzig-zu-eins-Multiplexer 86, 88, 90 geliefert und die Eingaben A, B, C der LUT 84 werden in dieser Reihenfolge durch die Zwanzig-zu-eins-Multiplexer 92, 94, 96 geliefert. Jeder der Multiplexer 86, 88, 90, 92, 94, 96 empfängt als Eingaben die vier Busse EUI[0:4], EBI[0:4], JI[0:7] und GI[0:1]. Somit werden für jede der LUTs 82, 84 aus jedem dieser zwanzig Signale drei Signale als die Eingaben A, B, C ausgewählt.
  • Wenn nur eine Drei-Eingangs-LUT benötigt wird, kann die LUT 82 selbst verwendet werden und wird die LUT 84 nicht benötigt. Die Ausgabe Y der LUT 82 kann direkt an den Ausgang JO der LUT 50 gesendet werden oder die Ausgabe Y der LUT 82 kann unter Verwendung des Zwei-zu-eins-Multiplexers 104 an den Ausgang Y der LU 50 gesendet werden, um den Ausgang Y der LUT 82 auszuwählen. Außerdem kann die Ausgabe Y der LUT 82 unter Verwendung des Zwei-zu-eins-Multiplexers 98, um den Ausgang Y der LUT 82 auszuwählen, und unter Verwendung des Zwei-zu-eins-Multiplexers 102, um den Ausgang des Multiplexers 98 auszuwählen, an den Ausgang JPO der LU 50 gesendet werden. Somit können die Multiplexer 98, 102, 104 verwendet werden, um die Ausgabe Y der LUT 82 an irgendeinen der Ausgänge Y, JO, JPO der LU 50 zu senden.
  • Ein Zweck der Aufnahme zweier LUTs 82, 84 in die LU 50 ist, dass sie zusammen verwendet werden können, um eine Vier-Eingangs-LUT bereitzustellen. Genauer sind der Ausgang Y der LUT 82 und der Ausgang Y der LUT 84 mit den Eingängen des Zwei-zu-eins-Multiplexers 98 verbunden. Der Multiplexer 98 wird durch den Zwanzig-zu-eins-Multiplexer 100 gesteuert, der als seine Eingaben die vier Busse EUI[0:4], EBI[0:4], JI[0:7] und GI[0:1] empfängt. Die LUTs 82, 84 empfangen beide die erste, die zweite und die dritte Eingabe als ihre Eingaben A, B, C und der Multiplexer 100 wird so programmiert, dass er die vierte Eingabe auswählt und sie an den Steuereingang des Multiplexers 98 liefert. Gemäß den gut bekannten Techniken boolescher Logik und der Shannon-Erweiterung simuliert das Verbinden der Drei-Eingangs-LUTs 82, 84 auf diese Weise eine Drei-Eingangs-LUT, wobei das Ergebnis am Eingang des Multiplexers 98 erzeugt wird. Die Ausgabe des Multiplexers 98 kann mittels des Multi plexers 102 an den Ausgang JPO der LU 50 geliefert werden oder mittels der Multiplexer 102, 104 an den Ausgang Y der LU 50 geliefert werden.
  • Außerdem ist in der LU 50 vorzugsweise ein Flipflop 106 enthalten. Genauer ist der Eingang D des Flipflops 106 mit dem Ausgang des Multiplexers 98 verbunden und ist der Ausgang Q des Flipflops 106 mit einem der Eingänge des Multiplexers 102 verbunden. Der Takt-, der Freigabe-, der Setz- und der Rücksetz-Eingang des Flipflops 106 sind mit den entsprechenden Signalen des C/E/P/C-Busses verbunden. Ein Zweck des Flipflops 106 ist das Speichern der Ausgangsdaten des Multiplexers 98. Diese Daten können durch Auswählen des Ausgangs Q mit dem Multiplexer 102 gespeichert und später an den Ausgang JPO der LU 50 gesendet werden. Außerdem können die gespeicherten Daten durch Auswählen des JPO-Signals mit dem Multiplexer 104 an den Ausgang Y der LU 50 gesendet werden. Die Aufnahme des Flipflops 106 in die LU 50 trägt dahingehend, dass die Ausgangsdaten der LU 50 gespeichert und zu einer späteren Zeit verwendet werden können, zur Flexibilität der Vorrichtung bei.
  • Ähnlich der FG 40 empfängt die IG 42 über die sekundäre Routing-Struktur ebenfalls Signale LINT. Genauer ist der Bus PI[0:9] für in den FPGA-Baustein 20 kommende Signale mit zehn Zwölf-zu-eins-Multiplexern 110 gekoppelt, die die Signale auswählen, die den Bus CI[0:9] bilden. Falls die mit dem Bus CI[0:9] gekoppelte reguläre Routing-Struktur dagegen kein Signal an den gewünschten Ort in dem FPGA-Baustein 20 routen kann, kann das Signal durch den Zwölf-zu-eins-Multiplexer 112 als das Signal "bLINT" ausgewählt werden. Das Signal bLINT wird durch dieselbe sekundäre Routing-Struktur geroutet, die für das Routen der durch die FGs 40 erzeugten Signale LINT verwendet wird. Somit kann das Signal bLINT entlang dieser sekundären Routing-Struktur zu irgendeiner der FGs 40 und/oder IGs 42 in dem FPGA-Baustein 20 geroutet werden. Dies schafft eine Möglichkeit, irgendwelche der ankommenden Signale PI[0:9] selbst dann zu irgendeinem Ziel in dem FPGA-Baustein 20 zu routen, wenn die reguläre Routing-Struktur, die den Bus CI[0:9] übermittelt, keinen Weg zu diesem Ziel bereitstellt.
  • Ähnlich der FG 40 enthält die IG 42 ebenfalls Signale LINT und Busse LGG. Genauer ist der Bus PI[0:9] für in den FPGA-Baustein 20 kommende Signale mit zehn Zwölf-zu-eins-Multiplexern 110 gekoppelt, die die Signale auswählen, die den Bus CI[0:9] bilden. Falls mit dem Bus CI[0:9] gekoppelte reguläre Routing-Struktur dagegen keine Signal zu dem gewünschten Ort in dem FPGA-Baustein 20 routen kann, kann das Signal durch den Zwölf-zu-eins-Multiplexer 112 als das "bLINT"-Signal ausgewählt werden. Das Signal bLINT wird durch die gleiche sekundäre Routing-Struktur geroutet, die zum Routen der durch die FGs 40 erzeugten Signale LINT verwendet wird. Somit kann das Signal bLINT entlang dieser sekundären Routing-Struktur zu irgendeiner der FGs 40 und/oder IGs 42 in dem FPGA-Baustein 20 geroutet werden. Dies schafft eine Möglichkeit, irgendwelche der ankommenden Signale PI[0:9] selbst dann zu irgendeinem Ziel in dem FPGA-Baustein 20 zu routen, wenn die reguläre Routing-Struktur, die den Bus CI[0:9] übermittelt, keinen Weg zu diesem Ziel bereitstellt.
  • Ähnlich ist der Bus CO[0:9] für Signale, die den FPGA-Baustein 20 verlassen, mit zehn Zwölf-zu-eins-Multiplexern 114 gekoppelt, die die Signale auswählen, die den Bus PO[0:9] bilden. Falls dagegen die Routing-Struktur, die mit dem Bus PO[0:9] gekoppelt ist, kein Signal zu dem gewünschten Ort nach außerhalb von dem FPGA-Baustein 20 (z. B. in einem benachbarten FPGA-Baustein) routen kann, kann das Signal durch den Zwölf-zu-eins-Multiplexer 116 als das "tLINT"-Signal ausgewählt werden. Das Signal tLINT wird durch eine sekundäre Routing-Struktur geroutet, die zum Routen der Signale LINT in den benachbarten FPGA-Baustein verwendet wird, sodass das Signal tLINT zu irgendeiner der FGs und/oder IGs in dem benachbarten FPGA-Baustein geroutet werden kann. Dies schafft eine Möglichkeit, irgendeines der abgehenden Signale CO[0:9] selbst dann zu irgendeinem Ziel in dem benachbarten FPGA-Baustein zu routen, wenn die reguläre Routing-Struktur, die den Bus PO[0:9] übermittelt, keinen Weg zu diesem Ziel bereitstellt.
  • Wie oben erwähnt wurde, enthält die sekundäre Routing-Struktur in dem FPGA-Baustein 20, die Signale LINT übermittelt, den Bus LGG[0:5]. Genauer werden mehrere Signale LINT, die um den FPGA-Baustein 20 herum geroutet werden müssen, miteinander gruppiert, um den Bus LGG[0:5] zu bilden. Der Bus LGG[0:5] wird für jede FG 40 und IG 42 bereitgestellt, sodass die Signale LINT zu jeder Vorrichtung gesendet werden können. Die IGs 42 empfangen den Bus LGG[0:5] von innerhalb des FPGA-Bausteins 20 am Eingang bLGG[0:5]. Der Eingang bLGG[0:5] ist mit den Sechs-zu-eins-Multiplexern 118, 120 gekoppelt, deren Ausgänge mit den Multiplexern 114, 116 gekoppelt sind. Auf diese Weise kann irgendein innerhalb des FPGA-Bausteins 20 erzeugtes Signal LINT durch Programmierung der geeigneten Multiplexer 114, 116 zur Auswahl der Ausgänge der geeigneten Multiplexer 118, 120 auf dem Bus PO[0:9] oder als das Signal tLINT nach außerhalb von dem FPGA-Baustein 20 gesendet werden.
  • Ähnlich kann ein Bus LGG in einem benachbarten FPGA-Baustein mit dem Eingang tLGG[0:5] der IG 42 verbunden werden. Der Eingang tLGG[0:5] ist mit den Sechs-zu-eins-Multiplexern 122, 124 gekoppelt, deren Ausgänge mit den Multiplexern 110, 112 gekoppelt sind. Auf diese Weise kann irgendein nach außerhalb von dem FPGA-Baustein 20 erzeugtes Signal LINT auf dem Bus CI[0:9] oder als das Signal bLINT durch Programmierung der geeigneten Multiplexer 110, 112 zur Auswahl der Ausgänge der geeigneten Multiplexer 122, 124 nach innerhalb von dem FPGA-Baustein 20 gesendet werden.
  • 13 veranschaulicht die reguläre Routing-Struktur des FPGA-Bausteins 20, die zum Routen der [regulären] Signale über die Eingangs- und Ausgangsports 44 der FGs 40 verwendet wird. Wie oben diskutiert wurde, übermitteln die Eingangs- und Ausgangsports 44 [der regulären Routing-Signale 44 einschließlich der Signale] die Signale an die ersten Eingangsports EUI[0:4], EBI[0:4] und die Signale von den ersten Ausgangs-[Signal-]Ports Y(0:4]. Außerdem behandelt die reguläre Routing-Struktur des FPGA-Bausteins 20 das Routing der Busse CO[0:9] und CI[0:9] zu und von den IGs 42.
  • 12 veranschaulicht außerdem ein weiteres wichtiges Merkmal der vorliegenden Erfindung. Genauer können in dem Szenarium, in dem eine Seite des FPGA-Bausteins 20 für E/A-Zwecke mit einem Anschlussflächenring gekoppelt werden soll, die E/As 101, 103, 105, 107, 109 direkt mit der IG 42' gekoppelt sein. Darüber hinaus können die E/As 101, 103, 105, 107, 109 direkt mit den Multiplexern 126, 128 gekoppelt sein. Mit anderen Worten, die E/As 101, 103, 105, 107, 109 können direkt mit den Multiplexern 126, 128 gekoppelt sein, ohne zuerst mit einem Routing-Kanal verbunden zu sein. Die Verbindung mit einem Routing-Kanal wird nach der IG 42' und den Multiplexern 126, 128 hergestellt. Somit sind in diesem Szenarium E/As direkt mit den Multiplexern 126, 128 gekoppelt und gehen daraufhin zu dem Routing-Kanal oder zu anderen Routing-Betriebsmitteln über.
  • Es ist festzustellen, dass die IGs zweier benachbarter FPGA-Bausteine in Übereinstimmung mit der vorliegenden Erfindung zu einer IG kombiniert werden können. Zum Beispiel sind bei der in 11 gezeigten IG 42 die Busse PO[0:9], PI[0:9], tLGG[0:5] und das Signal tLINT üblicherweise nicht mit einer getrennten IG eines benachbarten Bausteins gekoppelt, sondern sind diese Signale eher mit den Routing-Strukturen des benachbarten FPGA-Bausteins gekoppelt, wobei die IG 42 außerdem als die IG des Nachbarbausteins dient.
  • Irgendwelche der hier diskutierten Multiplexer (Auswahlschaltungen) wie etwa z. B. die Multiplexer 86, 88, 90, 92, 94, 96, 98, 100, 102, 104 können beispielhaft irgendwelche der Auswahlschaltungen umfassen, die in der gleichzeitig anhängigen US-Patentanmeldung Nr. 09/250.781 , eingereicht am 12. Februar 1999, mit dem Titel "MULTI-DIMENSIONAL PROGRAMMABLE INPUT SELECTION APPARATUS AND METHOD", erfunden von Chung-yuan Sun und gemeinsam hiermit übertragen, beschrieben sind.
  • Anhand von 13 ist ein ausführlicheres Diagramm veranschaulicht, das näherungsweise ein Viertel einer beispielhaften Version des FPGA-Bausteins 20 zeigt. Der Abschnitt des FPGA-Bausteins 20, der veranschaulicht ist, ist in 5 mit 129 bezeichnet. Der Durchschnittsfachmann auf dem Gebiet wird würdigen, dass die verbleibenden Abschnitte des FPGA-Bausteins 20 Spiegelbilder des veranschaulichten Abschnitts 129 sind.
  • 13 veranschaulicht die reguläre Routing-Struktur des FPGA-Bausteins 20, der zum Routen der regulären Routing-Signale 44 der FGs 40 verwendet wird. Wie oben diskutiert wurde, enthalten die regulären Routing-Signale 44 die Eingangssignale EUI[0:4], EBI[0:4] und die Ausgangssignale Y[0:4]. Die reguläre Routing-Struktur des FPGA-Bausteins 20 behandelt außerdem das Routing der Busse CO[0:9] und CI[0:9] zu und von den IGs 42.
  • Die reguläre Routing-Struktur des FPGA-Bausteins 20 enthält mehrere horizontale reguläre Routing-Busse 150, 152, 154, 156 und mehrere vertikale Routing-Busse 158, 160, 162. Beispielhaft können die horizontalen Routing-Busse 150, 152, 154, 156 jeweils eine Anzahl X von Leitungen enthalten, kann der horizontale Routing-Bus 164 eine Anzahl A von Leitungen enthalten, können die vertikalen Routing-Busse 160, 162 jeweils eine Anzahl Y von Leitungen enthalten und kann der vertikale Routing-Bus 158 eine Anzahl B von Leitungen enthalten. Als weiteres Beispiel können die horizontalen Routing-Busse 150, 152, 154, 156 jeweils 50 Leitungen enthalten, kann der horizontale Routing-Bus 164 70 Leitungen enthalten, können die vertikalen Routing-Busse 160, 162 jeweils 60 Leitungen enthalten und kann der vertikale Routing-Bus 158 70 Leitungen enthalten.
  • Um Daten von einem Routing-Bus zu einem weiteren Routing-Bus oder zu einer FG 40 oder zu einer IG 42 zu übertragen, sind in dem FPGA-Baustein 20 mehrere Routing-Verdrahtungsbereiche 130, 132, 134, 136, 138, 140, 142, 144, 146, 148 enthalten. Die Routing-Verdrahtungsbereiche 130, 138, 144, 146 werden verwendet, um Daten von einem der vertikalen Routing-Busse zu einem der horizontalen Routing-Busse zu übertragen. Die weiteren Routing-Verdrahtungsbereiche 132, 134, 134, 140, 142, 148 werden verwendet, um Daten zu und von einer der IGs 42 oder einer der FGs 40 zu und von einem der vertikalen Routing-Busse oder einem der horizontalen Routing-Busse zu übertragen. Im Allgemeinen bilden die Routing-Busse und die Routing-Verdrahtungsbereiche die reguläre Routing-Struktur des FPGA-Bausteins 20.
  • 14 veranschaulicht eine beispielhafte Struktur für die Routing-Bereiche 130, 132, 134. In diesem Beispiel enthält der horizontale Routing-Bus 152 50 Leitungen und enthält der vertikale Routing-Bus 160 60 Leitungen. Allerdings ist festzustellen, dass die spezifische Anzahl der Leitungen in irgendeinem der Routing-Busse in Übereinstimmung mit der vorliegenden Erfindung selbstverständlich variieren kann. Darüber hinaus sollte gut verständlich sein, das die spezifische Anzahl der Leitungen in irgendeinem der Signalbusse wie etwa z. B. EUI[0:4], EBI[0:4], Y[0:4], LGG[0:5], GG[0:7], JI[0:7], GI[0:1], CO[0:9], CI[0:9], PO[0:9], PI[0:9] in Übereinstimmung mit der vorliegenden Erfindung variieren kann.
  • Jeder der Routing-Verdrahtungsbereiche 130, 132, 134 enthält mehrere Transistorschalter und entsprechende Speicherzellen, die dazu verwendet werden, die Verbindungen zwischen den verschiedenen Bussen herzustellen. Jeder Transistorschalter und jede Speicherzelle ist in der Figur als ein Kreis (oder als eine Blase) veranschaulicht, der/die bei dem Schnittpunkt der miteinander zu koppelnden Signalleitungen gezeichnet ist. Um dies zu veranschaulichen, zeigt 15 eine Einzelheit der mit 170 bezeichneten Kreise. Die Kreise 172, 174, 176, 178, 180 enthalten in dieser Reihenfolge Transistorschalter M2, M4, M6, M8, M10. Die Source und der Drain jedes der Transistorschalter M2, M4, M6, M8, M10 sind mit den sich schneidenden Signalleitungen gekoppelt und ihr Gate ist mit einer entsprechenden Speicherzelle 182, 184, 186, 188, 190 gekoppelt. Jede der Speicherzellen speichert ein Bit Konfigurationsdaten, um zu steuern, ob der entsprechende Transistorschalter ein- oder ausgeschaltet wird oder nicht. Wenn ein Transistorschalter eingeschaltet ist, sind die Leitungen, mit denen er verbunden ist, miteinander gekoppelt.
  • Wieder anhand von 14 werden der Betrieb der Routing-Busse und der der Routing-Verdrahtungsbereiche ausführlicher beschrieben. Es sind eine der FGs 40 und ihre nahegelegenen Routing-Verdrahtungsbereiche 130, 132, 134 veranschaulicht. Der Bus Y[0:4] der FG 40 ist mit dem Routing-Verdrahtungsbereich 134 gekoppelt und der Bus EBI[0:4] der FG 40 ist mit dem Routing-Verdrahtungsbereich 132 gekoppelt. In einem typischen Szenarium gibt die FG 40 Daten auf den Bus Y[0:4] aus und wird der Routing-Verdrahtungsbereich 134 zum Übertragen dieser Daten auf den Bus 160 verwendet. Dies erfolgt dadurch, dass der Transistorschalter innerhalb des veranschaulichten Kreises (oder innerhalb der veranschaulichten Blase) bei dem richtigen Schnittpunkt von Signalleitungen eingeschaltet wird. Jeder Transistorschalter wird durch Programmieren seiner entsprechenden Speicherzelle eingeschaltet. Ähnlich wird der Routing-Verdrahtungsbereich 132 verwendet, um Daten vom Bus 152 auf den Bus EBI[0:4] der FG 40 zu übertragen. Dies wird wieder dadurch ausgeführt, dass die Speicherzelle zum Einschalten des Transistorschalters bei dem richtigen Schnittpunkt programmiert wird. Der Routing-Verdrahtungsbereich 130 wird wieder durch Programmieren der Speicherzelle zum Einschalten des Transistorschalters bei dem richtigen Schnittpunkt zum Übertragen von Daten vom Bus 160 auf den Bus 152 verwendet.
  • Wie veranschaulicht ist, enthalten die Routing-Verdrahtungsbereiche 130, 132, 134 bei vielen Schnittpunkten von Signalleitungen, jedoch nicht bei allen Schnittpunkten, Transistorschalter und Speicherzellen. (Die Transistorschalter und Speicherzellen sind wieder innerhalb der veranschaulichten Kreise oder Blasen). Wenn bei jedem Schnittpunkt der Signalleitungen ein Transistorschalter und eine Speicherzelle enthalten sind, ist dies als ein "vollständig besiedelter" Routing-Verdrahtungsabschnitt bekannt. In dem Routing-Verdrahtungsbereich 132 ist bei 192 ein vollständig bevölkerter Routing-Verdrahtungsabschnitt gezeigt. Es ist festzustellen, dass die spezifischen Schnittpunkte, die so gewählt worden sind, dass sie einen Transistorschalter und eine Speicherzelle haben, und welche Bereiche (wenn überhaupt) vollständig besiedelt sind, in Übereinstimmung mit der vorliegenden Erfindung weit variieren können. Mit anderen Wor ten, in Übereinstimmung mit der vorliegenden Erfindung können in den Routing-Verdrahtungsbereichen 130, 132, 134 viele verschiedene Muster von Transistorschaltern in Speicherzellen verwendet werden.
  • Die weiteren Routing-Verdrahtungsbereiche 136, 138, 140, 142, 144, 146, 148 in dem FPGA-Baustein 20 sind ähnlich den Routing-Verdrahtungsbereichen 130, 132, 134. Allerdings haben einige verschiedene Anzahlen von Signalleitungen und Schnittpunkten. Zum Beispiel können die Routing-Verdrahtungsbereiche 136, 144 in dem horizontalen Bus 164, teilweise infolgedessen, dass an den Bus CO[0:9] der IGs 42 zehn Signale (anstelle von fünf) übertragen werden, eine größere Anzahl von Signalleitungen haben. Ähnlich haben die Routing-Verdrahtungsbereiche 146, 148 weniger Eingänge und/oder Ausgänge, da sie sich am Ende einer Zeile befinden.
  • Die Anzahl der verwendeten Transistorschalter und ihre Anordnung in dem FPGA-Baustein 20 können sich in Übereinstimmung mit der vorliegenden Erfindung ändern. Die spezifische Anordnung und Positionierung der IGs, FGs, Routing-Busse, Routing-Verdrahtungsbereiche und Schalttransistoren innerhalb des Routing-Verdrahtungsbereichs variieren je nach der bestimmten Anwendung stark. Es ist festzustellen, dass die hier in den Figuren veranschaulichten Konfigurationen Beispielkonfigurationen sind.
  • Die 16A und 16B veranschaulichen die zweite Menge von Routing-Leitern des FPGA-Bausteins 20. Wie oben diskutiert wurde, ist die sekundäre Routing-Struktur von der regulären Routing-Struktur und von den zum Routen der Ausgangssignale Y[0:4] verwendeten Routing-Verdrahtungsbereichen getrennt. Die sekundäre Routing-Struktur wird für das Routing globaler Intra-Baustein-Signale über die Eingangs- und Ausgangsports 46 verwendet, die den Eingangsport LGG[0:5] und den Aus gangsport LINT enthalten. Die LINT-Routing-Struktur ist eine sekundäre Routing-Struktur, die verwendet werden kann, um in Situationen ein Signal zu senden, wenn die reguläre Routing-Struktur nicht zum Senden eines Signals an ein gewünschtes Ziel verwendet werden kann. Dies kann auftreten, da ein Transistorschalter und eine Speicherzelle nicht bei dem benötigten Schnittpunkt der Signalleitungen in einem oder in mehreren der regulären Routing-Verdrahtungsbereiche 130, 132, 134, 136, 138, 140, 142, 144, 146, 148 angeordnet worden sein können. Falls die benötigten Verbindungen mit den regulären Routing-Verdrahtungsbereichen nicht hergestellt werden können, kann das Signal dadurch zu irgendeiner der FGs 40 und/oder IGs 42 gesendet werden, dass die benötigten der Ausgangssignale Y[0:4] wie oben beschrieben als das Signal LINT ausgewählt werden und es über die sekundäre Routing-Struktur gesendet wird.
  • Die über den LINT-Ausgangsport der sechs Vorrichtungen, die irgendeine der Kombination von FGs 40 und/oder IGs 42 sein können, gesendeten Signale [LINT-Signale] werden zusammengesetzt, um den Bus LGG[0:5] zu bilden. Während der Bus LGG[0:5] als ein Sechs-Signal-Bus veranschaulicht ist, ist festzustellen, dass die Anzahl der Signale in dem LGG-Bus in Übereinstimmung mit der vorliegenden Erfindung selbstverständlich Variieren kann. Darüber besteht der LGG-Bus aus Signalen LINT von den FGs 40 und aus Signalen bLINT von den IGs 42. Wie oben diskutiert wurde, gibt die Bezeichnung "b" an den Signalen bLINT der IGs 42 an, dass diese Signale im Gegensatz zu den externen Signalen tLINT intern zu dem FPGA-Baustein 20 sind. Somit soll die Verwendung des Begriffs "LINT" bei der Diskussion der Bildung des Busses LGG[0:5] allgemein sowohl das durch die FGs 40 erzeugte Signal LINT als auch das durch die IGs 42 erzeugte Signal bLINT umfassen.
  • Der Bus LGG[0:5] ist wie folgt zusammengesetzt. Die bLINT-Ausgänge der ersten Spalte der IGs 42 sind mit einem Acht-Signal-Bus 200 gekoppelt. Mit dem Bus 200 sind sechs Acht-zu-eins-Multiplexer 202 gekoppelt. Der Ausgang jedes der Multiplexer 202 ist mit einem entsprechenden Dreizustandspuffer 204 gekoppelt. Die Ausgänge der Dreizustandspuffer 204 sind mit dem Bus LGG[0:5] gekoppelt. In der zweiten Spalte der FGs 40 und der zwei IGs 42 sind die Ausgabe LINT jeder FG 40 und die Ausgabe bLINT jeder der IG 42 mit einem Zehn-Signal-Bus 206 gekoppelt. Mit dem Bus 206 sind sechs Zehn-zu-eins-Multiplexer 208 gekoppelt. Der Ausgang jedes der Multiplexer 208 ist mit einem entsprechenden Dreizustandspuffer 204 gekoppelt, der wiederum mit dem Bus LGG[0:5] gekoppelt ist.
  • Auf ähnliche Weise sind die bLINT-Ausgänge der letzten Spalte der IGs 42 mit einem Acht-Signal-Bus 210 gekoppelt. Sechs Acht-zu-eins-Multiplexer 202 und Dreizustandspuffer 204 koppeln den Bus 210 mit dem Bus LGG[0:5]. In der zweiten bis letzten Spalte der FGs 40 und der zwei IGs 42 sind der Ausgang LINT jeder der FG 40 und der Ausgang bLINT jeder IG 42 mit einem Zehn-Signal-Bus 212 gekoppelt, der wiederum über sechs Zehn-zu-eins-Multiplexer 208 und Dreizustandspuffer 204 mit dem Bus LGG[0:5] gekoppelt ist. Es ist festzustellen, dass der Rest der FGs 40 und IGs 42 in dem FPGA-Baustein 20, die in den 16A und 16B nicht gezeigt sind, auf ähnliche Weise mit dem Bus LGG[0:5] verbunden ist.
  • Während des Betriebs wählt jeder der Multiplexer 202, 208 ein Signal LINT von seinem Eingangsbus, d. h. den jeweils einen der Busse 200, 206, 210, 212, aus. Bis zu sechs dieser ausgewählten Signale LINT können auf dem Bus LGG[0:5] angeordnet werden. Dies erfolgt dadurch, dass sechs der Dreizustandspuffer 204 in einen leitenden Zustand versetzt werden und die verbleibenden Dreizustandspuffer in einen nicht leitenden Zustand versetzt werden. Die sechs Dreizustandspuffer 204, die in einen lei tenden Zustand versetzt werden, sollten den Multiplexern 202, 208 entsprechen, die die gewünschten Signale LINT ausgewählt haben.
  • Der Bus LGG[0:5] wird zu allen der FGs 40 und IGs 42 in dem FPGA-Baustein 20 geroutet. Auf diese Weise kann ein Signal LINT von irgendeiner der FGs 40 und IGs 42 unabhängig von der für den Bus Y[0:4] verwendeten regulären Routing-Struktur an irgendeine der FGs 40 und IGs 42 gesendet werden.
  • Die 16A und 16B zeigen außerdem das Routing des Busses GG[0:7]. Wie oben diskutiert wurde, bildet der Bus GG[0:7] die globalen Inter-Baustein-Signale 48. Diese Signale werden an jede FG 40 in allen FPGA-Bausteinen gesendet. Wie bei 214 angegeben ist, verläuft der Bus GG[0:7] somit über die Grenze des FPGA-Bausteins 20 hinaus, sodass er zu anderen FPGA-Bausteinen gehen kann. Der Bus GG[0:7] verläuft über die Grenze des FPGA-Bausteins 20 hinaus, ohne über eine IG 42 zu gehen. Wie oben diskutiert wurde, können Ausgewählte der Eingangssignale GG[0:7] verwendet werden, um die Takt/Freigabe/Voreinstellung/Löschen-Eingänge (C/E/P/C-Eingänge) der in jeder FG 40 enthaltenen Flipflops zu steuern. Es ist festzustellen, dass der Bus GG[0:7] in Übereinstimmung mit der vorliegenden Erfindung mehr oder weniger Signale enthalten kann.
  • Anhand von 17 ist die globale Signal-Routing-Struktur 36 ausführlicher veranschaulicht. Wie oben erwähnt wurde, wird die globale Signal-Routing-Struktur 36 zum Routen globaler Inter-Baustein-Signale zwischen den FPGA-Bausteinen 20 verwendet. Zum Beispiel ist der GG[0:7] in der globalen Routing-Struktur 36 enthalten und in der Weise gezeigt, dass er alle vier FPGA-Bausteinen 20 verbindet. Der Bus GG[0:7] kann mit den Eingängen 220, 222 gekoppelt sein, um Signale zu senden, die an den Bus GG[0:7] gesendet werden sollen. Ausgewählte der Eingänge 220, 222 können mittels Transistorschaltern und Speicherzellen (wie etwa oben beschrieben worden ist) mit dem Bus GG[0:7] gekoppelt sein, wobei Beispiele davon durch die Kreise 224, 226 angegeben sind.
  • Wie gezeigt ist, enthält die globale Signal-Routing-Struktur 36 außerdem einen Bus 230 zum Verbinden mit dem Anschlussflächenring.
  • Wenn zwei FPGA-Bausteine 20 miteinander gekoppelt sind, sind die IG-Ausgänge eines Bausteins üblicherweise direkt mit den IG-Eingängen des anderen Bausteins gekoppelt. Außerdem können die IGs der zwei Bausteine, wie oben diskutiert wurde, als eine IG kombiniert sein. 18 veranschaulicht eine weitere Option, um zwei FPGA-Bausteine 20 miteinander zu koppeln. Genauer kann eine Zwischen-Routing-Bahn 240 verwendet werden. Der Ausgangsbus PO[0:9] der IG 42 eines Bausteins 20 ist mit der Bahn 240 gekoppelt und der Eingangsbus PI[0:9] der IG 42 des anderen Bausteins 20 ist an einem anderen Ort mit der Bahn 240 gekoppelt. Die Verbindungen mit der Bahn 240, z. B. bei den Punkten 242, 244, 246, können wie oben beschrieben mittels fest verdrahteter Verbindungen oder mittels Transistorschaltern und Speicherzellen sein. Die Letzteren wären natürlich programmierbar. Es ist festzustellen, dass die Verwendung der Zwischen-Routing-Bahn 240 optional ist.
  • Selbstverständlich können bei der Verwirklichung der Erfindung verschiedene Alternativen zu den hier beschriebenen Ausführungsformen der Erfindung genutzt werden. Die folgenden Ansprüche sollen den Umfang der Erfindung definieren, wobei die Strukturen und Verfahren im Umfang dieser Ansprüche auf diese Weise enthalten sein sollen.

Claims (10)

  1. Vorrichtung mit einem feldprogrammierbaren Gate-Array (FPGA), wobei das FPGA umfasst: einen ersten FPGA-Baustein, der aufweist: eine Vielzahl von Funktionsgruppen, die in Zeilen und Spalten angeordnet sind, wobei jede der Funktionsgruppen konfiguriert ist, um reguläre Eingangssignale zu empfangen, eine logische Operation durchzuführen und reguläre Ausgangssignale zu erzeugen; eine reguläre Routing-Struktur, die mit den Funktionsgruppen gekoppelt und konfiguriert ist, um die regulären Ausgangssignale zu empfangen, Signale innerhalb des ersten FPGA-Bausteins zu routen und die regulären Ausgangssignale an die Funktionsgruppen zu liefern; und eine Vielzahl von Schnittstellengruppen, die die Vielzahl von Funktionsgruppen umgeben, sodass eine Schnittstellengruppe an jedem Ende jeder Zeile und Spalte angeordnet ist, wobei eine jede der Schnittstellengruppen mit der regulären Routing-Struktur gekoppelt und konfiguriert ist, um Signale von der regulären Routing-Struktur nach außerhalb von dem ersten FPGA-Baustein zu übertragen, und jede der Schnittstellengruppen eine Vielzahl von Eingangsmultiplexern umfasst, die konfiguriert sind, um Signale, die von außerhalb des FPGA-Bausteins empfangen werden, auszuwählen und die ausgewählten Signale an die reguläre Routing-Struktur innerhalb des FPGA-Bausteins zu liefern, dadurch gekennzeichnet, dass die Vorrichtung darüber hinaus eine Vielzahl von Eingangs/Ausgangs-Anschlussflächen umfasst und ein jeder der Eingangs multiplexer direkt mit zumindest einer der Eingangs/Ausgangs-Anschlussflächen gekoppelt ist.
  2. Vorrichtung nach Anspruch 1, wobei eine jede der Schnittstellengruppen darüber hinaus umfasst: eine Vielzahl von Ausgangsmultiplexern, die konfiguriert sind, um Signale, die von der regulären Routing-Struktur empfangen werden, auszuwählen und die ausgewählten Signale nach außerhalb von dem FPGA-Baustein zu liefern.
  3. Vorrichtung nach Anspruch 1, wobei das FPGA darüber hinaus umfasst: einen zweiten FPGA-Baustein, der eine Vielzahl von Funktionsgruppen, eine reguläre Routing-Struktur und eine Vielzahl von Schnittstellengruppen umfasst, die auf im Wesentlichen ähnliche Weise wie bei dem ersten FPGA-Baustein angeordnet sind, wobei zumindest eine Schnittstellengruppe des ersten FPGA-Bausteins mit zumindest einer Schnittstellengruppe des zweiten FPGA-Bausteins gekoppelt ist.
  4. Vorrichtung nach Anspruch 3, wobei das FPGA darüber hinaus umfasst: einen dritten FPGA-Baustein, der eine Vielzahl von Funktionsgruppen, eine reguläre Routing-Struktur und eine Vielzahl von Schnittstellengruppen umfasst, die auf im Wesentlichen ähnliche Weise wie bei dem ersten FPGA-Baustein angeordnet sind, wobei zumindest eine Schnittstellengruppe des ersten FPGA-Bausteins mit zumindest einer Schnittstellengruppe des dritten FPGA-Bausteins gekoppelt ist.
  5. Vorrichtung nach Anspruch 1, wobei die Vorrichtung darüber hinaus ein System-on-a-Chip umfasst.
  6. Vorrichtung nach Anspruch 1, wobei jede der Funktionsgruppen darüber hinaus umfasst: einen Multiplexer, der konfiguriert ist, um eines der regulären Ausgangssignale als ein sekundäres Funktionsgruppen-Routing-Signal auszuwählen.
  7. Vorrichtung nach Anspruch 6, wobei der erste FPGA-Baustein darüber hinaus umfasst: eine sekundäre Routing-Struktur, die unabhängig von der regulären Routing-Struktur ist und die konfiguriert ist, um das sekundäre Funktionsgruppen-Routing-Signal um den ersten FPGA-Baustein herum zu routen.
  8. Vorrichtung nach Anspruch 7, wobei jede der Schnittstellengruppen darüber hinaus umfasst: einen Multiplexer, der konfiguriert ist, um ein Signal, das von außerhalb des FPGA-Bausteins empfangen wird, als ein sekundäres Schnittstellengruppen-Routing-Signal auszuwählen, wobei die sekundäre Routing-Struktur konfiguriert ist, um das sekundäre Schnittstellengruppen-Routing-Signal auszuwählen und um den ersten FPGA-Baustein herum zu routen.
  9. Vorrichtung nach Anspruch 7, wobei die sekundäre Routing-Struktur darüber hinaus umfasst: einen sekundären Routing-Bus, der mit einem sekundären Routing-Eingang jeder Funktionsgruppe gekoppelt ist.
  10. Vorrichtung nach Anspruch 9, wobei die sekundäre Routing-Struktur darüber hinaus umfasst: eine Vielzahl von ersten Bussen, wobei ein unterschiedlicher erster Bus jeder Zeile von Funktionsgruppen entspricht, und dieser gekoppelt ist, um das sekundäre Funktionsgruppen-Routing-Signal von jeder Funktionsgruppe zu empfangen; eine Vielzahl von sekundären Multiplexern, wobei zumindest ein sekundärer Multiplexer mit jedem ersten Bus gekoppelt ist, um von dort ein Signal auszuwählen; und eine Vielzahl von Puffern, wobei ein unterschiedlicher Puffer mit jedem sekundären Multiplexer gekoppelt ist und einen Ausgang aufweist, der mit dem sekundären Routing-Bus gekoppelt ist.
DE60128960T 2000-09-02 2001-08-31 Architektur für ziegelförmig aufbaubares nutzerprogrammierbares gatterfeld Expired - Lifetime DE60128960T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/654,240 US6476636B1 (en) 2000-09-02 2000-09-02 Tileable field-programmable gate array architecture
US654240 2000-09-02
PCT/US2001/027172 WO2002021694A2 (en) 2000-09-02 2001-08-31 Tileable field-programmable gate array architecture

Publications (2)

Publication Number Publication Date
DE60128960D1 DE60128960D1 (de) 2007-07-26
DE60128960T2 true DE60128960T2 (de) 2008-02-14

Family

ID=24624042

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60128960T Expired - Lifetime DE60128960T2 (de) 2000-09-02 2001-08-31 Architektur für ziegelförmig aufbaubares nutzerprogrammierbares gatterfeld

Country Status (6)

Country Link
US (11) US6476636B1 (de)
EP (1) EP1354404B1 (de)
JP (1) JP2004524715A (de)
AU (1) AU2001286979A1 (de)
DE (1) DE60128960T2 (de)
WO (1) WO2002021694A2 (de)

Families Citing this family (381)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6756811B2 (en) * 2000-03-10 2004-06-29 Easic Corporation Customizable and programmable cell array
US7725860B1 (en) * 2000-06-19 2010-05-25 Herman Kwong Contact mapping using channel routing
US7015719B1 (en) * 2000-09-02 2006-03-21 Actel Corporation Tileable field-programmable gate array architecture
US6476636B1 (en) * 2000-09-02 2002-11-05 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
US6870396B2 (en) * 2000-09-02 2005-03-22 Actel Corporation Tileable field-programmable gate array architecture
GB2374561B (en) * 2001-02-28 2003-03-12 Sherwood Technology Ltd Laser coding
US6605962B2 (en) * 2001-05-06 2003-08-12 Altera Corporation PLD architecture for flexible placement of IP function blocks
JP3580785B2 (ja) * 2001-06-29 2004-10-27 株式会社半導体理工学研究センター ルックアップテーブル、ルックアップテーブルを備えるプログラマブル論理回路装置、および、ルックアップテーブルの構成方法
US7253660B1 (en) * 2001-11-28 2007-08-07 Altera Corporation Multiplexing device including a hardwired multiplexer in a programmable logic device
US7602740B2 (en) * 2001-12-10 2009-10-13 Qst Holdings, Inc. System for adapting device standards after manufacture
US6941538B2 (en) * 2002-02-22 2005-09-06 Xilinx, Inc. Method and system for integrating cores in FPGA-based system-on-chip (SoC)
US7142011B1 (en) 2002-04-24 2006-11-28 Altera Corporation Programmable logic device with routing channels
US6781408B1 (en) 2002-04-24 2004-08-24 Altera Corporation Programmable logic device with routing channels
US6992925B2 (en) * 2002-04-26 2006-01-31 Kilopass Technologies, Inc. High density semiconductor memory cell and memory array using a single transistor and having counter-doped poly and buried diffusion wordline
PT1509256E (pt) * 2002-05-24 2009-10-15 Angiotech Int Ag Composições e métodos de revestimento de implantes médicos
US6735754B2 (en) * 2002-06-06 2004-05-11 Sun Microsystems, Inc. Method and apparatus to facilitate global routing for an integrated circuit layout
US7112994B2 (en) 2002-07-08 2006-09-26 Viciciv Technology Three dimensional integrated circuits
US6992503B2 (en) 2002-07-08 2006-01-31 Viciciv Technology Programmable devices with convertibility to customizable devices
US7093225B2 (en) * 2002-07-17 2006-08-15 Osann Robert Jr FPGA with hybrid interconnect
US7679398B2 (en) * 2002-07-17 2010-03-16 Osann Jr Robert Reprogrammable instruction DSP
US7340585B1 (en) * 2002-08-27 2008-03-04 Xilinx, Inc. Method and system for fast linked processor in a system on a chip (SoC)
US7092865B1 (en) * 2002-09-10 2006-08-15 Xilinx, Inc. Method and apparatus for timing modeling
JP3785388B2 (ja) * 2002-09-17 2006-06-14 松下電器産業株式会社 故障検出方法
US7042772B2 (en) * 2002-09-26 2006-05-09 Kilopass Technology, Inc. Methods and circuits for programming of a semiconductor memory cell and memory array using a breakdown phenomenon in an ultra-thin dielectric
US7031209B2 (en) * 2002-09-26 2006-04-18 Kilopass Technology, Inc. Methods and circuits for testing programmability of a semiconductor memory cell and memory array using a breakdown phenomenon in an ultra-thin dielectric
US6750674B1 (en) 2002-10-02 2004-06-15 Actel Corporation Carry chain for use between logic modules in a field programmable gate array
US8643162B2 (en) 2007-11-19 2014-02-04 Raminda Udaya Madurawe Pads and pin-outs in three dimensional integrated circuits
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
US6800884B1 (en) * 2002-12-30 2004-10-05 Actel Corporation Inter-tile buffer system for a field programmable gate array
US6774670B1 (en) 2002-12-30 2004-08-10 Actel Corporation Intra-tile buffer system for a field programmable gate array
US6798240B1 (en) * 2003-01-24 2004-09-28 Altera Corporation Logic circuitry with shared lookup table
US7330808B1 (en) * 2003-07-24 2008-02-12 Xilinx, Inc. Dummy block replacement for logic simulation
US7170315B2 (en) 2003-07-31 2007-01-30 Actel Corporation Programmable system on a chip
US7693703B2 (en) * 2003-08-01 2010-04-06 Mentor Graphics Corporation Configuration of reconfigurable interconnect portions
US6924664B2 (en) * 2003-08-15 2005-08-02 Kilopass Technologies, Inc. Field programmable gate array
US7030651B2 (en) * 2003-12-04 2006-04-18 Viciciv Technology Programmable structured arrays
US7622947B1 (en) * 2003-12-18 2009-11-24 Nvidia Corporation Redundant circuit presents connections on specified I/O ports
CN1894692A (zh) * 2003-12-18 2007-01-10 皇家飞利浦电子股份有限公司 基于模板的领域特定的可重构逻辑
US7437635B1 (en) * 2003-12-30 2008-10-14 Altera Corporation Testing hard-wired IP interface signals using a soft scan chain
US6972986B2 (en) * 2004-02-03 2005-12-06 Kilopass Technologies, Inc. Combination field programmable gate array allowing dynamic reprogrammability and non-votatile programmability based upon transistor gate oxide breakdown
US7064973B2 (en) * 2004-02-03 2006-06-20 Klp International, Ltd. Combination field programmable gate array allowing dynamic reprogrammability
US7284222B1 (en) 2004-06-30 2007-10-16 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US7167022B1 (en) 2004-03-25 2007-01-23 Altera Corporation Omnibus logic element including look up table based logic elements
US20050218929A1 (en) * 2004-04-02 2005-10-06 Man Wang Field programmable gate array logic cell and its derivatives
US7402855B2 (en) 2004-05-06 2008-07-22 Sidense Corp. Split-channel antifuse array architecture
US9123572B2 (en) 2004-05-06 2015-09-01 Sidense Corporation Anti-fuse memory cell
US7755162B2 (en) 2004-05-06 2010-07-13 Sidense Corp. Anti-fuse memory cell
US8735297B2 (en) 2004-05-06 2014-05-27 Sidense Corporation Reverse optical proximity correction method
US7707472B1 (en) * 2004-05-17 2010-04-27 Altera Corporation Method and apparatus for routing efficient built-in self test for on-chip circuit blocks
US7164290B2 (en) * 2004-06-10 2007-01-16 Klp International, Ltd. Field programmable gate array logic unit and its cluster
US20050275427A1 (en) * 2004-06-10 2005-12-15 Man Wang Field programmable gate array logic unit and its cluster
US7282950B1 (en) 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7312630B2 (en) * 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
US7135886B2 (en) * 2004-09-20 2006-11-14 Klp International, Ltd. Field programmable gate arrays using both volatile and nonvolatile memory cell properties and their control
US7676661B1 (en) 2004-10-05 2010-03-09 Xilinx, Inc. Method and system for function acceleration using custom instructions
US7301368B2 (en) * 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within tile arrangement of a configurable IC
US7743085B2 (en) * 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7317331B2 (en) 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US7276933B1 (en) * 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US7917559B2 (en) * 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7664891B2 (en) * 2004-12-06 2010-02-16 Stmicroelectronics Inc. Modular data transfer architecture
US7779318B2 (en) * 2004-12-27 2010-08-17 Danish Hasan Syed Self test structure for interconnect and logic element testing in programmable devices
US20060190852A1 (en) * 2005-01-12 2006-08-24 Sotiriou Christos P Asynchronous, multi-rail, asymmetric-phase, static digital logic with completion detection and method for designing the same
JP2006252267A (ja) * 2005-03-11 2006-09-21 Oki Electric Ind Co Ltd システム検証用回路
US7530033B2 (en) 2005-03-15 2009-05-05 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US7825684B2 (en) 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7310003B2 (en) * 2005-03-15 2007-12-18 Tabula, Inc. Configurable IC with interconnect circuits that have select lines driven by user signals
US7298169B2 (en) * 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US7193436B2 (en) * 2005-04-18 2007-03-20 Klp International Ltd. Fast processing path using field programmable gate array logic units
US7548085B2 (en) 2005-07-15 2009-06-16 Tabula, Inc. Random access of user design states in a configurable IC
US7409610B1 (en) * 2005-07-20 2008-08-05 Xilinx, Inc. Total configuration memory cell validation built in self test (BIST) circuit
US7430697B1 (en) * 2005-07-21 2008-09-30 Xilinx, Inc. Method of testing circuit blocks of a programmable logic device
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US7568136B2 (en) * 2005-11-08 2009-07-28 M2000 Sa. Reconfigurable system and method with corruption detection and recovery
US7885103B2 (en) 2005-11-22 2011-02-08 Agate Logic, Inc. Non-volatile electromechanical configuration bit array
US8063455B2 (en) * 2005-11-22 2011-11-22 Agate Logic, Inc. Multi-terminal electromechanical nanocsopic switching device with control and release electrodes
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US7405462B2 (en) * 2006-01-31 2008-07-29 Hewlett-Packard Development Company, L.P. FPGA architecture at conventional and submicron scales
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US7797497B1 (en) 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US7694083B1 (en) 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7774579B1 (en) * 2006-04-14 2010-08-10 Tilera Corporation Protection in a parallel processing environment using access information associated with each switch to prevent data from being forwarded outside a plurality of tiles
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7930336B2 (en) * 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7514957B2 (en) 2007-03-20 2009-04-07 Tabula, Inc Configurable IC having a routing fabric with storage elements
US7698677B2 (en) * 2007-03-31 2010-04-13 Freescale Semiconductor, Inc. On-chip decoupling capacitance and power/ground network wire co-optimization to reduce dynamic noise
US7757198B1 (en) 2007-04-10 2010-07-13 Lattice Semiconductor Corporation Scan chain systems and methods for programmable logic devices
US8069425B2 (en) 2007-06-27 2011-11-29 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
US20090045836A1 (en) * 2007-08-15 2009-02-19 Herzl Robert D Asic logic library of flexible logic blocks and method to enable engineering change
US20090045839A1 (en) * 2007-08-15 2009-02-19 International Business Machines Corporation Asic logic library of flexible logic blocks and method to enable engineering change
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
WO2009039462A1 (en) * 2007-09-19 2009-03-26 Tabula, Inc. Method and system for reporting on a primary circuit structure of an integrated circuit (ic) using a secondary circuit structure of the ic
US7788623B1 (en) * 2007-11-29 2010-08-31 Lattice Semiconductor Corporation Composite wire indexing for programmable logic devices
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
JP5086929B2 (ja) * 2008-07-25 2012-11-28 株式会社東芝 不揮発性半導体記憶装置
WO2010016857A1 (en) 2008-08-04 2010-02-11 Tabula, Inc. Trigger circuits and event counters for an ic
WO2010033263A1 (en) 2008-09-17 2010-03-25 Tabula, Inc. Controllable storage elements for an ic
US7911229B2 (en) * 2008-09-26 2011-03-22 Siliconblue Technologies Corporation Programmable signal routing systems having low static leakage
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US20100138575A1 (en) 2008-12-01 2010-06-03 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices
US20100174887A1 (en) 2009-01-07 2010-07-08 Micron Technology Inc. Buses for Pattern-Recognition Processors
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US9711407B2 (en) 2009-04-14 2017-07-18 Monolithic 3D Inc. Method of manufacturing a three dimensional integrated circuit by transfer of a mono-crystalline layer
US8362800B2 (en) 2010-10-13 2013-01-29 Monolithic 3D Inc. 3D semiconductor device including field repairable logics
US7986042B2 (en) 2009-04-14 2011-07-26 Monolithic 3D Inc. Method for fabrication of a semiconductor device and structure
US8378715B2 (en) 2009-04-14 2013-02-19 Monolithic 3D Inc. Method to construct systems
US8669778B1 (en) 2009-04-14 2014-03-11 Monolithic 3D Inc. Method for design and manufacturing of a 3D semiconductor device
US8258810B2 (en) 2010-09-30 2012-09-04 Monolithic 3D Inc. 3D semiconductor device
US9509313B2 (en) 2009-04-14 2016-11-29 Monolithic 3D Inc. 3D semiconductor device
US8362482B2 (en) 2009-04-14 2013-01-29 Monolithic 3D Inc. Semiconductor device and structure
US8395191B2 (en) 2009-10-12 2013-03-12 Monolithic 3D Inc. Semiconductor device and structure
US8427200B2 (en) 2009-04-14 2013-04-23 Monolithic 3D Inc. 3D semiconductor device
US8384426B2 (en) 2009-04-14 2013-02-26 Monolithic 3D Inc. Semiconductor device and structure
US8373439B2 (en) 2009-04-14 2013-02-12 Monolithic 3D Inc. 3D semiconductor device
US8058137B1 (en) 2009-04-14 2011-11-15 Monolithic 3D Inc. Method for fabrication of a semiconductor device and structure
US8754533B2 (en) 2009-04-14 2014-06-17 Monolithic 3D Inc. Monolithic three-dimensional semiconductor device and structure
US9577642B2 (en) 2009-04-14 2017-02-21 Monolithic 3D Inc. Method to form a 3D semiconductor device
US8405420B2 (en) 2009-04-14 2013-03-26 Monolithic 3D Inc. System comprising a semiconductor device and structure
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US9099424B1 (en) 2012-08-10 2015-08-04 Monolithic 3D Inc. Semiconductor system, device and structure with heat removal
US10354995B2 (en) 2009-10-12 2019-07-16 Monolithic 3D Inc. Semiconductor memory device and structure
US11018133B2 (en) 2009-10-12 2021-05-25 Monolithic 3D Inc. 3D integrated circuit
US8581349B1 (en) 2011-05-02 2013-11-12 Monolithic 3D Inc. 3D memory semiconductor device and structure
US11374118B2 (en) 2009-10-12 2022-06-28 Monolithic 3D Inc. Method to form a 3D integrated circuit
US8450804B2 (en) 2011-03-06 2013-05-28 Monolithic 3D Inc. Semiconductor device and structure for heat removal
US10910364B2 (en) 2009-10-12 2021-02-02 Monolitaic 3D Inc. 3D semiconductor device
US10157909B2 (en) 2009-10-12 2018-12-18 Monolithic 3D Inc. 3D semiconductor device and structure
US8294159B2 (en) 2009-10-12 2012-10-23 Monolithic 3D Inc. Method for fabrication of a semiconductor device and structure
US10043781B2 (en) 2009-10-12 2018-08-07 Monolithic 3D Inc. 3D semiconductor device and structure
US8742476B1 (en) 2012-11-27 2014-06-03 Monolithic 3D Inc. Semiconductor device and structure
US8476145B2 (en) 2010-10-13 2013-07-02 Monolithic 3D Inc. Method of fabricating a semiconductor device and structure
US10388863B2 (en) 2009-10-12 2019-08-20 Monolithic 3D Inc. 3D memory device and structure
US8536023B2 (en) 2010-11-22 2013-09-17 Monolithic 3D Inc. Method of manufacturing a semiconductor device and structure
US10366970B2 (en) 2009-10-12 2019-07-30 Monolithic 3D Inc. 3D semiconductor device and structure
US9323994B2 (en) 2009-12-15 2016-04-26 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US8298875B1 (en) 2011-03-06 2012-10-30 Monolithic 3D Inc. Method for fabrication of a semiconductor device and structure
US8541819B1 (en) 2010-12-09 2013-09-24 Monolithic 3D Inc. Semiconductor device and structure
US8026521B1 (en) 2010-10-11 2011-09-27 Monolithic 3D Inc. Semiconductor device and structure
US8492886B2 (en) 2010-02-16 2013-07-23 Monolithic 3D Inc 3D integrated circuit with logic
US8461035B1 (en) 2010-09-30 2013-06-11 Monolithic 3D Inc. Method for fabrication of a semiconductor device and structure
US8373230B1 (en) 2010-10-13 2013-02-12 Monolithic 3D Inc. Method for fabrication of a semiconductor device and structure
US9099526B2 (en) 2010-02-16 2015-08-04 Monolithic 3D Inc. Integrated circuit device and structure
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US9219005B2 (en) 2011-06-28 2015-12-22 Monolithic 3D Inc. Semiconductor system and device
US8901613B2 (en) 2011-03-06 2014-12-02 Monolithic 3D Inc. Semiconductor device and structure for heat removal
US8642416B2 (en) 2010-07-30 2014-02-04 Monolithic 3D Inc. Method of forming three dimensional integrated circuit devices using layer transfer technique
US10217667B2 (en) 2011-06-28 2019-02-26 Monolithic 3D Inc. 3D semiconductor device, fabrication method and system
US9953925B2 (en) 2011-06-28 2018-04-24 Monolithic 3D Inc. Semiconductor system and device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US11482440B2 (en) 2010-12-16 2022-10-25 Monolithic 3D Inc. 3D semiconductor device and structure with a built-in test circuit for repairing faulty circuits
US8163581B1 (en) 2010-10-13 2012-04-24 Monolith IC 3D Semiconductor and optoelectronic devices
US10497713B2 (en) 2010-11-18 2019-12-03 Monolithic 3D Inc. 3D semiconductor memory device and structure
US8273610B2 (en) 2010-11-18 2012-09-25 Monolithic 3D Inc. Method of constructing a semiconductor device and structure
US11018191B1 (en) 2010-10-11 2021-05-25 Monolithic 3D Inc. 3D semiconductor device and structure
US11024673B1 (en) 2010-10-11 2021-06-01 Monolithic 3D Inc. 3D semiconductor device and structure
US10290682B2 (en) 2010-10-11 2019-05-14 Monolithic 3D Inc. 3D IC semiconductor device and structure with stacked memory
US10896931B1 (en) 2010-10-11 2021-01-19 Monolithic 3D Inc. 3D semiconductor device and structure
US11315980B1 (en) 2010-10-11 2022-04-26 Monolithic 3D Inc. 3D semiconductor device and structure with transistors
US11600667B1 (en) 2010-10-11 2023-03-07 Monolithic 3D Inc. Method to produce 3D semiconductor devices and structures with memory
US11469271B2 (en) 2010-10-11 2022-10-11 Monolithic 3D Inc. Method to produce 3D semiconductor devices and structures with memory
US11227897B2 (en) 2010-10-11 2022-01-18 Monolithic 3D Inc. Method for producing a 3D semiconductor memory device and structure
US11158674B2 (en) 2010-10-11 2021-10-26 Monolithic 3D Inc. Method to produce a 3D semiconductor device and structure
US8114757B1 (en) 2010-10-11 2012-02-14 Monolithic 3D Inc. Semiconductor device and structure
US11257867B1 (en) 2010-10-11 2022-02-22 Monolithic 3D Inc. 3D semiconductor device and structure with oxide bonds
US11605663B2 (en) 2010-10-13 2023-03-14 Monolithic 3D Inc. Multilevel semiconductor device and structure with image sensors and wafer bonding
US8283215B2 (en) 2010-10-13 2012-10-09 Monolithic 3D Inc. Semiconductor and optoelectronic devices
US11869915B2 (en) 2010-10-13 2024-01-09 Monolithic 3D Inc. Multilevel semiconductor device and structure with image sensors and wafer bonding
US10833108B2 (en) 2010-10-13 2020-11-10 Monolithic 3D Inc. 3D microdisplay device and structure
US11855100B2 (en) 2010-10-13 2023-12-26 Monolithic 3D Inc. Multilevel semiconductor device and structure with oxide bonding
US11327227B2 (en) 2010-10-13 2022-05-10 Monolithic 3D Inc. Multilevel semiconductor device and structure with electromagnetic modulators
US9197804B1 (en) 2011-10-14 2015-11-24 Monolithic 3D Inc. Semiconductor and optoelectronic devices
US10943934B2 (en) 2010-10-13 2021-03-09 Monolithic 3D Inc. Multilevel semiconductor device and structure
US11163112B2 (en) 2010-10-13 2021-11-02 Monolithic 3D Inc. Multilevel semiconductor device and structure with electromagnetic modulators
US11133344B2 (en) 2010-10-13 2021-09-28 Monolithic 3D Inc. Multilevel semiconductor device and structure with image sensors
US11043523B1 (en) 2010-10-13 2021-06-22 Monolithic 3D Inc. Multilevel semiconductor device and structure with image sensors
US10679977B2 (en) 2010-10-13 2020-06-09 Monolithic 3D Inc. 3D microdisplay device and structure
US8379458B1 (en) 2010-10-13 2013-02-19 Monolithic 3D Inc. Semiconductor device and structure
US10998374B1 (en) 2010-10-13 2021-05-04 Monolithic 3D Inc. Multilevel semiconductor device and structure
US11404466B2 (en) 2010-10-13 2022-08-02 Monolithic 3D Inc. Multilevel semiconductor device and structure with image sensors
US10978501B1 (en) 2010-10-13 2021-04-13 Monolithic 3D Inc. Multilevel semiconductor device and structure with waveguides
US11164898B2 (en) 2010-10-13 2021-11-02 Monolithic 3D Inc. Multilevel semiconductor device and structure
US11855114B2 (en) 2010-10-13 2023-12-26 Monolithic 3D Inc. Multilevel semiconductor device and structure with image sensors and wafer bonding
US11694922B2 (en) 2010-10-13 2023-07-04 Monolithic 3D Inc. Multilevel semiconductor device and structure with oxide bonding
US11063071B1 (en) 2010-10-13 2021-07-13 Monolithic 3D Inc. Multilevel semiconductor device and structure with waveguides
US11929372B2 (en) 2010-10-13 2024-03-12 Monolithic 3D Inc. Multilevel semiconductor device and structure with image sensors and wafer bonding
US11437368B2 (en) 2010-10-13 2022-09-06 Monolithic 3D Inc. Multilevel semiconductor device and structure with oxide bonding
US11735462B2 (en) 2010-11-18 2023-08-22 Monolithic 3D Inc. 3D semiconductor device and structure with single-crystal layers
US11901210B2 (en) 2010-11-18 2024-02-13 Monolithic 3D Inc. 3D semiconductor device and structure with memory
US11569117B2 (en) 2010-11-18 2023-01-31 Monolithic 3D Inc. 3D semiconductor device and structure with single-crystal layers
US11107721B2 (en) 2010-11-18 2021-08-31 Monolithic 3D Inc. 3D semiconductor device and structure with NAND logic
US11443971B2 (en) 2010-11-18 2022-09-13 Monolithic 3D Inc. 3D semiconductor device and structure with memory
US11482439B2 (en) 2010-11-18 2022-10-25 Monolithic 3D Inc. Methods for producing a 3D semiconductor memory device comprising charge trap junction-less transistors
US11521888B2 (en) 2010-11-18 2022-12-06 Monolithic 3D Inc. 3D semiconductor device and structure with high-k metal gate transistors
US11508605B2 (en) 2010-11-18 2022-11-22 Monolithic 3D Inc. 3D semiconductor memory device and structure
US11615977B2 (en) 2010-11-18 2023-03-28 Monolithic 3D Inc. 3D semiconductor memory device and structure
US11121021B2 (en) 2010-11-18 2021-09-14 Monolithic 3D Inc. 3D semiconductor device and structure
US11094576B1 (en) 2010-11-18 2021-08-17 Monolithic 3D Inc. Methods for producing a 3D semiconductor memory device and structure
US11164770B1 (en) 2010-11-18 2021-11-02 Monolithic 3D Inc. Method for producing a 3D semiconductor memory device and structure
US11495484B2 (en) 2010-11-18 2022-11-08 Monolithic 3D Inc. 3D semiconductor devices and structures with at least two single-crystal layers
US11211279B2 (en) 2010-11-18 2021-12-28 Monolithic 3D Inc. Method for processing a 3D integrated circuit and structure
US11355381B2 (en) 2010-11-18 2022-06-07 Monolithic 3D Inc. 3D semiconductor memory device and structure
US11004719B1 (en) 2010-11-18 2021-05-11 Monolithic 3D Inc. Methods for producing a 3D semiconductor memory device and structure
US11031275B2 (en) 2010-11-18 2021-06-08 Monolithic 3D Inc. 3D semiconductor device and structure with memory
US11862503B2 (en) 2010-11-18 2024-01-02 Monolithic 3D Inc. Method for producing a 3D semiconductor device and structure with memory cells and multiple metal layers
US11804396B2 (en) 2010-11-18 2023-10-31 Monolithic 3D Inc. Methods for producing a 3D semiconductor device and structure with memory cells and multiple metal layers
US11923230B1 (en) 2010-11-18 2024-03-05 Monolithic 3D Inc. 3D semiconductor device and structure with bonding
US11854857B1 (en) 2010-11-18 2023-12-26 Monolithic 3D Inc. Methods for producing a 3D semiconductor device and structure with memory cells and multiple metal layers
US11784082B2 (en) 2010-11-18 2023-10-10 Monolithic 3D Inc. 3D semiconductor device and structure with bonding
US11482438B2 (en) 2010-11-18 2022-10-25 Monolithic 3D Inc. Methods for producing a 3D semiconductor memory device and structure
US11018042B1 (en) 2010-11-18 2021-05-25 Monolithic 3D Inc. 3D semiconductor memory device and structure
US11610802B2 (en) 2010-11-18 2023-03-21 Monolithic 3D Inc. Method for producing a 3D semiconductor device and structure with single crystal transistors and metal gate electrodes
US11355380B2 (en) 2010-11-18 2022-06-07 Monolithic 3D Inc. Methods for producing 3D semiconductor memory device and structure utilizing alignment marks
US8975670B2 (en) 2011-03-06 2015-03-10 Monolithic 3D Inc. Semiconductor device and structure for heat removal
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US10388568B2 (en) 2011-06-28 2019-08-20 Monolithic 3D Inc. 3D semiconductor device and system
US8760193B2 (en) 2011-07-01 2014-06-24 Tabula, Inc. Configurable storage elements
US9148151B2 (en) 2011-07-13 2015-09-29 Altera Corporation Configurable storage elements
US8548071B2 (en) * 2011-07-19 2013-10-01 Xilinx, Inc. Integrated circuit enabling the communication of data and a method of communicating data in an integrated circuit
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8687399B2 (en) 2011-10-02 2014-04-01 Monolithic 3D Inc. Semiconductor device and structure
US9029173B2 (en) 2011-10-18 2015-05-12 Monolithic 3D Inc. Method for fabrication of a semiconductor device and structure
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8593175B2 (en) * 2011-12-15 2013-11-26 Micron Technology, Inc. Boolean logic in a state machine lattice
US9000557B2 (en) 2012-03-17 2015-04-07 Zvi Or-Bach Semiconductor device and structure
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US11594473B2 (en) 2012-04-09 2023-02-28 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers and a connective path
US11164811B2 (en) 2012-04-09 2021-11-02 Monolithic 3D Inc. 3D semiconductor device with isolation layers and oxide-to-oxide bonding
US11088050B2 (en) 2012-04-09 2021-08-10 Monolithic 3D Inc. 3D semiconductor device with isolation layers
US11881443B2 (en) 2012-04-09 2024-01-23 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers and a connective path
US8557632B1 (en) 2012-04-09 2013-10-15 Monolithic 3D Inc. Method for fabrication of a semiconductor device and structure
US11410912B2 (en) 2012-04-09 2022-08-09 Monolithic 3D Inc. 3D semiconductor device with vias and isolation layers
US11694944B1 (en) 2012-04-09 2023-07-04 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers and a connective path
US11735501B1 (en) 2012-04-09 2023-08-22 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers and a connective path
US11616004B1 (en) 2012-04-09 2023-03-28 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers and a connective path
US11476181B1 (en) 2012-04-09 2022-10-18 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers
US10600888B2 (en) 2012-04-09 2020-03-24 Monolithic 3D Inc. 3D semiconductor device
US20130275709A1 (en) 2012-04-12 2013-10-17 Micron Technology, Inc. Methods for reading data from a storage buffer including delaying activation of a column select
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8891405B2 (en) * 2012-07-18 2014-11-18 International Business Machines Corporation Integrated device management over Ethernet network
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US8686428B1 (en) 2012-11-16 2014-04-01 Monolithic 3D Inc. Semiconductor device and structure
US8574929B1 (en) 2012-11-16 2013-11-05 Monolithic 3D Inc. Method to form a 3D semiconductor device and structure
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US11784169B2 (en) 2012-12-22 2023-10-10 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers
US11063024B1 (en) 2012-12-22 2021-07-13 Monlithic 3D Inc. Method to form a 3D semiconductor device and structure
US11309292B2 (en) 2012-12-22 2022-04-19 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers
US8674470B1 (en) 2012-12-22 2014-03-18 Monolithic 3D Inc. Semiconductor device and structure
US11916045B2 (en) 2012-12-22 2024-02-27 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers
US11967583B2 (en) 2012-12-22 2024-04-23 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers
US11217565B2 (en) 2012-12-22 2022-01-04 Monolithic 3D Inc. Method to form a 3D semiconductor device and structure
US11961827B1 (en) 2012-12-22 2024-04-16 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers
US11018116B2 (en) 2012-12-22 2021-05-25 Monolithic 3D Inc. Method to form a 3D semiconductor device and structure
US11430668B2 (en) 2012-12-29 2022-08-30 Monolithic 3D Inc. 3D semiconductor device and structure with bonding
US11430667B2 (en) 2012-12-29 2022-08-30 Monolithic 3D Inc. 3D semiconductor device and structure with bonding
US10651054B2 (en) 2012-12-29 2020-05-12 Monolithic 3D Inc. 3D semiconductor device and structure
US11087995B1 (en) 2012-12-29 2021-08-10 Monolithic 3D Inc. 3D semiconductor device and structure
US10600657B2 (en) 2012-12-29 2020-03-24 Monolithic 3D Inc 3D semiconductor device and structure
US11004694B1 (en) 2012-12-29 2021-05-11 Monolithic 3D Inc. 3D semiconductor device and structure
US9871034B1 (en) 2012-12-29 2018-01-16 Monolithic 3D Inc. Semiconductor device and structure
US10115663B2 (en) 2012-12-29 2018-10-30 Monolithic 3D Inc. 3D semiconductor device and structure
US10903089B1 (en) 2012-12-29 2021-01-26 Monolithic 3D Inc. 3D semiconductor device and structure
US9385058B1 (en) 2012-12-29 2016-07-05 Monolithic 3D Inc. Semiconductor device and structure
US10892169B2 (en) 2012-12-29 2021-01-12 Monolithic 3D Inc. 3D semiconductor device and structure
US11177140B2 (en) 2012-12-29 2021-11-16 Monolithic 3D Inc. 3D semiconductor device and structure
US8902663B1 (en) 2013-03-11 2014-12-02 Monolithic 3D Inc. Method of maintaining a memory state
US11935949B1 (en) 2013-03-11 2024-03-19 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers and memory cells
US10325651B2 (en) 2013-03-11 2019-06-18 Monolithic 3D Inc. 3D semiconductor device with stacked memory
US11869965B2 (en) 2013-03-11 2024-01-09 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers and memory cells
US11088130B2 (en) 2014-01-28 2021-08-10 Monolithic 3D Inc. 3D semiconductor device and structure
US8994404B1 (en) 2013-03-12 2015-03-31 Monolithic 3D Inc. Semiconductor device and structure
US11923374B2 (en) 2013-03-12 2024-03-05 Monolithic 3D Inc. 3D semiconductor device and structure with metal layers
US10840239B2 (en) 2014-08-26 2020-11-17 Monolithic 3D Inc. 3D semiconductor device and structure
US11398569B2 (en) 2013-03-12 2022-07-26 Monolithic 3D Inc. 3D semiconductor device and structure
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9703574B2 (en) 2013-03-15 2017-07-11 Micron Technology, Inc. Overflow detection and correction in state machine engines
US9117749B1 (en) 2013-03-15 2015-08-25 Monolithic 3D Inc. Semiconductor device and structure
US10224279B2 (en) 2013-03-15 2019-03-05 Monolithic 3D Inc. Semiconductor device and structure
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine
US11574109B1 (en) 2013-04-15 2023-02-07 Monolithic 3D Inc Automation methods for 3D integrated circuits and devices
US11030371B2 (en) 2013-04-15 2021-06-08 Monolithic 3D Inc. Automation for monolithic 3D devices
US11720736B2 (en) 2013-04-15 2023-08-08 Monolithic 3D Inc. Automation methods for 3D integrated circuits and devices
US9021414B1 (en) 2013-04-15 2015-04-28 Monolithic 3D Inc. Automation for monolithic 3D devices
US11487928B2 (en) 2013-04-15 2022-11-01 Monolithic 3D Inc. Automation for monolithic 3D devices
US11341309B1 (en) 2013-04-15 2022-05-24 Monolithic 3D Inc. Automation for monolithic 3D devices
US11270055B1 (en) 2013-04-15 2022-03-08 Monolithic 3D Inc. Automation for monolithic 3D devices
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9436565B2 (en) 2013-07-04 2016-09-06 Altera Corporation Non-intrusive monitoring and control of integrated circuits
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US11107808B1 (en) 2014-01-28 2021-08-31 Monolithic 3D Inc. 3D semiconductor device and structure
US10297586B2 (en) 2015-03-09 2019-05-21 Monolithic 3D Inc. Methods for processing a 3D semiconductor device
US11031394B1 (en) 2014-01-28 2021-06-08 Monolithic 3D Inc. 3D semiconductor device and structure
US9118325B1 (en) 2014-08-27 2015-08-25 Quicklogic Corporation Routing network for programmable logic device
CN104281742A (zh) * 2014-09-11 2015-01-14 上海卫星工程研究所 一种sram型大规模fpga抗单粒子装置及方法
WO2016109570A1 (en) 2014-12-30 2016-07-07 Micron Technology, Inc Systems and devices for accessing a state machine
US11366675B2 (en) 2014-12-30 2022-06-21 Micron Technology, Inc. Systems and devices for accessing a state machine
US10769099B2 (en) 2014-12-30 2020-09-08 Micron Technology, Inc. Devices for time division multiplexing of state machine engine signals
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US11056468B1 (en) 2015-04-19 2021-07-06 Monolithic 3D Inc. 3D semiconductor device and structure
US10825779B2 (en) 2015-04-19 2020-11-03 Monolithic 3D Inc. 3D semiconductor device and structure
US11011507B1 (en) 2015-04-19 2021-05-18 Monolithic 3D Inc. 3D semiconductor device and structure
US10381328B2 (en) 2015-04-19 2019-08-13 Monolithic 3D Inc. Semiconductor device and structure
US11956952B2 (en) 2015-08-23 2024-04-09 Monolithic 3D Inc. Semiconductor memory device and structure
DE112016004265T5 (de) 2015-09-21 2018-06-07 Monolithic 3D Inc. 3d halbleitervorrichtung und -struktur
US9628083B1 (en) * 2015-10-01 2017-04-18 Quicklogic Corporation Local routing network with selective fast paths for programmable logic device
US10522225B1 (en) 2015-10-02 2019-12-31 Monolithic 3D Inc. Semiconductor device with non-volatile memory
US10846103B2 (en) 2015-10-06 2020-11-24 Micron Technology, Inc. Methods and systems for representing processing resources
US10977309B2 (en) 2015-10-06 2021-04-13 Micron Technology, Inc. Methods and systems for creating networks
US10691964B2 (en) 2015-10-06 2020-06-23 Micron Technology, Inc. Methods and systems for event reporting
US10847540B2 (en) 2015-10-24 2020-11-24 Monolithic 3D Inc. 3D semiconductor memory device and structure
US11296115B1 (en) 2015-10-24 2022-04-05 Monolithic 3D Inc. 3D semiconductor device and structure
US11114464B2 (en) 2015-10-24 2021-09-07 Monolithic 3D Inc. 3D semiconductor device and structure
US10418369B2 (en) 2015-10-24 2019-09-17 Monolithic 3D Inc. Multi-level semiconductor memory device and structure
US11114427B2 (en) 2015-11-07 2021-09-07 Monolithic 3D Inc. 3D semiconductor processor and memory device and structure
US11937422B2 (en) 2015-11-07 2024-03-19 Monolithic 3D Inc. Semiconductor memory device and structure
US10248585B2 (en) * 2016-06-14 2019-04-02 Oracle International Corporation System and method for filtering field programmable gate array input/output
US10146555B2 (en) 2016-07-21 2018-12-04 Micron Technology, Inc. Adaptive routing to avoid non-repairable memory and logic defects on automata processor
US10019311B2 (en) 2016-09-29 2018-07-10 Micron Technology, Inc. Validation of a symbol response memory
US10268602B2 (en) 2016-09-29 2019-04-23 Micron Technology, Inc. System and method for individual addressing
US11251149B2 (en) 2016-10-10 2022-02-15 Monolithic 3D Inc. 3D memory device and structure
US11869591B2 (en) 2016-10-10 2024-01-09 Monolithic 3D Inc. 3D memory devices and structures with control circuits
US11812620B2 (en) 2016-10-10 2023-11-07 Monolithic 3D Inc. 3D DRAM memory devices and structures with control circuits
US11329059B1 (en) 2016-10-10 2022-05-10 Monolithic 3D Inc. 3D memory devices and structures with thinned single crystal substrates
US11930648B1 (en) 2016-10-10 2024-03-12 Monolithic 3D Inc. 3D memory devices and structures with metal layers
US11711928B2 (en) 2016-10-10 2023-07-25 Monolithic 3D Inc. 3D memory devices and structures with control circuits
US10929764B2 (en) 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
US10592450B2 (en) 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices
CN106909425B (zh) * 2017-03-03 2020-05-08 中国电子科技集团公司第五十四研究所 一种dsp和fpga系统在线升级方法
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
CN109583577B (zh) * 2017-09-29 2021-04-23 上海寒武纪信息科技有限公司 运算装置及方法
CN108132811B (zh) * 2017-12-15 2021-09-21 杭州迪普科技股份有限公司 一种fpga程序数据的加载方法及装置
KR102409505B1 (ko) * 2017-12-22 2022-06-14 에스케이하이닉스 주식회사 비휘발성 메모리 소자를 포함하는 lut, lut를 포함하는 fpga 및 fpga 디자인 방법
EP3762831A4 (de) 2018-03-08 2022-04-06 Quadric.I0, Inc. Integrierte schaltung für maschinenwahrnehmungs- und -dichtealgorithmus
JP7386543B2 (ja) 2018-03-28 2023-11-27 クアドリック.アイオー,インコーポレイテッド 機械知覚および高密度アルゴリズム集積回路を実装するためのシステムおよび方法
CN108762970A (zh) * 2018-06-12 2018-11-06 上海航天计算机技术研究所 一种高可靠星载计算机程序存储设备
US10855284B1 (en) * 2018-09-25 2020-12-01 Flex Logix Technologies, Inc. Process of routing tile-to-tile interconnects of an FPGA, and method of manufacturing an FPGA
CN111611196A (zh) * 2019-02-26 2020-09-01 北京知存科技有限公司 一种存算一体芯片及其dac复用控制方法
US11763864B2 (en) 2019-04-08 2023-09-19 Monolithic 3D Inc. 3D memory semiconductor devices and structures with bit-line pillars
US11158652B1 (en) 2019-04-08 2021-10-26 Monolithic 3D Inc. 3D memory semiconductor devices and structures
US11296106B2 (en) 2019-04-08 2022-04-05 Monolithic 3D Inc. 3D memory semiconductor devices and structures
US10892016B1 (en) 2019-04-08 2021-01-12 Monolithic 3D Inc. 3D memory semiconductor devices and structures
US11018156B2 (en) 2019-04-08 2021-05-25 Monolithic 3D Inc. 3D memory semiconductor devices and structures
CN112486895B (zh) * 2019-09-12 2024-01-09 阿里巴巴集团控股有限公司 一种fpga芯片及其互联控制方法
JP7037528B2 (ja) * 2019-09-12 2022-03-16 株式会社東芝 集積回路およびそのテスト方法ならびに電子機器

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4750155A (en) 1985-09-19 1988-06-07 Xilinx, Incorporated 5-Transistor memory cell which can be reliably read and written
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
US5644496A (en) 1989-08-15 1997-07-01 Advanced Micro Devices, Inc. Programmable logic device with internal time-constant multiplexing of signals from external interconnect buses
US5212652A (en) 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5621650A (en) 1989-10-30 1997-04-15 Advanced Micro Devices, Inc. Programmable logic device with internal time-constant multiplexing of signals from external interconnect buses
US5633830A (en) 1995-11-08 1997-05-27 Altera Corporation Random access memory block circuitry for programmable logic array integrated circuit devices
US5550782A (en) 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
US5260610A (en) 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
EP0584910B1 (de) 1992-08-03 1996-09-04 Advanced Micro Devices, Inc. Programmierbare logische Vorrichtung
GB9223226D0 (en) 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US5483178A (en) 1993-03-29 1996-01-09 Altera Corporation Programmable logic device with logic block outputs coupled to adjacent logic block output multiplexers
US5809281A (en) 1993-03-30 1998-09-15 Altera Corporation Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM
US5682107A (en) 1994-04-01 1997-10-28 Xilinx, Inc. FPGA architecture with repeatable tiles including routing matrices and logic matrices
US5504439A (en) 1994-04-01 1996-04-02 Xilinx, Inc. I/O interface cell for use with optional pad
US6181162B1 (en) * 1994-04-10 2001-01-30 Altera Corporation Programmable logic device with highly routable interconnect
US5689195A (en) 1995-05-17 1997-11-18 Altera Corporation Programmable logic array integrated circuit devices
US5572712A (en) * 1994-09-30 1996-11-05 Vlsi Technology, Inc. Method and apparatus for making integrated circuits with built-in self-test
US5761099A (en) 1994-11-04 1998-06-02 Altera Corporation Programmable logic array integrated circuits with enhanced carry routing
US5566123A (en) * 1995-02-10 1996-10-15 Xilinx, Inc. Synchronous dual port ram
US5537057A (en) 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
ATE252291T1 (de) * 1995-05-03 2003-11-15 Btr Inc Skalierbare vielstufige verbindungsarchitektur
US5614840A (en) 1995-05-17 1997-03-25 Altera Corporation Programmable logic array integrated circuits with segmented, selectively connectable, long interconnection conductors
US5541530A (en) 1995-05-17 1996-07-30 Altera Corporation Programmable logic array integrated circuits with blocks of logic regions grouped into super-blocks
US5625301A (en) 1995-05-18 1997-04-29 Actel Corporation Flexible FPGA input/output architecture
US5671432A (en) 1995-06-02 1997-09-23 International Business Machines Corporation Programmable array I/O-routing resource
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
US5633832A (en) 1995-09-26 1997-05-27 Alliance Semiconductor Corporation Reduced area word line driving circuit for random access memory
US5991907A (en) * 1996-02-02 1999-11-23 Lucent Technologies Inc. Method for testing field programmable gate arrays
US5703827A (en) 1996-02-29 1997-12-30 Monolithic System Technology, Inc. Method and structure for generating a boosted word line voltage and a back bias voltage for a memory array
US5694056A (en) 1996-04-01 1997-12-02 Xilinx, Inc. Fast pipeline frame full detector
US6346824B1 (en) * 1996-04-09 2002-02-12 Xilinx, Inc. Dedicated function fabric for use in field programmable gate arrays
US6184709B1 (en) * 1996-04-09 2001-02-06 Xilinx, Inc. Programmable logic device having a composable memory array overlaying a CLB array
US6154049A (en) * 1998-03-27 2000-11-28 Xilinx, Inc. Multiplier fabric for use in field programmable gate arrays
US5744995A (en) 1996-04-17 1998-04-28 Xilinx, Inc. Six-input multiplexer wtih two gate levels and three memory cells
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5781497A (en) 1996-08-02 1998-07-14 Alliance Semiconductor Corp. Random access memory word line select circuit having rapid dynamic deselect
US5825202A (en) 1996-09-26 1998-10-20 Xilinx, Inc. Integrated circuit with field programmable and application specific logic areas
US5773993A (en) 1996-09-26 1998-06-30 Xilinx, Inc. Configurable electronic device which is compatible with a configuration bitstream of a prior generation configurable electronic device
US5977793A (en) * 1996-10-10 1999-11-02 Altera Corporation Programmable logic device with hierarchical interconnection resources
US5880598A (en) * 1997-01-10 1999-03-09 Xilinx, Inc. Tile-based modular routing resources for high density programmable logic device
US5878051A (en) * 1997-02-05 1999-03-02 Lockheed Martin Corp. Assembly-level bist using field-programmable gate array
US5920202A (en) * 1997-02-26 1999-07-06 Xilinx, Inc. Configurable logic element with ability to evaluate five and six input functions
US6150837A (en) 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
US5874834A (en) * 1997-03-04 1999-02-23 Xilinx, Inc. Field programmable gate array with distributed gate-array functionality
US5874384A (en) * 1997-03-31 1999-02-23 The University Of Chicago Elongate Bi-based superconductors made by freeze dried conducting powders
US6345000B1 (en) * 1997-04-16 2002-02-05 Sandisk Corporation Flash memory permitting simultaneous read/write and erase operations in a single memory array
JP3204299B2 (ja) 1997-06-30 2001-09-04 日本電気株式会社 半導体記憶装置
US6020755A (en) 1997-09-26 2000-02-01 Lucent Technologies Inc. Hybrid programmable gate arrays
US5949690A (en) 1997-09-26 1999-09-07 Xilinx, Inc. Schematic design entry with annotated timing
US6130551A (en) * 1998-01-19 2000-10-10 Vantis Corporation Synthesis-friendly FPGA architecture with variable length and variable timing interconnect
US6084427A (en) * 1998-05-19 2000-07-04 Altera Corporation Programmable logic devices with enhanced multiplexing capabilities
US6091263A (en) 1997-12-12 2000-07-18 Xilinx, Inc. Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM
US6034544A (en) 1997-12-22 2000-03-07 Lattice Semiconductor Corporation Programmable input/output block (IOB) in FPGA integrated circuits
US5990702A (en) 1997-12-22 1999-11-23 Vantis Corporation Flexible direct connections between input/output blocks (IOBs) and variable grain blocks (VGBs) in FPGA integrated circuits
US6064225A (en) * 1998-03-20 2000-05-16 Lucent Technologies Inc. Global signal distribution with reduced routing tracks in an FPGA
US6084429A (en) * 1998-04-24 2000-07-04 Xilinx, Inc. PLD having a window pane architecture with segmented and staggered interconnect wiring between logic block arrays
US6069489A (en) 1998-08-04 2000-05-30 Xilinx, Inc. FPGA having fast configuration memory data readback
US6301688B1 (en) * 1998-11-24 2001-10-09 Agere Systems Optoelectronics Guardian Corp. Insertion of test points in RTL designs
US6081473A (en) * 1998-12-15 2000-06-27 Lattice Semiconductor Corporation FPGA integrated circuit having embedded sram memory blocks each with statically and dynamically controllable read mode
US6181163B1 (en) * 1999-01-21 2001-01-30 Vantis Corporation FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals
JP3444216B2 (ja) * 1999-01-28 2003-09-08 日本電気株式会社 プログラマブルデバイス
US6301696B1 (en) 1999-03-30 2001-10-09 Actel Corporation Final design method of a programmable logic device that is based on an initial design that consists of a partial underlying physical template
US6446242B1 (en) * 1999-04-02 2002-09-03 Actel Corporation Method and apparatus for storing a validation number in a field-programmable gate array
US6211697B1 (en) * 1999-05-25 2001-04-03 Actel Integrated circuit that includes a field-programmable gate array and a hard gate array having the same underlying structure
US6463560B1 (en) * 1999-06-23 2002-10-08 Agere Systems Guardian Corp. Method for implementing a bist scheme into integrated circuits for testing RTL controller-data paths in the integrated circuits
US6631487B1 (en) * 1999-09-27 2003-10-07 Lattice Semiconductor Corp. On-line testing of field programmable gate array resources
US6550030B1 (en) * 1999-09-27 2003-04-15 Lattice Semiconductor Corp. On-line testing of the programmable logic blocks in field programmable gate arrays
US6285212B1 (en) 2000-03-06 2001-09-04 Actel Corporation Block connector splitting in logic block of a field programmable gate array
US6567968B1 (en) * 2000-03-06 2003-05-20 Actel Corporation Block level routing architecture in a field programmable gate array
US6476636B1 (en) * 2000-09-02 2002-11-05 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
US6870396B2 (en) * 2000-09-02 2005-03-22 Actel Corporation Tileable field-programmable gate array architecture
US7015719B1 (en) * 2000-09-02 2006-03-21 Actel Corporation Tileable field-programmable gate array architecture
US6470485B1 (en) * 2000-10-18 2002-10-22 Lattice Semiconductor Corporation Scalable and parallel processing methods and structures for testing configurable interconnect network in FPGA device
US6681354B2 (en) * 2001-01-31 2004-01-20 Stmicroelectronics, Inc. Embedded field programmable gate array for performing built-in self test functions in a system on a chip and method of operation
US6651238B1 (en) * 2001-04-17 2003-11-18 Xilinx, Inc. Providing fault coverage of interconnect in an FPGA
US6774670B1 (en) * 2002-12-30 2004-08-10 Actel Corporation Intra-tile buffer system for a field programmable gate array

Also Published As

Publication number Publication date
WO2002021694A2 (en) 2002-03-14
US6968487B1 (en) 2005-11-22
US6611153B1 (en) 2003-08-26
US20080238477A1 (en) 2008-10-02
EP1354404B1 (de) 2007-06-13
US6744278B1 (en) 2004-06-01
US20030218479A1 (en) 2003-11-27
US6700404B1 (en) 2004-03-02
JP2004524715A (ja) 2004-08-12
AU2001286979A1 (en) 2002-03-22
US20070089082A1 (en) 2007-04-19
US6476636B1 (en) 2002-11-05
US7137095B1 (en) 2006-11-14
DE60128960D1 (de) 2007-07-26
WO2002021694A3 (en) 2003-08-14
US6731133B1 (en) 2004-05-04
US6531891B1 (en) 2003-03-11
US6888375B2 (en) 2005-05-03
EP1354404A2 (de) 2003-10-22

Similar Documents

Publication Publication Date Title
DE60128960T2 (de) Architektur für ziegelförmig aufbaubares nutzerprogrammierbares gatterfeld
DE69924486T2 (de) Spezielle schnittstellenarchitektur für eine hybride schaltung
DE102004014472B4 (de) Anwendungsspezifischer integrierter Halbleiter-Schaltkreis
EP0202456B1 (de) In integrierter Technik hergestellter Logik-Array-Baustein
DE19639629C2 (de) Programmierbare, monolithische, integrierte Logikschaltung und Verfahren zum Implementieren derselben
DE69838462T2 (de) Verbesserte feldprogrammierbare Gatteranordnung
EP0705465B1 (de) Konfigurierbares, analoges und digitales array
DE69933525T2 (de) Architekturen für programmierbare logische Vorrichtungen
DE3712178C2 (de)
DE4041897A1 (de) Abtastpfadsystem und integrierte schaltkreiseinrichtung mit diesem
DE10313926A1 (de) Halbleiterbauelement mit einem auf Zellen beruhenden Grundelementaggregat, welches ein vorspringendes Teil in einem aktiven Gebiet aufweist
DE3215671C2 (de) Programmierbare Logikanordnung
EP0005847A1 (de) Speicherschaltung und deren Verwendung in einer elektrisch programmierbaren logischen Anordnung
DE69534659T2 (de) Architektur und Verbindungsmodel für programmierbare logische Schaltungen
DE60118490T2 (de) Logisches Allzweckmodul und Zelle mit einem solchen Modul
DE69811795T2 (de) Integrierte Schaltung zur Taktsignalversorgung und Verfahren zu ihrer Herstellung
DE10164606B4 (de) Flip-Chip-Halbleitereinrichtung mit außerhalb von Energiezufuhranschlussflächen angeordneten Signalanschlussflächen
DE102005033715A1 (de) Integriertes Schaltkreisbauelement, Zwischenverbindungsstruktur und Entwurfsverfahren
DE4327652C2 (de) Integrierte Halbleiterschaltungsvorrichtung und Verfahren zum Entwerfen einer integrierten Halbleiterschaltungsvorrichtung
DE10241385A1 (de) Integrierter Schaltkreis
DE4344231C2 (de) Integrierte Schaltungsvorrichtung mit Bit-Slice-Zellen
DE102004056738B3 (de) Programmierbare Logikzelle für eine programmierbare Logikanordnung, arithmetische Einheit und digitale Schaltungsanordnung
EP0166027B1 (de) In C-MOS-Technik realisierte Basiszelle
DE112012003335T5 (de) Integrierte Schaltung
DE10347975B4 (de) Einrichtung der programmierbaren Logik

Legal Events

Date Code Title Description
8364 No opposition during term of opposition