DE60021375T2 - Vorrichtung und verfahren zur dynamischen definition von teilfeldern innerhalb eines programmierbaren gatterfeldes - Google Patents

Vorrichtung und verfahren zur dynamischen definition von teilfeldern innerhalb eines programmierbaren gatterfeldes Download PDF

Info

Publication number
DE60021375T2
DE60021375T2 DE60021375T DE60021375T DE60021375T2 DE 60021375 T2 DE60021375 T2 DE 60021375T2 DE 60021375 T DE60021375 T DE 60021375T DE 60021375 T DE60021375 T DE 60021375T DE 60021375 T2 DE60021375 T2 DE 60021375T2
Authority
DE
Germany
Prior art keywords
input
output
bus
omniversal
multiplexer
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
DE60021375T
Other languages
English (en)
Other versions
DE60021375D1 (de
Inventor
L. Stephen WASSON
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Application granted granted Critical
Publication of DE60021375D1 publication Critical patent/DE60021375D1/de
Publication of DE60021375T2 publication Critical patent/DE60021375T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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

  • KURZE BESCHREIBUNG DER ERFINDUNG
  • Diese Erfindung bezieht sich allgemein auf eine programmierbare digitale Logik. Insbesondere bezieht sich diese Erfindung auf eine Technik zum dynamischen Definieren von unterschiedliche Größen aufweisenden autonomen Teilarrays in einem programmierbaren Gatterarray.
  • HINTERGRUND DER ERFINDUNG
  • Vorhandene programmierbare Logikvorrichtungen liefern keinen Mechanismus zum Aufrechterhalten der Autonomie programmierter Funktionen, insbesondere dann, wenn die Funktionen unabhängig voneinander entworfen sind. Überdies liefern existierende programmierbare Logikvorrichtungen keine zweckgebundenen Busroutingressourcen für derartige programmierte Funktionen. Routingressourcen, die für ein Bus-Übertragen bei vorhandenen programmierbaren Logikvorrichtungen verwendet werden, sind üblicherweise eindimensional; die Routingressourcen sind nämlich in der Lage, Signale entlang einer Achse, jedoch nicht entlang beider Achsen zu übermitteln. 1 veranschaulicht beispielhafte bekannte Routingarchitekturen bei programmierbaren Logikvorrichtungen. Eine programmierbare Logikvorrichtung 100, die als standardmäßiges feldprogrammierbares Gatterarray (FPGA) implementiert ist, umfasst vertikale Routingleitungen 101 und horizontale Routingleitungen 104, die über lokale Routingleitungen oder eine Verbindung 103 mit Logikmodulen 102 verbunden sind.
  • Aktuelles hierarchisches FPGA-Routen stützt sich auf Segmentlängen von kurzen lokalen Routen (z.B. Verbindung 103) zu chipbreiten Langrouten (z.B. vertikale Routingleitungen 101 und horizontale Routingleitungen 104), um die verschiedenen Module 102 miteinander zu verbinden. Diese Routinghierarchie ermöglicht nicht, dass Funktionen einer variablen Größe autonom in den Modulen 102 implementiert werden.
  • Manche FPGAs sind mit chipbreiten 3-Zustands-Routenressourcen ausgestattet, die üblicherweise zum Bus-Übertragen verwendet werden. Jedoch sind diese 3-Zustandsressourcen darauf beschränkt, eine Bus-Übertragung in einer Richtung durchzuführen, entweder horizontal oder vertikal, jedoch nicht beides. Sogar bei Vorrichtungen, die 3-Zustandsressourcen in beiden Dimensionen (horizontal und vertikal) enthalten, verbinden sich derartige 3-Zustandsressourcen trotzdem nicht miteinander. Überdies sind diese Routingressourcen nicht für eine Bus-Übertragung reserviert.
  • Da die herkömmlichen Verbindungen 101 und 104 für keine bestimmte Aufgabe ausgelegt sind, erfahren Funktionen, die über mehrere Module 102 hinweg implementiert sind, eine Verschlechterung der Leistungsfähigkeit. Ferner ziehen autonome Funktionen, bei denen eine Logik in einem Modul 102 zusammengemischt ist, eine zusätzliche Verschlechterung der Leistungsfähigkeit nach sich. Eine Verschlechterung der Leistungsfähigkeit auf Grund des Zusammenmischens einer ungleichen Logik ist ein beträchtliches Hindernis beim Zusammenführen autonomer Funktionen.
  • Vor diesem Hintergrund wäre es äußerst wünschenswert, einen Mechanismus zum Gruppieren von Bus-übertragenen Ressourcen zu liefern, der in der Lage ist, Logikmodule in sowohl einem herkömmlichen lokalen/globalen Lösungsansatz als auch auf eine Bus-übertragene Weise zwischen lokalen Modulen gleichzeitig miteinander zu verbinden. Eine derartige Technik würde nach einem Zusammenführen bzw. Vermischen eine Funktionsautonomie ermöglichen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Vorrichtung der Erfindung umfasst eine programmierbare Logikvorrichtung, die ein Array von Logikmodulen, ein Standardverbindungsgitter umfasst, wobei vertikale Routingleitungen, horizontale Routingleitungen und lokale Routingleitungen und ein omniverseller Bus funktional über dem Array von Logikmodulen positioniert sind. Das Array von Logikmodulen umfasst selektive Verknüpfungen mit dem omniversellen Bus, so dass der omniverselle Bus auf dynamische Weise autonome Teilarrays von Logikmodulen verschiedener Größen, die funktional an dem omniversellen Bus angebracht sind, einrichtet. Der omniverselle Bus dieser Erfindung ist in der Lage, Signale in zwei Richtungen entlang der beiden Achsen zu transportieren.
  • Der nicht-segmentierte, programmierbare „omniverselle" Bus der Erfindung ermöglicht ein Unterteilen des Modularrays in lokal autonome programmierbare Teilarrays. Jedes Teilarray kann unabhängig entworfen, optimiert, abgebildet, platziert und geroutet werden. Einzelne Teilarrays können variierende Größen aufweisen und können inkremental zusammengeführt werden. Beispielsweise können große Entwürfe (> 250K-Gatter) und sehr große Entwürfe (> 1M-Gatter) in handhabbare Funktionen zur autonomen Implementierung unterteilt werden. Während des nachfolgenden Zusammenführens werden Leistungsfähigkeitscharakteristika bezüglich einer autonomen Funktion aufrechterhalten. Somit können unabhängige Dritt-Funktionen und andere ungleiche Funktionen nahtlos zusammengeführt werden.
  • Über Andocktore ist der omniverselle Bus funktional mit den Logikmodulen verbunden. Bei einem exemplarischen Ausführungsbeispiel umfasst ein Andocktor zwei Arten von Ressourcen: (1) Punkt-Zu-Punkt-Verbindung; und (2) Kollektiverbindung. Die Punkt-Zu-Punkt-Verbindung („Punktverbindung") ermöglicht eine Eins-Zu-Eins- Korrespondenz von Knoten zwischen Andocktoren. Eine Kollektivverbindung ermöglicht eine Eins-Zu-Eins-Korrespondenz zwischen Andocktoren. Eine Punktverbindung umfasst eine Mehrzahl von Knoten. Ein Punktverbindungsknoten kann zum Aufnehmen verschiedener Steuersignale mit mehreren Kollektivverbindungen verbunden sein. Eine Punktverbindung liefert eine allgemeine Adressen- und Datenübermittlung, wobei eine Kollektivverbindung eine Steuerung liefert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 veranschaulicht eine Feldprogrammierbares-Gatterarray-Verbindungsstruktur gemäß dem Stand der Technik.
  • 2 veranschaulicht eine Omniverseller-Bus-Struktur, die gemäß einem Ausführungsbeispiel der Erfindung verwendet wird.
  • 3 veranschaulicht eine Omniverseller-Bus-Struktur, die verwendet wird, um ein Array von logisch autonomen programmierbaren Teilarrays zu implementieren, gemäß einem Ausführungsbeispiel der Erfindung.
  • 4 veranschaulicht beispielhafte Andocktore gemäß einem Ausführungsbeispiel der Erfindung.
  • 5 veranschaulicht ein exemplarisches Andocktor gemäß einem weiteren Ausführungsbeispiel der Erfindung.
  • 6 veranschaulicht einen exemplarischen Andocktor-Punktverbindungsknoten gemäß einem Ausführungsbeispiel der Erfindung.
  • 7 veranschaulicht einen exemplarischen Andocktor-Punktverbindungsknoten gemäß einem weiteren Ausführungsbeispiel der Erfindung.
  • 8 veranschaulicht einen exemplarischen Andocktor-Kollektivverbindungsknoten gemäß einem weiteren Ausführungsbeispiel der Erfindung.
  • 9 veranschaulicht einen weiteren exemplarischen Andocktor-Kollektivverbindungsknoten gemäß einem Ausführungsbeispiel der Erfindung.
  • 10 veranschaulicht eine exemplarische VPGA-Vorrichtung gemäß einem Ausführungsbeispiel der Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 2 veranschaulicht eine programmierbare Logikvorrichtung 200, die ein Array von programmierbaren Logikmodulen 203 aufweist, die durch einen omniversellen Bus 202, der gemäß einem Ausführungsbeispiel der Erfindung aufgebaut ist, funktional miteinander verbunden sind. Obwohl dies in 2 nicht gezeigt ist, sollte man erkennen, dass die programmierbaren Logikmodule 203 ebenfalls durch standardmäßige segmentierte hierarchische Routingsegmente des in 1 gezeigten Typs (d.h. die vertikalen Routingleitungen 101, die horizontalen Routingleitungen 104 und die lokalen Routingleitungen 103) miteinander verbunden sind. Gemäß der Erfindung wird der omniverselle Bus 202 als zusätzliche Verbindungsressource genutzt.
  • Jedes Logikmodul 203 ist über ein Andocktor 201 funktional mit dem omniversellen Bus 202 verbunden. Bei einem exemplarischen Ausführungsbeispiel umfasst das Andocktor 201 eine Eingangs-/Ausgangslogik, die den omniversellen Bus 202 befähigt, Daten in jedes und aus jedem verbundenen programmierbaren Logikmodul 203 zu übermitteln. 2 veranschaulicht neun Logikmodule 203, jeweils mit einem zweckgebundenen Andocktor 201. Die Verbindung mit den Andocktoren 201 von jedem Logikmodul 203 ist programmierbar; das heißt, dass jedes Logikmodul 203 optional eine Ausgabe an den omniversellen Bus 202 liefert und/oder eine Eingabe von demselben ableitet.
  • Ein Konfigurieren eines Logikmoduls 203 zum Verbinden mit einem Andocktor 201 fügt dieses Logikmodul an den Bus 202 an; somit sagt man, dass ein derartiges Modul von standardmäßigen lokalen Verbindungsressourcen unabhängig ist. Man sagt, dass Logikmodule 203, die nicht über Andocktore 201 an den Bus 202 angefügt werden, abhängig sind; das heißt, dass abhängige Logikmodule 203 eine standardmäßige lokale Verbindung benutzen müssen. Eine Gruppe von Logikmodulen 203, die ein oder mehrere unabhängige Logikmodule 203 umfasst, ist ein autonomes Teilarray.
  • 3 zeigt ein VPGA (variable programmable gate array – variables programmierbares Gatterarray) 300 gemäß einem Ausführungsbeispiel der Erfindung. Das VPGA 300 umfasst neun Logikmodule 303. Bei dieser Darstellung besteht ein erstes Teilarray 302 aus zwei horizontal benachbarten Logikmodulen 303. Die benachbarten Logikmodule 303 in dem ersten Teilarray 302 sind durch lokale Routingleitungen 316 miteinander verbunden. Ein zweites Teilarray 304 besteht aus vier Logikmodulen 303. Die benachbarten Logikmodule 303 in dem zweiten Teilarray 304 sind durch lokale Routingleitungen 305 und 306 miteinander verbunden. Ein drittes Teilarray 308 besteht aus zwei vertikal benachbarten Logikmodulen 303. Die benachbarten Logikmodule 303 in dem dritten Teilarray 308 sind durch lokale Routingleitungen 309 miteinander verbunden. Ein viertes Teilarray 314 besteht aus einem einzigen Logikmodul 303. Sammelleitungsverbindungen werden in dem ersten Teilarray 302 über ein aktives Andocktor 315, in dem zweiten Teilarray 304 über ein aktives Andocktor 310, in dem dritten Teilarray 308 über ein aktives Andocktor 311 und in dem vierten Teilarray 314 über ein aktives Andocktor 313 hergestellt. Somit können mehrere Teilarrays ungeachtet der Größe oder Anordnung in einem bestimmten Teilarray auf effiziente Weise durch Verwendung von Sammelleitungsverbindungen verbunden werden, wo jedes Teilarray durch ein aktives Andocktor funktional mit einem anderen Teilarray verbunden ist. Der verdunkelte Abschnitt der Sammelleitung 312 definiert die aktive Verbindung zwischen den vier autonomen Teilarrays 314, 302, 304 und 308.
  • 4 veranschaulicht exemplarische Andocktore 402 und 404. Das Andocktor für das Modul „i" 402 umfasst eine Mehrzahl von Flip-Flops 406, Multiplexern 408 und Dreizustandstreibern 410. Das Andocktor 402 empfängt Eingangssignale von den allgemeinen Ressourcen des Moduls „i". Die Eingangssignale werden ansprechend auf das Taktfreigabesignal (CE) selektiv in die Flip-Flops zwischengespeichert. Ein Auswahlfreigabesignal (SE), das an die Multiplexer 408 angelegt wird, bestimmt, welches Signal als Ausgabe aus den Multiplexern getrieben wird, entweder das aktuell empfangene Signal von den allgemeinen Ressourcen des Moduls „i" auf der Leitung 412 oder ein empfangenes Signal von einem vorherigen Zustand der allgemeinen Ressourcen des Moduls „i" auf der Leitung 413. Ein an die Dreizustandspuffer 410 angelegtes Ausgangsfreigabesignal (OE) treibt die Signale von den Multiplexern 408 auf die Sammelleitung 420.
  • Die Signale von der Sammelleitung 420 werden anschließend an das Modul 404 angelegt. Insbesondere werden die Signale ansprechend auf ein Taktfreigabesignal (CE) selektiv in Flip-Flops 422 zwischengespeichert. Das Auswahlfreigabesignal (SE) wird anschließend verwendet, um die Eingangssignale der Multiplexer 424 auszuwählen. Die an die allgemeinen Ressourcen des Moduls „j" angelegten Signale sind entweder die aktuellen Signale von der Sammelleitung 420 oder Vorheriger-Zustand-Signale von der Sammelleitung 420.
  • Somit veranschaulicht 4 eine Andocktorarchitektur, die ermöglicht, dass zwischen verschiedenen Modulen (z.B. 402 und 404) autonome Teilarrays gebildet werden. Diese Routingressourcen ergänzen die der Vorrichtung zugeordneten standardmäßigen Routingressourcen. Obwohl 4 exemplarische Andocktore zum Verarbeiten und Senden von Eingaben von dem Modul „i" an das Modul „j" veranschaulicht, sind die Andocktore in der Lage, auf bidirektionale Weise zu funktionieren, nämlich Eingaben sowohl von dem Modul „j" als auch von dem Modul „i" zu verarbeiten und zu senden.
  • 5 veranschaulicht ein exemplarisches Andocktor 500 gemäß einem Ausführungsbeispiel der Erfindung. Das Andocktor 500 umfasst eine Mehrzahl von Punktverbindungsknoten 502 und eine Mehrzahl von Kollektivverbindungsknoten 504. Wie in 5 gezeigt ist, umfasst das Andocktor 500 „N" Punktverbindungsknoten 502 und „n" Kollektivverbindungsknoten. Die Punktverbindungsknoten 502 in dem Andocktor 500 weisen eine Eins-Zu-Eins-Korrespondenz mit Punktverbindungsknoten in anderen Andocktoren auf. Kollektivverbindungsknoten 504 weisen eine Eins-Zu-N-Korrespondenz mit Punktverbindungsknoten in anderen Andocktoren auf; ein Kollektivverbindungsknoten 504 in dem Andocktor 500 kann nämlich bis zu „N" Punktverbindungsknoten in dem veranschaulichten Andocktor 500 oder anderen Andocktoren steuern. N ist eine feststehende Zahl, die entwurfsmäßig in einer programmierbaren Vorrichtung vorgesehen ist. Jeder Kollektivverbindungsknoten 504 in dem Andocktor 500 ist mit einer Mehrzahl von Punktverbindungsknoten 502 in dem Andocktor 500 verbunden. Die Punktverbindungsknoten 502A, die mit einem gemeinsamen Kollektivverbindungsknoten 504A verbunden sind, werden durch diesen gemeinsamen Kollektivverbindungsknoten 504A gruppiert. Wenn beispielsweise der gemeinsame Verbindungsknoten 504A freigegeben wird, werden gleichzeitig alle gruppierten Punktverbindungsknoten 502A freigegeben. Bei einem bevorzugten Ausführungsbeispiel kann eine Gruppe von Punktverbindungsknoten 502A, die durch einen gemeinsamen Kollektivverbindungsknoten 504A gesteuert wird, nicht neu gruppiert werden. Ein Punktverbindungsknoten 502 kann zum Empfangen verschiedener Steuersignale mit mehreren Kollektivverbindungen 504 verbunden sein. Beispiele von Steuersignalen, die durch Kollektivverbindungsknoten bereitgestellt werden, sind Ausgangsfreigabe, Eingangsfreigabe, Ausgangstaktfreigabe und Eingangstaktfreigabe.
  • Bei einem exemplarischen Ausführungsbeispiel weist jeder Punktverbindungsknoten 502 eine Verbindung mit einem omniversellen Bus 506, eine Verbindung mit einem Modul 508 und eine Sammlung von Verbindungen mit Kollektivverbindungsknoten 504 auf. Im Einzelnen sind die Verbindungen mit dem omniversellen Bus und dem Modul äquivalent zu Adress- oder Datenleitungen, so dass jeder Knoten eine Verbindung mit dem omniversellen Bus und dem Modul aufweist. Jeder Kollektivverbindungsknoten weist eine Verbindung mit dem omniversellen Bus 506 und eine Verbindung mit dem Modul 508 und eine Verbindung mit „N" Punktverbindungsknoten 502 auf. Die Kollektivverbindungsknoten 504 sind dynamisch; die Kollektivverbindungsknoten können während des Betriebs nämlich aktiviert und deaktiviert werden. Ferner können Kollektivverbindungen durch statische Signale, z.B. Konfigurationsprogrammierungsbits, gesteuert werden.
  • 6 veranschaulicht einen exemplarischen Andocktor-Punktverbindungsknoten 502. Der exemplarische Punktverbindungsknoten ist bidirektional mit einem omniversellen Bus 506 und einem Modul 508 verbunden. Bei einem exemplarischen Ausführungsbeispiel empfängt das Andocktor 502 Eingangssignale von allgemeinen Ressourcen des Moduls 508. Die Eingangssignale werden ansprechend auf ein Taktfreigabesignal (OCE) oder ein Taktsignal (OCK) selektiv in ein Flip-Flop 602 zwischengespeichert. Ein an einen Multiplexer 604 angelegtes Auswahlfreigabesignal (OSEL) bestimmt, welches Signal als Ausgabe aus dem Multiplexer 604 getrieben wird, entweder das derzeit von allgemeinen Ressourcen des Moduls 508 auf der Leitung 601 empfangene Signal oder ein von einem vorherigen Zustand von allgemeinen Ressourcen des Moduls auf der Leitung 603 empfangenes Signal. Ein an den Dreizustandspuffer 606 angelegtes Ausgangsfreigabesignal (OOE) treibt das Signal von dem Multiplexer 604 auf die Sammelleitung 506. Bei einem weiteren exemplarischen Ausführungsbeispiel empfängt das Andocktor 502 Eingangssignale von allgemeinen Ressourcen des omniversellen Busses 506. Eingangssignale werden anfänglich in einem Puffer 605 gespeichert und anschließend ansprechend auf ein Taktfreigabesignal (ICE) oder ein Taktsignal (ICK) selektiv in ein Flip-Flop 608 zwischengespeichert. Ein an einen Multiplexer 610 angelegtes Auswahlfreigabesignal (ISEL) bestimmt, welches Signal als Ausgabe von dem Multiplexer 610 getrieben wird, entweder das derzeit von dem omniversellen Bus 506 auf der Leitung 607 empfangene Signal oder ein von einem vorherigen Zustand des omniversellen Busses 506 auf der Leitung 609 empfangenes Signal. Ein an den Dreizustandspuffer 612 angelegtes Ausgangsfreigabesignal (IOE) treibt das Signal von dem Multiplexer 610 in das Modul 508.
  • 7 veranschaulicht ein weiteres exemplarisches Ausführungsbeispiel eines Andocktor-Punktverbindungsknotens 502. Das Ausführungsbeispiel in 7 ist im Wesentlichen dasselbe wie das Ausführungsbeispiel in 6, mit der Ausnahme, dass eine Adresse von dem omniversellen Bus 506 ansprechend auf ein Taktsignal (ICK) oder ein Adressenzwischenspeicherungsfreigabesignal (ALE) selektiv in ein Flip-Flop 702 zwischengespeichert wird. Die Adresse an dem Flip-Flop 702 wird dem Modul 508 zusätzlich dazu, dass Datensignale bereitgestellt werden, wie oben beschrieben wurde, bereitgestellt.
  • 8 veranschaulicht einen exemplarischen VPGA-Andocktor-Kollektivverbindungsknoten 504. Der Kollektivverbindungsknoten 504 ist dafür verantwortlich, ein Andocktor-Kollektivsteuersignal zu erzeugen. Der Kollektivsteuerknoten 504 umfasst Funktionsgeneratoren 802, Flip-Flops 804, Multiplexer 806, Puffer 808 und Konfigurationspunkte 810, je nach Bedarf, um eine Eingangs- oder Ausgangssteuerung zu bewirken. Bei einem exemplarischen Ausführungsbeispiel wird, wenn ein Empfangsmodul ein „Slave"- oder ein Zielmodul ist, das Ausgangsfreigabesignal (OOE) direkt von einem „Master"-Modul bereitgestellt. Dies kann dadurch bewerkstelligt werden, dass der Kollektivverbindungsknoten, der dafür verantwortlich ist, das Ausgangsfreigabesignal zu erzeugen, als „Eingangs"-Knoten konfiguriert wird. Beispielsweise ist der Eingangsfunktionsgenerator 802 zu einem einen Durchzuleitungsmodus, konfiguriert, der ermöglicht, dass ein Signal unverändert hindurchgelangt. Ferner sollten entsprechende Multiplexer 806 dazu konfiguriert sein, die Eingangsleitung zu übermitteln. 9 veranschaulicht ein exemplarisches Ausführungsbeispiel eines Kollektivverbindungsknotens, der in einem Slave-Modus eingerichtet ist.
  • 10 veranschaulicht ein exemplarisches VPGA 1000, das drei CDMA-Finger (CDMA = code division multiplexing array – Codemultiplexzugriff) aufweist, die durch einen omniversellen Bus 1002 funktional miteinander verbunden sind. Ein 3 × 3-VPGA 1000 ist in vier Funktionen aufgeteilt: (1) eine Mikroprozessorschnittstelle 1004; (2) zwei Nachverfolgungsfinger 1006, 1008; und (3) einen Suchfinger 1010. Die Mikroprozessorschnittstelle 1004 ist einem einzigen Modul (1, 0) zugewiesen. Der Nachverfolgungsfinger 1006 ist zwei Modulen (2, 1) und (2, 2) zugewiesen. Der Nachverfolgungsfinger 1008 ist zwei Modulen (1, 1) und (1, 2) zugewiesen. Der Suchfinger 1010 ist zwei Modulen (0, 1) und (0, 2) zugewiesen. Jedes aus zwei Modulen bestehende Teilarray 1006, 1008, 1010 ist unter Verwendung einer lokalen Interarrayverbindung 1012 miteinander verbunden. Die vier Teilarrays sind durch den omniversellen Bus 1002 funktional miteinander verbunden. Der omniverselle Bus 1002 ist so konfiguriert, dass die Mikroprozessorschnittstelle 1004 immer der Bus-Master ist und die drei Finger 1006, 1008, 1010 immer Slaves sind. Bei einem exemplarischen Ausführungsbeispiel wird ein 16 Bit-Bus verwendet, der einen hinreichend bekannten PC-ISA-Bus-Standard emuliert.
  • Bei einem exemplarischen Ausführungsbeispiel kann der omniverselle Bus 1002 physisch so entworfen sein (in Silizium), dass er eine Unterteilung einer feineren Granularität ermöglicht, so dass, statt alle Punktverbindungsknoten gemeinsam zu steuern, die Punktverbindungsknoten in Gruppen (d.h. 16 Bit-Gruppen) gesteuert werden. Mehrere omniverselle Busse können Vollduplexkommunikationen und Erhöhungen beim auf einem Chip erfolgenden Datendurchsatz unterbringen.
  • Zusammengefasst umfasst die Architektur der Erfindung ein Array von lokal autonomen, programmierbaren Teilarrays, die global mit einem omniversellen Bus verbunden sind. Physisch benachbarte Teilarrays können verkettet sein, um größere Teilarrays zu bilden. Teilarrays sind durch lokal programmierbare Andocktore funktional mit der Sammelleitung verbunden. Die Spezifikation des omniversellen Busses kann benutzerdefinierbar sein. Beispielsweise, wie in 4 gezeigt ist, können die CE-, SE- und OE-Signale verwendet werden, um verschiedene Verbindungen zwischen verschiedenen Modulen einzurichten. Teilarrays müssen nicht denselben Logikressourcentyp umfassen, z.B. können Teilarrays ein(e) rekonfigurierbare(r) Speicher, Steuerung oder andere Ressourcenlogik sein.
  • Fachleute werden erkennen, dass mit der Technik der Erfindung eine Reihe von Vorteilen verbunden sind. Erstens ermöglicht der nicht-segmentierte, programmierbare omniverselle Bus der Erfindung ein Array von lokal autonomen, programmierbaren Teilarrays. Jedes Teilarray kann unabhängig entworfen, optimiert, abgebildet, platziert und geroutet werden. Einzelne Teilarrays können verschiedene Größen aufweisen und können inkremental zusammengeführt werden. Beispielsweise können große Entwürfe (> 250K-Gatter) und sehr große Entwürfe (> 1M-Gatter) zum Zweck einer autonomen Implementierung in handhabbare Module unterteilt werden. Während eines anschließenden Zusammenführens werden Leistungsfähigkeitscharakteristika autonomer Module beibehalten. Somit können unabhängige Drittmodule und andere ungleichartige Module nahtlos zusammengeführt werden.
  • Die vorstehenden Beispiele veranschaulichen bestimmte exemplarische Ausführungsbeispiele der Erfindung, auf deren Basis Fachleuten andere Ausführungsbeispiele, Variationen und Modifikationen einleuchten werden. Die Erfindung sollte somit nicht auf die oben erörterten, bestimmten Ausführungsbeispiele beschränkt sein, sondern wird vielmehr durch die folgenden Patentansprüche definiert.

Claims (11)

  1. Programmierbare Logikvorrichtung, die folgende Merkmale aufweist: ein Array von Logikmodulen (203; 303; 508), die eine vertikale Achse und eine horizontale Achse aufweisen; ein Standardverbindungsgitter, das das Array von Logikmodulen (203; 303; 508) durch segmentierte hierarchische Routingsegmente miteinander verbindet, wobei die segmentierten hierarchischen Routingsegmente vertikale Routingleitungen (101), horizontale Routingleitungen (104) und lokale Routingleitungen (103) umfassen, wobei die horizontalen Routingleitungen (101) und die vertikalen Routingleitungen (104) chipbreite Langrouten zum Miteinanderverbinden der Logikmodule (203; 303; 508) sind, wobei die lokalen Routingleitungen (103) kurze lokale Routen sind, wobei die vertikalen Routingleitungen (101) und die horizontalen Routingleitungen (104) über die lokalen Routingleitungen (103) mit den Logikmodulen (203; 303; 508) verbunden sind; einen omniversellen Bus (202; 312; 420; 506; 1002) neben dem Array von Logikmodulen (203; 303; 508) als zusätzliche Verbindungsressource, wobei der omniverselle Bus (202; 312; 420; 506; 1002) nicht-segmentiert ist und in der Lage ist, Signale in zwei Richtungen entlang der vertikalen Achse und der horizontalen Achse zu transportieren; wobei das Array von Logikmodulen (203; 303; 508) selektive Verknüpfungen mit dem omniversellen Bus (202; 312; 420; 506; 1002) umfasst, wobei jede selektive Verknüpfung ein Andocktor (201; 310; 311; 315; 402; 404; 500) zum programmierbaren Verbinden jedes Logikmoduls (203; 303; 508) mit dem omniversellen Bus (202; 312; 420; 506; 1002) umfasst, wobei eine Verbindung von einem Logikmodul (203; 303; 508) mit einem Andocktor (201; 310; 311; 315; 402; 404; 500) programmierbar ist, um zu ermöglichen, dass dem omniversellen Bus (202; 312; 420; 506; 1002) eine Ausgabe bereitgestellt wird und/oder dass eine Eingabe von demselben abgeleitet wird, wobei Logikmodule, die über Andocktore (201; 310; 311; 315; 402; 404; 500) mit dem omniversellen Bus (202; 312; 420; 506; 1002) verbunden sind, von den lokalen Routingleitungen unabhängig sind, und wobei Logikmodule, die nicht über Andocktore (201; 310; 311; 315; 402; 404; 500) mit dem omniversellen Bus (202; 312; 420; 506; 1002) verbunden sind, von den lokalen Routingleitungen abhängig sind, und wobei eine Gruppierung von Logikmodulen, die ein oder mehrere unabhängige Logikmodule einschließen, ein autonomes Teilarray ist, wobei jedes Teilarray durch ein aktives Andocktor (201; 310; 311; 315; 402; 404; 500) funktional mit einem anderen Teilarray verbunden ist, derart, dass durch Steuern von Andocktoren (201; 310; 311; 315; 402; 404; 500) von Logikmodulen eine Anhaftung von unterschiedliche Größen aufweisenden autonomen Teilarrays von Logikmodulen an den omniversellen Bus (202; 312; 420; 506; 1002) dynamisch eingerichtet wird; wobei ein Andocktor (201; 310; 311; 315; 402; 404; 500) eine Mehrzahl von Punktverbindungsknoten (502) zum Bereitstellen einer Adressen- und Datenübermittlung zum Zweck einer Eins-Zu-Eins-Korrespondenz mit Punktverbindungsknoten in anderen Andocktoren (201; 310; 311; 315; 402; 404; 500) und eine Mehrzahl von Kollektivverbindungsknoten (504) zum Liefern von Steuersignalen an die Punktverbindungsknoten zum Einrichten von Verbindungen zwischen verschiedenen Logikmodulen (203; 303; 508) umfasst, wobei jeder Punktverbindungsknoten bidirektional mit dem omniversellen Bus (202; 312; 420; 506; 1002) und mit einem Logikmodul (203; 303; 508) verbunden ist und eine Sammlung von Verbindungen mit der Mehrzahl von Kollektivverbindungsknoten aufweist, wobei die Verbindungen mit dem omniversellen Bus (202; 312; 420; 506; 1002) und dem Modul Adress- oder Datenleitungen sind, wobei jeder Kollektivverbindungsknoten (504) mit der Mehrzahl von Punktverbindungsknoten (502) und dem omniversellen Bus (202; 312; 420; 506; 1002) verbunden ist, wobei die Kollektivverbindungsknoten konfiguriert sind, um während des Betriebs dynamisch freigegeben und gesperrt zu werden, wobei ein Kollektivverbindungsknoten (504) in dem Andocktor (201; 310; 311; 315; 402; 404; 500) konfiguriert ist, um eine Mehrzahl von Punktverbindungsknoten in dem Andocktor (201; 310; 311; 315; 402; 404; 500) oder in anderen Andocktoren zu steuern, so dass die Mehrzahl von Punktverbindungsknoten zu derselben Zeit freigegeben werden, zu der der Kollektivverbindungsknoten (504) freigegeben wird; wobei ein Logikmodul ein Master-Modul ist, das konfiguriert ist, um einem Empfangsmodul, das ein Slave-Modul ist, ein Ausgangsfreigabesignal zu liefern, wobei das Ausgangsfreigabesignal durch einen Kollektivverbindungspunkt eines Andocktors des Master-Moduls erzeugt wird, wobei ein Kollektivverbindungsknoten eines Andocktors des Slave-Moduls, das in einem Slave-Modus eingerichtet ist, konfiguriert ist, um das Ausgangsfreigabesignal von dem omniversellen Bus (202; 312; 420; 506; 1002) zu empfangen und um das Ausgangsfreigabesignal an Punktverbindungsknoten des Andocktors des Slave-Moduls durchzuleiten, wobei das Ausgangsfreigabesignal das Slave-Modul, das Daten an den omniversellen Bus (202; 312; 420; 506; 1002) übermittelt, freigibt.
  2. Programmierbare Logikvorrichtung gemäß 1, bei der ein Kollektivverbindungsknoten (504) in dem Andocktor (500) konfiguriert ist, um N Punktverbindungsknoten in dem Andocktor (500) oder in anderen Andocktoren zu steuern, so dass die N Punktverbindungsknoten zu derselben Zeit freigegeben werden, zu der der Kollektivverbindungsknoten (504) freigegeben wird, wobei N eine feststehende Zahl ist, die entwurfsmäßig in der programmierbaren Logikvorrichtung vorgesehen ist.
  3. Programmierbare Logikvorrichtung gemäß Anspruch 1 oder 2, bei der ein Kollektivverbindungsknoten durch Konfigurationsprogrammierungsbits, die durch ein Logikmodul bereitgestellt werden, steuerbar ist.
  4. Programmierbare Logikvorrichtung gemäß einem der Ansprüche 1 bis 3, wobei der Kollektivverbindungsknoten (504) konfiguriert ist, um ein Andocktor-Kollektivsteuersignal zu erzeugen, wobei der Kollektivverbindungsknoten (504) einen Erstfunktionsgenerator (802), der einen ersten Eingang (i1), einen zweiten Eingang (i2), einen dritten Eingang (i3) und einen Ausgang aufweist, wobei der Ausgang des Erstfunktionsgenerators (802) mit einem Dateneingang (d) eines ersten Flip-Flops (804) verbunden ist, wobei der erste Flip-Flop (804) einen Ausgang (q) und einen Takteingang (k) aufweist, wobei der Dateneingang (d) des ersten Flip-Flops (804) mit einem ersten Eingang eines ersten Multiplexers (806) verbunden ist, der erste Eingang (i1) des Erstfunktionsgenerators (802) und der Ausgang (q) des ersten Flip-Flops (804) mit einem zweiten Eingang des ersten Multiplexers (806) verbunden sind, wobei der erste Multiplexer (806) einen Freigabeeingang, mit dem ein Konfigurationspunkt (801) verbunden ist, und einen Ausgang aufweist, wobei der Ausgang des ersten Multiplexers (806) mit einem ersten Eingang eines Ausgangsmultiplexers (806) verbunden ist, wobei der Ausgangsmultiplexer (806) einen Freigabeausgang, mit dem ein Konfigurationspunkt (801) verbunden ist, und einen Ausgang zum Bereitstellen des Andocktor-Kollektivsteuersignals aufweist, wobei ein zweiter Eingang des Ausgangsmultiplexers (806) mit einem Ausgang eines zweiten Multiplexers (806) verbunden ist, wobei der zweite Multiplexer (806) einen ersten Eingang, einen zweiten Eingang und einen Ausgang, mit dem ein Konfigurationspunkt (801) verbunden ist, aufweist, wobei der erste Eingang des Multiplexers (806) mit einem Ausgang (o) eines Zweitfunktionsgenerators (802) verbunden ist, wobei der Ausgang (o) des Zweitfunktionsgenerators (802) mit einem Dateneingang (d) eines zweiten Flip-Flops (804) verbunden ist, wobei das zweite Flip-Flop (804) einen Takteingang (k) und einen Ausgang (q) aufweist, der mit dem zweiten Eingang des zweiten Multiplexers (806) verbunden ist, wobei der zweite Eingang des weiteren Multiplexers (806) ferner mit einem ersten Eingang (i1) des Zweitfunktionsgenerators (802) verbunden ist, wobei der Zweitfunktionsgenerator (802) ferner einen zweiten Eingang (i2) und einen dritten Eingang (i3) aufweist, wobei der zweite Eingang (i2) des Erstfunktionsgenerators (802) und der zweite Eingang (i2) des Zweitfunktionsgenerators (i2) mit einem Ausgang eines Puffers (808) verbunden ist, wobei der Puffer (808) einen mit einem ersten Anschluss verbundenen Eingang aufweist, wobei der erste Anschluss mit dem omniversellen Bus verbunden ist, wobei der Ausgang des Puffers (808) mit einem Eingang eines weiteren Puffers (808) verbunden ist, wobei der weitere Puffer (808) einen mit einem weiteren Anschluss verbundenen Ausgang aufweist, wobei der weitere Anschluss mit einem Logikmodul verbunden ist, wobei der dritte Eingang (i3) des Erstfunktionsgenerators (802) und der dritte Eingang (i3) des Zweitfunktionsgenerators (802) mit einem Ausgang eines weiteren Puffers (808) verbunden sind, wobei der weitere Puffer (808) einen mit einem weiteren Anschluss verbundenen Eingang aufweist, wobei der weitere Anschluss mit dem Logikmodul verbunden ist, wobei der Ausgang des weiteren Puffers (808) ferner mit einem Eingang eines Dreizustandspuffers (808) verbunden ist, wobei der Dreizustandspuffer (808) einen mit dem ersten Anschluss verbundenen Ausgang und einen mit einem Konfigurationspunkt (801) verbundenen Freigabeausgang verbunden ist.
  5. Programmierbare Logikvorrichtung gemäß Anspruch 4, wobei der Kollektivverbindungsknoten (504) konfiguriert ist, um einem Punktverbindungsknoten ein Ausgangsfreigabesignal bereitzustellen, wobei der Puffer (808) konfiguriert ist, um das Ausgangsfreigabesignal von dem omniversellen Bus zu empfangen und das Ausgangsfreigabesignal dem Erstfunktionsgenerator (802) bereitzustellen, wobei der Erstfunktionsgenerator (802) konfiguriert ist, um das Ausgangsfreigabesignal an den ersten Multiplexer (806) umzuleiten, wobei der erste Multiplexer (806) konfiguriert ist, um das Ausgangsfreigabesignal an den Ausgangsmultiplexer (806) umzuleiten, wobei der Ausgangsmultiplexer (806) konfiguriert ist, um das Freigabesignal auszugeben.
  6. Programmierbare Logikvorrichtung gemäß den Ansprüchen 1 bis 5, bei der ein Punktverbindungsknoten ein Flip-Flop (602), einen Multiplexer (604), einen Dreizustandspuffer (606), einen Puffer (605), ein Flip-Flop (608), einen Multiplexer (610) und einen Dreizustandspuffer (612) umfasst, wobei das Flip-Flop (602) einen Takteingang (k), einen Taktfreigabeeingang (e), einen Dateneingang (d) umfasst, wobei der Dateneingang (d) des Flip-Flops (602) mit einem ersten Anschluss verbunden ist, wobei der erste Anschluss mit einem Logikmodul (508) zum Empfangen von Eingangssignalen verbunden ist, wobei der Dateneingang des Flip-Flops (602) über eine Leitung (601) mit einem ersten Eingang des Multiplexers (604) verbunden ist, wobei der Ausgang (q) des Flip-Flops (602) über eine Leitung (603) mit einem zweiten Eingang des Multiplexers (604) verbunden ist, wobei der Multiplexer ferner einen Auswahlfreigabeeingang und einen mit einem Eingang des Dreizustandspuffers (606) verbundenen Ausgang aufweist, wobei der Dreizustandspuffer (606) ferner einen Ausgangsfreigabeeingang und einen Ausgang aufweist, der mit einem zweiten Anschluss verbunden ist, der mit einem omniversellen Bus (506) verbunden ist, wobei der zweite Anschluss ferner mit einem Eingang des Puffers (605) verbunden ist, wobei der Puffer (605) einen mit einem Dateneingang (d) des Flip-Flops (608) verbundenen Ausgang aufweist, wobei das Flip-Flop (608) ferner einen Takteingang (k), einen Taktfreigabeeingang (e) und einen Ausgang (q) aufweist, wobei der Dateneingang (d) des Flip-Flops (608) über eine Leitung (607) mit einem ersten Eingang des Multiplexers (610) verbunden ist, wobei der Datenausgang (q) des Flip-Flops (608) über eine Leitung (609) mit einem zweiten Eingang des Multiplexers (610) verbunden ist, wobei der Multiplexer (610) ferner einen mit einem Eingang des Dreizustandspuffers (612) verbundenen Ausgang aufweist, wobei der Dreizustandspuffer (612) einen Ausgangsfreigabeeingang und einen mit dem ersten Anschluss verbundenen Ausgang aufweist, wobei ein Kollektivverbindungsknoten konfiguriert ist, um dem Takteingang (k) des Flip-Flops (602) ein Taktsignal bereitzustellen, dem Taktfreigabeeingang (e) des Flip-Flops (602) ein Taktfreigabesignal bereitzustellen, dem Dreizustandspuffer (606) ein Auswahlfreigabesignal bereitzustellen, dem Takteingang (k) des Flip-Flops (608) ein Taktsignal bereitzustellen, dem Eingang (e) des Flip-Flops (608) ein Taktfreigabesignal bereitzustellen, dem Auswahlfreigabeeingang des Multiplexers (610) ein Auswahlfreigabesignal bereitzustellen und dem Ausgangsfreigabeeingang des Dreizustandspuffers (612) ein Ausgangsfreigabesignal bereitzustellen, wobei das Auswahlfreigabesignal, das auf den Auswahlfreigabeeingang des Multiplexers (604) anwendbar ist, bestimmt, ob ein derzeit empfangbares Signal von dem Logikmodul (518) auf der Leitung (601) oder ein zuvor empfangenes Signal von einem vorherigen Zustand des Logikmoduls (508) auf der Leitung (603) durch den Multiplexer (604) ausgegeben werden soll, und wobei das Auswahlfreigabesignal, das auf den Auswahlfreigabeeingang des Dreizustandspuffers (610) anwendbar ist, bestimmt, ob ein derzeit empfangenes Signal von dem omniversellen Bus (506) auf der Leitung (607) oder ein zuvor empfangenes Signal von einem vorherigen Zustand des omniversellen Busses (506) auf der Leitung (609) durch den Multiplexer (610) ausgegeben werden soll.
  7. Programmierbare Logikvorrichtung gemäß Anspruch 6, bei der der Punktverbindungsknoten (502) ferner ein Flip-Flop (702) aufweist, das einen Dateneingang (d), der mit dem Ausgang des Puffers (605) verbunden ist, einen Adressenzwischenspeicherungsfreigabeeingang (e) zum Empfangen eines Adressenzwischenspeicherungsfreigabesignals, einen mit dem Takteingang (k) des Flip-Flops (608) verbundenen Takteingang (k) und einen mit einem Adressanschluss verbundenen Ausgang (q) aufweist, wobei der Adressanschluss mit dem Logikmodul (508) verbunden ist, wobei das Flip-Flop (702) konfiguriert ist, um eine Adresse, die durch den omniversellen Bus (506) bereitgestellt wird, ansprechend auf ein Taktsignal oder auf das Adressenzwischenspeicherungsfreigabesignal selektiv zwischenzuspeichern, wobei die Adresse dem Logikmodul (508) bereitgestellt wird.
  8. Programmierbare Logikvorrichtung gemäß einem der Ansprüche 1 bis 5, bei der eine Mehrzahl von Punktverbindungsknoten eines Andocktors (402) über einen omniversellen Bus (402) mit einer Mehrzahl von Punktverbindungsknoten eines Andockmoduls (404) verbunden ist, wobei ein Punktverbindungsknoten der Mehrzahl von Punktverbindungsknoten des Andockmoduls (402) ein Flip-Flop (406a, 406b, 406c) umfasst, das einen ersten Eingang, einen zweiten Eingang und einen Ausgang (413a, 413b, 413c) umfasst, wobei der erste Eingang des Flip-Flops (406a, 406b, 406c) über eine Leitung (412a, 412b, 412c) mit einem ersten Eingang eines Multiplexers (408a, 408b, 408c) verbunden ist, wobei der Ausgang des Flip-Flops (406a, 406b, 406c) über eine Leitung (413a, 413b, 413c) mit einem zweiten Eingang des Multiplexers (408a, 408b, 408c) verbunden ist, wobei der Multiplexer (408a, 408b, 408c) einen Auswahlfreigabeeingang und einen Ausgang aufweist, wobei der Ausgang des Multiplexers (408a, 408b, 408c) mit einem Eingang eines Dreizustandspuffers (410a, 410b, 410c) verbunden ist, wobei der Dreizustandspuffer (410a, 410b, 410c) einen Eingangsfreigabeeingang und einen Ausgang aufweist, wobei der Ausgang über den omniversellen Bus (420) mit einem ersten Eingang eines Flip-Flops (422a, 422b, 422c) des Punktverbindungsknotens des Andocktors (404) verbunden ist, wobei das Flip-Flop (422a, 422b, 422c) einen weiteren Eingang und einen Ausgang aufweist, wobei der erste Eingang des Flip-Flops (422a, 422b, 422c) mit einem ersten Eingang eines Multiplexers (424a, 424b, 424c) verbunden ist, wobei der Ausgang des Flip-Flops (422a, 422b, 422c) mit einem zweiten Eingang des Multiplexers (424a, 424b, 424c) verbunden ist, wobei der Multiplexer (424a, 424b, 424c) einen mit einem Logikmodul verbundenen Ausgang aufweist, wobei der erste Eingang des Flip-Flops (406a, 406b, 406c) mit dem Modul (402) verbunden ist, um Signale von dem Modul (402) zu empfangen und entweder das derzeit empfangene Signal von dem Modul (402) auf der Leitung (412a, 412b, 412c) oder ein empfangenes Signal von einem vorherigen Zustand des Moduls (402) auf der Leitung (413) über den Multiplexer (408a, 408b, 408c) dem omniversellen Bus (428) bereitzustellen, wenn ein Ausgangsfreigabesignal (OE) an den Ausgangsfreigabeeingang des Dreizustandspuffers (410a, 410b, 410c) angelegt wird, und wobei das Flip-Flop (422a, 422b, 422c) konfiguriert ist, um die Signale, die von dem omniversellen Bus (420) empfangbar sind, ansprechend auf ein Taktfreigabesignal (CE), das an den zweiten Eingang des Multiplexers (422a, 422b, 422c) anlegbar ist, selektiv zwischenzuspeichern, und um entweder die aktuellen Signale von dem Omnibus (420) oder vorherige Zustandssignale von dem Omnibus (420) dem Logikmodul (404) bereitzustellen.
  9. Programmierungslogikvorrichtung gemäß einem der Ansprüche 1 bis 8, die ein Array von neun Logikmodulen (303) aufweist, wobei ein erstes Teilarray (302) aus zwei horizontal benachbarten Logikmodulen (303) besteht, wobei die benachbarten Logikmodule (303) durch lokale Routingleitungen (316) miteinander verbunden sind, wobei ein zweites Teilarray (303) aus vier Logikmodulen (303) besteht, die durch lokale Routingleitungen (305) und (306) miteinander verbunden sind, wobei ein drittes Teilarray (308) aus zwei vertikal benachbarten Logikmodulen (303) besteht, die durch lokale Routingleitungen (309) miteinander verbunden sind, wobei ein viertes Teilarray (314) aus einem einzigen Logikmodul (303) besteht, wobei das erste Teilarray (303) über ein aktives Andocktor (315) mit dem omniversellen Bus verbunden ist, wobei das zweite Teilarray (304) über ein aktives Andocktor (310) mit dem omniversellen Bus verbunden ist, wobei das dritte Teilarray (308) über ein aktives Andocktor (311) mit dem omniversellen Bus verbunden ist, wobei das vierte Teilarray (314) über ein aktives Andocktor (313) mit dem omniversellen Bus verbunden ist, wobei der omniverselle Bus (312) die autonomen Teilarrays (314, 302, 304, 308) aktiv miteinander verbindet.
  10. Programmierbare Logikvorrichtung gemäß einem der Ansprüche 1 bis 9, die ein erstes Teilarray (1006), wobei das erste Teilarray (1006) zwei Logikmodule aufweist, ein zweites Teilarray (1008), das zwei Logikmodule aufweist, und ein drittes Teilarray (1010), das zwei Logikmodule aufweist, umfasst, wobei jedes Teilarray (1006, 1008, 1010) über eine lokale Interarrayverbindung (1012) verbunden ist, und ein Teilarray (1004), das ein Logikmodul aufweist, umfasst, wobei die Teilarrays (1006, 1008, 1010, 1004) durch einen omniversellen Bus (1002) funktionell miteinander verbunden sind, wobei das Teilarray (1004) ein Master ist, wobei die Teilarrays (1006, 1008, 1010) Slaves sind, wobei das Teilarray (1004) eine Mikroprozessorschnittstelle ist, wobei das Teilarray (1006) ein CDMA-Nachverfolgungsfinger ist, wobei das Teilarray (1008) ein CDMA-Nachverfolgungsfinger ist, wobei der omniverselle Bus (1002) ein 16 Bit-Bus ist, der zum Emulieren eines PC-ISA-Busses konfiguriert ist.
  11. Verfahren zum Erzeugen einer programmierbaren Logikvorrichtung, das folgende Schritte umfasst: Definieren eines Arrays von Logikmodulen, die eine vertikale Achse und eine horizontale Achse aufweisen; Verbinden des Arrays von Logikmodulen durch segmentierte hierarchische Routingsegmente, wobei die segmentierten hierarchischen Routingsegmente vertikale Routingleitungen, horizontale Routingleitungen und lokale Routingleitungen umfassen, wobei die horizontalen Routingleitungen und die vertikalen Routingleitungen chipbreite Langrouten zum Miteinanderverbinden der Logikmodule sind, wobei die lokalen Routingleitungen kurze lokale Routen sind, die die vertikalen Routingleitungen und die horizontalen Routingleitungen mit den Logikmodulen verbinden; Bereitstellen eines omniversellen Buses neben dem Array von Logikmodulen als zusätzliche Verbindungsressource, wobei der omniverselle Bus nicht-segmentiert ist und in der Lage ist, Signale in zwei Richtungen entlang der vertikalen Achse und der horizontalen Achse zu transportieren; selektives Anbringen des omniversellen Buses an dem Array von Logikmodulen unter Verwendung selektiver Verknüpfungen, wobei jede selektive Verknüpfung ein Andocktor zum programmierbaren Verbinden jedes Logikmoduls mit dem omniversellen Bus umfasst, wobei eine Verbindung von einem Logikmodul mit einem Andocktor programmierbar ist, um zu ermöglichen, dass dem omniversellen Bus Ausgaben bereitgestellt werden und/oder dass eine Eingabe von demselben abgeleitet wird, wobei Logikmodule, die über Andocktore mit dem omniversellen Bus verbunden sind, von den lokalen Routingleitungen unabhängig sind, wobei Logikmodule, die nicht über Andocktore mit dem omniversellen Bus verbunden sind, von den lokalen Routingleitungen abhängig sind, und wobei eine Gruppierung von Logikmodulen, die ein oder mehrere unabhängige Logikmodule einschließen, ein autonomes Teilarray ist, wobei jedes Teilarray durch ein aktives Andocktor funktional mit einem anderen Teilarray verbunden ist, derart, dass durch Steuern von Andocktoren von Logikmodulen eine Anhaftung von unterschiedliche Größen aufweisenden autonomen Teilarrays von Logikmodulen an den omniversellen Bus dynamisch eingerichtet wird; wobei ein Andocktor eine Mehrzahl von Punktverbindungsknoten zum Bereitstellen einer Adressen- und Datenübermittlung zum Zweck einer Eins-Zu-Eins-Korrespondenz mit Punktverbindungsknoten in anderen Andocktoren und eine Mehrzahl von Kollektivverbindungsknoten zum Liefern von Steuersignalen an die Punktverbindungsknoten zum Einrichten von Verbindungen zwischen verschiedenen Logikmodulen umfasst, wobei jeder Punktverbindungsknoten bidirektional mit dem omniversellen Bus und mit einem Logikmodul verbunden ist und eine Sammlung von Verbindungen mit der Mehrzahl von Kollektivverbindungsknoten aufweist, wobei die Verbindungen mit dem omniversellen Bus und dem Modul Adress- oder Datenleitungen sind, wobei jeder Kollektivverbindungsknoten mit der Mehrzahl von Punktverbindungsknoten und dem omniversellen Bus verbunden ist, wobei die Kollektivverbindungsknoten konfiguriert sind, um während des Betriebs dynamisch freigegeben und gesperrt zu werden, wobei ein Kollektivverbindungsknoten in dem Andocktor konfiguriert ist, um eine Mehrzahl von Punktverbindungsknoten in dem Andocktor oder in anderen Andocktoren zu steuern, so dass die Mehrzahl von Punktverbindungsknoten zu derselben Zeit freigegeben werden, zu der der Kollektivverbindungsknoten freigegeben wird; wobei ein Logikmodul ein Master-Modul ist, das konfiguriert ist, um einem Empfangsmodul, das ein Slave-Modul ist, ein Ausgangsfreigabesignal zu liefern, wobei das Ausgangsfreigabesignal durch einen Kollektivverbindungspunkt eines Andocktors des Master-Moduls erzeugt wird, wobei ein Kollektivverbindungsknoten eines Andocktors des Slave-Moduls, das in einem Slave-Modus eingerichtet ist, konfiguriert ist, um das Ausgangsfreigabesignal von dem omniversellen Bus zu empfangen und um das Ausgangsfreigabesignal an Punktverbindungsknoten des Andocktors des Slave-Moduls durchzuleiten, wobei das Ausgangsfreigabesignal das Slave-Modul, das Daten an den omniversellen Bus übermittelt, freigibt.
DE60021375T 1999-05-07 2000-05-05 Vorrichtung und verfahren zur dynamischen definition von teilfeldern innerhalb eines programmierbaren gatterfeldes Expired - Lifetime DE60021375T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13313899P 1999-05-07 1999-05-07
US133138P 1999-05-07
PCT/US2000/012477 WO2000069072A1 (en) 1999-05-07 2000-05-05 Apparatus and methods for dynamically defining variably sized autonomous sub-arrays within a programmable gate array

Publications (2)

Publication Number Publication Date
DE60021375D1 DE60021375D1 (de) 2005-08-25
DE60021375T2 true DE60021375T2 (de) 2006-05-24

Family

ID=22457189

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60021375T Expired - Lifetime DE60021375T2 (de) 1999-05-07 2000-05-05 Vorrichtung und verfahren zur dynamischen definition von teilfeldern innerhalb eines programmierbaren gatterfeldes

Country Status (9)

Country Link
US (1) US6333641B1 (de)
EP (1) EP1177630B1 (de)
JP (1) JP2002544699A (de)
KR (1) KR100648909B1 (de)
AT (1) ATE300121T1 (de)
AU (1) AU5127500A (de)
CA (1) CA2371077A1 (de)
DE (1) DE60021375T2 (de)
WO (1) WO2000069072A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6879185B2 (en) * 2002-04-05 2005-04-12 Stmicroelectronics Pvt. Ltd. Low power clock distribution scheme
DE10347975B4 (de) 2002-10-24 2008-10-09 Siemens Ag Einrichtung der programmierbaren Logik
US7921323B2 (en) * 2004-05-11 2011-04-05 L-3 Communications Integrated Systems, L.P. Reconfigurable communications infrastructure for ASIC networks
US7444454B2 (en) * 2004-05-11 2008-10-28 L-3 Communications Integrated Systems L.P. Systems and methods for interconnection of multiple FPGA devices
US7827023B2 (en) * 2006-02-01 2010-11-02 Cadence Design Systems, Inc. Method and apparatus for increasing the efficiency of an emulation engine
US7808995B2 (en) * 2006-11-16 2010-10-05 L-3 Communications Integrated Systems L.P. Methods and systems for relaying data packets
US8397054B2 (en) * 2009-12-23 2013-03-12 L-3 Communications Integrated Systems L.P. Multi-phased computational reconfiguration
US8368423B2 (en) 2009-12-23 2013-02-05 L-3 Communications Integrated Systems, L.P. Heterogeneous computer architecture based on partial reconfiguration

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2180382B (en) 1985-09-11 1989-11-22 Pilkington Micro Electronics Semi-conductor integrated circuits/systems
US5452231A (en) 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
US5329470A (en) 1988-12-02 1994-07-12 Quickturn Systems, Inc. Reconfigurable hardware emulation system
GB2312308B (en) * 1993-06-18 1998-01-21 Pilkington Micro Electronics Configurable logic array
GB9312674D0 (en) * 1993-06-18 1993-08-04 Pilkington Micro Electronics Configurabel logic array
US5455525A (en) * 1993-12-06 1995-10-03 Intelligent Logic Systems, Inc. Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array
US5537295A (en) * 1994-03-04 1996-07-16 Altera Corporation Universal reconfigurable printed circuit board
US5537057A (en) * 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of 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
US5963049A (en) 1995-05-17 1999-10-05 Altera Corporation Programmable logic array integrated circuit architectures
US5652529A (en) 1995-06-02 1997-07-29 International Business Machines Corporation Programmable array clock/reset resource
GB2305759A (en) * 1995-09-30 1997-04-16 Pilkington Micro Electronics Semi-conductor integrated circuit
US5943242A (en) 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US5894228A (en) 1996-01-10 1999-04-13 Altera Corporation Tristate structures for programmable logic devices
US5635851A (en) * 1996-02-02 1997-06-03 Xilinx, Inc. Read and writable data bus particularly for programmable logic devices
US5999016A (en) * 1996-10-10 1999-12-07 Altera Corporation Architectures for programmable logic devices
US5946219A (en) 1996-10-30 1999-08-31 Atmel Corporation Method and system for configuring an array of logic devices
DE19647181A1 (de) 1996-11-14 1998-05-20 Siemens Ag Zur Abarbeitung von Softwareprogrammen ausgelegte integrierte Schaltung
DE19654593A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
US6075380A (en) * 1997-06-26 2000-06-13 Altera Corporation Programmable logic device with expandable-width memory regions
US7389487B1 (en) 1998-04-28 2008-06-17 Actel Corporation Dedicated interface architecture for a hybrid integrated circuit

Also Published As

Publication number Publication date
WO2000069072A1 (en) 2000-11-16
CA2371077A1 (en) 2000-11-16
EP1177630B1 (de) 2005-07-20
US6333641B1 (en) 2001-12-25
KR100648909B1 (ko) 2006-11-24
DE60021375D1 (de) 2005-08-25
KR20020038582A (ko) 2002-05-23
ATE300121T1 (de) 2005-08-15
EP1177630A4 (de) 2002-06-12
EP1177630A1 (de) 2002-02-06
JP2002544699A (ja) 2002-12-24
AU5127500A (en) 2000-11-21

Similar Documents

Publication Publication Date Title
DE69637399T2 (de) Grobkörnig strukturierte integrierte Halbleiterschaltung mit Nachschlagtabellen
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
DE69838462T2 (de) Verbesserte feldprogrammierbare Gatteranordnung
DE2560474C2 (de) Schaltungsanordnung in einer digitalen Datenverarbeitungsanlage zur Steuerung der Übertragung von Informationen zwischen peripheren Einheiten und einem Zentralprozessor
DE69733931T2 (de) Kreuzvermittlungsschalter und verfahren mit beschränktem spannungshub und blockierungsfreien vermittlungswegen
DE4425552C2 (de) Gatterarray
DE69924486T2 (de) Spezielle schnittstellenarchitektur für eine hybride schaltung
EP0202456B1 (de) In integrierter Technik hergestellter Logik-Array-Baustein
DE60021375T2 (de) Vorrichtung und verfahren zur dynamischen definition von teilfeldern innerhalb eines programmierbaren gatterfeldes
DE60010614T2 (de) On-line Prüfung des programmierbaren Verbindungsnetzwerks in einer feldprogrammierbaren Gatteranordnung
DE102017125234A1 (de) Busschnittstelle mit bidirektionaler eindraht-kommunikation und individuellen auswahlleitungen
DE60012639T2 (de) Verbindungsressourcen für programmierbare logische integrierte schaltungen
DE2406740A1 (de) System zur regelung von verfahrensausruestungen
DE102008030514A1 (de) Verfahren und Vorrichtung zur Anbindung von Speichervorrichtungen
DE3311881C2 (de)
DE3423710A1 (de) Verfahren zur datenuebertragungssteuerung
DE10238578B4 (de) Bandbreitenanpassung für Abtastaufbauten in einer integrierten Schaltung
DE102005059012A1 (de) ASI-Sytem zum Anschluß mehrerer Sensoren und/oder Aktuatoren an eine Steuerung
DE102017002604B4 (de) Serielle Kommunikationsverzweigungsvorrichtung und serielles Kommunikationssystem
DE4406258A1 (de) Informationsverarbeitungsvorrichtung
DE60311173T2 (de) Vorrichtung der physikalischen Schicht mit Serdes-Durchgangsbetrieb
DE202012103054U1 (de) Programmierbare Logikeinheit
EP0088916B1 (de) Schaltungsanordnung zum Prüfen von elektrischen, insbesondere elektronischen Einrichtungen
US7126374B2 (en) Multi-level routing architecture in a field programmable gate array having transmitters and receivers
DE4005339C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition