DE102004056322B4 - Logik-Grundzelle und Logik-Grundzellen-Anordnung - Google Patents

Logik-Grundzelle und Logik-Grundzellen-Anordnung Download PDF

Info

Publication number
DE102004056322B4
DE102004056322B4 DE102004056322A DE102004056322A DE102004056322B4 DE 102004056322 B4 DE102004056322 B4 DE 102004056322B4 DE 102004056322 A DE102004056322 A DE 102004056322A DE 102004056322 A DE102004056322 A DE 102004056322A DE 102004056322 B4 DE102004056322 B4 DE 102004056322B4
Authority
DE
Germany
Prior art keywords
logic
data signal
input
coupled
output
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 - Fee Related
Application number
DE102004056322A
Other languages
English (en)
Other versions
DE102004056322A1 (de
Inventor
Jörg Gliese
Mirko Sauermann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102004056322A priority Critical patent/DE102004056322B4/de
Publication of DE102004056322A1 publication Critical patent/DE102004056322A1/de
Application granted granted Critical
Publication of DE102004056322B4 publication Critical patent/DE102004056322B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • 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/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers

Abstract

Logik-Grundzelle
• mit mindestens acht Datensignaleingängen, wobei an jedem Datensignaleingang ein Datensignal bereitstellbar ist;
• mit einem ersten Logikfunktionsblock, der mit einem ersten Datensignaleingang und einem zweiten Datensignaleingang der Datensignaleingänge gekoppelt ist;
• mit einem zweiten Logikfunktionsblock, der mit einem dritten Datensignaleingang und einem vierten Datensignaleingang der Datensignaleingänge gekoppelt ist;
• mit mindestens einem Logikfunktionkonfigurationseingang, mittels welchem eine von dem jeweiligen Logikfunktionsblock realisierbare Logik-Teilfunktion aus einer Mehrzahl von realisierbaren Logik-Teilfunktionen zum Verknüpfen der an dem jeweiligen Logikfunktionsblock anliegenden Datensignale vorgebbar ist;
• mit einer ersten Mehrfachfunktionseinrichtung, deren erster Dateneingang mit einem Ausgang des ersten Logikfunktionsblocks und deren zweiter Dateneingang mit einem Ausgang des zweiten Logikfunktionsblocks gekoppelt ist und die selektiv als erster Multiplexer, dessen Steuereingang mit einem fünften Datensignaleingang der Datensignaleingänge gekoppelt ist, oder als dritter Logikfunktionsblock betrieben werden kann;
• mit einem zweiten Multiplexer, dessen Steuereingang mit einem sechsten Datensignaleingang der Datensignaleingänge gekoppelt...

Description

  • Die Erfindung betrifft eine Logik-Grundzelle und eine Logik Grundzellen-Anordnung.
  • Mit dem Aufkommen der Digitaltechnik und der sich sprunghaft entwickelnden Mikroprozessortechnik entstand ein Bedarf nach programmierbarer Logik. Ein PLD (”Programmable Logic Device”) ist ein integrierter Schaltkreis, der vom Anwender mittels Programmierens in seiner Logikfunktion festgelegt wird. Ein PLD ist eine Architektur für digitale Logikoperationen mit einer Mehrzahl von Schaltern, welche eine Vielzahl von Signalpfaden ermöglichen. Die einem PLD anwenderspezifisch zugeordnete Logikfunktion wird mittels Konfigurierens des PLDs festgelegt.
  • Zu den PLDs gehören unter anderem Field-Programmable Gate-Arrays (FPGA), deren Funktionalität ihnen vom Anwender zugeordnet werden kann, Mask-Programmable Gate-Arrays (MPGA, auch ”Structured-ASICs” genannt), welchen mittels Hardwaremäßigen Konfigurierens eine Logikfunktion zugewiesen werden kann. Via-Programmable Gate-Arrays (VPGAs) gehören zu den MPGAs.
  • Grundzellen für ein Field-Programmable Gate Array (FPGAs) und einen Structured-ASIC (sASIC) stellen kombinatorische Funktionalität und Register zur Implementierung eines Designs zur Verfügung. Eine Grundzelle soll eine gute Abbildbarkeit sowohl einfacher als auch komplexer logischer Funktionen gewährleisten, ohne unnötigen Overhead zu erzeugen.
  • Eine digitale Logikzelle bildet n Eingangssignale auf ein Ausgangssignal ab. Die Anzahl der möglichen Abbildungsfunktionen ist
    Figure 00010001
    . Eine Schaltungsgruppe als digitale Logikzelle wird gemäß dem Stand der Technik zum Beispiel unter Verwendung von sogenannten Look-up-Tabellen (LUT), anschaulich Nachschlagetabellen, realisiert. Hierfür werden Funktionswerte der Logikfunktion mittels eines Datenwortes von 2n Bit eingestellt. Mit anderen Worten ist die jeweils ausgewählte Logikfunktion in ein Datenwort kodiert. Entsprechend der ausgewählten Logikfunktion werden n Eingangssignale a0, a1, ... an-1 miteinander verknüpft. Somit können die Logik-Eingangssignale der Logikfunktion y = f(a0, a1, ..., an-1) als binäre Adresse angesehen werden.
  • Ein FPGA auf Basis einer Look-up-Tabelle (LUT) ist beispielsweise in [1] offenbart.
  • Eine Logik-Grundzelle für Field-Programmable Gate-Arrays (FPGA) und ”structured-ASICs” stellen kombinatorische Funktionalität zur Implementierung eines Logik-Designs bereit.
  • Aus dem Stand der Technik sind feingranulare und grobgranulare Ansätze für Logik-Grundzellen bekannt.
  • Bei einer feingranularen Grundzelle ist es häufig nicht möglich, alle möglichen
    Figure 00020001
    Logikfunktionen von n Eingangssignalen zu realisieren, so dass in manchen Szenarien bereits Logikfunktionen geringer Komplexität über mehrere Grundzellen verteilt realisiert werden müssen. Auf diese Weise werden Interconnect-Ressourcen blockiert, was zu einer wenig effektiven Nutzung von Ressourcen führt. Ferner sind bei solchen feingranularen Grundzellen lange Signalpfade bei komplexeren Funktionen nachteilig. Ferner ist die Software für das Partitionieren solcher feingranularen Grundzellen-Anordnungen aufwendig.
  • Bei einem grobgranularen Ansatz wird eine komplexe Grundzelle realisiert, mittels welcher häufig Logikfunktionen auch mittlerer Komplexität vollständig realisiert werden können. Wenn auf eine solche grobgranulare Grundzelle hingegen ein kurzer Datenpfad abgebildet werden soll, sind große Teile der kombinatorischen Ressourcen der Grundzelle ungenützt, so dass die Abbildung ineffizient ist. Ferner ist die Skalierbarkeit bekannter Grundzellen häufig unbefriedigend, insbesondere wenn eine abzubildende Logikfunktion nicht in eine Grundzelle passt.
  • [2] offenbart eine Logikarray-Vorrichtung mit einem Array von programmierbaren Logikzellen, aufweisend eine Mehrzahl von Eingängen und eine Mehrzahl von Ausgängen und angepasste Verbindungsstrukturen, welche einem Teil der programmierbaren Zelle überlagert sind.
  • Es können Eingänge als Steuereingänge für einen Multiplexer-Baum dienen, siehe [3]. Die Multiplexer können logikbasiert und/oder auf Basis von Transmissions-Gates realisiert werden.
  • Aus [4] ist eine benutzerdefiniert konfigurierbare und programmierbare Logik-Grundzellen-Anordnung bekannt, die auf einer Verschaltung von Look-Up-Tabellen und Multiplexern basiert.
  • [5] beschreibt eine programmierbare Logik-Grundzellen-Anordnung mit 5 Datensignaleingängen sowie einem ersten Logikfunktionsblock und einem zweiten Logikfunktionsblock, implementiert als Look-Up-Tabelle, einem Logikfunktions-Konfigurationseingang sowie einem ersten Multiplexer. An den Datensignalausgängen sind ein Signal an dem Ausgang des ersten Logikfunktionsblocks, ein Signal an dem Ausgang des zweiten Logikfunktionsblocks und ein Signal an dem Ausgang des Multiplexers separat abgreifbar.
  • Aus [6] ist ein feldprogrammierbares Gate-Array (fieldprogrammable Gate-Array, FPGA) bekannt mit einer Decoder-Schaltkreisanordnung zum Erhöhen der Anzahl von Eingängen für jede programmierbare Logik-Zelle. Die Dekoderschaltkreis-Anordnung koppelt die jeweilige gewünschte Look-Up-Tabelle einer jeweiligen Logik-Zelle.
  • Aus [7] ist ein anderes FPGA mit Look-up-Tabellen bekannt.
  • [8] beschreibt eine programmierbare Funktionseinheit eingerichtet zur Verwendung in einem FPGA, wobei in der programmierbaren Funktionseinheit eine sogenannte Ripple-Logik eingesetzt wird.
  • Weiterhin ist aus [9] eine rekonstruierbare Logik-Vorrichtung bekannt mit einer Look-Up-Tabelle.
  • Ferner offenbart [10] den Entwurf integrierter Logik-Schaltkreise unter Verwendung funktionell redundanter Transistornetzwerke.
  • Außerdem ist aus [11] ein Verfahren zum Implementieren eines großen Multiplexers unter Verwendung von FPGA-Look-Up-Tabellen bekannt.
  • Viele aus dem Stand der Technik bekannte Logik-Grundzellen basieren auf der boolschen Logik. Bei solchen Logik-Grundzellen wird ausgenutzt, dass sich eine Funktion f(an, an-1, ..., a0) von n + 1 Eingangssignalen ai gemäß der boolschen Logik folgendermaßen auf zwei Funktionen f0, f1 von jeweils n Eingangssignalen ai zurückführen lässt:
    Figure 00040001
  • Die Zerlegung von f in f1 und f0 gemäß Gleichung (1) wird als sogenannte Shannon-Zerlegung bezeichnet. Hierbei ist a n das logisch Inverse des Datensignals an. Für den Fall n = 2, das heißt für eine Funktion von n + 1 = 3 Eingangssignalen, ist somit die Logik-Gesamtfunktion f als Funktion dreier Eingangssignale auf zwei (einfachere) Logik-Teilfunktionen f0 und f1 von zwei Eingangssignalen zurückgeführt. Jede der Logik-Teilfunktionen f0, f1 kann von einem der Logikfunktionsblöcke einer Logik-Grundzelle realisiert werden.
  • Für den Spezialfall von n + 1 = 4 Eingangssignalen kann unter Verwendung von Gleichung (1) die Logik-Gesamtfunktion auf zwei Funktionen von drei Eingangssignalen zurückgeführt werden, wobei jede Funktion von drei Eingangssignalen unter nochmaliger Anwendung von Gleichung (1) wiederum in zwei Logik-Teilfunktionen mit zwei Eingängen aufgeteilt werden kann. Mit anderen Worten kann eine Logik-Gesamtfunktion von vier Datensignalen in vier Logik-Teilfunktionen zerlegt werden, welche von vier Logikfunktionsblöcken, das heißt zwei Logik-Grundzellen, realisiert werden können. Diese Überlegung lässt sich für eine beliebige Anzahl von Eingangssignalen fortsetzen, zum Beispiel sind zum Realisieren einer Logik-Gesamtfunktion von fünf Datensignalen 2·2·2 = 8 Logikfunktionsblöcke, das heißt vier Logik-Grundzellen mit jeweils zwei Logikfunktionsblöcken erforderlich.
  • Allerdings ist eine Logik-Grundzelle, die gemäß der Shannon-Zerlegung gemäß Gleichung (1) realisiert ist, für manche Anwendungen, die einen hohen Grad an Flexibilität erfordern, nicht gut geeignet.
  • Der Erfindung liegt insbesondere das Problem zugrunde, eine Logik-Grundzelle bereitzustellen, die einen erhöhten Grad an Flexibilität bereitstellt.
  • Das Problem wird durch eine Logik-Grundzelle und durch eine Logik-Grundzellen-Anordnung mit den Merkmalen gemäß den unabhängigen Patentansprüchen gelöst.
  • Bevorzugte Ausgestaltungen der Erfindung ergeben sich aus den abhängigen Patentansprüchen.
  • Gemäß mehreren Ausführungsformen wird eine Logik-Grundzelle bereitgestellt,
    • – mit mindestens acht Datensignaleingängen, wobei an jedem Datensignaleingang ein Datensignal bereitstellbar ist;
    • – mit einem ersten Logikfunktionsblock, der mit einem ersten Datensignaleingang und einem zweiten Datensignaleingang der Datensignaleingänge gekoppelt ist;
    • – mit einem zweiten Logikfunktionsblock, der mit einem dritten Datensignaleingang und einem vierten Datensignaleingang der Datensignaleingänge gekoppelt ist;
    • – mit mindestens einem Logikfunktionkonfigurationseingang mittels welchem eine von dem jeweiligen Logikfunktionsblock realisierbare Logik-Teilfunktion aus einer Mehrzahl von realisierbaren Logik-Teilfunktionen zum verknüpfen der an dem jeweiligen Logikfunktionsblock anliegenden Datensignale vorgebbar ist;
    • – mit einer ersten Mehrfachfunktionseinrichtung, deren erster Dateneingang mit einem Ausgang des ersten Logikfunktionsblocks und deren zweiter Dateneingang mit einem Ausgang des zweiten Logikfunktionsblocks gekoppelt ist und die selektiv als erster Multiplexer, dessen Steuereingang mit einem fünften Datensignaleingang der Datensignaleingänge gekoppelt ist, oder als dritter Logikfunktionsblock betrieben werden kann;
    • – mit einem zweiten Multiplexer, dessen Steuereingang mit einem sechsten Datensignaleingang der Datensignaleingänge gekoppelt ist, dessen erster Dateneingang mit einem siebten Datensignaleingang der Datensignaleingänge gekoppelt ist und dessen zweiter Dateneingang mit einem achten Datensignaleingang der Datensignaleingänge gekoppelt ist, oder mit einer zweiten Mehrfachfunktionseinrichtung, deren erster Dateneingang mit dem siebten Datensignaleingang der Datensignaleingänge gekoppelt ist und deren zweiter Dateneingang mit dem achten Datensignaleingang der Datensignaleingänge gekoppelt ist und die selektiv als zweiter Multiplexer, dessen Steuereingang mit dem sechsten Datensignaleingang der Datensignaleingänge gekoppelt ist, oder als vierter Logikfunktionsblock betrieben werden kann;
    • – mit einem mit dem Ausgang des ersten Logikfunktionsblocks gekoppelten ersten Datensignalausgang, mit einem mit dem Ausgang des zweiten Logikfunktionsblocks gekoppelten zweiten Datensignalausgang, mit einem mit einem Ausgang der ersten Mehrfachfunktionseinrichtung gekoppelten dritten Datensignalausgang und mit einem mit einem Ausgang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung gekoppelten vierten Datensignalausgang, an welchen Datensignalausgängen ein Signal an dem Ausgang des ersten Logikfunktionsblocks, ein Signal an dem Ausgang des zweiten Logikfunktionsblocks, ein Signal an dem Ausgang der ersten Mehrfachfunktionseinrichtung und ein Signal an dem Ausgang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung jeweils separat abgreifbar ist.
  • Gemäß mehreren Ausführungsformen wird eine Logik-Grundzelle bereitgestellt,
    • – mit mindestens acht Datensignaleingängen, wobei an jedem Datensignaleingang ein Datensignal bereitstellbar ist;
    • – mit einem ersten Logikfunktionsblock, der mit einem ersten Datensignaleingang und einem zweiten Datensignaleingang der Datensignaleingänge gekoppelt ist;
    • – mit einem zweiten Logikfunktionsblock, der mit einem dritten Datensignaleingang gekoppelt ist;
    • – mit mindestens einem Logikfunktionkonfigurationseingang, mittels welchem eine von dem jeweiligen Logikfunktionsblock realisierbare Logik-Teilfunktion aus einer Mehrzahl von realisierbaren Logik-Teilfunktionen zum Verknüpfen der an dem jeweiligen Logikfunktionsblock anliegenden Datensignale vorgebbar ist;
    • – mit einem ersten Multiplexer, dessen erster Dateneingang mit einem Ausgang des ersten Logikfunktionsblocks gekoppelt ist, dessen zweiter Dateneingang mit einem Ausgang des zweiten Logikfunktionsblocks gekoppelt ist und dessen Steuereingang mit einem fünften Datensignaleingang der Datensignaleingänge gekoppelt ist, oder mit einer ersten Mehrfachfunktionseinrichtung, deren erster Dateneingang mit dem Ausgang des ersten Logikfunktionsblocks gekoppelt ist und deren zweiter Dateneingang mit dem Ausgang des zweiten Logikfunktionsblocks gekoppelt ist und die selektiv als erster Multiplexer, dessen Steuereingang mit dem fünften Datensignaleingang gekoppelt ist, oder als dritter Logikfunktionsblock betrieben werden kann;
    • – mit einem zweiten Multiplexer, dessen Steuereingang mit einem sechsten Datensignaleingang der Datensignaleingänge gekoppelt ist, dessen erster Dateneingang mit einem siebten Datensignaleingang der Datensignaleingänge gekoppelt ist und dessen zweiter Dateneingang mit einem achten Datensignaleingang der Datensignaleingänge gekoppelt ist, oder mit einer zweiten Mehrfachfunktionseinrichtung, deren erster Dateneingang mit dem siebten Datensignaleingang der Datensignaleingänge gekoppelt ist und deren zweiter Dateneingang mit dem achten Datensignaleingang der Datensignaleingänge gekoppelt ist und die selektiv als zweiter Multiplexer, dessen Steuereingang mit dem sechsten Datensignaleingang gekoppelt ist, oder als vierter Logikfunktionsblock betrieben werden kann;
    • – mit einem mit dem Ausgang des ersten Logikfunktionsblocks gekoppelten ersten Datensignalausgang, mit einem mit dem Ausgang des zweiten Logikfunktionsblocks gekoppelten zweiten Datensignalausgang, mit einem mit einem Ausgang des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung gekoppelten dritten Datensignalausgang und mit einem mit einem Ausgang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung gekoppelten vierten Datensignalausgang, an welchen Datensignalausgängen ein Signal an dem Ausgang des ersten Logikfunktionsblocks, ein Signal an dem Ausgang des zweiten Logikfunktionsblocks, ein Signal an dem Ausgang des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung und ein Signal an dem Ausgang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung jeweils separat abgreifbar ist;
    • – mit einem dritten Multiplexer mit einem ersten Dateneingang, einem zweiten Dateneingang und einem Datenausgang, wobei der erste Dateneingang mit dem Ausgang des ersten Logikfunktionsblocks gekoppelt ist, der zweite Dateneingang mit einem vierten Datensignaleingang der Datensignaleingänge gekoppelt ist und der Datenausgang mit einem Eingang des zweiten Logikfunktionsblocks gekoppelt ist.
  • Gemäß einem Aspekt der Erfindung weist eine Logik-Grundzelle zum Bilden mindestens eines Ausgangssignals aus mindestens drei Eingangssignalen gemäß einer vorgebbaren Logikfunktion eine erste Logikzerlegungseinheit zum Realisieren einer ersten Zerlegung der Logikfunktion in mehrere Logikteilfunktionen sowie eine zweite Logikzerlegungseinheit zum Realisieren einer zweiten Zerlegung der Logikfunktion in mehrere Logikteilfunktionen auf. Die erste Logikzerlegungseinheit und die zweite Logikzerlegungseinheit sind eingerichtet
    • • zum Realisieren einer Shannon-Zerlegung, oder
    • • zum Realisieren einer iterativen Zerlegung, oder
    • • zum Realisieren einer disjunkten Zerlegung.
    • • Gemäß einer Ausgestaltung der Erfindung ist die erste Einheit eine Shannon-Zerlegungs-Einheit zum Realisieren einer Shannon-Zerlegung einer Logikfunktion in mehrere Logikteilfunktionen.
  • Eine Logik-Grundzellen-Anordnung enthält eine Mehrzahl von miteinander verschalteten Logik-Grundzellen gemäß hierin beschriebener Ausführungsformen.
  • Ein Aspekt der Erfindung kann darin gesehen werden, zwei Logikfunktionsblöcke und einen ersten Multiplexer oder eine erste Mehrfachfunktionseinrichtung derart miteinander zu verschalten und Datensignale an deren Eingängen derart anzulegen, dass eine Logik-Teilfunktion als Teil einer von einer Logik-Grundzellen-Anordnung aus einer Mehrzahl von Logik-Grundzellen zu realisierenden Logik-Gesamtfunktion realisiert werden kann. An einem Ausgang des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung ist anschaulich ein teilweise verarbeitetes Signal bereitgestellt, welches zum Beispiel einem Eingang eines zweiten Multiplexers oder einer zweiten Mehrfachfunktionseinrichtung einer anderen Logik-Grundzelle der Logik-Grundzellen-Anordnung als ein Eingangssignal bereitgestellt werden kann. Eines oder mehrere Eingangssignale für einen zweiten Multiplexer oder eine zweite Mehrfachfunktionseinrichtung einer Logik-Grundzelle einer Logik-Grundzellen-Anordnung kann oder können von einer anderen Logik-Grundzelle, welche eine andere Logik-Teilfunktion der Logik-Gesamtfunktion erfüllt, bereitgestellt werden.
  • Indem die Logik-Grundzelle derart eingerichtet ist, dass ein Signal an dem Ausgang des ersten Logikfunktionsblocks, ein Signal an dem Ausgang des zweiten Logikfunktionsblocks und ein Signal an dem Ausgang des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung an ersten bis dritten Datensignalausgängen jeweils separat abgreifbar sind, können diese teilverarbeiteten Signale jeweils separat anderen Komponenten einer komplexeren Schaltung bereitgestellt bzw. zugeführt werden. Wird eine Logik-Teilfunktion, wie sie von jedem der Logikfunktionsblöcke aus Datensignalen generiert wird, an anderer Stelle einer solchen komplexeren Schaltung benötigt, so sind hierfür keine separaten Ressourcen erforderlich. Genauso sind keine separaten Ressourcen erforderlich, wenn an einer beliebigen Stelle der Schaltung das Ausgangssignal des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung benötigt wird, da dieses an dem dritten Datensignalausgang separat abgegriffen werden kann. Diese teilverarbeiteten Signale können anderen Komponenten der Schaltung mit geringem Aufwand zugeführt werden. Das Abgreifen von Ausgangssignalen der Logikfunktionsblöcke, welche simultan als Eingangssignale des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung dienen, ermöglicht somit eine optimierte Ausnutzung von Logik-Ressourcen und führt zu einem hohen Maß an Flexibilität sowie einer geringen erforderlichen Chipfläche.
  • Somit ist es mit einer Logik-Grundzelle gemäß verschiedenen Ausführungsformen der Erfindung bzw. mit einer darauf basierend gebildeten Logik-Grundzellen-Anordnung ermöglicht, simultan Logikfunktionen hoher Komplexität zwecks besserer Verarbeitbarkeit auf Logikfunktionen geringerer Komplexität zurückzuführen und Logik-Zwischenergebnisse an den Ausgängen der Einzelkomponenten der Logik-Grundzelle separat zur Bereitstellung an andere Ressourcen abzugreifen. Die Signale an den drei Datensignalausgängen können somit an externen Anschlüssen der Logik-Grundzelle abgegriffen werden.
  • Ferner kann eine z. B. sehr komplizierte bzw. von einer großen Zahl von Eingangssignalen abhängige Logik-Gesamtfunktion mittels einer Logik-Grundzelle gemäß verschiedenen Ausführungsformen der Erfindung in eine Mehrzahl von weniger komplizierten bzw. von einer geringeren Zahl von Eingangssignalen abhängigen Logik-Teilfunktionen aufgeteilt werden, wobei die Logik-Teilfunktionen von unterschiedlichen Logik-Grundzellen realisiert werden können. Dadurch ist eine komplexe Logik-Grundfunktion auf mehrere einfachere Logik-Teilfunktionen zurückgeführt, welche in einer modularen Verschaltung einzelner Logik-Grundzellen realisierbar ist.
  • Anders ausgedrückt kann durch eine Verschaltung von Logik-Grundzellen miteinander eine beliebige komplizierte Logik-Gesamtfunktion, die abhängig von einer Vielzahl von Eingangssignalen ist, auf einfachere Logik-Teilfunktionen einer geringeren Zahl von Eingängen zurückgeführt werden, indem basierend auf der boolschen Logik eine vorzugsweise halbleitertechnologische Schaltungsarchitektur geschaffen wird.
  • Die Grundzelle realisiert eine gute Abbildbarkeit sowohl einfacher als auch komplexerer Logik-Funktionen, ohne einen unnötigen Overhead zu erzeugen. Somit ist anschaulich eine partitionierungsverbesserte bzw. partitionierungsoptimierte Grundzelle geschaffen, die in einem FPGA oder einem Structured ASICs Verwendung finden kann.
  • Somit ist eine Logik-Grundzelle bereitgestellt, mittels welcher eine lückenlose verbesserte Partitionierbarkeit für Logikfunktionen von n Eingängen ermöglicht ist, wobei mittels der isolierten Abgreifbarkeit von teilweise verarbeiteten Signalen an Ausgängen der Logikfunktionsblöcke ein hohes Maß an Flexibilität und Benutzerfreundlichkeit erreicht ist. Wenn eine Funktion von n Eingängen in genau einer Logik-Grundzelle realisiert werden kann, ist es gemäß Ausführungsformen der Erfindung ermöglicht, eine Funktion von (n + 1) Eingängen mit höchstens zwei Logik-Grundzellen bzw. eine Funktion von (n + i) Eingängen mit höchstens 2i Logik-Grundzellen zu realisieren. Hierbei ist eine Logik-Grundzelle vorzugsweise derart realisiert, dass ihre Kombinatorik ebenfalls skaliert ist. Eine Grundzelle mit einer kombinatorischen Funktion von n Eingängen kann auch innerhalb der Grundzelle aus zwei Funktionen von (n – 1) Eingängen aufgebaut sein, welche zwei Funktionen mittels der beiden Logikfunktionsblöcke realisiert werden.
  • Es ist anzumerken, dass die Logik-Ergebnisse der Logik-Teilfunktionen der Logikfunktionsblöcke nicht nur Eingängen des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung bereitgestellt sind, sondern es ist auch ermöglicht, Ausgangssignale gemäß diesen Logik-Teilfunktionen unabhängig abzugreifen. Somit sind solche Unterfunktionen auch einzeln verfügbar.
  • Die Auswahl einer Logik-Teilfunktion (zum Beispiel UND-Verknüpfung, ODER-Verknüpfung, Exklusiv-ODER-Verknüpfung, Nicht-UND-Verknüpfung, Nicht-ODER-Verknüpfung, Nicht-Exklusiv-ODER-Verknüpfung, etc.) eines Logikfunktionsblocks erfolgt vorzugsweise mittels Konfigurierens des oder der Logikfunktionkonfigurationseingänge des jeweiligen Logikfunktionsblocks, In der schaltungstechnischen Realisierung kann ein Logikfunktionsblock miteinander verschaltete Transistoren aufweisen, wobei mittels Anlegens von Logikfunktionssignalen an die Logikfunktionkonfigurationseingänge der Logikfunktionsblöcke bestimmte Pfade innerhalb der Transistoren durchgeschaltet werden können, so dass Eingangssignale gemäß diesen ausgewählten Pfaden gemäß einer vorgebbaren Logik-Teilfunktion verarbeitbar sind.
  • Im Weiteren wird die Logik-Grundzelle basierend auf der boolschen Logik erläutert. Anschaulich wird eine Aussage der boolschen Logik als Grundlage für eine Schaltungsarchitektur verwendet, welche sich in einer Logik-Grundzelle gemäß Ausführungsformen der Erfindung niederschlägt.
  • Eine Funktion f(an, an-1, ..., a0) von n + 1 Eingangssignalen ai lässt sich gemäß der boolschen Logik folgendermaßen auf zwei Funktionen f0, f1 von jeweils n Eingangssignalen ai zurückführen:
    Figure 00130001
  • Hierbei ist
    Figure 00130002
    das logisch Inverse des Datensignals an. Für den Fall n = 2, das heißt für eine Funktion von n + 1 = 3 Eingangssignalen, ist somit die Logik-Gesamtfunktion f als Funktion dreier Eingangssignale auf zwei Logik-Teilfunktionen f0 und f1 mit zwei Eingangssignalen zurückgeführt. Jede der Logik-Teilfunktionen f0, f1 kann von einem der Logikfunktionsblöcke einer Logik-Grundzelle realisiert werden.
  • Für den Spezialfall von n + 1 = 4 Eingangssignalen kann unter Verwendung von Gleichung (2) die Logik-Gesamtfunktion auf zwei Funktionen von drei Eingangssignalen zurückgeführt werden, wobei jede Funktion von drei Eingangssignalen unter nochmaliger Anwendung von Gleichung (2) wiederum in zwei Logik-Teilfunktionen mit zwei Eingängen aufgeteilt werden kann. Mit anderen Worten kann eine Logik-Gesamtfunktion von vier Datensignalen in vier Logik-Teilfunktionen zerlegt werden, welche von vier Logikfunktionsblöcken, das heißt zwei Logik-Grundzellen gemäß Ausführungsformen der Erfindung, realisiert werden können. Diese Überlegung lässt sich für eine beliebige Anzahl von Eingangssignalen fortsetzen, zum Beispiel sind zum Realisieren einer Logik-Gesamtfunktion von fünf Datensignalen 2·2·2 = 8 Logikfunktionsblöcke, das heißt vier Logik-Grundzellen mit jeweils zwei Logikfunktionsblöcken erforderlich. Diese Überlegungen veranschaulichen den modularen Aufbau einer Logik-Grundzellen-Anordnung gemäß Ausführungsformen der Erfindung.
  • Bei der Logik-Grundzelle kann der erste Datensignaleingang mit dem dritten Datensignaleingang und/oder der zweite Datensignaleingang mit dem vierten Datensignaleingang gekoppelt sein. Gemäß dieser Verschaltung werden zwei Datensignale gemäß der ersten Logik-Teilfunktion von dem ersten Logikfunktionsblock verarbeitet und werden dieselben zwei Datensignale gemäß der zweiten Logik-Teilfunktion von dem zweiten Logikfunktionsblock verarbeitet. Das Verknüpfen der Ausgangssignale der beiden Logikfunktionsblöcke ermöglicht dann das Generieren einer komplexeren Logikverarbeitung der beiden Datensignale mit zusätzlichen Datensignalen.
  • Gemäß einem weiteren Aspekt der Erfindung ist ein zweiter Multiplexer oder eine zweite Mehrfachfunktionseinrichtung bereitgestellt, deren Steuereingang mit einem sechsten Datensignaleingang der Datensignaleingänge gekoppelt ist, deren erster Dateneingang mit einem siebten Datensignaleingang der Datensignaleingänge gekoppelt ist und deren zweiter Dateneingang mit einem achten Datensignaleingang der Datensignaleingänge gekoppelt ist. Eine Logik-Grundzelle weist somit mindestens acht Datensignaleingänge auf.
  • Eine Logik-Grundzelle gemäß verschiedenen Ausführungsformen der Erfindung enthält somit einen zusätzlichen zweiten Multiplexer oder eine zusätzliche zweite Mehrfachfunktionseinrichtung, der/die von den übrigen Komponenten der Logik-Grundzelle elektrisch entkoppelt sein kann. Die zweite Mehrfachfunktionseinrichtung oder der zweite Multiplexer bildet eine freie Ressource, die (je nach Verschaltung, zum Beispiel unter Verwendung des Ausgangssignals des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung oder unter Verwendung von Signalen, die dem Multiplexer oder der Mehrfachfunktionseinrichtung aus anderen Logik-Grundzellen der erfindungsgemäßen Logik-Grundzellen-Anordnung bereitgestellt sind) für beliebige Logik-Aufgaben benutzerdefiniert verwendbar ist.
  • Ein Aspekt der Erfindung ist das Koppeln von zwei Logikfunktionsblöcken und des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung einer ersten Logik-Grundzelle mit einem zweiten Multiplexer oder einer zweiten Mehrfachfunktionseinrichtung einer zweiten Logik-Grundzelle.
  • Es können beliebig komplexe Logikfunktionen mit nur geringem Zusatzaufwand aufgebaut werden. Für das Realisieren einer Logik-Gesamtfunktion nicht benutzte bzw. nicht erforderliche kombinatorische Ressourcen bleiben frei und können durch andere Funktionen belegt werden. Mit anderen Worten ist es bei der Verschaltung von Logik-Grundzellen zum Bilden einer Logik-Grundzellen-Anordnung möglich, solche Komponenten der Logik-Grundzellen, welche für eine spezielle Anwendung nicht benötigt werden, nicht ungenutzt brach liegen zu lassen, sondern für andere Funktionen eines Schaltkreises mitzuverwenden. Dadurch ist eine optimale Nutzbarkeit der Ressourcen eines Logik-Schaltkreises ermöglicht. Somit ist eine sehr gute Auslastung der Logik-Kombinatorik bei sehr hoher Skalierbarkeit erreicht.
  • Anders ausgedrückt ist die Logik-Grundzelle aufgebaut aus den miteinander verschalteten beiden Logikfunktionsblöcken und dem ersten Multiplexer oder der ersten Mehrfachfunktionseinrichtung einerseits sowie dem zweiten Multiplexer oder der zweiten Mehrfachfunktionseinrichtung andererseits. Diese zwei Teilblöcke der Logik-Grundzelle können voneinander elektrisch isoliert vorgesehen sein. Die Logik-Grundzelle weist von ihrer externen Betrachtung her gesehen eine Vielzahl von Dateneingängen auf, welche als Eingänge der Logikfunktionsblöcke und des Multiplexers oder der Mehrfachfunktionseinrichtung vorgesehen sind.
  • Ferner weist die Logik-Grundzelle mindestens vier, vorzugsweise genau vier unabhängige kombinatorische Ausgänge und zwei zu zwei unabhängigen kombinatorischen Ausgängen negierte kombinatorische Ausgänge und mindestens einen sequentiellen Ausgang auf. Die vier unabhängigen kombinatorischen Ausgänge entsprechen den Ausgängen der Multiplexer oder Mehrfachfunktionseinrichtungen und den Ausgängen der Logikfunktionsblöcke. Die negierten kombinatorischen Ausgänge sind die zusätzlichen negierten Ausgänge der Multiplexer oder Mehrfachfunktionseinrichtungen. Der sequentielle Ausgang kann wahlweise einer der sechs kombinatorischen Ausgänge, die in einem Register um einen Takt verzögert wurden, sein. Natürlich können statt des einen auch zwei, drei, vier, fünf oder sechs Register verwendet werden, die in beliebiger Weise mit den kombinatorischen Ausgangssignalen belegt werden können.
  • Daher ist anschaulich ein universell einsetzbares Bauelement geschaffen, dem lediglich von außen zu verarbeitende Datensignale zugeführt werden, die gemäß der Verschaltung innerhalb der Logik-Grundzelle und zwischen einer Mehrzahl von Logik-Grundzellen einer Logik-Grundzellen-Anordnung definiert ist.
  • Ein wichtiger Aspekt der Erfindung kann darin gesehen werden, dass ein (freier) Multiplexer oder eine (freie) Mehrfachfunktionseinrichtung einer Logik-Grundzelle gemeinsam mit Logikblöcken aus anderen Logik-Grundzellen verwendet werden kann, wodurch die erreichbare Logik-Komplexität erhöht wird. Andere Komponenten der Logik-Grundzelle der/des so verschalteten Multiplexers/Mehrfachfunktionseinrichtung können dann in andere Logik-Funktionen eingebunden werden, so dass ein hohes Maß an Designfreiheit mit einer effizienten und platzsparenden Ausnutzung der Ressourcen der Logik-Grundzelle kombiniert sind.
  • Zumindest einer der Logikfunktionsblöcke der Logik-Grundzelle kann einen mit zumindest einem Teil der Datensignaleingänge des jeweiligen Logikfunktionsblocks gekoppelten ersten Signalpfad mit einer Mehrzahl von Transistoren eines ersten Leitungstyps aufweisen, wobei die Transistoren derart miteinander verschaltbar sind, dass sie die von dem jeweiligen Logikfunktionsblock realisierbare Logik-Teilfunktion aus allen möglichen realisierbaren Logik-Teilfunktionen zum Verknüpfen der an dem jeweiligen Logikfunktionsblock anliegenden Datensignalen realisieren können, so dass ein das Ergebnis der Logik-Teilfunktion repräsentierendes Ausgangssignal bereitgestellt wird. Ferner kann zumindest einer der Logikfunktionsblöcke einen mit zumindest einem Teil der Datensignaleingänge des jeweiligen Logikfunktionsblocks gekoppelten zweiten Signalpfad mit einer Mehrzahl von Transistoren eines zu einem ersten Leitungstyp komplementären zweiten Leitungstyps aufweisen, wobei die Transistoren derart miteinander verschaltbar sind, dass sie eine zu der von den Transistoren des ersten Signalpfads inverse Logik-Teilfunktion von allen möglichen Logik-Teilfunktionen zur logischen Verknüpfung der zwei Datensignale realisieren, so dass ein das Ergebnis der Logik-Teilfunktion repräsentierendes Ausgangssignal bereitgestellt ist.
  • Gemäß dieser Ausgestaltung wird für einen Logikfunktionsblock eine universell konfigurierbare Logikzelle verwendet, mittels welcher an den Datensignaleingängen bereitstellbare Datensignale miteinander gemäß einer vorgebbaren Logikfunktion verknüpfbar sind. Die Transistoren des ersten Leitungstyps (zum Beispiel n-MOS-Transistoren oder p-MOS-Transistoren) und die Transistoren des zweiten Leitungstyps (zum Beispiel p-MOS-Transistoren oder n-MOS-Transistoren) können z. B. in CMOS-Technologie realisiert werden. Bei dieser Ausgestaltung der Logikfunktionsblöcke sind weder Look-up-Tabellen noch Gatter-Anordnungen zur Realisierung einer beliebigen Logik-Grundfunktion erforderlich. Mit dem dadurch bereitgestellten Transistornetzwerk, das aus den beiden Signalpfaden mit zueinander komplementären Transistortypen gebildet ist, kann mittels Vorgebens der Verschaltung der Transistoren jede beliebige aller möglichen Logikfunktionen für die jeweilige Zahl von Eingangssignalen realisiert werden. Mathematisch können die aus der boolschen Logik resultierenden Produktterme einer Logikfunktion als Serienpfade der n-Kanal-Transistoren bzw. p-Kanal-Transistoren gebildet werden. Jeweils einander ausschließende Produktterme können unter Verwendung eines Schalters zusammengefasst werden. Diese Ausgestaltung der Logikfunktionsblöcke zeichnet sich durch eine hohe Störsicherheit aus. Ferner ist nur eine geringe Chipfläche zum Realisieren der Logikoperation erforderlich, und dies bei einer sehr geringen Verlustleistung und einer hohen Schaltgeschwindigkeit. Darüber hinaus ist eine hohe Störsicherheit und eine flexible Skalierbarkeit für eine beliebige Zahl von Dateneingängen und Datenausgängen ermöglicht.
  • Gemäß einer Ausgestaltung der Erfindung kann zumindest einer der Logikfunktionsblöcke in der Struktur eines Programmable Logic Device (PLD), eines Field-Programmable Gate-Array (FPGA), eines maskenprogrammierten Application-Specific Integrated Circuit (mASIC), als Logik-Gatter oder Anordnung mehrerer Logik-Gatter oder als Look-Up-Tabelle gebildet sein. Erfindungsgemäß kann im Prinzip jede beliebige Ausgestaltung für die Logikfunktionsblöcke gewählt werden. Im Falle der Ausgestaltung eines Logikfunktionsblocks als Look-Up-Tabelle kann beispielsweise die aus [1] bekannte Architektur in der Logik-Grundzelle der Erfindung implementiert werden. Im Falle der Realisierung eines Logikfunktionsblocks als maskenprogrammierter Application-Specific Integrated Circuit bzw. als ”structured ASIC” kann eine gewünschte Logik-Teilfunktion eines Logikfunktionsblocks mittels Festverdrahtens von Transistoren innerhalb des Logikfunktionsblocks realisiert werden.
  • Mit anderen Worten kann unter Verwendung von Vias oder anderen Kopplungselementen ein bestimmter Signalpfad bzw. mehrere Signalpfade innerhalb der Transistor-Anordnung eines solchen ”structured ASIC” ausgewählt werden, wodurch eine feste Logikfunktion dem Logikfunktionsblock zugeordnet ist.
  • An dem mindestens einen Logikfunktionkonfigurationseingang kann dem jeweiligen Logikfunktionsblock die realisierbare Logik-Teilfunktion unveränderlich vorgegeben werden. Gemäß dieser Ausgestaltung erfüllt der Logikfunktionsblock stets die ihm fest und unveränderlich zugewiesene Logik-Teilfunktion, da diese mittels Anlegens vorgegebener Signale (oder Betriebsspannungen) an den Logikkonfigurationseingängen fest eingestellt ist. Die vorgegebene Logik-Teilfunktion kann auch festverdrahtet mittels Kurzschließens oder entsprechender Hardware-mäßiger Kopplung der Transistoren des Logikfunktionsblocks realisiert werden. Dann können an die in festgelegter Weise miteinander verschalteten Transistoren über einen oder mehrere Anschlüsse des Logikfunktionsblocks vorgegebene elektrische Potentiale (z. B. Betriebsspannung, Massepotential) angelegt werden.
  • Bei fest vorgegebener Logik-Teilfunktion eines Logikfunktionsblocks kann eine mit dem mindestens einen Logikfunktionkonfigurationseingang gekoppelte Speicher-Einrichtung vorgesehen sein, in welcher die Information zum Vorgeben der realisierbaren Logik-Teilfunktion speicherbar ist. Somit ist in einer solchen Speicher-Einrichtung ein Datenwort speicherbar, in welchem die Logik-Teilfunktion des Logikfunktionsblocks kodiert ist, zum Beispiel als binäres Datenwort.
  • Alternativ zu der beschriebenen Ausgestaltung kann an dem mindestens einen Logikfunktionkonfigurationseingang dem jeweiligen Logikfunktionsblock die realisierbare Logik-Teilfunktion mittels eines anlegbaren Signals variabel vorgegeben sein. Bei dieser Ausgestaltung eines Logikfunktionsblocks kann dieser jede beliebige Logikfunktion durchführen, welche der Logik-Grundzelle mittels eines (zum Beispiel zeitlich) veränderlichen elektrischen Potentials an Steuereingängen von Transistoren innerhalb des Logikfunktionsblocks vorgegeben ist. In diesem Szenario kann der Logikfunktionsblock als variable Logikkomponente in der übergeordneten Logik-Grundzelle bzw. der dieser übergeordneten Logik-Grundzellen-Anordnung verschaltet werden, was eine flexible Schaltungsarchitektur ermöglicht.
  • Die Logik-Grundzelle ist vorzugsweise zum Verarbeiten von digitalen Datensignalen eingerichtet, welche einen logischen Wert ”1” oder ”0” aufweisen.
  • Ferner kann bei der Logik-Grundzelle mindestens ein den ersten und zweiten Logikfunktionsblöcken und den ersten und zweiten Multiplexern oder Mehrfachfunktionseinrichtungen nachgeschaltetes Register zum Abgreifen von an Ausgängen der Logik-Grundzelle bereitgestellten Signalen vorgesehen sein. Um eine externe Anlegbarkeit von Signalen an die Logik-Grundzelle bzw. eine externe Abgreifbarkeit von Signalen von der Logik-Grundzelle zu ermöglichen, ist den Ausgängen der Multiplexer oder Mehrfachfunktionseinrichtung vorzugsweise ein Register (beispielsweise unter Verwendung von Flip-Flops) nachgeschaltet, so dass anschaulich ein Register-zu-Register-Pfad zwischen Eingangssignalen und Ausgangssignalen geschaffen ist, wodurch ein standardisiertes Schaltungsdesign erleichtert ist.
  • Im Weiteren wird die Logik-Grundzellen-Anordnung, die Logik-Grundzellen aufweist, näher beschrieben. Ausgestaltungen der Logik-Grundzelle gelten auch für die Logik-Grundzellen aufweisende Logik-Grundzellen-Anordnung und umgekehrt.
  • Bei der Logik-Grundzellen-Anordnung ist vorzugsweise der Ausgang des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung einer ersten Logik-Grundzelle mit dem ersten Dateneingang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung einer zweiten Logik-Grundzelle gekoppelt. Ferner kann der Ausgang des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung einer dritten Logik-Grundzelle mit dem zweiten Dateneingang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung der zweiten Logik-Grundzelle gekoppelt sein.
  • Gemäß dieser Ausgestaltung kann unter Verwendung von Logikfunktionsblöcken samt erstem Multiplexer oder erster Mehrfachfunktionseinrichtung von zwei Logik-Grundzellen und einem zweiten Multiplexer oder einer zweiten Mehrfachfunktionseinrichtung einer dritten Logik-Grundzelle eine Logikfunktion von vier Variablen verarbeitet werden. Jeder Logikfunktionsblock innerhalb der ersten und zweiten Logik-Grundzelle kann eine Funktion von zwei Variablen verarbeiten, wobei mittels Weiterverarbeitens der Ausgabesignale der beiden Logikfunktionsblöcke mittels des zugehörigen ersten Multiplexers oder der zugehörigen ersten Mehrfachfunktionseinrichtung in jeder der ersten und zweiten Logik-Grundzellen gemäß Gleichung (2) eine Verarbeitung einer Logik-Teilfunktion von drei Variablen ermöglicht ist. Gemäß der beschriebenen Verschaltung werden die Ausgabesignale der Funktion von jeweils drei Variablen der ersten und zweiten Logik-Grundzellen in den Dateneingängen des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung der dritten Logik-Grundzelle zusammengeführt, so dass eine Logikfunktion von mindestens vier Variablen verarbeitet werden kann. Diese Anordnung der ersten bis dritten Logik-Grundzellen kann als eine Basisstruktur einer Logik-Grundzellen-Anordnung aufgefasst werden, wobei wiederum eine Mehrzahl solcher Basisstrukturen miteinander verschaltet werden können, um noch komplexere Logikfunktionen, d. h. Logikfunktionen mit fünf und mehr Datensignalen miteinander zu verknüpfen.
  • Zumindest ein Dateneingang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung der ersten und/oder der dritten Logik-Grundzelle kann von einer Kopplung mit anderen Logikzellen frei sein. Ferner kann der erste und/oder der zweite Logikfunktionsblock und/oder der erste Multiplexer oder die erste Mehrfachfunktionseinrichtung der zweiten Logik-Grundzelle von einer Kopplung mit anderen Logik-Grundzellen frei sein. Zumindest ein Teil des/der mindestens einen von einer Kopplung mit anderen Logik-Grundzellen freien Logikfunktionsblocks und/oder Multiplexers oder Mehrfachfunktionseinrichtung kann mit einem zusätzlichen Schaltkreis derart verschaltet werden, dass diese mindestens eine Komponente zu der Funktionalität des zusätzlichen Schaltkreises beitragen kann. Das heißt, dass von den ersten und zweiten und dritten Logik-Grundzellen jeweils nur ein Teil der Komponenten zur Durchführung der beabsichtigten Logikfunktion verwendet werden kann, wohingegen die restlichen Ressourcen nicht für die Logikfunktion benötigt werden und daher für andere Anwendungen zur Verfügung gestellt sind. Anders ausgedrückt kann zur Verknüpfung der Ausgangssignale der ersten Multiplexer oder der ersten Mehrfachfunktionseinrichtungen der ersten und dritten Logik-Grundzelle ein freier zweiter Multiplexer oder eine freie zweite Mehrfachfunktionseinrichtung der zweiten Logik-Grundzelle verwendet werden, deren Restblöcke von einer Logik-Funktionalität frei bleiben. Ebenso bleiben die zweiten Multiplexer oder Mehrfachfunktionseinrichtungen der ersten und dritten Logik-Grundzelle von einer Logikfunktion in Rahmen der Logik-Grundzellen-Anordnung frei und können für andere Anwendungen verwendet werden. Dadurch ist eine verbesserte bzw. optimierte Ressourcenausnutzung ermöglicht.
  • Die Logik-Grundzelle und die Logik-Grundzellen-Anordnung können als integrierter Schaltkreis realisiert sein.
  • Ein Aspekt der Erfindung kann darin gesehen werden, dass eine Logik-Grundzelle derart eingerichtet bzw. verschaltet wird, dass sie die oben bezugnehmend auf Gleichung (2) beschriebene Shannon-Zerlegung durchführt, allerdings ergänzt um mindestens eine zusätzliche Zerlegung (z. B. eine iterative Zerlegung oder eine disjunkte Zerlegung), so dass die Flexibilität der erfindungsgemäßen Grundzelle durch das Hinzunehmen von mindestens einer zusätzlichen Zerlegung signifikant erhöht ist.
  • Mit den mindestens zwei Zerlegungen, die in der erfindungsgemäßen Grundzelle ermöglicht sind, nämlich mit der Shannon-Zerlegung und mindestens einer zusätzlichen Zerlegung, wird eine lückenlose Partitionierbarkeit einer logischen Funktion von n Eingängen ermöglicht. Wenn eine Funktion von n Eingängen (d. h. eine Funktion, die von n gemäß einer vorgebbaren Logikfunktion, z. B. UND-Verknüpfung, zu verknüpfenden Datensignalen abhängt) in einer Basiszelle realisiert werden kann, ist es erfindungsgemäß möglich, eine Funktion von mindestens (n + 1) Eingängen mit zwei Basiszellen und eine Funktion von mindestens (n + i) Eingängen mit 2i Basiszellen zu realisieren. Eine Basiszelle ist derart gestaltet, dass ihre Kombinatorik ebenfalls skaliert ist. Eine Grundzelle mit einer kombinatorischen Funktion von n Eingängen kann aus zwei Funktionsblöcken von (n – 1) Eingängen aufgebaut sein, wobei diese Unterfunktionen auch einzeln verfügbar sein können. Auf diese Weise können beliebig komplexe logische Funktionen nahezu ohne Zusatzaufwand konstruiert werden. Nicht benutzte kombinatorische Ressourcen bleiben frei und können durch andere Funktionen belegt werden. Erfindungsgemäß ist nahezu eine optimale Auslastung der Kombinatorik eines logischen Zellexifeldes möglich. Kombinatorik und Register einer Zelle können gemeinsam, aber auch völlig unabhängig voneinander benutzt werden, was die Flexibilität der erfindungsgemäßen Zelle weiter erhöht.
  • Ein Aspekt der Erfindung basiert auf der Zerlegung von logischen Funktionen. Eine solche Zerlegung kann in einer sASIC-Grundzelle mit maximaler Flexibilität im Aufbau logisch komplexer Funktionen realisiert sein.
  • Um eine Logikfunktion zu realisieren, d. h. um eine logische Verknüpfung von n Datensignalen zum Bilden eines Ausgangssignals durchzuführen, wird erfindungsgemäß eine solche Zerlegung der Logikfunktion in mehrere einfachere Logikteilfunktionen mit geringerem Komplexitätsgrad vorgenommen, dass die Zusammensetzung der Logikteilfunktionen im Ganzen die Logikfunktion realisiert. Die Art und Weise der Zerlegung beinhaltet erfindungsgemäß nicht nur die Shannon-Zerlegung gemäß Gleichung (1), sondern mindestens eine zusätzliche Zerlegung, die zum Realisieren von manchen Logikfunktionen günstiger ist als die Shannon-Zerlegung. Je nach der im speziellen Anwendungsfall zu realisierenden Logikfunktion kann dann selektiv auf die Ressourcen einer Shannon-Zerlegungs-Einheit und/oder einer Einheit zum Realisieren der mindestens einen zusätzlichen Zerlegung zurückgegriffen werden, je nachdem ob z. B. eine besonders platzsparende oder eine besonders schnelle oder ressourcenschonende Konfiguration angestrebt wird.
  • In einer Logik-Grundzelle gemäß verschiedenen Ausführungsformen der Erfindung ist eine Shannon-Zerlegungs-Einheit vorgesehen, mittels welcher eine Funktion f von n + 1 Variablen in zwei Teilfunktionen f1 und f0 zurückgeführt werden kann, die jeweils nur von n Variablen abhängen. Dieses Prinzip entspricht in mathematischer Darstellung Gleichung (1).
  • Die beiden Funktionen f1, f0 lassen sich als Abbildung IBn → IB auffassen, da ihr Definitionsbereich die Dimensionalität n hat.
  • Mit der Shannon-Zerlegung, die gemäß verschiedenen Ausführungsformen der Erfindung mittels der Shannon-Zerlegungs-Einheit realisiert ist, steht eine jederzeit anwendbare Lösung für den allgemeinen Fall zur Verfügung, mit der eine komplexe Logikfunktion von n + 1 Variablen auf mehrere Logikteilfunktionen mit einer geringeren Anzahl von Variablen zurückgeführt werden kann. Würde jedoch – wie gemäß dem Stand der Technik in einer Logik-Grundzelle lediglich die Shannon-Zerlegung als einzige Zerlegung angeboten, kann es für bestimmte Anwendungen vorkommen, dass keine ausreichend niedrige Gatterlaufzeit oder keine ausreichend geringe Anzahl an Gattern ermöglicht ist. Eine solche niedrige Gatterlaufzeit oder eine minimale Anzahl von Gattern ist jedoch bei bestimmten Anwendungen vorteilhaft. Die Shannon-Zerlegung allein liefert jedoch Schaltkreise der Tiefe O(n) und kann demnach in manchen Fällen suboptimale Resultate liefern.
  • Aus diesem Grunde ist gemäß verschiedenen Ausführungsformen der Erfindung in einer Logik-Grundzelle nicht nur eine Shannon-Zerlegungs-Einheit zum Realisieren der oben beschriebenen Shannon-Zerlegung vorgesehen, sondern es ist zusätzlich mindestens eine Einheit zum Realisieren einer zusätzlichen Zerlegung einer Logikfunktion in mehrere Logikteilfunktionen bereitgestellt. Je nachdem, ob z. B. die Gatterlaufzeit minimiert werden soll oder ob die Anzahl der erforderlichen Gatter minimiert werden soll, kann als zusätzliche Zerlegung z. B. eine iterative Zerlegung oder eine disjunkte Zerlegung verwendet werden. Es ist jedoch auch jede andere mathematische Zerlegung möglich, mittels welcher eine Logikfunktion auf weniger komplexe Logikfunktionen zurückgeführt werden kann.
  • Die iterative Zerlegung lässt sich durch Gleichung (3) darstellen: f:IBn+1 → IB:f(an, an-1, ..., a1, a0) = f0(f1(Q), R) (3) wobei: Q, R ⊆ {an, an-1, ..., a1, a0} ∧ Q ∩ R = 0 (4)
  • In Gleichungen (3), (4) stellt f eine Funktion von n + 1 Variablen an, an-1, ..., a0 dar, die zurückgeführt wird auf eine Funktion f0, die wiederum von einer Funktion f1(Q) und von R abhängt. Q und R sind jeweils Mengen, von denen jede eine oder eine Mehrzahl der Variablen ai mit i = 0, 1 ..., n als Elemente aufweist.
  • Es gilt die Beziehung: f0:IB|R|+1 → IB und f1:IB|Q| → IB (5)
  • Die rekursive Anwendung der iterativen Zerlegung liefert anschaulich Schaltkreise einer Pipeline-artigen Struktur und benötigt bei O(n) Tiefe nur n Gatter. Die iterative Zerlegbarkeit ist keine generelle Eigenschaft einer boolschen Funktion.
  • In einer schaltungstechnischen Realisierung kann eine iterative Zerlegung dadurch realisiert werden, dass ein Ausgang von einem Logikfunktionsblock, in dem eine erste Logikteilfunktion realisiert wird, beispielsweise mit dem Eingang eines Multiplexers gekoppelt wird, dessen Ausgang dann mit einem zweiten Logikfunktionsblock gekoppelt sein kann. Der zweite Eingang des Multiplexers führt dabei auf einen Dateneingang und der dritte Eingang des Multiplexers steuert die Auswahl zwischen dem Datensignaleingang und dem Ausgang des ersten Logikfunktionsblocks. Unter Verwendung der iterativen Zerlegung kann insbesondere die Anzahl der erforderlichen Gatter gering gehalten werden.
  • Die erfindungsgemäße Kombination der iterativen Zerlegung mit der Shannon-Zerlegung stellt sicher, dass auch in einem Szenario, in dem eine Logikfunktion einer iterativen Zerlegung nicht zugänglich ist bzw. für die eine iterative Zerlegung nicht gewünscht wird oder nicht vorteilhaft ist, in jedem Fall eine stets mögliche Realisierung mittels der Shannon-Zerlegung erfolgen kann.
  • Im Weiteren wird bezugnehmend auf Gleichungen (6), (7) eine disjunkte Zerlegung als weiteres Beispiel für eine Zerlegung beschrieben, die in einer Logik-Grundzelle gemäß verschiedenen Ausführungsformen der Erfindung zusätzlich zu der Shannon-Zerlegung realisiert sein kann. Die disjunkte Zerlegung basiert auf der Zerlegung gemäß Gleichung (6): f:IBn+1 → IB:f(an, an-1, ..., a1, a0) = f0(f1(Q1), f2(Q2)) (6) wobei Q1 ∪ Q2 = {an, an-1, ..., a1, a0) ∧ Q1 ∩ Q2 = 0 (7)
  • Bei der disjunkten Zerlegung wird eine Funktion f von n + 1 Variablen ai auf eine Funktion f0 zurückgeführt, die von weniger komplexen Teilfunktionen f1, f2 abhängt, wobei f1 von einer Teilmenge der Variablen ai abhängt, und f2 von einer anderen Teilmenge der Variablen ai abhängt.
  • Wenn man die Disjunktivität nicht voraussetzt, so lässt sich jede boolsche Funktion gemäß (6), (7) zerlegen. Die Forderung der Disjunktivität ermöglicht es jedoch, Schaltkreise der Tiefe O(log n) zu konstruieren, was zu einer besonders kurzen Gatterlaufzeit führt.
  • Anschaulich ist bei der Architektur einer Logik-Grundzelle gemäß verschiedenen Ausführungsformen der Erfindung der Gedanke ausgenützt, dass beim Vorsehen einer Shannon-Zerlegung und mindestens einer anderen zusätzlichen Zerlegung (insbesondere einer disjunkten Zerlegung und/oder einer iterativen Zerlegung) die Flexibilität beim Schaltkreisdesign wesentlich erhöht werden kann, und Parameter wie Gatterlaufzeit und Gatteranzahl optimiert werden können. Es ist möglich, dass komplette logische Funktionen oder einzelne Teile davon in anderen logischen Funktionen wiederverwendet werden, weshalb jeder kombinatorische Pfad in einer Logik-Grundzelle als Ausgang derselben bereitstellbar ist. Über einen strukturellen Multiplexer kann ein beliebiger kombinatorischer Pfad innerhalb einer Grundzelle mit dem Eingang eines Zellen-internen Registers verbunden werden. Um Register und Kombinatorik unabhängig voneinander betreiben zu können, kann ein kombinatorischer Leerpfad zum Register vorgesehen werden, der über den gleichen strukturellen Multiplexer geschaltet werden kann. Auf diese Weise können z. B. die Register benachbarter Zellen zu einem Schieberegister verbunden werden, ohne dass die kombinatorischen Ressourcen der beteiligten Zellen belegt werden.
  • Die mindestens eine zusätzliche Zerlegung in der Logik-Grundzelle kann eine iterative Zerlegung sein. Diese schaltungstechnische Realisierung basiert insbesondere auf der mathematischen Darstellung von Gleichungen (4), (5).
  • Die iterative Zerlegung kann mittels des ersten Logikfunktionsblocks realisiert werden, mit mindestens zwei Datensignaleingängen, an denen mindestens zwei Eingangssignale anlegbar sind, und mit einem Datensignalausgang zum Bereitstellen einer Logik-Verknüpfung der mindestens zwei Eingangssignale gemäß einer vorgebbaren Logikteilfunktion. Ferner kann die iterative Zerlegung mittels eines dritten Multiplexers realisiert werden, mit einem ersten und mit einem zweiten Datensignaleingang und mit einem Datensignalausgang, wobei der Datensignalausgang des ersten Logikfunktionsblocks mit dem ersten Datensignaleingang des dritten Multiplexers gekoppelt ist, und wobei ein zusätzliches Eingangssignal an dem zweiten Datensignaleingang des Multiplexers bereitstellbar ist. Die beschriebene Ausgestaltung der Logik-Grundzelle mit realisierter iterativer Zerlegung weist anschaulich eine Pipeline-artige Struktur aus dem ersten Logikfunktionsblock und dem nachgeschalteten dritten Multiplexer auf, wodurch eine schaltungstechnische Realisierung von Gleichungen (4), (5) geschaffen ist.
  • Die mindestens eine zusätzliche Zerlegung kann eine disjunkte Zerlegung sein. Diese schaltungstechnische Realisierung basiert insbesondere auf der mathematischen Darstellung von Gleichungen (6), (7).
  • Eine schaltungstechnische Realisierung der disjunkten Zerlegung ist mittels des ersten Logikfunktionsblocks, des zweiten Logikfunktionsblocks und eines dritten Logikfunktionsblocks realisierbar, wobei der erste Logikfunktionsblock eine erste Logikteilfunktion von mindestens zwei Eingangssignalen realisiert, wobei der zweite Logikfunktionsblock eine zweite Logikteilfunktion von mindestens zwei der Eingangssignalen realisiert und wobei der dritte Logikfunktionsblock eine Logikverknüpfung der Ausgangsignale des ersten und des zweiten Logikfunktionsblocks realisiert.
  • Indem zum Verknüpfen der Ausgangsignale von zwei Logikfunktionsblöcken, in welchen jeweils eine Logikteilfunktion realisiert ist, kein reiner Multiplexer verwendet wird, sondern wiederum ein Logikfunktionsblock, kann die Verknüpfung gemäß (6), (7) realisiert werden.
  • Die disjunkte Zerlegung kann mittels der ersten Mehrfachfunktions-Einrichtung realisiert werden, die selektiv eine Multiplex-Funktionalität von mindestens zwei Eingangssignalen oder die Funktionalität des Bildens einer Logikteilfunktion von mindestens zwei Eingangssignalen realisiert. Insbesondere kann der oben beschriebene dritte Logikfunktionsblock durch die erste Mehrfachfunktions-Einrichtung realisiert sein, die zwischen einer ersten Anwendung als Multiplexer und einer zweiten Anwendung als Logikfunktionsblock geschaltet werden kann.
  • Die Shannon-Zerlegung kann mittels des ersten Logikfunktionsblocks, des zweiten Logikfunktionsblocks und des ersten Multiplexers realisiert werden, wobei der erste Logikfunktionsblock eine erste Logikteilfunktion von mindestens zwei Eingangssignalen realisiert, wobei der zweite Logikfunktionsblock eine zweite Logikteilfunktion von mindestens zwei Eingangssignalen realisiert und wobei der erste Multiplexer die Ausgangssignale der beiden Logikfunktionsblöcke miteinander und mit einem zusätzlichen Eingangssignal verknüpft.
  • Mit dieser schaltungstechnischen Konfiguration kann die basierend auf Gleichung (1) beschriebene Shannon-Zerlegung erfindungsgemäß umgesetzt werden.
  • Vorzugsweise ist die Logik-Grundzelle zum Realisieren einer iterativen Zerlegung und einer disjunkten Zerlegung, d. h. zum Realisieren beider dieser Zerlegungen, eingerichtet. Gemäß dieser Ausgestaltung ist ein besonders hohes Maß an Flexibilität erreicht, indem neben der Shannon-Zerlegung sowohl eine iterative Zerlegung als auch eine disjunkte Zerlegung von der Logik-Grundzelle unterstützt wird, so dass bedarfsweise eine geringe Gatterlaufzeit oder eine geringe Gatteranzahl zum Realisieren einer bestimmten Logikfunktion möglich ist, und dennoch jede beliebige Logikfunktion von einer so ausgestalteten Logik-Grundzelle realisiert werden kann.
  • Bei der Logik-Grundzelle kann zwischen dem Multiplexer und der Mehrfachfunktions-Einrichtung mittels eines unveränderlichen Hardware-Elements umgeschaltet werden und die Funktion der Mehrfachfunktions-Einrichtung ebenfalls durch ein unveränderliches Hardware-Element realisiert werden. Zwischen Multiplexer und der Mehrfachfunktions-Einrichtung kann somit mittels eines unveränderlichen Hardware-Elements gewählt sein. Mittels Vorsehens von Komponenten der Logik-Grundzelle als unveränderliche Hardware-Elemente können statische Multiplexer als strukturelle Multiplexer realisiert werden, wodurch Transistoren eingespart werden können und die erforderliche Chipfläche zum Ausbilden der Logik-Grundzelle verringert wird. Insbesondere kann ein Multiplexer und/oder die Mehrfachfunktions-Einrichtung mittels einer Mehrzahl von Metallisierungsebenen und/oder mittels Vias fest vorgebbar realisiert werden.
  • Die Logik-Grundzelle kann als Application-Specific Integrated Circuit eingerichtet sein, und kann insbesondere als Programmable Logic Device (PLD), als Field-Programmable Gate Array (FPGA) oder als maskenprogrammierter Application-Specific Integrated Circuit eingerichtet sein.
  • Die Logik-Grundzelle der Erfindung kann auch als CMOS-Logik-Grundzelle realisiert sein.
  • Jeder der Logikfunktionsblöcke der erfindungsgemäßen Logik-Grundzelle ist vorzugsweise derart eingerichtet, dass er eine vorgegebene Logikfunktion realisiert. Dies kann z. B. dadurch realisiert werden, dass jeder der Logikfunktionsblöcke als ein Logik-Gatter oder eine Anordnung mehrerer Logik-Gatter vorgesehen ist, oder als eine Look-up-Tabelle.
  • An mindestens einem Logikfunktionskonfigurationseingang der erfindungsgemäßen Logik-Grundzelle kann einem jeweiligen Logikfunktionsblock die von ihm realisierbare Logikteilfunktion unveränderlich vorgegeben sein. Gemäß dieser Ausgestaltung wird die Logik eines jeweiligen Logikfunktionsblocks fest eingestellt, d. h. beispielsweise mittels konstanter Steuersignale justiert, so dass beispielsweise in dem Logikfunktionsblock enthaltene Transistoren in einer ganz bestimmten Weise geschaltet werden, so dass innerhalb des Logikfunktionsblocks nur bestimmte Datenpfade ermöglicht sind und dadurch die angestrebte Logikfunktion realisiert wird.
  • Alternativ zu der beschriebenen Ausgestaltung kann bei der Logik-Grundzelle an mindestens einem Logikfunktionskonfigurationseingang dem jeweiligen Logikfunktionsblock die realisierbare Logikteilfunktion mittels eines anlegbaren Signals variabel vorgegeben werden. In diesem Falle können die Transistor-Gates in einem Logikfunktionsblock beispielsweise dadurch angesteuert werden, dass veränderliche elektrische Signale an Logikfunktionskonfigurationseingängen bereitgestellt werden, so dass gemäß einer speziell einstellbaren Logik nur bestimmte Pfade innerhalb des Logikfunktionsblocks ermöglicht sind, was eine Realisierung einer vorgebbaren Logikfunktion ermöglicht.
  • Die Ausgestaltungen, die bezugnehmend auf die erfindungsgemäße Logik-Grundzelle beschrieben sind, gelten auch für die mehrere Logik-Grundzellen aufweisende Logik-Grundzellen-Anordnung.
  • Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Weiteren näher erläutert.
  • Es zeigen:
  • 1 eine Logik-Grundzellen-Anordnung zur Veranschaulichung von Ausführungsformen der Erfindung,
  • 2 einen Logikfunktionsblock gemäß einer ersten Ausführungsform,
  • 3 einen Logikfunktionsblock gemäß einer zweiten Ausführungsform,
  • 4 eine Logik-Grundzelle zur Veranschaulichung von Ausführungsformen der Erfindung.
  • 5 eine Logik-Grundzelle gemäß einem Ausführungsbeispiel der Erfindung,
  • 6A, 6B schematische Ansichten von Multiplexern, die mittels unveränderlich vorgegebener Hardware-Elemente realisiert sind,
  • 7 eine Logik-Grundzellen-Anordnung gemäß einem Ausführungsbeispiel der Erfindung,
  • 8 eine Logik-Grundzelle gemäß einem Ausführungsbeispiel der Erfindung,
  • 9 eine Logik-Grundzelle gemäß einem Ausführungsbeispiel der Erfindung,
  • 10 eine Logik-Grundzelle gemäß einem Ausführungsbeispiel der Erfindung.
  • Gleiche oder ähnliche Komponenten in unterschiedlichen Figuren sind mit gleichen Bezugsziffern versehen.
  • Die Darstellungen in den Figuren sind schematisch und nicht maßstäblich.
  • Im Weiteren wird bezugnehmend auf 1 eine Logik-Grundzellen-Anordnung 100 beschrieben.
  • Die Logik-Grundzellen-Anordnung ist aus einer ersten Logik-Grundzelle 101, einer zweiten Logik-Grundzelle 102 und einer dritten Logik-Grundzelle 103 gebildet, welche in der in 1 gezeigten Weise miteinander verschaltet sind.
  • Die erste Logik-Grundzelle 101 enthält erste bis sechste Datensignaleingänge 106 bis 111, wobei an dem ersten Datensignaleingang 106 ein Datensignal a, an einem zweiten Datensignaleingang 107 ein zweites Datensignal b und an einem dritten Datensignaleingang 108 ein Datensignal c bereitgestellt ist. Die vierten bis sechsten Dateneingänge 109 bis 111 sind gemäß 1 von einem Datensignal frei.
  • Ferner enthält die erste Logik-Grundzelle 101 einen ersten Logikfunktionsblock 104 und einen zweiten Logikfunktionsblock 105, von denen jeder mit dem ersten Datensignaleingang 106 und mit dem zweiten Datensignaleingang 107 gekoppelt ist. Es sind bei jedem der Logikfunktionsblöcke 104, 105 vier Logikfunktionkonfigurationseingänge 114, 115 vorgesehen, mittels welchen eine von einem jeweiligen Logikfunktionsblock 104, 105 realisierbare Logik-Teilfunktion aus einer Mehrzahl von realisierbaren Logik-Teilfunktionen zum Verknüpfen der Datensignale a, b ausgewählt werden kann. Diese realisierte Logik-Teilfunktion ist in ersten bis vierten Logikkonfigurationssignalen cfg0, cfg1, cfg2, cfg3 kodiert, wobei gemäß dem beschriebenen Ausführungsbeispiel die an den Logikfunktionkonfigurationseingängen 114 bereitgestellten Logikkonfigurationssignale von jenen unterschiedlich sind, die an den Logikfunktionkonfigurationseingängen 115 bereitgestellt sind.
  • Ferner ist ein erster Multiplexer 112 vorgesehen, dessen erster Dateneingang 116 mit einem Ausgang des ersten Logikfunktionsblocks 104 gekoppelt ist, dessen zweiter Dateneingang 117 mit einem Ausgang des zweiten Logikfunktionsblocks 105 gekoppelt ist und dessen Steuereingang 118 mit dem dritten Datensignaleingang 108 gekoppelt ist, mittels welchem an den Steuereingang 118 das dritte Datensignal c angelegt ist.
  • Ferner ist ein zweiter Multiplexer 113 vorgesehen, dessen Steuereingang 118 mit dem vierten Datensignaleingang 109 gekoppelt ist, dessen erster Dateneingang 116 mit dem fünften Datensignaleingang 110 gekoppelt ist und dessen zweiter Dateneingang 117 mit dem sechsten Datensignaleingang 111 gekoppelt ist.
  • Wie in 1 gezeigt, ist der interne Aufbau, das heißt die Struktur der zweiten Logik-Grundzelle 102 mit dem inneren Aufbau der ersten Logik-Grundzelle 101 im Wesentlichen identisch. Allerdings kann der interne Aufbau unterschiedlicher Logik-Grundzellen einer erfindungsgemäßen Logik-Grundzellen-Anordnung abweichend von 1 auch unterschiedlich sein. So sind zum Beispiel bei der dritten Logik-Grundzelle 103 für die beiden Logikfunktionsblöcke 104, 105 jeweils zwei separate Datensignaleingänge vorgesehen. Der erste Logikfunktionsblock 104 weist erste und zweite Datensignaleingänge 106, 107 auf, wohingegen der zweite Logikfunktionsblock 105 siebte und achte Datensignaleingänge 119, 120 aufweist. Anders ausgedrückt können an den ersten und zweiten Datensignaleingangspaaren 106, 107 und 119, 120 unterschiedliche Signale bereitgestellt werden.
  • Wie ferner in 1 gezeigt, sind die an den Eingängen der unterschiedlichen Logik-Grundzellen 101 bis 103 angelegten Signale unterschiedlich, was für die Funktionalität der Logik-Grundzellen-Anordnung 100 wesentlich ist.
  • Im Weiteren wird die Verschaltung der Logik-Grundzellen 101 bis 103 miteinander beschrieben.
  • Der Ausgang des ersten Multiplexers 112 der ersten Logik-Grundzelle 101 ist mit dem ersten Datensignaleingang 116 des zweiten Multiplexers 113 der dritten Logik-Grundzelle 103 gekoppelt. Ferner ist der Ausgang des ersten Multiplexers 112 der zweiten Logik-Grundzelle 102 mit dem zweiten Dateneingang 117 des zweiten Multiplexers 113 der dritten Logik-Grundzelle 103 gekoppelt.
  • Gemäß dem in 1 gezeigten Betriebszustand der Logik-Grundzellen-Anordnung 100 ist an die jeweils ersten Datensignaleingänge 106 der ersten und zweiten Logik-Grundzellen 101, 102 jeweils ein Signal a angelegt. An den zweiten Datensignaleingang 107 der ersten und zweiten Logik-Grundzellen 101, 102 ist gemäß 1 ein zweites Datensignal b angelegt. An dem dritten Datensignaleingang 108 der ersten und zweiten Logik-Grundzellen 101, 102 ist jeweils ein drittes Datensignal c angelegt. Die vierten bis sechsten Datensignaleingänge 109 bis 111, welche mit den zweiten Multiplexern 113 der ersten und zweiten Logik-Grundzellen 101, 102 gekoppelt sind, sind in dem gezeigten Betriebszustand von Signalen frei. Die Multiplexer 113 der ersten und zweiten Logik-Grundzellen 101, 102 sind bei dem in 1 gezeigten Betriebszustand nicht verwendet, so dass sie Ressourcen darstellen, die für andere auf einem Schaltkreis erforderlichen Logikoperationen verwendet werden können.
  • Im Gegensatz dazu sind bei der dritten Logik-Grundzelle die ersten bis dritten sowie die siebten und achten Datensignaleingänge 106 bis 108, 119, 120 von einem Datensignal frei. An den ersten und zweiten Logikfunktionkonfigurationseingängen 114, 115 der dritten Logik-Grundzelle 103 sind keine Signale angelegt. Mit anderen Worten sind die Logikfunktionsblöcke 104, 105 sowie der erste Multiplexer 112 der dritten Logik-Grundzelle 103 gemäß dem Betriebszustand von 1 nicht verwendet, so dass diese als Ressourcen für andere auf einem Schaltkreis durchzuführenden Aufgaben zur Verfügung stehen. Für die Funktionalität der Logik-Grundzellen-Anordnung 100 ist in der dritten Logik-Grundzelle 103 lediglich der zweite Multiplexer 113 maßgeblich, mittels welchem Ausgangssignale der ersten Multiplexer 112 der ersten und zweiten Logik-Grundzellen 101, 102 weiterverarbeitet werden. An dem Steuereingang 118 des zweiten Multiplexers 113 der dritten Logik-Grundzelle 103 ist ein viertes Datensignal d angelegt.
  • Im Weiteren wird die Funktionalität der in 1 gezeigten Logik-Grundzellen-Anordnung 100 beschrieben.
  • Mittels der Logik-Grundzellen-Anordnung 100 wird eine logische Verknüpfung der vier Datensignalen a, b, c, d zu einer Logik-Gesamtfunktion f(d, c, b, a) gemäß folgender Gleichung vorgenommen: f(d, c, b, a) = d·(c·f0(b, a) ∨ c·f1(b, a)) ∨ d·(c·f2(b, a) ∨ c·f3(b, a)) (8)
  • Mittel Anlegens der Logikfunktionssignale cfg0, cfg1, cfg2, cfg3 an die ersten bzw. zweiten Logikkonfigurationseingänge 114, 115 eines jeweiligen Logikfunktionsblocks 104, 105 wird die von dem jeweiligen Logikfunktionsblock 104, 105 durchgeführte Logikoperation f0 bis f3 vorgegeben. Mit anderen Worten bildet die Konfigurationsinformation cfg0, cfg1, cfg2, cfg3 ein Datenwort, mittels welchem jede beliebige aller denkbaren Logikoperationen zum Verknüpfen von zwei Datensignalen a, b von jedem der Logikfunktionsblöcke 104, 105 vorgenommen werden kann.
  • Abweichend von dem in 1 gezeigten Ausführungsbeispiel kann auch eine andere Anzahl von Konfigurationsbits an die Logik-Funktionsblöcke 104, 105 angelegt werden. Auch können an unterschiedliche Logikfunktionsblöcke 104, 105 einer Logik-Grundzelle oder an unterschiedliche Logik-Grundzellen unterschiedliche Konfigurationsbits angelegt werden und somit unterschiedliche Logikfunktionen ausgewählt werden.
  • Gemäß dem in 1 gezeigten Ausführungsbeispiel wird in dem ersten Logikfunktionsblock 104 der ersten Logik-Grundzelle 101 eine logische Verknüpfung f0(a, b) der beiden Eingangssignale a, b durchgeführt und das Ergebnis dieser Logikoperation dem ersten Dateneingang 116 des ersten Multiplexers 112 der ersten Logik-Grundzelle 101 zugeführt. In ähnlicher Weise werden gemäß der Funktionalität des zweiten Logikfunktionsblocks 105 das erste Datensignal a und das zweite Datensignal b miteinander derart verknüpft, dass an dem Ausgang des zweiten Logikfunktionsblocks 105 der ersten Logik-Grundzelle 101 ein Logikergebnis f1(a, b) bereitgestellt ist. Mittels der Funktionalität des ersten Multiplexers 112 der ersten Logik-Grundzelle 101 werden die beiden Logik-Teilfunktionen f0, f1 unter Verwendung des an dem Steuereingang 118 des ersten Multiplexers 112 bereitgestellten dritten Datensignals c einer solchen logischen Verknüpfung unterzogen, dass an dem Ausgang des ersten Multiplexers 112 die Logik-Teilfunktion fI(a, b, c) bereitgestellt ist.
  • An einem ersten Abgreif-Ausgang 121 (der auch als erster Datensignalausgang bezeichnet werden kann) ist ein Signal an dem Ausgang des jeweils ersten Logikfunktionsblocks 104 einer jeweiligen Logik-Grundzelle 101 bis 103 abgreifbar. An einem zweiten Abgreif-Ausgang 122 (der auch als zweiter Datensignalausgang bezeichnet werden kann) ist ein Signal an dem Ausgang des jeweils zweiten Logikfunktionsblocks 105 einer jeweiligen Logik-Grundzelle 101 bis 103 abgreifbar. Ferner ist an einem dritten Abgreif-Ausgang 123 (der auch als dritter Datensignalausgang bezeichnet werden kann) ein Signal an dem Ausgang des jeweils ersten Multiplexers 112 einer jeweiligen Logik-Grundzelle 101 bis 103 abgreifbar.
  • In ähnlicher Weise wird aufgrund der Funktionalität der ersten und zweiten Logikfunktionsblöcke 104, 105 der zweiten Logik-Grundzelle 102 an deren Ausgängen Logik-Teilfunktionen f2, f3 bereitgestellt und den Dateneingängen 116, 117 des ersten Multiplexers 112 der zweiten Logik-Grundzelle 102 zugeführt. Diese Logik-Teiltunktion f2, f3 werden unter Verwendung des dritten Datensignals c an dem Steuereingang 118 des ersten Multiplexers 112 der zweiten Logik-Grundzelle derart miteinander logisch verknüpft, dass an dem Ausgang des Multiplexers 112 eine Logik-Teilfunktion fII(a, b, c) bereitgestellt ist.
  • Anschaulich repräsentiert die Logik-Teilfunktion fI den Ausdruck in der Klammer des ersten Terms in Gleichung (8), wohingegen fII in Gleichung (8) den Ausdruck in der Klammer des zweiten Terms repräsentiert. Unter Verwendung des vierten Datensignals d, welches an dem Steuereingang 118 des zweiten Multiplexers 113 der dritten Logik-Grundzelle 103 bereitgestellt ist, werden die Logik-Teilfunktionen fI und fII miteinander derart verknüpft, dass an dem Ausgang des zweiten Multiplexers 113 der dritten Logik-Grundzelle 103 das Logik-Gesamtsignal f(a, b, c, d) gemäß Gleichung (8) bereitgestellt ist.
  • Es ist anzumerken, dass abweichend von der in 1 gezeigten Verschaltung es alternativ auch möglich ist, dass das Bilden der Gesamtfunktion f(a, b, c, d) aus den Teilfunktionen fI(a, b, c) und fII(a, b, c) sowie aus dem Datensignal d nicht unter Verwendung der beiden Logik-Grundzellen 101, 102 sowie des freien zweiten Multiplexers 113 der dritten Logik-Grundzelle 103 erfolgen muss, sondern dass diese Logikoperation unter Verwendung nur der Ressourcen der beiden Logik-Grundzellen 101, 102 erfolgen kann. In diesem Fall werden die Ausgänge der ersten Multiplexer 112 der beiden Logik-Grundzellen 101, 102 mit den beiden Dateneingängen von einem der beiden zweiten Multiplexer 113 von einer der beiden Logik-Grundzellen 101, 102 verschaltet. Das Datensignal d wird dann an dem Steuereingang dieses zweiten Multiplexers 113 bereitgestellt. Mit dieser Verschaltung (anschaulich eine Rückkopplung einer Logik-Grundzelle 101, 102 auf sich selbst) ist es möglich, dass eine Funktion der Komplexität (n + 1) wirklich nur unter Verwendung von Ressourcen von genau zwei Logik-Grundzellen der Komplexität n unter Vermeidung des Belegens eines externen zweiten Multiplexers einer anderen Logik-Grundzelle realisiert wird.
  • Im Weiteren wird bezugnehmend auf 2 ein Logikfunktionsblock 200 gemäß einer bevorzugten Ausführungsform beschrieben.
  • Es ist anzumerken, dass abweichend von dem in 2 gezeigten Logikfunktionsblock 200 im Prinzip jeder beliebige Logikfunktionsblock zum Verknüpfen zweier Datensignale a0, a1 verwendet werden kann. Die Datensignale a0, a1 aus 2 entsprechen anschaulich den Datensignalen a, b aus 1.
  • Der erste Datensignaleingang 201 aus 1 entspricht im Wesentlichen dem ersten Datensignaleingang 106 aus 1, wohingegen der zweite Datensignaleingang 202 aus 2 dem zweiten Datensignaleingang 107 aus 1 entspricht. Der globale Ausgang 209 aus 2 entspricht im Wesentlichen dem Ausgang eines jeweiligen Logikfunktionsblocks 104, 105.
  • Mit anderen Worten ist in 2 ein Beispiel für die innere Struktur eines Logikfunktionsblocks 104, 105 dargestellt.
  • Der Logikfunktionsblock 200 weist einen ersten Datensignal-Eingang 201 und einen zweiten Datensignal-Eingang 202 auf, an denen zwei Datensignale a0 bzw. a1 bereitgestellt sind. Der Logikfunktionsblock 200 enthält eine mit den Datensignal-Eingängen 201, 202 gekoppelte erste Signalpfad-Einheit 203 mit einer Mehrzahl von n-MOS-Transistoren 204 (n-Leitungstyp), wobei die n-MOS-Transistoren 204 derart miteinander verschaltet sind, dass sie eine erste Logik-Teilfunktion von einer Mehrzahl von Logik-Teilfunktionen zur Logik-Verknüpfung der zwei Datensignale a0, a1 realisieren, so dass ein das Ergebnis der ersten Logik-Teilfunktion repräsentierendes Ausgangssignal an Ausgang 207 bereitgestellt wird. Ferner enthält der Logikfunktionsblock 200 eine mit den Datensignal-Eingängen 201, 202 gekoppelte zweite Signalpfad-Einheit 205 mit einer Mehrzahl von p-MOS-Transistoren 206 (des p-Leitungstyps, welcher zu dem n-Leitungstyps komplementär ist). Die p-MOS-Transistoren 206 sind miteinander derart verschaltet, dass sie eine zweite Logik-Teilfunktion von einer Mehrzahl unterschiedlicher Logik-Teilfunktionen zur Logik-Verknüpfung der zwei Datensignale a0, a1 realisieren, so dass ein das Ergebnis der zweiten Logik-Teilfunktion repräsentierendes Ausgangssignal an Ausgang 207 bereitgestellt wird, wobei das Ergebnis der zweiten Logik-Teilfunktion invers zu dem Ergebnis der ersten Logik-Teilfunktion ist. Zwischen Ausgang 207 und einem globalen Ausgang 209, der mit einem Dateneingang 116 oder 117 eines nachgeschalteten Multiplexers 112 gekoppelt sein kann, ist eine Weiterverarbeitungs-Einheit 208 geschaltet, mittels welcher Ausgangssignale weiterverarbeitet werden können, zum Bereitstellen eines weiterverarbeiteten Ausgangssignals an dem globalen Ausgang 209. An dem globalen Signalausgang 209 des Logikfunktionsblocks 200 ist das Ausgangssignal f(a0, a1) bereitgestellt, welches die Logik-Verknüpfung der Eingabesignale a0, a1 entsprechend der ausgewählten Logik darstellt und bereits einer (optionalen) Weiterverarbeitung unterzogen worden ist.
  • Wie ferner in 2 gezeigt, ist den Signalpfad-Einheiten 203, 205 jeweils ein erstes Logikfunktionssignal c0 und ein zweites Logikfunktionssignal c1 bereitgestellt, welche Logikfunktionssignale mittels der ersten und zweiten Logikfunktionkonfigurationseingänge 114, 115 aus 1 dem jeweiligen Logikfunktionsblock 200, 104, 105 bereitgestellt sind. Mittels Vorgebens dieser Logikfunktionssignale c0, c1 werden die Transistoren 204 bzw. 206 der Signalpfad-Einheit 203 bzw. 205 derart angesteuert, dass die Signale a0, a1 von den Signalpfad-Einheiten 203 bzw. 205 entsprechend der ersten Logikfunktion bzw. der zweiten Logikfunktion miteinander verknüpft werden. Somit wird anschaulich mittels Vorgebens der logischen Werte der Logikfunktionssignale c0, c1 eine ganz bestimmte Logikfunktion ausgewählt.
  • Im Weiteren wird die der Funktionalität eines bevorzugten Ausführungsbeispiels des Logikfunktionsblocks der erfindungsgemäßen Logik-Grundzelle zugrundliegende theoretische Basis basierend auf der boolschen Logik beschrieben.
  • Eine boolsche Funktion lässt sich in der kanonisch-konjunktiven Normalform als ODER-Verknüpfung der Produktterme ihrer n Eingänge ausdrücken (in 2 beispielsweise ist n = 2, da zwei Eingangssignale a1, a0 bereitgestellt sind). Diesen n Eingängen sind 2n Produktterme zugeordnet.
  • Auf Standard-CMOS-Logik angewendet werden die Produktterme für den logischen Wert ”1” einer Funktion als Serienpfad von p-Kanal-Transistoren realisiert (in 2 beispielsweise: p-Kanal-Transistoren 206). Der Logik-Wert ”0” wird entsprechend als Serienpfad aus n-Kanal-Transistoren realisiert (in 2: n-MOS-Transistoren 204). Entsprechend kann jede Logik-Funktion, gemäß welcher an n Eingängen bereitgestellte Signale miteinander Logik-verknüpft werden, aus 2n Produkttermen zusammengesetzt werden, indem anschaulich Produktterme zu- oder abgeschaltet werden.
  • Für zwei Eingänge a0 und a1 (wie in 2) gilt:
    Figure 00430001
    mit ki = {0, 1} mit i = 0, 1, ...7 (11)
  • Jede Funktion y = f(a0, a1) wird gebildet, indem vier Werte der Schaltkoeffizienten oder Logikfunktionsvariablen k0 bis k7 auf einen Wert logisch ”1” und die restlichen auf einen Wert logisch ”0” gesetzt werden. Da in CMOS-Logik die p-Kanal-Transistoren mit einem elektrischen Potential ”0” am Steuer- oder Gate-Anschluss öffnen, die n-Kanal-Transistoren hingegen bei einem elektrischen Potential mit einem Wert ”1”, lassen sich die Produktterme in Gleichungen (9), (10) zu einander ausschließenden Paaren ordnen. In Gleichungen (9), (10) schließen sich die jeweils ersten Produktterme gegenseitig logisch aus, ebenso die jeweils zweiten, die jeweils dritten und die jeweils vierten.
  • Für die Schaltkoeffizienten ki gilt die Beziehung:
    Figure 00430002
  • Aus Gleichungen (10), (11), (12) ergibt sich nach Zusammenfassen zu vier unabhängigen Schaltvariablen c0, c1, c2, c3:
    Figure 00440001
    mit ci = {0, 1} mit i = 0, 1, ... 3 (15)
  • Anschaulich entspricht Gleichung (13) den Pfad von p-MOS-Transistoren 206 in 2, wohingegen Gleichung (14) dem Pfad von n-MOS-Transistoren 204 in 2 entspricht. Allerdings sind in 2 nur zwei statt vier Logikfunktionsvariablen gezeigt.
  • Im Weiteren wird bezugnehmend auf 3 eine halbleitertechnologische Realisierung der Funktion gemäß Gleichungen (13), (14) auf Basis von Transistoren als möglicher Logikfunktionsblock 104, 105 für eine Logik-Grundzelle 101 bis 103 der Logik-Grundzellen-Anordnung aus l beschrieben.
  • Bei dem Logikfunktionsblock 300 aus 3 ist an einem ersten Datensignal-Eingang 201 ein erstes Datensignal a0 bereitgestellt. Ferner wird an einem zweiten Datensignal-Eingang 202 ein zweites Datensignal a1 bereitgestellt. Mittels eines ersten Inverter-Schaltkreises 301 wird aus dem ersten Datensignal a0 das dazu komplementäre Signal
    Figure 00440002
    gebildet. Der erste Datensignal-Eingang 201 ist mit dem Gate-Bereich eines ersten n-MOS-Inverter-Transistors 302 gekoppelt. Ferner ist der erste Datensignal-Eingang 201 mit dem Gate-Anschluss eines ersten p-MOS-Inverter-Transistors 303 gekoppelt. Ein erster Source-/Drain-Bereich des ersten p-MOS-Inverter-Transistors 303 ist auf das elektrische Versorgungspotential 307 gebracht. Der zweite Source-/Drain-Bereich des ersten p-MOS-Inverter-Transistors 303 ist mit einem ersten Source-/Drain-Bereich des ersten n-MOS-Inverter-Transistors 302 gekoppelt, dessen zweiter Source-/Drain-Bereich auf das elektrische Massepotential 308 gebracht ist.
  • Ferner ist ein zweiter Inverter-Schaltkreis 304 vorgesehen, mittels welchen aus dem zweiten Datensignal a1 dessen logisch komplementäres Signal
    Figure 00450001
    gebildet wird. Der zweite Datensignal-Eingang 202 ist mit den Gate-Anschlüssen eines zweiten n-MOS-Inverter-Transistors 305 und eines zweiten p-MOS-Inverter-Transistors 306 gekoppelt, welche Transistoren 305, 306 den zweiten Inverter-Schaltkreis 304 bilden. Ein erster Source-/Drain-Bereich des zweiten p-MOS-Inverter-Transistors 306 ist mit dem ersten Source-/Drain-Bereich des ersten p-MOS-Inverter-Transistors 303 gekoppelt, wohingegen der zweite Source-/Drain-Anschluss des zweiten p-MOS-Inverter-Transistors 306 mit einem ersten Source-/Drain-Anschluss des zweiten n-MOS-Inverter-Transistors 305 gekoppelt ist. Der zweite Source-/Drain-Anschluss des zweiten n-MOS-Inverter-Transistors 305 ist auf das elektrische Massepotential 308 gebracht.
  • Wie in 3 gezeigt, werden die Datensignale und deren logisch komplementäre Werte einer Signalpfad-Einheit 309 bereitgestellt. An einem ersten Signalpfad-Eingang 310 ist das Signal
    Figure 00450002
    bereitgestellt. An einem zweiten Signalpfad-Eingang 311 ist das Signal
    Figure 00450003
    bereitgestellt. An einem dritten Signalpfad-Eingang 312 ist das Signal a0 bereitgestellt. An einem vierten Signalpfad-Eingang 313 ist das Signal a1 bereitgestellt.
  • Die Signalpfad-Einheit 309 ist gebildet aus ersten bis zwölften p-MOS-Logik-Transistoren 314 bis 325 und aus ersten bis zwölften n-MOS-Logik-Transistoren 326 bis 337. Die ersten bis zwölften p-MOS-Logik-Transistoren 314 bis 325 bilden eine erste Signalpfad-Teileinheit, wohingegen die ersten bis zwölften n-MOS-Logik-Transistoren 326 bis 337 eine zweite Signalpfad-Teileinheit bilden.
  • An einem ersten Logikfunktions-Eingang 338 ist ein erstes Logikfunktionssignal c0 angelegt. An einem zweiten Logikfunktions-Eingang 339 ist ein zweites Logikfunktionssignal c1 bereitgestellt. An einem dritten Logikfunktions-Eingang 340 ist ein drittes Logikfunktionssignal c2 bereitgestellt. An einem vierten Logikfunktions-Eingang 341 ist ein viertes Logikfunktionssignal c3 bereitgestellt.
  • Der vierte Logikfunktions-Eingang 341 ist mit dem Gate-Anschluss des neunten p-MOS-Logik-Transistors 322 und mit dem Gate-Anschluss des ersten n-MOS-Logik-Transistors 326 gekoppelt. Der dritte Logikfunktions-Eingang 340 ist mit den Gate-Anschlüssen des zehnten p-MOS-Logik-Transistors 323 und des zweiten n-MOS-Logik-Transistors 327 gekoppelt. Der zweite Logikfunktions-Eingang 339 ist mit den Gate-Anschlüssen des elften p-MOS-Logik-Transistors 324 und des dritten n-MOS-Logik-Transistors 328 gekoppelt. Der erste Logikfunktions-Eingang 338 ist mit den Gate-Anschlüssen des zwölften p-MOS-Logik-Transistors 325 und des vierten n-MOS-Logik-Transistors 329 gekoppelt.
  • Der erste Datensignal-Eingang 310 ist mit dem Gate-Anschluss des fünften n-MOS-Logik-Transistors 330, des sechsten p-MOS-Logik-Transistors 319, des siebten n-MOS-Logik-Transistors 332 und des vierten p-MOS-Logik-Transistors 317 gekoppelt. Der zweite Datensignal-Eingang 311 ist mit den Gate-Anschlüssen des neunten n-MOS-Logik-Transistors 334, des zehnten n-MOS-Logik-Transistors 335, des dritten p-MOS-Logik-Transistors 316 und des achten p-MOS-Logik-Transistors 321 gekoppelt. Der dritte Datensignal-Eingang 312 ist mit den Gate-Anschlüssen des fünften p-MOS-Logik-Transistors 318, des sechsten n-MOS-Logik-Transistors 331, des siebten p-MOS-Logik-Transistors 320 und des achten n-MOS-Logik-Transistors 333 gekoppelt. Der vierte Datensignal-Eingang 313 ist mit den Gate-Anschlüssen des ersten p-MOS-Logik-Transistors 314, des zweiten p-MOS-Logik-Transistors 315, des elften n-MOS-Logik-Transistors 336 und des zwölften n-MOS-Logik-Transistors 337 gekoppelt.
  • Erste Source-/Drain-Anschlüsse der ersten bis vierten p-MOS-Logik-Transistoren 314 bis 317 sind auf das elektrische Potential der Versorgungsspannung 307 gebracht. Der zweite Source-/Drain-Anschluss des ersten p-MOS-Logik-Transistors 314 ist mit einem ersten Source-/Drain-Anschluss des fünften p-MOS-Logik-Transistors 318 gekoppelt, dessen zweiter Source-/Drain-Anschluss mit einem ersten Source-/Drain-Anschluss des neunten p-MOS-Logik-Transistors 322 gekoppelt ist. Der zweite Source-/Drain-Anschluss des zweiten p-MOS-Logik-Transistors 315 ist mit einem ersten Source-/Drain-Anschluss des sechsten p-MOS-Logik-Transistors 319 gekoppelt, dessen zweiter Source-/Drain-Anschluss mit einem ersten Source-/Drain-Anschluss des zehnten p-MOS-Logik-Transistors 323 gekoppelt ist. Der zweite Source-/Drain-Anschluss des dritten p-MOS-Logik-Transistors 316 ist mit einem ersten Source-/Drain-Anschluss des siebten p-MOS-Logik-Transistors 320 gekoppelt, dessen zweiter Source-/Drain-Anschluss mit einem ersten Source-/Drain-Anschluss des elften p-MOS-Logik-Transistors 324 gekoppelt ist. Der zweite Source-/Drain-Anschluss des vierten p-MOS-Logik-Transistors 317 ist mit einem ersten Source-/Drain-Anschluss des achten p-MOS-Logik-Transistors 321 gekoppelt, dessen zweiter Source-/Drain-Anschluss mit einem ersten Source-/Drain-Anschluss des zwölften p-MOS-Logik-Transistors 325 gekoppelt ist.
  • Die zweiten Source-/Drain-Anschlüsse der neunten bis zwölften p-MOS-Logik-Transistoren 322 bis 325 sind mit dem Ausgang 207 und mit ersten Source-/Drain-Anschlüssen der ersten bis vierten n-MOS-Logik-Transistoren 326 bis 329 gekoppelt. Der zweite Source-/Drain-Anschluss des ersten n-MOS-Logik-Transistors 326 ist mit einem ersten Source-/Drain-Anschluss des fünften n-MOS-Logik-Transistors 330 gekoppelt, dessen zweiter Source-/Drain-Anschluss mit einem ersten Source-/Drain-Anschluss des neunten n-MOS-Logik-Transistors 334 gekoppelt ist. Der zweite Source-/Drain-Anschluss des zweiten n-MOS-Logik-Transistors 327 ist mit einem ersten Source-/Drain-Anschluss des sechsten n-MOS-Logik-Transistors 331 gekoppelt, dessen zweiter Source-/Drain-Anschluss mit einem ersten Source-/Drain-Anschluss des zehnten n-MOS-Logik-Transistors 335 gekoppelt ist. Der zweite Source-/Drain-Anschluss des dritten n-MOS-Logik-Transistors 328 ist mit einem ersten Source-/Drain-Anschluss des siebten n-MOS-Logik-Transistors 332 gekoppelt, dessen zweiter Source-/Drain-Anschluss mit einem ersten Source-/Drain-Anschluss des elften n-MOS-Logik-Transistors 336 gekoppelt ist. Ferner ist der zweite Source-/Drain-Anschluss des vierten n-MOS-Logik-Transistors 329 mit einem ersten Source-/Drain-Anschluss des achten n-MOS-Logik-Transistors 333 gekoppelt, dessen zweiter Source-/Drain-Anschluss mit einem ersten Source-/Drain-Anschluss des zwölften n-MOS-Logik-Transistors 337 gekoppelt ist. Die zweiten Source-/Drain-Anschlüsse der neunten bis zwölften n-MOS-Logik-Transistoren 334 bis 337 sind miteinander gekoppelt und auf das elektrische Massepotential 308 gebracht.
  • An dem Ausgang 207 ist das Ausgangssignal yint bereitgestellt.
  • Aus dem Ausgangssignal yint an dem Ausgang 207 wird unter Verwendung eines dritten Inverter-Schaltkreises 342 das Logik-Inverse y0 gebildet, das an einem globalen Ausgang 345 bereitgestellt ist. Das Ausgangssignal yint wird durch den dritten Inverter-Schaltkreis 342 geführt, gebildet aus einem dritten n-MOS-Inverter-Transistor 343 und einem dritten p-MOS-Inverter-Transistor 344. Der Ausgang 207 ist mit den Gate-Anschlüssen der Transistoren 344, 343 gekoppelt. Ein erster Source-/Drain-Anschluss des dritten p-MOS-Inverter-Transistors 344 ist auf das elektrische Versorgungspotential 307 gebracht. Der zweite Source-/Drain-Anschluss des dritten p-MOS-Inverter-Transistors 344 ist mit einem ersten Source-/Drain-Anschluss des dritten n-MOS-Inverter-Transistors 343 gekoppelt, dessen zweiter Source-/Drain-Anschluss auf das elektrische Massepotential 308 gebracht ist. Der zweite Source-/Drain-Anschluss des dritten p-MOS-Inverter-Transistors 344 und der erste Source-/Drain-Anschluss des dritten n-MOS-Inverter-Transistors 343 sind mit dem globalen Ausgang 345 gekoppelt.
  • Im Weiteren wird die Funktionalität des Logikfunktionsblocks 300 beschrieben.
  • Die Signalpfad-Einheit 309 führt anschaulich die Logikoperationen mit den Eingabesignalen
    Figure 00490001
    a0 und a1 durch. Die Funktionalität von Gleichung (13) wird anschaulich von den in 3 gezeigten Weise verschalteten p-MOS-Transistoren 314 bis 325 durchgeführt, wohingegen die Logikoperation gemäß Gleichung (14) anschaulich durch die n-MOS-Transistoren 326 bis 337 durchgeführt wird. Zwischen den Datensignal-Eingängen 201, 202 und den Signalpfad-Eingängen 310 bis 313 sind die beiden Inverter-Schaltkreise 301, 304 vorgesehen, um die komplementären Signale
    Figure 00490002
    zu generieren. Zwischen Ausgang 207 und dem globalen Ausgang 345 ist der treibende Inverter-Schaltkreis 342 geschaltet. Für den Logikfunktionsblock 300 mit zwei Eingängen 201, 202 werden gemäß dem beschriebenen Ausführungsbeispiel dreißig Transistoren benötigt, nämlich die zwölf p-MOS-Logik-Transistoren 314 bis 325, die zwölf n-MOS-Logik-Transistoren 326 bis 337 und die sechs Transistoren 302, 303, 305, 306, 343, 344. Die Anzahl der Konfigurationsbits bzw. der Logikfunktionssignale ist vier (c0, c1, c2, c3).
  • Es ist anzumerken, dass anstelle von vier gemeinsamen Logikfunktionssignalen c0 bis c3 alternativ auch die zwölf p-MOS-Logik-Transistoren 314 bis 325 mit vier separaten Logikfunktionssignalen betrieben werden können und die zwölf n-MOS-Logik-Transistoren 326 bis 337 mit vier separaten, von c0 bis c3 unterschiedlichen Logikfunktionssignalen betrieben werden können.
  • Im Weiteren wird bezugnehmend auf 4 eine Logik-Grundzelle 400 beschrieben.
  • Die Logik-Grundzelle 400 ist gebildet aus ersten und zweiten Logikfunktionsblöcken 104, 105, einem ersten Multiplexer 112 und einem zweiten Multiplexer 113. Bei der Logik-Grundzelle 400 sind erste bis achte Datensignaleingänge 401 bis 408 dargestellt, an denen Datensignale x0 bis x7 bereitgestellt werden können. An Datensignaleingängen 401, 402 des ersten Logikfunktionsblocks 104 sind erste und zweite Datensignale x0, x1 bereitstellbar. Der Ausgang des ersten Logikfunktionsblocks 104 ist mit einem ersten Dateneingang 116 des ersten Multiplexers 112 gekoppelt und ist ferner mit einem Eingang eines ersten Registers 412 einer Registerstufe 411 gekoppelt, welche erste Stufe 411 den Multiplexern 112, 113 sowie den Logikfunktionsblöcken 104, 105 nachgeschaltet ist. Das Logiksignal y0, das aus einer logischen Verknüpfung der ersten und zweiten Datensignale x0, x1 gemäß der Funktionalität des ersten Logikfunktionsblocks 104 generiert wird, wird an einem Ausgang als y0 bereitgestellt. Ferner wird es nach Durchlaufen des ersten Registers 412 an einem Ausgang dieses Registers 412 als yreg0 bereitgestellt und ist somit abgreifbar. Das Signal y0 kann beliebig weiterverarbeitet werden.
  • Der zweite Datensignaleingang 117 des ersten Multiplexers 112 ist mit einem Ausgang des zweiten Logikfunktionsblocks 105 gekoppelt, so dass an dem zweiten Dateneingang 117 die Logikverknüpfung von dritten und vierten Datensignalen x2, x3 abgreifbar sind, welche an dritten und vierten Datensignaleingängen 403, 404 dem zweiten Logikfunktionsblock 105 bereitgestellt sind. Die Ausgangssignale der ersten und zweiten Logikfunktionsblöcke 104, 105 werden unter Verwendung des ersten Multiplexers 112, welchem an einem Steuereingang 118 ein fünftes Datensignal x4 über einen fünften Datensignaleingang 405 bereitgestellt ist, Logik-verknüpft. Das daraus resultierende Logik-Signal am Ausgang des ersten Multiplexers 112 wird direkt als Signal y1 bereitgestellt und wird unabhängig davon einem zweiten Register 413 zugeführt, an dessen Ausgang das Signal als yreg1 abgreifbar ist. Ferner ist das Logikergebnis an dem Ausgang des zweiten Logikfunktionsblocks 105 direkt als Signal y2 zur Weiterverarbeitung oder Weiterverwendung bereitgestellt und andererseits nach Durchlaufen eines dritten Registers 414 an dessen Ausgang als yreg2 bereitgestellt.
  • Mittels eines zweiten Multiplexers 113, welcher von dem ersten Multiplexer 112 sowie den Logikfunktionsblöcken 104, 105 elektrisch entkoppelt ist, können sechste bis achte Datensignale x5 bis x7, die an den Dateneingängen 116, 117 beziehungsweise an dem Steuereingang 118 des zweiten Multiplexers 113 über sechste bis achte Datensignaleingänge 406 bis 408 bereitgestellt werden, in dem zweiten Multiplexer 113 logisch verarbeitet werden. Das Ergebnis dieser Logik-Verarbeitung ist einerseits als Logiksignal y3 direkt abgreifbar und andererseits nach Durchlaufen eines vierten Registers 415 als yreg3 abgreifbar. Die ersten bis vierten Register 412 bis 415 werden mittels eines an einem Takteingang 416 bereitgestellten Taktsignals clk getaktet.
  • Im Weiteren wird die Funktionalität der in 4 gezeigten Logik-Grundzelle 400 erläutert.
  • Die in dem ersten Logikfunktionsblock 104 realisierte Logikfunktion f0 sowie die in dem zweiten Logikfunktionsblock 105 realisierte Logikfunktion f1 können mittels Look-up-Tabellen oder anderen Realisierungen implementiert sein. Die konkrete Funktion f0 und f1 wird mittels der 4Bit-Konfigurationsworte cfg0 und cfg1 bestimmt, welche an ersten und zweiten Logikfunktionkonfigurationseingängen 409, 410 der ersten beziehungsweise zweiten Logikfunktionsblöcke 104, 105 bereitgestellt sind.
  • Unter Verwendung der Randbedingungen x0 = x2 = a und x1 = x3 = b sowie x4 = c ist an dem ersten Multiplexer 112 die dreiwertige Funktion y = f(c, b, a) realisiert. Dennoch bleiben die beiden Teilfunktionen f0 und f1 als y0 und y2 am Ausgang der Logik-Grundzelle 400 abgreifbar und können für eine Weiterverknüpfung mit anderen logischen Eingängen in einer anderen Basiszelle beziehungsweise Logik-Grundzelle verwendet werden.
  • Mit Hilfe des zweiten Multiplexers 113 kann jede beliebige Funktion von vier Eingängen realisiert werden, indem die Ausgänge y3* und y3** als Eingänge einer dritten Logik Grundzelle verwendet werden (x5 = y3* und x6 = y3**). Mit x7 = d ist der achte Datensignaleingang 408 belegt. Dann ist die in Gleichung (2) beschriebene Funktion f(d, c, b, a) mit der Logik-Grundzelle 400 realisierbar.
  • Eine Funktion von vier Eingängen lässt sich somit unter Verwendung von zwei Basiszellen oder Logik-Grundzellen realisieren. Innerhalb der dritten Zelle wird lediglich ein zweiter Multiplexer 113 verwendet. Es ist zu betonen, dass die eigentlichen logischen Ressourcen einer Zelle frei bleiben und für andere Anwendungen genutzt werden können.
  • Hinsichtlich der Anzahl der Eingänge der logischen Funktion innerhalb der Logik-Grundzelle kann anstelle einer dreiwertigen Funktion nach dem gleichen Prinzip auch eine vier- oder höherwertige Funktion realisiert werden. Ebenso ist die Anzahl und die Art der Register 412 bis 415 innerhalb der Registerstufe 411 variabel. Zum Beispiel kann ein Teil der Register 412 bis 415 gemäß 4 weggelassen werden. In 4 wird eine maximale Flexibilität zur Verfügung gestellt. Der Fall, das alle Funktionen der Logik-Grundzelle als kombinatorische und als Registerausgänge tatsächlich gebraucht werden, ist in praktischen Anwendungsszenarien nicht immer gegeben. Da Register in der Regel keine kleinen Bausteine sind, ist es zum Einsparen von Ressourcen und Platzbedarf möglich, mit einer kleineren Anzahl von Registern als in 4 auszukommen und die kombinatorischen Ausgänge entsprechend zu multiplexen.
  • Eine Logik-Grundzelle mit allen denkbaren Kombinationen von kombinatorischen und sequentiellen Ausgängen der Grundzelle ist bereitgestellt, wenn die Grundzelle nach dem beschriebenen Prinzip aufgebaut ist. Alle möglichen Eingangsbelegungen der Grundzelle, die mittels Zusammenfassens von Eingängen entstehen, sind mit der Erfindung ebenfalls realisiert, auch dann, wenn die Grundzelle eine Funktion von mehr als drei Eingängen realisiert.
  • Die erfindungsgemäße Logik-Grundzelle findet Einsatzmöglichkeiten überall dort, wo programmierbare oder konfigurierbare Logikstrukturen Anwendung finden. Besonders vorteilhaft ist die Erfindung in einem Gate-Array einsetzbar. Mit einem klassischen FPGA ist jede Verzweigung über einen Multiplexer oder über einen Schalter steuerbar, der von der eingeprägten Ladung einer Speicherzelle gesteuert wird.
  • Wird statt des FPGAs ein Mask-Programmable-Gate-Array (MPGA) als Struktur angenommen, ergibt sich zum Beispiel ein Feld von acht horizontalen Leitungen, die von acht vertikalen Leitungen in einer anderen Metalllage überkreuzt werden. An den Kreuzungspunkten kann mit einem Via, dass heißt mit einer im Wesentlichen orthogonal sich erstreckenden Kopplungsstruktur, eine elektrische Kopplung hergestellt werden. Somit lassen sich alle denkbaren Kombinationen zwischen Ein- und Ausgängen leicht und im Layout sehr kompakt herstellen. Zur logischen Konfiguration und zur logischen Verdrahtung genügt eine einzige, variable Maskenebene (zum Beispiel ”Via1”). In Hinblick auf die Kosten für einen Maskensatz in künftigen Technologiegenerationen stellt eine Realisierung als MPGA eine besonders vorteilhafte Realisierung dar.
  • Im Weiteren wird bezugnehmend auf 5 eine Logik-Grundzelle 500 gemäß einem Ausführungsbeispiel der Erfindung beschrieben.
  • Bei der Logik-Grundzelle 500 sind erste bis neunte Datensignaleingänge 501 bis 509 vorgesehen. Der erste Datensignaleingang 501 ist mit einem ersten Eingang eines ersten Logikfunktionsblocks 510 gekoppelt, dem mittels des ersten Datensignaleingangs 501 ein erstes Datensignal x0 bereitgestellt ist. An einem zweiten Datensignaleingang 502 ist ein zweites Datensignal x1 bereitgestellt, das einem ersten Dateneingang eines ersten Multiplexers 512 bereitgestellt ist. Der Datenausgang des ersten Multiplexers 512 ist mit einem zweiten Signaleingang des ersten Logikfunktionsblocks 510 gekoppelt, wobei der Ausgang des ersten Logikfunktionsblocks 510 mit einem ersten Signaleingang eines zweiten Multiplexers 513 gekoppelt ist. Der erste Logikfunktionsblock 510 realisiert die Logikteilfunktion f0(x1~, x0). x1~ ist das Ausgangssignal des ersten Multiplexers 512. Der Signalausgang des ersten Logikfunktionsblocks 510 ist außerdem mit einem ersten Dateneingang eines dritten Multiplexers 514 gekoppelt. Ferner ist der Signalausgang des dritten Multiplexers 514 mit einem ersten Datensignalausgang 518 gekoppelt, an welchem das Ausgangssignal y0 bereitgestellt ist. Der Signalausgang des ersten Logikfunktionsblocks 510 ist ferner mit einem zweiten Datensignalausgang 519 der Logik-Grundzelle 500 gekoppelt und ist mit einem ersten Signaleingang eines fünften Multiplexers 516 gekoppelt. Der Signalausgang des dritten Multiplexers 514 ist mit einem zweiten Signaleingang des fünften Multiplexers 516 gekoppelt. Einem dritten Signaleingang des fünften Multiplexers 516 ist ein an einem dritten Datensignaleingang 503 bereitgestelltes drittes Signal x2 bereitgestellt. Ein viertes Datensignal x3 ist an einem vierten Datensignaleingang 504 bereitgestellt, der mit einem zweiten Dateneingang des zweiten Multiplexers 513 gekoppelt ist. Der zweite Multiplexer 513 verknüpft die an seinen Dateneingängen bereitgestellten Signale zum Bilden von x2~ (dem Ausgangssignal des zweiten Multiplexers 513). Die Logikteilfunktion, die mittels des zweiten Logikfunktionsblocks 511 realisiert wird, ist f1(x4, x2~).
  • Das Ausgangssignal des zweiten Logikfunktionsblocks 511 ist dem zweiten Datensignaleingang des ersten Multiplexers 512 bereitgestellt und mit dem zweiten Datensignaleingang des dritten Multiplexers 514 gekoppelt. Ein an einem sechsten Datensignaleingang 506 bereitgestelltes Signal x5 ist mit einem Steuereingang des dritten Multiplexers 514 gekoppelt. Ein Datensignalausgang des zweiten Logikfunktionsblocks 511 ist mit einem vierten Signaleingang des fünften Multiplexers 516 gekoppelt. Ferner ist an einem siebten Datensignaleingang 507 ein Signal x6 bereitgestellt, das einem ersten Dateneingang eines vierten Multiplexers 515 bereitstellbar ist. Der zweite Signaleingang des vierten Multiplexers 515 ist mit einem achten Datensignaleingang 508 gekoppelt, an dem ein Signal x7 bereitgestellt ist. Ein an einem neunten Datensignaleingang 509 bereitgestelltes Signal x8 ist einem Steuereingang des vierten Multiplexers 515 bereitgestellt, wobei der Signalausgang des vierten Multiplexers 515 mit einem fünften Signaleingang des fünften Multiplexers 516 gekoppelt ist. Ein erster Signalausgang des fünften Multiplexers 516 ist mit einem Signaleingang eines Flip-Flops 517 gekoppelt, dem an einem Steuereingang ein Taktsignal clk bereitgestellt ist. An einem Ausgang des Flip-Flops 517, der einen dritten Datensignalausgang 520 der Logik-Grundzelle 500 bildet, ist ein Signal yreg bereitgestellt. Der Signalausgang des vierten Multiplexers 515 ist mit einem vierten Datensignalausgang 521 gekoppelt, an dem ein Ausgangssignal y2 bereitgestellt ist. Der Datensignalausgang des zweiten Logikfunktionsblocks 511 ist mit einem fünften Datensignalausgang 522 gekoppelt, an dem das Ausgangssignal y3 bereitgestellt ist.
  • Die Logik-Grundzelle aus 5 realisiert beispielsweise die Shannon-Zerlegung, indem die Ausgangssignale der ersten und zweiten Logikfunktionsblöcke 510, 511 mittels des dritten Multiplexers 514 gemultiplext werden, und somit mit dem Signal x5 verknüpft werden.
  • Eine iterative Zerlegung ist beispielsweise mittels der Verschaltung des ersten Logikfunktionsblocks 510 und des zweiten Multiplexers 513 realisiert, da das Ausgangssignal des ersten Logikfunktionsblocks 510 (f0(x1~, x0)) dem Signaleingang des zweiten Multiplexers 513 bereitgestellt wird, wodurch eine Pipeline-artige Struktur gebildet wird.
  • In einer Ausgestaltung, bei welcher der dritte Multiplexer 514 als Mehrfachfunktions-Einrichtung eingerichtet ist, so dass er selektiv als Multiplexer oder als Logikfunktionsblock mit einer Funktionalität ähnlich wie die der Logikfunktionsblöcke 510, 511 betrieben werden kann, ist eine disjunkte Zerlegung realisierbar, wenn der dritte Multiplexer 514 in dem Funktionsmodus als Logikfunktionsblock betrieben wird.
  • Die in 5 gezeigte Logik-Grundzelle 500 kann mit beliebigen anderen Logik-Grundzellen verschaltet werden, indem Eingänge 501 bis 509 bzw. Ausgänge 518 bis 522 der Logik-Grundzelle 500 mit Eingängen bzw. Ausgängen von anderen Logik-Grundzellen verschaltet werden. Logikteilfunktionen, wie beispielsweise f0(xl~, x0) können direkt an Datensignalausgänge (hier dem zweiten Datensignalausgang 519 y1) bereitgestellt werden. Ferner ist ein Register bereitgestellt, wozu ein Flip-Flop dienen kann.
  • Bei dem in 5 gezeigten Ausführungsbeispiel der erfindungsgemäßen Logik-Grundzelle 500 sind die Multiplexer 512, 513 und 516 als strukturelle Multiplexer anzusehen, da sie zur logischen Funktion der Logik-Grundzelle 500 nur insofern beitragen, als sie zwischen unterschiedlichen möglichen Pfaden auswählen. Diese Abgrenzung gegenüber den funktionalen Multiplexern, nämlich den dritten und vierten Multiplexern 514, 515 ist besonders für die Realisierung der Logik-Grundzelle 500 in einem structured ASIC (MPGA) von Bedeutung, da statische Multiplexer mit unveränderlicher Multiplex-Funktionalität in einem solchen Fall als Via- oder Metall-programmierte Kammstrukturen ausgelegt werden können.
  • Im Weiteren werden bezugnehmend auf 6A, 6B zwei Ausführungsformen für Multiplexer beschrieben, die als unveränderliche Hardware-Elemente realisiert werden.
  • In 6A ist ein Via-programmierter Multiplexer 600 gezeigt, bei dem Leiterbahnen in einer n-ten Metallisierungsebene 601 ausgeführt sind, wobei auf den Leiterbahnen Signale x0, x1 bzw. x2 bereitstellbar sind. Mittels eines variabel anbringbaren Vias 603 kann die n-te Metallisierungsebene 601 mit einer (n – 1)-ten Metallisierungsebene 602 gekoppelt werden, wodurch eine statische Multiplexer-Funktionalität realisiert wird.
  • Bei dem in 6B gezeigten Metall-programmierten Multiplexer 610 sind wiederum Leiterbahnen in der n-ten Metallisierungsebene 601 gezeigt, auf denen Signale x0, x1 bzw. x2 geführt werden können, wobei mittels Koppelns von nur einer dieser Leiterbahnen mit einem Ausgang y die gewünschte Multiplexer-Funktionalität einmal fest einstellbar ist.
  • Anders ausgedrückt zeigen 6A und 6B einen Via-programmierten Multiplexer 600 und einen Metall-programmierten Multiplexer 610. Durch diese Realisierung können die in 5 gezeigten Multiplexer 512, 513, 516 ohne zusätzliche Transistoren und somit in verringerter Dimension gebildet werden.
  • Der Via-programmierte Multiplexer 600 und der Metall-programmierte Multiplexer 610 sind Ausgestaltungen der statischen Multiplexer 512, 513, 516, deren Multiplexer-Funktionalität einmalig fest vorgegeben und Hardware-mäßig konfiguriert wird, und danach nicht mehr geändert wird.
  • Somit ist in 6A ein Via-programmierter 3:1 Multiplexer 600 und in 6B ein Metall-programmierter 3:1 Multiplexer 610 dargestellt.
  • Die Multiplexer 514, 515 aus 5 dienen der Abbildung von Shannon-zerlegten Funktionen: im Falle des Multiplexers 514 innerhalb der Logik-Grundzelle 500 und im Falle des Multiplexers 515 zur Verknüpfung mehrerer Grundzellen, nämlich der in 5 gezeigten Logik-Grundzelle 500 und mindestens einer in 5 nicht gezeigten anderen Logik-Grundzelle, die als Ausgangssignale die an den siebten und achten Datensignaleingängen 507, 508 bereitgestellten Signale x6, x7 generieren.
  • Im Weiteren wird bezugnehmend auf 7 eine Logik-Grundzellen-Anordnung 700 gemäß einem Ausführungsbeispiel der Erfindung beschrieben.
  • Die Logik-Grundzellen-Anordnung 700 enthält eine erste erfindungsgemäße Logik-Grundzelle 701, eine zweite erfindungsgemäße Logik-Grundzelle 702 und eine dritte erfindungsgemäße Logik-Grundzelle 703, welche miteinander verschaltet sind. Es ist anzumerken, dass die Logik-Grundzellen 701 bis 703 in 7 nur schematisch und nur teilweise gezeigt sind, so dass insbesondere nicht alle Komponenten und Zerlegungen der Logik-Grundzelle 701 bis 703 in 7 gezeigt sind.
  • Es sind bei der Logik-Grundzellen-Anordnung 700 erste bis siebte Datensignaleingänge 704 bis 710 vorgesehen, an denen Signale a bis g bereitgestellt sind. Wie in 7 schematisch angedeutet ist, wird mittels der ersten Logik-Grundzelle 701 eine Funktion von drei Datensignalen c, b, a, nämlich f0(c, b, a) realisiert. Mittels der zweiten Logik-Grundzelle 702 wird eine Funktion f1(c, b, a) der drei Datensignale a, b, c realisiert. Mittels der dritten Logik-Grundzelle 703 wird eine Funktion f2(g, f, e) der Datensignale g, f, e bzw. eine Funktion f3(d, c, b, a) der vier Datensignale d, c, b, a realisiert. An einem ersten Datensignalausgang 711 ist die Funktion f2 bereitgestellt, an einem zweiten Datensignalausgang 312 ist die Funktion f3 dargestellt.
  • Ferner ist in 7 ein Multiplexer 713 in der dritten Logik-Grundzelle 703 dargestellt, in welcher Ausgangssignale der ersten und der zweiten Logik-Grundzellen 701, 702 miteinander Logik-verknüpft werden.
  • Anders ausgedrückt ist in 7 die Bildung einer Funktion f3 von vier Eingangssignalen aus zwei Grundzellen 701, 702 und dem Multiplexer 713 der dritten Logik-Grundzelle 703 gezeigt. Als Multiplexer 713 kann alternativ auch ein freier Multiplexer aus der ersten Logik-Grundzelle 701 oder aus der zweiten Logik-Grundzelle 702 verwendet werden.
  • Bei der Basiskomplexität von n Eingängen pro Logik-Grundzelle werden zum Darstellen einer logischen Funktion von n + k Eingängen mit Hilfe der Shannon-Zerlegung 2k Logik-Grundzellen benötigt. Alternativ können einige logische Funktionen aber auch gemäß Gleichungen (3), (4), (5) dargestellt werden. Dazu wird dann zum Beispiel der logische Pfad über die ersten und zweiten Multiplexer 512, 513 aus 5 genutzt. Der dadurch erreichbare Vorteil wird deutlich, wenn die folgende Funktion exemplarisch betrachtet wird: f(e, d, c, b, a) = e ⊕ d ⊕ c ⊕ b ⊕ a (16)
  • Diese Funktion von fünf Eingängen e, d, c, b, a kann unter Verwendung von Gleichung (1) unter Verwendung von vier Logik-Grundzellen Shannon-zerlegt realisiert werden, wenn man von der Verwendung gemeinsamer Teilfunktionen absieht. e ⊕ d ⊕ c ⊕ b ⊕ a = fS(fS(f1(a, b, c), f2(a, b, c), d), fS(f3(a, b, c), f4(a, b, c), d)), e) (17)
  • Wenn jedoch gemäß Gleichungen (3), (4), (5) eine iterative Zerlegung verwendet wird, so werden zum Realisieren dieser Funktionen lediglich zwei Logik-Grundzellen benötigt: e ⊕ d ⊕ c ⊕ b ⊕ a = f(f(f(f(e, d), c), b), a) (18)
  • In diesem Falle verläuft der kritische Pfad durch vier Gatter.
  • Der dritte Datensignaleingang 503, an dem das Signal x2 bereitgestellt ist, bildet denjenigen kombinatorischen Eingang, mittels welchem das Register 517 direkt erreicht werden kann, ohne kombinatorische Ressourcen zu belegen.
  • Das Register 517 selbst kann mehr als einen Ausgang haben. Abgesehen von einem sequentiellen Ausgang und dessen logisch entgegengesetzten Potential können zusätzliche Registersignale am Ausgang anliegen. Die Registerfunktion selbst kann konfigurierbar ausgelegt werden.
  • Im Weiteren wird bezugnehmend auf 8 eine Logik-Grundzelle 800 gemäß einem Ausführungsbeispiel der Erfindung beschrieben.
  • Die in 8 gezeigte Logik Grundzelle 800 unterscheidet sich von der in 5 gezeigten Logik-Grundzelle 500 im Wesentlichen dadurch, dass die Funktional-Multiplexer 514, 515 aus 1 durch einen ersten Doppelausgang-Multiplexer 801 bzw. durch einen zweiten Doppelausgang-Multiplexer 802 ersetzt sind. Der erste Doppelausgang-Multiplexer 801 weist zusätzlich zu dem in 5 gezeigten Datensignalausgang des dritten Multiplexers 514 einen zusätzlichen Datensignalausgang auf, an dem das zu dem an dem ersten Datensignalausgang bereitgestellten Ausgangsignal komplementäre Signal bereitgestellt wird. Dieses wird dem fünften Multiplexer 516 zugeführt und ist ferner an dem ersten Datensignalausgang 518 bereitgestellt. Darüber hinaus ist ein sechster Datensignalausgang 803 geschaffen, an dem das Ausgangssignal des ersten Doppelausgang-Multiplexers 801 bereitgestellt ist.
  • Der vierte Multiplexer 515 aus 5 ist durch einen zweiten Doppelausgang-Multiplexer 802 ersetzt, an dessen Ausgängen nicht nur das Ausgangssignal des vierten Multiplexers 515, sondern zusätzlich an einem zusätzlichen Datensignalausgang des zweiten Doppelausgang-Multiplexers 802 das zu dem Ausgangssignal logisch inverse Signal bereitgestellt ist. Das Ausgangssignal und das dazu inverse Ausgangssignal werden dem fünften Multiplexer 516 zugeführt. Ferner sind die beiden Signale an dem vierten Datensignalausgang 521 und an einem siebten Datensignalausgang 804 bereitgestellt.
  • Die in 8 gezeigte Realisierung der Erfindung ergibt sich, indem die funktionalen Multiplexer 514, 515 aus 5 durch die ersten und zweiten Doppelausgang-Multiplexer 801, 802 ersetzt werden, die derart ausgelegt sind, dass sie ihr Ergebnis stets negiert und zusätzlich nicht negiert ausgeben. Das hat den Vorteil, dass auch gemeinsame Teilfunktionen, die sich nur im Vorzeichen unterscheiden, nur einmal berechnet werden müssen, wenn die Shannon-Zerlegung benutzt wird. Dies geht aus (19) hervor:
    Figure 00610001
  • Da die ersten und zweiten Doppelausgang-Multiplexer 801, 802 sowohl das logische Ergebnis g(an-1 ... a0) als auch die Negation davon simultan bereitstellen, kann mit dem nächsten Multiplexer die Parity-Funktion direkt erzeugt werden, indem der Steuereingang desselben mit an belegt wird.
  • Gleichung (16) lässt sich in diesem Fall folgendermaßen zerlegen:
    Figure 00620001
  • Für die Zerlegung gemäß Gleichung (20) werden zwei Zellen mit einem kritischen Pfad benötigt, welcher durch ein Gatter und drei Multiplexer verläuft.
  • Zum Unterstützen auch disjunkter Zerlegungen kann anstelle des zweiten Doppelausgang-Multiplexers 802 wiederum eine vollständig konfigurierbare logische Grundzelle bereitgestellt werden, die alle Funktionen von zwei Eingängen realisieren kann, darüber hinaus aber auch als 2:1-Multiplexer betrieben werden kann. Dadurch ist ein Maximum an Flexibilität bei der Abbildung logischer Funktionen erreicht. Insbesondere lassen sich dann auch disjunkte Zerlegungen gemäß Gleichungen (6), (7) effizienter umsetzen. e ⊕ d ⊕ c ⊕ b ⊕ a = f(f(a, b, c), f(d, e)) (21)
  • Diese Zerlegung lässt sich ebenfalls mit zwei Logik-Grundzellen realisieren. Der kritische Pfad verläuft in diesem Fall nur durch zwei Gatter und einen Multiplexer.
  • Im Weiteren wird bezugnehmend auf 9 eine Logik-Grundzelle 900 gemäß einem Ausführungsbeispiel der Erfindung beschrieben.
  • Entsprechend der obigen Beschreibung ist bei der Logik-Grundzelle 900 der zweite Doppelausgang-Multiplexer 802 aus 8 durch eine Multifunktions-Einrichtung 901 ersetzt, die in einem Multiplex-Betriebszustand als Multiplexer betrieben werden kann und die in einem Logikfunktions-Betriebszustand eine beliebig auswählbare Logikfunktion zum Verknüpfen der an ihren Eingängen bereitgestellten Eingangssignale (x6, x7) bewerkstelligt.
  • Größtmögliche logische Flexibilität ist vor allen Dingen im Hinblick auf die Integration der Grundzelle in den Standard-Toolflow wesentlich. Mit der erfindungsgemäßen Logik-Grundzelle können ASIC-Netzlisten, die auf Grundgattern beruhen, direkt weiterverwendet werden.
  • Selbstverständlich kann auch abweichend von 9 der erste Doppelausgang-Multiplexer 801 durch eine Multifunktions-Einrichtung ersetzt werden, womit auf jedem Komplexitätsniveau einer logischen Funktion disjunkte Zerlegungen ermöglicht sind. Auch der erste Logikfunktionsblock 510 und der zweite Logikfunktionsblock 511 können durch eine Multifunktions-Einrichtung ersetzt werden. Multiplexer 513, 514 bzw. 801, 802 können entweder einfache Multiplexer sein (siehe 5), Multiplexer mit invertiertem/nicht-invertiertem Ausgang (siehe 8) oder Logikzellen, die jede Funktion von zwei Eingängen und eine invertierte und nicht invertierte Multiplexerfunktion realisieren können. Es ist aber auch eine Ausprägung der Erfindung möglich, in welcher der erste Logikfunktionsblock 510 in 5 ganz fehlt. Seine Funktion kann beispielsweise von einer Außenbeschaltung von Multiplexer 515 übernommen werden. Genauso kann auf den Multiplexer 515 dann verzichtet werden, wenn die Eingänge des Multiplexers 514 mit Hilfe von zwei zusätzlichen strukturellen Multiplexern für Eingänge der Zelle erreicht sind.
  • Die ersten und zweiten Logikfunktionsblöcke 510, 511 können in jeder beliebigen Kombination zur Realisierung der Multiplexer 514, 515 bzw. 801, 802 bzw. 801, 901 stehen und entweder Logikzellen sein, die jede Funktion von zwei Eingängen realisieren, oder Logikzellen, die jede Funktion von zwei Eingängen und eine invertierte oder nicht invertierte 2:1 Multiplexerfunktion realisieren können.
  • Von der Erfindung erfasst sind ferner Logik-Grundzellen, die mehr als zwei kombinatorische Logikfunktionsblöcke 510, 511 enthalten, die über mehr als einen Multiplexer wie den Multiplexer 801 aus 8 verfügen, bzw. die mehr als einen freien Multiplexer oder keinen freien Multiplexer wie Multiplexer 802 in 8 enthalten. In logisch höher komplexen Zellen können die Multiplexer, wie diskutiert, insbesondere in drei Varianten realisiert sein. Auch für die Realisierung der kombinatorischen Zellen 510, 511 sind alle Varianten möglich.
  • Auch wenn die kombinatorischen Grundzellen korrespondierend zu den Logikfunktionsblöcken 510, 511 nicht alle möglichen, sondern nur einige Funktionen von zwei Eingängen realisieren, sich aber in einer Struktur wie in 5, 8 oder 9 oder einer diskutierten Variante davon befinden, ist das von dieser Erfindung mit umfasst.
  • 10 zeigt eine Logik-Grundzelle 1000 gemäß einem Ausführungsbeispiel der Erfindung.
  • Die Logik-Grundzelle 1000 entspricht in ihrer Struktur im Wesentlichen der Logik-Grundzelle 900 aus 9 mit dem Unterschied, dass der erste Doppelausgang-Multiplexer 801 durch eine erste Multifunktions-Einrichtung 1001 ersetzt ist. Eine zweite Multifunktions-Einrichtung 1002 entspricht in ihrer Struktur der Multifunktions-Einrichtung 901 aus 9.
  • Die erste Multifunktions-Einrichtung 1001 und die zweite Multifunktions-Einrichtung 1002 können denselben oder einen unterschiedlichen Aufbau haben, anders ausgedrückt können die erste Multifunktions-Einrichtung 1001 und die zweite Multifunktions-Einrichtung 1002 eingerichtet sein zum Realisieren der gleichen Art einer Zerlegung der Logikfunktion in mehrere Logikteilfunktionen (Shannon-Zerlegung, iterative Zerlegung oder disjunkte Zerlegung), alternativ können die erste Multifunktions-Einrichtung 1001 und die zweite Multifunktions-Einrichtung 1002 jedoch auch jeweils eine andere Art einer Zerlegung realisieren, insbesondere:
    • • erste Multifunktions-Einrichtung 1001: Shannon-Zerlegung, zweite Multifunktions-Einrichtung 1002: Shannon-Zerlegung;
    • • erste Multifunktions-Einrichtung 1001: Shannon-Zerlegung, zweite Multifunktions-Einrichtung 1002: iterative Zerlegung;
    • • erste Multifunktions-Einrichtung 1001: Shannon-Zerlegung, zweite Multifunktions-Einrichtung 1002: disjunkte Zerlegung;
    • • erste Multifunktions-Einrichtung 1001: iterative Zerlegung, zweite Multifunktions-Einrichtung 1002: Shannon-Zerlegung;
    • • erste Multifunktions-Einrichtung 1001: iterative Zerlegung, zweite Multifunktions-Einrichtung 1002: iterative Zerlegung;
    • • erste Multifunktions-Einrichtung 1001: iterative Zerlegung, zweite Multifunktions-Einrichtung 1002: disjunkte Zerlegung;
    • • erste Multifunktions-Einrichtung 1001: disjunkte Zerlegung, zweite Multifunktions-Einrichtung 1002: Shannon-Zerlegung;
    • • erste Multifunktions-Einrichtung 1001: iterative Zerlegung, zweite Multifunktions-Einrichtung 1002: disjunkte Zerlegung;
    • • erste Multifunktions-Einrichtung 1001: disjunkte Zerlegung, zweite Multifunktions-Einrichtung 1002: disjunkte Zerlegung.
  • Die Logik-Grundzelle 1000 gemäß 10 stellt somit hinsichtlich der Aufteilung der beiden Zerlegungseinheiten den allgemeinsten Fall dar.
  • In diesem Dokument ist folgende Veröffentlichung zitiert:

Claims (21)

  1. Logik-Grundzelle • mit mindestens acht Datensignaleingängen, wobei an jedem Datensignaleingang ein Datensignal bereitstellbar ist; • mit einem ersten Logikfunktionsblock, der mit einem ersten Datensignaleingang und einem zweiten Datensignaleingang der Datensignaleingänge gekoppelt ist; • mit einem zweiten Logikfunktionsblock, der mit einem dritten Datensignaleingang und einem vierten Datensignaleingang der Datensignaleingänge gekoppelt ist; • mit mindestens einem Logikfunktionkonfigurationseingang, mittels welchem eine von dem jeweiligen Logikfunktionsblock realisierbare Logik-Teilfunktion aus einer Mehrzahl von realisierbaren Logik-Teilfunktionen zum Verknüpfen der an dem jeweiligen Logikfunktionsblock anliegenden Datensignale vorgebbar ist; • mit einer ersten Mehrfachfunktionseinrichtung, deren erster Dateneingang mit einem Ausgang des ersten Logikfunktionsblocks und deren zweiter Dateneingang mit einem Ausgang des zweiten Logikfunktionsblocks gekoppelt ist und die selektiv als erster Multiplexer, dessen Steuereingang mit einem fünften Datensignaleingang der Datensignaleingänge gekoppelt ist, oder als dritter Logikfunktionsblock betrieben werden kann; • mit einem zweiten Multiplexer, dessen Steuereingang mit einem sechsten Datensignaleingang der Datensignaleingänge gekoppelt ist, dessen erster Dateneingang mit einem siebten Datensignaleingang der Datensignaleingänge gekoppelt ist und dessen zweiter Dateneingang mit einem achten Datensignaleingang der Datensignaleingänge gekoppelt ist, oder mit einer zweiten Mehrfachfunktionseinrichtung, deren erster Dateneingang mit dem siebten Datensignaleingang der Datensignaleingänge gekoppelt ist und deren zweiter Dateneingang mit dem achten Datensignaleingang der Datensignaleingänge gekoppelt ist und die selektiv als zweiter Multiplexer, dessen Steuereingang mit dem sechsten Datensignaleingang der Datensignaleingänge gekoppelt ist, oder als vierter Logikfunktionsblock betrieben werden kann; • mit einem mit dem Ausgang des ersten Logikfunktionsblocks gekoppelten ersten Datensignalausgang, mit einem mit dem Ausgang des zweiten Logikfunktionsblocks gekoppelten zweiten Datensignalausgang, mit einem mit einem Ausgang der ersten Mehrfachfunktionseinrichtung gekoppelten dritten Datensignalausgang und mit einem mit einem Ausgang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung gekoppelten vierten Datensignalausgang, an welchen Datensignalausgängen ein Signal an dem Ausgang des ersten Logikfunktionsblocks, ein Signal an dem Ausgang des zweiten Logikfunktionsblocks, ein Signal an dem Ausgang der ersten Mehrfachfunktionseinrichtung und ein Signal an dem Ausgang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung jeweils separat abgreifbar ist.
  2. Logik-Grundzelle • mit mindestens acht Datensignaleingängen, wobei an jedem Datensignaleingang ein Datensignal bereitstellbar ist; • mit einem ersten Logikfunktionsblock, der mit einem ersten Datensignaleingang und einem zweiten Datensignaleingang der Datensignaleingänge gekoppelt ist; • mit einem zweiten Logikfunktionsblock, der mit einem dritten Datensignaleingang gekoppelt ist; • mit mindestens einem Logikfunktionkonfigurationseingang, mittels welchem eine von dem jeweiligen Logikfunktionsblock realisierbare Logik-Teilfunktion aus einer Mehrzahl von realisierbaren Logik-Teilfunktionen zum Verknüpfen der an dem jeweiligen Logikfunktionsblock anliegenden Datensignale vorgebbar ist; • mit einem ersten Multiplexer, dessen erster Dateneingang mit einem Ausgang des ersten Logikfunktionsblocks gekoppelt ist, dessen zweiter Dateneingang mit einem Ausgang des zweiten Logikfunktionsblocks gekoppelt ist und dessen Steuereingang mit einem fünften Datensignaleingang der Datensignaleingänge gekoppelt ist, oder mit einer ersten Mehrfachfunktionseinrichtung, deren erster Dateneingang mit dem Ausgang des ersten Logikfunktionsblocks gekoppelt ist und deren zweiter Dateneingang mit dem Ausgang des zweiten Logikfunktionsblocks gekoppelt ist und die selektiv als erster Multiplexer, dessen Steuereingang mit dem fünften Datensignaleingang gekoppelt ist, oder als dritter Logikfunktionsblock betrieben werden kann; • mit einem zweiten Multiplexer, dessen Steuereingang mit einem sechsten Datensignaleingang der Datensignaleingänge gekoppelt ist, dessen erster Dateneingang mit einem siebten Datensignaleingang der Datensignaleingänge gekoppelt ist und dessen zweiter Dateneingang mit einem achten Datensignaleingang der Datensignaleingänge gekoppelt ist, oder mit einer zweiten Mehrfachfunktionseinrichtung, deren erster Dateneingang mit dem siebten Datensignaleingang der Datensignaleingänge gekoppelt ist und deren zweiter Dateneingang mit dem achten Datensignaleingang der Datensignaleingänge gekoppelt ist und die selektiv als zweiter Multiplexer, dessen Steuereingang mit dem sechsten Datensignaleingang gekoppelt ist, oder als vierter Logikfunktionsblock betrieben werden kann; • mit einem mit dem Ausgang des ersten Logikfunktionsblocks gekoppelten ersten Datensignalausgang, mit einem mit dem Ausgang des zweiten Logikfunktionsblocks gekoppelten zweiten Datensignalausgang, mit einem mit einem Ausgang des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung gekoppelten dritten Datensignalausgang und mit einem mit einem Ausgang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung gekoppelten vierten Datensignalausgang, an welchen Datensignalausgängen ein Signal an dem Ausgang des ersten Logikfunktionsblocks, ein Signal an dem Ausgang des zweiten Logikfunktionsblocks, ein Signal an dem Ausgang des ersten Multiplexers oder der ersten Mehrfachfunktionseinrichtung und ein Signal an dem Ausgang des zweiten Multiplexers oder der zweiten Mehrfachfunktionseinrichtung jeweils separat abgreifbar ist; • mit einem dritten Multiplexer mit einem ersten Dateneingang, einem zweiten Dateneingang und einem Datenausgang, wobei der erste Dateneingang mit dem Ausgang des ersten Logikfunktionsblocks gekoppelt ist, der zweite Dateneingang mit einem vierten Datensignaleingang der Datensignaleingänge gekoppelt ist und der Datenausgang mit einem Eingang des zweiten Logikfunktionsblocks gekoppelt ist.
  3. Logik-Grundzelle nach Anspruch 1 oder 2, bei welcher der erste Datensignaleingang mit dem dritten Datensignaleingang und/oder der zweite Datensignaleingang mit dem vierten Datensignaleingang gekoppelt ist.
  4. Logik-Grundzelle nach einem der Ansprüche 1 bis 3, bei der zumindest einer der Logikfunktionsblöcke aufweist: • einen mit zumindest einem Teil der Datensignaleingänge des jeweiligen Logikfunktionsblocks gekoppelten ersten Signalpfad mit einer Mehrzahl von Transistoren eines ersten Leitungstyps, wobei die Transistoren derart miteinander verschaltbar sind, dass sie die von dem jeweiligen Logikfunktionsblock realisierbare Logik-Teilfunktion von allen möglichen Logik-Teilfunktionen zum Verknüpfen der an dem jeweiligen Logikfunktionsblock anliegenden Datensignale realisieren, so dass ein das Ergebnis der Logik-Teilfunktion repräsentierendes Ausgangssignal bereitgestellt wird; • einen mit zumindest einem Teil der Datensignaleingänge des jeweiligen Logikfunktionsblocks gekoppelten zweiten Signalpfad mit einer Mehrzahl von Transistoren eines zu dem ersten Leitungstyp komplementären zweiten Leitungstyps, wobei die Transistoren derart miteinander verschaltbar sind, dass sie eine zu der von den Transistoren des ersten Signalpfads inverse Logik-Teilfunktion von allen möglichen Logik-Teilfunktionen zur logischen Verknüpfung der an dem jeweiligen Logikfunktionsblock anliegenden Datensignale realisieren, so dass ein das Ergebnis der Logik-Teilfunktion repräsentierendes Ausgangssignal bereitgestellt wird.
  5. Logik-Grundzelle nach einem der Ansprüche 1 bis 4, bei der zumindest einer der Logikfunktionsblöcke als • Programmable Logic Device; • Field-Programmable Gate-Array; • maskenprogrammierter Application-Specific Integrated Circuit; • Logik-Gatter oder Anordnung mehrerer Logik-Gatter; oder • Look-Up-Tabelle ausgebildet ist.
  6. Logik-Grundzelle nach einem der Ansprüche 1 bis 5, bei der an dem mindestens einen Logikfunktionkonfigurationseingang dem jeweiligen Logikfunktionsblock die realisierbare Logik-Teilfunktion unveränderlich vorgegeben ist.
  7. Logik-Grundzelle nach Anspruch 6, mit einer mit dem mindestens einen Logikfunktionkonfigurations-Eingang gekoppelten Speicher-Einrichtung, in welcher die Information zum Vorgeben der realisierbaren Logik-Teilfunktion speicherbar ist.
  8. Logik-Grundzelle nach einem der Ansprüche 1 bis 5, bei der an dem mindestens einen Logikfunktionkonfigurationseingang dem jeweiligen Logikfunktionsblock die realisierbare Logik-Teilfunktion mittels eines anlegbaren Signals variabel vorgegeben ist.
  9. Logik-Grundzelle nach einem der Ansprüche 1 bis 8, eingerichtet zum Verarbeiten von digitalen Datensignalen.
  10. Logik-Grundzelle nach einem der Ansprüche 1 bis 9, mit mindestens einem den ersten und zweiten Logikfunktionsblöcken und den ersten und zweiten Multiplexern oder Mehrfachfunktionseinrichtungen nachgeschaltetem Register zum Abgreifen von an mindestens einem Ausgang der Logik-Grundzelle bereitstellbaren Signalen.
  11. Logik-Grundzelle nach einem der Ansprüche 2 bis 10, sofern rückbezogen auf Anspruch 2, welche zum Realisieren einer iterativen Zerlegung der Logikfunktion eingerichtet ist.
  12. Logik-Grundzelle nach einem der Ansprüche 1 bis 10, welche zum Realisieren einer disjunkten Zerlegung der Logikfunktion eingerichtet ist.
  13. Logik-Grundzelle nach Anspruch 11 oder 12, welche ferner zum Realisieren einer Shannon-Zerlegung eingerichtet ist.
  14. Logik-Grundzelle nach einem der Ansprüche 2 bis 13, sofern rückbezogen auf Anspruch 2, welche zum Realisieren einer iterativen Zerlegung und zum Realisieren einer disjunkten Zerlegung eingerichtet ist.
  15. Logik-Grundzelle nach einem der Ansprüche 1 bis 14, eingerichtet als CMOS-Logik-Grundzelle.
  16. Logik-Grundzellen-Anordnung, mit einer Mehrzahl von miteinander verschalteten Logik-Grundzellen nach einem der Ansprüche 1 bis 15.
  17. Logik-Grundzellen-Anordnung nach Anspruch 16, bei welcher der Ausgang des ersten Multiplexers oder der ersten Mehrfachfunktions-Einrichtung einer ersten Logik-Grundzelle mit dem ersten Dateneingang des zweiten Multiplexers oder der zweiten Mehrfachfunktions-Einrichtung einer zweiten Logik-Grundzelle gekoppelt ist.
  18. Logik-Grundzellen-Anordnung nach Anspruch 17, bei welcher der Ausgang des ersten Multiplexers oder der ersten Mehrfachfunktions-Einrichtung einer dritten Logik-Grundzelle mit dem zweiten Dateneingang des zweiten Multiplexers oder der zweiten Mehrfachfunktions-Einrichtung der zweiten Logik-Grundzelle gekoppelt ist.
  19. Logik-Grundzellen-Anordnung nach Anspruch 17 oder 18, bei welcher zumindest einer der Dateneingänge des zweiten Multiplexers oder der zweiten Mehrfachfunktions-Einrichtung der ersten und/oder dritten Logik-Grundzelle von einer Kopplung mit anderen Logik-Grundzellen frei ist.
  20. Logik-Grundzellen-Anordnung nach einem der Ansprüche 17 bis 19, bei welcher der erste und/oder zweite Logikfunktionsblock und/oder der erste Multiplexer oder die erste Mehrfachfunktions-Einrichtung der zweiten Logik-Grundzelle von einer Kopplung mit anderen Logik-Grundzellen frei sind.
  21. Logik-Grundzellen-Anordnung nach Anspruch 19 oder 20, bei der zumindest ein Teil des/der mindestens einen von einer Kopplung mit anderen Logik-Grundzellen freien Logikfunktionsblocks und/oder Multiplexers oder Mehrfachfunktions-Einrichtung mit einem zusätzlichen Schaltkreis derart verschaltbar sind, dass der Logikfunktionsblock und/oder der Multiplexer oder die Mehrfachfunktions-Einrichtung zu der Funktionalität des zusätzlichen Schaltkreises beiträgt.
DE102004056322A 2003-11-21 2004-11-22 Logik-Grundzelle und Logik-Grundzellen-Anordnung Expired - Fee Related DE102004056322B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102004056322A DE102004056322B4 (de) 2003-11-21 2004-11-22 Logik-Grundzelle und Logik-Grundzellen-Anordnung

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
DE10354499.2 2003-11-21
DE10354499 2003-11-21
DE102004025579 2004-05-25
DE102004025579.2 2004-05-25
DE102004056322A DE102004056322B4 (de) 2003-11-21 2004-11-22 Logik-Grundzelle und Logik-Grundzellen-Anordnung

Publications (2)

Publication Number Publication Date
DE102004056322A1 DE102004056322A1 (de) 2005-06-30
DE102004056322B4 true DE102004056322B4 (de) 2012-07-19

Family

ID=34635107

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004056322A Expired - Fee Related DE102004056322B4 (de) 2003-11-21 2004-11-22 Logik-Grundzelle und Logik-Grundzellen-Anordnung

Country Status (2)

Country Link
US (1) US7386812B2 (de)
DE (1) DE102004056322B4 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10354501B4 (de) * 2003-11-21 2007-07-05 Infineon Technologies Ag Logik-Schaltkreis-Anordnung
US7279936B2 (en) * 2003-12-08 2007-10-09 Infineon Technologies Ag Logic basic cell, logic basic cell arrangement and logic device
US7358761B1 (en) * 2005-01-21 2008-04-15 Csitch Corporation Versatile multiplexer-structures in programmable logic using serial chaining and novel selection schemes
US8418091B2 (en) * 2009-02-24 2013-04-09 Syphermedia International, Inc. Method and apparatus for camouflaging a standard cell based integrated circuit
US10691860B2 (en) 2009-02-24 2020-06-23 Rambus Inc. Secure logic locking and configuration with camouflaged programmable micro netlists
US8510700B2 (en) 2009-02-24 2013-08-13 Syphermedia International, Inc. Method and apparatus for camouflaging a standard cell based integrated circuit with micro circuits and post processing
US9735781B2 (en) 2009-02-24 2017-08-15 Syphermedia International, Inc. Physically unclonable camouflage structure and methods for fabricating same
US8111089B2 (en) * 2009-05-28 2012-02-07 Syphermedia International, Inc. Building block for a secure CMOS logic cell library
US8201114B1 (en) * 2009-11-17 2012-06-12 Altera Corporation Method and apparatus for performing look up table unpacking and repacking for resynthesis
US8581624B2 (en) * 2012-03-29 2013-11-12 Altera Corporation Integrated circuits with multi-stage logic regions
US10923596B2 (en) 2019-03-08 2021-02-16 Rambus Inc. Camouflaged FinFET and method for producing same

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386156A (en) * 1993-08-27 1995-01-31 At&T Corp. Programmable function unit with programmable fast ripple logic
EP0701328A2 (de) * 1994-09-09 1996-03-13 AT&T Corp. Feldprogrammierbare Gatteranordnung
EP1150431A1 (de) * 1996-05-20 2001-10-31 Atmel Corporation FPGA mit Nachschlagtabellen
US6331789B2 (en) * 1999-05-13 2001-12-18 Easic Corporation Semiconductor device
US20020043988A1 (en) * 2000-03-10 2002-04-18 Zvi Or-Bach Customizable and programmable cell array
US20020162078A1 (en) * 2001-02-15 2002-10-31 Zenasis Technologies, Inc. Digital logic circuits used to design integrated circuits
WO2002093745A2 (en) * 2001-05-16 2002-11-21 Koninklijke Philips Electronics N.V. Reconfigurable logic device
US6505337B1 (en) * 1998-11-24 2003-01-07 Xilinx, Inc. Method for implementing large multiplexers with FPGA lookup tables
US6529040B1 (en) * 2000-05-05 2003-03-04 Xilinx, Inc. FPGA lookup table with speed read decoder
US20030206036A1 (en) * 2000-03-10 2003-11-06 Easic Corporation Customizable and programmable cell array

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178541B1 (en) * 1998-03-30 2001-01-23 Lsi Logic Corporation PLD/ASIC hybrid integrated circuit
US6769109B2 (en) * 2000-02-25 2004-07-27 Lightspeed Semiconductor Corporation Programmable logic array embedded in mask-programmed ASIC
US6535043B2 (en) * 2000-05-26 2003-03-18 Lattice Semiconductor Corp Clock signal selection system, method of generating a clock signal and programmable clock manager including same

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386156A (en) * 1993-08-27 1995-01-31 At&T Corp. Programmable function unit with programmable fast ripple logic
EP0701328A2 (de) * 1994-09-09 1996-03-13 AT&T Corp. Feldprogrammierbare Gatteranordnung
EP1150431A1 (de) * 1996-05-20 2001-10-31 Atmel Corporation FPGA mit Nachschlagtabellen
US6505337B1 (en) * 1998-11-24 2003-01-07 Xilinx, Inc. Method for implementing large multiplexers with FPGA lookup tables
US6331789B2 (en) * 1999-05-13 2001-12-18 Easic Corporation Semiconductor device
US20020043988A1 (en) * 2000-03-10 2002-04-18 Zvi Or-Bach Customizable and programmable cell array
US20030206036A1 (en) * 2000-03-10 2003-11-06 Easic Corporation Customizable and programmable cell array
US6529040B1 (en) * 2000-05-05 2003-03-04 Xilinx, Inc. FPGA lookup table with speed read decoder
US20020162078A1 (en) * 2001-02-15 2002-10-31 Zenasis Technologies, Inc. Digital logic circuits used to design integrated circuits
WO2002093745A2 (en) * 2001-05-16 2002-11-21 Koninklijke Philips Electronics N.V. Reconfigurable logic device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANNEMACHER, Markus: Das FPGA-Kochbuch, Bonn: International Publishing Company, 1998, S. 197 *

Also Published As

Publication number Publication date
US7386812B2 (en) 2008-06-10
US20050140389A1 (en) 2005-06-30
DE102004056322A1 (de) 2005-06-30

Similar Documents

Publication Publication Date Title
DE3645224C2 (de)
DE69810995T2 (de) Rekonfigurierbarer Dual-Modus-Speicher in programmierbaren logischen Einrichtungen
DE69534812T2 (de) Programmierbare logische Vorrichtung, die mehr als eine Konfiguration speichert, und Mittel zum Umschalten der Konfiguration
DE102004063926B4 (de) Konfigurierbare Treiberzelle eines logischen Zellenfeldes
DE60131078T2 (de) Nachschlagtabelle für ein nutzerprogrammierbares gatterfeld mit einem schnellen lesedekodierer
DE69924486T2 (de) Spezielle schnittstellenarchitektur für eine hybride schaltung
DE102004056322B4 (de) Logik-Grundzelle und Logik-Grundzellen-Anordnung
DE10354501B4 (de) Logik-Schaltkreis-Anordnung
DE4210849A1 (de) Konvertierbares, multifunktionales, mikroelektronisches logikgatter und verfahren zu dessen herstellung
DE60118490T2 (de) Logisches Allzweckmodul und Zelle mit einem solchen Modul
DE69534659T2 (de) Architektur und Verbindungsmodel für programmierbare logische Schaltungen
DE2509731A1 (de) Universelles schaltnetz zur verknuepfung binaerer schaltvariabler
EP1723723B1 (de) Logik-grundzelle, logik-grundzellen-anordnung und logik-vorrichtung
DE10085352B4 (de) Selektiv in einem Spannungs- oder einem Strommodus arbeitender Sender
DE102004056738B3 (de) Programmierbare Logikzelle für eine programmierbare Logikanordnung, arithmetische Einheit und digitale Schaltungsanordnung
DE102004025581B4 (de) Logik-Grundzelle und Logik-Grundzellen-Anordnung
EP0326897B1 (de) Addierzelle mit einem Summen- und einem Carryteil
DE10202725B4 (de) Integrierte Schaltung und Schaltungsanordnung zur Umwandlung eines Single-Rail-Signals in ein Dual-Rail-Signal
EP1495542B1 (de) Schaltungsanordnung und verfahren zur erzeugung eines dual-rail-signals
DE3323199A1 (de) Zaehlerschaltung
DE10357209A1 (de) Logik-Grundzelle, Logik-Grundzellen-Anordnung und Logik-Vorrichtung
EP1033814B1 (de) Integrierte Schaltung zur Erzeugung zweier Ausgangstakte mit zeitlich nicht überlappenden Pegeln
DE102004011487A1 (de) Logik-Grundzelle, Logik-Grundzellen-Anordnung und Logik-Vorrichtung
DE2045833C3 (de) Schaltungsanordnung bestehend aus zwei miteinander verbundenen integrierten Schaltungen
DE102005023119A1 (de) Maskenprogrammierbares Logikmakro

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R082 Change of representative

Representative=s name: ,

R020 Patent grant now final

Effective date: 20121020

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee