CORDIC processor
The DCORDIC uses the CORDIC algorithm to compute trigonometric, reverse trigonometric, hyperbolic and reverse hyperbolic functions.
It supports sine, cosine, arcus tangent functions for hyperbolic and trigonometric systems. Logarithm, square root and exponent functions can also be computed. It supports fixed point 24-bit numbers.
DCORDIC is a technology independent design that can be implemented in a variety of process technologies.

|

|
- 24-bit precision (IEEE-754 single preci-sion real mantissa format)
- 4-ulp accuracy (34-bit internal registers)
- Fully configurable
- Performs the following functions:
- sin(x), cos(x)
- sinh(x), cosh(x)
- arctan(x)
- arctanh(x)
- ln(x), ex, sqrt(x)
- Fully synthesizable
- Static synchronous design
- Positive edge clocking and no internal tri-states
- Scan test ready
|
- Math coprocessors
- DSP algorithms
- Embedded arithmetic coprocessor
- Fast data processing & control
|

 trigsel
 hyprsel
 rotatemode
 vectormode
 en
 datai (29:0)
 addr (2:0)
 we
 rd
datao (29:0) 
busy 

| Pin | Type | Description |
| trigsel | input | Trigonometric system select |
| hyprsel | input | Hyperbolic system select |
| rotatemode | input | Rotate mode select |
| vectormode | input | Vectoring mode select |
| en | input | Enable computing |
| datai (29:0) | input | Data bus (input) |
| addr (2:0) | input | Select register to read/write |
| we | input | Write data into register |
| rd | input | Read data from register |
| datao (29:0) | output | Data bus (output) |
| busy | output | Busy indicator |

 trigsel
 hyprsel
 rotatemode
 vectormode
 en
 datai (29:0)
 datao (29:0)
 addr (2:0)
 we
 rd
 busy

ShiftersIt performs shifting operations in successful iterations. Number of shifts vary and depend on internal iteration cycle and computed functions.
RegistersIt contains all data registers hold temporary operation results as well as final results. Input arguments are written to this register also.
Control UnitIt maintains control operation on Registers module, Shifters module and ROM unit while busy is active.
InterfaceIt performs communication between internal CORDIC modules and external devices. Signalizes when output registers contain a valid result.
ROMIt stores constant coefficients used for hyperbolic and trigonometric operations.
|