PatentDe  


Dokumentenidentifikation DE10129033B4 21.12.2006
Titel Programmierbarer Dividierer und sein Dividier-Verfahren
Anmelder Avago Technologies General IP (Singapore) Pte. Ltd., Singapore, SG
Erfinder Shepston, Shad R, Firestone, Col., US;
Rearick, Jeff, Fort Collins, Col., US;
Rohrbaugh, John G., Fort Collins, Col., US
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Anmeldedatum 15.06.2001
DE-Aktenzeichen 10129033
Offenlegungstag 21.02.2002
Veröffentlichungstag der Patenterteilung 21.12.2006
Veröffentlichungstag im Patentblatt 21.12.2006
IPC-Hauptklasse G06F 7/52(2006.01)A, F, I, 20060309, B, H, DE

Beschreibung[de]

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 Gebiet 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 x) 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 = &Sgr;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 konstruiert 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.


Anspruch[de]
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.
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. 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. Programmierbarer Dividierer (10) gemäß Anspruch 3, bei dem jeder Schalter einen Zwei-Eingangs-Multiplexer umfaßt. 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. 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. 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. 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.
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. 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. 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. 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. Verfahren gemäß Anspruch 12, bei dem jeder Schalter einen Zwei-Eingangs-Multiplexer umfaßt. 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. 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. 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. 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.
Programmierbarer Dividierer (10) gemäß Anspruch 17, bei dem die Addierer und Schalter unter Verwendung von CMOS-Schaltungen implementiert sind.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com