DE112021007047T5 - Logikzelle für programmierbares gate-array - Google Patents

Logikzelle für programmierbares gate-array Download PDF

Info

Publication number
DE112021007047T5
DE112021007047T5 DE112021007047.9T DE112021007047T DE112021007047T5 DE 112021007047 T5 DE112021007047 T5 DE 112021007047T5 DE 112021007047 T DE112021007047 T DE 112021007047T DE 112021007047 T5 DE112021007047 T5 DE 112021007047T5
Authority
DE
Germany
Prior art keywords
output
input
carry
logic
logic cell
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.)
Pending
Application number
DE112021007047.9T
Other languages
English (en)
Inventor
Jonathan W. Greene
Marcel Derevlean
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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
Priority claimed from US17/529,522 external-priority patent/US11671099B2/en
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112021007047T5 publication Critical patent/DE112021007047T5/de
Pending legal-status Critical Current

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/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/17732Macroblocks

Abstract

Eine Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung weist eine Lookup-Tabellen-(LUT)-Schaltung mit K Eingängen auf, die einen primären Ausgang Y aufweist, wobei Y eine beliebige Funktion von K Eingängen ist, und mindestens einen zusätzlichen Ausgang (F). Eine Übertragsschaltung empfängt die Ausgänge der LUT und einen Übertragseingang CI. Die Übertragsschaltung erzeugt einen Summenausgang S und einen Übertragsausgang CO. Die Übertragsschaltung kann konfiguriert werden, um S = CI bereitzustellen und CO aus dem Satz {0, 1, F}auszuwählen. Die Übertragsschaltung kann alternativ konfiguriert werden, um S = EXOR(Y, CI) bereitzustellen und CO aus dem Satz {0, 1, F} auszuwählen. Die Übertragsschaltung kann alternativ konfiguriert werden, um S = EXOR(Y, CI) und CO = CI bereitzustellen, wenn Y=q ist, oder um CO aus dem Satz {0, 1, F} auszuwählen, wenn Y≠q ist, wobei q ein vorbestimmter Wert ist (z.^B. wie 0 oder 1).

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht Priorität für die am 21. Mai 2021 eingereichte vorläufige US-Patentanmeldung mit der Nummer 63/191,774 und die am 18. November 2021 eingereichte nicht vorläufige US-Patentanmeldung mit der Nummer 17/529,522 , die durch Bezugnahme in vollem Umfang hierin aufgenommen werden.
  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich auf Logikschaltungen in benutzerprogrammierbaren integrierten Schaltungen wie einem feldprogrammierbaren Gate-Array (FPGA). Insbesondere bezieht sich die vorliegende Erfindung auf eine Logikzellenarchitektur für solche programmierbaren integrierten Schaltungen, um eine verbesserte Unterstützung für Komprimierer bereitzustellen.
  • FPGAs sind integrierte Schaltungen, die aus Logikzellen bestehen, die durch ein programmierbares Routing-Netzwerk verbunden sind. Üblicherweise kann jeder an das programmierbare Routing-Netzwerk bereitgestellte Logikzellenausgang über das Netzwerk an jeden mit dem Netzwerk verbundenen Logikzelleneingang übertragen werden. Ein gebräuchlicher Logikzellentyp schließt eine Lookup-Tabelle (LUT) mit K-Eingaben, Multiplexer und Übertragungskettenlogik ein. Eine solche Logikzelle würde mindestens K Eingaben aufweisen, die aus dem programmierbaren Routing-Netzwerk stammen, sowie einen Übertragseingang, der aus dem Übertragsausgang einer vorhergehenden Zelle in einer Logikzellenkette stammt.
  • Eine wichtige Eigenschaft einer FPGA-Logikzelle ist, wie viele ihrer Eingänge und Ausgänge durch bzw. für das programmierbare Routing-Netzwerk bereitgestellt werden. Die Vielseitigkeit einer Logikzelle kann in dem Maße zunehmen, wie die Anzahl der Eingänge und Ausgänge, die vom oder zum programmierbaren Routing-Netzwerk verfügbar sind, steigt, sodass sich auch die Komplexität und die Kosten des FPGAs erhöhen. Unter Berücksichtigung der Kostenmetrik kann eine Logikzellenarchitektur, die die gewünschte Funktionalität mit weniger Eingängen und Ausgängen erreicht, die mit dem programmierbaren Routing-Netzwerk verbunden werden müssen, einer anderen Architektur vorzuziehen sein, die die gleiche Funktionalität erreicht, aber mehr Eingänge und Ausgänge erfordert, die mit dem programmierbaren Routing-Netzwerk verbunden werden müssen.
  • Eine weitere wichtige Eigenschaft einer FPGA-Logikzelle ist die Anzahl K der Eingänge der LUT. Der Wert K kann von 2 bis 10 oder mehr reichen, die gängigsten Werte in der Praxis sind jedoch 3, 4 und 6. Einige existierende FPGAs verwenden LUTs mit 3 Eingängen (K=3) oder eine LUT mit 4 Eingängen (K=4), die sich insgesamt am besten für kostengünstige FPGAs mit geringer Leistung eignen. Andere vorhandene FPGAs verwenden eine teilbare LUT mit 6 Eingängen (K=6). Diese können eine größere Vielfalt von Funktionen implementieren, verbrauchen jedoch mehr Fläche und Strom. Eine allgemeinere Definition von K, die auf jede Logikzelle anwendbar ist, ist die größte Zahl, sodass die Logikzelle für jede Funktion von K Eingaben konfiguriert werden kann, um sie zu berechnen.
  • FPGA-Logikzellen können zur Bildung von Komprimierern verwendet werden. Komprimierer sind eine Familie von Logikschaltungen, die mehrere binäre numerische Werte als Eingaben annehmen und deren Summe in weniger Bits darstellen. Beispielsweise kann der bekannte Volladdierer auch als 3:2-Komprimierer bezeichnet werden, da er drei Ein-Bit-Eingänge annimmt und eine Ein-Bit-Summe und einen Ein-Bit-Übertrag am Ausgang erzeugt. (Gemeinsam geben die beiden Bits, die der Summe und dem Übertrag entsprechen, eine Angabe über die Anzahl von Einsen unter den Eingängen an). In einigen Fällen können Komprimierer in einer Kette ähnlich einer Übertragskette organisiert sein, wobei jeder Komprimierer eine oder mehrere zusätzliche Eingänge von dem vorherigen Komprimierer in der Kette empfängt und die gleiche Anzahl von zusätzlichen Ausgängen für den nächsten Komprimierer in der Kette erzeugt. Ein Beispiel dafür ist ein 4:2-Komprimierer.
  • Einige Logikzellenarchitekturen nach dem Stand der Technik erfordern zwei Logikzellen zum Implementieren jedes 3:2-Komprimierers: eine zum Erzeugen jedes der beiden Ausgänge. Andere Logikzellenarchitekturen nach dem Stand der Technik können einen 3:2-Komprimierer mit einer einzelnen Logikzelle implementieren, allerdings auf Kosten von mehr erforderlichen Verbindungen mit dem programmierbaren Routing-Netzwerk. Eine einzelne Logikzellenarchitektur, die in der Lage ist, einen 3:2-Komprimierer mit weniger erforderlichen Verbindungen mit dem programmierbaren Routing-Netzwerk für die Leistungseffizienz zu implementieren, wäre vorteilhaft.
  • Einige FPGA-Anwendungen erfordern eine große Anzahl von Komprimierern. Zum Beispiel handelt es sich bei binären neuronalen Netzwerken um Netzwerke, die Gewichtungen und Aktivierungen mit binären Werten anstelle von Werten mit voller Genauigkeit quantifizieren. Binäre neuronale Netze erfordern oft die Implementierung einer Funktion, die als „Populationszähler“ oder „Pop-Zähler“ bezeichnet wird. Diese Funktion stellt die Anzahl von Einsen aus einem Satz von M booleschen Eingängen als binärer Ausgangswert mit log2(M)-Bit dar. Üblicherweise werden bei der Implementierung von Popcountern viele Komprimierer verwendet.
  • KURZDARSTELLUNG
  • Gemäß einem Aspekt der vorliegenden Erfindung wird eine Logikzelle für eine Vorrichtung mit einer programmierbaren integrierten Logikschaltung vorgestellt. Die Logikzelle schließt eine Lookup-Tabelle (LUT)-Schaltlogik mit K Eingängen ein, einschließlich: i) eine erste Look-Up-Tabelle LUT mit (K-1) Eingängen und eine zweite LUT mit (K-1) Eingängen, die beide zweite bis K-te Eingänge zu der LUT mit K Eingängen gemeinsam nutzen, wobei jede der ersten und zweiten LUTs mit (K-1) Eingängen einen Ausgang aufweist; und ii) einen ersten Multiplexer mit einem ersten Eingang, der mit dem Ausgang der ersten LUT mit (K-1) Eingängen gekoppelt ist, einem zweiten Eingang, der mit dem Ausgang der zweiten LUT mit (K-1) Eingängen gekoppelt ist, und einem Auswahleingang, der mit einem ersten Eingang der LUT-Schaltlogik mit K Eingängen gekoppelt ist. Der erste Multiplexer stellt einen primären Ausgang Y der Logikzelle bereit, wobei Y eine beliebige unabhängige Funktion der K Eingänge ist. Die Logikzelle schließt eine Übertragsschaltung mit einem X-Multiplexer ein, der gekoppelt ist, um einen Ausgang bereitzustellen, der aus einer konstanten logischen Referenz und dem primären Ausgang Y ausgewählt wird; und ein Exklusiv-ODER-Gate, das einen Summenausgang S bereitstellt, wobei das Exklusiv-ODER-Gate gekoppelt ist, um den Ausgang des X-Multiplexers als einen ersten Eingang und einen Übertragseingang als einen zweiten Eingang zu empfangen.
  • In einer Ausführungsform schließt die Logikzelle für eine programmierbare integrierte Logikschaltung ein programmierbares Routing-Netzwerk ein, wobei die Lookup-Tabellenschaltlogik mit K Eingängen die K Eingänge von dem programmierbaren Routing-Netzwerk empfängt, und wobei das programmierbare Routing-Netzwerk den primären Ausgang und den Summenausgang empfängt.
  • In einer Ausführungsform schließt die Logikzelle eine Lookup-Tabellenschaltlogik mit K Eingängen zum Bereitstellen des primären Ausgangs und eine Übertragsschaltung ein, die gekoppelt ist, um ein oder mehrere Signale von der Lookout-Tabelle und einen Übertragseingang zu empfangen, und die einen Übertragsausgang und einen Summenausgang bereitstellt. In einer Ausführungsform wird der Übertragseingang nicht von dem programmierbaren Routing-Netzwerk empfangen und der Übertragsausgang wird nicht dem programmierbaren Routing-Netzwerk bereitgestellt. In einer Ausführungsform wird der Übertragseingang von einer vorherigen Logikzelle in einer Kette von Logikzellen empfangen, und der Übertragsausgang wird einer nachfolgenden Logikzelle in der Kette bereitgestellt.
  • In einer Ausführungsform kann die Logikzelle selektiv konfiguriert werden, um den Wert des Übertragseingangs am Übertragsausgang auszuwählen und gleichzeitig eine beliebige Funktion der K Eingänge am Primärausgang bereitzustellen.
  • In einer Ausführungsform kann die Logikzelle selektiv konfiguriert werden, um den Wert des Übertragseingangs am Summenausgang auszuwählen und gleichzeitig eine beliebige Funktion der K Eingänge am Primärausgang bereitzustellen.
  • In einer Ausführungsform kann die Logikzelle selektiv konfiguriert werden, um ein Bit eines Addierers bereitzustellen, wobei die Summe am Summenausgang und ein Übertrag am Übertragsausgang erscheint. In einer Ausführungsform kann die Logikzelle selektiv konfiguriert werden, um das letzte Bit eines Mehrbit-Addierers zu implementieren, wobei die Summe am Summenausgang erscheint und der Übertragsausgang selektiv auf einen vorbestimmten Wert (z.^B. 0 oder 1) gesteuert wird.
  • In verschiedenen Ausführungsformen ist K≤4 wie K=3 oder K=4. In einer anderen Ausführungsform ist K≥4 wie 4 oder 6. K ist nicht auf diese Werte beschränkt und kann jeder nicht-negative ganzzahlige Wert sein.
  • Ein Verfahren schließt den Schritt des a) Bereitstellens einer Lookup-Tabellen-Schaltlogik (LUT) mit K Eingängen ein, umfassend: i) eine erste LUT mit (K-1) Eingängen und eine zweite LUT mit (K-1) Eingängen, die beide gemeinsam den zweiten bis K-ten Eingang der LUT mit K Eingängen nutzen, wobei sowohl die erste als auch die zweite LUT mit (K-1) Eingängen einen Ausgang aufweist, und ii) einen ersten Multiplexer mit einem ersten Eingang, der mit dem Ausgang der ersten LUT mit (K-1) Eingängen gekoppelt ist, einen zweiten Eingang, der mit dem Ausgang der zweiten LUT mit (K-1) Eingängen gekoppelt ist, und einen Auswahleingang, der mit einem ersten Eingang der LUT-Schaltlogik mit K Eingängen gekoppelt ist, wobei der erste Multiplexer einen primären Ausgang Y der Logikzelle bereitstellt. Das Verfahren schließt den Schritt des b) Bereitstellens einer Übertragsschaltung ein, die gekoppelt ist, um einen Übertragseingang (CI) zu empfangen und einen Übertragsausgang (CO) und einen Summenausgang (S) zu erzeugen, wobei der Übertragsausgang selektiv unabhängig von Y ist, wobei die Übertragsschaltung umfasst: i) einen X-Multiplexer, der gekoppelt ist, um einen Ausgang bereitzustellen, der aus einer konstanten logischen Referenz und dem primären Ausgang ausgewählt ist; und ii) ein Exklusiv-ODER-Gate, das den Summenausgang S bereitstellt, wobei das Exklusiv-ODER-Gate gekoppelt ist, um den Ausgang des X-Multiplexers als einen ersten Eingang und den Übertragseingang als einen zweiten Eingang zu empfangen. Das Verfahren schließt den Schritt des c) Erzeugens des Übertragseingangs, selektiv und unabhängig von Y, und des d) Propagierens des Übertragseingangs an einen ausgewählten Ausgang, aus dem Übertragsausgang und dem Summenausgang der Logikzelle, ein.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist durch ein Beispiel und ohne Einschränkung in den Figuren der beigefügten Zeichnungen veranschaulicht, in denen gleiche Bezugszeichen auf ähnliche Elemente hinweisen und in denen:
    • 1 ein Blockdiagramm einer Logikzelle gemäß einem Aspekt der vorliegenden Erfindung zeigt;
    • 2 zwei Addierer zeigt, die eine Kette von Logikzellen verwenden;
    • 3 eine Ausführungsform der P- und X-Multiplexer der Logikzelle und der zugeordneten Konfigurationsschaltlogik gemäß einem Aspekt der vorliegenden Erfindung zeigt;
    • 4 die Konfigurationseinstellungen zum Konfigurieren der Logikzelle von 1, um die angegebenen Funktionen zu erfüllen, zeigt;
    • 5A ein Blockdiagramm eines 3:2-Komprimierers zeigt, der gemäß einem Aspekt der vorliegenden Erfindung unter Verwendung von Logikzellen von 1 implementiert ist;
    • 5B eine Detailansicht eines 3:2-Komprimierers zeigt, der gemäß einem Aspekt der vorliegenden Erfindung unter Verwendung von Logikzellen von 1 implementiert;
    • 6A ein Funktionsblockdiagramm eines 4:2-Komprimierers zeigt;
    • 6B ein Blockdiagramm eines 4:2-Komprimierers zeigt, der gemäß einem Aspekt der vorliegenden Erfindung unter Verwendung von Logikzellen von 1 implementiert ist;
    • 7 ein Blockdiagramm eines 2-Eingangs-Addierers zeigt, der gemäß einem Aspekt der vorliegenden Erfindung unter Verwendung von Logikzellen von 1 implementiert ist; und
    • 8 eine Ausführungsform eines Verfahrens zum Konfigurieren der in 1 veranschaulichten Logikzelle zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Der Durchschnittsfachmann wird erkennen, dass die folgende Beschreibung nur veranschaulichend und in keiner Weise einschränkend ist. Andere Ausführungsformen werden dem Fachmann ohne Weiteres einfallen.
  • Die vorliegende Erfindung verbessert die Effizienz bestehender LUT-basierter FPGA-Logikzellen bei der Implementierung von Akkumulatoren und Zählern in Verbindung mit dem parallelen Erzeugen primärer Ausgaben, die eine Funktion der LUT-Eingänge sind.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist eine veranschaulichende LUT-basierte Logikzelle 190, die eine verbesserte Effizienz für Zähler und Akkumulatoren ermöglicht, in 1 gezeigt.
  • Die Logikzelle 190 von 1 schließt eine LUT-Schaltlogik mit K Eingängen ein, die in gestrichelten Linien 120 dargestellt ist und aus einer ersten LUT 124a mit (K-1) Eingängen und einer zweiten LUT 124b mit (K-1) Eingängen gebildet ist. Die kleinen Quadrate 126 und 128 stellen Konfigurationseingänge dar, mit denen die Funktionen der LUTs 124a und 124b definiert werden. Sowohl LUT 124a als auch 124b teilen sich die K-1 Funktionseingänge In2, In3, ... InK, die jeweils bei der Bezugsziffer 132, 134 und 136 gezeigt sind. Ein erster Multiplexer 122 („Y-Multiplexer“) (mit 2 Eingängen) weist einen ersten Dateneingang, der mit dem Ausgang F0 der ersten LUT 124a mit (K-1) Eingängen gekoppelt ist, einen zweiten Dateneingang, der mit dem Ausgang F1 der zweiten LUT 124b mit (K-1) Eingängen gekoppelt ist, und einen Auswahleingang, der mit einem Funktionseingang In1 bei Bezugsziffer 130 der LUT 120 gekoppelt ist, auf. Der Datenausgang des Y-Multiplexers 122 dient als Ausgang der LUT-Schaltlogik 120 mit K Eingängen und als primärer Ausgang (Y) der Logikzelle 190, wie bei der Bezugsziffer 48 gezeigt. In einem besonderen Fall der vorliegenden Erfindung ist K=4.
  • Die Logikzelle 190 von 1 schließt auch einen Übertragseingang CI 42, einen Übertragsausgang CO 44 und einen Summenausgang S 50 ein. Eine Übertragsschaltung 160 in der Logikzelle 190 von 1 schließt einen zweiten Multiplexer („G-Multiplexer“) ein, der in 1 als Multiplexer 32 mit vier Eingängen gezeigt ist und einen ersten Dateneingang aufweist, der mit dem F0-Ausgang der ersten LUT 124a mit K-1 Eingängen gekoppelt ist, einen zweiten Dateneingang, der mit dem F1-Ausgang der zweiten LUT 124b mit K-1 Eingängen gekoppelt ist, einen dritten Dateneingang, der mit einer logisch hohen Referenz gekoppelt ist, einen vierten Dateneingang, der mit einer logisch niedrigen Referenz gekoppelt ist, und einen Datenausgang mit der Bezeichnung G. Auswahleingänge, gezeigt als kleines Quadrat 34, gekoppelt mit der Konfigurations-Schaltlogik für den Multiplexer 32, bestimmen, welcher der Eingänge des G-Multiplexers 32 an seinen Datenausgang weitergeleitet wird.
  • Ein dritter Multiplexer („P-Multiplexer“) ist in 1 als 3-Eingang-Multiplexer 36 in der Übertragsschaltung 160 der Logikzelle 190 gezeigt. Der P-Multiplexer 36 weist einen ersten Dateneingang auf, der mit dem primären Ausgang Y 48 der LUT-Schaltlogik 120 mit K Eingängen von dem Y-Multiplexer 122 gekoppelt ist, einen zweiten Dateneingang, der mit einer logisch hohen Referenz gekoppelt ist, und einen dritten Dateneingang, der mit einer logisch niedrigen Referenz gekoppelt ist. Die Konfigurationsschaltlogik 38 wählt aus, welcher der Eingänge des P-Multiplexers 36 an seinen Datenausgang mit der Bezeichnung P 39 weitergeleitet werden soll.
  • Ein vierter Multiplexer, d. h. ein Übertragsmultiplexer („CO-Multiplexer“), ist in 1 als Multiplexer 40 mit zwei Eingängen in der Übertragsschaltung 160 der Logikzelle 190 gezeigt. Der CO-Multiplexer 40 weist einen ersten Dateneingang auf, der mit dem Datenausgang G 35 des G-Multiplexers 32 gekoppelt ist, einen zweiten Dateneingang, der mit dem Übertragseingang CI 42 der Logikzelle 190 gekoppelt ist, einen Auswahleingang, der mit dem Ausgang P 39 des P-Multiplexers 36 gekoppelt ist, und einen Datenausgang, der gekoppelt ist, um den Übertragsausgang CO 44 der Logikzelle 190 bereitzustellen.
  • Ein fünfter Multiplexer 86 („X-Multiplexer“) in der Übertragsschaltung der Logikzelle 190 weist einen ersten Dateneingang auf, der den primären Ausgang Y 48 des ersten Multiplexers 122 empfängt, und einen zweiten Dateneingang, der mit einer logisch niedrigen Referenz gekoppelt ist. Die Konfigurationsschaltlogik 88 wählt aus, welcher der Eingänge des X-Multiplexers an seinen Datenausgang mit der Bezeichnung P 89 weitergeleitet werden soll.
  • Ein Exklusiv-ODER-Gate 46 in der Übertragsschaltung 160 der Logikzelle 190 weist einen ersten Eingang auf, der zum Empfangen des Übertragseingangs CI 42 gekoppelt ist, und einen zweiten Eingang, der mit dem Datenausgang X 89 des X-Multiplexers 86 gekoppelt ist. Der Ausgang des Exklusiv-ODER-Gates ist der Summenausgang S 50 der Logikzelle 190.
  • In einigen Implementierungen der Erfindung kann einer der Eingänge F0 oder F1 von den LUTs 124a und 124b und einer der Logikreferenzeingänge von den G- oder P-Multiplexern (d. h. dem zweiten Multiplexer 32 oder dem dritten Multiplexer 36) weggelassen werden. In verschiedenen Ausführungsformen einer Kette von Logikzellen kann die Übertragsschaltlogik von einer oder mehreren aufeinanderfolgenden Logikzellen eine Übertragsvorlauf-, Übertragsauswahl- oder ähnliche Logik verwenden, die funktionell der in 1 veranschaulichten Übertragsfunktion entspricht, jedoch in der Lage ist, mit erhöhter Geschwindigkeit zu arbeiten.
  • Die Logikzelle 190 von 1 weist K Eingänge und einen Übertragseingang auf. Das in 1 gezeigte besondere Beispiel schließt die K Eingänge In1 130, In2 132, In3 134, bis InK 136 ein. Um Logikzellen zu implementieren, die größere K-Werte aufweisen, können zusätzliche Funktionseingänge zum Ansteuern der beiden LUTs 124a und 124b hinzugefügt werden. Der primäre Ausgang Y 48 der Logikzelle 190 stellt einen Wert dar, der eine beliebige Funktion der K1-Funktionseingänge ist. Ein zweiter Ausgang (der Übertragsausgang CO 44) stellt einen am Übertragseingang CI 42 vorhandenen Wert oder einen vom zweiten Multiplexer 32 gelieferten Ausgang dar, wie er vom Ausgang des dritten Multiplexers 36 ausgewählt wird. Die Eingänge In1, In2, In3,... InK und Ausgänge S und Y sind mit dem programmierbaren Routing-Netzwerk 52 verbunden.
  • 2 veranschaulicht eine Kette von Logikzellen wie die Logikzelle 190 innerhalb eines FPGA. Der Übertragsausgang (CO) einer Logikzelle steuert direkt den Übertragseingang (CI) der nächsten Zelle in der Kette an und weder CI noch CO müssen mit dem programmierbaren Routing-Netzwerk verbunden werden. 2 veranschaulicht auch die Verwendung einer Kette von Logikzellen zum Implementieren eines Paars von Addierern 200 einschließlich ADDER1 210 und ADDER2 220. Das programmierbare Routing-Netzwerk von 1 kann konfiguriert werden, um eine Vielzahl von Logikzellen wie die Logikzelle 190 in einer Übertragungskette zu platzieren. Jeder Addierer umfasst eine Vielzahl von nacheinander gekoppelten Logikzellen in der Übertragskette. Jede Logikzelle erzeugt ein entsprechendes Summenbit S und ein Übertragsausgangssignal (CO), das dem Übertragseingang (CI) der nächsten Zelle bereitzustellen ist. Zum Beispiel schließt die Logikzelle 212 einen Übertragseingang CI, einen Summenausgang S und einen Übertragsausgang CO ein, die mit dem Übertragseingang CI der Logikzelle 214 gekoppelt sind. Die Logikzelle 216, die dem höchstwertigen Bit von ADDER1 210 zugeordnet ist, erzeugt einen Ausgang S, der das höchstwertige Bit von ADDER1 darstellt. Die Logikzelle 216 stellt auch das richtige CO-Signal 218 für den Übertragseingang der Logikzelle bereit, die dem niederwertigsten Bit von ADDER2 220 entspricht.
  • Die Konfigurationen der P-, G- und X-Multiplexer können zwischen der Logikzelle 212, die dem niedrigstwertigen Bit zugeordnet ist, der Logikzelle 216, die dem höchstwertigen Bit zugeordnet ist, und den Logikzellen wie 214, die den Zwischenbits von ADDER1 210 zugeordnet sind, variieren. Die P-, G- und X-Multiplexer werden von der jeweiligen Konfigurationsschaltlogik 38, 34, 88 konfiguriert, um sicherzustellen, dass die richtigen Signale von jeder Logikzelle innerhalb der Addierer ausgegeben werden. Insbesondere wird der X-Multiplexer von Logikzellen in Addierern so eingestellt, dass er Y auswählt, sodass der Summenausgang S = EXOR(Y, CI) ist, wobei „EXOR“ die boolesche Exklusiv-ODER-Funktion ist, die auf den Wertesatz (Y, CI) angewendet wird. In allen Logikzellen eines Addierers, mit Ausnahme der letzten, ist der P-Multiplexer so eingestellt, dass er Y auswählt, sodass der Übertragsausgang CO = CI ist, wenn Y = 1, und CO = G, wenn Y = 0 ist. Dies führt zu einer Welligkeitsübertragskette, die sich durch den Addierer ausbreitet. In der letzten Logikzelle eines Addierers (wie der Logikzelle 216 von ADDER1) ist der P-Multiplexer jedoch konfiguriert, um zu verhindern, dass sich der Übertrag in die erste Logikzelle des nächsten Addierers (wie die Logikzelle 222 von ADDER2) ausbreitet. In der letzten Logikzelle eines Addierers ist der P-Multiplexer darauf eingestellt, „0“ auszuwählen, sodass CO = G ist, und der G-Multiplexer ist darauf eingestellt, entweder 0 oder 1 auszuwählen, je nachdem, welche Konstante die richtige ist, um die Übertragskette des nächsten Addierers zu initialisieren.
  • 3 (unter Bezugnahme auf 1) veranschaulicht eine kombinierte Implementierung 300 des P-Multiplexers (36) und seiner Konfigurationsschaltlogik (38) als Schaltlogik 310 sowie des X-Multiplexers (86) und seiner Konfigurationsschaltlogik (88) als Schaltlogik 320. Da der P-Multiplexer drei Eingänge und der X-Multiplexer zwei Eingänge aufweist, gibt es sechs mögliche Kombinationen von P- und X-Multiplexer-Auswahlen. Von den sechs möglichen Kombinationen sind jedoch nur vier von Interesse. Diese sind in der Wahrheitstabelle 330 in 3 aufgeführt. Dadurch kann die Konfigurationsschaltlogik für die P- und X-Multiplexer mit nur zwei Konfigurationsbits (CFG0 und CFG1) und der entsprechenden Logik implementiert werden.
  • Die P-Multiplexer- und Konfigurationsschaltlogik 310 schließt ein NOR-Gate 312 ein, das den primären Ausgang Y und ein erstes Konfigurationsbit, CFG0, empfängt. Das NOR-Gate 312 ist mit dem NOR-Gate 314 gekoppelt. Der Ausgang des NOR-Gates 312 wird als einer der Eingänge des NOR-Gates 314 bereitgestellt. Das NOR-Gate 314 empfängt auch ein zweites Konfigurationsbit, CFG1. Der Ausgang des NOR-Gates 314 ist der Ausgang P 39. Die Boolesche Funktion für den P-Multiplexer und die Konfigurationsschaltlogik 310 ist P = ((Y + CFG0)' + CFG1)' oder eine gleichwertige Funktion (wobei das Hochkomma eine logische Negation angibt).
  • Die X-Multiplexer und die Konfigurationsschaltlogik 320 schließen das NAND-Gate 322 ein, das die beiden Konfigurationsbits CFG0 und CFG1 empfängt. Das NAND-Gate 322 ist mit dem NAND-Gate 324 gekoppelt. Das NAND-Gate 324 empfängt den Ausgang des NAND-Gates 322 und den primären Ausgang Y als Eingänge. Das NAND-Gate 324 ist mit dem Wechselrichter-Gate 326 gekoppelt, sodass der Ausgang des NAND-Gates 324 dem Wechselrichter-Gate 326 bereitgestellt wird. Der Ausgang des Wechselrichter-Gates 326 ist der Ausgang X 89. In der veranschaulichten Ausführungsform folgt auf das NAND-Gate 324 ein Wechselrichter-Gate 326, um eine UND-Funktion zu erreichen. In einer alternativen Ausführungsform wird das Gate 324 durch ein UND-Gate ersetzt, um auf das Wechselrichter-Gate 326 verzichten zu können. Die Boolesche Funktion für den P-Multiplexer und die Konfigurationsschaltlogik 320 X = Y · (CFGO · CFG1)' oder beliebige logische Entsprechung (wobei das Hochkomma eine logische Negation angibt).
  • Die Wahrheitstabelle 330 veranschaulicht die Ausgänge P 39 und X 89 des P-Multiplexers 36 bzw. des X-Multiplexers 88 von 1 basierend auf den Werten der Konfigurationsbits CFG0 und CFG1, die dem P-Multiplexer und der Konfigurationsschaltlogik 310 bzw. dem X-Multiplexer und der Konfigurationsschaltlogik 320 bereitgestellt werden.
  • 4 veranschaulicht die Konfigurationseinstellungen zum Konfigurieren der Logikzelle von 1, um die verschiedenen in der ersten Spalte der Tabelle 400 veranschaulichten Modi zu erreichen. Wie in der ersten Zeile der Tabelle 400 angegeben, kann die Logikzelle 190 der vorliegenden Erfindung, wie in 1 veranschaulicht, so konfiguriert werden, dass sie eine beliebige Funktion von K Eingängen als Y bereitstellt und CI unverändert an CO weiterleitet (und den S-Ausgang unbenutzt lässt), indem der P-Multiplexer 36 so eingestellt wird, dass er 1 auswählt und der X-Multiplexer 86 Y auswählt.
  • Wie in der zweiten Zeile der Funktionstabelle 400 angegeben, kann die Logikzelle 190 der vorliegenden Erfindung, wie in 1 veranschaulicht, so konfiguriert werden, dass sie eine beliebige Funktion von K Eingängen an Y bereitstellt und CI an den S-Ausgang weiterleitet. Gleichzeitig wird der Ausgang des G-Multiplexers an den CO-Ausgang weitergegeben. Dies wird erreicht, indem der P-Multiplexer 36 so eingestellt wird, dass er 0 auswählt, und der X-Multiplexer 86, dass er 0 auswählt. Dieser Modus ist nützlich, wenn die nächste Logikzelle in der Kette einen Addierer startet (wie die Logikzelle 222 in 2).
  • Wie in der dritten Zeile der Funktionstabelle 400 angegeben, kann die Logikzelle 190 der vorliegenden Erfindung, wie in 1 veranschaulicht, konfiguriert werden, um ein Bit eines Addierers zu implementieren, wobei S die Summe und CO den Übertrag zum nächsthöheren Bit des Addierers darstellt, indem der P-Multiplexer 36 so eingestellt wird, dass er Y auswählt, und der X-Multiplexer 86, dass er Y auswählt.
  • Wie in der vierten Zeile der Funktionstabelle 400 angegeben, kann die Logikzelle 190 von 1 konfiguriert werden, um das höchstwertige Bit eines Addierers mit S, das die Summe widerspiegelt, zu implementieren. Gleichzeitig wird der Ausgang des G-Multiplexers an den CO-Ausgang weitergegeben. Dies wird erreicht, indem der P-Multiplexer 36 so eingestellt wird, dass er 0 auswählt, und der X-Multiplexer 86, dass er Y auswählt. Dies ist nützlich, wenn die nächste Logikzelle in der Kette einen anderen Addierer startet (wie die Logikzelle 222 in 2).
  • 5A veranschaulicht eine Ausführungsform eines 3:2-Komprimierers 500, der die Logikzelle 190 von 1 verwendet. Ein ordnungsgemäß implementierter 3:2-Komprimierer 500 empfängt drei Signale (U, V, W) aus dem programmierbaren Routing-Netzwerk, berechnet zwei neue Signale, EXOR(U,V,W) und MAJ(U,V,W), und sendet sie zurück an das programmierbare Routing-Netzwerk. Die mit „190-n“ bezeichneten Logikzellen beziehen sich auf Instanzen der Logikzelle 190 von 1, wobei der Wert von „n“ zur Unterscheidung zwischen den Instanzen verwendet wird. In diesem Beispiel ist die Logikzelle 190-0 mit der Logikzelle 190-1 gekoppelt, wobei der Übertragsausgang CO der Logikzelle 190-0 mit dem Übertragseingang CI der Logikzelle 190-1 gekoppelt ist. Es ist keine zusätzliche Verbindung zwischen CI oder CO der Logikzelle 190-0 oder der Zelle-1 und dem programmierbaren Routing-Netzwerk erforderlich. Diese Fähigkeit kann beispielsweise eine effizientere Implementierung von Komprimierern ermöglichen. In dieser Ausführungsform, unter Bezugnahme auch auf 1, ist die LUT 124a der Logikzelle 190-0 konfiguriert, um F0=MAJ(In2, In3, In4) bereitzustellen, wie in Tabelle 502 von 5A angegeben. „MAJ“ ist die Mehrheitsfunktion. Die Mehrheitsfunktion erzeugt einen einzelnen Ausgang aus mehreren Eingängen. Die Mehrheitsfunktion erzeugt eine „1“, wenn mehr als ½ ihrer Eingänge „1“ ist und erzeugt ansonsten eine „0“. Die LUT 124b der Logikzelle 190-0 ist konfiguriert, um F1=XOR(In2, In3, In4) bereitzustellen, wie in Tabelle 502 von 5A angegeben. „XOR“ bezieht sich auf die boolesche Exklusiv- oder Funktion, die nur dann eine „1“ erzeugt, wenn es eine ungerade Anzahl von Eingängen gibt, die eine „1“ sind und ansonsten eine „0“ erzeugt. Wie in Tabelle 502 angegeben, stellt der G-Multiplexer 32 der Logikzelle 190-0 den Eingang F0 an ihrem jeweiligen Datenausgang G 35 bereit; der P-Multiplexer 36 jeder der Logikzellen 190-0 und 190-1 stellt an seinem jeweiligen Datenausgang P 39 einen logischen Tiefpunkt (d. h. 0) bereit; und der X-Multiplexer 86 jeder der Logikzellen 190-0 und 190-1 stellt an seinem jeweiligen Datenausgang X 89 einen logischen Tiefpunkt (d. h. 0) bereit. Die LUTs 124a, 124b und der G-Multiplexer 32 der Logikzelle 190-1 können anderweitig verwendet oder wie in Bezug auf die Logikzelle 190-0 konfiguriert werden, um die erste Zelle eines anderen unabhängigen 3:2-Komprimierers zu implementieren, wie im Folgenden in Bezug auf 5B beschrieben.
  • 5B zeigt die internen Details, wie eine einzelne Logikzelle 190 gleichzeitig die zweite Stufe (Logikzelle 190-1 in 5A) eines Komprimierers und die erste Stufe (Logikzelle 190-0 in 5A) eines zweiten, unabhängigen Komprimierers implementieren kann. Der X-Multiplexer 86 ist konfiguriert, wie in Bezug auf die Logikzelle 190-1 in 5A beschrieben, um den Wert am S-Ausgang bereitzustellen, der für die zweite Stufe des ersten Komprimierers erforderlich ist. Die LUTs 124a und 124b, der P-Multiplexer 36 und der G-Multiplexer 32 sind konfiguriert, wie in Bezug auf die Logikzelle 190-0 in 5A beschrieben, um die Werte an den Y- und CO-Ausgängen bereitzustellen, die für die erste Stufe des zweiten Komprimierers erforderlich sind. Auf diese Weise können M-Komprimierer in M+1 Logikzellen implementiert werden. Die inkrementellen Kosten eines 3:2-Komprimierers beziehen sich somit nur auf eine Logikzelle 190.
  • Ein weiteres Beispiel für die Vielseitigkeit der Logikzelle 190 von 1 ist in 6A und 6B gezeigt. 6A veranschaulicht ein Blockdiagramm einer Ausführungsform eines 4:2-Komprimierers 600, der aus Volladdierern 612, 614 gebildet wird, die wie gezeigt miteinander gekoppelt sind, d. h. der S-Ausgang 50 des Volladdierers 614 wird einem der Eingänge des Volladdierers 612 zugeführt. Die Eingänge W, V und U werden den jeweiligen Eingängen des Volladdierers 614 zugeführt, und die Eingänge Z und T werden dem jeweiligen Eingang des Volladdierers 612 zugeführt. Der N-Ausgang wird von dem CO-Ausgang des Volladdierers 614 bereitgestellt, der M-Ausgang wird von dem CO-Ausgang des Volladdierers 612 bereitgestellt und der L-Ausgang wird von dem S-Ausgang des Volladdierers 612 bereitgestellt. Jeder Volladdierer 612, 614 weist drei gleichwertige Eingänge sowie einen Summen- und Übertragsausgang auf. Der Komprimierer 600 wird von Eingängen gespeist, die willkürlich als Eingänge T, U, V, W und Z bezeichnet werden. In der Praxis werden mehrere Instanzen dieses Komprimierers verwendet, die in einer Kette verbunden sind, die vergleichbar mit einer Übertragskette ist, bei der der Eingang T eines Komprimierers durch den Ausgang N des vorstehenden Komprimierers in der Kette angesteuert wird. 6B zeigt ein Blockdiagramm, das veranschaulicht, wie nur zwei Logikzellen 190-0 und 190-1 zum Implementieren der Addierer 612, 614 erforderlich sind, um den 4:2-Komprimierer 600 von 6A zu bilden. Tabelle 602 zeigt die Konfiguration der Logikzellen 190-0 und 190-1, um diese Funktion zu implementieren.
  • Der obere Volladdierer 614 von 6A ist als Logikzelle 190-1 von 6B implementiert, mit einer zusätzlichen Pass-Through-Funktion, die nachstehend beschrieben wird, sodass sie für das programmierbare Routing-Netzwerk verfügbar ist. Der untere Volladdierer 612 ist in der Logikzelle -0 implementiert, einschließlich der Erzeugung des Signals M, das dann die Logikzelle 190-1 vom CI-Eingang zum S-Ausgang weitergeleitet. Unter Bezugnahme auf 1 ist die LUT 124a der Logikzelle 190-0 zum Erzeugen von F1=In2 konfiguriert. Die LUT 124b der Logikzelle 190-0 ist zum Erzeugen von F1=In2 konfiguriert! (wobei „!“ die logische Negation bezeichnet), wobei die G-, P- und X-Multiplexer so eingestellt sind, dass G=F0, P=Y und X=Y ausgewählt wird. Die LUT 124a der Logikzelle 190-1 ist so konfiguriert, dass sie F0=MAJ(In2, In3, In4) erzeugt. Die LUT 124b der Logikzelle 190-1 ist so konfiguriert, dass sie F1=XOR(In2, In3, In4) wobei die G-, P- und X-Multiplexer so eingestellt sind, dass G=F0, P=0, and X=0 ausgewählt wird. Der N-Ausgang eines 4:2-Komprimierers, der mit den Logikzellen 190-0 und 190-1 implementiert wurde, kann zum Ansteuern des T-Eingangs eines anderen 4:2-Komprimierers verwendet werden, der mit den nächsten beiden Logikzellen der Übertragskette implementiert wurde.
  • 7 zeigt ein Blockdiagramm eines 2-Eingänge-, N-Bit-Addierers 700, der gemäß einem Aspekt der vorliegenden Erfindung unter Verwendung von Logikzellen 190 implementiert ist. Der N-Bit-Addierer 700 verwendet N+1 Logikzellen, die wie gezeigt als 190-0 bis 190-N verbunden sind. Der CI-Eingang der Logikzelle 190-0 ist mit einem konstanten logisch niedrigen Pegel „0“ gekoppelt. Der CO-Ausgang jeder Logikzelle 190-0 bis 190-(N-1) ist mit dem CI-Eingang der nächsten Logikzelle 190 in dem Addierer 700 gekoppelt.
  • Die In1- und In2-Eingänge der Logikzellen 190-0 bis 190- (N-1) sind mit den N Operandeneingängen U[0] bis U[N-1] und V[0] bis V[N-1] für den Addierer 700 gekoppelt. Die S Ausgänge jeder Logikzelle 190-0 bis 190-N bilden die Summenausgänge Z[0] bis Z[N] für jedes der N+1 Ausgangsbits des Addierers. Die Logikzelle 190-N braucht lediglich ihren Übertrag-Ein (CI)-Eingang an ihren Summen (S)-Ausgang und weiter an das programmierbare Routing-Netzwerk weiterzuleiten. Vorteilhafterweise ist damit seine LUT verfügbar, um eine beliebige unzusammenhängende Funktion von K Eingängen parallel zu implementieren.
  • Die Tabelle 702 in 7 zeigt die Konfiguration jeder der Logikzellen im Addierer 700. Insbesondere sind die Look-up-Tabellen der Logikzellen 190, die von 0 bis N-1 (d. h. 190-0 bis 190-(N-1)) indiziert sind, konfiguriert, um F0=In2 and F1=In2! zu berechnen
  • 8 veranschaulicht ein Verfahren zum Implementieren der Funktionen aus der Funktionstabelle 400 von 4. Das Verfahren schließt den Schritt 810 des Bereitstellens einer Lookup-Tabellen-Schaltlogik (LUT) mit K Eingängen ein, umfassend: i) eine erste LUT mit (K-1) Eingängen und eine zweite LUT mit (K-1) Eingängen, die beide gemeinsam den zweiten bis K-ten Eingang der LUT mit K Eingängen nutzen, wobei sowohl die erste als auch die zweite LUT mit (K-1) Eingängen einen Ausgang aufweist, und ii) einen ersten Multiplexer mit einem ersten Eingang, der mit dem Ausgang der ersten LUT mit (K-1) Eingängen gekoppelt ist, einen zweiten Eingang, der mit dem Ausgang der zweiten LUT mit (K-1) Eingängen gekoppelt ist, und einen Auswahleingang, der mit einem ersten Eingang der LUT-Schaltlogik mit K Eingängen gekoppelt ist, wobei der erste Multiplexer einen primären Ausgang Y der Logikzelle bereitstellt. In verschiedenen Ausführungsformen ist K≤4 wie 3 oder 4. In anderen Anwendungen ist K≥6. Obwohl üblicherweise K=3, 4 oder 6 in verschiedenen Anwendungen verwendet wird, ist K nicht auf diese Werte beschränkt. Im Allgemeinen ist K eine beliebige nicht negative ganze Zahl.
  • Das Verfahren von 8 schließt den Schritt 820 des b) Bereitstellens einer Übertragsschaltung ein, die gekoppelt ist, um einen Übertragseingang CI zu empfangen und einen Übertragsausgang CO und einen Summenausgang S zu erzeugen, wobei der Übertragsausgang selektiv unabhängig von Y ist, wobei die Übertragsschaltung umfasst: i) einen X-Multiplexer, der gekoppelt ist, um einen Ausgang bereitzustellen, der aus einer konstanten logischen Referenz und dem primären Ausgang Y ausgewählt ist; und ii) ein Exklusiv-ODER-Gate, das den Summenausgang S bereitstellt, wobei das Exklusiv-ODER-Gate gekoppelt ist, um den Ausgang des X-Multiplexers als einen ersten Eingang und den Übertragseingang als einen zweiten Eingang zu empfangen. Schritt 830 schließt das Erzeugen des Übertragsausgangs CO selektiv unabhängig von Y ein, d. h. durch Einstellen von P-Multiplexer 36 auf 0, sodass der CO-Ausgang 44 den Datenausgang G 35 unabhängig von dem Wert von Y widerspiegelt, oder auf 1, sodass der CO-Ausgang 44 den CI-Eingang 42 widerspiegelt, unabhängig von dem Wert von Y. Der Übertragsausgang CO ist ebenfalls selektiv unabhängig von CI, d. h, durch Einstellen von P-Multiplexer 36 auf 0, sodass der CO-Ausgang 44 unabhängig vom Wert von CI den Datenausgang G 35 widerspiegelt. Schritt 840 schließt ein, den X-Multiplexer so zu konfigurieren, dass der Übertragseingang als ausgewählter Ausgang des Übertragsausgangs und des Summenausgangs der Logikzelle verbreitet wird.
  • Eine Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung weist i) eine Lookup-Tabellen-(LUT)-Schaltung mit K Eingängen auf, die einen primären Ausgang Y und mindestens einen zusätzlichen Ausgang (F), wie F0 oder F1 in 1, aufweist; und ii) eine Übertragsschaltung, die gekoppelt ist, um die Ausgänge der LUT und einen Übertragseingang CI der Logikzelle zu empfangen, wobei die Übertragsschaltung einen Summenausgang S und einen Übertragsausgang CO der Logikzelle erzeugt, und wobei die Übertragsschaltung auf verschiedene Weise konfiguriert werden kann. Das Beispiel von 1 stellt die Option bereit, entweder F0 oder F1 als zusätzlichen Ausgang zu nutzen, was jedoch nicht einschränkend zu verstehen ist. Eine Möglichkeit besteht darin, S = CI bereitzustellen und CO als einen ausgewählten Wert aus der Menge {0, 1, F} anzugeben. Die Übertragsschaltung kann alternativ konfiguriert werden, um S = EXOR(Y, CI) und CO als einen ausgewählten Wert aus dem Satz {0, 1, F} bereitzustellen. Die Übertragsschaltung kann alternativ konfiguriert werden, um S = EXOR(Y, CI) und CO = CI bereitzustellen, wenn Y=q ist, und um CO als einen ausgewählten Wert aus dem Satz {0, 1, F} bereitzustellen, wenn Y≠q ist, wobei q ein vorbestimmter Wert (z.^B. wie 0 oder 1) ist.
  • Wenngleich die Ausführungsformen und Anwendungen dieser Erfindung gezeigt und beschrieben wurden, wäre für den Fachmann ersichtlich, dass viel mehr Modifikationen als die oben angegebenen möglich sind, ohne von den erfindungsgemäßen Konzepten hierein abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/191774 [0001]
    • US 17/529522 [0001]

Claims (23)

  1. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung, umfassend: eine Lookup-Tabelle-(LUT)-Schaltlogik mit:K Eingängen, umfassend: eine erste LUT mit (K-1) Eingängen und eine zweite LUT mit (K-1) Eingängen, die beide zweite bis K-te Eingänge zu der LUT mit K Eingängen gemeinsam nutzen, wobei jede der ersten und zweiten LUTs mit (K-1) Eingängen einen Ausgang aufweist; einen ersten Multiplexer mit einem ersten Eingang, der mit dem Ausgang der ersten LUT mit (K-1) Eingängen gekoppelt ist, einem zweiten Eingang, der mit dem Ausgang der zweiten der LUT mit (K-1) Eingängen gekoppelt ist, und einem Auswahleingang, der mit einem ersten Eingang der LUT-Schaltlogik mit K Eingängen gekoppelt ist, wobei der erste Multiplexer einen primären Ausgang Y der Logikzelle bereitstellt und Y eine beliebige unabhängige Funktion der K Eingänge ist; eine Übertragsschaltung umfassend: einen X-Multiplexer, der gekoppelt ist, um einen Ausgang bereitzustellen, der aus einer konstanten logischen Referenz und dem primären Ausgang Y ausgewählt wird; und ein Exklusiv-ODER-Gate, das einen Summenausgang S bereitstellt, wobei das Exklusiv-ODER-Gate gekoppelt ist, um den Ausgang des X-Multiplexers als einen ersten Eingang und einen Übertragseingang als einen zweiten Eingang zu empfangen.
  2. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung nach Anspruch 1, wobei die Übertragsschaltung gekoppelt ist, um den Übertragseingang zu empfangen, und einen Übertragsausgang und den Summenausgang S bereitstellt, wobei der Summenausgang S einem Bit eines Addierers entspricht.
  3. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung nach Anspruch 2, wobei die Logikzelle selektiv konfiguriert werden kann, um einen Wert des Übertragseingangs als Übertragsausgang bereitzustellen.
  4. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung nach Anspruch 2, wobei die Logikzelle selektiv konfiguriert werden kann, um einen Wert des Übertragseingangs als Summenausgang S bereitzustellen.
  5. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung nach Anspruch 2, wobei die Logikzelle selektiv konfigurierbar ist, um einen Wert des Übertragseingangs als den Summenausgang S bereitzustellen, wobei der Übertragsausgang selektiv unabhängig von dem Übertragseingang und dem primären Ausgang Y ist.
  6. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung, wobei K = 3 ist.
  7. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung, wobei K = 4 ist.
  8. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung, wobei K = 6 ist.
  9. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung, umfassend: ein programmierbares Routing-Netzwerk, wobei die Lookup-Tabellenschaltlogik mit K Eingängen die K Eingänge von dem programmierbaren Routing-Netzwerk empfängt, wobei das programmierbare Routing-Netzwerk den primären Ausgang Y und den Summenausgang S empfängt.
  10. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung nach Anspruch 9, wobei der Übertragseingang nicht von dem programmierbaren Routing-Netzwerk empfangen wird, wobei der Übertragsausgang nicht dem programmierbaren Routing-Netzwerk bereitgestellt wird.
  11. Logikzelle, umfassend: eine Lookup-Tabelle-(LUT)-Schaltlogik mit:K Eingängen, umfassend: eine erste LUT mit (K-1) Eingängen und eine zweite LUT mit (K-1) Eingängen, die beide zweite bis K-te Eingänge zu der LUT mit K Eingängen gemeinsam nutzen, wobei jede der ersten und zweiten LUTs mit (K-1) Eingängen einen jeweiligen Ausgang aufweist; einen ersten Multiplexer mit einem ersten Eingang, der mit dem Ausgang der ersten LUT mit (K-1) Eingängen gekoppelt ist, einem zweiten Eingang, der mit dem Ausgang der zweiten der LUT mit (K-1) Eingängen gekoppelt ist, und einem Auswahleingang, der mit einem ersten Eingang der LUT-Schaltlogik mit K Eingängen gekoppelt ist, wobei der erste Multiplexer einen primären Ausgang Y der Logikzelle bereitstellt; und eine Übertragsschaltung, die gekoppelt ist, um einen Übertragseingang zu empfangen und einen Übertragsausgang und einen Summenausgang zu erzeugen, wobei der Übertragsausgang selektiv unabhängig von Y ist, wobei die Übertragsschaltung umfasst: einen X-Multiplexer, der gekoppelt ist, um einen Ausgang bereitzustellen, der aus einer konstanten logischen Referenz und dem primären Ausgang ausgewählt wird; und ein Exklusiv-ODER-Gate, das den Summenausgang S bereitstellt, wobei das Exklusiv-ODER-Gate gekoppelt ist, um den Ausgang des X-Multiplexers als einen ersten Eingang und den Übertragseingang als einen zweiten Eingang zu empfangen.
  12. Logikzelle nach Anspruch 11, wobei die Übertragsschaltung umfasst: einen G-Multiplexer, der gekoppelt ist, um die jeweiligen Ausgänge der ersten und zweiten LUTs mit (K-1) Eingängen zu empfangen; einen P-Multiplexer, der gekoppelt ist, um den primären Ausgang Y der Logikzelle zu empfangen; und einen Übertragsausgang-Multiplexer, der gekoppelt ist, um einen Ausgang des G-Multiplexers und den Übertragseingang als Übertragsausgang gemäß einem Ausgang des P-Multiplexers bereitzustellen.
  13. Logikzelle nach Anspruch 12, wobei der Ausgang des P-Multiplexers von einer Booleschen Funktion von Y und zwei Konfigurationsbits, CFG0 und CFG1, abgeleitet ist, wobei P = ( ( Y + C F G 0 ) ' + C F G 1 ) ' .
    Figure DE112021007047T5_0001
  14. Logikzelle nach Anspruch 12, wobei der Ausgang des X-Multiplexers von einer Booleschen Funktion von Y und zwei Konfigurationsbits, CFG0 und CFG1, abgeleitet ist, wobei X = Y ( C F G 0 C F G 1 ) ' .
    Figure DE112021007047T5_0002
  15. Logikzelle nach Anspruch 11, umfassend ein programmierbares Routing-Netzwerk, wobei die Lookup-Tabellen-Schaltlogik mit K Eingängen die K Eingänge von dem programmierbaren Routing-Netzwerk empfängt, wobei das programmierbare Routing-Netzwerk den primären Ausgang und den Summenausgang empfängt, wobei der Übertragsausgang und der Übertragseingang nicht mit dem programmierbaren Routing-Netzwerk verbunden sind.
  16. Logikzelle Anspruch 11, wobei die Logikzelle selektiv konfiguriert werden kann, um einen Wert des Übertragseingangs als Übertragsausgang bereitzustellen.
  17. Logikzelle Anspruch 11, wobei die Logikzelle selektiv konfiguriert werden kann, um einen Wert des Übertragseingangs als Summenausgang bereitzustellen.
  18. Logikzelle Anspruch 11, wobei die Logikzelle selektiv konfiguriert werden kann, um den primären Ausgang als eine beliebige Funktion der K Eingänge bereitzustellen.
  19. Logikzelle nach Anspruch 11, wobei K ≤ 6.
  20. Verfahren, umfassend die Schritte: a. Bereitstellen einer (LUT)-Schaltlogik mit K Eingängen, umfassend: i) eine erste LUT mit (K-1) Eingängen und eine zweite LUT mit (K-1) Eingängen, die beide zweite bis K-te Eingänge zu der LUT mit K Eingängen gemeinsam nutzen, wobei jede der ersten und zweiten LUTs mit (K-1) Eingängen einen Ausgang aufweist; und ii) einen ersten Multiplexer mit einem ersten Eingang, der mit dem Ausgang der ersten LUT mit (K-1) Eingängen gekoppelt ist, einem zweiten Eingang, der mit dem Ausgang der zweiten der LUT mit (K-1) Eingängen gekoppelt ist, und einem Auswahleingang, der mit einem ersten Eingang der LUT-Schaltlogik mit K Eingängen gekoppelt ist, wobei der erste Multiplexer einen primären Ausgang Y der Logikzelle bereitstellt; und b. Bereitstellen einer Übertragsschaltung, die gekoppelt ist, um einen Übertragseingang zu empfangen und einen Übertragsausgang und einen Summenausgang zu erzeugen, wobei der Übertragsausgang selektiv unabhängig von Y ist, wobei die Übertragsschaltung umfasst: i) einen X-Multiplexer, der gekoppelt ist, um einen Ausgang bereitzustellen, der aus einer konstanten logischen Referenz und dem primären Ausgang der Logikzelle ausgewählt wird; und ii) ein Exklusiv-ODER-Gate, das den Summenausgang S bereitstellt, wobei das Exklusiv-ODER-Gate gekoppelt ist, um den Ausgang des X-Multiplexers als einen ersten Eingang und den Übertragseingang als einen zweiten Eingang zu empfangen; c. Erzeugen eines selektiv von Y unabhängigen Übertragsausgangs; und d. Propagieren des Übertragseingangs an einen ausgewählten Übertragsausgang oder einen Summenausgang der Logikzelle.
  21. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung, umfassend: eine Lookup-Tabellen-Schaltung (LUT) mit K Eingängen, die einen primären Ausgang Y und mindestens einen zusätzlichen Ausgang F aufweist; und eine Übertragsschaltung, die gekoppelt ist, um die Ausgänge der LUT und einen Übertragseingang CI der Logikzelle zu empfangen, wobei die Übertragsschaltung einen Summenausgang S und einen Übertragsausgang CO der Logikzelle bereitstellt, wobei die Übertragsschaltung konfiguriert werden kann, um S = CI und CO als einen ausgewählten Wert aus dem Satz {0, 1, F} bereitzustellen.
  22. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung nach Anspruch 21, wobei die Übertragsschaltung alternativ konfiguriert werden kann, um S = EXOR(Y, CI) und CO als einen ausgewählten Wert aus dem Satz {0, 1, F} bereitzustellen.
  23. Logikzelle für eine programmierbare integrierte Logikschaltungsvorrichtung nach Anspruch 21, wobei die Übertragsschaltung alternativ konfiguriert werden kann, um S = EXOR(Y, CI) bereitzustellen und CO = CI bereitzustellen, wenn Y=q ist, und um CO als einen ausgewählten Wert aus dem Satz {0, 1, F} bereitzustellen, wenn Y≠q ist, wobei q ein vorbestimmter Wert ist.
DE112021007047.9T 2021-05-21 2021-11-20 Logikzelle für programmierbares gate-array Pending DE112021007047T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163191774P 2021-05-21 2021-05-21
US63/191,774 2021-05-21
US17/529,522 US11671099B2 (en) 2021-05-21 2021-11-18 Logic cell for programmable gate array
US17/529,522 2021-11-18
PCT/US2021/060229 WO2022245390A1 (en) 2021-05-21 2021-11-20 Logic cell for programmable gate array

Publications (1)

Publication Number Publication Date
DE112021007047T5 true DE112021007047T5 (de) 2023-12-28

Family

ID=78957526

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021007047.9T Pending DE112021007047T5 (de) 2021-05-21 2021-11-20 Logikzelle für programmierbares gate-array

Country Status (2)

Country Link
DE (1) DE112021007047T5 (de)
WO (1) WO2022245390A1 (de)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936286B2 (en) * 2018-11-13 2021-03-02 Microsemi Soc Corp. FPGA logic cell with improved support for counters

Also Published As

Publication number Publication date
WO2022245390A1 (en) 2022-11-24

Similar Documents

Publication Publication Date Title
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE112019005661T5 (de) Fpga-logikzelle mit verbesserter unterstützung für zähler
DE102013222218A1 (de) Konstruieren einer Schaltung geeignet zur Erzeugung von Zufallsbits und Schaltung zur Erzeugung von Zufallsbits
DE3700991A1 (de) Digitaler uebertragsvorgriffsaddierer
DE3901995C2 (de)
DE60117831T2 (de) Modul zur erzeugung von decoderschaltungen für faltungscodes, zugehöriges verfahren und schaltung
DE1268886B (de) Binaeres Serienaddierwerk
DE4101004C2 (de) Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum
DE602004006841T2 (de) Elektronischer schaltkreis mit einem feld programmierbarer logischer zellen
DE102020131925A1 (de) Gleitkomma-zerlegungsschaltungsanordnung dynamischergenauigkeit
DE102007056104A1 (de) Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
EP0257362A1 (de) Addierer
DE3828290C2 (de)
DE69726248T2 (de) Addierer mit bedingter Summe unter Benutzung von Durchlasstransistor-Logik
DE112021007047T5 (de) Logikzelle für programmierbares gate-array
DE2900587C3 (de) Decodierschaltung
DE102004056738B3 (de) Programmierbare Logikzelle für eine programmierbare Logikanordnung, arithmetische Einheit und digitale Schaltungsanordnung
EP1068580B1 (de) Verfahren zum vergleich elektrischer schaltungen
DE102013208836A1 (de) Verfahren und Vorrichtung zur Erzeugung eines Hash-Werts
DE3933172A1 (de) Akkumulator fuer komplexe zahlen
DE19711005C2 (de) Baumschaltung zur Addition von Teilprodukten im Booth-Algorithmus
EP0424410B1 (de) Multiplizierer
DE2913899C2 (de) Rechen- und Verknüpfungsschaltung
DE102015107509A1 (de) Chip und Verfahren zum Betreiben einer Verarbeitungsschaltung
DE1424928B1 (de) Schaltungsanordnung zum Addieren von durch binaere Signale dargestellten digitalen Informationen

Legal Events

Date Code Title Description
R012 Request for examination validly filed