IP ExpressCORDIC (COordinate Rotation DIgital Computer) is a simple and efficient algorithm to calculate hyperbolic and trigonometric functions and convert polar co-ordinates to artesian and vice versa. It is an iterative method that requires simple arithmetic operations such as addition, subtraction, bit shift and table look up. This frees up any available multipliers in the device for use in more complex tasks.

The Lattice CORDIC IP is configurable and several functions can be implemented in the IP core: Rotation, Translation, Sin and Cos, Arctan. Two architecture configurations are available for the arithmetic unit: Parallel, with single cycle data throughput, and Word-serial, with multiple cycles throughput. The input data, output data widths and iterative number are configurable over a wide range. The IP core uses full internal precision while allowing variable output precision with several choices for rounding.

Features

  • Functions supported:
    • Vector rotation (polar to rectangular)
    • Vector translation (rectangular to polar)
    • Sin and cos
    • Arctan
  • Input data widths from 8 to 32 bits
  • Configurable number of iterations used to derive output from 4 to 32
  • Optional pre-rotation module
  • Optional amplitude compensation scaling module to compensate for the CORDIC algorithm’s output amplitude scale factor
  • Selectable rounding algorithm: truncation, rounding up, rounding away from zero, convergent rounding
  • Selectable parallel architectural configuration for throughput optimization
  • Selectable word-serial architectural configuration for area optimization
  • Signed 2’s complement data
  • Optional clock enable (ce) and synchronous reset (sr) control signals
  • Full precision internal arithmetic

Jump to

Block Diagram

Performance and Size

LatticeECP31
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MHz)
1 647 1280 1207 85 - - 253
2 318 618 278 85 - - 176
3 640 1261 1175 69 - - 320
4 609 1203 1102 53 - - 298

1. Performance and utilization data are generated targeting an LFE3-70E-8FN484CES device using Lattice Diamond 1.0 and Synplify Pro for Lattice D-2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeECP3 family.

LatticeECP2M1
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MHz)
1 649 1283 1205 85 - - 279
2 308 602 278 85 - - 167
3 644 1268 1182 69 - - 276
4 624 1232 1104 53 - - 269

1. Performance and utilization data are generated targeting an LFE2M-20E-7F484C device using Lattice Diamond 1.0 and Synplify Pro for Lattice D-2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeECP2M family.

LatticeECP21
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MHz)
1 649 1283 1205 85 - - 278
2 308 602 278 85 - - 171
3 644 1268 1182 69 - - 262
4 624 1232 1104 53 - - 271

1. Performance and utilization data are generated targeting an LFE2-20E-7F484C device using Lattice Diamond 1.0 and Synplify Pro for Lattice D-2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeECP2 family.

LatticeECP1
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MHz)
1 649 1196 1210 85 - - 183
2 331 605 278 85 - - 128
3 642 1181 1181 69 - - 172
4 612 1146 1105 53 - - 188

1. Performance and utilization data are generated targeting an LFECP20E-5F484C device using Lattice Diamond 1.0 and Synplify Pro for Lattice D-2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeECP family.

LatticeEC1
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MHz)
1 649 1196 1210 85 - - 188
2 334 611 271 85 - - 124
3 640 1179 1178 69 - - 170
4 611 1146 1105 53 - - 186

1. Performance and utilization data are generated targeting an LFEC20E-5F484C device using Lattice Diamond 1.0 and Synplify Pro for Lattice D-2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeEC family.

LatticeSC/M1
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MHz)
1 833 1631 1224 85 - - 389
2 402 739 292 85 - - 235
3 830 1709 1214 69 - - 332
4 803 1586 1155 53 - - 390

1. Performance and utilization data are generated targeting an LFSC3GA25E-7F900C device using Lattice Diamond 1.0 and Synplify Pro for Lattice D-2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeSC/M family.

LatticeXP21
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MHz)
1 649 1283 1205 85 - - 275
2 308 602 278 85 - - 159
3 644 1268 1182 69 - - 279
4 624 1232 1104 53 - - 274

1. Performance and utilization data are generated targeting an LFXP2-30E-7F484C device using Lattice Diamond 1.0 and Synplify Pro for Lattice D-2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeXP2 family.

LatticeXP1
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MHz)
1 649 1196 1210 85 - - 174
2 334 611 271 85 - - 114
3 640 1179 1178 69 - - 156
4 611 1146 1105 53 - - 176

1. Performance and utilization data are generated targeting an LFXP20E-5F484C device using Lattice Diamond 1.0 and Synplify Pro for Lattice D-2009.12L-1 software. Performance may vary when using a different software version or targeting a different device density or speed grade within the LatticeXP family.

Ordering Information

Family Part Numbers
LatticeECP3 CORDIC-E3-U1
LatticeECP2M CORDIC-PM-U1
LatticeECP2 CORDIC-P2-U1
LatticeEC/P CORDIC-E2-U1
LatticeSC/M CORDIC-SC-U1
LatticeXP2 CORDIC-X2-U1
LatticeXP CORDIC-XM-U1

IP Express Version: 1.1

Evaluate: To download a full evaluation version of this IP, go to the IPexpress tool and click the IP Server button in the toolbar. All LatticeCORE IP cores and modules available for download will be visible. For more information on viewing/downloading IP please read the IP Express Quick Start Guide.

Purchase: To find out how to purchase the IP Core, please contact your local Lattice Sales Office.

Documentation

Quick Reference Information Resources
  TITLE NUMBER VERSION DATE FORMAT SIZE
CORDIC IP Core User's Guide IPUG81 01.3 8/30/2012 PDF 2.5 MB
  TITLE NUMBER VERSION DATE FORMAT SIZE
IPexpress Quick Start Guide 8/5/2010 PDF 304.8 KB