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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/1778—Structural details for adapting physical parameters
- H03K19/17796—Structural 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 Logikvorrichtung100 , die als standardmäßiges feldprogrammierbares Gatterarray (FPGA) implementiert ist, umfasst vertikale Routingleitungen101 und horizontale Routingleitungen104 , die über lokale Routingleitungen oder eine Verbindung103 mit Logikmodulen102 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 Routingleitungen101 und horizontale Routingleitungen104 ), um die verschiedenen Module102 miteinander zu verbinden. Diese Routinghierarchie ermöglicht nicht, dass Funktionen einer variablen Größe autonom in den Modulen102 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 und104 für keine bestimmte Aufgabe ausgelegt sind, erfahren Funktionen, die über mehrere Module102 hinweg implementiert sind, eine Verschlechterung der Leistungsfähigkeit. Ferner ziehen autonome Funktionen, bei denen eine Logik in einem Modul102 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 Logikvorrichtung200 , die ein Array von programmierbaren Logikmodulen203 aufweist, die durch einen omniversellen Bus202 , der gemäß einem Ausführungsbeispiel der Erfindung aufgebaut ist, funktional miteinander verbunden sind. Obwohl dies in2 nicht gezeigt ist, sollte man erkennen, dass die programmierbaren Logikmodule203 ebenfalls durch standardmäßige segmentierte hierarchische Routingsegmente des in1 gezeigten Typs (d.h. die vertikalen Routingleitungen101 , die horizontalen Routingleitungen104 und die lokalen Routingleitungen103 ) miteinander verbunden sind. Gemäß der Erfindung wird der omniverselle Bus202 als zusätzliche Verbindungsressource genutzt. - Jedes Logikmodul
203 ist über ein Andocktor201 funktional mit dem omniversellen Bus202 verbunden. Bei einem exemplarischen Ausführungsbeispiel umfasst das Andocktor201 eine Eingangs-/Ausgangslogik, die den omniversellen Bus202 befähigt, Daten in jedes und aus jedem verbundenen programmierbaren Logikmodul203 zu übermitteln.2 veranschaulicht neun Logikmodule203 , jeweils mit einem zweckgebundenen Andocktor201 . Die Verbindung mit den Andocktoren201 von jedem Logikmodul203 ist programmierbar; das heißt, dass jedes Logikmodul203 optional eine Ausgabe an den omniversellen Bus202 liefert und/oder eine Eingabe von demselben ableitet. - Ein Konfigurieren eines Logikmoduls
203 zum Verbinden mit einem Andocktor201 fügt dieses Logikmodul an den Bus202 an; somit sagt man, dass ein derartiges Modul von standardmäßigen lokalen Verbindungsressourcen unabhängig ist. Man sagt, dass Logikmodule203 , die nicht über Andocktore201 an den Bus202 angefügt werden, abhängig sind; das heißt, dass abhängige Logikmodule203 eine standardmäßige lokale Verbindung benutzen müssen. Eine Gruppe von Logikmodulen203 , die ein oder mehrere unabhängige Logikmodule203 umfasst, ist ein autonomes Teilarray. -
3 zeigt ein VPGA (variable programmable gate array – variables programmierbares Gatterarray)300 gemäß einem Ausführungsbeispiel der Erfindung. Das VPGA300 umfasst neun Logikmodule303 . Bei dieser Darstellung besteht ein erstes Teilarray302 aus zwei horizontal benachbarten Logikmodulen303 . Die benachbarten Logikmodule303 in dem ersten Teilarray302 sind durch lokale Routingleitungen316 miteinander verbunden. Ein zweites Teilarray304 besteht aus vier Logikmodulen303 . Die benachbarten Logikmodule303 in dem zweiten Teilarray304 sind durch lokale Routingleitungen305 und306 miteinander verbunden. Ein drittes Teilarray308 besteht aus zwei vertikal benachbarten Logikmodulen303 . Die benachbarten Logikmodule303 in dem dritten Teilarray308 sind durch lokale Routingleitungen309 miteinander verbunden. Ein viertes Teilarray314 besteht aus einem einzigen Logikmodul303 . Sammelleitungsverbindungen werden in dem ersten Teilarray302 über ein aktives Andocktor315 , in dem zweiten Teilarray304 über ein aktives Andocktor310 , in dem dritten Teilarray308 über ein aktives Andocktor311 und in dem vierten Teilarray314 über ein aktives Andocktor313 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 Sammelleitung312 definiert die aktive Verbindung zwischen den vier autonomen Teilarrays314 ,302 ,304 und308 . -
4 veranschaulicht exemplarische Andocktore402 und404 . Das Andocktor für das Modul „i"402 umfasst eine Mehrzahl von Flip-Flops406 , Multiplexern408 und Dreizustandstreibern410 . Das Andocktor402 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 Multiplexer408 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 Leitung412 oder ein empfangenes Signal von einem vorherigen Zustand der allgemeinen Ressourcen des Moduls „i" auf der Leitung413 . Ein an die Dreizustandspuffer410 angelegtes Ausgangsfreigabesignal (OE) treibt die Signale von den Multiplexern408 auf die Sammelleitung420 . - Die Signale von der Sammelleitung
420 werden anschließend an das Modul404 angelegt. Insbesondere werden die Signale ansprechend auf ein Taktfreigabesignal (CE) selektiv in Flip-Flops422 zwischengespeichert. Das Auswahlfreigabesignal (SE) wird anschließend verwendet, um die Eingangssignale der Multiplexer424 auszuwählen. Die an die allgemeinen Ressourcen des Moduls „j" angelegten Signale sind entweder die aktuellen Signale von der Sammelleitung420 oder Vorheriger-Zustand-Signale von der Sammelleitung420 . - Somit veranschaulicht
4 eine Andocktorarchitektur, die ermöglicht, dass zwischen verschiedenen Modulen (z.B.402 und404 ) autonome Teilarrays gebildet werden. Diese Routingressourcen ergänzen die der Vorrichtung zugeordneten standardmäßigen Routingressourcen. Obwohl4 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 Andocktor500 gemäß einem Ausführungsbeispiel der Erfindung. Das Andocktor500 umfasst eine Mehrzahl von Punktverbindungsknoten502 und eine Mehrzahl von Kollektivverbindungsknoten504 . Wie in5 gezeigt ist, umfasst das Andocktor500 „N" Punktverbindungsknoten502 und „n" Kollektivverbindungsknoten. Die Punktverbindungsknoten502 in dem Andocktor500 weisen eine Eins-Zu-Eins-Korrespondenz mit Punktverbindungsknoten in anderen Andocktoren auf. Kollektivverbindungsknoten504 weisen eine Eins-Zu-N-Korrespondenz mit Punktverbindungsknoten in anderen Andocktoren auf; ein Kollektivverbindungsknoten504 in dem Andocktor500 kann nämlich bis zu „N" Punktverbindungsknoten in dem veranschaulichten Andocktor500 oder anderen Andocktoren steuern. N ist eine feststehende Zahl, die entwurfsmäßig in einer programmierbaren Vorrichtung vorgesehen ist. Jeder Kollektivverbindungsknoten504 in dem Andocktor500 ist mit einer Mehrzahl von Punktverbindungsknoten502 in dem Andocktor500 verbunden. Die Punktverbindungsknoten502A , die mit einem gemeinsamen Kollektivverbindungsknoten504A verbunden sind, werden durch diesen gemeinsamen Kollektivverbindungsknoten504A gruppiert. Wenn beispielsweise der gemeinsame Verbindungsknoten504A freigegeben wird, werden gleichzeitig alle gruppierten Punktverbindungsknoten502A freigegeben. Bei einem bevorzugten Ausführungsbeispiel kann eine Gruppe von Punktverbindungsknoten502A , die durch einen gemeinsamen Kollektivverbindungsknoten504A gesteuert wird, nicht neu gruppiert werden. Ein Punktverbindungsknoten502 kann zum Empfangen verschiedener Steuersignale mit mehreren Kollektivverbindungen504 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 Bus506 , eine Verbindung mit einem Modul508 und eine Sammlung von Verbindungen mit Kollektivverbindungsknoten504 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 Bus506 und eine Verbindung mit dem Modul508 und eine Verbindung mit „N" Punktverbindungsknoten502 auf. Die Kollektivverbindungsknoten504 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-Punktverbindungsknoten502 . Der exemplarische Punktverbindungsknoten ist bidirektional mit einem omniversellen Bus506 und einem Modul508 verbunden. Bei einem exemplarischen Ausführungsbeispiel empfängt das Andocktor502 Eingangssignale von allgemeinen Ressourcen des Moduls508 . Die Eingangssignale werden ansprechend auf ein Taktfreigabesignal (OCE) oder ein Taktsignal (OCK) selektiv in ein Flip-Flop602 zwischengespeichert. Ein an einen Multiplexer604 angelegtes Auswahlfreigabesignal (OSEL) bestimmt, welches Signal als Ausgabe aus dem Multiplexer604 getrieben wird, entweder das derzeit von allgemeinen Ressourcen des Moduls508 auf der Leitung601 empfangene Signal oder ein von einem vorherigen Zustand von allgemeinen Ressourcen des Moduls auf der Leitung603 empfangenes Signal. Ein an den Dreizustandspuffer606 angelegtes Ausgangsfreigabesignal (OOE) treibt das Signal von dem Multiplexer604 auf die Sammelleitung506 . Bei einem weiteren exemplarischen Ausführungsbeispiel empfängt das Andocktor502 Eingangssignale von allgemeinen Ressourcen des omniversellen Busses506 . Eingangssignale werden anfänglich in einem Puffer605 gespeichert und anschließend ansprechend auf ein Taktfreigabesignal (ICE) oder ein Taktsignal (ICK) selektiv in ein Flip-Flop608 zwischengespeichert. Ein an einen Multiplexer610 angelegtes Auswahlfreigabesignal (ISEL) bestimmt, welches Signal als Ausgabe von dem Multiplexer610 getrieben wird, entweder das derzeit von dem omniversellen Bus506 auf der Leitung607 empfangene Signal oder ein von einem vorherigen Zustand des omniversellen Busses506 auf der Leitung609 empfangenes Signal. Ein an den Dreizustandspuffer612 angelegtes Ausgangsfreigabesignal (IOE) treibt das Signal von dem Multiplexer610 in das Modul508 . -
7 veranschaulicht ein weiteres exemplarisches Ausführungsbeispiel eines Andocktor-Punktverbindungsknotens502 . Das Ausführungsbeispiel in7 ist im Wesentlichen dasselbe wie das Ausführungsbeispiel in6 , mit der Ausnahme, dass eine Adresse von dem omniversellen Bus506 ansprechend auf ein Taktsignal (ICK) oder ein Adressenzwischenspeicherungsfreigabesignal (ALE) selektiv in ein Flip-Flop702 zwischengespeichert wird. Die Adresse an dem Flip-Flop702 wird dem Modul508 zusätzlich dazu, dass Datensignale bereitgestellt werden, wie oben beschrieben wurde, bereitgestellt. -
8 veranschaulicht einen exemplarischen VPGA-Andocktor-Kollektivverbindungsknoten504 . Der Kollektivverbindungsknoten504 ist dafür verantwortlich, ein Andocktor-Kollektivsteuersignal zu erzeugen. Der Kollektivsteuerknoten504 umfasst Funktionsgeneratoren802 , Flip-Flops804 , Multiplexer806 , Puffer808 und Konfigurationspunkte810 , 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 Eingangsfunktionsgenerator802 zu einem einen Durchzuleitungsmodus, konfiguriert, der ermöglicht, dass ein Signal unverändert hindurchgelangt. Ferner sollten entsprechende Multiplexer806 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 VPGA1000 , das drei CDMA-Finger (CDMA = code division multiplexing array – Codemultiplexzugriff) aufweist, die durch einen omniversellen Bus1002 funktional miteinander verbunden sind. Ein 3 × 3-VPGA1000 ist in vier Funktionen aufgeteilt: (1) eine Mikroprozessorschnittstelle1004 ; (2) zwei Nachverfolgungsfinger1006 ,1008 ; und (3) einen Suchfinger1010 . Die Mikroprozessorschnittstelle1004 ist einem einzigen Modul (1, 0) zugewiesen. Der Nachverfolgungsfinger1006 ist zwei Modulen (2, 1) und (2, 2) zugewiesen. Der Nachverfolgungsfinger1008 ist zwei Modulen (1, 1) und (1, 2) zugewiesen. Der Suchfinger1010 ist zwei Modulen (0, 1) und (0, 2) zugewiesen. Jedes aus zwei Modulen bestehende Teilarray1006 ,1008 ,1010 ist unter Verwendung einer lokalen Interarrayverbindung1012 miteinander verbunden. Die vier Teilarrays sind durch den omniversellen Bus1002 funktional miteinander verbunden. Der omniverselle Bus1002 ist so konfiguriert, dass die Mikroprozessorschnittstelle1004 immer der Bus-Master ist und die drei Finger1006 ,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)
- 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. - 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. - Programmierbare Logikvorrichtung gemäß Anspruch 1 oder 2, bei der ein Kollektivverbindungsknoten durch Konfigurationsprogrammierungsbits, die durch ein Logikmodul bereitgestellt werden, steuerbar ist.
- 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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.
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)
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)
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 |
-
2000
- 2000-05-05 EP EP00935879A patent/EP1177630B1/de not_active Expired - Lifetime
- 2000-05-05 JP JP2000617557A patent/JP2002544699A/ja active Pending
- 2000-05-05 KR KR1020017014232A patent/KR100648909B1/ko not_active IP Right Cessation
- 2000-05-05 AT AT00935879T patent/ATE300121T1/de not_active IP Right Cessation
- 2000-05-05 AU AU51275/00A patent/AU5127500A/en not_active Abandoned
- 2000-05-05 WO PCT/US2000/012477 patent/WO2000069072A1/en active IP Right Grant
- 2000-05-05 DE DE60021375T patent/DE60021375T2/de not_active Expired - Lifetime
- 2000-05-05 CA CA002371077A patent/CA2371077A1/en not_active Abandoned
- 2000-05-05 US US09/565,651 patent/US6333641B1/en not_active Expired - Lifetime
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 |