Products / CORDIC IP Cores

CORDIC IP CORES


GIRD Systems, Inc. offers several COordinate Rotation DIgital Computer (CORDIC) IP cores for the efficient computation of various trigonometric and rotational functions. Our CORDIC IP cores limit the use of hardware multipliers to provide fast and accurate estimation of several mathematical functions for target platforms with limited hardware resources. Other functions not listed here, such as hyperbolic functions, exponential functions, logarithms, and square root, are available upon request. The various CORDIC cores are available in both serial and pipelined versions. The serial version accepts one input and produces one output per <number of iterations> clock cycles and the pipelined version can continually process samples with a latency equal to the <number of iterations>. CORDIC core source code was developed in a portable, vendor-agnostic manner and the underlying components of the core were developed to infer and take advantage of hardware features found in many FPGA's from various vendors. The degree of inference of these platform specific features is controlled via vendor-specific tool settings during the synthesis process.

All of GIRD Systems' CORDIC IP cores are available in netlist or source code formats (VHDL). Both formats include bit-accurate MATLAB models; a protected/pre-compiled model is included with the netlist package and full model source code is included with the source code package. A non-disclosure agreement is required to be in place prior to the purchase/release of any source code.

Optionally, our CORDIC IP Cores can support the Advanced eXtensible Interface (AXI 4-Lite) or the Avalon Streaming Interface (Avalon-ST) upon request.

Summary of Features


  • Pipelined and Serial architectures available to support a wide range of throughput and hardware utilization requirements


  • Configurable input/output data sample precision, number of iterations

  • Fixed-point data interface

  • Utilizes FPGA architecture features (multiplier/DSP blocks, Block RAM, etc.) via inference

  • Bit-accurate MATLAB model and testbench

  • VHDL testbench

  • Available as a netlist and protected model package or with full source code

  • Basic Technical support


CORDIC Arcsine*

The Serial and Pipelined Arcsine IP cores calculate the inverse sine of the input argument. By default, the zn output is represented in pi-radian units in the range -1 <= zn < 1 to utilize the full bit width of the output port, but an output range of -pi <= zn < pi can be configured via build-time parameters. A double-iteration algorithm is used to improve the accuracy and correct non-convergence of the estimated arcsine over single-iteration methods. The number of iterations, the input bit width, and the output bit width are build-time configurable parameters.


CORDIC Arctangent*

The Serial and Pipelined Arctangent IP cores calculate the four quadrant inverse tangent of input samples y0/x0. By default, the zn output is represented in pi-radian units in the range -1 <= zn < 1 to utilize the full bit width of the output port, but an output range of -pi <= zn < pi can be configured via build-time parameters. The number of iterations, the input bit width, and the output bit width are build-time configurable parameters.


CORDIC Sine/Cosine*

The Serial and Pipelined Sine/Cosine IP cores produce cosine and sine outputs for an input angle (z0). By default, the z0 input is represented in pi-radian units in the range -1 <= z0 < 1 to utilize the full bit width of the input port, but an input range of -pi <= z0 < pi can be configured via build-time parameters. The number of iterations, the input bit width, and the output bit width are build-time configurable parameters.


CORDIC Rotator*

The Serial and Pipelined Rotator IP cores rotate complex input samples (x0, y0) by an input angle (z0) and produces complex rotated samples. By default, the z0 input is represented in pi-radian units in the range -1 <= z0 < 1 to utilize the full bit width of the input port, but an input range of -pi <= z0 < pi can be configured via build-time parameters. The number of iterations, the input bit width, and the output bit width are build-time configurable parameters.



For more information or if you have questions or don't see what you're looking for, please contact us.

* Data sheets available upon request (contact us).


GIRD Systems is a proud partner of Xilinx Alliance Program.