JPWO2009110560A1 - Cordic演算回路及び方法 - Google Patents

Cordic演算回路及び方法 Download PDF

Info

Publication number
JPWO2009110560A1
JPWO2009110560A1 JP2010501957A JP2010501957A JPWO2009110560A1 JP WO2009110560 A1 JPWO2009110560 A1 JP WO2009110560A1 JP 2010501957 A JP2010501957 A JP 2010501957A JP 2010501957 A JP2010501957 A JP 2010501957A JP WO2009110560 A1 JPWO2009110560 A1 JP WO2009110560A1
Authority
JP
Japan
Prior art keywords
scale
correction
fine
path
rotation
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.)
Granted
Application number
JP2010501957A
Other languages
English (en)
Other versions
JP5229314B2 (ja
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010501957A priority Critical patent/JP5229314B2/ja
Publication of JPWO2009110560A1 publication Critical patent/JPWO2009110560A1/ja
Application granted granted Critical
Publication of JP5229314B2 publication Critical patent/JP5229314B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/604Rotation of whole images or parts thereof using coordinate rotation digital computer [CORDIC] devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Transmission And Conversion Of Sensor Element Output (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本発明は、回路規模が小さく、かつ処理遅延が短いCORDIC回路を提供することを目的とする。スケール補正処理を粗補正と微補正の2段階に分割し、擬似回転処理の後半処理とスケール微補正を並列に行う。また、微補正スケール範囲を、擬似回転処理の前半処理の残留回転角に対するスケール補正が不要にするように設定する(図1)。

Description

(関連出願についての記載)
本願は、先の日本特許出願2008−056534号(2008年3月6日出願)の優先権を主張するものであり、前記先の出願の全記載内容は、本書に引用をもって繰込み記載されているものとみなされる。
本発明は、Coordinate Rotation Digital Computer (「CORDIC」という)演算回路に関し、特に、線形近似CORDIC演算回路と方法に関する。
三角関数などの初等関数演算のためのハードウェア向きアルゴリズムとして、CORDIC(COordinate Rotation Digital Computer)アルゴリズムが知られている。CORDICアルゴリズムは、関数を2次元平面上のベクトル回転としてとらえ、予め決められた基本回転角分のベクトル回転を繰り返し計算することで真値を得る反復求解法である。
CORDICアルゴリズムは回転座標系(線形、円、双曲線)を選択することにより、シフト加減算とテーブル参照という単純な演算の繰り返しで、乗除算、三角関数演算、指数・対数演算、双曲関数演算等が実行可能であり、ディジタル信号処理分野で広範に用いられている。
円座標を例に取ると、j番目の回転処理は、式(1)で表される。
Figure 2009110560
(1)
ここで、nは、反復回数である。
また、
Figure 2009110560
は回転方向パラメータである。
ベクトル[x(0),y(0)]’に対し回転角θの回転を施したベクトル[x(n),y(n)]’は式(2)(3)で表される。
Figure 2009110560
(2)

Figure 2009110560
(3)
ここで、Kはスケーリング係数である。
CORDICアルゴリズムによる回転は、スケーリングが伴う擬似回転である。スケーリングを補正するため、式(4)に示す処理を行う必要がある。
Figure 2009110560
(4)
CORDICアルゴリズムは、式(5)に示すように、回転角θの回転操作を角度αの基本回転の組み合わせとして実現する。

Figure 2009110560
(5)
CORDICアルゴリズムは、式(6)に示す回転方向パラメータσの決定方法によりRotationモードと、Vectorモードの2モードがある。
Figure 2009110560
(6)
Rotationモードでは、所望角度θをz(0)とし、初期ベクトル[x(0),y(0)]’をθ分回転させる処理を行う。
Vectorモードでは、初期角度z(0)を0とし、ベクトルをx軸まで回転させ、その回転角度(z(n))と、初期ベクトルのノルム(x(n))を求める処理を行う。
CORDICアルゴリズムは、回転処理をn回の基本回転で実現しているため、最終基本回転角αn−1未満の回転角度誤差が本質的に生じる。
nビット精度で式(7)が成り立つため(非特許文献1参照)、CORDICアルゴリズムは、所要ビット精度と同じ段数の反復処理を行う必要がある。
Figure 2009110560
(7)
CORDICアルゴリズムを実装する際は、回転角度誤差に加え、シフト加減算に伴う丸め誤差を考慮する必要がある。
データパスのビット幅bが式(8)を満たす場合、nビット精度の出力値が得られることが知られており、その詳細は、非特許文献1および2の記載が参照される。
Figure 2009110560
(8)
ここで、
gはオーバーフロー対策のMSB(Most Significant Bit)ガードビット数、
mは丸め誤差対策のLSB(Least Significant Bit)ガードビット数である。
CORDICアルゴリズムは、所要ビット精度と同じ段数の繰り返し構造が必要となるため、乗算器に見られるような並列構造を用いて高速化することが困難である。
この問題を解決するため、線形近似CORDICアルゴリズムが提案されている。線形近似CORDICアルゴリズム(Rotationモード)は、元のアルゴリズムと同様に、j=0からn/2までの式(1)に示す反復処理を行う。
次に、j=n/2+1からn−1までの反復処理の代わりに、式(9))に示す処理を行う。ここでq=j/2である。この処理は、
Figure 2009110560

Figure 2009110560
で線形近似できることを利用しており、線形近似CORDICの名前の由来となっている。
Figure 2009110560
(9)
最後に、式(10)に示すスケール補正を行う。
Figure 2009110560

Figure 2009110560
(10)
線形近似CORDICは、元のCORDICアルゴリズムの後段のシフト加減算反復処理の代わりに、並列構造を用いて高速化可能な乗算を行うことにより処理遅延を短縮している。
図3は、第1の関連技術の線形近似CORDIC回路(Rotationモード)の典型的な構成を示したものである。図3の第1の関連技術の詳細は非特許文献1の記載が参照される。尚、本書では、以降、特に断らないかぎりRotationモードについて言及する。
線形近似CORDIC回路1001は、
第1〜第q回転処理回路100〜100
XおよびYパス定数乗算器200x、200y、
XおよびYパス変数乗算器300x、300y、
XおよびYパス加減算器400x、400y
を備えている。
第1から第q回転処理回路100〜100は、初期値x(0),y(0),z(0)に対して、式(1)に示す、j=0からq(=n/2)までの反復処理を行い、x(q),y(q),z(q)を出力する。
ここで、nは、所要ビット精度である。
信号x(j),y(j),z(j)は、全てbビット幅である。
ここで、bは、式(8)で表される。
XおよびYパス変数乗算器300x、300y、XおよびYパス加減算器400x、400yは、式(9)に示す処理を行い、bビット幅のx(n),y(n)を出力する。
XおよびYパス変数乗算器300x、300yは、
z[q]<2−q
であることを利用して、x(q),y(q),z(q)の有効上位(n/2+m)ビットのみを抽出し、(n/2+m)x(n/2+m)ビット変数乗算を行っている。
XおよびYパス定数乗算器200x、200yは、x(n)、y(n)に対し、定数Kを乗算して式(10)に示すスケーリング処理を行い、bビット幅のスケーリング結果xf、yfを外部へ出力する。
は必ず1未満になるため、MSBガードビットgが不要となり、
ct=b−g=n+mビット
で表現できるため、XおよびYパス定数乗算器200x、200yは、
(ct)xbビット定数乗算を行っている。
第1の関連技術の線形近似CORDIC回路1001に対し、更に処理遅延を短縮する方法も提案されている。
図4は、第2の関連技術の線形近似CORDIC回路の構成を示す図である。第2の関連技術の詳細も非特許文献1に記載されている。
第2の関連技術の線形近似CORDIC回路1002は、
第1〜第q回転処理回路100〜100
XおよびYパス定数乗算器200x、200y、
XおよびYパス変数乗算器300x、300y、
XおよびYパス加減算器400x、400yと、
Zパス定数乗算器500と、
を備えている。
第2の関連技術の線形近似CORDIC回路1002は、第1の関連技術の線形近似CORDIC回路1001に対し、Zパス定数乗算器500が追加され、XおよびYパス定数乗算器200x、200yの配置が、それぞれ、XおよびYパス加減算器400x、400yの前段に移動されている。これ以外は同じである。
第2の関連技術の線形近似CORDIC回路1002は、第1の関連技術と同様に、回転処理回路100〜100で反復処理を行い、x(q),y(q), z(q)を求める。
Zパス定数乗算器500はz(q)に対し、式(11)に示すスケーリング処理を行う。
Figure 2009110560
(11)
次に、式(12)に示す処理を行う。
Figure 2009110560
(12)
具体的には、XおよびYパス定数乗算器200x、200yと、XおよびYパス変数乗算器300x、300yで、x(q),y(q)に対し、KとPを乗算し、XおよびYパス加減算器400x、400yを用いて、乗算結果を加減算し、xf、yfを求め外部へ出力する。
z(j) (j>n/3)は、式(7)が成り立つことを利用してRecoding処理で高速に求めることができるため、Zパス定数乗算器500が追加されても、x(q),y(q)がクリティカルパスになる。
Recoding処理の詳細は、非特許文献1に記載されているため説明は省略する。
第2の関連技術の線形近似CORDIC回路1002は、XおよびYパス定数乗算器200、200yと、XおよびYパス変数乗算器300x、300yの処理を並列に実行でき、XおよびYパス加減算器400x、400yの後段にスケーリング処理が不要になるため、第1の関連技術の線形近似CORDIC回路1001に比べ、処理遅延を短縮できる利点がある。但し、Zパス定数乗算器500を追加する必要があり、回路規模が増大する。
Antelo, E. Villalba, J.,"Low latency pipelined circular CORDIC" Computer Arithmetic 2005. ARITH−17 2005. Proceedings of 17th IEEE Symposium on Computer Arithmetic, pp280− 287 June 2005 YH Hu,"The quantization effects of the CORDIC algorithm" IEEE Transactions on Signal Processing 40:44, 834−844 pp.1822−1825, 1988. E. F. Deprettere, P. Dewilde, and R. Udo, "Pipelined CORDIC architectures for fast VLSI filtering and array processing," in Proceedings IEEE ICASSP, pp. 41, March 1984.
以下に本発明による関連技術の分析を与える。
第1の関連技術の線形近似CORDIC回路においては、擬似回転処理とスケール補正をシーケンシャルに行うため、処理遅延が増大する、という問題がある。
第2の関連技術の線形近似CORDIC回路においては、擬似回転処理の後半処理とスケール補正を並列に行い処理遅延を短縮するために、擬似回転処理の前半処理の残留回転角に対するスケール補正が必要となり、回路規模が増大する、という問題がある。
本発明は上記課題に鑑みて創案されたものであって、その目的は、回路規模の縮減を可能とし、処理遅延の短縮を図るCORDIC回路及び方法を提供することにある。
本願で開示される発明は、上記課題を解決するため、概略以下の構成とされる。
本発明によれば、スケール補正処理を粗補正と微補正の2段階に分割し、擬似回転処理の後半処理とスケール微補正を並列に行うCORDIC回路が提供される。
本発明によれば、スケール補正処理を粗補正と微補正の2段階に分割し、擬似回転処理の後半処理とスケール微補正を並列に行う方法が提供される。
本発明によれば、擬似回転処理の後半処理とスケール微補正を並列に行うことにより、処理遅延を短縮可能としている。
本発明によれば、擬似回転処理の前半処理の残留回転角に対するスケール補正が不要になるため、回路規模を小さくすることができる。
本発明の第1の実施例の構成を示す図である。 本発明の第1の実施例に含まれるXパススケール粗補正部の構成を示す図である。 第1の関連技術の線形近似CORDIC構成を示す図である。 第2の関連技術の線形近似CORDIC構成を示す図である。
符号の説明
100〜100 第1から第q回転処理回路
200x Xパス定数乗算器
200y Yパス定数乗算器
300x Xパス変数乗算器
300y Yパス変数乗算器
400x Xパス加減算器
400y Yパス加減算器
500 Zパス定数乗算器
610x Xパススケール粗補正部
610y Yパススケール粗補正部
620x Xパススケール微補正部
620y Yパススケール微補正部
611〜611 第1から第kキャリーリプル加減算器
612〜612 第1から第kバレルシフタ
1000 線形近似CORDIC回路
1001 線形近似CORDIC回路
1002 線形近似CORDIC回路
次に、本発明の実施の形態について説明する。本発明の線形近似CORDIC回路においては、スケール補正処理を粗補正と微補正の2段階に分割し、擬似回転処理の後半処理とスケール微補正を並列に行う。
本発明の一実施の形態においては、前記擬似回転処理の後半処理を乗算で実現するようにしてもよい。
本発明の一実施の形態においては、前記スケール微補正の範囲を、前記擬似回転処理の前半処理の残留回転角に対するスケール補正が不要にするように設定してもよい。
本発明の一実施の形態においては、前記スケール補正処理を、繰り返しシフト加減算で行い、シフト量が所要ビット精度の半分以上の繰り返しシフト加減算処理で、前記スケール微補正を行い、前記シフト量が所要ビット精度の半分未満の繰り返しシフト加減算処理で、前記スケール粗補正を行うようにしてもよい。
本発明においては、前記繰り返しシフト加減算を、キャリーリプル加減算器で行うようにしてもよい。
本発明においては、ベクトル(X,Y)と回転角(Z)を入力とするCORDIC演算回路が、前記ベクトルのX成分(x[0])に対してスケール粗補正を行い、粗補正用のスケーリング係数(Kq1)と前記X成分(x[0])の乗算結果(Kq1*x[0])を出力するXパススケール粗補正部(610x)と、前記ベクトルのY成分(y[0])に対してスケール粗補正を行い、粗補正用のスケーリング係数(Kq1)と前記Y成分(y[0])の乗算結果(Kq1*y[0])を出力するYパススケール粗補正部(610y)と、縦続接続された複数段(q段)の回転処理回路(100〜100)を備えている。初段の回転処理回路(100)は、前記XおよびYパススケール粗補正部からそれぞれ出力されるX成分およびY成分と回転角(Z)とを入力して回転処理の反復処理を行い、後段の回転処理回路は、前段の回転処理回路から出力されるX成分およびY成分と回転角とを入力して回転処理の反復処理を行う。さらに、最終段の回転処理回路(100)から出力されるX成分に対してスケール微補正処理を行い、微補正用のスケーリング係数と前記X成分の乗算結果を出力するXパススケール微補正部(620x)と、最終段の回転処理回路(100)から出力されるY成分に対してスケール微補正処理を行い、微補正用のスケーリング係数と前記Y成分の乗算結果を出力するYパススケール微補正部(620y)と、前記Xパススケール微補正部(620x)に並置され、最終段の前記回転処理回路(100)から出力されるY成分y[q]に対して、最終段の前記回転処理回路(100)からの回転角度z[q]を乗算するXパス変数乗算器(300x)と、Yパススケール微補正部(620y)に並置され、最終段の前記回転処理回路(100)から出力されるX成分x[q]に対して、最終段の前記回転処理回路(100)からの回転角度(z[q])を乗算するYパス変数乗算器(300y)と、Xパススケール微補正部(620x)での乗算結果(Kq2*x[q])とXパス変数乗算器(300x)での乗算結果(z[q]*y[q])とを加算した結果(Kq2*x[q]+z[q]*y[q])を出力するXパス加減算器(400x)と、Yパススケール微補正部(620y)での乗算結果(Kq2*y[q])とYパス変数乗算器(300y)での乗算結果(z[q]*x[q])を減算した結果(Kq2*y[q]−z[q]*x[q])を出力するYパス加減算器(400y)と、を備えている。
本発明の一実施の形態においては、Xパススケール粗補正部(610x)およびYパススケール粗補正部(610y)において、前記スケール補正処理を、繰り返しシフト加減算で行い、前記シフト量が、所要ビット精度の半分未満の繰り返しシフト加減算処理で、スケール粗補正を行うようにしてもよい。
本発明の一実施の形態においては、Xパススケール粗補正部(610x)およびYパススケール粗補正部(610y)は、前段からの入力をシフトするバレルシフタと、前段からの入力と前記バレルシフタの出力を入力し加算又は減算するキャリーリプル加減算器の組を複数段含む。
本発明の一実施の形態においては、Xパススケール微補正部(620x)およびYパススケール微補正部(620y)において、前記スケール補正処理を、繰り返しシフト加減算で行い、シフト量が所要ビット精度の半分以上の繰り返しシフト加減算処理で、前記スケール微補正を行うようにしてもよい。
本発明の一実施の形態においては、Xパススケール微補正部(620x)およびYパススケール微補正部(620y)は、前段からの入力をシフトするバレルシフタと、前段からの入力と前記バレルシフタの出力を入力し加算又は減算するキャリーリプル加減算器の組を複数段含む構成としてもよい。
本発明の一実施の形態においては、複数段縦続接続された回転処理回路を、入力段側に備え、前記XおよびYパススケール粗補正部(610x、610y)を前記複数段縦続接続された回転処理回路の後段に備えた構成としてもよい。
図1は、本発明の一実施形態の線形近似CORDIC回路の構成を示す図である。図1を参照すると、本実施形態の線形近似CORDIC回路1000は、
第1から第q回転処理回路100〜100と、
XおよびYパススケール粗補正部610x、610yと、
XおよびYパススケール微補正部620x、620yと、
XおよびYパス変数乗算器300x、300yと、
XおよびYパス加減算器400x、400yと、
を備えている。
図1の本実施形態の線形近似CORDIC回路1000を、図3の第1の関連技術の線形近似CORDIC回路1001と比較すると、本実施形態においては、図3のXおよびYパス定数乗算器200x、200yの機能が、XおよびYパススケール粗補正部610x、610yとXおよびYパススケール微補正部620、620yに分離され、XおよびYパススケール粗補正部610x、610yはそれぞれ、入力段に配置され、XおよびYパススケール微補正部620x、620yはそれぞれXおよびYパス加減算器400x、400yの前段に配置されている。
また、本実施形態の線形近似CORDIC回路1000は、図4に示した第2の関連技術の線形近似CORDIC回路1002と比較すると、本実施形態においては、図4のXおよびYパス定数乗算器200x、200yの機能を、XおよびYパススケール粗補正部610x、610yと、XおよびYパススケール微補正部620、620yに分離し、スケール粗補正を、入力ベクトル[x(0),y(0)]’に対して行うことにより、Zパス定数乗算器500を不要としている。
本実施形態の動作および構成に関して、所要ビット精度をnとした場合を例に、説明する。
式(10)に示すスケーリング係数Kは、式(13)に示す繰り返しシフト加算処理で近似できる。式(13)中のqはn/2である。
Figure 2009110560
はj=0からj=n/2までの乗積を表す。
Figure 2009110560
(13)
ここで、0以外の値を取るγはlog2(n)以下にできることが知られている(詳細は、非特許文献3の記載が参照される)。
本実施形態では、スケール補正を行う繰り返しシフト加算処理を、シフト量がn/2以上のスケール微補正部と、n/2未満の粗補正処理の2段階に分ける。
このように、微補正スケール範囲を設定することにより、擬似回転処理の前半処理部分の残留回転角、つまり回転処理回路100〜100の出力z[q]に対するスケール補正が不要になる。
スケーリング係数Kは、式(14)に示すようにKq1とKq2の積として表される。Kq1は、式(15)に示すように、n/2未満の粗補正処理の繰り返しシフト加算処理で導出(近似)される。Kq2は、式(16)に示すように、シフト量がn/2以上のスケール微補正処理の繰り返しシフト加算処理で導出(近似)される。
Figure 2009110560
(14)
Figure 2009110560
(15)
Figure 2009110560
(16)
本実施形態の線形近似CORDIC回路1000は、入力ベクトル[x(0),y(0)]’、所望回転角z(0)を入力とし、入力ベクトル[x(0),y(0)]’がXおよびYパススケール粗補正部610x、610yに供給される。
XおよびYパススケール粗補正部610x、610yは、入力ベクトル[x(0),y(0)]’に対し、スケール粗補正処理を行い、Kq1x(0)、Kq1y(0)を第1回転処理回路100へ供給する(Kq1は式(15))。
第1回転処理回路100はKq1x(0)、Kq1y(0)、z(0)を入力とし、式(17)に示す処理を行い、x(1),y(1),z(1)を第2回転処理回路100に供給する。なお、式(17)のsignは符号演算子である。
Figure 2009110560
(17)

第2から第q回転処理回路100〜100はx(1)、y(1)、z(1)に対して式(18)に示す反復処理を行い、x(q)、y(q)、z(q)を出力する。信号x(j)、y(j)、z(j)(j=0〜q)は、全てbビット幅である。ここでbは、式(8)で表される。
Figure 2009110560
(18)
第2の関連技術の線形近似CORDIC回路1002と等価な処理を行う場合は、式(19)、(20)に示す処理をx(q)、y(q)、z(q)について行えばよい。
Figure 2009110560
(19)
Figure 2009110560
(20)
ここで、元の(線形近似でない)CORDICでは、最終基本回転角αn−1(≒2−(n−1))未満の回転角度誤差が本質的に生じるが、nビット精度を実現できることを考慮すると、式(19)に示すPにKq2αn−1未満の誤差が生じても問題ないことが分かる。
ここで、z(q)に対するスケ−リング処理を行わなかった場合の角度誤差Eは、z(q)が2−n/2未満であることを考慮すると、2−n未満となり、Kq2αn−1の近似値2−n+1より小さくなる。
そこで、本実施形態の線形近似CORDIC回路1000では、z(q)に対するスケ−リング処理をスキップできる。
Figure 2009110560
(21)
Figure 2009110560
(22)
具体的には、XおよびYパス定数乗算器200x、200y(XおよびYパススケール微補正部620x、620y)と、XおよびYパス変数乗算器300x、300yでx(q),y(q)に対し、Kq2とz(q)を乗算し、XおよびYパス加減算器400x、400yを用いて、式(23)に従い乗算結果を加減算し、xf、yfを求め、外部へ出力する。
Figure 2009110560
(23)
図2に、本実施形態のXパススケール粗補正部610xの構成例を示す。ここで、式(13)に示す繰り返しシフト加減算処理内で、γが0以外の値であり、かつシフト量がn/2以下のシフト加減算処理数をk、そのシフト量をs,..,sk−1とする。
この場合、本実施例のXパススケール粗補正部610xは、第1から第kキャリーリプル加減算器611〜611、第1から第kバレルシフタ612〜612から構成される。第1から第kバレルシフタ612〜612はシフト量をs,..,sk−1に従って、前段からの入力信号をシフトする。
第1から第kキャリーリプル加減算器611〜611は、γs0〜γsk−1に従って、シフトされた信号と元の信号を、加算もしくは減算する。
n=16の場合、Kは、{1+2^(−2)}*{1−2^(−5)}*{1+2^(−9)}*{1+2^(−10)}で表され(ただし、^は冪乗)、k=2、s=2,s=5となる。
Yパススケール粗補正部610y、XおよびYパススケール微補正部620x、620yも同様の構成で実現できる。
キャリーリプル加減算器は、LSB側から加減算結果が確定するため、繰り返しシフト加減算処理を行うと、シフト量が大きくなるほど、前段のMSB側が確定するまで演算を始められない問題が生じる。
この問題により発生する遅延を、「シフトリプル遅延」と呼称し、1ビットシフトによるシフトリプル遅延を1シフトリプル遅延として規格化する。配線遅延を無視すると、スケール補正部のLSBビット出力遅延は、スケール補正部内の総シフト量分のシフトリプル遅延に一致する。従って、繰り返し段数が同じ場合、スケール粗補正部610x、610yとスケール微補正部620x、620yでは、必ずスケール微補正部620x、620yの遅延が大きくなる。
n=16の場合、その遅延比は、(9+10)/(2+5)=2.7倍になる。また、全シフトリプル遅延の内、スケール粗補正部の占める割合は、(2+5)/(2+5+9+10)=27%となる。
なお、本実施構成は、キャリーリプル加減算器を例に説明したが、本発明は加減算器方式に依存しないことは勿論である。
本実施形態は、スケール補正処理全体遅延に対して、スケール粗補正部の占める割合は非常に低いため、第2の関連技術の線形近似CORDIC回路1002と比較して、殆ど処理遅延は増加しない。一方、Zパスに対するスケ−リング処理が不要なため回路規模を削減できる。
また、本実施形態は、スケール補正処理全体による遅延の大部分を占めるスケール微補正部をXおよびYパス定数乗算器200x、200yと並列に処理するため、第1の関連技術の線形近似CORDIC回路1001と比較して、大幅に処理遅延を短縮できる。
なお、本実施形態は、スケール補正を繰り返しシフト加算で実現し、シフト量がn/2以上のスケール微補正部とn/2未満の粗補正処理の2段階に分ける場合を例に説明したが、本発明は、微補正スケール範囲が擬似回転処理の前半処理部分の残留回転角に対するスケール補正が不要にするように設定されていれば、スケール補正の実現方式に依存せず有効であることは勿論である。
また、本実施形態は、スケール粗補正を入力段で行っている場合を例に説明したが、本発明は、かかる構成に限定されるものではなく、スケール粗補正の位置に依存せずに有効であることは勿論である。例えばXおよびYパススケール粗補正部610x610yを第1乃至第q回転処理部100〜100の後段に配置してもよい
なお、上記非特許文献1、2、3の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。

Claims (18)

  1. スケール補正処理をスケール粗補正とスケール微補正の2段階に分割し、
    擬似回転処理の後半処理と前記スケール微補正を並列に行う、ことを特徴とするCORDIC演算回路。
  2. 前記擬似回転処理の後半処理を乗算で実現する、ことを特徴とする請求項1に記載のCORDIC演算回路。
  3. 前記スケール微補正の範囲を、前記擬似回転処理の前半処理の残留回転角に対するスケール補正が不要にするように設定する、ことを特徴とする請求項1又は2に記載のCORDIC演算回路。
  4. 前記スケール補正処理を、繰り返しシフト加減算で行い、
    シフト量が所要ビット精度の半分以上の繰り返しシフト加減算処理で、前記スケール微補正を行い、
    前記シフト量が所要ビット精度の半分未満の繰り返しシフト加減算処理で、前記スケール粗補正を行う、ことを特徴とする請求項1乃至3のいずれか1項に記載のCORDIC演算回路。
  5. 前記繰り返しシフト加減算を、キャリーリプル加減算器で行う、ことを特徴とする請求項4に記載のCORDIC演算回路。
  6. ベクトル(X,Y)と回転角(Z)を入力とするCORDIC演算回路であって、
    前記ベクトル(X,Y)のX成分に対してスケール粗補正を行い、粗補正用のスケーリング係数と前記X成分の乗算結果を出力するXパススケール粗補正部と、
    前記ベクトルのY成分に対してスケール粗補正を行い、粗補正用のスケーリング係数と前記Y成分の乗算結果を出力するYパススケール粗補正部と、
    縦続接続された複数段の回転処理回路であって、初段の回転処理回路は、前記XおよびYパススケール粗補正部からそれぞれ出力されるX成分およびY成分と回転角とを入力して回転処理の反復処理を行い、後段の回転処理回路は、前段の回転処理回路から出力されるX成分およびY成分と回転角とを入力して回転処理の反復処理を行う、複数段の回転処理回路と、
    最終段の前記回転処理回路から出力されるX成分に対してスケール微補正処理を行い、微補正用のスケーリング係数と前記X成分の乗算結果を出力するXパススケール微補正部と、
    最終段の前記回転処理回路から出力されるY成分に対してスケール微補正処理を行い、微補正用のスケーリング係数と前記Y成分の乗算結果を出力するYパススケール微補正部と、
    前記Xパススケール微補正部に並置され、最終段の前記回転処理回路から出力されるY成分に対して、最終段の前記回転処理回路からの回転角度を乗算するXパス変数乗算器と、
    前記Yパススケール微補正部に並置され、最終段の前記回転処理回路から出力されるX成分に対して、最終段の前記回転処理回路からの回転角度を乗算するYパス変数乗算器と、
    前記Xパススケール微補正部での乗算結果と前記Xパス変数乗算器での乗算結果とを加減算した結果を出力するXパス加減算器と、
    前記Yパススケール微補正部での乗算結果と前記Yパス変数乗算器での乗算結果とを加減算した結果を出力するYパス加減算器と、
    を備えている、ことを特徴とするCORDIC演算回路。
  7. 前記Xパススケール粗補正部および前記Yパススケール粗補正部において、前記スケール補正処理を、繰り返しシフト加減算で行い、前記シフト量が、所要ビット精度の半分未満の繰り返しシフト加減算処理で、スケール粗補正を行う、ことを特徴とする請求項6記載のCORDIC演算回路。
  8. 前記XおよびYパススケール粗補正部は、前段からの入力をシフトするバレルシフタと、前段からの入力と前記バレルシフタの出力を入力し加算又は減算するキャリーリプル加減算器の組を複数段含む、ことを特徴とする請求項7記載のCORDIC演算回路。
  9. 前記XおよびYパススケール微補正部において、前記スケール補正処理を、繰り返しシフト加減算で行い、シフト量が所要ビット精度の半分以上の繰り返しシフト加減算処理で、前記スケール微補正を行う、ことを特徴とする請求項6又は7記載のCORDIC演算回路。
  10. 前記XおよびYパススケール微補正部は、前段からの入力をシフトするバレルシフタと、前段からの入力と前記バレルシフタの出力を入力し加算又は減算するキャリーリプル加減算器の組を複数段含む、ことを特徴とする請求項9記載のCORDIC演算回路。
  11. 前記複数段縦続接続された回転処理回路を入力段側に備え、前記XおよびYパススケール粗補正部を前記複数段縦続接続された回転処理回路の後段に備えた、ことを特徴とする請求項6記載のCORDIC演算回路。
  12. スケール補正処理をスケール粗補正とスケール微補正の2段階に分割し、
    擬似回転処理の後半処理と前記スケール微補正を並列に行う、ことを特徴とするCORDIC演算方法。
  13. 前記擬似回転処理の後半処理を乗算で実現する、ことを特徴とする請求項12に記載のCORDIC演算方法。
  14. 前記スケール微補正の範囲を、擬似回転処理の前半処理の残留回転角に対するスケール補正が不要にするように設定する、ことを特徴とする請求項12又は13に記載のCORDIC演算方法。
  15. 前記スケール補正処理を、繰り返しシフト加減算で行い、
    シフト量が所要ビット精度の半分以上の繰り返しシフト加減算処理で、前記スケール微補正を行い、
    前記シフト量が所要ビット精度の半分未満の繰り返しシフト加減算処理で、前記スケール粗補正を行う、ことを特徴とする請求項12乃至14のいずれか1項に記載のCORDIC演算方法。
  16. 前記繰り返しシフト加減算を、キャリーリプル加減算演算で行う、ことを特徴とする請求項15に記載のCORDIC演算方法。
  17. ベクトル(X,Y)と回転角(Z)を入力とするCORDIC演算回路であって、
    入力ベクトルのX成分x(0)に対し、スケール粗補正処理を行い、Kq1*x(0)を出力するXパススケール粗補正部と、
    前記入力ベクトルのY成分y(0)に対し、スケール粗補正処理を行い、Kq1*y(0)を出力するYパススケール粗補正部と、
    縦続接続された第1乃至第qの回転処理回路と、
    前記第qの回転処理回路から出力されるX成分x(q)に対してスケール微補正処理を行い、微補正用のスケーリング係数Kq2と前記X成分x(q)の乗算結果Kq2*x(q)を出力するXパススケール微補正部と、
    前記第qの回転処理回路から出力されるY成分y(q)に対してスケール微補正処理を行い、微補正用のスケーリング係数Kq2と前記Y成分y(q)の乗算結果Kq2*y(q)を出力するYパススケール微補正部と、
    前記Xパススケール微補正部に並置され、前記第qの回転処理回路から出力されるY成分y(q)と前記第qの回転処理回路からの回転角度z(q)とを乗算した結果z(q)*y(q)を出力するXパス変数乗算器と、
    前記Yパススケール微補正部に並置され、前記第qの回転処理回路から出力されるX成分x(q)と前記第qの回転処理回路からの回転角度z(q)とを乗算した結果z(q)*x(q)を出力するYパス変数乗算器と、
    前記Xパススケール微補正部での乗算結果Kq2*x(q)と前記Xパス変数乗算器での乗算結果z(q)*y(q)とを加算した結果を出力するXパス加減算器と、
    前記Yパススケール微補正部での乗算結果Kq2*y(q)と前記Yパス変数乗算器での乗算結果z(q)*x(q)とを減算した結果を出力するYパス加減算器と、
    を備え、
    スケーリング係数Kは粗補正用のスケーリング係数Kq1と微補正用のスケーリング計数Kq2の積Kq1*Kq2として表され、
    粗補正用のスケーリング係数Kq1は、
    Figure 2009110560
    ただし、
    Figure 2009110560
    すなわち、前記Xパススケール粗補正部およびYパススケール粗補正部において、所定ビット精度nの半分未満のスケール粗補正処理の繰り返しシフト加算処理で導出され、
    微補正用のスケーリング計数Kq2は、
    Figure 2009110560
    ただし、
    Figure 2009110560
    前記第1の回転処理回路では、前記Xパススケール粗補正部およびYパススケール粗補正部から出力されるKq1*x(0)およびKq1*y(0)と、回転角z(0)とを入力し、

    Figure 2009110560

    Figure 2009110560

    Figure 2009110560

    Figure 2009110560

    の演算により、ベクトルx(1)、y(1)と回転角z(1)を出力し、
    第(j+1)の回転処理回路(ただし、j=1〜q−1)では、第jの回転処理回路から出力されるx(j)、y(j)、z(j)を入力し、

    Figure 2009110560

    Figure 2009110560

    Figure 2009110560

    Figure 2009110560

    Figure 2009110560

    Figure 2009110560

    の演算により、ベクトルx(j+1)、y(j+1)と回転角z(j+1)を出力し、
    前記Xパススケール微補正部における、微補正用のスケーリング計数Kq2と、前記第qの回転処理回路の出力x(q)との積Kq2*x(q)と、前記Xパス変数乗算器における、前記第qの回転処理回路の出力z(q)とy(q)の積z(q)*y(q)の演算が並行して行われ、前記Yパススケール微補正部における、微補正用のスケーリング計数Kq2と、前記第qの回転処理回路の出力y(q)との積Kq2*y(q)と、前記Yパス変数乗算器における前記第qの回転処理回路の出力z(q)とx(q)の積z(q)*x(q)の演算が並行して行われ、
    前記Xパス加減算器は、Kq2*x(q)+z(q)*y(q)を出力し、
    前記Yパス加減算器は、Kq2*y(q)−z(q)*x(q)を出力する、CORDIC演算装置。
  18. 前記第qの回転処理回路の出力z(q)に対するスケーリング処理がスキップされる、ことを特徴とする請求項17記載のCORDIC演算回路。
JP2010501957A 2008-03-06 2009-03-05 Cordic演算回路及び方法 Active JP5229314B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010501957A JP5229314B2 (ja) 2008-03-06 2009-03-05 Cordic演算回路及び方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008056534 2008-03-06
JP2008056534 2008-03-06
PCT/JP2009/054188 WO2009110560A1 (ja) 2008-03-06 2009-03-05 Cordic演算回路及び方法
JP2010501957A JP5229314B2 (ja) 2008-03-06 2009-03-05 Cordic演算回路及び方法

Publications (2)

Publication Number Publication Date
JPWO2009110560A1 true JPWO2009110560A1 (ja) 2011-07-14
JP5229314B2 JP5229314B2 (ja) 2013-07-03

Family

ID=41056112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010501957A Active JP5229314B2 (ja) 2008-03-06 2009-03-05 Cordic演算回路及び方法

Country Status (4)

Country Link
US (1) US8572152B2 (ja)
EP (1) EP2254041B1 (ja)
JP (1) JP5229314B2 (ja)
WO (1) WO2009110560A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572151B2 (en) * 2010-03-15 2013-10-29 Integrated Device Technology, Inc. Methods and apparatuses for cordic processing
US9021003B2 (en) 2010-06-23 2015-04-28 Nec Corporation Processor and operating method
RU2473961C1 (ru) * 2011-12-12 2013-01-27 Виктор Николаевич Бабенко Устройство нормировки вектора
JP6335661B2 (ja) 2014-06-04 2018-05-30 キヤノン株式会社 演算装置およびその制御方法
US10168992B1 (en) * 2017-08-08 2019-01-01 Texas Instruments Incorporated Interruptible trigonometric operations
CN109032564B (zh) * 2018-08-16 2022-12-02 电子科技大学 一种高稳定性的cordic算法实现电路

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0632369A1 (en) * 1993-06-29 1995-01-04 Stichting voor de Technische Wetenschappen CORDIC algorithms and architectures
JP3095348B2 (ja) * 1996-02-16 2000-10-03 松下電器産業株式会社 データ圧縮伸長装置における離散余弦変換及び逆離散余弦変換装置
JP2000131419A (ja) * 1998-10-21 2000-05-12 Mitsubishi Electric Corp 演算装置
US6480871B1 (en) * 1999-04-07 2002-11-12 Dhananjay S. Phatak Algorithm (Method) and VLSI architecture for fast evaluation of trigonometric functions
DE69940400D1 (de) * 1999-06-29 2009-03-26 Sony Deutschland Gmbh Rundfunkempfänger für Vielfach-Übertragungssystem
US6772181B1 (en) * 1999-10-29 2004-08-03 Pentomics, Inc. Apparatus and method for trigonometric interpolation
EP1711888A1 (en) * 2004-01-28 2006-10-18 Koninklijke Philips Electronics N.V. Implementation of the cordic algorithm for complex phase rotation
US20060200510A1 (en) * 2005-01-31 2006-09-07 Wang Cindy C Precision cordic processor

Also Published As

Publication number Publication date
WO2009110560A1 (ja) 2009-09-11
US20110010408A1 (en) 2011-01-13
EP2254041A4 (en) 2011-05-11
EP2254041A1 (en) 2010-11-24
US8572152B2 (en) 2013-10-29
EP2254041B1 (en) 2014-11-26
JP5229314B2 (ja) 2013-07-03

Similar Documents

Publication Publication Date Title
JP5229314B2 (ja) Cordic演算回路及び方法
Licciardo et al. Weighted partitioning for fast multiplierless multiple-constant convolution circuit
US7711764B2 (en) Pipelined real or complex ALU
US9196017B2 (en) Apparatus, systems, and methods for removing noise from an image
KR100465371B1 (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
US9851947B2 (en) Arithmetic processing method and arithmetic processor having improved fixed-point error
JP2005018759A (ja) 2の浮動小数点数乗の概算を実施するための方法および装置
Chandra A novel method for scalable VLSI implementation of hyperbolic tangent function
US10303439B2 (en) Logarithm and power (exponentiation) computations using modern computer architectures
Juang Low latency angle recoding methods for the higher bit-width parallel CORDIC rotator implementations
CN115658008A (zh) 一种资源复用型超越函数运算实现方法
JP5516731B2 (ja) プロセッサおよび演算方法
Asim et al. Centered Symmetric Quantization for Hardware-Efficient Low-Bit Neural Networks.
CN113778378A (zh) 一种求解复数n次方根的装置和方法
CN108182050B (zh) 利用四输入点积电路计算三角函数
Hass Synthesizing optimal fixed-point arithmetic for embedded signal processing
Naresh et al. An area efficient multiplexer based CORDIC
Jacoby et al. Dual fixed-point CORDIC processor: Architecture and FPGA implementation
Low et al. A fast and compact circuit for integer square root computation based on Mitchell logarithmic method
Lakshmi et al. Low latency VLSI architecture for the radix-4 CORDIC algorithm
Wires et al. Reciprocal and reciprocal square root units with operand modification and multiplication
Lakshmi et al. High speed architectural implementation of CORDIC algorithm
Jana et al. A low-error, memory-based fast binary logarithmic converter
US20210334635A1 (en) Neural network accelerator configured to perform operation on logarithm domain
Lakshmi et al. FPGA implementation of a high speed VLSI architecture for CORDIC

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130304

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5229314

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150