EP1554805A2 - Einrichtung der programmierbaren logik - Google Patents

Einrichtung der programmierbaren logik

Info

Publication number
EP1554805A2
EP1554805A2 EP03773569A EP03773569A EP1554805A2 EP 1554805 A2 EP1554805 A2 EP 1554805A2 EP 03773569 A EP03773569 A EP 03773569A EP 03773569 A EP03773569 A EP 03773569A EP 1554805 A2 EP1554805 A2 EP 1554805A2
Authority
EP
European Patent Office
Prior art keywords
logic
logic blocks
blocks
reconfigurable
input
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.)
Ceased
Application number
EP03773569A
Other languages
English (en)
French (fr)
Inventor
Christian Siemers
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.)
Siemens AG
Original Assignee
Siemens 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 Siemens AG filed Critical Siemens AG
Publication of EP1554805A2 publication Critical patent/EP1554805A2/de
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17752Structural details of configuration resources for hot reconfiguration
    • 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/17748Structural details of configuration resources
    • H03K19/17756Structural details of configuration resources for partial configuration or partial reconfiguration
    • 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

Definitions

  • the invention relates to a device of programmable logic with a plurality of logic blocks with configurable properties, each of which comprises at least one logic processing unit with function programs and interfaces to the other logic blocks, with at least one input and output unit assigned to the logic blocks and with means for linking the Logic blocks with each other, with the at least one processing unit of another logic block and with the at least one input / output unit.
  • a logic device can be found in US 4,870,302 A.
  • Programmable logic modules from conventional logic devices, such as processors in particular, execute programs that are loaded from a memory.
  • the software to be executed in the form of instruction words is' placed there as a machine instruction.
  • These command words are loaded, analyzed, interpreted and executed in a processing unit. The processing of a single command word triggers a large number of individual actions in the logic device.
  • the basic structure and organization of known digital logic devices, in particular of computers with microprocessors, is based on the concept of the so-called "Von Neumann computer".
  • Its central unit CPU (“Central Processing Unit"), ie its computer core, comprises in its minimal configuration as main components a main memory, a control unit and a processing unit (or arithmetic unit): -
  • the main memory stores command words (program data) and processing data (operant words) and provides these are available upon request. Furthermore, the main Store intermediate and final processing results.
  • Main memories can be implemented by volatile or non-volatile memories.
  • the control unit organizes the order in which command words are processed. It requests command words from the main memory and causes them to be executed in the processing unit. It also analyzes the command words and initiates the delivery of processing data to the processing unit. - The processing unit carries out the operation on the processing data and delivers corresponding result words to the main memory.
  • the processing unit contains a micro-program for each operation, which enables the required transmission paths.
  • the processing unit is controlled by the control unit in the respective type of operation, i.e. to the command to be processed.
  • the central unit is assigned peripheral devices, which can be external memories and input and output devices. The specified main components of the central unit can be physically separated; however, they are usually implemented on a common processor chip with a cache or, for example, an embedded ROM.
  • the linking of its logic blocks relates firstly to the coupling of data outputs to data inputs (routing link) and secondly to the processing of the input data to the output data in the individual logic blocks (logic linkage).
  • the routing link applies both to data that originate from or are led into logic blocks (Logic Elements) and to data that originate from or are routed to I / O pads. In this system of the known embodiment, only data coupling is intended.
  • US Pat. No. 6,333,641 B1 shows a programmable logic device with an array of logic modules or blocks.
  • a connection unit with vertical routing (routing) paths, horizontal routing paths and local routing paths links the logic blocks.
  • An omni (universal) bus (data exchange busbar) is placed over the array, which is linked to the array in such a way that it forms dynamically independent sub-arrays of the logic blocks of variable size, which in turn are connected to the omni-bus.
  • the Linking is established from the outset.
  • data connections are involved, ie an exchange of data.
  • the object of the present invention is therefore to design the programmable logic device with the features mentioned at the outset such that, with a high functional density, a high speed of the PLD can be achieved with simple means.
  • These measures include a reconfigurability of the logic blocks during the entire operation of the logic device in that the linking means additionally have at least one configurable switchover logic block with which a configuration of at least some of the reconfigurable logic blocks themselves and / or their connections to one another and / or their connections with the processing unit and / or their connections with the input / output unit.
  • the configuration can be done at any time, i.e. during the entire, uninterrupted operating period - not just during a start or boot phase.
  • the measures according to the invention thus mean a connection from the switchover logic block to linkage areas and thus to a corresponding configuration thereof. This makes it possible for individual blocks to perform different functions at different times; i.e. their utilization is increased accordingly. Associated with this is a corresponding performance improvement of the entire logic device compared to a microprocessor, or no performance loss in comparison to conventional PLDs.
  • PLDs Like von Neumann processors, PLDs receive two types of information, code and data.
  • the code which basically determines the week of action and is called PLDs configuration or configuration code, is usually loaded before the actual operation and is then immutable during operation.
  • the configuration determines, among other things the connections active in the block.
  • the data can change during operation and thereby also influence the current course of operations. So while the code contains all possible ways, the actual use - this corresponds to the currently running path - is (also) determined by the data.
  • the switching logic block according to the invention also receives code and data.
  • the essence of the invention now exists in controlling the remaining non-rollover PLDs by changing or modifying the code.
  • configurable blocks are connected to one another in such a way that the (runtime-variable) data are interchangeable, for example in the form that data outputs of one block are connected to data inputs of the other are.
  • the outputs of this logic block are at least partially connected to the code area of the configurable logic blocks that is inaccessible in other embodiments during operation.
  • the prior art relates to embodiments in which the configurable logic blocks couple in the data path, but do not have any influence on the code.
  • the switchover logic block can preferably be formed in a level that is different from a level with the reconfigurable logic blocks.
  • a different level of the switchover logic block is understood to mean any level that is not at the same time the level of the reconfigurable logic blocks. This means that the level of the switching logic block can be above, next to or below the level of the reconfigurable logic blocks. These levels can advantageously be at least largely equivalent.
  • the switchover logic block can preferably have at least one status memory which contains information relating to the functions of the individual reconfigurable logic blocks contains, so that the configuration of the selected reconfigurable logic blocks takes place according to the functional information of the current status.
  • FIG. 1 shows the basic structures of four simple, known machine types
  • FIG. 2 shows the basic structure of a so-called "sequential"
  • FIG. 3 the schematic structure of a partially reconfigurable PLD
  • FIG. 4 the schematic structure of a logic device according to the invention.
  • SFSM Simulsion Finite State Machines
  • the model shown here is suitable for defining a sequence of configurations in the PLD, and it is precisely this sequence that can generate a significantly higher functional density (synonymous with drastically reduced costs for production and operation) of a PLD without loss of performance.
  • FSM Finite State Machines
  • An FSM consists of a 6-tuple ⁇ A, X, Y, f, g, an).
  • A ⁇ a 0 , i, ... a M ) is the finite set of states, where a 0 means the starting state.
  • f A x X ⁇
  • A means transition function (Next State Decoder)
  • State coding In the case of synchronous switching mechanisms with synchronized inputs (not for Mealy automat according to FIG. 1d), any codes for the states from Z can be specified. In the Medvedev automaton according to FIG. 1b, however, the codings must match the desired output signals; In the Moore automaton according to FIG. 1c, on the other hand, the codings can be selected such that simplified switching networks for next state decoders (f) and output decoders (g) result.
  • the FSM should be adopted as the basic model.
  • SFSM Sequential Finite State Machine
  • a sequential finite state machine consists of a 5-tuple (B, B 0 , C, V, h).
  • B ⁇ B 0 , ... B ⁇ ) represents a finite set of finite state machines (FSM)
  • B 0 is the start FSM
  • C ⁇ C 0 , ... C ⁇ ) describes a finite set of states for identifying the current FSM.
  • V ⁇ V lr .. V N
  • Vj (vi, ... v L ) i, where Vi € ⁇ 0, 1, - ⁇ . h: B x V — ⁇ B is called FSM transition function (Next FSM decoder).
  • FPGAs Field-Programmable Gate Arrays
  • h u, v, c
  • registers for FSM coding as well as in the reloadable part.
  • the problem here is the loss of performance when reloading. This can be seen from the following example:
  • the popular traffic light as an example for a finite state machine can also be used as an example for a sequential FSM if you think of a night mode.
  • the word mode already shows the way: switching between individual FSMs should be something like a mode change, and day and night mode are mutually exclusive.
  • FSMl now integrates the day traffic light, FSM2 the night traffic light (e.g. yellow flashing for the side streets), and the higher-level sequencer uses a time signal to decide which FSM is to be carried out and which is at rest.
  • the sequencer is implemented as FSM0.
  • Context PLDs (dMC-PLDs) "selected.
  • routing resources are also affected by the switchover, since not only logic, but also connections must lie within the block to be switched over.
  • a PLD block is reconfigurable for the logic device according to the invention Unit consisting of logical processing units with routing resources and interfaces (so-called "routing") to other blocks; this definition corresponds to the partially reconfigurable modules that are common in practice.
  • the definition of this block differs from the usual definition of the logical ones Blocks off.
  • FIG. 3 denotes a partially reconfigurable PLD device or structure
  • this architecture in such a way that - apart from the I / O resources 5 on the outer edge - each PLD block 3A to 3D corresponds to a full CPLD ("Complex PLD") or FPGA.
  • Such architectures already exist, for example " Cypress Delta39k ",” Lattice-Vantis Godfather “architecture; however, they cannot be reconfigured in the operating state of the PLD device.
  • switchover logic block 8 In the dMC-PLD architecture of a logic device 7 according to the invention, which is indicated schematically in FIG. 4, the PLD structure 2 according to FIG. 3 is superimposed by an additional PLD.
  • This extra PLD referred to as switchover logic block 8 is not present in known logic devices and is intended to take over the switchover function h (u, v, c) (cf. FIG. 2). It therefore represents a part of linking means with which at least some of the logic blocks 3A to 3D are configured with one another and / or with the processing unit 4 and / or the input / output unit 5. This means that the outputs in FIG.
  • US Pat. No. 6,011,740 A proposes a method for storing several configuration functions in a shadow RAM, for example as a ring memory and to load the currently required information into a work cell. This procedure guarantees a maximum working speed.
  • a reloadable SRAM cell could also be considered as the actual cell, so that the above-mentioned solution comes into play; however, this means additional effort and possibly a reduction in speed due to the
  • switching means that a choice is made between predetermined programs.
  • Mutual programming can be used for adaptation (evolution) to the respective environment.
  • a simple example can be a digital PLL that adapts a frequency to a master clock by means of runtime effects.

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Logic Circuits (AREA)

Abstract

Die Einrichtung (7) der programmierbaren Logik umfasst mehrere Logikblöcke (3A bis 3D) mit konfigurierbaren Eigenschaften und Mittel zum Verknüpfen der Logikblöcke untereinander und mit einer Verarbeitungseinheit (4) und einer Ein-/Ausgabeeinheit (5). Eine Rekonfigurierbarkeit der Logikblöcke (3A bis 3D) während des Betriebs der Logikeinrichtung (7) ist dadurch gegeben, dass die Verknüpfungsmittel zusätzlich wenigstens einen konfigurierbaren Umschalt-Logikblock (8) aufweisen, mit dem die Konfiguration wenigstens einiger der rekonfigurierbaren Logikblöcke (3A bis 3D) untereinander und/oder mit der Verarbeitungseinheit (4) und/oder der Ein-/Ausgabeeinheit (5) erfolgt.

Description

Beschreibung
Einrichtung der programmierbaren Logik
Die Erfindung bezieht sich auf eine Einrichtung der programmierbaren Logik mit mehreren Logikblöcken mit konfigurierbaren Eigenschaften, die jeweils mindestens eine logische Verarbeitungseinheit mit Funktionsprogrammen und Schnittstellen zu den jeweils anderen Logikblöcken umfassen, mit mindestens einer den Logikblöcken zugeordneten Eingabe- und Ausgabeeinheit sowie mit Mitteln zum Verknüpfen der Logikblöcke untereinander, mit der mindestens einen Verarbeitungseinheit eines anderen Logikblocks und mit der mindestens einen Ein-/Aus- gabeeinheit. Eine derartige Logikeinrichtung ist der US 4,870,302 A zu entnehmen.
Programmierbare logische Bausteine von herkömmlichen Logikeinrichtungen wie insbesondere Prozessoren führen Programme aus, die aus einem Speicher geladen werden. Die auszuführende Software in Form von Befehlswörtern ist dort' als Maschinenbefehl abgelegt. Diese Befehlswörter werden geladen, analysiert, interpretiert und in einer Verarbeitungseinheit ausgeführt. Dabei löst die Verarbeitung eines einzigen Befehlswortes eine Vielzahl von Einzelaktionen in der Logikeinrichtung aus.
Die Basisstruktur und -Organisation bekannter digitaler Logikeinrichtungen, insbesondere von Computern mit Mikroprozessoren, beruht auf der Konzeption des sogenannten "Von- Neumann-Rechners". Dessen Zentraleinheit CPU ("Central Processing Unit"), d.h. dessen Computerkern, umfasst in ihrer Minimalkonfiguration als Hauptbestandteile einen Hauptspeicher, eine Steuereinheit und eine Verarbeitungseinheit (bzw. Rechenwerk) : - Der Hauptspeicher speichert Befehlswörter (Programmdaten) und Verarbeitungsdaten (Operantenwörter) und stellt diese auf Aufforderung zur Verfügung. Ferner nimmt der Haupt- Speicher Zwischen- und Endresultate der Verarbeitung auf. Hauptspeicher können durch flüchtige oder nicht-flüchtige Speicher realisiert werden.
Die Steuereinheit organisiert die Reihenfolge, in der Be- fehlswörter abgearbeitet werden. Sie fordert Befehlswörter aus dem Hauptspeicher an und veranlasst deren Ausführung in der Verarbeitungseinheit. Außerdem analysiert sie die Befehlswörter und veranlasst die Lieferung von Verarbeitungsdaten an die Verarbeitungseinheit. - Die Verarbeitungseinheit führt die Operation an den Verarbeitungsdaten aus und liefert entsprechende Resultatwörter an den Hauptspeicher. Für jede Operation enthält die Verarbeitungseinheit ein Mikroprogramm, das die benötigten Übertragungswege freischaltet. Die Verarbeitungseinheit wird durch die Steuereinheit auf die jeweilige Operationsart, d.h. auf den abzuarbeitenden Befehl, eingestellt. Der Zentraleinheit sind Peripheriegeräte zugeordnet, bei denen es sich um externe Speicher sowie um Ein- und Ausgabegeräte handeln kann. Die angegebenen Hauptkomponenten der Zentraleinheit können physikalisch getrennt sein; zumeist sind sie jedoch auf einem gemeinsamen Prozessorchip mit einem Cache oder beispielsweise einem embedded ROM realisiert.
Eine genauere Betrachtung der Programmierung einer solchen programmierbaren Logikeinrichtung PLD ( "Programmable Logic Device") mit den erwähnten Grundkomponenten des Von-Neumann Rechners zeigt, dass das Programm sowie die Initialisierungsdaten im preiswerten Speicher (mit minimal 1 Transistor pro Speicherzelle) untergebracht sind und erst dann in die CPU zur Ausführung gelangen, wenn sie an der Reihe sind. Die preiswerte Speicherung einerseits und die "Wiederverwendung" der aufwendigeren CPU-Schaltkreise wie ALU ("Arithmetic Logic Unit") für alle möglichen Instruktionen andererseits sind die positiven Beiträge zu einer sogenannten "funktionalen Dichte" der Prozessor-basierten Rechner. Hierbei ergibt die zeitliche Sequenz der Bearbeitung natürlich einen negativen Beitrag. Die funktionale Dichte kann dabei als mittlere Anzahl von aktiven Gatteräquivalenten pro Siliziumfläche und Zeit definiert werden.
Bei bekannten programmierbaren Logikeinrichtungen (PLDs) mit Rechenkapazität, Speicher und Ein- und Ausgabeeinheit I/O ( "Input/Output" ) , wie sie z.B. aus der eingangs genannten USA-Schrift zu entnehmen ist, wird deren Struktur einmal programmiert, und der Programm- (wie Daten-) Inhalt wird an der Struktur selbst gespeichert. Diese Form der Speicherung ist aufwendig, denn um den Speicher selbst müssen zwecks schneller Umsetzung in geschaltete Datenpfade eine Menge von zusätzlichen Transistoren hinzukommen. Es existieren zwar nur wenige Angaben über die Ausnutzung des Siliziums; man sollte von Faktoren 20 bis 40 im Verhältnis Gesamtzahl/sichtbarer Transistorkapazität (im Sinne der Schaltfunktion) ausgehen. Bei der bekannten Ausführungsform einer Logikeinrichtung bezieht sich die Verknüpfung ihrer Logikblöcke erstens auf die Kopplung von Datenausgängen auf Dateneingänge (Routing- Verknüpfung) und zweitens auf die Verarbeitung der Eingangsdaten zu den Ausgangsdaten in den einzelnen Logikblöcken (Logik-Verknüpfung) . Die Routing-Verknüpfung gilt sowohl für Daten, die aus Logikblöcken (Logic Elements) stammen bzw. in diese geführt werden, als auch für solche, die aus I/O-Pads stammen bzw. in diese geleitet werden. In diesem System der bekannten Ausführungsform ist ausschließlich an eine Datenkopplung gedacht.
Aus der US 6,333,641 Bl geht eine programmierbare Logikein- richtung mit einem Array von Logikmodulen oder -blocken hervor. Eine Verbindungseinheit mit vertikalen Routing (Leitweg- ) Bahnen, horizontalen Routing-Bahnen und lokalen Routing- Bahnen verknüpft die Logikblöcke. Ein Omni- (universeller) Bus (Datenaustauschsammeischiene) ist über das Array gelegt, der mit dem Array derart verknüpft ist, dass dieser dynamisch selbständige Sub-Arrays der Logikblöcke mit variabler Größe bildet, die ihrerseits mit dem Omni-Bus verbunden sind. Die Verknüpfung ist dabei von vornherein festgelegt. Auch hier handelt es sich wie im Fall der US 4,870,302 A um Datenverbindungen, d.h. um einen Austausch von Daten.
Da die Programmierbarkeit in Form eines Speichers mit Umsetzung in geschaltete Datenpfade recht teuer ist, wie im Fall des Rechners aber bislang das komplette Programm im Baustein lagert, erreichen die PLDs trotz Potenzials für hohe funktionale Dichte "nur" den Faktor 10 mehr als Prozessoren. Das be- deutet, dass der Geschwindigkeitsgewinn in PLDs gegenüber Prozessorlösungen teuer erkauft ist.
Aufgabe der vorliegenden Erfindung ist es deshalb, die programmierbare Logikeinrichtung mit den eingangs genannten Merkmalen dahingehend auszugestalten, dass bei hoher funktio- neller Dichte eine hohe Geschwindigkeit des PLDs mit einfachen Mitteln zu erreichen ist.
Diese Aufgabe wird erfindungsgemäß mit den in Anspruch 1 an- gegebenen Maßnahmen gelöst. Diese Maßnahmen umfassen eine Re- konfigurierbarkeit der Logikblöcke während des gesamten Betriebs der Logikeinrichtung dadurch, dass die Verknüpfungsmittel zusätzlich wenigstens einen konfigurierbaren Umschalt- Logikblock aufweisen, mit dem eine Konfiguration wenigstens einiger der rekonfigurierbaren Logikblöcke selbst und/oder ihrer Verbindungen untereinander und/oder ihrer Verbindungen mit der Verarbeitungseinheit und/oder ihrer Verbindungen mit der Ein-/Ausgabeeinheit erfolgt.
Die mit einer solchen Architektur verbundenen Vorteile sind insbesondere darin zu sehen, dass bei begrenzter Anzahl von nunmehr rekonfigurierbaren Logikblöcken neben einer Konfiguration der Blöcke selbst auch die Verbindungen zwischen diesen Blöcken und/oder zu externen Bausteinen wie Speicherein- heiten oder Mikroprozessoren wie z.B. zu der Verarbeitungs- einheit und/oder zu der Ein-/Ausgabeeinheit nicht ein für alle Male fest vorgegeben sind, sondern dass diese Verbindungen mit Hilfe des zusätzlich vorgesehenen Umschalt-Logikblocks während des gesamten Betriebs bedarfsmäßig erstellt, d.h. konfiguriert werden können. Eine derartige Konfiguration mittels des Umschalt-Logikblocks kann als eine Verknüpfungsope- ration der erfindungsgemäß ausgestalteten Verknüpfungsmittel angesehen werden.
Die Konfiguration kann dabei jederzeit, d.h. während der gesamten, ununterbrochenen Betriebsdauer - also nicht nur wäh- rend einer Start- oder Boot-Phase - vorgenommen werden. Die erfindungsgemäßen Maßnahmen bedeuten also eine Verbindung von dem Umschalt-Logikblock zu Verknüpfungsbereichen und damit zu einer entsprechenden Konfiguration derselben. Damit wird es ermöglicht, dass von einzelnen Blöcken unterschiedliche Funk- tionen zu unterschiedlichen Zeitpunkten auszuführen sind; d.h., deren Ausnutzung wird entsprechend erhöht. Damit verbunden ist eine entsprechende Performance-Verbesserung der gesamten Logikeinrichtung, verglichen mit einem Mikroprozessor, bzw. kein Performance-Verlust im Vergleich zu herkömmli- chen PLDs.
PLDs erhalten - wie von-Neumann-Prozessoren - zwei Arten von Informationen, Code und Daten. Der Code, der grundsätzlich die Aktionswoche bestimmt und bei PLDs Konfiguration bzw. Konfigurationscode genannt wird, wird üblicherweise vor dem eigentlichen Betrieb geladen und ist dann während des Betriebs unveränderlich. Die Konfiguration bestimmt u.a. die im Baustein aktiven Verbindungen.
Die Daten können sich während des Betriebs verändern und dadurch auch den aktuellen Verlauf der Operationen beeinflussen. Während also der Code alle möglichen Wegen beinhaltet, wird die tatsächliche Nutzung - dies entspricht dem aktuell durchlaufenden Pfad - (auch) von den Daten bestimmt.
Der Umschalt-Logikblock nach der Erfindung erhält ebenfalls Code und Daten. Das Wesentliche der Erfindung besteht nun darin, die übrigen, Nicht-Umsehalt-PLDs, zu steuern, und zwar durch Wechseln bzw. Modifizieren des Codes.
Bei dem genannten Stand der Technik sowie bei den in der Pra- xis üblichen PLDs werden konfigurierbare Blöcke dadurch miteinander verbunden, dass die (Laufzeit-variablen) Daten austauschbar sind, also etwa in der Form, dass Datenausgänge des einen Blocks mit Dateneingängen des anderen verbunden sind. Bei dem erfindungsgemäßen Umschalt-Logikblock ist es jedoch so, dass die Ausgänge dieses Logikblocks zumindest partiell an den in anderen Ausführungsformen im Betrieb unzugänglichen Codebereich der konfigurierbaren Logikblöcke angeschlossen sind. Demgegenüber bezieht sich der Stand der Technik auf Ausführungsformen, bei denen die konfigurierbaren Logikblöcke im Datenpfad koppeln, nicht jedoch auf den Code Einfluss haben.
Vorteilhafte Ausgestaltungen der erfindungsgemäßen Logikeinrichtung gehen aus den abhängigen Ansprüchen hervor.
So kann bevorzugt der Umschalt-Logikblock in einer Ebene ausgebildet sein, die von einer Ebene mit den rekonfigurierbaren Logikblöcken verschieden ist. Unter einer verschiedenen Ebene des Umschalt-Logikblocks wird dabei jede Ebene verstanden, die nicht gleichzeitig die Ebene der rekonfigurierbaren Logikblöcke ist. D.h., die Ebene des Umschalt-Logikblocks kann über, neben oder unter der Ebene der rekonfigurierbaren Logikblöcke liegen. Dabei können diese Ebenen vorteilhaft zumindest weitgehend äquivalent aufgebaut sein.
Weiterhin ist es von Vorteil, wenn die Konfiguration wenigstens einiger der rekonfigurierbaren Logikblöcke einem vorgegebenen Kontext entsprechend erfolgt .
Ferner kann bevorzugt der Umschalt-Logikblock wenigstens einen Zustandsspeieher aufweisen, der Informationen bezüglich der Funktionen der einzelnen rekonfigurierbaren Logikblöcke enthält, so dass die Konfiguration der ausgewählten rekonfi- gurierbaren Logikblöcke gemäß den Funktionsinformationen des aktuellen Zustands erfolgt.
Die den erfindungsgemäßen Maßnahmen zu Grunde liegenden Überlegungen werden nachfolgend unter Bezugnahme auf die Zeichnung noch weiter erläutert. Dabei zeigen deren Figur 1 die Grundstrukturen von vier einfachen, bekannten Automatentypen, deren Figur 2 die Grundstruktur einer sogenannten "Sequential
Finite State Machine", deren Figur 3 den schematischen Aufbau einer partiell rekon- figurierbaren PLD und deren Figur 4 den schematischen Aufbau einer erfindungsgemäßen Logikeinrichtung.
Im Folgenden werden aus den Maschinen vom sogenannten "Finite State"-Typ die sogenannten "Sequential Finite State Machines" (SFSM) abgeleitet. Das hierfür aufgezeigte Modell ist dazu geeignet, eine Sequenz von Konfigurationen im PLD zu definieren, und genau diese Sequenz kann ohne Performance-Verlust eine wesentlich höhere funktionale Dichte (gleichbedeutend mit drastisch gesenkten Kosten für Herstellung und Betrieb) eines PLDs erzeugen.
Abschnitt I ("Sequential Finite State Machines")
Eines der "klassischen" Denkmodelle für eine Hardwareentwick- lung besteht in den einfachen endlichen Automaten, im Folgenden "Finite State Machines " (FSM) genannt.
Dieses eng mit theoretischen Konzepten (insbesondere des sogenannten „Deterministischen endlichen Automaten") verwandte Modell ist exakt wie folgt definiert: Definition 1:
Eine FSM besteht aus einem 6-Tupel {A, X, Y, f, g, an) . A = { a0, i, ... aM) ist hierbei die endliche Menge der Zustände, wobei a0 den Startzustand bedeutet.
X = {∑χ, . . Xκ} ist die endliche Menge der Eingangs ektoren mit Xi = (xi, . . i i wobei Xi G {0, 1, -} . Y = (Yi, • - YN) ist die endliche Menge der Ausgangsvektoren mit Yσ = (yx, . . yH)j, wobei γh G {0, 1, -}. f : A x X → A heißt Transitionsfunktion (Next State Decoder) , g: A x X → Y heißt Ausgangsfunktion (Output Decoder) , t = Zeiteinheit.
Die in dieser Definition genannten Funktionen werden durch
Schaltnetze realisiert, die den algorithmischen Zusammenhang zwischen den (im Wesentlichen binären) Eingangs- und Zu- standsvektoren darstellen. Hierzu ist allerdings notwendig, dass auch die Zustände binär codiert werden, was in Definiti- on 1 noch nicht der Fall war.
Für die Zustandsautomaten werden weiterhin drei wesentliche Untertypen (siehe Figur 1) unterschieden, deren Einfluss auf die Komplexität der Funktionen in der Praxis gegeben ist. Ein Entwickler wird folgende Schritte durchführen:
1. Festlegen der Signale: Das Schaltwerk wird als „Black Box" mit den erforderlichen Eingangs- und Ausgangssignalen skizziert. 2. Entwerfen des Zustandsdiagramms : Dieser Schritt ist der eigentliche Kern der Synthese, da hier das zu lösende Problem formal beschrieben wird. Als Zustandsdiagramm sind Zustandsgraphen, Programmablaufpläne oder auch Schaltwerktabellen möglich. 3. Aufstellen der Schal twerktabelle als formaler Ausgangspunkt für alle weiteren Operationen. 4. Zustandsminimierung: Die Minimierung der Anzahl der Zustände soll eine Vereinfachung des Designs erreichen.
5. Zustandscodierun : Bei synchronen Schaltwerken mit synchronisierten Eingängen (nicht für Mealy-Automat gemäß Figur ld) lassen sich beliebige Codierungen für die Zustände aus Z angeben. Beim Medwedjew-Automat gemäß Figur 1b müssen die Codierungen allerdings mit den gewünschten AusgangsSignalen übereinstimmen; beim Moore-Automat gemäß Figur lc hingegen können die Codierungen so gewählt wer- den, dass sich vereinfachte Schaltnetze für Next State Decoder (f) und Output Decoder (g) ergeben.
6. Berechnung von Folgezustands- und Ausgangs schal tnetzen : Zur konkreten Berechnung des Folgezustandsschaltnetzes muss ein Register- bzw. Flipfloptyp gewählt werden, da deren Eingänge (T, D, RS oder JK) durch dieses Schaltnetz belegt werden, aber unterschiedliche Funktionalitäten zeigen.
7. Realisierung des Schal twerks und Test
Aus der Praxis weiß man nun, dass die Implementierung als einfache Maschine - man könnte sie auch als „flache Maschine" bezeichnen - nicht unbedingt die beste ist. Ein kooperierender Automat, bestehend aus mehreren einfachen Automaten, die miteinander gekoppelt sind, kann dies häufig wesentlich bes- ser im Sinne von flächeneffizienter. Zudem sollte bedacht werden, dass der vorstehend skizzierte Designfluss nicht unbedingt in der angegebenen Weise durchgeführt werden muss . Gerade mit zunehmender Beschreibung in Hochsprachen wie VHDL ist eine Hinwendung zu mehr algorithmischem Stil zu erkennen.
Unabhängig davon soll jedoch die FSM als das grundlegende Modell angenommen werden. Man kann sich nun vorstellen, nicht nur eine FSM zu haben, sondern mehrere, von denen exakt eine zu einem Zeitpunkt aktiv ist. Ein ausgezeichneter Teil (der sogenannte „Sequencer") schaltet dann in Abhängigkeit von
EingangsSignalen oder erreichten Resultaten zwischen den einzelnen FSMs um. Ausgehend von dieser FSM wird nachfolgend die Sequential Finite State Machine (SFSM) korrekt definiert und dargestellt :
Definition 2 :
Eine Sequential Finite State Machine (SFSM) besteht aus einem 5-Tupel (B, B0, C, V, h) . Hierbei stellt B = {B0, ... Bκ) eine endliche Menge von Finite State Machines (FSM) dar, B0 ist die Start-FSM. C = { C0, ... Cκ) beschreibt eine endliche Menge von Zuständen zur Kennt- lichmachung der aktuellen FSM. V = { Vl r .. VN) ist die endliche Menge der (zusätzlichen) Eingangsvektoren mit Vj = (vi, ... vL) i, wobei Vi € {0, 1, -}. h : B x V —ϊ B heißt FSM-Transitionsfunktion (Next FSM Decoder) .
Der wesentliche Vorteil dieser SFSM (vgl. hierzu auch Figur 2) liegt erst einmal in der Modellierung. Ein Designer hat die Chance, sein Design in kleinere Portionen zu teilen. In der technischen Ausführung wird man dann versuchen, die (weiterhin endliche) Menge der Zustände aus allen FSMs Bk auf eine einheitliche Zustandscodierung abzubilden. Zusätzlich hierzu muss eine Codierung für die Ck der aktuellen FSM Bk mitgeführt werden, um für die Funktion h die Berechnung der nächsten FSM zu ermöglichen.
Andererseits zeigt ein Blick auf Figur 2, dass eigentlich nur wenig gewonnen ist. Falls der Takt für alle Register identisch ist, dann wurden in Figur la die Register und das Schaltnetz f(u*, x*) (Next State Decoder), * bedeutet Gesamtmenge) in Teilmengen von Registern mit f (u, x, c) und h(u, v, c) eingeteilt, die in der Realisierung wieder zusammengeführt werden. Minimaler wird die Lösung dadurch kaum, denn in einem PLD heutiger Bauart müssen alle Teile, also alle Teil-FSM, auf dem Baustein integriert werden. Hier setzen nun die erfindungsgemäßen Überlegungen an. Es existieren zwar wenige FPGAs („Field-Programmable Gate Ar- rays"; vgl. z.B. „Spektrum der Wissenschaft", August 1997, Seiten 44 bis 49) , die dynamisch rekonfigurierbar sind, jedoch nur partiell . Diese rekonfigurierbare Eigenschaft könnte man ausnutzen, indem in einem permanenten Teil h (u, v, c) und die Register zur FSM-Codierung sowie im nachladbaren Teil die aktuelle FSM geladen und ausgeführt werden. Das Problem hierbei ist der Performanceverlust beim Nachladen. Dies ist aus dem nachfolgenden Beispiel ersichtlich:
Beispiel
Die gern genommene Straßenverkehrsampel als Beispiel für eine Finite State Machine kann auch sehr gut als Beispiel , für eine Sequential FSM genommen werden, wenn man an einen Nachtmodus denkt . Das Wort Modus zeigt schon den Weg: Im Umschalten zwischen einzelnen FSMs sollte so etwas wie ein Moduswechsel liegen, und Tag- und Nachtmodus schließen sich nun einmal gegenseitig aus.
FSMl integriert nun die Tagampel, FSM2 die Nachtampel (z.B. gelbes Blinken für die Nebenstraßen) , und im übergeordneten Sequencer wird an Hand eines Zeitsignals entschieden, welche FSM zur Ausführung kommt und welche ruht. Der Sequencer wird als FSM0 implementiert.
Die Beschreibung für hierfür erforderliche drei FSM (0 .. 2) wird getrennt durchgeführt, dann aber auf einem PLD integriert, so dass im Bereich 0 die FSM0, 1 FSMl und 2 FSM2 liegen würde. Ein Flächengewinn wäre damit nicht zu verzeichnen.
Im nachladbaren Fall müsste FSM0 permanent zur Verfügung stehen, außerdem ein Bereich, der das Maximum von {FSMl, FSM2} aufnehmen könnte. In diesen Bereich wäre dann ständig eine von zweien geladen, und das Umschalten würde eine Rekonfiguration nach sich ziehen. Zur Verdeutlichung des Vorteils bei dynamisch rekonfigurier- baren PLDs, wie sie Logikeinrichtungen nach der Erfindung darstellen, wird die Übergangsfunktion f (u, x, c) (vgl. Figur 2) nunmehr als fc(u, x) (Äquivalentes gilt für Funktion g) bezeichnet. Mit dieser Darstellung soll die Unterschiedlichkeit in der Abhängigkeit demonstriert werden: u und x bewirken eine ständige, mit dem Takt verbundene Fortentwicklung des Zustands der Maschine, während c die Abhängigkeit vom we- sentlich selteneren Moduswechsel beschreibt.
Die Rekonfiguration selbst würde vergleichsweise viel Zeit in Anspruch nehmen; es wurde nun erkannt, dass eine wesentlich günstigere Lösung in einer erweiterten Architektur von PLDs besteht, in denen zugleich mehrere Programme dynamisch umschaltbar gespeichert sind. Eine entsprechende Logikeinrichtung könnte als Multi-Plane-PLD bezeichnet werden; um jedoch dem Aspekt des jeweiligen „Kontext" Rechnung zu tragen und darzustellen, dass auch nur Teilbereiche von Umschaltvorgän- gen betroffen sind, wird hier der Name „Dynamical Multi-
Context PLDs (dMC-PLDs) " gewählt.
Abschnitt II ( Erfindungsgemäße Architektur von „Dynamical Multi-Context PLDs")
Zunächst sei ein Problem angesprochen, dass sowohl für klassische dynamisch rekonfigurierbare als auch für dMC-PLDs gilt. Wird nämlich lediglich ein Teilbereich umgeschaltet, müssen dessen Schnittstellen nach außen hin, also insbesonde- re in Richtung der verbleibenden Teile, konstant bleiben.
Zugleich sind einige Funktionsprogramme (sogenannte „Routingressourcen") von dem Umschalten mit betroffen, da innerhalb des umzuschaltenden Blocks nicht nur Logik, sondern auch Verbindungen liegen müssen.
Konsequenterweise wird im Folgenden für die erfindungsgemäße Logikeinrichtung ein PLD-Block als eine rekonfigurierbare Einheit, bestehend aus logischen Verarbeitungseinheiten mit Routingressourcen und Schnittstellen (sogenanntes „Routing") zu anderen Blöcken definiert; diese Definition stimmt mit den in der Praxis üblichen, partiell rekonfigurierbaren Baustei- nen überein. Die Definition dieses Blocks weicht dabei von der üblichen Definition der logischen Blöcke ab.
Wenn man sich jetzt einmal einen fiktiven PLD mit solchen Blöcken anschaut, erhält man eine Architektur, wie sie aus Figur 3 hervorgeht. In der Figur sind bezeichnet mit 2 eine partiell rekonfigurierbare PLD-Einrichtung bzw. -Struktur, mit 3A bis 3D vier PLD-Blöcke (= Logikblöcke) , mit 4 ein (globales) Routing, das eine Verarbeitungseinheit mit Funktionsprogrammen und Schnittstellen zu den Blöcken bildet, sowie mit 5 ein I/O-Bereich, der Mittel zum Verknüpfen der Logikblöcke mit der Verarbeitungseinheit und einer Ein-/und Ausgabeeinheit darstellt. Man kann sich diese Architektur so vorstellen, dass - einmal abgesehen von den I/O-Ressourcen 5 am Außenrand - jeder PLD-Block 3A bis 3D einem vollwertigen CPLD („Complex PLD") oder FPGA entspricht. Derartige Architekturen existieren bereits, z.B. „Cypress Delta39k", „Lattice-Vantis Godfather"-Architektur; sie sind jedoch nicht im Betriebszustand der PLD-Einrichtung rekonfigurierbar.
Bei der in Figur 4 schematisch angedeuteten dMC-PLD-Archi- tektur einer Logikeinrichtung 7 nach der Erfindung wird die PLD-Struktur 2 nach Figur 3 durch einen zusätzlichen PLD überlagert. Dieser als Umschalt-Logikblock 8 bezeichnete Extra-PLD ist bei bekannten Logikeinrichtungen nicht vorhan- den und soll die Umsehaltfunktion h (u, v, c) (vgl. Figur 2) übernehmen. Er stellt folglich einen Teil von Verknüpfungsmitteln dar, mit denen die Konfiguration wenigstens einiger der Logikblöcke 3A bis 3D untereinander und/oder mit der Verarbeitungseinheit 4 und/oder der Ein-/Ausgabeeinheit 5 er- folgt. Dies bedeutet, dass die Ausgänge in Figur 4 einem gespeicherten Kontext c entsprechen und die Auswahl der aktuellen Funktionen fc(u, x) und gc(u, x) steuern. Für diesen Extra-PLD ergibt sich damit eine Struktur, die aus vielen Eingängen ( u, x) wenige, ausschließlich gespeicherte Ausgänge berechnet .
Die sich aus diesem Aufbau ergebenden Vorteile sind darin zu sehen, dass die funktionale Dichte und damit die Ausnutzbarkeit gesteigert werden bzw. die Kosten pro Anwendung zu senken sind. Folgende grobe Abschätzung kann dafür gegeben wer- den:
Es sei angenommen, dass die Ausnutzung der verwendeten Transistoren 1:20 ist; d.h., von 20 eingesetzten Transistoren ist tatsächlich nur einer in der (programmierbaren) logischen Funktion sichtbar. Für den Extra-PLD 8 lassen sich 20 %
Overhead veranschlagen, da es sich um einen Logikblock handelt, der nicht zur eigentlichen Funktionalität beiträgt, sondern nur die anderen Blöcke 3A bis 3D umschaltet. Für die Speicherung und Decodierung der zusätzlichen Programme (es werden lediglich 4 gespeicherte Funktionen pro PLD-Block angenommen) werden weitere 6 Transistoren berechnet (4 Transistoren zur Speicherung und 2 zur Auswahl 1 aus 4) . Daraus ergibt sich eine neue Ausnutzung von 4:30, mithin eine Steigerung der Dichte gegenüber bekannten Ausführungsformen um 166 %.
Gegebenenfalls könnte sich eine Schwierigkeit dadurch ergeben, dass sich auf Grund mehrerer Konfigurationen, aus denen eine aktuelle auszuwählen ist, der kritische Pfad innerhalb eines PLD-Blocks um einen Transistor verlängern kann, was mit der Erniedrigung der maximalen Taktfrequenz einhergehen würde. Hierzu muss zwischen sogenannter SRAM-basierten Speicherung einerseits und sogenannter FLASH-EEPROM bzw. Anti-Fuse andererseits unterschieden werden.
Für SRAM-basierte Verfahren wird mit der US 6,011,740 A ein Verfahren vorgeschlagen, die Speicherung mehrerer Konfigura- tionen in einem Schatten-RAM z.B. als Ringspeicher zu realisieren und die aktuell benötigte Information in eine Arbeitszelle zu laden. Dieses Verfahren garantiert eine maximale Arbeitsgeschwindigkeit .
Für Flash- und Antifuse-Speicherung könnte als eigentliche Zelle ebenfalls eine nachladbare SRAM-Zelle in Betracht kommen, so dass die obengenannte Lösung zum Tragen kommt; dies bedeutet jedoch einen zusätzlichen Aufwand und möglicherweise eine Verringerung der Geschwindigkeit, bedingt durch den
Technologiewechsel bei der Speicherung. Bei diesen Technologien wird tatsächlich ein weiterer Path-Transistor, der den aktuellen Kontext decodiert, im Pfad eingeführt, gegebenenfalls in Form von Dual-Gate-FETs .
Die genaue Einteilung, welche Blockgröße und Extra-PLD-Größe für die Vielzahl an Anwendungen von Vorteil sind, kann durch Simulationen an Beispielen ermittelt werden.
Zu einer Realisierung einer erfindungsgemäßen Logikeinrichtung nach Figur 4 kann man sich vorstellen, dass die beiden schematisch dargestellten Schichten, nämlich die mit dem Extra-PLD 8 (= Umschalt-Logikblock) und die mit den Logikblöcken 3A bis 3D, jeweils in einer Ebene E2 bzw. El und bevorzugt zumindest weitgehend äquivalent sind und sich nicht nur gegenseitig umschalten, sondern vielmehr auch die Programmierung des jeweils anderen Teils erzeugen. Umschaltung bedeutet in diesem Fall, dass zwischen vorbestimmten Programmen ausgewählt wird. Gegenseitige Programmierung hingegen kann zur An- passung (Evolution) an die jeweilige Umgebung genutzt werden.
Ein einfaches Beispiel kann eine digitale PLL sein, die eine Frequenz mittels Laufzeiteffekten an einen Mastertakt an- passt .

Claims

Patentansprüche
1. Einrichtung der programmierbaren Logik
- mit mehreren Logikblöcken mit konfigurierbaren Eigenschaf- ten, die jeweils mindestens eine Verarbeitungseinheit mit
Funktionsprogrammen und Schnittstellen zu den jeweils anderen Logikblöcken umfassen,
- mit mindestens einer den Logikblöcken zugeordneten Ein- /Ausgabeeinheit, und
- mit Mitteln zum Verknüpfen der Logikblöcke a) untereinander, b) mit mindestens einer der Verarbeitungseinheiten eines anderen Logikblocks und c) mit der mindestens einen Ein-/Ausgabeeinheit, g e k e n n z e i c h n e t durch eine Rekonfigurierbarkeit der Logikblöcke (3A bis 3D) während des gesamten Betriebs der Logikeinrichtung (7) dadurch, dass die Verknüpfungsmittel zu- sätzlich wenigstens einen konfigurierbaren Umschalt-
Logikblock (8) aufweisen, mit dem eine Konfiguration wenigstens einiger der rekonfigurierbaren Logikblöcke (3A bis 3D) selbst und/oder ihrer Verbindungen untereinander und/oder ihrer Verbindungen mit der mindestens einen Verarbeitungsein- heit(4) und/oder ihrer Verbindungen der mindestens einen Ein- /Ausgabeeinheit (5) erfolgt.
2. Einrichtung nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t , dass der Umschalt-Logikblock (8) in einer Ebene (E2) ausgebildet ist, die von einer Ebene (El) mit den rekonfigurierbaren Logikblöcken (3A bis 3D) verschieden ist.
3. Einrichtung nach Anspruch 2, d a d u r c h ' g e - k e n n z e i c h n e t , dass die Ebenen (El, E2 ) zumindest weitgehend äquivalent aufgebaut sind.
4. Einrichtung nach einem der vorangehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t , dass die Konfiguration wenigstens einiger der rekonfigurierbaren Logikblöcke (3A bis 3D) einem vorgegebenen Kontext (c) entspre- chend erfolgt.
5. Einrichtung nach einem der vorangehenden Ansprüche, d a du r c h g e k e n n z e i c h n e t , dass der Umschalt-Logikblock (8) wenigstens einen Zustandsspeicher auf- weist, der Informationen bezüglich der Funktionen der einzelnen rekonfigurierbaren Logikblöcke (3A bis 3D) enthält, und dass die Konfiguration der ausgewählten rekonfigurierbaren Logikblöcke gemäß den Funktionsinformationen des ausgewählten Zustands erfolgt.
EP03773569A 2002-10-24 2003-10-23 Einrichtung der programmierbaren logik Ceased EP1554805A2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10249676 2002-10-24
DE10249676 2002-10-24
PCT/DE2003/003524 WO2004040766A2 (de) 2002-10-24 2003-10-23 Einrichtung der programmierbaren logik

Publications (1)

Publication Number Publication Date
EP1554805A2 true EP1554805A2 (de) 2005-07-20

Family

ID=32102969

Family Applications (1)

Application Number Title Priority Date Filing Date
EP03773569A Ceased EP1554805A2 (de) 2002-10-24 2003-10-23 Einrichtung der programmierbaren logik

Country Status (5)

Country Link
US (1) US7161383B2 (de)
EP (1) EP1554805A2 (de)
JP (1) JP4160956B2 (de)
DE (1) DE10347975B4 (de)
WO (1) WO2004040766A2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101198346B1 (ko) * 2003-04-08 2012-11-06 노보 노르디스크 에이/에스 크로마토그래피 고정상의 재생
DE102005005073B4 (de) 2004-02-13 2009-05-07 Siemens Ag Rechnereinrichtung mit rekonfigurierbarer Architektur zur parallelen Berechnung beliebiger Algorithmen
US8612772B1 (en) 2004-09-10 2013-12-17 Altera Corporation Security core using soft key
US8566616B1 (en) * 2004-09-10 2013-10-22 Altera Corporation Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like
US20090128189A1 (en) * 2007-11-19 2009-05-21 Raminda Udaya Madurawe Three dimensional programmable devices
US8327126B2 (en) 2008-08-25 2012-12-04 International Business Machines Corporation Multicore processor and method of use that adapts core functions based on workload execution
US9349288B2 (en) 2014-07-28 2016-05-24 Econolite Group, Inc. Self-configuring traffic signal controller

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6255848B1 (en) * 1999-04-05 2001-07-03 Xilinx, Inc. Method and structure for reading, modifying and writing selected configuration memory cells of an FPGA

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US6346824B1 (en) * 1996-04-09 2002-02-12 Xilinx, Inc. Dedicated function fabric for use in field programmable gate arrays
US6091263A (en) * 1997-12-12 2000-07-18 Xilinx, Inc. Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM
US6011740A (en) * 1998-03-04 2000-01-04 Xilinx, Inc. Structure and method for providing additional configuration memories on an FPGA
JP2002544699A (ja) * 1999-05-07 2002-12-24 モーフィックス テクノロジー インコーポレイテッド プログラム可能なゲートアレイ内で可変サイズの自立的サブアレイをダイナミックに定義するための装置および方法
US20020143505A1 (en) * 2001-04-02 2002-10-03 Doron Drusinsky Implementing a finite state machine using concurrent finite state machines with delayed communications and no shared control signals
US6747478B2 (en) * 2002-07-08 2004-06-08 Viciciv Field programmable gate array with convertibility to application specific integrated circuit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6255848B1 (en) * 1999-04-05 2001-07-03 Xilinx, Inc. Method and structure for reading, modifying and writing selected configuration memory cells of an FPGA

Also Published As

Publication number Publication date
US20060055421A1 (en) 2006-03-16
DE10347975B4 (de) 2008-10-09
JP2006504344A (ja) 2006-02-02
WO2004040766A3 (de) 2004-10-28
WO2004040766A2 (de) 2004-05-13
JP4160956B2 (ja) 2008-10-08
US7161383B2 (en) 2007-01-09
DE10347975A1 (de) 2004-05-13

Similar Documents

Publication Publication Date Title
DE4417575C2 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
EP0948842B1 (de) VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
DE2755273C2 (de)
DE102004045527B4 (de) Konfigurierbare Logikschaltungsanordnung
WO2004021176A2 (de) Verfahren und vorrichtung zur datenverarbeitung
DE19750662A1 (de) Prozessoreinheit für ein datenverarbeitungsgestütztes elektronisches Steuerungssystem in einem Kraftfahrzeug
EP1222739A1 (de) Rekonfigurierbares gate-array
WO2000017771A2 (de) Verfahren zum konfigurieren eines konfigurierbaren hardware-blocks
DE102005005073B4 (de) Rechnereinrichtung mit rekonfigurierbarer Architektur zur parallelen Berechnung beliebiger Algorithmen
WO2004079564A2 (de) Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
DE10347975B4 (de) Einrichtung der programmierbaren Logik
DE2951040C2 (de)
EP1472616B1 (de) Rekonfigurierbare elemente
EP0231434A1 (de) In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen
EP1789889B1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
EP0875062B1 (de) Zur abarbeitung von softwareprogrammen ausgelegte integrierte schaltung
EP3242232B1 (de) Optimierte erzeugung von gesamtnetzliste und bitstrom
DE60003847T2 (de) Universelle vorrichtung sowie verfahren und werkzeuge zu ihrer verwendung
EP1116127B1 (de) Programmgesteuerte einheit
DE4447707B4 (de) Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik
DE10238174A1 (de) Verfahren und Vorrichtung zur Datenverarbeitung
DE4447706B4 (de) Partiell zur Laufzeit rekonfigurierbarer Datenflussprozessor
EP0269811A2 (de) In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen
WO2022043065A1 (de) Computer-implementiertes verfahren und system zur dynamischen ausführung eines anwendungsprogramms durch eine plattform
DE2502005C2 (de) Schaltungsanordnung zur Zuordnung von Adressen zu Operationen zwecks Ausführung von Befehlen in einer Datenverarbeitungseinrichtung

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20050422

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

RBV Designated contracting states (corrected)

Designated state(s): DE FR GB NL

RIN1 Information on inventor provided before grant (corrected)

Inventor name: SIEMERS, CHRISTIAN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20080124