Home > Products > Intellectual Property > Lattice IP Cores > CORDIC
CORDIC (COordinate Rotation DIgital Computer)
Overview
CORDIC (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
Pa
g
e 1 of 4CORDIC
10/6/2011htt
p
://www.latticesemi.com/
p
roducts/intellectual
p
ro
p
ert
y
/i
p
cores/cordic.cfm
Performance and Resource Utilization
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MH z)
1 647 1280 1207 85 - - 253
2 318 618 278 85 - - 176
3 640 1261 1175 69 - - 320
4 609 1203 1102 53 - - 298
LatticeECP31
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.
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MH z)
1 649 1283 1205 85 - - 279
2 308 602 278 85 - - 167
3 644 1268 1182 69 - - 276
4 624 1232 1104 53 - - 269
LatticeECP2M1
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.
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MH z)
1 649 1283 1205 85 - - 278
2 308 602 278 85 - - 171
3 644 1268 1182 69 - - 262
4 624 1232 1104 53 - - 271
LatticeECP21
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.
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MH z)
1 649 1196 1210 85 - - 183
2 331 605 278 85 - - 128
3 642 1181 1181 69 - - 172
4 612 1146 1105 53 - - 188
LatticeECP1
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
Pa
g
e 2 of 4CORDIC
10/6/2011htt
p
://www.latticesemi.com/
p
roducts/intellectual
p
ro
p
ert
y
/i
p
cores/cordic.cfm
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MH z)
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.
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MH z)
1 833 1631 1224 85 - - 389
2 402 739 292 85 - - 235
3 830 1709 1214 69 - - 332
4 803 1586 1155 53 - - 390
LatticeSC/M1
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.
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MH z)
1 649 1283 1205 85 - - 275
2 308 602 278 85 - - 159
3 644 1268 1182 69 - - 279
4 624 1232 1104 53 - - 274
LatticeXP21
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.
User Configurable Mode SLICEs LUTs Registers I/Os sysMEM EBRs MULT 18x18 fMAX (MH z)
1 649 1196 1210 85 - - 174
2 334 611 271 85 - - 114
3 640 1179 1178 69 - - 156
4 611 1146 1105 53 - - 176
LatticeXP1
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
Pa
g
e 3 of 4CORDIC
10/6/2011htt
p
://www.latticesemi.com/
p
roducts/intellectual
p
ro
p
ert
y
/i
p
cores/cordic.cfm
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.
Pa
g
e 4 of 4CORDIC
10/6/2011htt
p
://www.latticesemi.com/
p
roducts/intellectual
p
ro
p
ert
y
/i
p
cores/cordic.cfm