Modified CORDIC Algorithm for FPGA Trigonometric Computation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


