Beschreibung
Konfigurierbare Logikschaltungsanordnung
Die Erfindung betrifft eine konfigurierbare Logikschaltungsanordnung mit wenigstens einem Multiplexer zum Schalten von logischen Signalen, der einen oder mehrere Dateneingänge und einen oder mehrere Steuersignaleingänge umfasst.
Ein Multiplexer ermöglicht die Auswahl einer von n Datenleitungen mittels log dualis (n)+l Steuerleitungen. Diese wird mit dem Ausgang des MUX verbunden und er leitet so die logischen Signale weiter. Programmierbare Logikbausteine (Pro- grammable Logic Devices, PLD) erhalten ihre Flexibilität durch die Konfigurierbarkeit der Datenverarbeitung (Logikblock) und der Verdrahtung (Pfade) . Bei einem typischen PLD beträgt der Flächenanteil der Pfade ca. 75 % und der der Logikelemente etwa 25 % .
Weit verbreitet in programmierbaren Logikbausteinen sind
Pfad ultiplexer (oder Routermux) , das heißt Multiplexer, in denen aktive Signalpfade mit Laufzeitvarianten Signalwerten geschaltet sind. Multiplexer, die auch als Datenselektoren bezeichnet werden, dienen zur Umschaltung von einem aus eh- reren Eingängen auf einen Ausgang. Derartige Multiplexer- strukturen werden in programmierbaren Logikbausteinen zum Routing der Signale eingesetzt. Hier wird vor dem Betrieb der Schaltung ein Dateneingang ausgewählt, der im Betrieb wechselnde Signalwerte führt, während die Auswahl des Datenein- gangs, also der Signalwertquelle, konstant bleibt.
Multiplexer sind also die entscheidenden Bauteile bei der konfigurierbaren Verdrahtung. Im einfachsten Fall steuert ein binärwertiger Eingang eines Multiplexers die Zuordnung von wenigstens zwei Dateneingängen zu einem Ausgang.
Es ist bekannt, Pfade, die Multiplexer aufweisen, in einem Konfigurations- oder Programmiervorgang durch Konfiguriersignale zu konfigurieren. Dieser Vorgang uss vor dem Betrieb der Schaltung stattfinden. Bei diesem Multiplexertyp, der auch als Routermux bezeichnet wird, wird eine nicht-flüchtige Konfiguration der Steuereingänge vorgenommen, zum Beispiel über eine Maske, eine Fuse, eine Flashzelle oder einen nichtflüchtig konfigurierten Transistor, so dass während des Normalbetriebs, das heißt während der Laufzeit der Datensig- nale, eine Änderung des Multiplexers nicht möglich ist. Es existieren auch Bausteine, deren Konfiguration auf der Speicherung der Informationen in flüchtigen SRAM-Zellen basieren. Betriebsmittel zur Laufzeit-Konfiguration sind jedoch nicht vorgesehen. Obwohl sich derartige Strukturen insgesamt be- währt haben, wird es als Nachteil angesehen, dass sehr viele Leitungen zur Konfigurierung der Steuereingänge gebraucht werden und ein konfigurierbarer Multiplexer dementsprechend eine erhebliche periphere Fläche benötigt. Es kann sogar der Fall eintreten, dass der Schaltungsaufwand für die Konfigura- tion höher als der Aufwand für die Logikverarbeitung in dem Logikblock ist. Ein weiterer Nachteil ist darin zu sehen, dass die für die Konfiguration erforderlichen Leitungen und deren Logikbausteine anschließend, das heißt nach der Konfiguration, nicht mehr im laufenden Betrieb (Normalbetrieb) für eine andere Nutzung verfügbar sind.
Eventuell bleibt bei herkömmlichen Logikschaltungsanordnungen ein sehr großer Teil der Konfigurierleitungen und der zugehörigen Logikelemente ungenutzt.
In Logikblöcken kommen folgende Multiplexerstrukturen vor: Logikmux, Switchmux, LUT-Mux. Parameter, die diese MUX unterscheiden, sind: Konfiguriervorgang/ Anzahl der Speicherzellen; was bleibt konfigurierbar. Daraus folgt, dass entweder die Speicherung der Daten und Konfigurationen fehlt oder im laufenden Betrieb ist eine Umkonfigurierung beziehungsweise
Änderung der Signale nicht möglich und die zugeordnete Peripherie ist nicht weiter nutzbar.
Der Erfindung liegt daher das Problem zugrunde, eine konfigu- rierbare Logikschaltungsanordnung zu schaffen, die die genannten Nachteile beseitigt und flexibler einsetzbar ist.
Zur Lösung dieses Problems ist bei einer konfigurierbaren Logikschaltungsanordnung der eingangs genannten Art erfindungs- gemäß vorgesehen, dass der wenigstens eine Multiplexer mittels eines oder mehrerer externer Steuersignalgeberelemente der Schaltungsanordnung laufzeitvariant während des Betriebs der Schaltung mittels an die Steuereingänge anlegbarer Konfiguriersignale konfigurierbar ist und an die Dateneingänge an- legbare logische Signale laufzeitvariant während des Betriebs der Schaltung weiterleitet, wobei eine laufZeitvariante Konfiguration wenigstens einer Speicherzelle vornehmbar ist.
Die Möglichkeit zur Speicherung der Konfiguriersignale bleibt dabei erhalten.
Unter externen Steuersignalelementen sei dabei verstanden, dass ein Signal aus dem jeweiligen Element/Baustein oder durch Zuführung in das jeweilige Element die Steuerung über- nimmt, also dass dieses Signal bzw. dessen Generierung außerhalb der Schaltungsanordnung liegt.
Der Erfindung liegt die Erkenntnis zugrunde, die für die Konfigurierung erforderliche Infrastruktur nicht nur anfänglich während des Konfigurationsvorgangs, sondern auch während der Laufzeit der Signale im Normalbetrieb zu nutzen. Dementsprechend muss die erfindungsgemäße Logikschaltungsanordnung sehr oft und sehr schnell konfiguriert werden. Die für die Konfiguration erforderliche Infrastruktur liegt nicht brach, son- dern wird im Betrieb bei Bedarf weiterhin für die Konfiguration genutzt.
Ein besonders wichtiger Vorteil der Erfindung ist darin zu sehen, dass insbesondere bei Pfadmultiplexern der Aufwand, zur Auswahl einer Datenleitung im laufenden Betrieb stark gemindert wird. Es ist möglich, eine Datenleitung während des Normalbetriebs ohne Logikblöcke auszuwählen, der Aufwand für diese n:l-Auswahl ist minimal. Unter Aufwand ist in diesem Fall das Produkt aus Siliziumfläche (einschließlich der ungenutzt bleibenden Ressourcen z.B. im Routing), Verzögerungszeit und Verlustleistung bzw. eine Größe proportional zu die- sen drei Parametern zu verstehen. Während die Verzögerungszeit etwa konstant bleibt, werden die Parameter Silizium.: lache und Verlustleistung bei erfindungsgemäßer Ausführung deutlich gemindert, da die Auswahl der Datenleitung von dem bzw. den Multiplexern im Datenbus dynamisch übernommen wird. Demgegenüber muss diese Auswahl bei bekannten Logikschaltungsanordnungen durch zusätzliche Logikblöcke übernommen werden.
Für Logikmux gilt im Wesentlichen das gleiche wie für die Pfadmultiplexer. Der Gewinn ist hier durch Einsparungen im
Netzwerk, das die Logikmux-Speicherzellen konfiguriert, gegeben.
Für LUT-Mux wird eine Flexibilisierung erreicht, indem Logik- blocke als Register konfiguriert werden, deren Inhalte vari- ant geändert werden kann. Die Registerausgänge werden auf einen als MUX geschalteten Logikblock (evtl. mehrere) gegebenen. Der Gewinn ist hier durch Einsparungen im Netzwerk, das die LUT-Mux-Speicherzellen konfiguriert, und die Einsparung an Logikblöcken gegeben.
Für Switchmux wird keine Flexibilisierung der Eingänge ermöglicht, da diese bereits maximal flexibilisiert sind. Es entfällt allerdings der Aufwand, den Ausgang und/oder die Ein- gänge zu puffern.
Mit der erfindungsgemäßen Ausgestaltung der Logikschaltungsanordnung wird somit insbesondere der Vorteil erreicht, dass vorhandene Multiplexer nicht zu vergrößern und hiermit eine laufzeitvariante Konfiguration zu erreichen ist, sondern dass vielmehr eine Flexibilisierung der Multiplexerfunktion durch eine Umkonfiguration zur Laufzeit erreicht wird. Dies hat zur Folge, dass entweder die gleiche Aufgabe durch weniger Bauelemente/Transistoren oder bei gleicher Element- /Transistorenanzahl mehr Aufgaben, d.h. eine höhere Flexibi- lität, gelöst werden können. Wesentlich ist dabei, dass dies durch eine Laufzeitvariante (Um-) Konfiguration der wenigstens einen Speicherzelle (für die geforderte Konfiguration) zu erreichen ist.
Es ist besonders vorteilhaft, wenn bei der erfindungsgemäßen Logikschaltungsanordnung der oder jeder Eingang des Multiple- xers mit einer nicht-flüchtigen Speicherzelle verbunden ist, die sich im laufenden Betrieb in Nanosekunden ändern lässt. Es ist nicht nötig, dass alle Steuereingänge mit einer nicht- flüchtigen Speicherzelle verbunden sind, da auch Konfigurationen möglich sind, bei denen die Konfiguration nur teilweise gespeichert wird. Im Allgemeinen wird es jedoch, zweckmäßig sein, dass jedem Eingang eine Speicherzelle zugeordnet ist.
Es ist besonders zweckmäßig, dass die einem Eingang zugeordnete Speicherzelle über dynamische, d.h. Laufzeitveränderliche Signale, die aus dem Baustein stair-men, konfigurierbar ist. Der Platzbedarf der gesamten Logikschaltungsanordnung kann dadurch beträchtlich verringert werden, zudem kann jede Speicherzelle dynamisch rekonfiguriert werden, das heißt, sie kann während des Betriebs umprogrammiert werden. In der Speicherzelle bleiben die Daten sowie die gespeicherten Konfigurationen erhalten. Eine Neukonfiguration ist jedoch in jedem Takt möglich, die Konfigurierbarkeit bleibt va- riant. Dadurch ergibt sich der Vorteil, dass die Anzahl der Logikschaltungsanordnungen auf einem Chip sinken kann.
Für die erfindungsgemäße konfigurierbare Logikschaltungsanordnung eignen sich besonders Speicherzellen in magnetore- sistiver Technik, die auch als XMR-Technologie bezeichnet wird. Alternativ kommen auch Speicherzellen in OUM- Technologie (Ovonic Unified Memory) oder FRAM (Ferroelectric Random Access Memory) in Frage.
Eine noch höhere Flexibilität kann erzielt werden, wenn das externe Steuersignalgeberelement ein anderer Multiplexer ist. Verschi.edene Multiplexer können auf diese Weise hintereinander geschaltet werden. Mit einem derartigen Aufbau können Lo- gikverknüpfungen bereits im Routingbereich realisiert werden.
Die erfindungsgemäße konfigurierbare Logikschaltungsanordnung kann kaskadenartig mit weiteren Logikschaltungsanordnungen verbunden sein. Auf diese Weise können sämtliche Daten- und Steuereingänge durch vorgeschaltete Multiplexer aus verfügbaren Signalen auf dem Datenbus oder Konfigurierbus ausgewählt werden, so dass Kaskaden von Multiplexern mit bekannter Lauf- zeit existieren. Im Stand der Technik wird der Konfigurierbus als Konfiguriermöglichkeit für das Routing und die Logikblöcke eingesetzt. Die Signale werden durch eine Kaskade von Multiplexern an die entsprechenden Pins der Chips geroutet. Im laufenden Betrieb liegt der Konfigurierbus samt der Kaska- de brach. Der Konfigurierbus des Erfindungsgegenstands besteht teilweise aus der Architektur wie im Stand der Technik, insbesondere wenn die erfindungsgemäße Alternative technisch nicht sinnvoll ist. Im Übrigen ist der Konfigurierbus flexi- bilisiert und an den Datenbus angeschlossen, so dass die ge- steuerte Umschaltung ermöglicht wird.
Es wird besonders bevorzugt, dass die erfindungsgemäße konfigurierbare Logikschaltungseinrichtung Teil eines Field Pro- gram able Gate Arrays (FPGA) oder eines Complex Programmable Logic Device (CPLD) ist.
Weitere Vorteile und Einzelheiten der Erfindung werden anhand eines Ausführungsbeispiels unter Bezugnahme auf die Figuren erläutert. Die Figuren sind schematische Darstellungen und zeigen:
Fig. 1 einen herkömmlichen 2 : 1-Mul tiplexer ohne Konfiguriermöglichkeit;
Fig. 2 ein herkömmliches Field Programmable Gate Array mit mehreren als Multiplexer geschalteten Logikblöcken als Auswahlbereich;
Fig. 3 eine erfindungsgemäße konfigurierbare Logikschaltungsanordnung; und
Fig. 4 eine weitere erfindungsgemä-ße konfigurierbare Logikschaltungsanordnung.
Fig. 1 zeigt einen herkömmlichen 2 : 1-Multiplexer mit einem binärwertigen Steuereingang SO und zwei Dateneingängen E0 und El (Schaltsymbol) . Jeweils einer der Dateneingänge E0 oder El ist mit dem Ausgang A verbunden, wobei die Zuordnung der Dateneingänge E0 und El zum Ausgang A über den Steuereingang SO gesteuert wird. Wenn an dem Steuereingang SO das Signal ΛΛ0" anliegt, ist E0 mit A verbunden. Wenn an dem Steuereingang SO das Signal "1" anliegt, ist El mit A verbunden. Der Multiplexer 1 dient generell zur Umschaltung von einem aus mehreren Eingängen auf einen Ausgang. Derartige Multiplexer sind bekannt und bedürfen daher keiner weitergehenden Erläuterung.
Fig. 2 zeigt ein Ausführungsbeispiel eines herkömmlichen Field Programmable Gate Arrays (FPGA) mit mehreren als Multiplexern geschalteten Logikblöcken als Auswahlbereich. In dieser Schaltung entstehen Zwischenergebnisse, die auf dem Da- tenbus 2 bereitstehen. Von diesen Zwischenergebnissen sollen zwei ausgewählt und verarbeitet werden. Welche Zwischenergebnisse ausgewählt werden, wird während der Laufzeit entschie-
den. Der Auswahlbereich der in Fig. 2 gezeigten Schaltung umfasst vier als Multiplexer 3 geschaltete Logikblöcke, die parallel geschaltet sind und deren Ausgänge an die Eingänge von als Multiplexer geschalteten Logikblöcken 4 angeschlossen sind. Die als Multiplexer 3 geschalteten Logikblöcke sind jeweils mit Auswahlleitungen 5 verbunden. Durch die Auswahlleitungen 5 wird festgelegt, ob ein Multiplexer 3 das Signal des Eingangs EO oder des Eingangs El weiterleitet. Nur weil die Auswahlleitungen 5 dynamisch beeinflussbar sind, kann während der Laufzeit entschieden werden, welche Daten verarbeitet werden.
Analog besitzen die als Multiplexer 4 geschalteten Logikblöcke Auswahlleitungen 6, die mit den Steuereingängen verbunden sind. Von den Multiplexern 4 gelangen die beiden ausgewählten Signale an einen Ausführungsblock 7. Auch hier kann eine Auswahl während der Laufzeit nur durch entsprechend geschaltete Logikblöcke stattfinden. Nach der Verarbeitung im Ausführungsblock 7 wird das Ergebnis wieder auf den Datenbus gelegt und kann weiterverarbeitet werden.
Der in Fig. 2 gezeigte Aufbau ist günstig für kleine Logikblöcke und eine aufwendige, d.h. aus vielen Logikblöcken bestehende Verarbeitung. Die zur Auswahl eingesetzten Logikblö- cke dienen als Multiplexer, da sie aus dem Datenbus jeweils ein Eingangssignal aus zwei möglichen Eingangssignalen mit Hilfe einer Steuerleitung auswählen. Die Verwendung von Multiplexern im Routing schließt sich hier aus, da diese Multiplexer zwar sehr zahlreich vorhanden sind, jedoch nur Lauf- zeit-statisch arbeiten. Eine dynamische Umschaltung der Quelle ist nicht möglich. Die große Anzahl der erforderlichen Logikblöcke 3, 4, die als Multiplexer geschaltet sind, ist daher als nachteilig anzusehen.
Für große, leistungsfähige Logikblöcke kann es günstiger sein, möglichst wenig Logikblöcke für einen Routerbereich aufzuwenden und stattdessen mehrere Verarbeitungsblöcke zu
definieren, deren Ausgänge dann mittels der Steuerleitungen ausgewählt werden können.
Fig. 3 zeigt eine erfindungsgemäße konfigurierbare Logik- Schaltungsanordnung in Form eines Multiplexers 8. Der Multiplexer 8 entspricht in seinem grundsätzlichen Aufbau dem in Fig. 1 dargestellten Multiplexer, abgesehen davon, dass der Multiplexer 8 vier Eingänge (EO, El, E2, E3) aufweist, die jeweils mit einer nicht-flüchtigen Speicherzelle 9 verbunden sind. Die Steuereingänge SO und Sl des Multiplexers 8 sind jeweils mit Speicherzellen 10 verbunden. Die Speicherzellen 9, 10 sind als XMR-Zellen ausgebildet, das heißt es handelt sich um magnetoresistive Speicher. Es sind jedoch auch alternative Ausführungen denkbar, bei denen Speicherzellen in OUM- Logik (Ovonic Unified Memory, FRAM) oder in GMR- oder TMR-
Technologie zum Einsatz kommen. Die Speicherzellen 9, 10 sind über Auswahlleitungen 11, 17 des Konfigurationsbus jeweils mit externen Steuersignalgeberelementen verbunden, so dass sie laufzeitvariant konfigurierbar sind. Das externe Steuer- signalgeberelement ist ein anderer Multiplexer. Abweichend von dem dargestellten -Αusführungsbeispiel können zusätzlich einige oder alle der Speicherzellen 9 an Auswahlleitungen angeschlossen sein, so dass neben den an die Steuereingänge SO und Sl angeschlossenen Speicherzellen 10 auch die an die Da- teneingänge E0 bis E3 angeschlossenen Speicherzellen 9 während der Laufzeit umprogrammiert werden können.
Die in Fig. 3 dargestellte Logikschaltungsanordnung mit nicht-flüchtigen Speichern 9, 10 zeichnet sich besonders durch ihre hohe Integrationsdichte aus, da kein zusätzlicher Schaltungsaufwand erforderlich ist, um eine bestimmte Datenleitung vom Datenbus auszuwählen. Dementsprechend ist der Platzbedarf und die Anzahl der benötigten Logikelemente vergleichsweise gering. Es ist davon auszugehen, dass Einsparun- gen von bis zu 1/3 der Logikelemente im Vergleich zu herkömmlichen Schaltungen zu erzielen sind.
, „n=Λ O 2005/036750 10
Fig. 4 zeigt ein Ausführungsbeispiel der erfindungsgemäßen Logikschaltungsanordnung. Diese Schaltung umfasst zwei Multiplexer 12, 13, die analog zu der in Fig. 2 gezeigten Schaltung Zwischenergebnisse erhalten, die auf dem Datenbus 14 be- reitstehen. Die Multiplexer 12, 13 sind über Leitungen 15 an den Konfigurierbus angeschlossen. Anders als bei der in Fig. 2 gezeigten Schaltung wird die Auswahl der benötigten Zwischenergebnisse im Routingbereich vorgenommen, das heißt diese Funktion wird direkt von den vorhandenen Multiplexern 12, 13 übernommen, die Teile des Datenbussystems sind, so dass der Schaltungsaufwand zur Auswahl der Datenleitungen entfällt. Diese Funktion wird bei der bekannten Lösung gemäß der in Fig. 2 dargestellten Schaltung durch zusätzliche Logikblöcke (Multiplexer 3, 4) im Auswahlbereich übernommen. Von den Multiplexern 12, 13 gelangen die Ergebnisse zu einem Ausführungsblock 16, der das Ergebnis der logischen Verknüpfung wieder an den Datenbus ausgibt.
Die Nutzung der erfindungsgemäß ausgebildeten Multiplexer im Routing macht die Nutzung der Logikblöcke als dynamische
Pfadmultiplexer damit unnötig. Da die Multiplexer im Routing bereits vorhanden sind und nur in ihrer Nutzbarkeit bzw. Flexibilität erweitert werden, ergibt sich somit der angesprochene Flächengewinn und damit gekoppelt die Minderung der Verlustleistung.