DE4126953C2 - Circuit arrangement for implementing the CORDIC algorithm - Google Patents

Circuit arrangement for implementing the CORDIC algorithm

Info

Publication number
DE4126953C2
DE4126953C2 DE19914126953 DE4126953A DE4126953C2 DE 4126953 C2 DE4126953 C2 DE 4126953C2 DE 19914126953 DE19914126953 DE 19914126953 DE 4126953 A DE4126953 A DE 4126953A DE 4126953 C2 DE4126953 C2 DE 4126953C2
Authority
DE
Germany
Prior art keywords
calculating
value
values
rule
following
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
DE19914126953
Other languages
German (de)
Other versions
DE4126953A1 (en
Inventor
Dirk Dipl Ing Timmermann
Helmut Dipl Ing Hahn
Bedrich Prof Hosticka
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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to DE19914126953 priority Critical patent/DE4126953C2/en
Publication of DE4126953A1 publication Critical patent/DE4126953A1/en
Application granted granted Critical
Publication of DE4126953C2 publication Critical patent/DE4126953C2/en
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/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/5446Methods 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 using crossaddition algorithms, e.g. CORDIC

Landscapes

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

Description

Die Erfindung betrifft Schaltungsanordnungen zur Durch­ führung des CORDIC-Algorithmus nach dem Oberbegriff der Patentansprüche 1 und 2.The invention relates to circuit arrangements for through management of the CORDIC algorithm according to the generic term of Claims 1 and 2.

Viele Bereiche der Signal-, Bild- und Datenverarbeitung er­ fordern die schnelle und kostengünstige Berechnung von arithmetischen Ausdrücken. Eine Entwicklung in diese Rich­ tung wird hauptsächlich durch den Einsatz immer aufwendige­ rer Algorithmen und den gleichzeitigen steigenden VLSI-Inte­ grationsgrad gefördert.Many areas of signal, image and data processing require the fast and inexpensive calculation of arithmetic expressions. A development in this direction processing becomes more and more complex, mainly due to the use algorithms and the simultaneous increasing VLSI integer degree of promotion.

Als ein geeignetes Verfahren zur Lösung derartiger arithme­ tikintensiver Aufgabenstellungen wird in der letzten Zeit verstärkt der CORDIC-Algorithmus eingesetzt. In diesem Zu­ sammenhang wird auf die Veröffentlichungen J. E. Volder, "The CORDIC Trigonometric Computing Technique", IRE Transactions on Electronic Computers, Vol. EC-8, Nr. 3, S. 330-334, Sept. 1959 und J. S. Walther, "A Unified Algorithm For Elementary Functions", Spring Joint Computer Conference (SJCC) 1971, S. 379-385, hingewiesen. Der CORDIC-Algorithmus zeichnet sich durch seine hohe Funktionalität bzw. die hohe Anzahl der bereitgestellten arithmetischen, speziell sogenannte ele­ mentare Funktionen und die dafür benötigten einfachen Grund­ operationen, nämlich Addition/Subtraktion und binäres Schie­ ben aus.As a suitable method for solving such arithmetic Tactically intensive tasks have been in the recent past the CORDIC algorithm is increasingly used. In this To is related to the publications J. E. Volder, "The CORDIC Trigonometric Computing Technique ", IRE Transactions on Electronic Computers, Vol. EC-8, No. 3, pp. 330-334, Sept. 1959 and J. S. Walther, "A Unified Algorithm For Elementary Functions ", Spring Joint Computer Conference (SJCC) 1971, p. 379-385. The CORDIC algorithm stands out due to its high functionality or the high number of provided arithmetic, especially so-called ele mentary functions and the simple reason needed for them operations, namely addition / subtraction and binary shooting ben out.

Durch die Fortschritte in der Integrationsdichte sind jetzt auch Realisierungen vollparalleler CORDIC-Arrays möglich, in denen die CORDIC-typische n-fache Durchführung von drei Ite­ rationsgleichungen (n = Datenwortbreite in Bit) in eine ma­ trixförmige Anordnung von drei n-Bit breiten Iterationsstu­ fen umgesetzt wird. Je nachdem, ob zwischen die einzelnen Stufen Register eingefügt werden oder nicht, spricht man von einer synchronen Pipeline oder einer asynchronen Array-Ar­ chitektur. Es ist davon auszugehen, daß diese Architekturen an Wichtigkeit zunehmen, weil mit ihnen entweder Systeme mit hoher Datendurchsatzrate oder geringer Latenzzeit in einer regulär strukturierten, VLSI-gerechten Weise aufgebaut wer­ den können. Eine ähnliche Entwicklung hat sich bereits bei der Implementierung von Multiplizierer-Arrays in Hoch­ leistungsanwendungen vollzogen, wo rekursive Anordnungen, obwohl günstiger bezüglich der Chipfläche, bereits keine Rolle mehr spielen.The advances in integration density are now fully parallel CORDIC arrays are also possible, in which the CORDIC typical n-fold implementation of three Ite equations (n = data word width in bits) into a ma triangular arrangement of three n-bit wide iteration steps  fen is implemented. Depending on whether between the individual Stages of registers are inserted or not, one speaks of a synchronous pipeline or an asynchronous array ar architecture. It is assumed that these architectures increase in importance because with them either systems with high data throughput rate or low latency in one who are structured in a regular, VLSI-compliant manner that can. A similar development has already occurred implementing multiplier arrays in high power applications where recursive orders, although cheaper in terms of chip area, none Play more role.

Im folgenden wird zunächst das bisherige Vorgehen anhand der üblichen Iterationsgleichungen beschrieben. Diese Gleichun­ gen lauten:In the following, the previous procedure based on the usual iteration equations are described. This equation are:

xi+1 = xii 2-i yi (1)x i + 1 = x ii 2 -i y i (1)

yi+1 = yi + σi 2-i xi (2)y i + 1 = y i + σ i 2 -i x i (2)

zi+1 = zii arctg (2-i) (3)z i + 1 = z ii arctg (2 -i ) (3)

wobei σi ε {-1, 1} die Drehrichtung der Iteration angibt. In der Betriebsart ROTATION bestimmt man σi aus dem Vorzeichen wodurch zi:where σ i ε {-1, 1} indicates the direction of rotation of the iteration. In the ROTATION mode, σ i is determined from the sign, whereby z i :

wodurch zi im Verlauf des Iterationsprozesses gegen Null getrieben wird. In der Betriebsart VECTORING bestimmt sich i aus dem Vorzeichen von yi, wodurch yi gegen Null getrieben wird:whereby z i is driven towards zero in the course of the iteration process. In VECTORING mode, i is determined from the sign of y i , which drives y i towards zero:

Normalerweise erfordert das CORDIC-Verfahren, für eine Ge­ nauigkeit von n Bit auch n Iterationen durchzuführen. Daraus resultiert, daß in einer Pipeline- oder Array-Architektur drei n-Bit Addierer/Subtrahierer für die Implementierung der Gleichungen (1) bis (3) n-mal, nämlich für n Iterationen, benötigt werden. In Fig. 2 ist eine Stufe bzw. Zeile eines solchen Arrays dargestellt.Normally, the CORDIC method requires n iterations to be carried out for an accuracy of n bits. As a result, in a pipeline or array architecture, three n-bit adders / subtractors are required n times for the implementation of equations (1) to (3), namely for n iterations. In FIG. 2, a stage or row is shown of such an array.

Der direkten Abbildung der iterativen CORDIC Gleichungen auf eine Pipeline- oder Array-Architektur steht entgegen, daß die Chipfläche dieser Architekturen proportional 3n² wächst, wobei mit n die Datenwortbreite in Bit bezeichnet wird. Die­ ser Zusammenhang hat derzeit nur nicht-rekursive Implemen­ tierungen von bis zu ca. 20 Bit möglich gemacht. Jede Ver­ ringerung der Chipflächenkomplexität ohne Einbußen an Ge­ schwindigkeit erscheint sinnvoll, weil in der digitalen Sig­ nalverarbeitung Wortbreiten bis ca. 40 Bit und speziell in der numerischen Datenverarbeitung bis zu 80 Bit auftreten.Direct mapping of the iterative CORDIC equations a pipeline or array architecture precludes that the chip area of these architectures grows proportionally 3n², where n denotes the data word width in bits. The This relationship currently only has non-recursive implemen ts up to approx. 20 bits possible. Every ver reduction of chip area complexity without loss of Ge Speed seems reasonable because in the digital sig nalprocessing word widths up to approx. 40 bits and especially in numerical data processing up to 80 bits occur.

Verglichen mit anderen Methoden steigt der Hardwareaufwand beim CORDIC-Verfahren besonders stark an, weil drei Daten­ pfade für die Realisierung der x-, y- und z-Iterationsglei­ chungen nötig sind. Wie bereits erwähnt, verhält sich damit die Chipfläche proportional 3n².Compared to other methods, the hardware expenditure increases particularly strong in the CORDIC method because three data paths for the realization of the x, y and z iteration equation necessary. As already mentioned, this is the case the chip area proportionally 3n².

Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsan­ ordnung der eingangs genannten Art für die Durchführung des CORDIC-Algorithmus anzuge­ ben, die einen geringeren Bedarf an Fläche für die Implementierung bei einem Halbleiter-Chip benötigt.The invention has for its object a circuit order of the type mentioned at the beginning for the implementation of the CORDIC algorithm ben who need less space for the Implementation required for a semiconductor chip.

Diese Aufgabe wird erfindungsgemäß durch die Schaltungs­ anordnung mit den in den Ansprüchen 1 oder 2 angegebenen Merkmalen gelöst.This object is achieved by the circuit arrangement with those specified in claims 1 or 2 Features resolved.

Der Erfindung liegt die Erkenntnis zugrunde, daß die dritte Einrichtung für die iterative Berechnung der z-Werte um etwa zwei Drittel der Stufen gekürzt werden kann, indem die entfallenden Stufen durch einen Subtrahierer oder einen Addierer und einen Subtrahierer ersetzt werden.The invention is based on the knowledge that the third Setup for the iterative calculation of the z values by about two thirds of the levels can be shortened by the  steps by a subtractor or a Adders and a subtractor are replaced.

Erfindungsgemäß ist gemäß einer ersten Schaltungsalternative vorgesehen, daß die dritte Einrichtung (Z) zur Berechnung des dritten Endwertes zn According to the invention, according to a first circuit alternative, the third device (Z) for calculating the third final value z n

  • - einerseits einen ersten Einrichtungsteil mit j Stufen zur Be­ rechnung des dritten Wertes zj mittels folgender Ite­ rationsvorschrift umfaßt: zi+1 = zii · arctg (2-i), für i = 1, . . ., j;wobei j die kleinste ganze Zahl größer oder gleich n/3 ist; und- On the one hand comprises a first piece of equipment with j stages for calculating the third value z j using the following iteration rule: z i + 1 = z ii · arctg (2 -i ), for i = 1,. . ., j; where j is the smallest integer greater than or equal to n / 3; and
  • - andererseits einen zweiten Einrichtungsteil umfaßt, der den dritten Endwert zn aufgrund des Wertes zj und der Werte σi für die j-te bis (n-1)-te Stufe auf Grund folgender Vorschrift berechnet: zn = zj - A + B;mit - On the other hand, includes a second piece of equipment that calculates the third end value z n on the basis of the value z j and the values σ i for the jth to (n-1) th stage on the basis of the following rule: z n = z j - A + B; with

Erfindungsgemäß ist gemäß einer zweiten Schaltungsalternati­ ve vorgesehen, daß die dritte Einrichtung (Z) zur Berechnung des dritten Endwertes zn According to the invention, according to a second circuit alternative, the third device (Z) for calculating the third final value z n

  • - einerseits einen ersten Einrichtungsteil mit j Stufen zur Be­ rechnung des dritten Wertes zj mittels folgender Ite­ rationsvorschrift umfaßt: zi+1 = zii · arctg (2-i), für i = 1, . . ., j;wobei j die kleinste ganze Zahl größer oder gleich n/3 ist; und- On the one hand comprises a first piece of equipment with j stages for calculating the third value z j using the following iteration rule: z i + 1 = z ii · arctg (2 -i ), for i = 1,. . ., j; where j is the smallest integer greater than or equal to n / 3; and
  • - andererseits einen zweiten Einrichtungsteil umfaßt, der den dritten Endwert zn aufgrund der Werte zj und der Werte σi für die i-te bis n-te Stufe aufgrund folgender Vor­ schrift berechnet: zn = zj - zt;mit mit - On the other hand, includes a second piece of equipment that calculates the third end value z n on the basis of the values z j and the values σ i for the i-th to n-th stage on the basis of the following regulation: z n = z j - z t ; With

Aufgrund der Erfindung ist es möglich, die Chipfläche bzw. den Implementierungsaufwand für die z-Iterationsgleichung um ca. 2/3 zu verringern. Dies führt damit zu einer gesamten (Chipflächen-)Einsparung von fast 20%, wobei praktisch kein Geschwindigkeitsverlust auftritt. Der Aufwand verhält sich dann nur noch proportional zu 2,5n².Because of the invention, it is possible to the implementation effort for the z iteration equation decrease about 2/3. This leads to an overall (Chip area) savings of almost 20%, but practically none Loss of speed occurs. The effort behaves then only proportional to 2.5n².

Vorteilhafte Weiterbildungen sind in den abhängigen Ansprüchen angegeben.Advantageous further developments are in the dependent Claims specified.

Der Erfindungsgegenstand wird anhand eines Ausführungsbei­ spiels unter Bezugnahme auf die Zeichnung beschrieben. Es zeigen:The subject of the invention is based on an example game described with reference to the drawing. It demonstrate:

Fig. 1 eine erfindungsgemäße Schaltungsanordnung zur Durchführung des CORDIC-Algorithmus; und Fig. 1 shows a circuit arrangement of the invention for performing the CORDIC-algorithm; and

Fig. 2 eine Stufe eines CORDIC-Arrays bei der Schaltungsanordnung gemäß Fig. 1. FIG. 2 shows a stage of a CORDIC array in the circuit arrangement according to FIG. 1.

Es folgen nun Betrachtungen zur Gleichung (3) für die z- Iteration.Considerations for equation (3) for the z- Iteration.

zi+1 = zii arctg (2-i) (3)z i + 1 = z ii arctg (2 -i ) (3)

In der Gleichung (3) wird in der (i+1)-ten Iteration vom Wert zi die n-Bit breite Konstante arctg (2-i) subtrahiert bzw. addiert.In equation (3) the n-bit constant arctg (2 -i ) is subtracted or added in the (i + 1) th iteration from the value z i .

Der Erfindung liegt die Erkenntnis zugrunde, daß bei der iterativen Berechnung von zi nach einer definierten Anzahl von Iterationen die folgenden Additionen/Subtraktionen mit sehr viel geringerem Aufwand substituiert werden können.The invention is based on the finding that, in the iterative calculation of z i after a defined number of iterations, the following additions / subtractions can be substituted with much less effort.

Die arctg-Funktion kann als Reihenentwicklung mit einem Fehler kleiner gleich 2-n folgendermaßen dargestellt werden:The arctg function can be represented as a series development with an error less than or equal to 2 -n as follows:

arctg (2-i) = 2-i-(1/3)-3i + . . . = 2-i für i < n/3 (4)arctg (2 -i ) = 2 -i - (1/3) -3i +. . . = 2 -i for i <n / 3 (4)

Die Gleichung (3) kann daher für i < n/3 geschrieben werden als:Equation (3) can therefore be written for i <n / 3 when:

zi+1 = zii 2-i (5)z i + 1 = z ii 2 -i (5)

bzw. mit j als der kleinsten ganzzahligen Zahl größer oder gleich n/3:or with j as the smallest integer greater or equal to n / 3:

Praktisch bedeutet die Gleichung (6), daß der gesuchte End­ wert zn der Iteration direkt aus zj durch Addition/Subtrak­ tion von (n-j) einstelligen Binärwörtern berechnet werden kann. Beispielsweise für j = 3, n = 8, σ₃ = 1, σ₄ = -1, σ₅ = -1, σ₆ = 1, σ₇ = -1 giltIn practice, equation (6) means that the desired end value z n of the iteration can be calculated directly from z j by adding / subtracting (nj) single-digit binary words. For example, for j = 3, n = 8, σ₃ = 1, σ₄ = -1, σ₅ = -1, σ₆ = 1, σ₇ = -1

z₈ = z₃-2-3 + 2-4 + 2-5-2-6 + 2-7 z₈ = z₃-2 -3 + 2 -4 + 2 -5 -2 -6 + 2 -7

Diese (n-j)-einstelligen Binärwörter können in zwei n-stel­ lige Binärwörter zusammengefaßt werden, und zwar die Summan­ den mit positiven Vorzeichen in das eine Datenwort und die Summanden mit den negativen Vorzeichen in das andere.These (n-j) one-digit binary words can be divided into two nths only binary words are summarized, namely the Summan the one with a positive sign in the one data word and the Summands with the negative signs in the other.

Die Umwandlung der (n-j) Additionen der Gleichung (6) in ei­ ne Addition und eine Subtraktion beschreibt der folgende Ausdruck:The conversion of the (n-j) additions of equation (6) into ei The following describes ne addition and subtraction Expression:

mitWith

Angewandt auf das vorhergehende Beispiel ergibt sich:Applied to the previous example:

z₈ = z₃ - 0.0010010₂ + 0.0001101₂z₈ = z₃ - 0.0010010₂ + 0.0001101₂

Also können ca. 2/3 der Iterationen im z-Pfad auf eine Addi­ tion und eine Subtraktion reduziert werden. Für die prakti­ sche Ausführung bei einer Schaltungsanordnung bedeutet dies den Wegfall des z-Pfades nach n/3 Iterationen.So about 2/3 of the iterations in the z path can be on an Addi tion and subtraction can be reduced. For the practical cal execution in a circuit arrangement this means the loss of the z path after n / 3 iterations.

Es ist noch auszuführen, auf welche Weise die σi bestimmt werden. Im Falle der Betriebsart VECTORING bleibt es, wie bisher, bei der Herleitung aus den Vorzeichen von yi. Bei der ROTATION kann jedoch nicht mehr das Vorzeichen der zi ermittelt werden, weil keine Iteration durchgeführt wird. Man kann dann jedoch das Verfahren der Drehrichtungsvor­ hersage verwenden, wie es in der Dissertation D. Timmermann, "CORDIC Algorithmen, Architekturen und monolithische Realisierungen mit Anwendungen in der Bildverarbeitung", Gesamthochschule Universität Duisburg, 1990, S. 157-162 beschrieben ist. Dabei werden die σi direkt aus den Bits von zj durch eine Umkodierung generiert, wie es im folgenden be­ schrieben wird.It remains to be seen how the σ i are determined. In the VECTORING operating mode, the derivation from the signs of y i remains as before. However, the sign of the z i can no longer be determined in the ROTATION because no iteration is carried out. However, one can then use the method of predicting the direction of rotation, as described in the dissertation D. Timmermann, "CORDIC Algorithms, Architectures and Monolithic Realizations with Applications in Image Processing", Gesamthochschule Universität Duisburg, 1990, pp. 157-162. The σ i are generated directly from the bits of z j by recoding, as will be described below.

Betrachten wir den Zustand zu Beginn der j-ten Iteration. Der Wert zj im z-Pfad ist gegeben durch seine binäre Dar­ stellung:Let us consider the state at the beginning of the jth iteration. The value z j in the z path is given by its binary representation:

Andererseits wird durch den folgenden Iterationsprozeß nach Gleichung (3) der Wert zj in arctg (2-i)-Terme zerlegt. Außerdem ist zn im Modus ROTATION definitionsgemäß kleiner gleich 2-n, so daß aus Gleichung (6) mit einem Fehler kleiner 2-n folgt:On the other hand, the following iteration process according to equation (3) divides the value z j into arctg (2 -i ) terms. In addition, by definition, z n in ROTATION mode is less than or equal to 2 -n , so that from equation (6) it follows with an error less than 2 -n :

Nach Gleichung (4) ist arctg (2-i) = 2-i mit einem Fehler kleiner gleich 2-n für i < n/3 belastet. Der Vergleich der beiden letzten Gleichungen und der zulässigen Werte für Zi und σi zeigt dann, daß die gesuchten σi aus den Bits Zi von zj durch eine Umkodierung gewonnen werden können. Diese Um­ kodierung wird mit Hilfe folgender Tabelle vorgenommen:According to equation (4) arctg (2 -i ) = 2 -i is loaded with an error of less than or equal to 2 -n for i <n / 3. The comparison of the last two equations and the permissible values for Z i and σ i then shows that the sought σ i can be obtained from the bits Z i of z j by recoding. This encoding is carried out using the following table:

Für negative Zahlen zi sind die σi zu invertieren. Das folgende Beispiel verdeutlicht den Konvertierungsvorgang.For negative numbers z i , invert the σ i . The following example illustrates the conversion process.

Mit dieser Umkodierung erhält man also alle gesuchten σj bis σn-1 direkt aus zj.With this recoding, all of the sought σ j to σ n-1 are obtained directly from z j .

Eine Schaltung, die den Erfindungsgegenstand umfaßt, ist in der Fig. 1 schematisch dargestellt. Die großen mit X, Y bzw. Z bezeichneten Blöcke enthalten die Addierer/Subtrahierer für den x- ,y- und z-Pfad. Im z-Pfad werden nur noch n/3 statt wie bisher n Addierer benötigt. Mit U ist ein Umkodie­ rer bezeichnet, der die weiter oben angegebene Umkodie­ rungs-Tabelle implementiert und im Modus ROTATION die σi aus den Bits von zj gewinnt. Im Modus VECTORING werden die σi wie üblich aus den Vorzeichen von yi bestimmt und gemäß Gleichung (7) in zwei Datenwörter zusammengefaßt und dann mit dem Addierer A und dem Subtrahierer S zur Berechnung von zn genutzt.A circuit comprising the subject of the invention is shown schematically in FIG. 1. The large blocks labeled X, Y and Z contain the adders / subtractors for the x, y and z paths. In the z path, only n / 3 are required instead of n adders as before. U is a recoder that implements the recoding table given above and in the ROTATION mode obtains the σ i from the bits of z j . In the VECTORING mode, the σ i are determined as usual from the signs of y i and, according to equation (7), combined into two data words and then used with the adder A and the subtractor S to calculate z n .

Bei den vorstehenden Ausführungen wurde teilweise davon aus­ gegangen, daß sogenannte nichtredundante Addierer zur Reali­ sierung der Iterationsgleichungen eingesetzt werden. Im Rah­ men der Erfindung ist es auch möglich, redundante Addierer (Carry-Save (vergleiche R. Künemund, H. Söldner, S. Wohlle­ ben und T. Noll, "CORDIC Processor With Carry-Save Architec­ ture", Proceedings of 16th European Solid-State Circuits Conference, Grenoble, France, S. 193-196, Sept. 1990); Redundant Binary (vergleiche die Veröffentlichung von H. Yoshimura, T. Nakanishi und H. Tamauchi "A 50 MHz CMOS Geometrical Mapping Processor", IEEE Digest of Technical Papers, ISSCC′88, S. 162-163, Febr. 1988 )) einzusetzen. Im Rahmen der Erfindung lassen sich auch Schaltungsanordnungen für die Durchführung des CORDIC-Algorithmus bei anderen Koordinatensystemen ausführen, in denen der CORDIC-Algorithmus anwendbar ist, was gemeinhin mit dem Parameter m angegeben wird. Von der Erfindung werden auch die Fälle für m=0 und m= -1 umfaßt.In the above, this was partially assumed gone that so-called non-redundant adders to Reali the iteration equations can be used. In the frame According to the invention it is also possible to use redundant adders (Carry-Save (compare R. Künemund, H. Söldner, S. Wohlle ben and T. Noll, "CORDIC Processor With Carry-Save Architec ture ", Proceedings of 16th European Solid-State Circuits Conference, Grenoble, France, pp. 193-196, Sept. 1990); Redundant Binary (compare the publication of H. Yoshimura, T. Nakanishi and H. Tamauchi "A 50 MHz CMOS Geometrical Mapping Processor ", IEEE Digest of Technical Papers, ISSCC'88, pp. 162-163, Feb. 1988)). in the Circuit arrangements can also be used within the scope of the invention for performing the CORDIC algorithm on others Execute coordinate systems in which the CORDIC algorithm is applicable, which is commonly associated with the Parameter m is specified. From the invention too includes the cases for m = 0 and m = -1.

Der Addierer A und der Subtrahierer B in der Fig. 1 können zu einem Subtrahierer zusammengefaßt werden, was den Aufwand weiter verringert. Das folgt aus der Tatsache, daß Gleichung (7) auch wie folgt beschrieben werden kann:The adder A and the subtractor B in FIG. 1 can be combined to form a subtractor, which further reduces the outlay. This follows from the fact that equation (7) can also be described as follows:

Der eingeklammerte Term, hier mit zt bezeichnet, kann ohne Subtraktion berechnet werden, denn es gilt in einer n Bit breiten ZweierkomplementdarstellungThe bracketed term, here designated z t , can be calculated without subtraction, because it applies in an n-bit two's complement representation

Der Term zt läßt sich also einfach aus den σ′i bestimmen.The term z t can therefore easily be determined from the σ ′ i .

Claims (6)

1. Schaltungsanordnung zur Durchführung des CORDIC-Algo­ rithmus für die iterative Berechnung der x-, y- und z-Werte bei einer Datenwortbreite von n Bit, mit
  • - einer ersten Einrichtung (X) mit n Stufen zur Berech­ nung eines ersten Endwertes xn mittels folgender, für jede Stufe geltenden Iterationsvorschrift: xi+1 = xii·2-i·yi, für i = 1, . . ., n;
  • - einer zweiten Einrichtung (Y) mit n Stufen zur Berech­ nung eines zweiten Endwertes yn mittels folgender, für jede Stufe geltenden Iterationsvorschrift: yi+1 = yi + σi 2-i xi, für i = 1, . . ., n;und
  • - einer dritten Einrichtung (Z) zur Berechnung eines dritten Endwertes zn mit wenigstens einer Stufe zur Berechnung des Wertes zi mittels folgender Iterations­ vorschrift: zi+1 = zii arctg (2-i);wobei σi ε {-1, 1}, die Drehrichtung der Iteration angibt,
1. Circuit arrangement for performing the CORDIC algorithm for the iterative calculation of the x, y and z values with a data word width of n bits, with
  • a first device (X) with n stages for calculating a first end value x n using the following iteration rule, which applies to each stage: x i + 1 = x ii · 2 -i · y i , for i = 1, . . ., n;
  • - A second device (Y) with n stages for calculating a second end value y n by means of the following iteration rule that applies to each stage: y i + 1 = y i + σ i 2 -i x i , for i = 1,. . ., n; and
  • - a third device (Z) for calculating a third final value z n with at least one step for calculating the value z i by means of the following iteration rule: z i + 1 = z ii arctg (2 -i ); where σ i ε {-1, 1}, which indicates the direction of rotation of the iteration,
dadurch gekennzeichnet, daß die dritte Einrichtung (Z) zur Berechnung des drit­ ten Endwertes zn
  • - einerseits einen ersten Einrichtungsteil mit j Stufen zur Berechnung des dritten Wertes zj mittels folgender Iterationsvorschrift umfaßt: zi+1 = zii·arctg (2-i), für i = 1, . . ., j;wobei j die kleinste ganze Zahl größer oder gleich n/3 ist; und
  • - andererseits einen zweiten Einrichtungsteil umfaßt, der den dritten Endwert Zn aufgrund des Wertes zj und der Werte σi für die j-te bis (n-1)-te Stufe aufgrund folgender Vorschrift berechnet: zn = zj-A + B;mit
characterized in that the third device (Z) for calculating the third final value z n
  • - On the one hand comprises a first part of the device with j steps for calculating the third value z j using the following iteration rule: z i + 1 = z ii · arctg (2 -i ), for i = 1,. . ., j; where j is the smallest integer greater than or equal to n / 3; and
  • - On the other hand, includes a second device part, which calculates the third end value Zn based on the value z j and the values σ i for the jth to (n-1) th stage based on the following rule: z n = z j -A + B ;With
2. Schaltungsanordnung zur Durchführung des CORDIC-Algo­ rithmus für die iterative Berechnung der x-, y- und z-Werte bei einer Datenwortbreite von n Bit, mit
  • - einer ersten Einrichtung (X) mit n Stufen zur Berech­ nung eines ersten Endwertes xn mittels folgender, für jede Stufe geltenden Iterationsvorschrift: xi+1 = xii·2-i·yi, für i = 1, . . ., n;
  • - einer zweiten Einrichtung (Y) mit n Stufen zur Berech­ nung eines zweiten Endwertes yn mittels folgender, für jede Stufe geltenden Iterationsvorschrift: yi+1 = yj + σi 2-i xi, für i = 1, . . . , n;und
  • - einer dritten Einrichtung (Z) zur Berechnung eines dritten Endwertes zn mit wenigstens einer Stufe zur Berechnung des Wertes zi mittels folgender Iterations­ vorschrift: zi+1 = zii arctg (2-i);wobei σi ε (-1, 1) die Drehrichtung der Iteration angibt,
2. Circuit arrangement for performing the CORDIC algorithm for the iterative calculation of the x, y and z values with a data word width of n bits, with
  • a first device (X) with n stages for calculating a first end value x n using the following iteration rule, which applies to each stage: x i + 1 = x ii · 2 -i · y i , for i = 1, . . ., n;
  • - A second device (Y) with n stages for calculating a second end value y n using the following iteration rule, which applies to each stage: y i + 1 = y j + σ i 2 -i x i , for i = 1,. . . , n; and
  • - a third device (Z) for calculating a third final value z n with at least one step for calculating the value z i by means of the following iteration rule: z i + 1 = z ii arctg (2 -i ); where σ i ε (-1, 1) indicates the direction of rotation of the iteration,
dadurch gekennzeichnet, daß die dritte Einrichtung (Z) zur Berechnung des drit­ ten Endwertes zn
  • - einerseits einen ersten Einrichtungsteil mit j Stufen zur Berechnung des dritten Wertes zj mittels folgender Iterationsvorschrift umfaßt: zi+1 = zii·arctg (2-i), für i = 1, . . . , 3;wobei j die kleinste ganze Zahl größer oder gleich n/3 ist; und
  • - andererseits einen zweiten Einrichtungsteil umfaßt, der den dritten Endwert zn aufgrund der Werte zj und der Werte σi für die i-te bis n-te Stufe aufgrund folgender Vorschrift berechnet: zn = zj - zt;mit mit
characterized in that the third device (Z) for calculating the third final value z n
  • - On the one hand comprises a first part of the device with j steps for calculating the third value z j using the following iteration rule: z i + 1 = z ii · arctg (2 -i ), for i = 1,. . . , 3; where j is the smallest integer greater than or equal to n / 3; and
  • - On the other hand, includes a second device part, which calculates the third end value z n on the basis of the values z j and the values σ i for the i-th to n-th stage on the basis of the following rule: z n = z j - z t ; With
3. Schaltungsanordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die dritte Einrichtung einen dritten Einrichtungs­ teil umfaßt, der in einer Betriebsart VECTORING die Werte σi folgendermaßen aufgrund des Vorzeichens der Werte yi bestimmt: 3. Circuit arrangement according to claim 1 or 2, characterized in that the third device comprises a third device part which, in an operating mode VECTORING, determines the values σ i as follows on the basis of the sign of the values y i : 4. Schaltungsanordnung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet,
daß die dritte Einrichtung einen vierten Einrichtungs­ teil umfaßt, der in einer Betriebsart ROTATION die Werte σi aufgrund der folgenden Umkodierungsvorschrift aus den Bits Zi des Wertes zj bestimmt: mit Zi ε {0, 1}; und
daß die dritte Einrichtung die Werte σi für negative Werte von zj invertiert.
4. Circuit arrangement according to one of claims 1 to 3, characterized in that
that the third device comprises a fourth device part which, in a ROTATION mode of operation, determines the values σ i based on the following recoding rule from the bits Z i of the value z j : With Z i ε {0, 1}; and
that the third device inverts the values σ i for negative values of z j .
DE19914126953 1991-08-14 1991-08-14 Circuit arrangement for implementing the CORDIC algorithm Expired - Fee Related DE4126953C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19914126953 DE4126953C2 (en) 1991-08-14 1991-08-14 Circuit arrangement for implementing the CORDIC algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19914126953 DE4126953C2 (en) 1991-08-14 1991-08-14 Circuit arrangement for implementing the CORDIC algorithm

Publications (2)

Publication Number Publication Date
DE4126953A1 DE4126953A1 (en) 1993-02-18
DE4126953C2 true DE4126953C2 (en) 1995-04-13

Family

ID=6438331

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19914126953 Expired - Fee Related DE4126953C2 (en) 1991-08-14 1991-08-14 Circuit arrangement for implementing the CORDIC algorithm

Country Status (1)

Country Link
DE (1) DE4126953C2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19950577A1 (en) * 1999-10-20 2001-05-10 Siemens Ag Complex CORDIC-like procedures for signal processing tasks
DE10164462A1 (en) * 2001-12-20 2003-07-10 Ihp Gmbh CORDIC unit

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4896287A (en) * 1988-05-31 1990-01-23 General Electric Company Cordic complex multiplier
DE59010674D1 (en) * 1990-04-20 1997-04-17 Siemens Ag CORDIC processor for vector rotations in carry-save architecture

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19950577A1 (en) * 1999-10-20 2001-05-10 Siemens Ag Complex CORDIC-like procedures for signal processing tasks
DE19950577C2 (en) * 1999-10-20 2002-08-22 Siemens Ag Complex CORDIC procedure for signal processing tasks as well as radio communication system for the implementation of the procedure
DE10164462A1 (en) * 2001-12-20 2003-07-10 Ihp Gmbh CORDIC unit
DE10164462B4 (en) * 2001-12-20 2007-04-26 IHP GmbH - Innovations for High Performance Microelectronics/ Institut für innovative Mikroelektronik GmbH CORDIC unit

Also Published As

Publication number Publication date
DE4126953A1 (en) 1993-02-18

Similar Documents

Publication Publication Date Title
DE69131458T2 (en) Hardware arrangement for the addition and subtraction of floating point numbers
DE19983175B4 (en) Method, processor and device for floating point operations and format conversion operations
DE4302898C2 (en) Arithmetic arithmetic unit with accumulation function
DE102018130084A1 (en) Dynamic quantization of neural networks
DE68928376T2 (en) DEVICE FOR MULTIPLICATING, DIVIDING AND DRAWING THE SQUARE ROOT
DE68927121T2 (en) Absolute value calculation circuit with a single adder
DE1956209C3 (en) Multiplier
DE69130623T2 (en) High base number divider
DE3926876C2 (en) Circuit and method for predicting a sticky bit value in floating point multiplication
DE69032890T2 (en) Method and apparatus for performing the square root function using a rectangular aspect ratio multiplier
DE102016205020A1 (en) SIMD realization of template codes
DE2352686B2 (en) Decimal parallel adder / subtracter
EP0628183B1 (en) Circuit arrangement for the digital multiplying of integer numbers
DE2826773A1 (en) PROCEDURE AND CIRCUIT ARRANGEMENT FOR DETERMINING THE VALUE OF NUMBERS IN ARITHMETIC OPERATIONS WITH DECIMAL CALCULATOR
DE4126953C2 (en) Circuit arrangement for implementing the CORDIC algorithm
DE4019646A1 (en) DEVICE FOR REAL-TIME MULTIPLICATION IN 2-COMPLEMENT DISPLAY IN A DIGITAL SIGNAL PROCESSOR SYSTEM AND A METHOD FOR THIS
DE69030169T2 (en) High performance adder with carry prediction
DE3434777C2 (en)
EP1499954A2 (en) Device and method for calculating a result of a modular multiplication
DE3447634C2 (en)
DE69230520T2 (en) Method and arrangement for generating sum information / rounding control signal
DE69905833T2 (en) high-speed multiplier
DE3750756T2 (en) Execution of error detection using an unused modulo-m code.
DE69327421T2 (en) Arrangement and method for parallelized size comparison of digital data
DE1449564C3 (en) Computing device for subtracting several operands or adding them by using complementary values of one of the operands

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee