Modified CORDIC Algorithm for FPGA Trigonometric Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing CORDIC implementations in integrated circuit devices, such as FPGAs, require excessive hardware resources and suffer from accuracy issues due to inefficient logic structure usage and routing congestion, especially when calculating trigonometric functions for a wide range of angles.

Innovation Solution

A modified CORDIC implementation that treats different ranges of input angles differently by skipping initial rotations for intermediate and small angles, using left-shifting and look-up tables to normalize input angles, and adjusting scaling factors, thereby reducing the number of registers and logic required while maintaining accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a standard CORDIC implementation is used with full precision datapath, then accuracy is maintained, but the number of registers and hardware resources becomes excessively large

Engineering Contradiction:
Improvetrigonometric function accuracyVSAvoidnumber of registers and logic
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent divides the CORDIC computation into two separate datapaths: a Z datapath for angle normalization that operates with reduced precision, and an XY datapath for trigonometric function computation that operates with full precision. This segmentation allows each datapath to use the minimum necessary precision, reducing overall hardware resources while maintaining accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary normalization of the input angle in the Z datapath by computing the fractional part of the angle divided by 2π before feeding it to the main CORDIC computation. This preliminary action reduces the range of angles that need to be processed, allowing the XY datapath to operate with fewer iterations and reduced precision requirements.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If ripple-carry adders are used in current FPGA architectures, then implementation is straightforward, but routing congestion increases and system performance decreases

Engineering Contradiction:
Improveimplementation simplicityVSAvoidsystem performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent introduces a third dimension to the datapath architecture by separating the computation into Z datapath (for angle normalization) and XY datapath (for trigonometric functions). This dimensional separation allows different precision requirements and optimization strategies for each datapath, reducing routing congestion while maintaining implementation feasibility.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Measurement precision

If the datapath precision is increased to cover full input range, then accuracy for all angles is improved, but the number of registers increases quadratically

Engineering Contradiction:
Improveaccuracy for all input anglesVSAvoidnumber of registers
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent applies different precision qualities to different parts of the computation: the Z datapath uses reduced precision (sufficient for angle normalization), while the XY datapath uses full precision (necessary for accurate trigonometric function computation). This local quality differentiation reduces the overall number of registers required while maintaining accuracy where it matters most.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8510354B1Calculation of trigonometric functions in an integrated circuit device
Publication Date: 2013.08.13 ALTERA CORP
  • US8510354B1 patent drawing
  • US8510354B1 patent drawing
  • US8510354B1 patent drawing

AI summary

Circuitry for computing on x and y datapaths a trigonometric function of an input on a z datapath includes a comparison element to determine that the input is at or above a threshold, or below the threshold. The circuitry also includes a first left-shifter for shifting the z datapath by a constant when the input is below the threshold, and a second left-shifter for shifting an initialization value of the x datapath when the input is below the threshold. The circuitry further includes a look-up table including inverse tangent values based on negative powers of 2, and based on negative powers of 2-plus-the-constant and shifted by the constant, for adding to/subtracting from the z datapath, shifters for right-shifting elements of the x and y datapaths by amounts incorporating the constant and respective predetermined shift amounts that are adjusted when the input is below the threshold.