JP2546916B2 - Trigonometric function operation unit - Google Patents

Trigonometric function operation unit

Info

Publication number
JP2546916B2
JP2546916B2 JP2233073A JP23307390A JP2546916B2 JP 2546916 B2 JP2546916 B2 JP 2546916B2 JP 2233073 A JP2233073 A JP 2233073A JP 23307390 A JP23307390 A JP 23307390A JP 2546916 B2 JP2546916 B2 JP 2546916B2
Authority
JP
Japan
Prior art keywords
constant
value
register
rom
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2233073A
Other languages
Japanese (ja)
Other versions
JPH04112320A (en
Inventor
雅一 千葉
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.)
NIPPON DENKI AISHII MAIKON SHISUTEMU KK
Original Assignee
NIPPON DENKI AISHII MAIKON SHISUTEMU KK
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 NIPPON DENKI AISHII MAIKON SHISUTEMU KK filed Critical NIPPON DENKI AISHII MAIKON SHISUTEMU KK
Priority to JP2233073A priority Critical patent/JP2546916B2/en
Publication of JPH04112320A publication Critical patent/JPH04112320A/en
Application granted granted Critical
Publication of JP2546916B2 publication Critical patent/JP2546916B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は三角関数演算装置に関する。The present invention relates to a trigonometric function operation device.

〔従来の技術〕[Conventional technology]

従来、三角関数を演算する方法としては、次式のテイ
ラー級数展開即ち、 sinθ=θ−θ3/3!+θ5/5!−θ7/7!+ ……(1) を用いるか、または、連分数展開およびチェビシェフ級
数展開等による有理関数近似によって求める方法が用い
られている。
Conventionally, as a method for calculating the trigonometric function, the following equation Taylor series expansion That, sinθ = θ-θ 3/ 3! + Θ 5/5! -Θ 7/7! + Or using ...... a (1), or , Continuous fraction expansion, Chebyshev series expansion, etc. are used to obtain rational function approximation.

然しながら、上記の何れの方法においても、多くの乗
算もしくは除算を必要とするために、演算時間が長くな
り、しかも演算速度の点において満足されてないという
問題がある。
However, in any of the above methods, there is a problem that the calculation time becomes long because many multiplications or divisions are required, and the calculation speed is not satisfied.

上記の問題点に対する方策としては、マイクロプログ
ラム制御の計算機に適合する三角関数演算方式として、
CORDIC(Cordinate Rotation Digita Computer)のアル
ゴリズムがある。このCORTICのアルゴリズムにおいて
は、加算、減算および右シフトによって演算を行うこと
ができるため、高速の乗算器を具備しない計算機におい
ても、有効であることが知られている。
As a measure against the above problem, as a trigonometric function operation method suitable for a microprogram-controlled computer,
There is a CORDIC (Cordinate Rotation Digita Computer) algorithm. It is known that this CORTIC algorithm is effective even in a computer that does not have a high-speed multiplier because it can perform operations by addition, subtraction, and right shift.

前記CORDICのアルゴリズムによる減算原理は、大要下
記のとうりである。
The principle of subtraction by the CORDIC algorithm is as follows.

2進法においてn(正整数)桁の精度のsinθおよびc
osθを求める場合、角度θは、定数γと数列{ak}を
用いて、次式により表わされる。
In the binary system, n (positive integer) digit precision sin θ and c
When obtaining osθ, the angle θ is expressed by the following equation using the constant γ k and the sequence {a k }.

θ=a0×γ+a1×γ−a2×γ+…… +an-1×γn-1+ε ……(2) 但し、γ=arctan(2-k) ……(3) ak={+1,−1} ……(4) 数列{ak}は、引離し法の除算と類似した方法であ
り、一意に決定することができる。なお、この数列
{ak}を決定する過程は疑似除算と呼ばれる。
θ = a 0 × γ 0 + a 1 × γ 1 −a 2 × γ 2 + ... + a n-1 × γ n-1 + ε (2) where γ k = arctan (2 -k ) ...... ( 3) ak = {+1, -1} (4) The sequence {a k } is a method similar to the division in the separation method and can be uniquely determined. The process of determining this sequence {a k } is called pseudo division.

従って、sinθおよびcosθは、 Rk=1/(1+2-2k ……(5) と置いた場合に、加工定理により下記のようにして求め
られる。
Therefore, sin θ and cos θ can be obtained as follows by the processing theorem when R k = 1 / (1 + 2 −2k ) 1 ] 2 (5).

ak=+1のときは、φk+1=φ+γ cos(φk+1)=Rk(cosφ−2-k×sinφ) ……(6) sin(φk+1)=Rk(sinφ−2-k×cosφ) ……(7) ak=−1のときは、φk+1=φ−γ cos(φk+1)=Rk(cosφ−2-k×sinφ) ……(8) sin(φk+1)=Rk(sinφ−2-k×cosφ) ……(9) となる。ここにおいて、R0を初期値として、kの値を増
加させるように、以上の演算操作を繰返し実行すること
によりφをθに近付けてゆく。このように操作を介し
て、sinθおよびcosθが求められる。この演算過程は疑
似乗算と呼ばれる。
When a k = + 1, φ k + 1 = φ k + γ k cos (φ k + 1 ) = R k (cos φ k −2 −k × sin φ k ) ... (6) sin (φ k + 1 ) = R k (sinφ k -2 -k × cosφ k) ...... (7) a k = -1 when the, φ k + 1 = φ k -γ k cos (φ k + 1) = R k (cosφ k -2 -k × sinφ k) ...... (8) sin (φ k + 1) = R k (sinφ k -2 -k × cosφ k) a ... (9). Here, with R 0 as an initial value, φ k is brought closer to θ by repeatedly executing the above arithmetic operation so as to increase the value of k . In this way, sin θ and cos θ are obtained through the operation. This calculation process is called pseudo multiplication.

以下に、数式を用いて、CORDICのアルゴリズムを用い
た三角関数の浮動小数点演算原理を説明する。
The following is a description of the floating-point operation principle of trigonometric functions using the CORDIC algorithm, using mathematical expressions.

[1]入力データである角度をθ(0<θ<π/2)とす
る。
[1] The angle that is the input data is θ (0 <θ <π / 2).

[2]上記角度θを、 θ=2-i×Θ(1≦Θ<2、iは整数)として、i(指
数部)およびΘ(仮数部)を決定(浮動小数点化)し、
Vi=Θを初期値とする。
[2] Assuming that the angle θ is θ = 2 −i × Θ (1 ≦ Θ <2, i is an integer), i (exponent part) and Θ (mantissa part) are determined (floating point),
Let V i = Θ be the initial value.

[3]k=i、i+1、i+2、…、m−1(mは正整
数)に対して、下記の[4]を反復する。
[3] The following [4] is repeated for k = i, i + 1, i + 2, ..., M-1 (m is a positive integer).

[4]Vk≧0ならば、ak=+1 Vk<0ならば、ak=−1として、 Vk+1=2×(Vk−ak×Γ) ……(10) 但し、 Γ=2k-1×arctan(2-k) ……(11) [5]Xm=Vm×(1/K)、Ym=Vm ……(12) を初期値とする。ここで、 を満たす定数である。[4] If V k ≧ 0, then if a k = + 1 V k <0, then set a k = −1 and V k + 1 = 2 × (V k −a k × Γ k ) ... (10) However, Γ k = 2 k-1 × arctan (2 -k ) ... (11) [5] X m = V m × (1 / K), Y m = V m …… (12) are initial values. To do. here, Is a constant that satisfies.

[6]k=m、m−1、m−2、…、i+1に対して、
下記の[7]を反復する。
[6] For k = m, m-1, m-2, ..., i + 1,
Repeat [7] below.

[7]Xk-1=XK−ak×2-2k×Yk ……(14) Yk-1=(Yk+ak×Xk)/2 ……(15) [8]sinθ=2i×Yi、cosθ=Xiが同時に得られる。[7] X k-1 = X K −a k × 2 −2k × Y k (14) Y k-1 = (Y k + a k × X k ) / 2 (15) [8] sin θ = 2 i × Y i and cos θ = X i are obtained at the same time.

上記のCORDICアルゴリズムを計算機において用いる場
合には、上記の(11)式 Γ=2k-1×arctan(2-k) (k=0,1,…,m−1) の定数と、上記(13)式 K=Π(1+2-2k (k=0,1,…,n) の逆数である1/Kの定数が必要となる。
When the above CORDIC algorithm is used in a computer, the constant of the above equation (11) Γ k = 2 k-1 × arctan (2 −k ) (k = 0,1, ..., m−1) and the above (13) A constant of 1 / K, which is the reciprocal of K = Π m (1 + 2 -2k ) 1 ] 2 (k = 0,1, ..., n), is required.

他方、本アルゴリズムを用いる場合には、θの範囲
が、0<θ<π/4の時にだけ適応するので、π/4以上の
場合には、入力データをπ/4で剰余をとり、その値につ
いて本アルゴリズムを用いることになる。従って、本ア
ルゴリズムに入力されるデータというのは、指数部が−
mから−1までの範囲となる。
On the other hand, when this algorithm is used, the range of θ is applicable only when 0 <θ <π / 4. Therefore, when π / 4 or more, the remainder of the input data is taken at π / 4, and This algorithm will be used for values. Therefore, the data input to this algorithm has an exponent of −
The range is from m to -1.

このことは、 π/4=3.14……/4=0.785……=1.57……×2-1 であることより明らかである。This is clear from the fact that π / 4 = 3.14 …… / 4 = 0.785 …… = 1.57 …… × 2 −1 .

上記のように、−mから−1まで指数部が変化する場
合には、定数の値もm個必要となる。即ち、前記(11)
式の定数Γと、(13)式より求められる定数1/Kは、
共にm個ずつ用意しなければならない。従来の計算機に
おいては、前記定数を予め定数ROM(Read Only Memol
y)に用意しておき、三角関数の演算処理に使用してい
る。この場合におけるΓの定数ROMの内容例を第3図
の表に示し、また、定数1/Kの定数ROMの内容例を第4図
に示す。但し、仮数部の演算範囲を−32から−1(10進
数数)までとした場合についての定数を示す表であり、
16進数表示にて示されている。
As described above, when the exponent part changes from -m to -1, m constant values are also required. That is, the above (11)
The constant Γ k of the equation and the constant 1 / K obtained from the equation (13) are
You must prepare m pieces each. In a conventional computer, the above constants are stored in advance in a constant ROM (Read Only Memol).
Prepared in y) and used for the calculation processing of trigonometric functions. An example of the contents of the constant ROM of Γ k in this case is shown in the table of FIG. 3, and an example of the contents of the constant ROM of the constant 1 / K is shown in FIG. However, it is a table showing constants when the mantissa calculation range is from −32 to −1 (decimal number),
It is shown in hexadecimal notation.

上記のCORDICアルゴリズムを用いる従来の三角関数演
算装置は、一例として第2図のように構成されている。
A conventional trigonometric function operation device using the CORDIC algorithm is configured as shown in FIG. 2 as an example.

第2図に示されるように、本従来例は、指数部演算器
14、定数ROM15および16、加減算器17および20、レジス
タ18および21、バレルレジスタ19、スタック22および乗
算器23を備えて構成されている。以下、第2図を参照し
て、その動作につき説明する。
As shown in FIG. 2, this conventional example is based on an exponent calculator.
14, constant ROMs 15 and 16, adder / subtractors 17 and 20, registers 18 and 21, barrel register 19, stack 22 and multiplier 23. The operation will be described below with reference to FIG.

2進数浮動小数点数で表現された θ=2-i×Θ (1≦Θ<2、iは整数) の値を、バス103から入力し、指数部iを指数部演算器1
4に入力する。θの仮数部Θは、レジスタ21に入力され
る。
A value of θ = 2 −i × Θ (1 ≦ Θ <2, i is an integer) expressed by a binary floating point number is input from the bus 103, and the exponent part i is set to the exponent part calculator 1
Enter in 4. The mantissa part Θ of θ is input to the register 21.

指数部演算器14の出力値kを、 k=i、i+1、i+2、…、m−1 とインクリメントしながら下記のに示される動作を反
復実行する。
The following operation is repeatedly executed while incrementing the output value k of the exponent calculator 14 to k = i, i + 1, i + 2, ..., M-1.

レジスタ21に格納されているVk値を、バス105を介
して加減算器20の入力Aに転送し、同時に、指数部演算
器14において求められるアドレスにより選択された定数
Γの定数ROM16における値を、バス104を介して加減算
器20のBに転送する。また、同時に、レジスタ21の符号
桁の正負によって加減算器20の動作を制御し、その出力
を左1桁シフトしてレジスタ21に書込む。
The V k value stored in the register 21 is transferred to the input A of the adder / subtractor 20 via the bus 105, and at the same time, the value in the constant ROM 16 of the constant Γ k selected by the address obtained by the exponent calculator 14 Is transferred to B of the adder / subtractor 20 via the bus 104. At the same time, the operation of the adder / subtractor 20 is controlled by the sign of the sign digit of the register 21, and the output is shifted to the left by one digit and written in the register 21.

レジスタ21からバス104を介してVm値を取出し、レ
ジスタ18と乗算器23に転送する。指数部演算器14により
求められるアドレスにより選択される定数1/Kの定数ROM
15における値を、バス104を介して乗算器23に転送し、
乗算器23において求められるVmと1/Kとの積Vm/Kを、バ
ス104を介してレジスタ21に転送する。
The V m value is fetched from the register 21 via the bus 104 and transferred to the register 18 and the multiplier 23. Constant ROM of constant 1 / K selected by the address calculated by exponent calculator 14
Transfer the value at 15 to the multiplier 23 via bus 104,
The product V m / K of V m and 1 / K obtained in the multiplier 23 is transferred to the register 21 via the bus 104.

指数部演算器14の出力値kを、 k=m、m−1、m−2、…、i+1 とデクリメントしながら下記の動作を反復実行する。 The following operation is repeatedly executed while decrementing the output value k of the exponent calculator 14 as k = m, m-1, m-2, ..., i + 1.

レジスタ21のXkの値を、バス105を介して加減算器1
7の入力Cに転送し、同時に、レジスタ18のYkの値をバ
ス104を介して加減算器17の入力Dに転送し、更に、同
時に、バレルシフタ19において、レジスタ18のYk値を前
述のkの2倍桁数だけ右シフトして、加減算器20の入力
Bに転送する。次に、スタック22からポップされた値に
よって加減算器20を制御し、その結果をレジスタ21に書
込む。また同時に、スタック22からポップされた値によ
って加減算器17を制御し、結果を左1桁シフトしてレジ
スタ18に書込む。
Adder / subtractor 1 of the value of X k in register 21 via bus 105
7 to the input C of the register 18, and at the same time, to transfer the value of Y k of the register 18 to the input D of the adder / subtractor 17 via the bus 104. At the same time, the barrel shifter 19 transfers the value of Y k of the register 18 to The value is right-shifted by the number of double digits of k and transferred to the input B of the adder / subtractor 20. Next, the adder / subtractor 20 is controlled by the value popped from the stack 22, and the result is written in the register 21. At the same time, the adder / subtractor 17 is controlled by the value popped from the stack 22, and the result is shifted to the left by one digit and written in the register 18.

以上の結果、レジスタ21においてはcosθの仮数部
が得られ、レジスタ18においてはsinθの仮数部が得ら
れる。
As a result, the mantissa part of cos θ is obtained in the register 21, and the mantissa part of sin θ is obtained in the register 18.

なお、上記の従来例については、下記の参考文献等が
参照される。
For the above-mentioned conventional examples, the following references are referred to.

*産業図書: 萩原 宏 著「マイクロプログラミング」 *参考特許: 日本電気(株) 中山貴司 「三角関数演算装置」 特願昭62−234195号 〔発明が解決しようとする課題〕 上述した従来の三角関数演算装置においては、三角関
数演算の結果を求めるために、定数Γの定数ROMと、
定数1/Kの定数ROMとを余分に用意する必要があるという
欠点があり、また、最近においては、高精度の演算を行
う必要性が求められるため、下記のような問題点が生じ
ている。
* Industrial books: Hiroshi Hagiwara, "Microprogramming" * Reference patent: Takashi Nakayama, NEC Corporation "Trigonometric function calculation device" Japanese Patent Application No. 62-234195 [Problems to be solved by the invention] Conventional trigonometric functions described above In the arithmetic unit, in order to obtain the result of the trigonometric function calculation, a constant ROM of a constant Γ k ,
There is a drawback that it is necessary to prepare an extra constant ROM of constant 1 / K, and recently, since it is necessary to perform high-precision arithmetic, the following problems have occurred. .

(1)浮動小数点演算において、仮数部の精度を上げる
ために使用桁数が増大してきている。従って、定数ROM
の桁数も同様にして増大してきている。
(1) In floating point arithmetic, the number of digits used is increasing in order to improve the precision of the mantissa part. Therefore, constant ROM
The number of digits of is increasing similarly.

(2)関数の定義域を広くとるようにするために、演算
可能な指数部の範囲が広くなり、このために、用意すべ
き定数ROMの数を増加する必要がある。
(2) In order to make the domain of the function wide, the range of exponents that can be calculated becomes wide, and for this reason, it is necessary to increase the number of constant ROMs to be prepared.

以上のような問題点に対応するために、従来は、ROM
の領域を大きくとることにより対処してきているが、そ
のために、ROMのハードウェアの量が増大し、当該計算
機ハードウェアの中に占める定数ROMの割合も増大傾向
にある。特にマイクロプロセッサにおいては、大量の所
要面積を定数ROMのために費やされるために、その他の
主要ハードウェアの実装に対する障害要因になるという
欠点がある。
In order to deal with the above problems, the conventional ROM
However, because of this, the amount of ROM hardware is increasing, and the proportion of constant ROM in the computer hardware is also increasing. Especially in a microprocessor, there is a drawback that a large amount of required area is consumed for a constant ROM, which causes an obstacle to implementation of other main hardware.

〔課題を解決するための手段〕[Means for solving the problem]

本発明の三角関数検算装置は、三角関数sinθおよびc
osθを演算することを目的とする三角関数演算装置にお
いて、前記演算装置内に含まれる指数部演算器の出力値
kを入力して、前記出力値kを予め定められている所定
の定数と比較照合する比較手段と、 関数Γ=2k×arctan(2-k) (但し、k=0,1…,m−1:mは正整数) におけるΓの値を、k=0よりk=m−1至るまで逐
次定数値として生成するΓの定数発生手段と、 (但し、k=0,1,……m−1、mは正整数) における1/Kの値を、k=0よりk=m−1に至るまで
逐次定数値として生成し、この1/kの定数値を、前記比
較手段における比較結果に応じて選択出力する1/Kの定
数発生手段と、前記Γの定数発生手段のアドレスを、
前記比較手段における比較結果に応じて選択してインク
リメントする第1の加算手段と、前記Γの定数発生手
段の出力内容のMSBに1を加算する処理を、前記比較手
段における比較結果に応じて選択実行する第2の加算手
段と、を備えて構成される。
The trigonometric function verification device of the present invention is configured with trigonometric functions sin θ and c
In a trigonometric function computing device intended to compute osθ, input an output value k of an exponent computing unit included in the computing device and compare the output value k with a predetermined constant. comparing means for matching the function Γ k = 2 k × arctan ( 2 -k) ( where, k = 0,1 ..., m- 1: m is a positive integer) values of gamma k in, k from k = 0 = M−1, a constant generating unit of Γ k that is sequentially generated as a constant value, (However, k = 0,1, ... m-1, m is a positive integer) The value of 1 / K is generated as a sequential constant value from k = 0 to k = m-1. The 1 / K constant generating means for selectively outputting the constant value of k according to the comparison result in the comparing means and the address of the constant generating means of Γ k are
First adding means for selecting and incrementing according to the comparison result in the comparing means, and processing for adding 1 to the MSB of the output content of the constant generating means of Γ k are performed according to the comparison result in the comparing means. And a second adding means for selectively executing.

〔実施例〕 次に、本発明について図面を参照して説明する。第1
図は、本発明の一実施例のブッロック図である。第1図
に示されるように、本実施例は、指数部演算部1と、比
較部2と、定数ROM3および4と、加算器および6と、加
減算器7および10と、レジスタ8および11と、バレルシ
フタ9と、スタック12と、乗算器13と、を備えて構成さ
れる。
EXAMPLES Next, the present invention will be described with reference to the drawings. First
The figure is a block diagram of one embodiment of the present invention. As shown in FIG. 1, in this embodiment, an exponent part computing part 1, a comparing part 2, constant ROMs 3 and 4, adders and 6, adder / subtractors 7 and 10, registers 8 and 11 are provided. , A barrel shifter 9, a stack 12, and a multiplier 13.

本実施例の動作を説明する前に、本発明の動作原理の
大要について説明する。第3図および第4図は、それぞ
れ前述の従来例において、アルゴリズムを用いる時に使
用される、定数Γおよび定数I/Kの定数ROMの内容を示
す表である。この第3図および第4図を比較対照するこ
とにより明らかなように、定数Γの定数ROM(第3
図)におけるk=19の時の内容と、定数1/kの定数ROMに
おけるk=20の時の内容との差異は、MSB(most signif
icant bit)が異なるだけである。同様に、kの値が増
加していった場合においても、全く同じことが云える。
Before explaining the operation of the present embodiment, an outline of the operating principle of the present invention will be described. FIGS. 3 and 4 are tables showing the contents of the constant ROM of the constant Γ k and the constant I / K, which are used when the algorithm is used in the above-mentioned conventional example. As is clear by comparing and comparing FIGS. 3 and 4, the constant ROM (constant γ k
The difference between the contents when k = 19 in the figure) and the contents when k = 20 in the constant ROM of constant 1 / k is MSB (most signif
icant bit) is only different. Similarly, even when the value of k increases, the same thing can be said.

従って、定数1/Kの定数ROMの内容としては、k=0か
らk=18までを用意すればよいことが分る。kが19以上
になった場合には、そのkの値をインクリメントした
k′に対応する定数Γk′の定数ROMの内容のMSBに“1"
を加算することにより、定数1/Kを求めることが可能と
なる。
Therefore, it is understood that k = 0 to k = 18 should be prepared as the contents of the constant ROM of the constant 1 / K. when k becomes 19 or more, the MSB of the content of the constant ROM of 'constant gamma k corresponding to' k incrementing the value of the k "1"
The constant 1 / K can be obtained by adding.

従って、本発明により、定数1/Kの定数ROMの内容を大
幅に削減することが可能となり、定数ROMの規模が縮小
され、ROMハードウェア量も減少し、計算機ハードウェ
ア中に占める定数ROMの割合を低減させることができ
る。
Therefore, according to the present invention, the contents of the constant ROM of the constant 1 / K can be significantly reduced, the scale of the constant ROM can be reduced, the ROM hardware amount can be reduced, and the constant ROM of the computer hardware can be reduced. The ratio can be reduced.

なお、第1図と第2図との比較により明らかなよう
に、本実施例においては、比較器2、加算器5および6
が追加されるが、実際においては、三角関数演算処理が
可能な計算機レベルにおいては、比較器および加算器等
は、他の目的用として具備されているため、それらのハ
ードウェアを流用することが可能であり、現実にハード
ウェアを増加させる必要はない。
As is clear from the comparison between FIG. 1 and FIG. 2, in this embodiment, the comparator 2, the adders 5 and 6 are used.
However, in practice, at the computer level capable of processing trigonometric functions, comparators, adders, etc. are provided for other purposes, and therefore their hardware may be diverted. Yes, there is no need to actually increase the hardware.

第1図において、レジスタ11および8は、2種類の変
数を格納するレジスタ、指数部演算器1は、指数部の演
算を行う演算器、比較器2は、指数部演算器1の演算結
果を見て、kが19以上の数値か、または19未満の数値で
あるかを判定して、Γの定数ROM4、または定数1/Kの
定数ROM3の何れを選択するかを決める比較器、加算器6
は、比較器2における選択結果により、定数Γの値の
MSBに“1"を加算することが可能な加算器、加算器5
は、指数部演算器1より出力される定数ROMのアドレス
に対して、イクリメントすることが可能な加算器、バレ
ルシフタ9は、レジスタ8の内容を指数部演算器1の処
理内容により、右シフト可能なバレルシフタ、定数ROM3
は、前記(13)式における定数1/K(K=0,1,……,18)
を格納する19語の定数ROM、定数ROM4は、前記(11)式
における定数Γを格納するm語の定数ROM、スタック1
2は、従来例同様に、数列{ak}をFirst−In、Last−Ou
t方式により蓄積することができるスタック、乗算器13
は、バス101から乗数および被乗数を入力し、それらの
積をバス101に出力することのできる乗算器である。バ
ス101は、入出力データおよび演算の中間結果を転送す
るためのバス、バス102は、レジスタ11の値を転送する
ためのバスであり、バス103は、指数部演算器1におい
て求められる定数ROMのアドレスを転送するバスであ
る。
In FIG. 1, registers 11 and 8 are registers for storing two types of variables, an exponent arithmetic unit 1 is an arithmetic unit for performing exponential arithmetic, and a comparator 2 is an arithmetic result of the exponent arithmetic unit 1. By looking at it, it is judged whether k is a numerical value of 19 or more or less than 19, and a comparator or addition that decides whether to select the constant ROM4 of Γ k or the constant ROM3 of constant 1 / K Bowl 6
Is the value of the constant Γ k depending on the selection result in the comparator 2.
Adder that can add "1" to MSB, adder 5
Is an adder capable of incrementing the address of the constant ROM output from the exponent arithmetic unit 1, and the barrel shifter 9 can shift the contents of the register 8 right by the processing contents of the exponent arithmetic unit 1. Barrel shifter, constant ROM3
Is the constant 1 / K in the equation (13) (K = 0,1, ..., 18)
Is a 19-word constant ROM that stores the constants, and a constant ROM4 is an m-word constant ROM that stores the constant Γ k in the equation (11).
2 is similar to the conventional example, the sequence {a k } of First-In, Last-Ou
Stack that can be accumulated by t method, multiplier 13
Is a multiplier capable of inputting a multiplier and a multiplicand from the bus 101 and outputting the product of them to the bus 101. The bus 101 is a bus for transferring the input / output data and the intermediate result of the operation, the bus 102 is a bus for transferring the value of the register 11, and the bus 103 is a constant ROM required in the exponent calculator 1. It is a bus for transferring the address of.

以下に、第1図に参照して、本実施例の動作につき説
明する。
The operation of this embodiment will be described below with reference to FIG.

2進数浮動小数点数で表現された θ=2-i×Θ(1≦Θ<2、iは整数) の値を、バス101から入力し、指数部iを指数部演算器
1に入力する。θの仮数部Θは、レジスタ11に入力され
る。
A value of θ = 2− i × Θ (1 ≦ Θ <2, i is an integer) represented by a binary floating point number is input from the bus 101, and the exponent part i is input to the exponent part calculator 1. The mantissa part Θ of θ is input to the register 11.

指数部演算器1の出力値kを、 k=i、i+1、i+2、…、m−1 とインクリメントしながら下記のに示される動作を反
復実行する。
The output value k of the exponent calculator 1 is incremented as k = i, i + 1, i + 2, ..., M-1 to repeatedly execute the following operation.

レジスタ11に格納されているVk値を、バス102を介
して加減算器10の入力Aに転送し、同時に、指数部演算
器1において求められる定数ROMのアドレスは加減算器
5に入力されるが、加減算器5における加算は行われ
ず、そのままのアドレスを定数Γの定数ROM4に送出す
る。定数ROM4より出力された値は、加算器6に転送され
るが、ここにおいても加算は行われず、バス101に転送
される。また、同時に、レジスタ11の符号桁の値をスタ
ック12にプッシュする。次に、レジスタ11の符号桁に正
負によって加減算器10の動作を制御し、その出力を左1
桁シフトしてレジスタ11に書込む。
The V k value stored in the register 11 is transferred to the input A of the adder / subtractor 10 via the bus 102, and at the same time, the address of the constant ROM obtained in the exponent calculator 1 is input to the adder / subtractor 5. , Addition is not performed in the adder / subtractor 5, and the address as it is is sent to the constant ROM 4 of the constant Γ k . The value output from the constant ROM 4 is transferred to the adder 6, but no addition is performed here, and is transferred to the bus 101. At the same time, the value of the code digit of the register 11 is pushed onto the stack 12. Next, the operation of the adder / subtractor 10 is controlled depending on whether the sign digit of the register 11 is positive or negative.
Digit shift and write to register 11.

レジスタ11からバス101を介してVm値を取出し、レ
ジスタ8と乗算器13に転送する。
The V m value is fetched from the register 11 via the bus 101 and transferred to the register 8 and the multiplier 13.

指数部演算器1より、比較器2に対して、指数部の
値により求められるkの値を転送し、そのkの値が19未
満であるか、または19以上であるかの判定を行う。
The exponent part calculator 1 transfers the value of k obtained from the value of the exponent part to the comparator 2 and determines whether the value of k is less than 19 or 19 or more.

19未満である場合には、指数部演算器1より求められ
る定数ROMのアドレスを、バス103を介して直接定数1/K
の定数ROM3に送り、定数1/Kをバス101に転送する。
If it is less than 19, the address of the constant ROM obtained from the exponent calculator 1 is directly converted to the constant 1 / K via the bus 103.
And sends the constant 1 / K to the bus 101.

19以上である場合には、指数部演算器1より求められ
る定数ROMのアドレスを加算器5においてインクリメン
トして、定数Γの定数ROM4に送出する。次に、加算器
6により定数Γの定数ROM4の出力値のMSBに“1"を加
算し、バス101に転送する。
If it is 19 or more, the address of the constant ROM obtained by the exponent calculator 1 is incremented by the adder 5 and sent to the constant ROM 4 of the constant Γ k . Next, the adder 6 adds “1” to the MSB of the output value of the constant ROM 4 having the constant Γ k , and transfers it to the bus 101.

上記において、バス101に転送された定数を、バ
ス101を介して乗算器13に転送し、積Vm/Kの値をバス101
を介してレジスタ11に転転する。
In the above, the constant transferred to the bus 101 is transferred to the multiplier 13 via the bus 101, and the value of the product V m / K is transferred to the bus 101.
To the register 11 via.

指数部演算器1の出力値kを、 k=m、m−1、m−2、…、i+1 とデクリメントしながら下記の動作を反復実行する。 The following operation is repeatedly executed while decrementing the output value k of the exponent calculator 1 to k = m, m-1, m-2, ..., I + 1.

レジスタ11のXkの値を、バス102を介して加減算器
7の入力Cに転送し、同時に、レジスタ8のYkの値をバ
ス101を介して加減算器7の入力Dに転送し、更に、同
時に、バレルシフタ9において、レジスタ8のYk値を前
述のkの2倍桁数だけ右シフトして、加減算器10の入力
Bに転送する。次に、スタック12からポップされた値に
よって加減算器10を制御し、その結果をレジスタ11に書
込む。また同時に、スタック12からポップされた値によ
って加減算器7を制御し、結果を左1桁シフトしてレジ
スタ8に書込む。
The value of X k of the register 11 is transferred to the input C of the adder / subtractor 7 via the bus 102, and at the same time, the value of Y k of the register 8 is transferred to the input D of the adder / subtractor 7 via the bus 101. At the same time, in the barrel shifter 9, the Y k value in the register 8 is right-shifted by the double digit number of k described above and transferred to the input B of the adder / subtractor 10. Next, the adder / subtractor 10 is controlled by the value popped from the stack 12, and the result is written in the register 11. At the same time, the adder / subtractor 7 is controlled by the value popped from the stack 12 and the result is shifted to the left by one digit and written in the register 8.

以上の結果、レジスタ11においてはcosθの仮数部
が、レジスタ8においてはsinθの仮数部が、それぞれ
同時に得られる。
As a result, the mantissa part of cos θ is obtained in the register 11 and the mantissa part of sin θ is obtained in the register 8 at the same time.

〔発明の効果〕〔The invention's effect〕

以上、詳細に説明したように、本発明は、定数1/Kの
定数ROMの使用領域を縮小させることができるため、従
来の三角関数演算装置に比較して、定数ROMのハードウ
ェア量を減少させ、計算機ハードウェア中に占める定数
ROMの割合を大幅に減少させることができるという効果
がある。特に、マイクロプロセッサにおいては、定数RO
Mに占有される面積が縮退することにより、その他のハ
ードウェアの実装が容易になるという効果がある。
As described above in detail, according to the present invention, since the use area of the constant ROM of the constant 1 / K can be reduced, the hardware amount of the constant ROM is reduced as compared with the conventional trigonometric function operation device. And the constants in the computer hardware
The effect is that the proportion of ROM can be greatly reduced. Especially in microprocessors, the constant RO
The reduction of the area occupied by M has the effect of facilitating the mounting of other hardware.

【図面の簡単な説明】[Brief description of drawings]

第1図は、本発明の一実施例のブロック図、第2図は、
従来例のブロック図、第3図および第4図は、それぞれ
定数ROMの内容を表示する図である。 図において、1,14……指数部演算器、2……比較器、3,
4,15,16……定数ROM、5,6……加算器、7,10,17,20……
加減算器、8,11,18,21……レジスタ、9,19……バレルシ
フタ、12,22……スタック、13,23……乗算器。
FIG. 1 is a block diagram of an embodiment of the present invention, and FIG. 2 is
The block diagram of the conventional example, FIG. 3 and FIG. 4 are views showing the contents of the constant ROM, respectively. In the figure, 1, 14 ... Exponent part calculator, 2 ... Comparator, 3,
4,15,16 …… Constant ROM, 5,6 …… Adder, 7,10,17,20 ……
Adder / subtractor, 8,11,18,21 …… register, 9,19 …… barrel shifter, 12,22 …… stack, 13,23 …… multiplier.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】三角関数sinθおよびcosθを演算すること
を目的とする三角関数演算装置において、 前記演算装置内に含まれる指数部演算器の出力値kを入
力して、前記出力値kを予め定められている所定の定数
と比較照合する比較手段と、 関数Γ=2k×arctan(2-k) (但し、k=0,1…,m−1:mは正整数) におけるΓの値を、k=0よりk=m−1至るまで次
定数値として生成するΓの定数発生手段と、 (但し、k=0、1,……m−1、mは正整数) における1/Kの値を、k=0よりk=m−1に至るまで
次定数値として生成し、この1/kの定数値を、前記比較
手段における比較結果に応じて選択出力する1/Kの定数
発生手段と、 前記Γの定数発生手段のアドレスを、前記比較手段に
おける比較結果に応じて選択してインクリメントする第
1の加算手段と、 前記Γの定数発生手段の出力内容のMSBに1を加算す
る処理を、前記比較手段におる比較結果に応じて選択実
行する第2の加算手段と、 を備えることを特徴とする三角関数演算装置。
1. A trigonometric function computing device for computing trigonometric functions sin θ and cos θ, wherein an output value k of an exponential part computing unit included in the computing device is input to previously output the output value k. comparing means for comparing and collating a predetermined constant which is determined, the function Γ k = 2 k × arctan ( 2 -k) ( where, k = 0,1 ..., m- 1: m is a positive integer) gamma in k Constant value generation means of Γ k that generates the value of as a next constant value from k = 0 to k = m−1, (However, k = 0, 1, ... M-1, m is a positive integer) The value of 1 / K is generated as the next constant value from k = 0 to k = m-1. 1 / K constant generating means for selectively outputting the constant value of k according to the comparison result in the comparing means and the address of the constant generating means for Γ k are selected according to the comparison result in the comparing means. First adding means for incrementing, and second adding means for selectively executing the processing of adding 1 to the MSB of the output content of the constant generating means of Γ k according to the comparison result by the comparing means. A trigonometric function operation device comprising:
JP2233073A 1990-09-03 1990-09-03 Trigonometric function operation unit Expired - Lifetime JP2546916B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2233073A JP2546916B2 (en) 1990-09-03 1990-09-03 Trigonometric function operation unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2233073A JP2546916B2 (en) 1990-09-03 1990-09-03 Trigonometric function operation unit

Publications (2)

Publication Number Publication Date
JPH04112320A JPH04112320A (en) 1992-04-14
JP2546916B2 true JP2546916B2 (en) 1996-10-23

Family

ID=16949381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2233073A Expired - Lifetime JP2546916B2 (en) 1990-09-03 1990-09-03 Trigonometric function operation unit

Country Status (1)

Country Link
JP (1) JP2546916B2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01109428A (en) * 1987-10-22 1989-04-26 Canon Inc Trigonometric function arithmetic unit
JPH06105421B2 (en) * 1988-12-05 1994-12-21 日本電気株式会社 Inverse trigonometric function calculator

Also Published As

Publication number Publication date
JPH04112320A (en) 1992-04-14

Similar Documents

Publication Publication Date Title
Karp et al. High-precision division and square root
US6163791A (en) High accuracy estimates of elementary functions
JP2557190B2 (en) Optimization system for argument reduction
WO1990005335A1 (en) Apparatus for multiplication, division and extraction of square root
Linhardt et al. Digit-by-digit transcendental-function computation
JP2504102B2 (en) Inverse trigonometric function calculator
US4956799A (en) Trigonometric function arithmetic processor using pseudo-division
Antelo et al. Unified mixed radix 2-4 redundant CORDIC processor
Louvet et al. Newton-Raphson algorithms for floating-point division using an FMA
JP2822399B2 (en) Logarithmic function arithmetic unit
USH1222H (en) Apparatus for determining sticky bit value in arithmetic operations
US5278782A (en) Square root operation device
US20090164544A1 (en) Dynamic range enhancement for arithmetic calculations in real-time control systems using fixed point hardware
JP2508784B2 (en) Exponential function calculator
Antelo et al. Very-high radix circular CORDIC: Vectoring and unified rotation/vectoring
US6952710B2 (en) Apparatus, methods and computer program products for performing high speed division calculations
Muller et al. Semi-logarithmic number systems
JP2546916B2 (en) Trigonometric function operation unit
Pineiro et al. High-radix logarithm with selection by rounding
Schulte et al. High-speed reciprocal approximations
Choudhary et al. Comparative Analysis of Two Hardware-Based Square Root Computational Algorithms
JP2645422B2 (en) Floating point processor
Villalba et al. Double-residue modular range reduction for floating-point hardware implementations
JP2972326B2 (en) Square root calculator
WO1994018632A1 (en) Low latency function generating apparatus and method