JPWO2009110560A1 - Cordic演算回路及び方法 - Google Patents
Cordic演算回路及び方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 239000013598 vector Substances 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 description 10
- 230000003252 repetitive effect Effects 0.000 description 6
- 238000012804 iterative process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5446—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
- G06T3/604—Rotation 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
Description
本願は、先の日本特許出願2008−056534号(2008年3月6日出願)の優先権を主張するものであり、前記先の出願の全記載内容は、本書に引用をもって繰込み記載されているものとみなされる。
gはオーバーフロー対策のMSB(Most Significant Bit)ガードビット数、
mは丸め誤差対策のLSB(Least Significant Bit)ガードビット数である。
が
で線形近似できることを利用しており、線形近似CORDICの名前の由来となっている。
第1〜第q回転処理回路1001〜100q、
XおよびYパス定数乗算器200x、200y、
XおよびYパス変数乗算器300x、300y、
XおよびYパス加減算器400x、400y
を備えている。
z[q]<2−q
であることを利用して、x(q),y(q),z(q)の有効上位(n/2+m)ビットのみを抽出し、(n/2+m)x(n/2+m)ビット変数乗算を行っている。
ct=b−g=n+mビット
で表現できるため、XおよびYパス定数乗算器200x、200yは、
(ct)xbビット定数乗算を行っている。
第1〜第q回転処理回路1001〜100q、
XおよびYパス定数乗算器200x、200y、
XおよびYパス変数乗算器300x、300y、
XおよびYパス加減算器400x、400yと、
Zパス定数乗算器500と、
を備えている。
200x Xパス定数乗算器
200y Yパス定数乗算器
300x Xパス変数乗算器
300y Yパス変数乗算器
400x Xパス加減算器
400y Yパス加減算器
500 Zパス定数乗算器
610x Xパススケール粗補正部
610y Yパススケール粗補正部
620x Xパススケール微補正部
620y Yパススケール微補正部
6111〜611k 第1から第kキャリーリプル加減算器
6121〜612k 第1から第kバレルシフタ
1000 線形近似CORDIC回路
1001 線形近似CORDIC回路
1002 線形近似CORDIC回路
第1から第q回転処理回路1001〜100qと、
XおよびYパススケール粗補正部610x、610yと、
XおよびYパススケール微補正部620x、620yと、
XおよびYパス変数乗算器300x、300yと、
XおよびYパス加減算器400x、400yと、
を備えている。
第2から第q回転処理回路1002〜100qは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)で表される。
Claims (18)
- スケール補正処理をスケール粗補正とスケール微補正の2段階に分割し、
擬似回転処理の後半処理と前記スケール微補正を並列に行う、ことを特徴とするCORDIC演算回路。 - 前記擬似回転処理の後半処理を乗算で実現する、ことを特徴とする請求項1に記載のCORDIC演算回路。
- 前記スケール微補正の範囲を、前記擬似回転処理の前半処理の残留回転角に対するスケール補正が不要にするように設定する、ことを特徴とする請求項1又は2に記載のCORDIC演算回路。
- 前記スケール補正処理を、繰り返しシフト加減算で行い、
シフト量が所要ビット精度の半分以上の繰り返しシフト加減算処理で、前記スケール微補正を行い、
前記シフト量が所要ビット精度の半分未満の繰り返しシフト加減算処理で、前記スケール粗補正を行う、ことを特徴とする請求項1乃至3のいずれか1項に記載のCORDIC演算回路。 - 前記繰り返しシフト加減算を、キャリーリプル加減算器で行う、ことを特徴とする請求項4に記載のCORDIC演算回路。
- ベクトル(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演算回路。 - 前記Xパススケール粗補正部および前記Yパススケール粗補正部において、前記スケール補正処理を、繰り返しシフト加減算で行い、前記シフト量が、所要ビット精度の半分未満の繰り返しシフト加減算処理で、スケール粗補正を行う、ことを特徴とする請求項6記載のCORDIC演算回路。
- 前記XおよびYパススケール粗補正部は、前段からの入力をシフトするバレルシフタと、前段からの入力と前記バレルシフタの出力を入力し加算又は減算するキャリーリプル加減算器の組を複数段含む、ことを特徴とする請求項7記載のCORDIC演算回路。
- 前記XおよびYパススケール微補正部において、前記スケール補正処理を、繰り返しシフト加減算で行い、シフト量が所要ビット精度の半分以上の繰り返しシフト加減算処理で、前記スケール微補正を行う、ことを特徴とする請求項6又は7記載のCORDIC演算回路。
- 前記XおよびYパススケール微補正部は、前段からの入力をシフトするバレルシフタと、前段からの入力と前記バレルシフタの出力を入力し加算又は減算するキャリーリプル加減算器の組を複数段含む、ことを特徴とする請求項9記載のCORDIC演算回路。
- 前記複数段縦続接続された回転処理回路を入力段側に備え、前記XおよびYパススケール粗補正部を前記複数段縦続接続された回転処理回路の後段に備えた、ことを特徴とする請求項6記載のCORDIC演算回路。
- スケール補正処理をスケール粗補正とスケール微補正の2段階に分割し、
擬似回転処理の後半処理と前記スケール微補正を並列に行う、ことを特徴とするCORDIC演算方法。 - 前記擬似回転処理の後半処理を乗算で実現する、ことを特徴とする請求項12に記載のCORDIC演算方法。
- 前記スケール微補正の範囲を、擬似回転処理の前半処理の残留回転角に対するスケール補正が不要にするように設定する、ことを特徴とする請求項12又は13に記載のCORDIC演算方法。
- 前記スケール補正処理を、繰り返しシフト加減算で行い、
シフト量が所要ビット精度の半分以上の繰り返しシフト加減算処理で、前記スケール微補正を行い、
前記シフト量が所要ビット精度の半分未満の繰り返しシフト加減算処理で、前記スケール粗補正を行う、ことを特徴とする請求項12乃至14のいずれか1項に記載のCORDIC演算方法。 - 前記繰り返しシフト加減算を、キャリーリプル加減算演算で行う、ことを特徴とする請求項15に記載のCORDIC演算方法。
- ベクトル(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パス加減算器と、
を備え、
スケーリング係数Kqは粗補正用のスケーリング係数Kq1と微補正用のスケーリング計数Kq2の積Kq1*Kq2として表され、
粗補正用のスケーリング係数Kq1は、
ただし、
すなわち、前記Xパススケール粗補正部およびYパススケール粗補正部において、所定ビット精度nの半分未満のスケール粗補正処理の繰り返しシフト加算処理で導出され、
微補正用のスケーリング計数Kq2は、
ただし、
前記第1の回転処理回路では、前記Xパススケール粗補正部およびYパススケール粗補正部から出力されるKq1*x(0)およびKq1*y(0)と、回転角z(0)とを入力し、
の演算により、ベクトルx(1)、y(1)と回転角z(1)を出力し、
第(j+1)の回転処理回路(ただし、j=1〜q−1)では、第jの回転処理回路から出力されるx(j)、y(j)、z(j)を入力し、
の演算により、ベクトル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演算装置。 - 前記第qの回転処理回路の出力z(q)に対するスケーリング処理がスキップされる、ことを特徴とする請求項17記載のCORDIC演算回路。
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)
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)
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 |
-
2009
- 2009-03-05 JP JP2010501957A patent/JP5229314B2/ja active Active
- 2009-03-05 EP EP09717736.4A patent/EP2254041B1/en not_active Not-in-force
- 2009-03-05 WO PCT/JP2009/054188 patent/WO2009110560A1/ja active Application Filing
- 2009-03-05 US US12/919,632 patent/US8572152B2/en active Active
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 |