cordic-based processor ece 734 project presentation 05/08/02 jui-ning cheng
TRANSCRIPT
CORDIC-Based Processor
ECE 734
Project Presentation
05/08/02
Jui-Ning Cheng
Motivation
MAC unit computing is not efficient enough when the DSP algorithm includes more complicated functions, such as trigonometric, exponential, and logarithm.
CORDIC (COordinate Rotation DIgital Computer) is an iterative algorithm to perform vector rotations by arbitrary angles using only shifts and adds.
Algorithm
The basic CORDIC iteration equations at the i-th step are:
m: Coordinate parameter (1, 0, -1) i: Rotation direction (Rotation/Vectoring mode)
S(m,i): Shift sequence m,i: Rotation angle
Km,i: Scaling factor
i
imSiii ymxx ,
1 2
i
imSiii xyy ,
1 2
imiii zz ,1
Architecture
BarrelShifters
X Reg x(n)
BarrelShifters
MUX MUX
+ / -
x
x'
y(n) Y Reg
MUX MUX
+ / -
y
y'
i i
+ / -
Z Reg
z(i+1)
z(i)
i
a(n-1)..a(1)a(0)
generator
sign(xi)sign(yi)sign(zi)
rotation
vectoring
i
Pipelined Structure
Complexity is increased : Arithmetic operators are mapped into a dedicated unit, and also the additional registers between each stage.
Maximum throughput: Clock drives only one CORDIC operation per cycle.
BasicCORDICProcessor
REG
BasicCORDICProcessor
REG
BasicCORDICProcessor
REG
x
y
x'
y'
Implementation Examples
We classify these particular DSP function into three categories:
(a)Linear transformations: discrete Fourier transform, Chirp-Z transform, discrete Hartley transform, and fast Fourier transform.
(b)Digital filters: orthogonal digital filters, and adaptive lattice filters.
(c)Matrix based digital signal processing algorithms: QR factorization, with applications to Kalman filtering, eigenvalue and singular value decompositions.
This project will exam one example in each category to illustrate the utilization of CORDIC-based processor array.