Center for New Music and Audio Technologies |
Next: A Bit-Parallel Unrolled CORDIC
Up: Implementation of various CORDIC
Previous: Implementation of various CORDIC
A Bit-Parallel Iterative CORDIC
The CORDIC structure as discribed in equations 1.10,
1.11, 1.12 and 1.14 is represented
by the schematics in Figure 1.4 when directly translated
into hardware. Each branch consists of an adder-subtractor
combination, a shift unit and a register for buffering the output. At
the beginning of a calculation initial values are fed into the
register by the multiplexer where the MSB of the stored value in the
z-branch determines the operation mode for the
adder-subtractor. Signals in the x and y branch pass the shift units
and are then added to or subtracted from the unshifted signal in the
opposite path.
Figure 1.4:
Iterative CORDIC
|
The z branch arithmetically combines the registers values with the
values taken from a lookup table (LUT) whose address is changed accordingly
to the number of iteration. For iterations the output is mapped
back to the registers before initial values are fed in again and the
final sine value can be accessed at the output. A simple finite-state
machine is needed to control the multiplexers, the shift distance and
the addressing of the constant values.
When implemented in an FPGA the initial values for the vector
coordinates as well as the constant values in the LUT can be hardwired
in a word wide manner. The adder and the subtractor component are
carried out separately and a multiplexer controlled by the sign of the
angle accumulator distinguishes between addition and subtraction by
routing the signals as required. The shift operations as implemented
change the shift distance with the number of iterations but those
require a high fan in and reduce the maximum speed for the application
[11]. In addition the output rate is also limited by the
fact that operations are performed iteratively and therefore the
maximum output rate equals times the clock rate.
Next: A Bit-Parallel Unrolled CORDIC
Up: Implementation of various CORDIC
Previous: Implementation of various CORDIC
Home
Norbert Lindlbauer
2000-01-19