DE112019005661T5 - Fpga-logikzelle mit verbesserter unterstützung für zähler - Google Patents

Fpga-logikzelle mit verbesserter unterstützung für zähler Download PDF

Info

Publication number
DE112019005661T5
DE112019005661T5 DE112019005661.1T DE112019005661T DE112019005661T5 DE 112019005661 T5 DE112019005661 T5 DE 112019005661T5 DE 112019005661 T DE112019005661 T DE 112019005661T DE 112019005661 T5 DE112019005661 T5 DE 112019005661T5
Authority
DE
Germany
Prior art keywords
input
output
inputs
logic cell
carry
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
DE112019005661.1T
Other languages
English (en)
Inventor
Jonathan W. Greene
Joel Landry
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.)
Microsemi SoC Corp
Original Assignee
Microsemi SoC Corp
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 Microsemi SoC Corp filed Critical Microsemi SoC Corp
Publication of DE112019005661T5 publication Critical patent/DE112019005661T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/605Additive or subtractive mixing of two pulse rates into one
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00315Modifications for increasing the reliability for protection in field-effect transistor circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • H03K19/215EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical using field-effect transistors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K21/00Details of pulse counters or frequency dividers
    • H03K21/08Output circuits
    • H03K21/10Output circuits comprising logic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/506Indexing scheme relating to groups G06F7/506 - G06F7/508
    • G06F2207/50632-input gates, i.e. only using 2-input logical gates, e.g. binary carry look-ahead, e.g. Kogge-Stone or Ladner-Fischer adder

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Logic Circuits (AREA)

Abstract

Logikzelle für eine programmierbare integrierte Logikschaltung mit K Funktionseingängen, wobei K die größte Zahl ist, so dass die Logikzelle jede Funktion von K Eingängen berechnen kann, und wobei die Logikzelle konfigurierbar ist, um ein Bit eines Zählers parallel zu jeder unabhängigen Funktion von K-1 der K Eingängen zu implementieren.

Description

  • Die vorliegende Erfindung bezieht sich auf Logikschaltungen, die in anwenderprogrammierbaren Schaltungen wie Field Programmable Gate Arrays (FPGAs) verwendet werden. Insbesondere bezieht sich die vorliegende Erfindung auf Logikzellen für solche programmierbaren integrierten Schaltungen, die eine verbesserte Unterstützung für Zähleranwendungen aufweisen.
  • Wie in der Technik bekannt ist, bestehen FPGAs aus Logikzellen, die durch ein programmierbares Routing-Netzwerk verbunden sind. Der Wert jedes mit dem programmierbaren Routing-Netzwerk verbundenen Logikzellenausgangs kann über das Netzwerk an jeden mit dem Netzwerk verbundenen Logikzelleneingang übertragen werden. Ein gebräuchlicher Logikzellentyp schließt eine Look-Up-Tabelle (LUT) mit K Eingängen und zusätzliche Logikfunktionen wie Multiplexer und eine Übertragskette ein. Der Wert K kann im Bereich von 2 bis 10 oder mehr liegen; die in der Praxis gebräuchlichsten Werte sind 3, 4 und 6. 1 zeigt eine Logikzelle 10 nach dem Stand der Technik (wie sie in der Microsemi PolarFire® FPGA-Familie verwendet wird) mit einer LUT mit 4 Eingängen, die in gestrichelten Linien 12 gezeigt sind und aus zwei LUTs 14a und 14b mit 3 Eingängen und einem Multiplexer 16 mit 2 Eingängen gebildet ist. Der Eingang In1 zur LUT mit 4 Eingängen 12 bei der Bezugsziffer 18 ist mit dem Auswahleingang des Multiplexers 16 verbunden, und die In2-, In3- und In4-Eingänge zur LUT 12 mit 4 Eingängen mit den Bezugsziffern 20, 22 und 24 werden beiden LUTs 14a und 14b mit 3 Eingängen präsentiert. Konfigurationsbits, die durch Quadrat 26 dargestellt werden, werden verwendet, um die Funktion der LUT 14a mit 3 Eingängen zu definieren, und Konfigurationsbits, die durch Quadrat 28 dargestellt werden, werden verwendet, um die Funktion der LUT 14b mit 3 Eingängen zu definieren.
  • Eine Übertragkettenimplementierung, die in gestrichelten Linien 30 gezeigt ist, schließt zusätzliche drei Multiplexer ein. Ein Multiplexer 32 mit 4 Eingängen weist Dateneingänge auf, die mit den jeweiligen Ausgängen von LUTs 14a und 14b mit 3 Eingängen sowie mit Konstanten Logik 0 und Logik 1 verbunden sind, und erzeugt den Ausgang G. Konfigurationsbits, die durch Quadrat 34 dargestellt werden, werden verwendet, um auszuwählen, welcher der Eingänge des Multiplexers 32 mit 4 Eingängen an den Ausgang bei G weitergeleitet wird.
  • Ein Multiplexer 36 mit 3 Eingängen hat Dateneingänge, die mit dem Ausgang des Multiplexers 16 sowie mit Konstanten Logik 0 und Logik 1 verbunden sind, und erzeugt den Ausgang P. Konfigurationsbits, die durch Quadrat 38 dargestellt werden, werden verwendet, um auszuwählen, welcher der Eingänge des dritten Multiplexers 36 an den Ausgang bei P weitergeleitet wird.
  • Ein Übertrag-Aus-Multiplexer 40 ist mit einem Dateneingang mit dem Übertrag-Ein-Eingang CI 42 der Logikzelle 10 und mit einem Dateneingang mit dem Ausgang G des Multiplexers 32 mit 4 Eingängen verbunden. Der Ausgang des Übertrag-Aus-Multiplexers 40 ist mit dem Übertrag-Aus CO 44 der Logikzelle 10 verbunden. Der Auswahleingang des Übertragsmultiplexers 40 ist mit dem Ausgang P des Multiplexers 36 mit 3 Eingängen verbunden.
  • Das Exklusiv-ODER-Gate 46 ist mit einem ersten Eingang mit dem Ausgang der LUT 12 mit 4 Eingängen am Ausgang des Multiplexers 16 verbunden, der auch den Hauptausgang Y 48 der Logikzelle 10 bildet. Ein zweiter Eingang des Exklusiv-ODER-Gates 46 ist mit dem Übertrag-Ein-Eingang CI 42 der Logikzelle 10 verbunden. Der Ausgang des Exklusiv-ODER-Gates 46 ist der Summenausgang S 50 der Logikzelle 10.
  • Die In1-, In2-, In3- und In4-Eingänge (18, 20, 22 und 24) und Y- und S-Ausgänge (48 und 50) sind mit einem programmierbaren Routing-Netzwerk in der integrierten Schaltung verbunden, das bei der Bezugsziffer 52 gezeigt ist. Der Übertrag-Ein-Eingang CI 42 wird direkt durch den Übertrag-Aus-Ausgang einer vorherigen Logikzelle 10 in der Übertragskette angesteuert; diese sind nicht mit dem programmierbaren Routing-Netzwerk verbunden.
  • LUT-basierte FPGA-Logikzellen nach dem Stand der Technik wie die Logikzelle 10 von 1 können ein Bit eines Vorwärts- oder Rückwärtszählers oder ein Bit eines Akkumulators implementieren. Dies ist in 2 dargestellt, die ein Blockdiagramm eines N-Bit-Zählers ist, der unter Verwendung von N Logikzellen 10-0, 10-1 und 10- (N-1) und D-Flip-Flops 54-0, 54-1 und 54 (N-1) implementiert ist. Da jedoch in jeder der Logikzellen 10-0, 10-1 und 10- (N-1) der erste Multiplexer 16 erforderlich ist, um den Multiplexer 36 mit 3 Eingängen und das Exklusiv-ODER-Gate 46 anzusteuern, das verwendet wird, um die Zählerfunktion zu implementieren, kann keine der Logikzellen 10-0, 10-1 und 10- (N-1) die LUT 12 mit 4 Eingängen für andere Zwecke verwenden, während der Zähler implementiert wird, obwohl sie nicht benutzt werden, um den Zähler zu implementieren.
  • Eine wichtige Eigenschaft einer FPGA-Logikzelle ist, wie viele ihrer Ein- und Ausgänge mit dem programmierbaren Routing-Netzwerk verbunden werden müssen. Beispielsweise wurde die Logikzelle 60 nach dem Stand der Technik, die in 3A gezeigt ist, in der Virtex (® 4 FPGA-Familie, hergestellt von Xilinx, Inc., San Jose, CA, verwendet. Einige der Elemente der Logikzelle 60 von 3A sind der Logikzelle 10 von 1 gemeinsam und werden in 3A unter Verwendung der gleichen Bezugsziffern, die verwendet werden, um diese gleichen Elemente in 1 zu bezeichnen, bezeichnet.
  • Die Logikzelle 60 schließt einen LUT-Abschnitt 62 mit 4 Eingängen ein, der Eingänge In1, In2, In3, In4 aufweist, die jeweils mit den Bezugsziffern 18, 20, 22 und 24 gekennzeichnet sind. Das kleine Quadrat 64 gibt die Konfigurationsbits an, die verwendet werden, um die Funktion der In1-, In2-, In3-, In4-LUT-Eingänge zu definieren, die LUT 62 durchführen wird. Der Ausgang der LUT 62 bildet den Y-Ausgang 66 der Logikzelle 60.
  • Ein Übertragskettenabschnitt der Logikzelle 60 ist innerhalb gestrichelter Linien 68 gekennzeichnet. Die Übertragskette 68 schließt einen Multiplexer 70 mit 6 Eingängen ein. Ein erster Eingang des Multiplexers 70 mit 6 Eingängen wird von einem UND-Gate 72 mit 2 Eingängen angesteuert, das von den In1- und In2-Eingängen (22 und 24) zur LUT 62 angesteuert wird. Die zweiten beiden Eingänge des Multiplexers 70 mit 6 Eingängen werden direkt von den In1- und In2-Eingängen (22 und 24) der LUT 62 angesteuert. Ein vierter Eingang des Multiplexers 70 mit 6 Eingängen wird von einem Eingang X bei der Bezugsziffer 74 angesteuert. Zwei verbleibende Eingänge des Multiplexers 70 mit 6 Eingängen werden mit konstanten Werten durch Logik Null und Logik Eins angesteuert. Das kleine Quadrat 76 gibt die Konfigurationsbits an, mit denen ausgewählt wird, welcher der Eingänge des Multiplexers 68 mit 6 Eingängen an seinen Ausgang weitergeleitet wird.
  • Der Ausgang des Multiplexers 70 mit 6 Eingängen ist an einen Eingang eines Übertrag-Aus-Multiplexers 40 mit 2 Eingängen gekoppelt. Der andere Eingang des Übertrag-Aus-Multiplexers 40 wird vom Ausgang eines Multiplexers 78 mit 2 Eingängen angesteuert, dessen einer der Eingänge mit dem CO-Ausgang einer untergeordneten Logikzelle auf der Leitung 80 gekoppelt ist. Der andere Eingang des Multiplexers 78 wird durch den X-Eingang auf der gestrichelt gezeigten Linie 82 angesteuert, da diese Verbindung nur in alternativen (z. B., ungeraden oder geraden) Instanzen der Logikzelle 60 erfolgt.
  • Die Verbindungen zu den LUT-Eingängen In1, In2, In3, In4 (18, 20, 22 und 24) und dem Eingang X (74) kommen vom programmierbaren Routing-Netzwerk 52. Wie aus 3A ersichtlich, fügt die Logikzelle 60 eine zusätzliche Verbindung vom programmierbaren Routing-Netzwerk 52 zum Übertrag-Ein-Eingang über Eingang X bei 74 und vom Übertrag-Aus-Ausgang 44 zum programmierbaren Routing-Netzwerk 52 hinzu. Wie die Logikzelle 10 von 1 basiert die Logikzelle 60 auf einer LUT 62 mit 4 Eingängen, implementiert jedoch die Übertragskette 66 auf andere Weise. Während die Logikzelle 10 der 1 4 Eingänge und 2 Ausgänge aufweist, die mit dem programmierbaren Routing-Netzwerk 52 verbunden sind, weist die Logikzelle 60 von 3A 5 solche Eingänge und 3 solche Ausgänge auf. Diese zusätzlichen Verbindungen zwischen der Logikzelle 60 und dem programmierbaren Routing-Netzwerk 52 können zusätzliche Vielseitigkeit bieten, erhöhen aber auch die Komplexität und damit die Kosten des programmierbaren Routing-Netzwerks 52 erheblich.
  • Eine weitere wichtige Eigenschaft einer FPGA-Logikzelle ist die Anzahl K der Eingänge der LUT. Einige vorhandene FPGAs verwenden LUT-Zellen mit 4 Eingängen (K=4), wie in Logikzellen 10 und 60 von 1 und 3A gezeigt, die insgesamt für kostengünstige FPGAs mit niedriger Leistung am besten sind. 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 neuere Untersuchung von Kompromissen bezüglich der Anzahl von LUT-Eingängen findet sich in „Improving FPGA Performance with a S44 LUT Structure“, Proceedings of the 2018 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, 2018.
  • Ein Beispiel nach dem Stand der Technik für eine LUT mit 6 Eingängen ist in 3B gezeigt. Dies ist ein Blockdiagramm einer Logikzelle 90, die eine teilbare LUT mit 6 Eingängen einschließt, die in gestrichelten Linien 92 gezeigt ist. Diese Logikzelle entspricht einer Logikzelle der Serie 7, hergestellt von Xilinx, Inc. in San Jose, CA.
  • Die LUT 92 mit 6 Eingängen wird aus zwei LUTs 94a und 94b mit 5 Eingängen gebildet. Wie in der Logikzelle 10 von 1 stellen die kleinen Quadrate 96 und 98 Konfigurationsbits dar, die zur Definition der Funktionen der LUTs 94a und 94b verwendet werden. Die fünf Funktionseingänge zu den LUTs 94a und 94b sind mit den Bezugsziffern 100 (In2), 102 (In3), 104 (IN4), 106 (In5) und 108 (In6) angegeben.
  • Ein Multiplexer 110 hat als Dateneingänge die jeweiligen Ausgänge der LUTs 94a und 94b, die mit F0 und F1 bezeichnet sind. Der Auswahleingang des Multiplexers 110 bei 112 ist mit dem In1-Eingang der Logikzelle 90 verbunden und dient als sechster Eingang der LUT 92 mit 6 Eingängen. Der Ausgang des Multiplexers 110 ist mit dem Ausgang Y der Logikzelle 60 verbunden, wie bei der Bezugsziffer 48 angegeben.
  • Die Übertragslogik der Logikzelle 90 ist innerhalb der gestrichelten Linien 114 gezeigt und wird aus zwei Multiplexern 36 und 40 und einem Exklusiv-ODER-Gate 46 gebildet. Der Multiplexer 36 (der G-Multiplexer) hat einen ersten Dateneingang, der mit dem F0-Ausgang der LUT 94a verbunden ist, einen zweiten Dateneingang, der mit dem F1 - Ausgang der LUT 94b verbunden ist, und einen dritten Eingang, der mit einem konstanten niedrigen Logikpegel verbunden ist. Das kleine Quadrat 38 stellt Konfigurationsbits dar, mit denen einer der Eingänge des Multiplexers 36 zu seinem Ausgang geführt wird.
  • Der zweite Multiplexer 40 ist ein Übertrag-Aus-Multiplexer, dessen einer Dateneingang mit dem Ausgang G des Multiplexers 36 und dessen anderer Dateneingang mit dem Übertrag-Ein (CI)-Eingang der Logikzelle 42 verbunden ist. Sein Auswahleingang ist mit dem Ausgang des Multiplexers 110 verbunden. Der Ausgang des Übertrag-Aus-Multiplexers 40 ist mit dem CO-Ausgang der Logikzelle 90 verbunden, wie bei der Bezugsziffer 44 angegeben.
  • Das Exklusiv-ODER-Gate 46 ist mit einem ersten Eingang mit dem Übertrag-Ein-Eingang 42 der Logikzelle 90 und mit einem zweiten Eingang mit dem Ausgang des Multiplexers 110 verbunden. Der Ausgang des Exklusiv-ODER-Gates 46 ist mit dem Summen (S)-Ausgang der Logikzelle 90 verbunden, wie bei der Bezugsziffer 50 angegeben wird.
  • Die Logikzelle 90 weist einen ersten Ausgang Y auf, der bei der Bezugsziffer 48 gezeigt ist, der den Ausgang der sechs LUT 92 mit sechs Eingängen darstellt, und einen zweiten Ausgang Y1, der bei der Bezugsziffer 116 dargestellt ist, der mit dem F0-Ausgang der LUT 94a mit 5 Eingängen a verbunden ist. Die LUT 92 mit sechs Eingängen in der Logikzelle 90 von 3B wird als „teilbar“ bezeichnet, da die LUTs 94a und 94b mit 5 Eingängen unabhängig verwendet werden können, da direkte Ausgänge Y 48 und Y1 116 von beiden LUTs mit 5 Eingängen verfügbar sind (Ausgang Y1 116 von LUT 94a mit 5 Eingängen und Ausgang Y 48 von LUT 94b mit 5 Eingängen durch Multiplexer 110).
  • Die Logikzelle 90 ist in 3B gezeigt, die konfiguriert ist, um ein Bit eines Zählers und jede unabhängige Funktion von 4 Eingängen zu implementieren. Der In2-Eingang 100 dient als Zählereingang. Die untere LUT 94b mit 5 Eingängen ist so konfiguriert, dass F1=In2 an ihrem Ausgang ist. Der In1-Eingang 112 ist an einen Pegel Logik 1 gebunden, so dass bei der Bezugsziffer 48 der Y-Ausgang der Logikzelle 90 Y=In2 ist. Die bei der Bezugsziffer 50 ausgegebene Summe lautet S=EXOR (In2, CI). Der Ausgang G des Multiplexers 36 ist so konfiguriert, dass er den niedrigen logischen Pegel 0 weiterleitet, wie der Übertrag-Aus-Ausgang der Logikzelle 90 bei der Bezugsziffer 44 CO=AND (In2, CI). Der Y1-Ausgang 116 der Logikzelle 90 steht weiterhin zur Verfügung, um jede Funktion der vier verbleibenden Eingänge In3, In4, Ins und In6, aus der LUT 94a mit 5 Eingängen zu erzeugen. Da die in 3B gezeigte Konfiguration die Verwendung der In1- und In2-LUT-Eingänge für die Zählerfunktion erfordert, können diese Eingänge für keine unabhängige LUT-Funktion verwendet werden, was die LUT effektiv auf eine LUT mit 4 Eingängen (94 a) reduziert, deren Ausgang unter Y1 verfügbar ist.
  • Einige Konstruktionen, die in FPGAs programmiert sind, erfordern eine große Anzahl von Vorwärts- oder Rückwärtszählern. Insbesondere wäre es für solche Konstruktionen vorteilhaft, wenn die LUT-Zelle mit 4 Eingängen von 1 einen Zähler implementieren könnte, während die Verwendung der LUT für andere Zwecke beibehalten würde. Es wäre auch günstig, wenn eine LUT-Zelle mit 6 Eingängen einen Zähler implementieren könnte, während sie die Verwendung von mehr als 4 Eingängen der LUT beibehalten wird.
  • Darüber hinaus sind binäre neuronale Netze eine Anwendung von zunehmender Bedeutung. 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. Pop-Zähler werden üblicherweise unter Verwendung von Komprimierern und einem Akkumulator implementiert (was ermöglicht, dass der Wert über mehrere Taktzyklen berechnet wird).
  • Komprimierer sind eine Familie von Logikschaltungen, die als Eingang mehrere binäre numerische Werte annehmen und ihre Summe als einen einzigen binären numerischen Ausgangswert erzeugen. Zum Beispiel kann der bekannte Volladdierer auch als 3:2-Komprimierer bezeichnet werden; er nimmt drei Ein-Bit-Eingänge an und erzeugt einen einzigen Zwei-Bit-Ausgang. 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. Nähere Einzelheiten zu Komprimierern sind zu finden in Gajski, „Parallel Compressors‟, IEEE Transactions on Computers, Band c-29, Nr. 5, Mai 1980. Bei bisherigen Logikzellen wie der von 1 (die leistungseffiziente LUTs mit 4 Eingängen und begrenzte Verbindungen zum programmierbaren Routing-Netzwerk verwenden) sind zwei Logikzellen erforderlich, um jeden 3:2-Komprimierer zu implementieren: eine, um jeden der beiden Ausgänge zu erzeugen. Ein 3:2-Komprimierer kann in einer einzigen der Logikzellen von 3A und 3B implementiert sein, die Logikzelle 60 von 3A benötigt jedoch mehr Anschlüsse an das programmierbare Routing-Netzwerk 52 und die Logikzelle 90 von 3B verbraucht sowohl mehr Fläche und mehr Strom und weist außerdem einen zusätzlichen Anschluss an das programmierbare Routing-Netzwerk für den denn CO-Ausgang auf.
  • Es wäre vorteilhaft, die Effizienz der Implementierung von Zählern und Komprimierern in Logikzellen mit 4 Eingängen, wie der von 1, zu erhöhen, ohne die Anzahl der Eingänge und Ausgänge, die mit dem programmierbaren Routing-Netzwerk verbunden sind, zu erhöhen (was das programmierbare Routing-Netzwerk komplexer und teurer macht) oder die Anzahl K der LUT-Eingänge zu erhöhen (was die Fläche und den Stromverbrauch der Logikzelle erheblich erhöhen würde). Eine solche erhöhte Effizienz würde es Benutzern ermöglichen, mehr Logik in einem FPGA-Chip mit der gleichen Anzahl von Zellen zu packen und möglicherweise schneller zu takten.
  • KURZDARS TELLUNG
  • Nach einem Gesichtspunkt der vorliegenden Erfindung wird eine Logikzelle für eine programmierbare integrierte Logikschaltung präsentiert, wobei K die größte Zahl ist, so dass die Logikzelle eine beliebige Funktion von K Eingängen berechnen kann, und die Logikzelle konfigurierbar ist, um ein Bit eines Zählers parallel zu einer beliebigen unabhängigen Funktion von K-1 Eingängen zu implementieren.
  • Nach einem Gesichtspunkt der Erfindung kann der Zähler ein Vorwärtszähler oder ein Rückwärtszähler sein.
  • Nach einem Gesichtspunkt der vorliegenden Erfindung ist die Logikzelle ferner konfigurierbar, um ein Bit eines Zählers parallel zu einer beliebigen unabhängigen Funktion von K Eingängen zu implementieren.
  • Nach einem Gesichtspunkt der vorliegenden Erfindung ist die Logikzelle ferner konfigurierbar, um ein Bit eines Addierers mit zwei Eingängen zu implementieren.
  • Nach einem Gesichtspunkt der vorliegenden Erfindung ist die Logikzelle ferner konfigurierbar, um ein Bit eines Addierers mit zwei Eingängen zu implementieren, und die Logikzelle weist K Funktionseingänge auf, an denen die Funktion berechnet werden soll, einen Zählereingang, der einen aktuellen Zustand eines Zählerbits empfängt, einen Übertrag-Ein-Eingang, einen Übertrag-Aus-Ausgang, einen primären Ausgang, an dem ein Ausgang der K-Eingangsfunktion verfügbar ist, einen Summenausgang, an dem ein Ausgang des einen der Ein-Bits des Zählers und ein Ausgang der Ein-Bit-Addierers verfügbar ist, eine LUT mit K Eingängen, deren Eingänge durch die K Funktionseingänge angesteuert werden und deren Ausgang den primären Ausgang ansteuert; und eine Übertragsschaltung, die mit dem Übertrag-Ein-Eingang und dem Zählereingang gekoppelt ist und die den Übertrag-Aus-Ausgang und den Summenausgang ansteuert. Die Übertragsschaltung kann den Zähleingang invertieren oder nicht invertieren.
  • Gemäß zwei besonderen Gesichtspunkten der Erfindung ist K=4 und K=6.
  • Nach einem Gesichtspunkt der Erfindung weist eine Logikzelle für eine programmierbare logische integrierte Schaltung nur 4 Eingänge auf, die mit einem programmierbaren Routing-Netzwerk verbunden sind, wobei die Logikzelle nur zwei Ausgänge aufweist, die mit dem programmierbaren Routing-Netzwerk verbunden sind, wobei die Logikzelle einen Übertrag-Ein-Eingang aufweist, wobei die Logikzelle auf eine erste Weise so konfiguriert sein kann, dass der Wert des Übertrag-Ein-Eingangs an einem der Ausgänge erscheint und parallel jede Funktion der 4 Eingänge am anderen Ausgang erscheint, und die Logikzelle auf eine zweite Weise so konfiguriert sein kann, dass sie ein Bit eines Addierers mit zwei Eingängen implementiert, wobei an einem der zwei Ausgänge das Summenbit erscheint.
  • Nach einem Gesichtspunkt der Erfindung kann mit der Logikzelle eine Kette von 4:2-Komprimierern implementiert werden, wobei jeder 4:2-Komprimierer in einer Kette von 4:2-Komprimierern in 2 Instanzen der Logikzelle implementiert werden kann.
  • Nach einem Gesichtspunkt der Erfindung umfasst eine Logikzelle für eine programmierbare logikinterne Schaltung einen Übertragseingang, einen Übertrag-Aus-Multiplexer mit 2 Eingängen, der ein Übertrag-Aus-Signal erzeugt, ein Exklusiv-ODER-Gate mit 2 Eingängen, das einen ersten Eingang, der durch den Übertragseingang angesteuert wird, und einen zweiten Eingang, der durch ein Signal angesteuert wird, das nicht auch das programmierbare Routing-Netzwerk ansteuert, einen Multiplexer, der ein Signal P erzeugt, das einen Auswahleingang des Übertrag-Aus-Multiplexers und einen Eingang des Exklusiv-ODER-Gates ansteuert, aufweist.
  • Nach einem Gesichtspunkt der Erfindung schließt eine Logikzelle für eine programmierbare logikintegrierte Schaltung K Dateneingänge, einen primären Ausgang, einen Übertrag-Ein-Eingang, einen Übertrag-Aus-Ausgang, einen Zählereingang, einen Summenausgang, eine Look-Up-Tabelle (LUT) mit K Eingängen mit K LUT-Eingängen, die jeweils mit einem anderen der K Dateneingänge verbunden sind, und einen LUT-Ausgang, der direkt mit dem primären Ausgang verbunden ist, ein, wobei die LUT mit K Eingängen eine erste Look-Up-Tabelle LUT mit (K-1) Eingängen und eine zweite LUT mit (K-1) Eingängen einschließt, 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, ein erster Multiplexer einen ersten Eingang, der mit dem Ausgang der ersten LUT mit (K-1) Eingängen gekoppelt ist, einen zweiten Dateneingang, der mit dem Ausgang der zweiten LUT mit (K-1) Eingängen gekoppelt ist, und einen Auswahleingang aufweist, der mit einem ersten Eingang der LUT mit K Eingängen gekoppelt ist, wobei der erste Multiplexer einen Ausgang aufweist, der den LUT-Ausgang bildet, der direkt mit dem primären Ausgang verbunden ist.
  • Nach einem Gesichtspunkt der Erfindung weist die Logikzelle eine Übertragsschaltung auf, die einen zweiten Multiplexer, der einen ersten Dateneingang, der mit dem Ausgang einer der ersten und zweiten LUTs mit (K-1) Eingängen gekoppelt ist, einen zweiten Dateneingang, der mit einer logisch niedrigen konstanten Spannung gekoppelt ist, Auswahleingänge, die mit einer Konfigurationsschaltung für die Logikzelle gekoppelt sind und einen Datenausgang aufweist, einen dritten Multiplexer, der einen ersten Dateneingang, der mit dem Zählereingang der Logikzelle gekoppelt ist, einen zweiten Dateneingang, der mit dem LUT-Ausgang gekoppelt ist, einen dritten Dateneingang, der mit einer logisch niedrigen konstanten Spannung gekoppelt ist, Auswahleingänge, die mit einer Konfigurationsschaltung für die Logikzelle gekoppelt sind und einen Datenausgang aufweist, einen Übertrag-Aus-Multiplexer, der einen ersten Dateneingang, der mit dem Datenausgang des zweiten Multiplexers gekoppelt ist, einen zweiten Dateneingang, der mit dem Übertrag-Ein-Eingang der Logikzelle gekoppelt ist, einen Auswahleingang, der mit dem Datenausgang des dritten Multiplexers gekoppelt ist, und einen Datenausgang aufweist, der mit dem Übertrag-Aus-Ausgang der Logikzelle gekoppelt ist, und ein Exklusiv-ODER-Gate, das einen ersten Eingang, der mit dem Übertrag-Ein-Eingang der Logikzelle gekoppelt ist, einen zweiten Eingang, der mit dem Datenausgang des dritten Multiplexers gekoppelt ist, und einem Ausgang aufweist, der mit dem Summenausgang der Logikzelle gekoppelt ist, einschließt. Die Übertragsschaltung kann ferner einen vierten Multiplexer einschließen, der zwischen den Zählereingang der Logikzelle und den ersten Dateneingang des dritten Multiplexers gekoppelt ist, wobei der vierte Multiplexer einen ersten Dateneingang und einen zweiten Dateneingang aufweist, wobei der zweite Dateneingang ein invertierender Dateneingang ist, wobei der erste und der zweite Dateneingang zusammen mit dem Zählereingang der Logikzelle gekoppelt sind, einen Auswahleingang, der mit einer Konfigurationsschaltung für die Logikzelle gekoppelt ist, und einen Ausgang, der mit dem ersten Dateneingang des dritten Multiplexers gekoppelt ist.
  • Nach einem Gesichtspunkt der Erfindung weist mindestens einer der zweiten und dritten Multiplexer einen Dateneingang auf, der mit einer logisch hohen konstanten Spannung gekoppelt ist.
  • Nach einem Gesichtspunkt der Erfindung weist der zweite Multiplexer einen Dateneingang auf, der mit dem Ausgang der ersten LUT mit (K-1) Eingängen gekoppelt ist, und einen Dateneingang, der mit dem Ausgang der zweiten LUT mit (K-1) Eingängen gekoppelt ist.
  • Figurenliste
  • Die Erfindung wird im Folgenden unter Bezugnahme auf Gesichtspunkte und die Zeichnung ausführlicher erläutert, bei denen gezeigt wird:
    • 1 ist ein eine Blockdiagramm einer Logikzelle nach dem Stand der Technik;
    • 2 ist ein Blockdiagramm eines Vorwärtszählers unter Verwendung einer Logikzelle nach dem Stand der Technik von 1 pro Bit;
    • 3A ist ein Diagramm einer Logikzelle nach dem Stand der Technik, die eine LUT mit 4 Eingängen und zusätzliche Verbindungen zu dem programmierbaren Routing-Netzwerk für Übertrag-Ein und Übertrag-Aus einschließt;
    • 3B ist ein Blockdiagramm einer Logikzelle nach dem Stand der Technik, die eine teilbare LUT mit K Eingängen einschließt und in der Lage ist, gleichzeitig einen Vorwärtszähler und eine beliebige Funktion mit (K-2) Eingängen zu implementieren (wobei K=6);
    • 4 ist ein Blockdiagramm einer Logikzelle gemäß einem Gesichtspunkt der vorliegenden Erfindung;
    • 5 ist ein Blockdiagramm eines Vorwärtszählers gemäß einem Gesichtspunkt der vorliegenden Erfindung unter Verwendung einer Logikzelle von 4 pro Bit;
    • 6 ist ein Blockdiagramm einer Logikzelle gemäß einem Gesichtspunkt der vorliegenden Erfindung, die sowohl eine Vorwärtszählerfunktion als auch eine Rückwärtszählerfunktion unterstützt;
    • 7 ist ein Blockdiagramm eines Rückwärtszählers gemäß einem Gesichtspunkt der vorliegenden Erfindung unter Verwendung einer Logikzelle von 6 pro Bit;
    • 8 ist ein Blockdiagramm eines Akkumulators mit einem L-Bit-Eingang und einem N-Bit-Ausgang gemäß einem Gesichtspunkt der vorliegenden Erfindung unter Verwendung einer Logikzelle von 4 pro Ausgangsbit;
    • 9A ist ein Blockdiagramm eines 3:2-Komprimierers, der gemäß einem Gesichtspunkt der vorliegenden Erfindung unter Verwendung von Logikzellen von 4 implementiert ist;
    • 9B ist eine Detailansicht eines 3:2-Komprimierers, der gemäß einem Gesichtspunkt der vorliegenden Erfindung unter Verwendung von Logikzellen von 4 implementiert ist;
    • 10A ist ein Funktionsblockdiagramm eines 4:2-Komprimierers;
    • 10B ist ein Blockdiagramm eines 4:2-Komprimierers, der gemäß einem Gesichtspunkt der vorliegenden Erfindung unter Verwendung von Logikzellen wie denen von 4 implementiert ist; und
    • 11 ist ein Blockdiagramm eines Addierers mit 2 Eingängen, der gemäß einem Gesichtspunkt der vorliegenden Erfindung unter Verwendung von Logikzellen wie denen von 4 implementiert ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Fachleute werden erkennen, dass die folgende Beschreibung nur veranschaulichend und in keinerlei Weise einschränkend ist. Andere Ausführungsformen werden dem Fachmann ohne Weiteres einfallen.
  • Die vorliegende Erfindung verbessert die Effizienz bestehender LUTbasierter FPGA-Logikzellen bei der Implementierung von Vorwärts-, Rückwärts- und Pop-Zählern. Beim Implementieren jeder dieser Funktionen bleiben einige der LUTs mit K Eingängen in einigen der Logikzellen verfügbar, um jede Funktion der K Eingänge zu diesen LUTs zu erzeugen.
  • Gemäß einem Gesichtspunkt der vorliegenden Erfindung ist eine veranschaulichende LUT-basierte Logikzelle 120, die eine verbesserte Effizienz für Vorwärtszähler und Pop-Zähler ermöglicht, in 4 gezeigt, auf die nun hingewiesen wird. Einige der Elemente der Logikzelle 120 von 4 sind den Logikzellen, die in vorherigen Zeichnungsfiguren gezeigt sind, gemeinsam und werden in 4 unter Verwendung der gleichen Bezugsziffern, die verwendet werden, um diese gleichen Elemente in den vorherigen Zeichnungsfiguren zu bezeichnen, bezeichnet.
  • Die Logikzelle 120 von 4 schließt eine LUT mit K Eingängen ein, die in gestrichelten Linien 122 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 die Konfigurationseingänge dar, mit denen die Funktionen der LUTs 124a und 124b definiert werden. Sowohl LUTs 124a als auch 124b teilen sich die K-1 Funktionseingänge (In2, In3, ... InK, die jeweils bei der Bezugsziffer 130, 132 und 134 gezeigt sind). Ein erster Multiplexer 136 (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 Ini bei Bezugsziffer 138 der LUT 122 mit K Eingängen gekoppelt ist, auf. Der Datenausgang des ersten Multiplexers 136 dient als Ausgang der LUT 122 mit K Eingängen und ist direkt mit dem primären Ausgang (Y) der Logikzelle verbunden, wobei der Hauptausgang der Logikzelle 120 bei der Bezugsziffer 48 gezeigt ist. In einem besonderen Fall der vorliegenden Erfindung ist K=4.
  • Die Logikzelle 120 von 4 schließt auch einen Übertrag-Ein-Eingang CI 42, einen Zählereingang QI 140, einen Übertrag-Aus-Ausgang CO 44 und einen Summenausgang S 50 ein. Eine Übertragsschaltung 142 in der Logikzelle von 4 schließt einen zweiten Multiplexer ein, der in 4 als Multiplexer 32 mit 4 Eingängen gezeigt ist, der einen ersten Dateneingang, der mit dem F0-Ausgang der ersten LUT 124a mit 3 Eingängen gekoppelt ist, einen zweiten Dateneingang, der mit dem F1-Ausgang der zweiten LUT 124b mit 3 Eingängen gekoppelt ist, einen dritten Dateneingang, der mit einer logisch hohen konstanten Spannung gekoppelt ist, einen vierten Dateneingang, der mit einer logisch niedrigen konstanten Spannung gekoppelt ist, Auswahleingänge, die als kleine Quadrate 34 gezeigt sind, die mit einer Konfigurationsschaltung für den Multiplexer 32 gekoppelt sind, die verwendet wird, um auszuwählen, welcher der Eingänge des zweiten Übertragsmultiplexers 32 zu seinem Datenausgang weitergeleitet wird, und einen Datenausgang aufweist, der mit G bezeichnet ist. Ein dritter Multiplexer ist in 4 als Multiplexer 36 mit 4 Eingängen in der Übertragsschaltung 142 der Logikzelle von 4 gezeigt, weist einen ersten Dateneingang, der mit dem Zählereingang QI 140 der Logikzelle 120 gekoppelt ist, einen zweiten Dateneingang, der mit dem Ausgang der LUT 122 mit K Eingängen am ersten Multiplexer 136 gekoppelt ist, einen dritten Dateneingang, der mit einer logisch hohen konstanten Spannung gekoppelt ist, einen vierten Dateneingang, der mit einer logisch niedrigen konstanten Spannung gekoppelt ist, Auswahleingänge, die als kleines Quadrat 38 gezeigt sind, gekoppelt mit der Konfigurationsschaltung für den dritten Multiplexer 36, um auszuwählen, welcher der Eingänge des dritten Multiplexers 36 an seinen Datenausgang weitergeleitet wird, und einen Datenausgang auf, der mit P bezeichnet ist. Ein Übertrag-Aus-Multiplexer, der in 4 als ein Multiplexer 40 mit 2 Eingängen in der Übertragsschaltung 142 der Logikzelle 110 von 4 gezeigt ist, weist einen ersten Dateneingang, der mit dem Datenausgang G des zweiten Multiplexers 32 gekoppelt ist, einen zweiten Dateneingang, der mit dem Übertrag-Ein-Eingang CI 42 der Logikzelle 120 gekoppelt ist, einen Auswahleingang, der mit dem P-Datenausgang des dritten Multiplexers 36 gekoppelt ist, und einen Datenausgang auf, der mit dem Übertrag-Aus-Ausgang CO 44 der Logikzelle 120 gekoppelt ist. Ein Exklusiv-ODER-Gate 46 in der Übertragsschaltung 142 der Logikzelle 120 von 4 weist einen ersten Eingang, der mit dem Übertrag-Ein-Eingang CI 42 der Logikzelle 120 gekoppelt ist, einen zweiten Eingang, der mit dem Datenausgang P des dritten Multiplexers 36 gekoppelt ist, und einen Ausgang, der mit dem Summenausgang S 50 der Logikzelle 120 gekoppelt ist, auf.
  • In einigen Implementierungen der Erfindung kann entweder der F0- oder der F1-Eingang von LUTs 124a und 124b oder der logisch hohe Konstantspannungseingang von dem zweiten Multiplexer 32 und/oder der logisch hohe Konstantspannungseingang von dem dritten Multiplexer 36 weggelassen werden.
  • Die strukturellen Unterschiede zwischen der Logikzelle 120 nach dem Gesichtspunkt der Erfindung, die in 4 veranschaulicht wird, und der Logikzelle nach dem Stand der Technik in 1 bestehen in der Verwendung des zweiten Multiplexers 36 mit 4 Eingängen zur Ansteuerung des Exklusiv-ODER-Gates 46, das den Summenausgang S50 erzeugt, und der Addition eines QI-Zählereingangs 140 zur Logikzelle 120 wie in 4 gezeigt.
  • Allgemein weist die Logikzelle 120 von 4 K Funktionseingänge, einen QI-Eingang und einen Übertragseingang auf. Das besondere Beispiel, das in 4 gezeigt ist, schließt K Funktionseingänge In1 138, In2 130, IN3 132 durch InK 134 ein. Um Logikzellen mit größeren Werten von K zu implementieren, können zusätzliche Funktionseingänge hinzugefügt werden, die jeweils beide LUTs 124a und 124b ansteuern. Der primäre Ausgang Y 48 der Logikzelle 120 stellt einen Wert dar, der eine beliebige Funktion der K 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 verbunden. Der QI-Eingang kann, wie oben zu 2 beschrieben, von dem der Logikzelle zugeordneten Flip-Flop angesteuert werden, muss aber nicht von dem programmierbaren Routing-Netzwerk angesteuert werden. Der Übertragsausgang CO einer Zelle steuert direkt den Übertragseingang CI der nächsten Zelle in der Übertragskette an, wobei weder CI noch CO mit dem programmierbaren Routing-Netzwerk verbunden sein müssen.
  • 5 ist ein Blockdiagramm, das zeigt, wie die Logikzelle 120 von 4 verwendet werden kann, um einen Vorwärtszähler zu implementieren. 5 zeigt einen N-Bit-Vorwärtszähler 160, der aus (N-1) Logikzellen 120-0, 120-1 und 120- (N-1) gebildet ist. Wie in 5 gezeigt, ist der zweite Multiplexer 32 in 4 so gesetzt, dass sein Ausgang G den Wert Logik 0 hat, und der Multiplexer 36 ist so gesetzt, dass sein Ausgang P den Wert am Eingang QI 140 der Logikzelle 120 von 4 hat. Der Übertrag-Ein-CI-Eingang 42 der Logikzelle 120, der das niederwertigste Bit darstellt, ist auf Logik 1 gesetzt und der Übertrag-Ein-Eingang CI 42 jedes der aufeinanderfolgenden höherwertigen Bits ist mit dem Übertrag-Aus-Ausgang CO 44 der benachbarten niederwertigen Bitlogikzelle 120 verbunden. Die Daten-Flip-Flops 162-0 bis 162- (N-1) sind mit ihren Dateneingängen jeweils mit dem S-Ausgang (138 in 4) der in ihrer jeweiligen Zählerstufe eingeschlossenen Logikzelle 110 verbunden. Die Q-Ausgänge der Flip-Flops 162-0 bis 162- (N-1) sind jeweils mit dem QI-Eingang (140 in 4) der in ihrer jeweiligen Zählerstufe eingeschlossen Logikzelle verbunden.
  • Wie in 5 gezeigt, werden keiner der LUT-Eingänge (der Einfachheit halber als In1, In2, In3, ... InK in einer Instanz der Erfindung gezeigt, die LUTs mit K Eingängen 122 verwendet) und kein Y-Ausgang aller Logikzellen (120-0, 120-1 und 120- (N-1) in der Durchführung der Zählerfunktion verwendet, so kann jede Zelle verwendet werden, um eine beliebige Funktion der K Eingänge (In1, In2, In3, ... InK in 5) gleichzeitig mit dem Betrieb der Vorwärtszählerfunktion zu erzeugen. Dies ist unter Verwendung keiner der Logikzellen nach dem Stand der Technik möglich.
  • In 6 zeigt ein Blockdiagramm eine Variante der Logikzelle von 4. Die Logikzelle 170 von 6 umfasst viele der gleichen Elemente, die in der Logikzelle 120 von 4 vorhanden sind. Diese beiden Zeichnungsfiguren gemeinsamen Elemente werden unter Verwendung der gleichen Bezugsziffern wie in 4 verwendet bezeichnet. Die in der Logikzelle 170 gemeinsamen Elemente, die der Logikzelle 120 gemeinsam sind, sind wie unter Bezugnahme auf 4 beschrieben verbunden.
  • Der Unterschied zwischen der Logikzelle 170 von 6 und der Logikzelle 120 von 4 besteht darin, dass die Logikzelle 170 von 6 ferner einen vierten Multiplexer 172 mit einem ersten Dateneingang und einem zweiten Dateneingang schließt. Der zweite Dateneingang ist ein invertierender Dateneingang. Der erste und der zweite Dateneingang sind zusammen mit dem Zählereingang QI 140 der Logikzelle 170 gekoppelt, und ein Auswahleingang ist mit einer Konfigurationsschaltung für die Logikzelle gekoppelt, die durch ein kleines Quadrat 174 dargestellt wird. Der Ausgang des vierten Multiplexers 172 ist mit dem ersten Dateneingang des dritten Multiplexers 36 gekoppelt.
  • Der vierte Multiplexer 172 invertiert selektiv den am QI-Eingang 134 vorhandenen Wert wie durch Konfigurationsbit 174 konfiguriert. Die Logikzelle 170 von 6 verwendet somit den vierten Multiplexer 172 als programmierbaren Inverter, um sowohl eine Vorwärtszähler- als auch eine Zählerfunktion zu unterstützen, indem das Konfigurationsbit auf die Bezugsziffer 174 gesetzt wird, um entweder den nicht invertierten oder den invertierten QI-Eingang auf die Bezugsziffer 140 weiterzuleiten. Wie bei der Logikzelle von 4 kann bei einigen Implementierungen der Erfindung entweder der F0- oder der F 1-Eingang der LUTS 124a und 124b oder der logisch hohe Konstantspannungseingang des zweiten Multiplexers 32 und/oder der logisch hohe Konstantspannungseingang des dritten Multiplexers 36 weggelassen werden.
  • 7 ist ein Blockdiagramm, das die Logikzelle von 6 zeigt, die verwendet wird, um einen Rückwärtszähler zu implementieren. 7 zeigt einen N-Bit-Zähler 180, der (N-1) Logikzellen verwendet. Der Übertrag-Ein-CI-Eingang des niederwertigsten Bits wird auf Logik 0 gesetzt (statt auf Logik 1 bei dem in 5 dargestellten Zähler). Wie in 7 gezeigt, ist der Ausgang des zweiten Multiplexers 32 in 6 auf den Wert Logik 1 und der Ausgang P des dritten Multiplexers 36 auf den Wert am Eingang QI 140 der vom vierten Multiplexer 172 invertierten Logikzelle 170 in 6 gesetzt. Wie ebenfalls in 7 gezeigt, können alle LUT-Eingänge aller Logikzellen (0, 1 und N-1) verwendet werden, um eine beliebige Funktion der K Eingänge gleichzeitig mit dem Betrieb der Vorwärts- oder Rückwärtszählerfunktion zu erzeugen.
  • Eines der attraktiven Merkmale der vorliegenden Erfindung besteht darin, dass bei der Implementierung sowohl von Vorwärts- als auch von Rückwärtszählern, wie in 5 und 7 gezeigt, der gesamte LUT-Abschnitt 112 mit K Eingängen jeder verwendeten Logikzelle 120 und 170 verfügbar bleibt, um eine beliebige Funktion aller LUT-Eingänge zu erzeugen. Dies ist mit Logikzellen nach dem Stand der Technik nicht möglich und stellt einen wesentlichen Vorteil der erfindungsgemäßen Logikzelle dar, da Anwenderdesigns mit weniger Logikzellen als im Stand der Technik implementiert werden können.
  • Eine weitere Demonstration der Vielseitigkeit der Logikzellen 120 und 170 von 4 und 6 ist in 8 gezeigt, ein Blockdiagramm, das zeigt, wie Logikzellen wie diejenigen von 4 zur Implementierung eines Akkumulators verwendet werden können. 8 zeigt einen Akkumulator mit einem L-Bit-Eingang und einem N-Bit-Ausgang. Der N-Bit-Akkumulator 190 verwendet N Logikzellen, die wie gezeigt als 120-0 bis 120-N verbunden sind. Der CI-Eingang der Logikzelle 120-0 ist mit einem konstanten logisch niedrigen Pegel „0“ verbunden. Der CO-Ausgang jeder Logikzelle ist mit dem CI-Eingang der nächsten Logikzelle im Akkumulator verbunden.
  • Jeder Logikzelle 120-0 bis 120- (N-1) ist jeweils ein Daten-Flip-Flop 192-0 bis 192- (N-1) zugeordnet. Der S-Ausgang jeder Logikzelle ist mit dem D-Eingang ihres zugeordneten Daten-Flip-Flops gekoppelt. Der Q-Ausgang jedes Daten-Flip-Flops 192-L bis 192- (N-1) ist mit dem QI-Eingang seiner zugeordneten Logikzelle gekoppelt.
  • Die In1-Eingänge der Logikzellen 120-0 bis 120- (L-1) sind mit den Q-Ausgängen der ihnen zugeordneten Daten-Flip-Flops gekoppelt. Die In2-Eingänge der Logikzellen 120-0 bis 120- (L-1) sind mit den einzelnen Bits des L-Bit-Eingangs des Akkumulators 190 gekoppelt. Die Tabelle in 8 zeigt die Konfiguration jeder der Logikzellen im Akkumulator.
  • Bei der Implementierung von Akkumulatoren bleibt der gesamte LUT-Abschnitt einer Logikzelle, die eines der höherwertigen Bits des Akkumulators 190 implementiert, für andere Zwecke vollständig verfügbar, wie in 8 gezeigt. Wie aus einer Untersuchung von 8 ersichtlich ist, bleiben die LUT-Funktionen der Logikzellen 120-L bis 120- (N-1) gleichzeitig mit dem Betrieb des Akkumulators 190 verfügbar. Obwohl das Vorstehende in Bezug auf Logikzellen 120 beschrieben wurde, wird der Fachmann erkennen, dass dies gleichermaßen für Logikzellen 170 gilt.
  • Ein weiteres Beispiel für die Vielseitigkeit der Logikzellen 120 und 170 von 4 oder 6 ist in 9 A dargestellt. Die Logikzellen der vorliegenden Erfindung haben die Fähigkeit, durch Setzen von P=0 den Wert des CI-Eingangs an den S-Ausgang und weiter an das programmierbare Routing-Netzwerk zu übertragen, während die LUT verfügbar bleibt, um eine beliebige unabhängige Funktion von K Eingängen parallel zu implementieren. Im Gegensatz zur Zelle nach dem Stand der Technik der 3A ist keine zusätzliche aufwendige Verbindung zwischen CI oder CO und dem programmierbaren Routing-Netzwerk erforderlich. Diese Fähigkeit kann beispielsweise eine effizientere Implementierung von Komprimierern ermöglichen. Die Implementierung eines 3:2-Komprimierers mit der Logikzelle nach dem Stand der Technik von 1 würde zwei Zellen vollständig verbrauchen. 9A zeigt, wie ein 3:2-Komprimierer mit den Logikzellen 120 oder 170 nur unter Verwendung von Abschnitten von zwei Logikzellen implementiert werden kann. Der Fachmann wird erkennen, dass die Logikzelle 120-1 von 9A noch ihre In1-, In2-, In3,- und In4-Eingänge und Y- und CO-Ausgänge noch verfügbar hat, und genügend ihrer internen Logik verfügbar hat, dass sie auch als die erste Logikzelle eines zusätzlichen 3:2-Komprimierers oder als unabhängige K-Eingangsfunktion dienen kann. Auf diese Weise können M Komprimierer in M+1 Logikzellen gegenüber 2M unter Verwendung der Zelle nach dem Stand der Technik von 1 implementiert werden. Die inkrementellen Kosten eines 3:2-Komprimierers betragen somit nur eine Logikzelle. Weitere Details dieser Implementierung sind in 9B gezeigt, die insbesondere eine Implementierung mit Logikzelle 120 veranschaulicht, wobei es sich versteht, dass eine ähnliche Implementierung unter Verwendung der Logikzelle 170 durchgeführt werden kann.
  • Noch ein weiteres Beispiel für die Vielseitigkeit der Logikzellen 120 und 170 von 4 oder 6 ist in 10A und 10B. 10A ist ein Blockdiagramm eines 4:2-Komprimierers 210, der aus zwei Volladdierern 212 gebildet ist, wie gezeigt. 10A definiert die Funktion eines 4:2-Komprimierers im Hinblick auf die bekannte Volladdiererzelle 212. Der Komprimierer 210 wird von Eingängen gespeist, die willkürlich als Eingänge T, U, V, W und X bezeichnet werden. Der Eingang T würde vom Ausgang N eines vorhergehenden Komprimierers in einer Kette angesteuert. 10B ist ein Blockdiagramm, das veranschaulicht, wie nur zwei Logikzellen 120-0 und 120-1 erforderlich sind, um den 4:2-Komprimierer 210 von 10 A zu implementieren, und schließt eine Tabelle ein, die Konfiguration der Logikzellen 120-0 und 120-1 zeigt, um diese Funktion zu implementieren. Der oberste Volladdierer 212 von 10A ist in der Logikzelle 1 von 10B implementiert. Der untere Volladdierer 212 ist in der Logikzelle 0 implementiert, einschließlich der Erzeugung des Signals M, das dann die Logikzelle 1 vom CI-Eingang zum S-Ausgang weitergeleitet. Wie in 10B gezeigt, kann ein 4:2-Komprimierer unter Verwendung von zwei der Logikzellen 120 der vorliegenden Erfindung implementiert werden, während er mindestens drei der in 1 gezeigten Logikzellen nach dem Stand der Technik annehmen würde, um diese Funktion zu implementieren. Obwohl das Vorstehende in Bezug auf Logikzellen 120 beschrieben wurde, wird der Fachmann erkennen, dass dies gleichermaßen für Logikzellen 170 gilt.
  • Unter Bezugnahme auf 11 zeigt ein Blockdiagramm einen N-Bit-Addierer 220 mit zwei Eingängen, der gemäß einem Gesichtspunkt der vorliegenden Erfindung unter Verwendung von Logikzellen 120 von 4 implementiert ist. Der N-Bit-Addierer 220 verwendet N+1 Logikzellen, die wie gezeigt als 120-0 bis 110-N verbunden sind. Der CI-Eingang der Logikzelle 120-0 ist mit einem konstanten logisch niedrigen Pegel „0“ verbunden. Der CO-Ausgang jeder Logikzelle 120 ist mit dem CI-Eingang der nächsten Logikzelle 120 im Addierer 220 verbunden.
  • Die In1- und In2-Eingänge der Logikzellen 120-0 bis 120- (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 220 gekoppelt. Die S Ausgänge jeder Logikzelle 120-0 bis 120-N bilden die Summenausgänge für jedes der N+1 Ausgangsbits des Addierers. Die Tabelle in 11 zeigt die Konfiguration jeder der Logikzellen 120 im Addierer 220. Die Logikzelle 120-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. Obwohl das Vorstehende in Bezug auf Logikzellen 120 beschrieben wurde, wird der Fachmann erkennen, dass dies gleichermaßen für Logikzellen 170 gilt.
  • 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. Zum Beispiel hängen die in 9A, 9B und 10B gezeigten Fähigkeiten nur von dem Gesichtspunkt der Erfindung ab, dass P statt Y verwendet wird, um das Exklusiv-ODER-Gate anzusteuern, und könnten daher in einer alternativen Ausführungsform realisiert werden, die nicht das Hinzufügen des in 4 gezeigten QI-Eingangs einschließt. Die Erfindung ist daher außer hinsichtlich des Grundgedankens der beigefügten Ansprüche als nicht eingeschränkt anzusehen.
  • 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 Nicht-Patentliteratur
    • „Parallel Compressors‟, IEEE Transactions on Computers, Band c-29, Nr. 5, Mai 1980 [0025]

Claims (18)

  1. Logikzelle für eine programmierbare integrierte Logikschaltung, wobei: K die größte Zahl ist, so dass die Logikzelle jede Funktion von K Eingängen berechnen kann; und die Logikzelle konfigurierbar ist, um ein Bit eines Zählers parallel zu einer beliebigen unabhängigen Funktion von K-1 Eingängen zu implementieren.
  2. Logikzelle nach Anspruch 1, wobei die Logikzelle ferner konfigurierbar ist, um ein Bit eines Zählers parallel zu einer beliebigen unabhängigen Funktion von K Eingängen zu implementieren.
  3. Logikzelle nach Anspruch 2, wobei: die Logikzelle ferner konfigurierbar ist, um ein Bit eines Addierers mit zwei Eingängen zu implementieren.
  4. Logikzelle nach Anspruch 3, umfassend: K Funktionseingänge, an denen die Funktion berechnet werden soll; einen Zählereingang, der einen aktuellen Zustand eines Zählerbits empfängt; einen Übertrag-Ein-Eingang; einen Übertrag-Aus-Ausgang; einen primären Ausgang, an dem ein Ausgang der K-Eingangsfunktion verfügbar ist; einen Summenausgang, an dem ein Ausgang des einen der Ein-Bits des Zählers oder ein Ausgang des Ein-Bit-Addierers verfügbar ist; eine LUT mit K Eingängen, deren Eingänge von den K Funktionseingängen angesteuert werden und deren Ausgang den primären Ausgang ansteuert; und eine Übertragsschaltung, die mit dem Übertrag-Ein-Eingang und dem Zählereingang gekoppelt ist und die den Übertrag-Aus-Ausgang und den Summenausgang ansteuert.
  5. Logikzelle nach Anspruch 1, wobei der Zähler ein Vorwärtszähler oder ein Rückwärtszähler ist.
  6. Logikzelle nach Anspruch 1, wobei die Logikzelle ferner konfigurierbar ist, um ein Bit eines Addierers mit zwei Eingängen zu implementieren.
  7. Logikzelle nach Anspruch 6, umfassend: K Funktionseingänge, an denen die Funktion berechnet werden soll; einen Zählereingang, der den aktuellen Zustand des Zählerbits empfängt; einen Übertrag-Ein-Eingang; einen Übertrag-Aus-Ausgang; einen primären Ausgang, an dem der Ausgang der K-Eingangsfunktion verfügbar ist; einen Summenausgang, an dem der Ausgang des Ein-Bit-Zählers oder Ein-Bit-Addierers verfügbar ist; eine LUT mit K Eingängen mit Eingängen, die von den K Funktionseingängen angesteuert werden, und einem Ausgang, der den Funktionsausgang ansteuert; und eine Übertragsschaltung, die mit dem Übertrag-Ein-Eingang, dem Zählereingang, dem Übertrag-Aus-Ausgang und dem Summenausgang gekoppelt ist.
  8. Logikzelle nach Anspruch 7, wobei die Übertragsschaltung den Zähleingang invertieren oder nicht invertieren kann.
  9. Logikzelle nach Anspruch 1 oder 2, wobei K=4.
  10. Logikzelle nach Anspruch 1 oder 2, wobei K=6.
  11. Logikzelle für eine programmierbare integrierte Logikschaltung, wobei: die Logikzelle nur 4 Eingänge aufweist, die mit einem programmierbaren Routing-Netzwerk verbunden sind; die Logikzelle nur zwei Ausgänge aufweist, die mit dem programmierbaren Routing-Netzwerk verbunden sind; die Logikzelle einen Übertrag-Ein-Eingang aufweist; die Logikzelle auf eine erste Weise so konfiguriert sein kann, dass der Wert des Übertrag-Ein-Eingangs an einem der Ausgänge erscheint und parallel jede Funktion der 4 Eingänge an dem anderen Ausgang erscheint; und die Logikzelle auf eine zweite Weise konfiguriert sein kann, um ein Bit eines Addierers mit zwei Eingängen zu implementieren, wobei das Summenbit an einem der beiden Ausgänge erscheint.
  12. Logikzelle nach Anspruch 11, wobei: jeder 4:2-Komprimierer in einer Kette von 4:2-Komprimierern in 2 Instanzen der Logikzelle implementiert sein kann.
  13. Logikzelle für eine programmierbare integrierte Logikschaltung, umfassend: einen Übertragseingang; einen Übertrag-Aus-Multiplexer mit 2 Eingängen, der ein Übertrag-Aus-Signal erzeugt; ein Exklusiv-ODER-Gate mit 2 Eingängen, das einen ersten Eingang, der durch den Übertragseingang angesteuert wird, und einen zweiten Eingang, der durch ein Signal angesteuert wird, das nicht auch das programmierbare Routing-Netzwerk ansteuert, aufweist; einen Multiplexer, der ein Signal P erzeugt, das einen Auswahleingang des Übertrag-Aus-Multiplexers und einen Eingang des Exklusiv-ODER-Gates ansteuert.
  14. Logikzelle für eine programmierbare integrierte Logikschaltung, umfassend: K Dateneingänge; einen primären Ausgang; einen Übertrag-Ein-Eingang; einen Übertrag-Aus-Ausgang; einen Zählereingang; einen Summenausgang; eine Look-Up-Tabelle (LUT) mit K Eingängen mit K LUT-Eingängen, die jeweils mit einem anderen der K Dateneingänge verbunden sind, und einem LUT-Ausgang, der direkt mit dem primären Ausgang verbunden ist, wobei die LUT mit K Eingängen einschließt: eine erste Look-Up-Tabelle LUT mit (K-1) Eingängen und eine zweite LUT mit (K-1) Eingängen, die beide zweiten bis K-ten 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 Dateneingang, der mit dem Ausgang der zweiten LUT mit (K-1) Eingänge gekoppelt ist, und einem Auswahleingang, der mit einem ersten Eingang der LUT mit K Eingängen gekoppelt ist, wobei der erste Multiplexer einen Ausgang aufweist, der den LUT-Ausgang bildet, der direkt mit dem primären Ausgang verbunden ist; und eine Übertragsschaltung.
  15. Logikzelle nach Anspruch 14, wobei die Übertragsschaltung umfasst: einen zweiten Multiplexer mit einem ersten Dateneingang, der den Ausgang einer der ersten und zweiten LUTs mit (K-1) Eingängen gekoppelt ist, einen zweiten Dateneingang, der mit einer logisch niedrigen konstanten Spannung gekoppelt ist, Auswahleingänge, die mit einer Konfigurationsschaltung für die Logikzelle gekoppelt sind, und einen Datenausgang aufweist; einen dritten Multiplexer, der einen ersten Dateneingang, der mit dem Zählereingang der Logikzelle gekoppelt ist, einen zweiten Dateneingang, der mit dem LUT-Ausgang gekoppelt ist, einen dritten Dateneingang, der mit einer logisch niedrigen konstanten Spannung gekoppelt ist, Auswahleingänge, die mit einer Konfigurationsschaltung für die Logikzelle gekoppelt sind, und einem Datenausgang aufweist; einen Übertrag-Aus-Multiplexer, der einen ersten Dateneingang, der mit dem Datenausgang des zweiten Multiplexers gekoppelt ist, einen zweiten Dateneingang, der mit dem Übertrag-Ein-Eingang der Logikzelle gekoppelt ist, einen Auswahleingang, der mit dem Datenausgang des dritten Multiplexers gekoppelt ist, und einen Datenausgang aufweist, der mit dem Übertrag-Aus-Ausgang der Logikzelle gekoppelt ist; und ein Exklusiv-ODER-Gate, das einen ersten Eingang, der mit dem Übertrag-Ein-Eingang der Logikzelle gekoppelt ist, einen zweiten Eingang, der mit dem Datenausgang des dritten Multiplexers gekoppelt ist, und einen Ausgang aufweist, der mit dem Summenausgang der Logikzelle gekoppelt ist.
  16. Logikzelle nach Anspruch 15, wobei die Übertragsschaltung ferner umfasst: einen vierten Multiplexer, der zwischen den Zählereingang der Logikzelle und den ersten Dateneingang des dritten Multiplexers gekoppelt ist, wobei der vierte Multiplexer einen ersten Dateneingang und einen zweiten Dateneingang, wobei der zweite Dateneingang ein invertierender Dateneingang ist, wobei der erste und der zweite Dateneingang zusammen mit dem Zählereingang der Logikzelle gekoppelt sind, einen Auswahleingang, der mit einer Konfigurationsschaltung für die Logikzelle gekoppelt ist, und einen Ausgang aufweist, der mit dem ersten Dateneingang des dritten Multiplexers gekoppelt ist.
  17. Logikzelle nach Anspruch 15, wobei mindestens einer der zweiten und dritten Multiplexer einen Dateneingang aufweist, der mit einer logisch hohen konstanten Spannung gekoppelt ist.
  18. Logikzelle nach Anspruch 15, wobei der zweite Multiplexer einen Dateneingang, der mit dem Ausgang der ersten LUT mit (K-1) Eingängen gekoppelt ist, und einen Dateneingang aufweist, der mit dem Ausgang der zweiten LUT mit (K-1) Eingängen gekoppelt ist.
DE112019005661.1T 2018-11-13 2019-07-23 Fpga-logikzelle mit verbesserter unterstützung für zähler Pending DE112019005661T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862760493P 2018-11-13 2018-11-13
US62/760,493 2018-11-13
US16/242,998 2019-01-08
US16/242,998 US10936286B2 (en) 2018-11-13 2019-01-08 FPGA logic cell with improved support for counters
PCT/US2019/042980 WO2020101761A1 (en) 2018-11-13 2019-07-23 Fpga logic cell with improved support for counters

Publications (1)

Publication Number Publication Date
DE112019005661T5 true DE112019005661T5 (de) 2021-08-05

Family

ID=70550023

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019005661.1T Pending DE112019005661T5 (de) 2018-11-13 2019-07-23 Fpga-logikzelle mit verbesserter unterstützung für zähler

Country Status (4)

Country Link
US (1) US10936286B2 (de)
CN (1) CN112997408A (de)
DE (1) DE112019005661T5 (de)
WO (1) WO2020101761A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11671099B2 (en) 2021-05-21 2023-06-06 Microchip Technology Inc. Logic cell for programmable gate array
WO2022245390A1 (en) * 2021-05-21 2022-11-24 Microchip Technology Inc. Logic cell for programmable gate array
CN117157880A (zh) * 2021-05-21 2023-12-01 微芯片技术股份有限公司 用于可编程门阵列的逻辑单元
CN113872608B (zh) * 2021-12-01 2022-03-25 中国人民解放军海军工程大学 一种基于Xilinx FPGA原语的Wallace树压缩器
CN115392168B (zh) * 2022-09-01 2023-07-25 北京工商大学 一种用于fpga芯片的装箱方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724276A (en) * 1996-06-17 1998-03-03 Xilinx, Inc. Logic block structure optimized for sum generation
US7268584B1 (en) * 2005-07-28 2007-09-11 Altera Corporation Adder circuitry for a programmable logic device
WO2015051105A1 (en) * 2013-10-02 2015-04-09 The Penn State Research Foundation Techniques and devices for performing arithmetic
CN105874714B (zh) * 2014-12-11 2020-02-14 京微雅格(北京)科技有限公司 支持多模式可配置的六输入查找表结构和fpga器件
US10656915B2 (en) * 2018-07-13 2020-05-19 Achronix Semiconductor Corporation Efficient FPGA multipliers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
„Parallel Compressors‟, IEEE Transactions on Computers, Band c-29, Nr. 5, Mai 1980

Also Published As

Publication number Publication date
CN112997408A (zh) 2021-06-18
US20200150925A1 (en) 2020-05-14
US10936286B2 (en) 2021-03-02
WO2020101761A1 (en) 2020-05-22

Similar Documents

Publication Publication Date Title
DE112019005661T5 (de) Fpga-logikzelle mit verbesserter unterstützung für zähler
EP3028140B1 (de) Konstruieren einer schaltung geeignet zur erzeugung von zufallsbits und schaltung zur erzeugung von zufallsbits
DE60105788T2 (de) AES Verschlüsselungsschaltung
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
DE69821408T2 (de) Multiplikationsverfahren und -vorrichtung
DE3901995C2 (de)
DE102006004557A1 (de) Kryptografische Logikschaltung und Kryptografieverfahren
DE2018452A1 (de) Arithmetische Einrichtung
DE2946846A1 (de) Rundungs-korrekturlogik fuer multiplizierer fuer modifizierten booth-algorithmus
DE102020105536A1 (de) Maschinenlerntrainingsarchitektur für programmierbare Vorrichtungen
DE102020111904A1 (de) Logikschaltkreise mit erhöhten arithmetischen dichten
DE102009027086A1 (de) Vorrichtung und Verfahren zur Bildung einer Signatur
EP1540460B1 (de) Vorrichtung und verfahren zum umsetzen und addiererschaltung
DE69726248T2 (de) Addierer mit bedingter Summe unter Benutzung von Durchlasstransistor-Logik
EP0257362A1 (de) Addierer
DE3610875A1 (de) Subtrahierer in komplementaerer metalloxid-halbleitertechnologie
DE3828290C2 (de)
EP1723723B1 (de) Logik-grundzelle, logik-grundzellen-anordnung und logik-vorrichtung
DE112021007047T5 (de) Logikzelle für programmierbares gate-array
DE102013208836A1 (de) Verfahren und Vorrichtung zur Erzeugung eines Hash-Werts
DE2017132A1 (de) Binarer Parallel Addierer
DE19711005C2 (de) Baumschaltung zur Addition von Teilprodukten im Booth-Algorithmus
EP0424410B1 (de) Multiplizierer
EP0752130B1 (de) Multiplizierer mit geringer laufzeit
DE10130484B4 (de) 7-zu-3 Bit Carry-Save Addierer und Addierer damit

Legal Events

Date Code Title Description
R012 Request for examination validly filed