DE602004002554T2 - Block Modus Aufteilung eines Multiplizier-Akkumulators - Google Patents

Block Modus Aufteilung eines Multiplizier-Akkumulators Download PDF

Info

Publication number
DE602004002554T2
DE602004002554T2 DE602004002554T DE602004002554T DE602004002554T2 DE 602004002554 T2 DE602004002554 T2 DE 602004002554T2 DE 602004002554 T DE602004002554 T DE 602004002554T DE 602004002554 T DE602004002554 T DE 602004002554T DE 602004002554 T2 DE602004002554 T2 DE 602004002554T2
Authority
DE
Germany
Prior art keywords
bit
multiplier
multipliers
circuit
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE602004002554T
Other languages
English (en)
Other versions
DE602004002554D1 (de
Inventor
Leon Zheng
Martin Langhammer
Steven Perry
Paul Metzgen
Greg Starr
William Hwang
Kumara Tharmalingam
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.)
Altera Corp
Original Assignee
Altera 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 Altera Corp filed Critical Altera Corp
Publication of DE602004002554D1 publication Critical patent/DE602004002554D1/de
Application granted granted Critical
Publication of DE602004002554T2 publication Critical patent/DE602004002554T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • 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/4806Computations with complex numbers
    • G06F7/4812Complex multiplication
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Logic Circuits (AREA)
  • Advance Control (AREA)

Description

  • Hintergrund der Erfindung
  • Die vorliegende Erfindung betrifft Multiplizierer/Akkumulator-("MAC")-Blöcke, und insbesondere betrifft die vorliegende Erfindung eine effizientere Art, auf welche Multiplizierer in einem MAC-Block zu verwenden sind.
  • Ein MAC-Block, der manchmal Digitalsignalverarbeitungs-("DSP"-)Block genannt wird, ist eine DSP-Schaltung, die eine Gruppe von Multiplizierern und anderen Komponenten, wie beispielsweise Rechen- bzw. Arithmetik-Komponenten, implementiert. MAC-Blöcke können bei der Verarbeitung von vielen unterschiedlichen Typen von Anwendungen verwendet werden, einschließlich Graphikanwendungen, Netzwerkbildungsanwendungen, Kommunikationsanwendungen und Videoanwendungen. Aufgrund der Vielseitigkeit von MAC-Blöcken, und von Multiplizierern im Allgemeinen, haben Hersteller von programmierbaren Logikvorrichtungen, wie beispielsweise Altera® Corporation aus San Jose, Kalifornien, in letzter Zeit mit einem Herstellen von programmierbaren Logikvorrichtungen begonnen, die, zusätzlich zu einer programmierbaren Logikschaltung, auch eine Hardware-DSP-Schaltung in der Form von MAC-Blöcken enthalten. Die MAC-Blöcke von programmierbaren Logikvorrichtungen stellen eine Art zur Verfügung, auf welche eine bestimmte Funktionalität einer Anwenderentwicklung unter Verwendung von weniger Platz auf der programmierbaren Logikvorrichtung implementiert sein kann, und resultieren aufgrund der Art einer DSP-Schaltung in Bezug auf eine programmierbare Logikschaltung in einer schnelleren Ausführungszeit.
  • MAC-Blöcke sind aus einer Anzahl von Multiplizierern und Addierern hergestellt. Wann immer einer oder mehrere der Multiplipizierer in einem bestimmten MAC-Block verwendet werden müssen, wird der gesamte MAC-Block in einen Betriebsmode basierend darauf versetzt, wie viele der Multiplizierer für die bestimmte Implementierung zu verwenden sind. Wenn beispielsweise der MAC-Block eine Gesamtheit von vier 18-Bit-mal-18-Bit-Multiplizierern enthält und wenn eine bestimmte Entwicklung die Verwendung eines einzigen 18-Bit-mal-18-Bit-Multiplizierers erfordert, dann wird der MAC-Block in einen derartigen Betriebsmode versetzt, dass jeder der 18-Bit-mal-18-Bit-Multiplizierer nur individuell in einem 18-Bit-mal-18-Bit-Multiplikationsmode verwendet werden kann. Daher sind die übrigen drei Multiplizierer auf eine Verwendung nur in 18-Bit-mal-18-Bit-Multiplikationsmodes beschränkt. Dies resultiert in einer ineffizienten Beschränkung bezüglich der potentiellen Verwendung der übrigen Multiplizierer im MAC-Block. Ein solcher MAC-Block mit mehreren Multiplizierern ist aus US 6523055 bekannt.
  • Es wäre daher erwünscht, einen MAC-Block zu implementieren, so dass die Multiplizierer im MAC-Block in unterschiedlichen Betriebsmoden gleichzeitig verwendet werden können.
  • Zusammenfassung der Erfindung
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, einen MAC-Block zur Verfügung zu stellen, in welchem eine Modenaufteilung unter den Multiplizierern im MAC-Block ermöglicht werden kann.
  • Diese und andere Aufgaben der vorliegenden Erfindung werden durch Bereitstellen einer programmierbaren Logikvorrichtung erreicht, die einen oder mehrere MAC-Blöcke hat, in welchen unterschiedliche Moden gleichzeitig implementiert werden können. Die Multiplizierer und eine andere DSP-Schaltung (z.B. eine Arithmetikschaltung, wie beispielsweise Addierer), die einen MAC-Block bilden, können unterschiedlichen Betriebsmoden zu irgendeinem bestimmten Zeitpunkt zugeteilt werden. Beispielsweise kann bei einer bevorzugten Anordnung eines MAC-Blocks mit vier 18-Bit-mal-18-Bit-Multiplizierern ein 18-Bit-mal-18-Bit-Multiplizierer zum Implementieren eines 18-Bit-mal-18-Bit-Multiplikationsmodes verwendet werden, während zwei andere Multiplizierer zum Implementieren der Summe von zwei 18-Bit-mal-18-Bit-Multiplikationsmodes verwendet werden können. Irgendwelche solchen geeigneten Moden können basierend auf verfügbaren Ressourcen bzw. Betriebsmitteln gleichzeitig implementiert werden.
  • Irgendwelche geeigneten Steuersignale und irgendeine Steuerschaltung können zum Steuern verwendet werden, welche Moden im MAC-Block zu implementieren sind. Steuersignale können beispielsweise anzeigen, ob die Ausgabe eines bestimmten Multiplizierers in einen Addierer/Subtrahierer einzugeben ist, und zwar basierend darauf, ob der Mode, der implementiert ist, eine solche Schaltung erfordert. Weil irgendwelche geeigneten Moden gemäß der vorliegenden Erfindung implementiert werden können, wird es verstanden werden, dass irgendwelche geeigneten Steuersignale und irgendeine Steuerschaltung verwendet werden können. Es wird weiterhin verstanden werden, dass unterschiedliche Steuersignale und unterschiedliche Steuerschaltungen zum Implementieren derselben Moden verwendet werden können.
  • Kurze Beschreibung der Zeichnungen
  • Die obige und andere Aufgaben der vorliegenden Erfindung werden bei einer Betrachtung der folgenden detaillierten Beschreibung, genommen in Zusammenhang mit den beigefügten Zeichnungen, offensichtlich werden, wobei sichgleiche Bezugszeichen immer auf gleiche Teile beziehen und wobei:
  • 1 eine schematische Darstellung eines illustrativen MAC-Blocks ist;
  • 2 ein Blockdiagramm eines illustrativen MAC-Blocks ist, wobei vier n-Bit-mal-n-Bit-Multiplizierer als vier n-Bit-mal-n-Bit-Multiplizierer implementiert sind;
  • 3 ein Blockdiagramm eines illustrativen MAC-Blocks ist, wobei vier n-Bit-mal-n-Bit-Multiplizierer als acht n/2-Bit-mal-n/2-Bit-Multiplizierer implementiert sind;
  • 4 ein schematisches Diagramm einer illustrativen 18-Bit-mal-18-Bit-Multiplikationsmode-Implementierung gemäß der vorliegenden Erfindung ist;
  • 5 ein schematisches Diagramm einer illustrativen 52-Bit-Akkumulationsmode-Implementierung gemäß der vorliegenden Erfindung ist;
  • 6 ein schematisches Diagramm einer illustrativen Summe aus zwei 18-Bit-mal-18-Bit-Multiplikationsmode-Implementierung gemäß der vorliegenden Erfindung ist;
  • 7 ein schematisches Diagramm einer illustrativen Summe einer Implementierung eines Modes von vier 18-Bit-mal-18-Bit-Multiplikationen gemäß der vorliegenden Erfindung ist;
  • 8 ein schematisches Diagramm einer illustrativen 9-Bit-mal-9-Bit-Multiplikationsmode-Implementierung gemäß der vorliegenden Erfindung ist;
  • 9 ein schematisches Diagramm einer illustrativen Summe einer Implementierung eines Modes von zwei 9-Bit-mal-9-Bit-Multiplikationen gemäß der vorliegenden Erfindung ist;
  • 10 ein schematisches Diagramm einer illustrativen Summe einer Implementierung eines Modes von vier 9-Bit-mal-9-Bit-Multiplikationen gemäß der vorliegenden Erfindung ist;
  • 11 ein schematisches Diagramm einer illustrativen 36-Bit-mal-36-Bit-Multiplikationsmode-Implementierung gemäß der vorliegenden Erfindung ist;
  • 12 ein Blockdiagramm eines MAC-Blocks mit illustrativen Steuersignalen gemäß der vorliegenden Erfindung ist;
  • 13 ein Blockdiagramm einer illustrativen programmierbaren Logikvorrichtung mit wenigstens einem Mac-Block gemäß der vorliegenden Erfindung ist; und
  • 14 ein Blockdiagramm eines illustrativen Systems ist, das eine programmierbare Logikvorrichtung gemäß der vorliegenden Erfindung verwendet.
  • Detaillierte Beschreibung der Erfindung
  • Die vorliegende Erfindung stellt einen MAC-Block zur Verfügung, der zulässt, dass seine Multiplizierer, eine andere Schaltung oder beides unter einem oder mehreren Betriebsmoden gleichzeitig aufgeteilt wird. Einer oder mehrere Multiplizierer des MAC-Blocks können zum Arbeiten in einem Mode bestimmt werden (z.B. einem Multiplikationsmode), wohingegen einer oder mehrere andere Multiplizierer des MAC-Blocks zum Arbeiten in einem anderen Mode bestimmt sein können (z.B. ein Mode einer Summe von Multiplizierern). Die vorliegende Erfindung lässt zu, dass ein einziger MAC-Block unterschiedliche Moden unterstützt, die unterschiedliche Anzahlen von Multiplizierern erfordern. Beispielsweise können zwei Multiplizierer in einem Mode verwendet werden, während nur ein Multiplizierer in einem zweiten Mode verwendet werden kann.
  • Die vorliegende Erfindung ist insbesondere auf programmierbare Logikvorrichtungen anwendbar, die eine integrierte DSP-Schaltung enthalten. Aufgrund der Notwendigkeit für Flexibilität von solchen Vorrichtungen lässt ein Zulassen, dass ein MAC-Block in mehr als einem Mode gleichzeitig arbeitet, eine effizientere Verwendung der DSP-Ressourcen bzw. -Betriebsmittel zu, die innerhalb einer bestimmten programmierbaren Logikvorrichtung verfügbar sind.
  • Ein Zulassen, dass ein MAC-Block in mehr als einem unterschiedlichen Mode arbeitet, kann durch Verwenden von irgendeiner geeigneten Schaltung und irgendwelchen geeigneten Steuersignalen erreicht werden.
  • Ein MAC-Block gemäß der vorliegenden Erfindung kann in irgendwelchen geeigneten Moden arbeiten. Beispielsweise enthalten im Fall eines MAC-Blocks mit vier 18-Bit-mal-18-Bit-Multiplizierern, was bedeutet, dass jeder, als 36-Bit-Binärausgabe, das Produkt von zwei 18-Bit-Binär-Multiplikandeneingaben bestimmen kann, oder die zwei Produkte (in eine 36-Bit-Zahl verkettet) aus zwei Paaren von 9-Bit-Binär-Multiplikandeneingaben (in ein Paar von 18-Bit-Zahlen verkettet), geeignete Moden, sind aber nicht darauf beschränkt, wie beispielsweise einen 18-Bit-mal-18-Bit-Multiplizierer, einen 52-Bit-Akkumulator, eine Akkumulatorinitialisierung, eine Summe aus zwei 18-Bit-mal-18-Bit-Multiplizierern, ein Summe aus vier 18-Bit-mal-18-Bit-Multiplizierern, einen 9-Bit-mal-9-Bit-Multiplizierer, eine Summe aus zwei 9-Bit-mal-9-Bit-Multiplizierern, eine Summe aus vier 9-Bit-mal-9-Bit-Multiplizierern, einen 36-Bit-mal-36-Bit-Multiplizierer oder irgendwelche anderen geeigneten Moden. Die aufgelisteten Moden werden hierin manchmal jeweils als Moden 1–8 bezeichnet, wobei die Akkumulatorinitialisierung der Mode 2A ist. Es wird verstanden werden, dass diese lediglich illustrative Moden sind, die durch einen MAC-Block gemäß der vorliegenden Erfindung unterstützt werden können. Irgendwelche anderen geeigneten Moden können unterstützt werden. Eine solche Unterstützung von Moden kann basierend auf irgendwelchen geeigneten Faktoren bestimmt werden, einschließlich beispielsweise den Notwendigkeiten einer Anwendung, einer Größe von verfügbaren Multiplizierern, einer Anzahl von Multiplizierern oder irgendwelchen anderen geeigneten Faktoren. Beispielsweise ist es klar, dass dann, wenn ein MAC-Block acht 9-Bit-mal-9-Bit-Multiplizierer enthalten würde, unterschiedliche Moden verwendet werden können (z.B. Summe aus acht 9-Bit-mal-9-Bit-Multiplizierern).
  • Unterschiedliche Multiplizierer eines MAC-Blocks können in unterschiedlichen Moden gleichzeitig verwendet werden, um die Situation zu vermeiden, in welcher ein bestimmter Mode relativ wenige Multiplizierer eines MAC-Blocks verwendet, und die anderen Multiplizierer leer lässt.
  • Bei einigen Ausführungsbeispielen der vorliegenden Erfindung kann ein MAC-Block in zwei oder mehr Abschnitte von Multiplizierern aufgeteilt sein. Moden können gemäß einem Abschnitt bestimmt werden, wobei alle Multiplizierer in einem Abschnitt von Multiplizierern im selben Mode arbeiten. Diese Anordnung kann eine einfachere Organisation von Steuersignalen zur Verfügung stellen und stellt ein Gleichgewicht zwischen Flexibilität und Einfachheit zur Verfügung. Abschnitte können basierend auf Moden definiert werden, für die es erwünscht ist, dass sie verwendet werden. Beispielsweise dann, wenn alle Multiplizierer eines MAC-Blocks in einem bestimmten Mode zu verwenden sind, wird ein Aufteilen nicht auftreten. Wenn eine Hälfte der Multiplizierer für einen bestimmten Mode nötig ist, dann kann der MAC-Block so aufgeteilt werden, dass es zwei Abschnitte gibt, wobei jeder eine Hälfte der Multiplizierer hat. Jeder der zwei Abschnitte kann dann unter einem anderen Mode betrieben werden, wenn es erwünscht ist. Bei einem geeigneten Ansatz kann ein Abschnitt weiter aufgeteilt werden. Beispielsweise kann ein MAC-Block unter drei Moden aufgeteilt werden, wo einer der Moden eine Hälfte der Multiplizierer verwendet, ein zweiter Mode ein Viertel der Multiplizierer verwendet und ein dritter Mode ein Viertel der Multiplizierer verwendet. Ein MAC-Block kann auf vier Moden aufgeteilt werden, wobei jeder Mode ein Viertel der verfügbaren Multiplizierer verwendet. Irgendeine solche geeignete Modenaufteilung kann gemäß der vorliegenden Erfindung durchgeführt werden. Wenn alle Multiplizierer eines MAC-Blocks erforderlich sind, dann wird der MAC-Block unter einem einzigen Mode arbeiten.
  • Der Kürze und der Klarheit halber und nicht anhand einer Beschränkung und ohne Verlust an Allgemeinheit wird die vorliegende Erfindung hierin primär in Bezug auf einen MAC-Block beschrieben, der aus vier Multiplizierern einer Größe von 18-Bit-mal-18-Bit hergestellt ist. Die illustrative Art dieser Anordnung wird erkannt werden und es wird verstanden werden, dass die Lehre der vorliegenden Erfindung auf irgendeinen anderen geeigneten Typ von MAC-Block mit irgendeiner geeigneten Anordnung von Komponentenschaltungen angewendet werden können.
  • 1 zeigt die Schaltung eines illustrativen Ausführungsbeispiels eines MAC-Blocks 10 vom oben beschriebenen Typ. Der MAC-Block 10 mit Eingängen 101108 enthält vier Multiplizierer 11, 12, 13 und 14. Jeder Multiplizierer 11-14 kann ein 18-Bit-mal-18-Bit-Multiplizierer sein. Jeder MAC-Block 10 enthält auch vorzugsweise eine Anzahl von Addierern/Subtrahierem 15, 16, 17 und 18, was die Durchführung einer Addition und einer Subtraktion der Ausgaben der verschiedenen Multiplizierer 11-14 sowie eine Akkumulatorfunktion zulässt.
  • Multiplexer 119 lassen zu, dass die verschiedenen Multiplizierer 11-14 einen Eingang 101 gemeinsam nutzen. Gleichermaßen lassen Multiplexer 109 und 110 zu, dass jeder der Multiplizierereingänge 111, 112, 121, 122, 131, 132, 141, 142 registriert oder nicht registriert wird. Zusätzlich können die Register 110, wenn sie mit Multiplexern 190 verwendet werden, Eingangsschieberegisterketten bilden, die zulassen, dass Daten seriell eingegeben werden. Solche Eingangsschieberegisterketten können sich sogar zu einem anderen unterschiedlichen speziellen Multiplizierer ausdehnen. Die verschiedenen Funktionen können bei 160, 165, 170, 175, 180, 185, 195 ausgegeben werden.
  • Gemäß der Erfindung werden dann, wenn eine Anwenderentwicklung eine Multiplikation und andere Arithmetikschaltungselemente enthält, diese Elemente, die "MAC-Elemente" genannt werden können, vorzugsweise automatisch in einen MAC-Block, wie beispielsweise den MAC-Block 10, gruppiert. Die miteinander gruppierten MAC-Elemente können innerhalb des MAC-Blocks die spezialisierten Funktionen einer Multiplikation, einer Multiplikation, der eine Addition folgt, einer Multiplikation, der eine Subtraktion folgt, und einer Multiplikation, der eine Akkumulation folgt, durchführen.
  • In 2 ist eine vertikal angeordnete Organisation eines MAC-Blocks gezeigt, die auf vier Multiplizierern basiert. Vier Multipliziererschaltungen 136 können in vertikaler Richtung gestapelt werden, um potentiell parallel zu arbeiten. Jede Multipliziererschaltung 136 kann einen n-Bit-mal-n-Bit-Multiplizierer (z.B. einen 18-Bit-mal-18-Bit-Multiplizierer) enthalten, um ein n-Bit-mal-n-Bit-Multiplikationsprodukt zur Verfügung zu stellen. Die Eingaben jeder Multipliziererschaltung zu n Bits von Information für den Multiplikanden und für den Multiplikator für die Multipliziereroperation zugeführt werden. Jede Multipliziererschaltung 136 kann eine Ausgabe haben, die eine Breite von 2n Bits haben kann. Jede Multipliziererschaltung 136 kann eine Ausgabe stromabwärts zuführen, die das Ergebnis einer Multiplikationsoperation ist. Jede n-Bit-mal-n-Bit-Multipliziererschaltung 136 kann eine Multiplikation mit einem Vorzeichen oder ohne Vorzeichen eines Zweierkomplements unterstützen. Dynamische Steuereingänge 156 mit Vorzeichen/ohne Vorzeichen können Eingangssignale empfangen, die das Vorzeichen der Multiplikatoren und der Multiplikanden für die Multiplikationsoperationen von Multipliziererschaltungen 136 steuern.
  • Ein MAC-Block 192 kann drei Gruppen von Registerschaltungen enthalten. Der MAC-Block 192 kann Eingangsregisterschaltungen 134, Pipeline-Registerschaltungen und eine Ausgangsregisterschaltung 154 enthalten. Wenn es erwünscht ist, können zusätzliche Pipline-Registerschaltungen innerhalb der Multipliziererschaltungen 136, innerhalb von Additions/Sub traktions/Akkumulations-Schaltungen 144 und/oder innerhalb von Additions/Subtraktions-Schaltungen 140 enthalten sein, um die Geschwindigkeit zu erhöhen. Die Ausgangsregisterschaltung 154 kann ungefähr dieselbe Anzahl von Registern enthalten, die in Eingangsregierschaltungen 134 sind. Die Anzahl von Registern, die in der Ausgangsregisterschaltung 154 enthalten sind, können ausreichend sein, um die Ausgabe des MAC-Blocks 192 zu registrieren (z.B. die Ausgabe des MAC-Blocks 192 für alle Moden registrieren, die durch den MAC-Block 192 unterstützt werden. Die Anzahl von Ausgangsregistern kann kleiner als die, gleich der oder größer als die Anzahl der Eingangsregister sein, und zwar in Abhängigkeit davon, welche Implementierung oder Architektur für den MAC-Block 192 verwendet wird, oder in Abhängigkeit vom Bereich einer Funktionalität, die durch den MAC-Block 192 zur Verfügung gestellt wird.
  • Der Klarheit und Kürze halber sind Pipeline-Registerschaltungen in 2 nicht gezeigt und sind in irgendeiner der anderen hierin beschriebenen Figuren nicht gezeigt. Wie es oben angegeben ist, können Eingangsregisterschaltungen 134, eine Pipeline-Registerschaltung oder eine Ausgangsregisterschaltung 154 im MAC-Block 192 enthalten sein, wenn es erwünscht ist. Unabhängige Gruppen von Takt- und Löschsignalen 158 können für Eingangsregisterschaltungen 134, die Pipeline-Registerschaltung oder die Ausgangsregisterschaltung 154 zur Verfügung gestellt werden. Zwei Gruppen von Takt- und Löschsignalen 158 kann für die Eingangsregisterschaltungen 134 und die Pipeline-Registerschaltungen zur Verfügung gestellt sein, und zwei Gruppen können für die Ausgangsregisterschaltung 154 zur Verfügung gestellt sein. Die Eingangregisterschaltungen 134 können Abtastketten enthalten und können eine zusätzliche Schaltung enthalten, die mit den Abtastketten zu verwenden ist, um zuzulassen, dass die Abtastketten als Logik bei einigen Digitalsignalverarbeitungsfunktionen verwendet werden, wie beispielsweise beim Bereitstellen von FIR-Filtern. Die Eingangsregisterschaltungen 134 können 8n Register (z.B. 144 Register) für 8n Dateneingaben und q Register (z.B. 4 Register) für eine Steuerung mit Vorzeichen/ohne Vorzeichen der Multipliziererschaltungen 136 und für eine Additions/Subtraktions-Steuerung der Additions/Subtraktions/Akkumulations-Schaltungen 144 enthalten. Jedes Register kann eine Fähigkeit zur programmierbaren Inversion haben, um eine logische Inversion zur Verfügung zu stellen, wenn es erwünscht ist, oder um nicht verwendete Bits von Registereingaben zu invertieren, wenn eine Eingabe für einen Multiplizierer weniger als n Bits hat.
  • Die Ausgangsregisterschaltung 154 kann Rückkoppelpfade 161 zu den Additions/Subtraktions/Akkumulations-Schaltungen 144 für Akkumulationsoperationen haben. Irgendeine der drei Gruppen von Registern, der Eingangsregisterschaltung 134, der Pipeline-Registerschaltung und der Ausgangsregisterschaltung 154, kann unter Verwendung von programmierbaren Logikanschlussstücken ("PLCs") in denjenigen Schaltungen umgangen werden, die durch eine Direktzugriffsspeichersteuerung gesteuert werden können. Die Pipeline-Registerschaltung kann ungefähr dieselbe Anzahl von Registern wie die Eingangsregisterschaltungen 134 enthalten.
  • Eine Schnittstellenschaltung 133, die links vom MAC-Block 192 gezeigt ist, kann die Eingaben des MAC-Blocks 192, die die Eingaben der Eingangsregisterschaltungen 134 sein können, zuführen. Die Eingangsregisterschaltungen 134 können acht Eingangsregister enthalten, die jeweils n-Bit-Eingaben haben und die die Eingaben der vier n-Bit-mal-n-Bit-Multipliziererschaltungen 136 zuführen.
  • Additions/Subtraktions/Akkumulations-Schaltungen 144 können Anschlüsse zum Empfangen von Eingaben von Multipliziererschaltungen 136 und von Rückkehrpfaden 161 haben. Wenn es erwünscht ist, können die Additions/Subtraktions/Akkumulations-Schaltungen 144 konfiguriert sein, um die Ausgaben von den Multipliziererschaltungen 136 zu der Addiererschaltung 140 zu übergeben. Die Ausgaben der Multipliziererschaltungen 136 können zu einer Ausgabeauswahlschaltung 152 oder der Ausgangsregisterschaltung 154 geführt werden, ohne durch die Additions/Subtraktions/Akkumulations-Schaltungen 144 und/oder die Additions/Subtraktions-Schaltung 140 geführt zu werden. Zum Zwecke der Klarheit und der Kürze und nicht anhand einer Beschränkung und ohne Verlust an Allgemeinheit wird die Additions/Subtraktions-Schaltung 140 hierin primär im Zusammenhang mit einer Addiererschaltung beschrieben. Die Additions/Subtraktions/Akkumulations-Schaltungen 144 können jeweils konfiguriert sein, um eine Zweierkomplement-Addition von zwei 2n-Bit-Eingaben durchzuführen, um eine 2n+1-Bit-Ausgabe zu erzeugen. Die Additions/Subtraktions/Akkumulations-Schaltungen 144 können jeweils konfiguriert sein, um eine Zweierkomplement-Subtraktion von zwei 2n-Bit-Eingaben durchzuführen, um eine 2n+1-Bit-Ausgabe zu erzeugen. Die Additions/Subtraktions/Akkumulations-Schaltungen 144 können jeweils konfiguriert sein, um eine Akkumulation von einer 2n-Bit-Eingabe mit einer n+y-Bit-Ausgabe durchzuführen. Dynamische Additions/Subtraktions-Steuereingaben 162 und 164 können zu den Additions/Subtraktions-Schaltungen 144 eingegeben werden, die zum Schalten zwischen Additions/Subtraktions-Operationen und zum Handhaben von komplexen Multiplikationen verwendet werden. Die dynamischen Additions/Subtraktions-Eingaben 162 können für komplexe Multiplikationen benötigt werden, welche Multiplikationen enthalten, die komplexe Zahlen enthalten. Eine komplexe Multiplikation von zwei komplexen Zahlen kann manchmal sowohl eine Additionsoperation als auch eine Subtraktionsoperation enthalten.
  • Die Ausgaben der Additions/Subtraktions/Akkumulations-Schaltungen 144 können zu einer Ausgabeauswahlschaltung 152 oder dem Ausgangsregister 154 geführt werden, ohne über die Addiererschaltung 140 geführt zu werden. Wenn es erwünscht ist, kann die Addiererschaltung 140 konfiguriert sein, um Eingaben von den Additions/Subtraktions/Akkumulations-Schaltungen 144 (z.B. eine n+1-Bit-Ausgabe einer Zweierkomplement-Addition, eine n+y-Bit-Ausgabe einer Akkumulation, etc.) zu übergeben. Die Addiererschaltung 140 kann eine Ausgabe haben, die das Ergebnis der Addition der Ausgaben von den Additions/Subtraktions/Akkumulations-Schaltungen 144 ist. Die Ausgabeauswahlschaltung 152 kann Eingaben haben, die von der Addiererschaltung 140 sind. Die Ausgabeauswahlschaltung 152 kann Auswählen, welche der Eingaben der Ausgabeauswahlschaltungen 152 zur Ausgangsregisterschaltung 154 übergeben bzw. geführt werden. Die Ausgangsregisterschaltung 154 kann die Eingaben der Schnittstellenstellung 133 zuführen, die rechts vom MAC-Block 192 gezeigt. Der Prozentteil von lokalen Verbindungsbetriebsmitteln, der zum Verbinden der Schaltungen im MAC-Block 192 zugeteilt ist, erhöht sich, wenn sich die Komplexität und die Variationen bezüglich einer Digitalsignalverarbeitungsfunktionalität erhöht, von links nach rechts im MAC-Block 192.
  • Nimmt man Bezug auf 2, kann die "oberste Hälfte" des MAC-Blocks 192 unter anderen Komponenten die zwei Multiplizierer 136 und den Addierer/Subtrahierer 144 enthalten, die am obersten Ende des MAC-Blocks 192 gezeigt sind. Die "untere Hälfte" des MAC-Blocks 192 kann unter anderen Komponenten die zwei Multiplizierer 136 und den Addierer/Subtrahierer enthalten, die am unteren Ende des MAC-Blocks 192 gezeigt sind.
  • Der MAC-Block 192 kann konfiguriert sein, um eine Organisation zu haben, die auf einem n/2-Bit-mal-n/2-Bit-Multiplizierer basiert. Beispielsweise kann, nimmt man nun Bezug auf 3, der MAC-Block 192 Multipliziererschaltungen 136 enthalten, die konfiguriert sind, um acht n/2-Bit-mal-n/2-Bit-Multiplizierer zu enthalten. Die acht n/2-Bit-mal-n/2-Bit-Multiplizierer können aus den vier n-Bit-mal-n-Bit-Multiplizierern der Multipliziererschaltungen 136 der 2 konfiguriert sein.
  • Wenn es erwünscht ist, kann der MAC-Block 192 implementiert sein, um konfiguriert sein zu können, um eine Organisation zu haben, die auf einem p-Bit-mal-p-Bit-Multiplizierer basiert, und um eine oder mehrere Organisationen zu haben, die auf einem p/m-Bit-mal-p/m-Bit-Multiplizierer basiert, wobei p, m und p/m ganze Zahlen sind. Wie es oben angegeben ist, basiert diese Architektur wenigstens teilweise auf den Beschränkungen der lokalen Verbindungsressourcen. Die unterschiedlichen Organisationen können auswählbar sein und der MAC-Block 192 kann dazu fähig sein, in einige oder alle der Organisationen konfiguriert zu sein, die auf dem p/m-Bit-mal-p/m-Bit-Multiplizierer basieren.
  • Der MAC-Block 192 kann Additions/Subtraktions/Akkumulations-Schaltungen 144 enthalten, die konfiguriert sind, um vier Additions- oder Subtraktionseinheiten zur Verfügung zu stellen. Jede Additions- oder Subtraktionseinheit kann eine auf einer Addition basierende Operation an zwei n-Bit-Eingaben durchführen und eine n+1-Bit-Ausgabe haben. Wenn es erwünscht ist, können die Additions/Subtraktions/Akkumulations-Schaltungen 144 konfiguriert sein, um die Ausgaben der Operation des n/2-Bit-mal-n/2-Bit-Multiplizierers zu übergeben. Die Ausgaben der Multipliziererschaltungen 136 können zu einer Ausgabeauswahlschaltung 152 oder zur Ausgangsregisterschaltung 154 geführt werden, ohne durch die Additions/Subtraktions/Akkumulations-Schaltungen 144 oder die Addiererschaltung 140 geführt zu werden. Die Additions/Subtraktions/Akkumulations-Schaltungen 144 können das Ergebnis der Addition (oder der Subtraktion) von bestimmten Ausgangspaaren der Operation des n/2-Bit-mal-n/2-Bit-Multiplizierers erzeugen.
  • Der MAC-Block 192 kann eine Addiererschaltung 140 enthalten, die konfiguriert ist, um zwei Addierer zur Verfügung zu stellen. Wenn es erwünscht ist, kann die Addiererschaltung 140 die Eingaben, die von den Additions/Subtraktions/Akkumulations-Schaltungen 144 zur Addiererschaltung 140 zugeführt werden, weiterleiten bzw. übergeben bzw. durchlassen. Die Ausgaben der Additions/Subtraktions/Akkumulations-Schaltungen 144 können zur Ausgabeauswahlschaltung 152 oder zu den Ausgangsregisterschaltungen 154 geführt werden, ohne durch die Addiererschaltung 140 geführt zu werden. Die Addiererschaltung 140 kann zwei Ausgaben erzeugen, die die Ergebnisse der Addition von bestimmten Paaren von Ausgaben von den Additions/Subtraktions/Akkumulations-Schaltungen 144 sind.
  • Die lokalen Verbindungsbetriebsmittel des MAC-Blocks 192 können konfigurierbar sein, um die auf dem n/2-Bit-mal-n/2-Bit-Multiplizierer basierende Organisation mit derselben Eingabe/Ausgabe-Schnittstellenschaltung 133 und Unterstützungsschaltung (z.B. den Multipliziererschaltungen 136, der Addiererschaltung 140, etc.) zu implementieren, wie die auf dem n-Bit-mal-n-Bit-Multiplizierer basierende Organisation. Die lokalen Verbindungsbetriebsmittel des MAC-Blocks 192 können konfiguriert sein, um einige Schmetterlings-Kreuzverteilermuster zum Ausbilden von geeigneten Verbindungen in der auf dem n/2-Bit-mal-n/2-Bit-Multiplizierer basierenden Organisation enthalten.
  • Die Schmetterlings-Kreuzverteilermuster sind für Auswahlverbindungen zwischen den Eingangsregisterschaltungen 134 und den Multipliziererschaltungen 136 implementiert. Die Schmetterlings-Kreuzverteilermuster können dazu verwendet werden, die n/2-Bits höherer Ordnung von Paaren von miteinander multiplizierten Eingaben von n Bits zu haben und die n/2 Bits niedrigerer Ordnung von Paaren von miteinander multiplizierten Eingaben von n Bits zu haben. Die Schmetterlings-Kreuzverteilermuster sind für Auswahlverbindungen zwischen den Multipliziererschaltungen 136 und den Additions/Subtraktions/Akkumulations-Schaltungen 144 implementiert. Wie es oben angegeben ist, können die Additions/Subtraktions/Akkumulations-Schaltungen 144 konfiguriert sein, um vier Additions-(oder Subtraktions-)Einheiten zu enthalten. Jede Additions-(oder Subtraktions-)Einheit kann zwei Eingaben von n Bits von den Multipliziererschaltungen 136 haben. Die Schmetterlings-Kreuzverteilermuster können verwendet werden, um die zwei Eingaben von jeder Additions-(oder Subtraktions-)Einheit zu haben, die entweder das Ergebnis der Multiplikation der Bits höherer Ordnung durch die Multiplizierer der Multipliziererschaltungen 136 oder das Ergebnis der Multiplikation der Bits niedrigerer Ordnung durch die Multiplizierer der Multipliziererschaltungen 136 sind. Die Schmetterlings-Kreuzverteilermuster können auch bei der Verbindung zwischen den Additions/Subtraktions/Akkumulations-Schaltungen 144 und der Addiererschaltung 140 verwendet werden. Die Addiererschaltung 140 kann in zwei Addierer (z.B. zwei unabhängige Addierer) aufgeteilt sein. Das Schmetterlings-Kreuzverteilermuster kann verwendet werden, um das Ergebnis von Operationen in Bezug auf Bits höherer Ordnung zu einer obersten Hälfte der Addiererschaltung 140 zuzuführen und das Ergebnis von Operationen an Bits niedrigerer Ordnung zu einer unteren Hälfte der Addiererschaltung 140 zuzuführen. Bei der auf dem n/2-Bit-mal-n/2-Bit-Multiplizierer basierenden Organisation kann es sein, dass eine Akkumulatorfunktionalität nicht verfügbar ist. Die Akkumulatorfunktionalität kann deshalb nicht verfügbar sein, weil die Betriebsmittel des MAC-Blocks 192 im Wesentlichen beim Zulassen der Implementierung der auf dem n/2-Bit-mal-n/2-Bit-Multiplizierer basierenden Organisation verbraucht sein können.
  • Die Schmetterlings-Kreuzverteilermuster sind beispielhaft für Techniken zum Zerlegen einer einzigen Multipliziererschaltung in mehrere kleinere Multipliziererschaltungen, ein Beispiel für Techniken zum Managen von Daten, so dass die Ausgaben der mehreren kleineren Multipliziererschaltungen geeignet zusammenaddiert werden (z.B. ein Addieren von Bits niedrigerer Ordnung zu Bits niedrigerer Ordnung), oder ein Beispiel für Techniken zum Managen von Daten zum Kompensieren von Beschränkungen bezüglich der Betriebsmittel eines MAC-Blocks. Solche Kreuzverteilermuster können dazu verwendet werden, Verbindungen wegen der Art zu handhaben, auf welche eine Schaltung für einen MAC-Block abgelegt wurde, oder wegen der Anordnung, die für die Schaltung ausgewählt wurde. Die Schmetterlings-Kreuzverteilermuster sind als illustratives Beispiel zur Verfügung gestellt. Andere Techniken können ebenso verwendet werden. Beispielsweise können die n-Bit-mal-n-Bit-Multiplizierer auf eine andere Weise zerlegt werden, die die Notwendigkeit für die Schmetterlings- Kreuzverteilermuster eliminiert, oder auf eine Weise zerlegt werden, die andere Typen von Kreuzverteilermuster erfordert. Demgemäß können andere Kreuzverteilermuster oder Verbindungsmuster zum Implementieren des MAC-Blocks 192 verwendet werden.
  • Die Flexibilität und die Konfigurabilität des MAC-Blocks 192 kann die Konfiguration einer Gruppe von Betriebsmoden unterstützen. Wenn es erwünscht ist, kann der MAC-Block 192 der 2 und der MAC-Block 192 der 3 jeweils ein separates Ausführungsbeispiel eines MAC-Blocks sein, wobei jeder seine eigene Gruppe von Betriebsmoden hat. Bei einigen Ausführungsbeispielen kann der MAC-Block 192 dazwischen konfigurierbar sein, dass er eine auf einem n-Bit-mal-n-Bit-Multiplizierer basierende Organisation oder eine n/2-Bit-mal-n/2-Bit-Multiplizierer basierende Organisation hat und dass er Betriebsmoden hat, die jeweils zugehörig sind. Die Moden des MAC-Blocks 192 können mit Speicherbits konfiguriert sein, um zu veranlassen, dass die Moden Anwendern verfügbar sind.
  • Die 4-11 sind ein Blockdiagramm von illustrativen Implementierungen von unterschiedlichen Betriebsmoden, die ein MAC-Block gemäß der vorliegenden Erfindung unterstützen kann. Genauer gesagt stellen die Modenimplementierungen der 4-11 die Komponenten des Host-MAC-Blocks dar, die zum Implementieren eines jeweiligen Modes erforderlich sein können. Wenn beispielsweise eine bestimmte Modenimplementierung einen einzigen 18-Bit-mal-18-Bit-Multiplizierer erfordert, dann können übrige Multiplizierer zum Implementieren von anderen Moden gemäß der Modenaufteilungseigenschaften der vorliegenden Erfindung verwendet werden.
  • 4 ist ein Blockdiagramm einer illustrativen Implementierung eines 18-Bit-mal-18-Bit-Multiplikationsmodes in einem MAC-Block. Wie es dargestellt ist, verwendet eine einzige 18-Bit-mal-18-Bit-Multiplikationsimplementierung einen 18-Bit-mal-18-Bit-Multiplizierer 404 mit einem Multiplikanden- und einem Multiplikatoreingang 400 und 402 und einem Produktausgang 406. Bei einem typischen MAC-Block würde die dargestellte Implementierung zulassen, dass vier solche Multiplikationsmoden in einem einzigen MAC-Block gleichzeitig implementiert sind, wobei jeder einen der vier verfügbaren Multiplizierer verwendet. Gemäß den Modenaufteilungseigenschaften der vorliegenden Erfindung können die übrigen drei Multiplizierer zum Implementieren von irgendeinem anderen geeigneten Mode gleichzeitig mit dem 18-Bit-mal-18-Bit-Multiplikationsmode verwendet werden, den dieser Multiplizierer 404 gerade zum Implementieren verwendet.
  • 5 ist ein Blockdiagramm einer illustrativen Implementierung eines 52-Bit-Akkumulationsmodes in einem MAC-Block. Wie es dargestellt ist, verwendet eine einzige 52-Bit-Akkumulationsmodenimplementierung einen 18-Bit-mal-18-Bit-Multiplizierer 504 und einen Ausgang 506. Ein Addierer/Subtrahierer 508 wird zum Durchführen von Additionsoperationen zum Aktualisieren der im Register 510 gespeicherten laufenden Summe verwendet. Eine Ausgabe 512 des Registers 510 wird in den Addierer/Subtrahierer 508 rückgekoppelt, um mit einer nächsten Ausgabe 506 des Multiplizierers 504 addiert zu werden. Bei einem typischen MAC-Block würde die dargestellte Implementierung zulassen, dass zwei solche Akkumulationsmoden in einem einzigen MAC-Block gleichzeitig implementiert sind, wobei jeder einen der vier verfügbaren Multiplizierer verwendet (d.h. zwei der Multiplizierer verschwendet), wenn ein MAC-Block, wie beispielsweise der MAC-Block 192 der 2, verwendet wird. Dies ist aufgrund der beschränkten bestimmten Arithmetikschaltung so, die im MAC-Block 192 der 2 verfügbar ist. Gemäß den Modenaufteilungseigenschaften der vorliegenden Erfindung können jedoch die übrigen Multiplizierer beim Implementieren von anderen Moden gleichzeitig mit dem Akkumulationsmode verwendet werden, die nicht auf der bestimmten Schaltung beruhen, die bereits im Einsatz ist (z.B. ein 18-Bit-mal-18-Bit-Multiplikationsmode). Dies lässt eine effizientere Verwendung von MAC-Block-Betriebsmitteln zu.
  • 6 ist ein Blockdiagramm einer illustrativen Implementierung der Summe der Produkte eines Modes von zwei 18-Bit-mal-18-Bit-Multiplizierern in einem MAC-Block (z.B. der zwei Multiplizierer von entweder der oberen Hälfte oder von der unteren Hälfte). Wie es dargestellt ist, verwendet eine Modenimplementierung einer einzigen Summe aus den Produkten von zwei Multiplizierern zwei Multiplizierer 608 und 610 mit Eingängen 600, 602, 604 und 606. Produkte 612 und 614 werden in einen Addierer/Subtrahierer 616 eingegeben, der eine Ausgabe 618 liefert. In einem typischen MAC-Block würde die dargestellte Implementierung zulassen, dass zwei solche Moden einer Summe der Produkte von zwei Multiplizierern gleichzeitig in einem einzigen MAC-Block implementiert sind, wobei jeder zwei der vier verfügbaren Multiplizierer verwendet. Gemäß den Modenaufteilungseigenschaften der vorliegenden Erfindung können die übrigen zwei Multiplizierer zum Implementieren von irgendeinem anderen geeigneten Mode gleichzeitig mit dem Mode für die Summe der Produkte von zwei Multiplizierern verwendet werden, den die Multiplizierer 608 und 610 zum Implementieren verwenden.
  • 7 ist ein Blockdiagramm einer illustrativen Implementierung des Modes für die Summe der Produkte von vier 18-Bit-mal-18-Bit-Multiplizierern in einem MAC-Block. Wie es dargestellt ist, verwendet eine Modenimplementierung für eine einzige Summe der Produkte von vier Multiplizierern vier Multiplizierer 716, 718, 720 und 722 mit Eingängen 700, 702, 704, 706, 708, 710, 712 und 714. Die Multiplizierer 716 und 718 können Multiplizierer der oberen Hälfte sein und die Multiplizierer 720 und 722 können Multiplizierer der unteren Hälfte sein. Produkte 724 und 726 werden in einen Addierer/Subtrahierer 732 einer ersten Stufe eingegeben. Produkte 728 und 730 werden in einen Addierer/Subtrahierer 734 einer ersten Stufe eingegeben. Ausgaben 736 und 738 von den Addierern/Subtrahierern 732 und 736 werden in einen Addierer/Subtrahierer 740 einer zweiten Stufe eingegeben, der eine Ausgabe 742 erzeugt. Weil alle Multiplizierer des MAC-Blocks bei der in 7 gezeigten Implementierung verwendet werden, können keine anderen Moden gleichzeitig gemäß der vorliegenden Erfindung implementiert werden.
  • 8 ist ein Blockdiagramm einer illustrativen Implementierung eines 9-Bit-mal-9-Bit-Multiplikationsmodes in einem MAC-Block. Wie es dargestellt ist, verwendet ein einziger Multiplikationsmode einen einzigen 18-Bit-mal-18-Bit-Multiplizierer 804 mit Eingängen 800 und 802 und einem Ausgangsprodukt 806. Bei einem typischen MAC-Block (z.B. dem MAC-Block 192 in 3) würde die dargestellte Implementierung zulassen, dass acht solche 9-Bit-mal-9-Bit-Multiplikationsmoden in einem einzigen MAC-Block gleichzeitig implementiert werden (d.h. jeder 18-Bit-mal-18-Bit-Multiplizierer kann zum Implementieren von zwei 9-Bit-mal-9-Bit-Multiplizierern verwendet werden). Gemäß den Modenaufteilungseigenschaften der vorliegenden Erfindung können die übrigen drei 18-Bit-mal-18-Bit-Multiplizierer und ein 9-Bit-mal-9-Bit-Multiplizierer zum Implementieren von irgendeinem anderen geeigneten Mode gleichzeitig mit dem 9-Bit-mal-9-Bit-Multiplikationsmode verwendet werden, den der Multiplizierer 804 zum Implementieren verwendet. Es wird verstanden werden, dass die anderen Moden nicht 9-Bit-mal-9-Bit-Multiplizierer enthalten müssen (d.h. sie können eine 18-Bit-mal-18-Bit-Multiplikation enthalten).
  • 9 ist ein Blockdiagramm einer illustrativen Implementierung des Modes für eine Summe der Produkte von zwei 9-Bit-mal-9-Bit-Multiplizierern in einem MAC-Block. Wie es dargestellt ist, verwendet eine Modenimplementierung einer einzigen Summe aus den Produkten von zwei 9-Bit-mal-9-Bit-Multiplizierern zwei Multiplizierer 908 und 910 (z.B. entweder die zwei 18-Bit-mal-18-Bit-Multiplizierer der oberen Hälfte oder die zwei 18-Bit-mal-18-Bit-Multiplizierer der unteren Hälfte) mit Eingängen 900, 902, 904 und 906. Produkte 912 und 914 werden in einen Addierer/Subtrahierer 916 eingegeben, der eine Ausgabe 918 liefert. Bei einem typischen MAC-Block (z.B. dem MAC-Block 192 in 3) würde die dargestellte Implementierung zulassen, dass vier solche Moden für eine Summe aus den Produkten von zwei 9-Bit-mal-9-Bit-Multiplizierern in einem einzigen MAC-Block gleichzeitig implementiert werden (d.h. weil jeder 18-Bit-mal-18-Bit-Multiplizierer zwei 9-Bit-mal-9-Bit-Multiplizierer implementieren kann). Gemäß den Modenaufteilungseigenschaften der vorliegenden Erfindung können die übrigen zwei 18-Bit-mal-18-Bit-Multiplizierer und zwei 9-Bit-mal-9-Bit-Multiplizierer zum Implementieren von irgendeinem anderen geeigneten Mode gleichzeitig mit dem Mode für die Summe aus den Produkten von zwei 9-Bit-mal-9-Bit-Multiplizierern verwendet werden, für den die Multiplizierer 908 und 910 zum Implementieren verwendet werden.
  • 10 ist ein Blockdiagramm einer illustrativen Implementierung eines Modes für eine Summe der Produkte von vier 9-Bit-mal-9-Bit-Multiplizierern in einem MAC-Block. Wie es dargestellt ist, verwendet eine einzige Modenimplementierung für eine Summe der Produkte von vier 9-Bit-mal-9-Bit-Multiplizierern vier 18-Bit-mal-18-Bit-Multiplizierer 1016, 1018, 1020 und 1022 mit Eingängen 1000, 1002, 1004, 1006, 1008, 1010, 1012 und 1014. Beispielsweise können die Multiplizierer 1016 und 1018 die Multiplizierer der oberen Hälfte sein und können die Multiplizierer 1020 und 1022 die Multiplizierer der unteren Hälfte sein. Produkte 1024 und 1026 werden in einen Addierer/Subtrahierer 1032 der ersten Stufe eingegeben. Produkte 1028 und 1030 werden in einen Addierer/Subtrahierer 1034 der ersten Stufe eingegeben. Ausgaben 1036 und 1038 von den Addierern/Subtrahierern 1032 und 1036 werden in einen Addierer/Subtrahierer 1040 einer zweiten Stufe eingegeben, der eine Ausgabe 1042 erzeugt. Bei einem typischen MAC-Block (z.B. dem MAC-Block 192 in 3) würde die dargestellte Implementierung zulassen, dass zwei solche Moden für eine Summe aus den Produkten von vier 9-Bit-mal-9-Bit-Multiplizierern in einem einzigen MAC-Block gleichzeitig implementiert werden (d.h. weil jeder 18-Bit-mal-18-Bit-Multiplizierer zwei 9-Bit-mal-9-Bit-Multiplizierer implementieren kann). Gemäß den Modenaufteilungseigenschaften der vorliegenden Erfindung können die übrigen vier 9-Bit-mal-9-Bit-Multiplizierer zum Implementieren von irgendeinem anderen geeigneten Mode gleichzeitig mit dem Mode für die Summe aus den Produkten von vier 9-Bit-mal-9-Bit-Multiplizierern verwendet werden, für dessen Implementierung die Multiplizierer 1016, 1018, 1020 und 1022 verwendet werden. Es wird verstanden werden, dass dann, wenn es einen Mangel an Betriebsmitteln (z.B. Addierern) gibt, bestimmte Moden nicht gleichzeitig mit denjenigen der 10 implementiert werden können.
  • 11 ist ein Blockdiagramm einer illustrativen Implementierung eines 36-Bit-mal-36-Bit-Multiplikationsmodes in einem MAC-Block. Ein Multiplizierer 1104 mit Eingängen 1100 und 1102 und einem Ausgangsprodukt 906 ist aus vier 18-Bit-mal-18-Bit-Multiplizierern und Addierern gebildet. Weil alle Multiplizierer des MAC-Blocks bei der in 11 gezeigten Implementierung verwendet werden, können gemäß der vorliegenden Erfindung keine anderen Moden gleichzeitig implementiert werden.
  • Es wird verstanden werden, dass irgendwelche anderen geeigneten Moden in einem MAC-Block gemäß der vorliegenden Erfindung implementiert werden können. Beispielsweise können bestimmte Moden ohne die Notwendigkeit von Multiplizierern implementiert werden, wie beispielsweise XOR-Gatter mit einer Breite von 36 Bits, UND-Gatter, ODER-Gatter oder irgendwelche anderen geeigneten logischen Gatter unter Verwendung von beispielsweise der Arithmetikschaltung des MAC-Blocks. Diese Moden können beispielsweise beim Unterstützen von bitweisen Operationen für Mikroprozessoren nützlich sein. Es wird auch verstanden werden, dass, obwohl sich einige Moden auf eine "Summe" beziehen, irgendeine andere geeignete Arithmetikoperation verwendet werden kann, (z.B. eine Differenz), die die Addier/Subtrahierer-Schaltung der MAC-Blöcke verwendet.
  • Andere Moden können beispielsweise Berechnungen eines zyklischen Redundanzcodes ("CRC") einer hohen Bandbereite von 16 Bits und 32 Bits enthalten. CRC wird in vielen Kommunikationsprotrollen verwendet, um sicherzustellen, dass die empfangenen Daten dieselben wie die gesendeten Daten sind. Eine CRC-Codierung/Decodierung ist für ein Codieren von 1 Bit zu einer Zeit relativ einfach zu implementieren, erhöht sich aber bezüglich einer Komplexität für ein gleichzeitiges Codieren von mehreren Bits.
  • Weil eine 12-Bit-mal-12-Bit-Multiplikation einen gesamten 18-Bit-mal-18-Bit-Multiplizierer zur Implementierung erfordert, resultiert sie in einer Verschwendung von Betriebsmitteln (z.B. nur 96 Bits, wenn die Eingaben/Ausgaben verwendet werden). Gemäß der vorliegenden Erfindung können die vier 18-Bit-mal-18-Bit-Multiplizierer jedes MAC-Blocks sechs 12-Bit-mal-12-Bit-Multiplikationen anstelle nur vier unterstützen, indem zugelassen wird, dass ungenutzte Betriebsmittel in separaten gleichzeitigen Moden verwendet werden. Dies steht im Gegensatz zu einem Implementieren von 9-Bit-mal-9-Bit-Multiplizierern von 18-Bit-mal-18-Bit-Multiplizierern, weil das Aufteilen eines 18-Bit-mal-18-Bit-Multiplizierers in zwei 9-Bit-mal-9-Bit-Multiplizierer innerhalb des 18-Bit-mal-18-Bit-Multiplizierers enthalten ist. Ein Aufteilen von zwei 18-Bit-mal-18-Bit-Multiplizierern in drei 12-Bit-mal-12-Bit-Multiplizierer enthält ein gemeinsames Nutzen von Betriebsmitteln zwischen den Multiplizierern. Dies erfordert ein komplexes Führen und eine Eingabeabbildung.
  • Aus ähnlichen Gründen kann eine 24-Bit-mal-24-Bit-Multiplikation, die normalerweise einen vollständigen MAC-Block zum Implementieren in einer 36-Bit-mal-36-Bit-Multiplikation erfordern würde, gemäß der vorliegenden Erfindung effizienter gemacht werden, um zuzulassen, dass ein einziger MAC-Block zwei gleichzeitige 24-Bit-mal-24-Bit-Multiplikationen unterstützt.
  • Die Modenaufteilungseigenschaften der vorliegenden Erfindung können auf irgendeine geeignete Weise implementiert werden. Beispielsweise kann ein MAC-Block bei einem geeigneten Ansatz unter Verwendung einer geeigneten Schaltung konfiguriert sein (wie z.B. einschließlich von Multiplexern, Registern, etc.), um zuzulassen, dass unterschiedliche Moden gleichzeitig innerhalb des MAC-Blocks implementiert werden. Irgendwelche geeigneten Steuersignale können verwendet werden, um anzuzeigen, wie ein MAC-Block in Bezug auf die gleichzeitig zu implementierenden Moden zu konfigurieren ist. Irgendwelche oder alle dieser Steuersignale können anwendergesteuert sein.
  • 12 ist ein vereinfachtes Blockdiagramm eines MAC-Blocks 1200 gemäß der vorliegenden Erfindung mit Steuersignalen 1201-1211. Die Steuersignale 1201-1211 können anzeigen, in welchem Mode oder in welchen Moden der MAC-Block 1200 gleichzeitig arbeitet. Die Steuersignale 1201-1211 sind lediglich illustrativ. Es wird verstanden werden, dass irgendwelche anderen geeigneten Steuersignale zum Implementieren der Modenaufteilungseigenschaften der vorliegenden Erfindung verwendet werden können. Der Kürze und der Klarheit halber, aber nicht anhand einer Beschränkung und ohne Verlust an Allgemeinheit ist die vorliegende Erfindung hierin primär in Bezug auf die Steuersignale 1201-1211 beschrieben.
  • Die Steuersignale 1201-1204 sind "SPLIT"-Signale bzw. "AUFTEILUNGS"-Signale, die für jeden der vier jeweiligen 18-Bit-mal-18-Bit-Multiplizierer des MAC-Blocks 1200 anzeigen, ob der Multiplizierer als 18-Bit-mal-18-Bit-Multiplizierer zu verwenden ist oder ob der Multiplizierer als zwei 9-Bit-mal-9-Bit-Multiplizierer zu verwenden ist. Irgendeine geeignete Anzahl von SPLIT-Signalen kann zum Implementieren von irgendeinem geeigneten Mode verwendet werden, der die Verwendung eines bestimmten bemaßten Multiplizierers erfordert. Wenn beispielsweise ein bestimmter Mode die Verwendung von 4-Bit-mal-4-Bit-Multiplizierern erfordert, dann können zusätzliche SPLIT-Signale verwendet werden. Bei einem anderen geeigneten Ansatz können SPLIT-Signale verwendet werden, um anzuzeigen, dass ein bestimmter Multiplizierer als zwei oder mehrere kleinere Multiplizierer verwendet wird (d.h. wie es gegensätzlich dazu ist, in nur zwei kleinere Multiplizierer aufgeteilt zu werden).
  • Die Steuersignale 1205 und 1208 stellen "SMODE"-Signale dar, die dazu verwendet werden können, anzuzeigen, ob die Akkumulatorfunktionalität des MAC-Blocks 1200 freizugeben ist. Somit können die Steuersignale 1205 und 1208 zum Implementieren eines 52-Bit-Akkumulationsmodes verwendet werden. Das Steuersignal 1205 kann zur oberen Hälfte des MAC-Blocks 1200 gehören, während das Steuersignal 1208 zur unteren Hälfte des MAC-Blocks 1200 gehören kann.
  • Die Steuersignale 1206 und 1209 stellen "ZERO"-Signale bzw. "NULL"-Signale dar, die dazu verwendet werden können, zusammen mit dem SMODE-Signal anzuzeigen, ob ein Mode 2A zu implementieren ist. Der Mode 2A wird zum Initialisieren (z.B. durch eine Nullsetzung) der im Mode 2 (d.h. dem oben unter Bezugnahme auf 5 beschriebenen 52-Bit-Akkumulatormode) verwendeten Akkumulatorkomponenten verwendet. Unter Bezugnahme auf 2 können die Steuersignale 1206 und 1209 beispielsweise veranlassen, dass geeignete Bits von entweder dem Addierer/Subtrahierer 144 der oberen Hälfte oder dem Addierer/Subtrahierer 144 der unteren Hälfte jeweils auf Erde gelegt werden, um den Akkumulator auf Null zu setzen. Die Steuersignale 1206 und 1209 können dazu verwendet werden, bei einer bestimmten Anordnung eine 36-Bit-mal-36-Bit-Multiplikation anzuzeigen. Das bedeutet, dass bei einer bevorzugbaren Implementierung eines 36-Bit-mal-36-Bit-Multiplikationsmodes ein Nullsetzen der Addierer/Subtrahierer nötig sein kann.
  • Die Steuersignale 1207 und 1210 stellen "MODE3"-Signale dar, die dazu verwendet werden können, anzuzeigen, wann die Ausgaben von zwei Multiplizierern (d.h. entweder zwei in der oberen Hälfte oder zwei in der unteren Hälfte des MAC-Blocks) miteinander zu addieren sind. Die Steuersignale 1207 und 1210 werden daher dazu verwendet, anzuzeigen, wann der Mode für die Summe von zwei 18-Bit-mal-18-Bit-Multiplikationen zu implementieren ist oder wann der Mode einer Summe von zwei 9-Bit-mal-9-Bit-Multiplikationen zu implementieren ist. Die Steuersignale 1207 und 1210 gehören jeweils zur oberen Hälfte und zur unteren Hälfte des MAC-Blocks.
  • Das Steuersignal 1211 stellt ein "MODE4"-Signal dar, das dazu verwendet werden kann, anzuzeigen, wann die Ausgaben von vier Multiplizierern miteinander zu addieren sind. Das Steuersignal 1211 wird daher dazu verwendet, anzuzeigen, wann der Mode für eine Summe aus vier 18-Bit-mal-18-Bit-Multiplikationen zu implementieren ist oder wann der Mode für eine Summe von vier 9-Bit-mal-9-Bit-Muliplikationen zu implementieren ist. Weil alle vier Multiplizierer des MAC-Blocks in diesen Moden verwendet werden, wird ein einziges MODE4-Signal für den gesamten MAC-Block verwendet.
  • Die nachfolgende Tabelle 1 fasst die obigen Steuersignale zusammen, wie sie verwendet werden, um einen jeweiligen der jeweils beschriebenen Moden zu implementieren. A, B, C und D stellen jeweils vier 18-Bit-mal-18-Bit-Multiplizierer im MAC-Block dar, wobei A und B die Multiplizierer der oberen Hälfte und C und D die Multiplizierer der unteren Hälfte sind. R und S stellen die obere Hälfte und die untere Hälfte des MAC-Blocks dar.
  • TABELLE 1
    Figure 00230001
  • Jeder der Moden 1-8 in der TABELLE 1 kann in entweder einem einzigen 18-Bit-Multiplizierer in einer Hälfte des MAC-Blocks (d.h. entweder der oberen Hälfte oder der unteren Hälfte) oder im gesamten MAC-Block implementiert werden. Die nachfolgende TABELLE 2 fasst diese Flexibilität zusammen.
  • TABELLE 2
    Figure 00230002
  • Figure 00240001
  • Wenn ein bestimmter Mode eine Hälfte des MAC-Blocks erfordert, dann kann die andere Hälfte durch einen Mode eines halben Blocks oder durch einen Mode eines einzigen Multiplizierers (oder durch zwei solcher Moden) verwendet werden. Wenn ein bestimmter Mode einen einzigen Multiplizierer erfordert, dann können die übrigen Multiplizierer durch einen Mode eines halben Blocks, durch Moden eines einzigen Multiplizierers oder durch beides verwendet werden.
  • Es wird verstanden werden, dass bestimmte Anordnungen eines MAC-Blocks gemäß der vorliegenden Erfindung bestimmte folgerichtige und praktische Beschränkungen enthalten können. Beispielsweise erfordern bei einer geeigneten Anordnung die Moden 4, 7 und 8, dass die Steuersignale 1201-1204 auf denselben Wert eingestellt werden. Es kann erforderlich sein, dass die Steuersignale 1205 und 1208 für die Moden 4, 7 und 8 auf denselben Wert eingestellt werden. Es kann erforderlich sein, dass die Steuersignale 1206 und 1209 für die Moden 4, 7 und 8 auf denselben Wert eingestellt werden. Die Moden 3 und 6 können erfordern, dass die Steuersignale 1201 und 1202 auf denselben Wert eingestellt werden und dass die Steuersignale 1203 und 1204 auf denselben Wert eingestellt werden. Es wird verstanden werden, dass solche Beschränkungen lediglich illustrativ sind und wenigstens teilweise von der verwendeten bestimmten Anordnung abhängen, der Anwendung, für welche der MAC-Block verwendet werden wird, oder beides.
  • Es wird verstanden werden, dass irgendwelche anderen geeigneten Moden gemäß der vorliegenden Erfindung dargestellt und implementiert werden können. Es wird weiterhin verstanden werden, dass irgendwelche anderen Steuersignale zusätzlich zu oder anstelle von denjenigen, die dargestellt sind, verwendet werden können.
  • 13 ist ein vereinfachtes Blockdiagramm einer programmierbaren Logikvorrichtung 1300 mit einem oder mehreren MAC-Blöcken 1302, die gemäß der vorliegenden Erfindung konfiguriert sind. PLD 1300 kann irgendeine geeignete Verbindungsschaltung, eine Speicherschaltung und eine programmierbare Logikschaltung haben, um zuzulassen, dass die PLD 1300 Anwenderentwicklungen implementiert und MAC-Blöcke 1302 beim Implementieren der Anwenderentwicklungen verwendet.
  • 14 stellt eine PLD 1300 (13) dieser Erfindung (d.h. mit wenigstens einem Multiplizierer, der mit den Modenaufteilungseigenschaften der vorliegenden Erfindung konfiguriert ist) in einem Datenverarbeitungssystem 1400 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung dar. Das Datenverarbeitungssystem 1400 kann eine oder mehrere der folgenden Komponenten enthalten: einen Prozessor 1402; einen Speicher 1404; eine I/O-Schaltung 1406; und periphere Vorrichtungen 1408. Diese Komponenten sind durch einen Systembus 1410 miteinander gekoppelt und auf einer Leiterplatte 1412 ausgebreitet, die in einem Endbenutzersystem 1414 enthalten ist.
  • Das System 1400 kann in einer weiten Vielfalt von Anwendungen verwendet werden, wie beispielsweise bei einer Netzwerkbildung von Computern, einer Netzwerkbildung von Daten, einer Instrumentation, einer Videoverarbeitung, DSP oder irgendeiner anderen Anwendung, wo der Vorteil eines Verwendens einer programmierbaren oder erneut programmierbaren Logik erwünscht ist. Die PLD 1300 kann zum Durchführen einer Vielfalt von unterschiedlichen logischen Funktionen verwendet werden. Beispielsweise kann die PLD 1300 als Prozessor oder Steuerung konfiguriert sein, der bzw. die in Kooperation mit dem Prozessor 1402 arbeitet. Die PLD 1300 kann auch als Zuteiler zum Zuteilen eines Zugriffs zu einem gemeinsam genutzten Betriebsmittel im System 1400 verwendet werden. Bei noch einem weiteren Beispiel kann die PLD 1300 als Schnittstelle zwischen dem Prozessor 1402 und einer der anderen Komponenten im System 1400 konfiguriert sein.
  • Somit wird ein MAC-Block mit Modenaufteilungsfähigkeiten zur Verfügung gestellt. Ein Fachmann auf dem Gebiet wird erkennen, dass die vorliegende Erfindung durch andere als die beschriebenen Ausführungsbeispiele ausgeführt werden kann, die zu Zwecken einer Darstellung und nicht einer Beschränkung präsentiert sind, und die vorliegende Erfindung nur durch die Ansprüche beschränkt ist, die folgen.

Claims (20)

  1. Multiplizierer/Akkumulator-Block, der folgendes aufweist: einen ersten Multiplizierer, der beim Implementieren eines ersten Betriebsmodes verwendet wird; gekennzeichnet durch einen zweiten Multiplizierer, der beim gleichzeitigen Implementieren eines vom ersten Betriebsmode unterschiedlichen zweiten Betriebsmodes verwendet wird.
  2. Multiplizierer/Akkumulator-Block nach Anspruch 1, der weiterhin einen oder mehrere zusätzliche Multiplizierer aufweist, die beim Implementieren des ersten Betriebsmodes verwendet werden.
  3. Multiplizierer/Akkumulator-Block nach Anspruch 1, der weiterhin einen oder mehrere zusätzliche Multiplizierer aufweist, die beim Implementieren des zweiten Betriebsmodes verwendet werden.
  4. Multiplizierer/Akkumulator-Block nach Anspruch 1, wobei der erste Multiplizierer ein 18-Bit-mal-18-Bit-Multiplizierer ist und der zweite Multiplizierer ein 18-Bit-mal-18-Bit-Multiplizierer ist, wobei der Multiplizierer/Akkumulator-Block weiterhin zwei zusätzliche 18-Bit-mal-18-Bit-Multiplizierer aufweist.
  5. Multiplizierer/Akkumulator-Block nach Anspruch 4, wobei der erste Mode aus der Gruppe ausgewählt ist, die besteht aus: Multiplizieren von 18 Bits mal 18 Bits, Akkumulieren von 52 Bits, Initialisieren/Nullsetzen des Akkumulators, Summieren von 2 18-Bit-mal-18-Bit-Multiplikationen, Summieren von 4 18-Bit-mal-18-Bit-Multiplikationen, Multiplizieren von 9 Bits mal 9 Bits, Summieren von 2 9-Bit-mal-9-Bit-Multiplikationen, Summieren von 4 9-Bit-mal-9-Bit-Multiplikationen und Multiplizieren von 36 Bits mal 36 Bits.
  6. Multiplizierer/Akkumulator-Block nach Anspruch 1, der weiterhin eine Vielzahl von Steuersignalen aufweist, die zum Anzeigen des ersten Modes und des zweiten Modes verwendet werden.
  7. Multiplizierer/Akkumulator-Block nach Anspruch 1, der weiterhin eine Schaltung zum Addieren, Subtrahieren und Akkumulieren von Eingaben aufweist.
  8. Multiplizierer/Akkumulator-Block nach Anspruch 1, der weiterhin einen dritten Multiplizierer aufweist, der beim gleichzeitigen Implementieren eines dritten Betriebsmodes verwendet wird.
  9. Programmierbare Logikvorrichtung die den Multiplizierer/Akkumulator-Block nach Anspruch 1 aufweist.
  10. Multiplizierer/Akkumulator-Block nach Anspruch 1, der folgendes aufweist: vier 18-Bit-mal-l8-Bit-Multiplizierer, die in zwei Paaren angeordnet sind; eine erste Arithmetikschaltung, die mit einem der Paare gekoppelt ist; eine zweite Arithmetikschaltung, die mit einem anderen der Paare gekoppelt ist; und eine Steuerschaltung, die mit den Multiplizierern und der Arithmetikschaltung gekoppelt ist, wobei die Steuerschaltung steuert, in welchen Betriebsmoden der Multiplizierer/Akkumulator arbeiten soll, wobei der Multiplizierer/Akkumulator in mehr als einem Betriebsmode gleichzeitig arbeiten kann.
  11. Multiplizierer/Akkumulator-Block nach Anspruch 10, wobei die erste Arithmetikschaltung eine Addierer-, Subtrahierer- und Akkumulatorschaltung aufweist und die zweite Arithmetikschaltung eine Addierer-, Subtrahierer- und Akkumulatorschaltung aufweist.
  12. Multiplizierer/Akkumulator-Block nach Anspruch 10, der weiterhin eine Arithmetikschaltung einer zweiten Stufe aufweist, die mit der ersten Arithmetikschaltung und der zweiten Arithmetikschaltung gekoppelt ist.
  13. Multiplizierer/Akkumulator-Block nach Anspruch 10, wobei die Steuerschaltung Steuersignale aufweist.
  14. Multiplizierer/Akkumulator-Block nach Anspruch 13, wobei die Steuersignale Steuersignale zum Anzeigen aufweisen, dass ein bestimmter der Multiplizierer derart zu konfigurieren ist, dass er als zwei oder mehrere kleinere Multiplizierer zu verwenden ist.
  15. Multiplizierer/Akkumulator-Block nach Anspruch 13, wobei die Steuersignale Steuersignale zum Anzeigen aufweisen, dass die Ausgaben eines bestimmten Paars der zwei Paare von Multiplizierern miteinander zu summieren sind.
  16. Multiplizierer/Akkumulator-Block nach Anspruch 13, wobei die Steuersignale Steuersignale zum Anzeigen aufweisen, dass die Ausgaben der vier Multiplizierer miteinander zu summieren sind.
  17. Multiplizierer/Akkumulator-Block nach Anspruch 10, wobei die Betriebsmoden aus der Gruppe ausgewählt sind, die besteht aus: Multiplizieren von 18 Bits mal 18 Bits, Akkumulieren von 52 Bits, Initialisieren/Nullsetzen des Akkumulators, Summieren von 2 18-Bit-mal-18-Bit-Multiplikationen, Summieren von 4 18-Bit-mal-18-Bit-Multiplikationen, Multiplizieren von 9 Bits mal 9 Bits, Summieren von 2 9-Bit-mal-9-Bit-Multiplikationen, Summieren von 4 9-Bit-mal-9-Bit-Multiplikationen und Multiplizieren von 36 Bits mal 36 Bits.
  18. Leiterplatte, auf welcher eine programmierbare Logikvorrichtung nach Anspruch 9 angebracht ist.
  19. Leiterplatte nach Anspruch 18, die weiterhin folgendes aufweist: einen Speicher, der auf der Leiteplatte angebracht ist und mit der Speicherschaltung gekoppelt ist.
  20. Leiterplatte nach Anspruch 19, die weiterhin folgendes aufweist: eine Verarbeitungsschaltung, die auf der Leiterplatte angebracht ist und mit der Speicherschaltung gekoppelt ist.
DE602004002554T 2004-02-20 2004-02-20 Block Modus Aufteilung eines Multiplizier-Akkumulators Expired - Lifetime DE602004002554T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP20040250935 EP1566730B1 (de) 2004-02-20 2004-02-20 Block Modus Aufteilung eines Multiplizier-Akkumulators

Publications (2)

Publication Number Publication Date
DE602004002554D1 DE602004002554D1 (de) 2006-11-09
DE602004002554T2 true DE602004002554T2 (de) 2007-10-25

Family

ID=34707398

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004002554T Expired - Lifetime DE602004002554T2 (de) 2004-02-20 2004-02-20 Block Modus Aufteilung eines Multiplizier-Akkumulators

Country Status (2)

Country Link
EP (1) EP1566730B1 (de)
DE (1) DE602004002554T2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977885B1 (en) 2012-03-05 2015-03-10 Lattice Semiconductor Corporation Programmable logic device data rate booster for digital signal processing
US11983530B2 (en) * 2020-03-27 2024-05-14 Intel Corporation Reconfigurable digital signal processing (DSP) vector engine

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69927075T2 (de) * 1998-02-04 2006-06-14 Texas Instruments Inc Rekonfigurierbarer Koprozessor mit mehreren Multiplizier-Akkumulier-Einheiten
US6523055B1 (en) * 1999-01-20 2003-02-18 Lsi Logic Corporation Circuit and method for multiplying and accumulating the sum of two products in a single cycle
US6526430B1 (en) * 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)

Also Published As

Publication number Publication date
DE602004002554D1 (de) 2006-11-09
EP1566730B1 (de) 2006-09-27
EP1566730A1 (de) 2005-08-24

Similar Documents

Publication Publication Date Title
DE69821408T2 (de) Multiplikationsverfahren und -vorrichtung
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE2911096C2 (de)
DE1956209C3 (de) Multipliziervorrichtung
DE60021623T2 (de) Multiplizierer und verschiebungsanordnung mit benutzung von vorzeichenzifferzahlen darstellung
DE3700991A1 (de) Digitaler uebertragsvorgriffsaddierer
DE602004006841T2 (de) Elektronischer schaltkreis mit einem feld programmierbarer logischer zellen
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
DE102020105536A1 (de) Maschinenlerntrainingsarchitektur für programmierbare Vorrichtungen
DE102020131925A1 (de) Gleitkomma-zerlegungsschaltungsanordnung dynamischergenauigkeit
DE4101004A1 (de) Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum
DE102007056104A1 (de) Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
DE4345029A1 (de) Schaltkreis für diskrete Kosinustransformation
DE2730918A1 (de) Anordnung zum multiplizieren von binaerzahlen
DE602004002554T2 (de) Block Modus Aufteilung eines Multiplizier-Akkumulators
EP0130397B1 (de) Digitales Rechenwerk
DE19635114A1 (de) Multiplizierer
DE3828290A1 (de) Addierer und addierschaltung zur verwendung des addierers
DE1449564C3 (de) Recheneinrichtung zur Subtraktion mehrerer Operanden oder zu deren Addition durch Verwendung von Komplementärwerten eines der Operanden
DE3933172A1 (de) Akkumulator fuer komplexe zahlen
DE1774771A1 (de) Anordnung,um wechselweise eine Addition oder eine aus einer Anzahl logischer Funktionen zwischen den Inhalten einer Stelle zweier Binaerworte durchzufuehren
DE1241159B (de) UEbertragschaltung fuer ein Schnelladdierwerk
DE4317074C1 (de) Multiplizierer für reelle und komplexe Zahlen

Legal Events

Date Code Title Description
8332 No legal effect for de
8370 Indication of lapse of patent is to be deleted
8364 No opposition during term of opposition