DE10129033B4 - Programmierbarer Dividierer und sein Dividier-Verfahren - Google Patents

Programmierbarer Dividierer und sein Dividier-Verfahren Download PDF

Info

Publication number
DE10129033B4
DE10129033B4 DE2001129033 DE10129033A DE10129033B4 DE 10129033 B4 DE10129033 B4 DE 10129033B4 DE 2001129033 DE2001129033 DE 2001129033 DE 10129033 A DE10129033 A DE 10129033A DE 10129033 B4 DE10129033 B4 DE 10129033B4
Authority
DE
Germany
Prior art keywords
divided
bit
adders
binary
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE2001129033
Other languages
English (en)
Other versions
DE10129033A1 (de
Inventor
Shad R Firestone Shepston
Jeff Fort Collins Rearick
John G. Fort Collins Rohrbaugh
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies General IP Singapore Pte Ltd
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 Avago Technologies General IP Singapore Pte Ltd filed Critical Avago Technologies General IP Singapore Pte Ltd
Publication of DE10129033A1 publication Critical patent/DE10129033A1/de
Application granted granted Critical
Publication of DE10129033B4 publication Critical patent/DE10129033B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5306Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products

Landscapes

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

Abstract

Programmierbarer Dividierer (10) zum Dividieren einer binären N-Bit-Zahl F durch einen programmierten Wert, der gleich (2N-1)/K ist, wobei K eine ausgewählte Ganzzahl zwischen 1 und (2N-i – 1) ist, um eine dividierte binäre Zahl P zu erzeugen, mit:
N-1 Schiebeschaltungen (26, 66, 82, 86, 92, 98) zum Dividieren der binären N-Bit-Zahl F durch Schieben der binären N-Bit-Zahl F um jeweils 1 bis (N-1) Bits nach rechts, wobei die Schiebeschaltungen N-1 dividierte Werte G1 bis GN-1 erzeugen, die jeweils Werte von F/2 bis F/(2N-1) aufweisen; und
einer Mehrzahl von Addierern (44, 84, 88, 94, 96), die eine ausgewählte Kombination der dividierten Werte G1 bis GN-1 zusammenaddiert, um die dividierte binäre Zahl P zu erzeugen.

Description

  • Diese Erfindung bezieht sich allgemein auf das Gebiet der Schaltungen und Verfahren zum Durchführen binärer Mathematik. Insbesondere bezieht sich diese Erfindung bei bestimmten Ausführungsbeispielen auf eine programmierbare Spezial- bzw. Spezialzweckdividiererschaltung.
  • Vollständige arithmetisch-logische Einheiten (ALU = arithmetic logic units) sind allgemein erhältlich und werden verwendet, um mathematische Allzweckfunktionen einschließlich Addieren, Subtrahieren, Multiplizieren und Dividieren zu liefern. Obwohl solche arithmetisch-logische Einheiten vielseitig einsetzbare Vorrichtungen sind, ist die volle Leistungsfähigkeit einer solchen Vorrichtung für eine spezifische Anwendung nicht immer erforderlich. Falls beispielsweise die einzige erforderliche Funktion eine Ganzzahldividierfunktion ist, bei der der Rest abgestrichen wird, stellt eine vollständige arithmetisch-logische Einheit eine Reihe von Nachteilen dar. Die Verwendung einer vollständigen arithmetisch-logischen Einheit in einer solchen Anwendung würde die Kosten einer Schaltung erhöhen, als auch wesentliche Mengen von Silizium zum Implementieren erfordern. Darüber hinaus kann die Mehrzwecknatur einer solchen Vorrichtung zu Kompromissen führen, die die Leistungsfähigkeit hemmen. Außerdem sind viele, wenn nicht alle, arithmetisch-logischen Einheiten getaktete Vorrichtungen, und erfordern folglich eine Unterstützungsschaltungsanordnung und eine Taktgebung. Dies kann ferner die Anforderungen erhöhen und zu Kompromissen bei der Leistungsfähigkeit führen.
  • Bei bestimmten Anwendungen ist es daher vorteilhaft, eine Spezialschaltung zu schaffen, um eine mathematische Funktion zu liefern.
  • Die US 4,665,500 beschreibt einen Hochgeschwindigkeits-Multiplizierer/Dividierer (High Speed Multiplier/Divider) zur Verwendung mit Hochgeschwindigkeitsprozessoren, die zweckgebundene Addierer, Register, Steuerungen und Logik zur Durchführung einer Multiplikationsoperation, einer Multiplikations- und Additionsoperation und einer Divisionsoperation aufweisen. Bei einer Divisionsoperation erzeugt der Hochgeschwindigkeits-Multiplizierer/Dividierer einen 16-Bit-Quotienten, der in einem Niederwertigstes-Bit-Multiplizieren/Dividieren-Register MDL gespeichert wird, und einen 16-Bit-Rest (16 Bits), der in einem Höchstwertiges-Bit-Multiplizieren/Dividieren-Register MDM gespeichert wird. Ein Überlaufregister ist Null für eine vorzeichenlose Divisionsoperation. Für eine korrekte Divisionsoperation mit Vorzeichen ist der Inhalt des Überlaufregisters identisch zu dem Vorzeichen des MDM-Registers. Wenn die Größe des Überlaufregisters plus dem Höchstwertiges-Bit-Multiplizieren/Dividieren-Register größer als (oder gleich) die Größe des Divisors ist, wird ein Divisionsfehler an das Statusregister signalisiert. Bei Gleichstand, wenn die Vorzeichen gleich sind, wird ein Signalfehler angezeigt, andernfalls ist die Divisionsoperation okay und natürlich wird ein Statusfehler angezeigt, wenn ein Versuch unternommen wird, durch Null zu dividieren.
  • Es ist die Aufgabe der vorliegenden Erfindung, einen programmierbaren Dividierer und ein Verfahren zum Dividieren einer binären Zahl F zu schaffen, so daß die Division möglichst unaufwendig ist.
  • Diese Aufgabe wird durch einen programmierbaren Dividierer gemäß Anspruch 1 oder 17 und ein Verfahren gemäß Anspruch 8 gelöst.
  • Die vorliegende Erfindung bezieht sich allgemein auf eine programmierbare Dividiererschaltung und Verfahren dafür. Aufgaben, Vorteile und Merkmale der Erfindung werden für den Fachmann bei der folgenden detaillierten Beschreibung der Erfindung offensichtlich werden.
  • Bei einem Ausführungsbeispiel eines programmierbaren Dividierers, das mit der vorliegenden Erfindung übereinstimmt, zum Dividieren einer binären N-Bit-Zahl F durch einen programmierten Wert, der gleich (2N-1)/K ist, wobei K eine ausgewählte Ganzzahl zwischen 1 und (2N-1-1) ist, um eine dividierte binäre Zahl P zu erzeugen, dividieren N-1 Schiebeschaltungen die binäre N-Bit-Zahl F durch Schieben der binären N-Bit-Zahl F nach rechts um jeweils 1 bis (N-1) Bits. Die Schiebeschaltungen erzeugen N-1 dividierte Werte G1 bis GN-1, jeweils mit Werten von F/2 bis F/(2N-1). Eine Mehrzahl von Addierern addiert jede ausgewählte Kombination der dividierten Werte G1 bis GN-1 zusammen, um die dividierte binäre Zahl P zu erzeugen.
  • Ein Verfahren, das mit der vorliegenden Erfindung übereinstimmt, zum Dividieren einer binären N-Bit-Zahl F durch einen programmierten Wert, der gleich (2N-1)/K ist, wobei K eine ausgewählte Ganzzahl zwischen 1 und (2N-1 – 1) ist, um eine dividierte binäre Zahl P zu erzeugen, umfaßt: Schieben der binären N-Bit-Zahl F nach rechts um jeweils 1 bis (N-1) Bits, um N-1 dividierte Werte zu erzeugen, G1 bis GN-1, jeweils mit Werten von F/2 bis F/(2N-1); und Zusammenaddieren jeder ausgewählten Kombination der dividierten Werte G1 bis GN-1, um die dividierte binäre Zahl P zu erzeugen.
  • Bei einem weiteren Ausführungsbeispiel eines programmierbaren Dividierers, der mit der vorliegenden Erfindung übereinstimmt, zum Dividieren einer binären N-Bit-Zahl F durch einen programmierten Wert, der gleich (2N-1)/K ist, wobei K eine ausgewählte Ganzzahl zwischen 1 und (2N-1 – 1) ist, um eine dividierte binäre Zahl P zu erzeugen, umfaßt N-1 Schiebeschaltungen zum Dividieren der binären N-Bit-Zahl F durch Schieben der binären N-Bit-Zahl F nach rechts um jeweils 1 bis (N-1) Bits, wobei die Schiebeschaltungen N-1 dividierte Werte erzeugen, G1 bis GN-1, jeweils mit Werten von F/2 bis F/(2N-1). Eine Mehrzahl von Ein-Bit-Volladdieren mit Übertrag ist in N-2 Arrays von N Ein-Bit-Volladdierern mit Übertrag angeordnet, um jede ausgewählte Kombination der dividierten Werte G1 bis GN-1 oder Null zusammen zu addieren, um die dividierte binäre Zahl P zu erzeugen. Eine Mehrzahl von Schaltungen, die jede einen Zwei-Eingangs-Multiplexer umfaßt, ist in N-1 Arrays angeordnet, die selektiv entweder einen dividierten Wert G1 bis GN-1 oder Null an einen Eingang jedes Addierers koppeln.
  • Bei der Betrachtung der folgenden Beschreibung werden für den Fachmann auf diesem Gebiet viele Variationen, Entsprechungen und Permutationen der oben dargestellten exemplarischen Ausführungsbeispiele der Erfindung auftreten. Die obigen bestimmten Beispiele sollen den Schutzbereich der Erfindung nicht bestimmen.
  • Die Merkmale der Erfindung, von denen ausgegangen wird, daß sie neuartig sind, werden insbesondere in den beigefügten Ansprüchen ausgeführt. Die Erfindung selbst, sowohl bezüglich der Organisation als auch des Betriebsverfahrens, zusammen mit Aufgaben und Vorteilen derselben, kann jedoch am besten durch Bezugnahme auf die folgende detaillierte Beschreibung der Erfindung verstanden werden.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Schaltbild eines Ausführungsbeispiels eines programmierbaren Dividierers, der mit der vorliegenden Erfindung übereinstimmt und eine binäre Sieben-Bit-Zahl selektiv dividiert.
  • 2 ein Schaltbild eines Ein-Bit-Volladdierers mit Übertrag, der für die Verwendung bei der vorliegenden Erfindung geeignet ist.
  • Obwohl diese Erfindung für Ausführungsbeispiele in vielen unterschiedlichen Formen zugänglich ist, sind in den Zeichnungen spezifische Ausführungsbeispiele gezeigt und werden hierin detailliert beschrieben, mit dem Hinweis, daß die vorliegende Offenbarung als ein Beispiel der Prinzipien der Erfindung angesehen wird und die Erfindung nicht auf die spezifischen gezeigten und beschriebenen Ausführungsbeispiele beschränken soll. In der Beschreibung werden gleiche Bezugszeichen verwendet, um die gleichen, ähnlichen oder entsprechenden Teile in den verschiedenen Ansichten der Zeichnungen zu beschreiben.
  • Bezugnehmend auf 1 ist eine programmierbare Dividiererschaltung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung dargestellt. Die dargestellte programmierbare Dividiererschaltung empfängt eine eingegebene binäre Zahl F, die in diesem Fall eine binäre Sieben-Bit-Zahl mit Bits f6 bis f0 ist, wobei f0 das niedrigstwertige Bit ist. Die Schaltung 10 erzeugt eine binäre Ausgangszahl P mit Bits p6 bis p0, wobei p0 das niedrigstwertige Bit ist. Sechs Programmiereingänge 12, 14, 16, 18, 20 und 22 sind vorgesehen, um den Wert von F selektiv durch einen ausgewählten Divisor zwischen 2 und 64 in Inkrementen von 2J, wobei J eine Ganzzahl ist, in diesem Fall zwischen eins und sechs, zu dividieren. Selbstverständlich wird der Fachmann auf diesem Ge biet erkennen, daß die dargestellte Topologie auf eine binäre Zahl beliebiger Größe erweitert oder reduziert werden kann, und nicht auf eine binäre Sieben-Bit-Zahl beschränkt ist. Allgemein kann eine binäre N-Bit-Zahl mit N Bit umfaßt sein.
  • Falls bei dem Dividierer 10 der Eingang 12 ausgewählt ist, wird der binäre Eingang F durch 2 (F/2 = G1) dividiert. Falls der Eingang 14 gewählt ist, wird die binäre Zahl F durch 4 (F/4 = G2) dividiert. Falls beide Eingänge 12 und 14 gewählt werden, wird die binäre Zahl F durch 2 und durch 4 dividiert, und die Ergebnisse werden addiert, um eine Division durch 4/3 (= G1 + G2 = Multiplikation mit ¾) zu erzeugen. Falls der Eingang 16 ausgewählt ist, wird die binäre Zahl F durch 8 (F/8=G3) dividiert. Auf ähnliche Weise wie die, die oben beschrieben ist, wird, falls alle drei Eingangsleitungen 12, 14 und 16 ausgewählt werden, die binäre Zahl F durch 2, 4 und 8 dividiert. Diese dividierten Werte von F werden dann zusammen addiert und das resultierende Ausgangssignal ist F(7/8) = F/2 + F/4 + F/8 = G1 + G2 + G3. Die Eingangsleitungen 12, 14, 16, 18, 20 und 22 können folglich in jeder Kombination ausgewählt werden, um den gewünschten Divisor zu erhalten. Auf ähnliche Weise wie die, die oben beschrieben ist, führt die Auswahl der Leitung 18 zur Division von F durch 16 (F/16 = G4), die Auswahl der Leitung 20 führt zur Division von F durch 32 (F/32 = G5) und die Auswahl der Leitung 22 führt zur Division von F durch 64 (F/64 = G6).
  • Jede der Leitungen 12, 14, 16, 18, 20 und 22 steuern einen oder mehrere Multiplexer (oder Schaltungen). Beispielsweise steuert Leitung 12 ein Array von sechs Multiplexern 26, das aus den Multiplexern 28, 30, 32, 34, 36 und 38 besteht. Die Multiplexer 28, 30, 32, 34, 36 und 38 sind Schaltungsvorrichtungen mit zwei Eingängen, die durch Leitung 12 gesteuert werden, wobei der logische Wert an der Leitung 2 bestimmt, welches der beiden Eingangssignale zu einem Ausgang geleitet wird. Sechs solcher Multiplexer werden in dem Multiplexerarray 26 verwendet, um den Wert von F, der um ein Bit (G1) nach rechts geschoben ist, selektiv an ein Array von binären Volladdierern 44 anzulegen. Falls die Leitung 12 ausgewählt ist, werden die Werte f1 bis f6 (die G1 = F um ein Bit nach rechts geschoben = F/2 darstellen) an einen Eingang des Arrays von Addierern 44 angelegt, wobei das höchstwertige Bit des Sieben-Bit-Worts mit Nullen aufgefüllt bzw. wiedergefüllt wird. Falls die Leitung 12 nicht ausgewählt ist, werden an jeden der Addierer in den sechs niedrigstwertigen Bits des Addiererarrays 44 logische Nullen angelegt, (d. h. G1 = 0). Folglich wird durch Auswahl der Leitung 12 durch die Dividiererschaltung 10 ein Beitrag zu dem Wert von P addiert, der gleich F dividiert durch 2 ist.
  • Das Addiererarray 44 besteht aus sieben Addierern (einen für jedes Bit der ausgegebenen Zahl P), die als Addierer 50, 52, 53, 54, 56, 58 und 60 gezeigt sind. Der Addierer 60 erzeugt ein Ausgangssignal, das einem niedrigstwertigen Bit entspricht, wobei der Addierer 50 ein Ausgangssignal erzeugt, das einem höchstwertigen Bit entspricht. Jeder Addierer im Array 44 ist ein Ein-Bit-Zwei-Eingänge-Volladdierer mit Übertrag. Jedes Übertragausgangssignal wird als Übertrageungangssignal an den Addierer an der nächsten höherwertigen Bitposition angelegt. Folglich wird das Übertragausgangssignal des Addierers 60 an den Übertrageingang des Addierers 58 angelegt, das Übertragausgangssignal des Addierers 48 wird an den Übertrageingang des Addierers 56 angelegt, usw. Die Ausgangssignale jedes der sechs Multiplexer des Multiplexerarrays 26 werden an einen der Eingänge (Eingangssignal B ist gezeigt) angelegt, für die sechs niedrigstwertigen Bitpositionen im Addiererarray 44. Folglich wird das Ausgangssignal des Multiplexers 38 an den B-Eingang des Addierers 60 angelegt, das Ausgangssignal des Multiplexers 36 wird an den B-Eingang des Multiplexers 58 angelegt, das Ausgangssignal des Multiplexers 34 wird an den B-Eingang des Addierers 56 angelegt, usw. Der Addierer 50 dient dazu, das Übertragausgangssignal des Addierers 52 zu empfangen, wobei beide andere Eingangssignale mit einer logischen Null verbunden sind.
  • Auf ähnliche Weise steuert die Leitung 14 ein Array 66 von 5 Multiplexern, die abhängig von dem Wert, der an die Leitung 14 angelegt wird, selektiv entweder Null oder F um zwei Bits (G2) nach rechts geschoben zu den niedrigstwertigen Bit-Addieren des Addiererarrays 44 addiert. Folglich besteht das Multiplexerarray 66 aus fünf Multiplexern, 70, 72, 74, 76 und 78, mit Eingangssignalen f2, f3, f4, f5 und f6, die jeweils an einen Eingang jedes Multiplexers angelegt sind, und Null ist an den anderen Eingang jedes Multiplexers angelegt. Das Ausgangssignal des Multiplexers 70 wird an den A-Eingang des Addierers 60 angelegt, das Ausgangssignal des Multiplexers 72 wird an den A-Eingang des Addierers 58 angelegt usw., bis das Ausgangssignal des Multiplexers 78 an den A-Eingang des Addierers 53 angelegt ist. Die A-Eingänge der Addierer 50 und 52 sind beide mit Nullen verbunden.
  • Wie dargestellt, erzeugen die Addierer 44 eine binäre Sieben-Bit-Zahl, die selektiv f/2 zu f/4 addieren kann, an den Ausgangsanschlüssen S des Arrays von Addierern 44. Die Leitung 16 steuert ein Array 82 von vier Multiplexern, die selektiv den Wert von F um drei Bits nach rechts geschoben addieren, um F/8 = G3 zu erzeugen. Dieser Wert (aufgefüllt mit Nullen an den höchstwertigen Bits) wird an den A-Eingang eines zweiten Arrays 84 von Ein-Bit-Volladdierern angelegt, die genau gleich angeordnet sind wie das Array 44. Dieses zweite Array von Volladdierern empfängt das Ausgangssignal des dritten Arrays von Multiplexern (die F/8 darstellen) an dem A-Eingang und empfängt das Ausgangssignal des Arrays von Addierern 44 an den B-Eingängen derselben. Folglich ist das Ausgangsignal des zweiten Arrays von Addierern 84 eine binäre Sieben-Bit-Zahl, die einen Wert darstellt, der gleich ist wie die Summe jeder ausgewählten Einsen von f/2, f/4 und f/8 (G1, G2 und G3), wie es durch die Auswahl der Leitungen 12, 14 und 16 gewünscht wird.
  • Auf eine gleiche Weise steuert die Leitung 18 ein Array von drei Multiplexern 86, die selektiv entweder Nullen oder F um vier Bits (G4) nach rechts geschoben an das Ausgangssignal des zweiten Arrays von Addierern 84 in einem dritten Array von Addierern 88 addieren. Die Leitung 20 steuert ein Array von zwei Multiplexern 92, die selektiv entweder Nullen oder F um fünf Bits (G5) nach rechts geschoben in einem vierten Array von Addierern 94 mit dem Ausgangssignal des dritten Arrays von Addierern 88 addieren. Schließlich wird das höchstwertige Bit von F, das den ganzen Weg zu der niedrigstwertigen Position (sechs Bits nach rechts) geschoben ist, selektiv in einem fünften Array von Addierern 96 unter der Steuerung der Leitung 22 zu dem Ausgangssignal des vierten Arrays von Addierern 94 addiert, die bestimmt, ob G6 oder Null in einem Multiplexerarray 98 addiert wird (in diesem Fall ein Array von einem Multiplexer). Das Ausgangssignal des fünften Arrays von Addierern 98 erzeugt das dividierte Ausgangsignal P.
  • Im allgemeinen Fall wird der Eingangssignalwert F aufeinander folgend geschoben, um die geschobenen Werte G1 bis GM-1 zu erzeugen, wobei der tief stehende Index die Anzahl von Positionen darstellt, um die die binäre Zahl F nach rechts geschoben wird. Die Addierer erzeugen Ausgangssignalwerte in jeder Kombination von Summen der geschobenen Werte G1 bis GM-1. Daher kann der Benutzer jede Bruchzahl von F als eine ausgewählte Summe der G Werte erzeugen, wobei die Auswahl aufgrund der Auswahl eines Werts von G oder Null bei jeder Multiplexerstufe getroffen wird. Daher ist der Wert von P am Ausgangssignal gegeben durch: P = ΣGK, für alle ausgewählten Werte von K.
  • Der Fachmann auf dem Gebiet wird es zu schätzen wissen, daß zum Ausführen der ausgewählten Division kein Takten erforderlich ist. Da darüber hinaus jeder Volladdierer konstru iert werden kann, um sein Ausgangssignal nach ungefähr zwei Gatterverzögerungen zu erzeugen, schreitet der gesamte Dividiervorgang schnell fort. Der aktuelle Dividierer 10 kann erweitert oder zusammengezogen werden, um eine Division einer beliebigen binären N-Bit-Zahl durch jegliche Potenz von zwei von 2 bis 2N-1 zu erzeugen. Diese dividierten Werte können selektiv zusammen addiert werden, um Ausgangssignalwerte in dem Bereich von F/2N-1 bis F(2N-1 – 1)/2N-1 zu erzeugen.
  • Bezugnehmend auf 2 ist ein Volladdierer gemäß einem Ausführungsbeispiel der vorliegenden Erfindung als Addierer 200 dargestellt. Ein solcher Addierer ist für jeden der Addierer, die in 1 gezeigt sind (z. B. 50, 52, usw.), geeignet. Bei dem Addierer 200 werden die A- und B- Eingangssignale gleichzeitig an ein Exklusiv-ODER (EXOR)-Gatter 202 und ein UND-Gatter 206 angelegt. Das Ausgangssignal des Exklusiv-ODER-Gatters 202 wird an ein Exklusiv-ODER-Gatter 208 angelegt, und gleichzeitig an ein UND-Gatter 212. Das Übertrageingangssignal (Cin) wird an einen zweiten Eingang des Exklusiv-ODER-Gatters 208 und des UND-Gatters 212 angelegt. Die Ausgangssignale der UND-Gatter 206 und 212 werden an die zwei Eingänge eines ODER-Gatters 216 angelegt. Der Ausgang des Exklusiv-ODER-Gatters 208 liefert das Summenbit S, während der Ausgang des ODER-Gatters 216 das Übertrag-Ausgangs-Bit Cout liefert.
  • Folglich schafft die vorliegende Erfindung ein Verfahren und eine Vorrichtung zum selektiven Dividieren einer binären N-Bit-Ganzzahl F, durch einen beliebigen ausgewählten Wert im Wert von 2 bis 2N-1; diese Werte können selektiv zusammen addiert werden, um jeden Ausgangssignalwert im Bereich von F/2N-1 bis F(2N-1 – 1)/2N-1 zu erreichen. Die Dividieroperation wird durch Steuern des ausgewählten Eingangssignals einer Mehrzahl von Multiplexerarrays selektiv gesteuert, wobei jedes Multiplexerarray selektiv entweder Nullen oder eine nach rechts geschobene Version der zu dividierenden Zahl F umschaltet. Im allgemeinen Fall wird ein Array von Multiplexern geschaffen, um selektiv entweder Nullen oder eine geschobene Version von F (G) für jedes Bit von F, außer das niedrigstwertige Bit zu schaffen, das einen Rest erzeugt, der abhängig von der Anwendung getrennt verwendet oder abgestrichen werden kann. Folglich werden für eine binäre N-Bit-Zahl N-1 Arrays von Multiplexern, wie z. B. 26 und 66, verwendet, wobei jedes aufeinander folgende Multiplexerarray selektiv das Eingangssignal F liefert, das um ein zusätzliches Bit geschoben ist bis das höchstwertige Bit in der niedrigstwertigen Position ist. Außerdem werden im allgemeinen Fall N-2 Arrays von Ein-Bit-Addierern, wie z. B. 44, verwendet, um die erforderliche Addition durchzuführen.
  • Die Multiplexer können als einfache CMOS (oder andere Verarbeitungs-) Übertragungsgatter oder -schalter implementiert werden; aber dies soll nicht einschränkend sein, da jeder geeignete Schalterentwurf verwendet werden kann, unabhängig davon, ob derselbe bipolare, MOS- oder andere Technologien verwendet. Der Fachmann auf diesem Gebiet wird außerdem verstehen, daß die Anzahl von Arrays von Volladdierern durch Verwenden geeigneter Kombinationen von drei Eingangssignaladdierern oder dergleichen verringert werden kann, ohne von der vorliegenden Erfindung abzuweichen.

Claims (18)

  1. Programmierbarer Dividierer (10) zum Dividieren einer binären N-Bit-Zahl F durch einen programmierten Wert, der gleich (2N-1)/K ist, wobei K eine ausgewählte Ganzzahl zwischen 1 und (2N-i – 1) ist, um eine dividierte binäre Zahl P zu erzeugen, mit: N-1 Schiebeschaltungen (26, 66, 82, 86, 92, 98) zum Dividieren der binären N-Bit-Zahl F durch Schieben der binären N-Bit-Zahl F um jeweils 1 bis (N-1) Bits nach rechts, wobei die Schiebeschaltungen N-1 dividierte Werte G1 bis GN-1 erzeugen, die jeweils Werte von F/2 bis F/(2N-1) aufweisen; und einer Mehrzahl von Addierern (44, 84, 88, 94, 96), die eine ausgewählte Kombination der dividierten Werte G1 bis GN-1 zusammenaddiert, um die dividierte binäre Zahl P zu erzeugen.
  2. Programmierbarer Dividierer (10) gemäß Anspruch 1, bei dem jeder der Mehrzahl von Addierern (44, 84, 88, 94, 96) selektiv entweder einen dividierten Wert G1 bis GN-1 oder Null addiert.
  3. Programmierbarer Dividierer (10) gemäß Anspruch 2, der ferner eine Mehrzahl von Schaltern umfaßt, die selektiv entweder einen dividierten Wert von G1 bis GN-1 oder Null zu einem Eingang jedes Addieres koppelt.
  4. Programmierbarer Dividierer (10) gemäß Anspruch 3, bei dem jeder Schalter einen Zwei-Eingangs-Multiplexer umfaßt.
  5. Programmierbarer Dividierer (10) gemäß Anspruch 3 oder 4, bei dem die Mehrzahl von Schaltern in N-1 Arrays angeordnet ist, um Null oder einen Wert von G1 bis GN-1 als ein Ausgangssignal desselben zu erzeugen.
  6. Programmierbarer Dividierer (10) gemäß einem der Ansprüche 1 bis 5, bei dem jeder der Mehrzahl von Addierern (44, 84, 88, 94, 96) eine Mehrzahl von Ein-Bit-Volladdierern mit Übertrag umfaßt.
  7. Programmierbarer Dividierer (10) gemäß einem der Ansprüche 1 bis 6, bei dem die Mehrzahl von Addierern (44, 84, 88, 94, 96) N-2 Arrays von N Ein-Bit-Addiererschaltungen umfaßt.
  8. Verfahren für eines programmierbaren Dividierer zum Dividieren einer binären N-Bit-Zahl F durch einen programmierten Wert, der gleich (2N-1)/K ist, wobei K eine ausgewählte Ganzzahl zwischen 1 und (2N-1 – 1) ist, um eine dividierte binäre Zahl P zu erzeugen, wobei das Verfahren folgende Schritte umfaßt: Schieben (26, 66, 82, 86, 92, 98) der binären N-Bit-Zahl F um jeweils 1 bis (N-1) Bits nach rechts, um N-1 dividierte Werte G1 bis GN-1 zu erzeugen, die jeweils Werte von F/2 bis F/(2N-1) aufweisen; und Zusammenaddieren (44, 84, 88, 94, 96) einer ausgewählten Kombination der dividierten Werte G1 bis GN-1, um die dividierte binäre Zahl P zu erzeugen.
  9. Verfahren gemäß Anspruch 8, bei dem das Addieren (44, 84, 88, 94, 96) das Summieren der ausgewählten Kombination der Werte G1 bis GN-1 mit Nullen für jeden nicht ausgewählten Wert G1 bis GN-1 umfaßt.
  10. Verfahren gemäß Anspruch 8 oder 9, bei dem das Addieren in N-2 Arrays von Ein-Bit-Volladdierern (44, 84, 88, 94, 96) ausgeführt wird.
  11. Verfahren gemäß einem der Ansprüche 8 bis 10, bei dem das Addieren in einer Mehrzahl von Addierern (44, 84, 88, 94, 96) ausgeführt wird, die selektiv entweder einen dividierten Wert G1 bis GN-1 oder Null addieren.
  12. Verfahren gemäß Anspruch 11, bei dem eine Mehrzahl von Schaltern selektiv entweder einen dividierten Wert G1 bis GN-1 oder Null zu einem Eingang jedes Addierers (44, 84, 88, 94, 96) koppelt.
  13. Verfahren gemäß Anspruch 12, bei dem jeder Schalter einen Zwei-Eingangs-Multiplexer umfaßt.
  14. Verfahren gemäß Anspruch 12 oder 13, das ferner das Anordnen der Mehrzahl von Schaltern in N-1 Arrays (26, 66, 82, 86, 92, 98) umfaßt, um Null oder einen Wert von G1 bis GN-1 als ein Ausgangssignal desselben zu erzeugen.
  15. Verfahren gemäß einem der Ansprüche 11 bis 14, bei dem die Mehrzahl von Addierern eine Mehrzahl von Ein-Bit-Volladdierern mit Übertrag umfaßt.
  16. Verfahren gemäß einem der Ansprüche 11 bis 15, bei dem die Mehrzahl von Addierern N-2 Arrays von N Ein-Bit-Addiererschaltungen umfaßt.
  17. Programmierbarer Dividierer (10) zum Dividieren einer binären N-Bit-Zahl F durch einen programmierten Wert, der gleich (2N-1)/K ist, wobei K eine ausgewählte Ganzzahl zwischen 1 und (2N-1 – 1) ist, um eine dividierte binäre Zahl P zu erzeugen, mit: N-1 Schiebeschaltungen (26, 66, 82, 86, 92, 98) zum Dividieren der binären N-Bit-Zahl F durch Schieben der binären N-Bit-Zahl F um jeweils 1 bis (N-1) Bits nach rechts, wobei die Schiebeschaltungen N-1 dividierte Werte G1 bis GN-1 erzeugen, die jeweils Werte von F/2 bis F/(2N-1) aufweisen; einer Mehrzahl von Ein-Bit-Volladdieren mit Übertrag, die in N-2 Arrays von N Ein-Bit-Volladdieren mit Übertrag angeordnet sind, die eine ausgewählte Kombination der dividierten Werte G1 bis GN_1 oder Null zusammenaddieren, um die dividierte binäre Zahl P zu erzeugen; und einer Mehrzahl von Schaltern, von denen jeder einen Zwei-Eingangs-Multiplexer umfaßt, und die in N-1 Arrays angeordnet sind, die selektiv entweder einen dividierten Wert G1 bis GN_1 oder Null zu einem Eingangssignal jedes Addierers koppeln.
  18. Programmierbarer Dividierer (10) gemäß Anspruch 17, bei dem die Addierer und Schalter unter Verwendung von CMOS-Schaltungen implementiert sind.
DE2001129033 2000-08-11 2001-06-15 Programmierbarer Dividierer und sein Dividier-Verfahren Expired - Fee Related DE10129033B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63753500A 2000-08-11 2000-08-11
US09/637,535 2000-08-11

Publications (2)

Publication Number Publication Date
DE10129033A1 DE10129033A1 (de) 2002-02-21
DE10129033B4 true DE10129033B4 (de) 2006-12-21

Family

ID=24556346

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001129033 Expired - Fee Related DE10129033B4 (de) 2000-08-11 2001-06-15 Programmierbarer Dividierer und sein Dividier-Verfahren

Country Status (3)

Country Link
JP (1) JP2002063027A (de)
DE (1) DE10129033B4 (de)
SG (1) SG99933A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665500A (en) * 1984-04-11 1987-05-12 Texas Instruments Incorporated Multiply and divide unit for a high speed processor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3127654B2 (ja) * 1993-03-12 2001-01-29 株式会社デンソー 乗除算器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665500A (en) * 1984-04-11 1987-05-12 Texas Instruments Incorporated Multiply and divide unit for a high speed processor

Also Published As

Publication number Publication date
DE10129033A1 (de) 2002-02-21
SG99933A1 (en) 2003-11-27
JP2002063027A (ja) 2002-02-28

Similar Documents

Publication Publication Date Title
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
EP0049216B1 (de) Rechenwerkeinheit mit einer parallelen bidirektionalen Schiebeeinrichtung
DE69506045T2 (de) Logikschaltung zur parallelen Multiplikation
DE3036747A1 (de) Binaere multiplikationszellenschaltung
DE3701599C2 (de)
DE4101004A1 (de) Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum
DE10013068C2 (de) Potenzierungsoperationsvorrichtung
DE102007056104A1 (de) Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE4345029A1 (de) Schaltkreis für diskrete Kosinustransformation
DE69229325T2 (de) Schaltung zur Detektierung der Position eines äussersten "1"-Bits in eine Binärzahl
DE1549508B2 (de) Anordnung zur uebertragsberechnung mit kurzer signallaufzeit
DE69715309T2 (de) Arithmetische Schaltung für die Berechnung der Quadratwurzel einer Summe von Quadraten
DE2830334C2 (de)
DE19653565A1 (de) Rekursiv aufgeteilter Addierer mit Übertrag-Auswahl
DE10129033B4 (de) Programmierbarer Dividierer und sein Dividier-Verfahren
DE69225638T2 (de) Abrundungsschaltung in einem Gleitkommamultiplizierer
DE69423073T2 (de) Schaltung und Verfahren zur Verschiebung und Abrundung
DE3688434T2 (de) Schneller bcd/binaer-addierer.
EP0629943B1 (de) Multiplizierer für reelle und komplexe Zahlen
DE2060590A1 (de) Digitalrechner

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: AVAGO TECHNOLOGIES GENERAL IP ( SINGAPORE) PTE. LT

8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: DILG HAEUSLER SCHINDELMANN PATENTANWALTSGESELLSCHA

8339 Ceased/non-payment of the annual fee