IP Library Granted Patent US 8,589,463
Granted Patent B2
US 8,589,463 · App. 12/823,539 · Granted Nov 19, 2013

Calculation of trigonometric functions in an integrated circuit device

Inventor: Martin Langhammer (Alderbury, GB)
Assignee: Altera Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,589,463
App. No.
12/823,539
Granted
Nov 19, 2013
Kind
B2
Abstract

Circuitry for computing a trigonometric function of an input includes circuitry for relating the input to another value to generate an intermediate value, circuitry for selecting one of the input and the intermediate value as a trigonometric input value, circuitry for determining respective initial values of a plurality of trigonometric functions for the trigonometric input value, and circuitry for deriving, based at least in part on a trigonometric identity, a final value of the first trigonometric function from the respective initial values of the plurality of trigonometric functions. The trigonometric function may be any of sine, cosine and tangent and their inverse functions. The trigonometric identities used allow a computation of a trigonometric function to be broken into pieces that either are easier to perform or can be performed more accurately.

Claims (74)

1. Circuitry for computing a first trigonometric function of an original input value, said circuitry comprising:

circuitry for deriving an alternate input value from said original input value;

circuitry for selecting a trigonometric input value from among candidate values including said original input value and said alternate input value, said circuitry for selecting selecting said alternate input value when said original input value is less than a threshold;

circuitry for determining respective initial values of a plurality of respective trigonometric functions of said trigonometric input value; and

circuitry for deriving, based at least in part on a trigonometric identity involving said original input value and said alternate input value, a final value of said first trigonometric function of said original input value from said respective initial values of said plurality of respective trigonometric functions of said trigonometric input value.

2. The circuitry of claim 1 wherein:

said circuitry for determining respective initial values of a plurality of respective trigonometric functions determines sine and cosine values of said trigonometric input value; and

said circuitry for deriving a final value selects said initial value of one of said plurality of respective trigonometric functions when said original input value is in a first range, and selects said initial value of another of said plurality of respective trigonometric functions when said original input value is in a second range.

3. The circuitry of claim 2 wherein said circuitry for determining comprises CORDIC circuitry.

4. The circuitry of claim 2 wherein:

said circuitry for deriving an alternate input value subtracts said original input value from π/2 to generate said alternate input value;

said first range includes values less than π/4; and

said second range includes values at least equal to π/4.

5. The circuitry of claim 2 wherein:

said alternate input value comprises first and second alternate input values;

said circuitry for deriving an alternate input value subtracts said original input value from π/4 to generate said first alternate input value, and subtracts π/4 from said original input value to generate said second alternate input value;

said first range includes values at most equal to π/8;

said second range includes values at least equal to 3π/8 and at most equal to π/2; and

said circuitry for deriving a final value selectively combines sine and cosine of said first and second alternate input values.

6. The circuitry of claim 1 wherein:

said circuitry for determining respective initial values of a plurality of respective trigonometric functions determines sine and cosine values; and

said circuitry for deriving a final value combines said respective initial values of each of said plurality of respective trigonometric functions in a first manner of combination when said input is in a first range, and combines said respective initial values of each of said plurality of respective trigonometric functions in a second manner of combination when said input is in a second range.

7. The circuitry of claim 6 wherein said first manner of combination and said second manner of combination are selected from the group consisting of sums, differences, products, sums of products, differences of products, and combinations thereof.

8. The circuitry of claim 7 wherein:

said circuitry for deriving a final value is configured in a specialized processing block of a programmable integrated circuit device; and

said specialized processing block comprises a plurality of multipliers and at least one adder.

9. A method of configuring a programmable integrated circuit device as circuitry for computing a first trigonometric function of an original input value, said method comprising:

configuring logic of said programmable integrated circuit device as circuitry for deriving an alternate input value from said original input value;

configuring logic of said programmable integrated circuit device as circuitry for selecting a trigonometric input value from among candidate values including said original input value and said alternate input value, said circuitry for selecting selecting said alternate input value when said original input value is less than a threshold;

configuring logic of said programmable integrated circuit device as circuitry for determining respective initial values of a plurality of respective trigonometric functions of said trigonometric input value; and

configuring logic of said programmable integrated circuit device as circuitry for deriving, based at least in part on a trigonometric identity involving said original input value and said alternate input value, a final value of said first trigonometric function of said original input value from said respective initial values of said plurality of respective trigonometric functions of said alternate input value.

10. The method of claim 9 wherein:

configuring logic of said programmable integrated circuit device as circuitry for determining respective initial values of a plurality of respective trigonometric functions comprises configuring logic of said programmable integrated circuit device to determine sine and cosine values of said trigonometric input value; and

said configuring logic of said programmable integrated circuit device as circuitry for deriving, based at least in part on a trigonometric identity, a final value of said first trigonometric function from said respective initial values of said plurality of respective trigonometric functions comprises configuring logic of said programmable integrated circuit device to select said initial value of one of said plurality of respective trigonometric functions when said original input value is in a first range, and to select said initial value of another of said plurality of respective trigonometric functions when said original input value is in a second range.

11. The method of claim 10 wherein said configuring logic of said programmable integrated circuit device as circuitry for determining comprises configuring logic of said programmable integrated circuit device as CORDIC circuitry.

12. The method of claim 10 wherein:

said configuring logic of said programmable integrated circuit device as circuitry for deriving an alternate input value comprises configuring logic of said programmable integrated circuit device to subtract said original input value from π/2 to generate said alternate input value;

said first range includes values less than π/4; and

said second range includes values at least equal to π/4.

13. The method of claim 10 wherein:

said alternate input value comprises first and second alternate input values;

said configuring logic of said programmable integrated circuit device as circuitry for deriving an alternate input value comprises configuring logic of said programmable integrated circuit device to subtract said original input value from π/4 to generate said first alternate input value, and to subtract π/4 from said original input value to generate said second alternate input value;

said first range includes values at most equal to π/8;

said second range includes values at least equal to 3π/8 and at most equal to π/2; and

said configuring logic of said programmable integrated circuit device as circuitry for deriving a final value comprises configuring logic of said programmable integrated circuit device to selectively combine sine and cosine of said first and second alternate input values.

14. The method of claim 9 wherein:

said configuring logic of said programmable integrated circuit device as circuitry for determining respective initial values of a plurality of respective trigonometric functions comprises configuring logic of said programmable integrated circuit device as circuitry for determining sine and cosine values; and

said configuring logic of said programmable integrated circuit device as circuitry for deriving a final value comprises configuring logic of said programmable integrated circuit device as circuitry for combining said respective initial values of each of said plurality of respective trigonometric functions in a first manner of combination when said original input value is in a first range, and for combining said respective initial values of each of said plurality of respective trigonometric functions in a second manner of combination when said original input value is in a second range.

15. The method of claim 14 wherein said first manner of combination and said second manner of combination are selected from the group consisting of sums, differences, products, sums of products, differences of products, and combinations thereof.

16. The method of claim 15 wherein said configuring logic of said programmable integrated circuit device as circuitry for deriving a final value comprises configuring said circuitry for deriving a final value in a specialized processing block of a programmable integrated circuit device, said specialized processing block comprising a plurality of multipliers and at least one adder.

17. A non-transitory machine-readable data storage medium encoded with non-transitory machine-executable instructions for configuring a programmable integrated circuit device as circuitry for computing a trigonometric function of an original input value, said instructions comprising:

instructions to configure logic of said programmable integrated circuit device as circuitry for deriving an alternate input value from said original input value;

instructions to configure logic of said programmable integrated circuit device as circuitry for selecting a trigonometric input value from among candidate values including said original input value and said alternate input value, said circuitry for selecting selecting said alternate input value when said original input value is less than a threshold;

instructions to configure logic of said programmable integrated circuit device as circuitry for determining respective initial values of a plurality of respective trigonometric functions of said trigonometric input value; and

instructions to configure logic of said programmable integrated circuit device as circuitry for deriving, based at least in part on a trigonometric identity involving said original input value and said alternate input value, a final value of said first trigonometric function of said original input value from said respective initial values of said plurality of respective trigonometric functions of said alternate input value.

18. The non-transitory machine-readable data storage medium of claim 17 wherein:

said instructions to configure logic of said programmable integrated circuit device as circuitry for determining respective initial values of a plurality of respective trigonometric functions comprise said instructions to configure logic of said programmable integrated circuit device to determine sine and cosine values; and

said instructions to configure logic of said programmable integrated circuit device as circuitry for deriving, based at least in part on a trigonometric identity, a final value of said first trigonometric function from said respective initial values of said plurality of respective trigonometric functions comprise instructions to configure logic of said programmable integrated circuit device to select said initial value of one of said plurality of respective trigonometric functions when said original input value is in a first range, and to select said initial value of another of said plurality of respective trigonometric functions when said original input value is in a second range.

19. The non-transitory machine-readable data storage medium of claim 18 wherein said instructions to configure logic of said programmable integrated circuit device as circuitry for determining comprise instructions to configure logic of said programmable integrated circuit device as CORDIC circuitry.

20. The non-transitory machine-readable data storage medium of claim 18 wherein:

said instructions to configure logic of said programmable integrated circuit device as circuitry for deriving an alternate input value comprise instructions to configure logic of said programmable integrated circuit device to subtract said original input value from π/2 to generate said alternate input value;

said first range includes values at most equal to π/4; and

said second range includes values at least equal to π/4.

21. The non-transitory machine-readable data storage medium of claim 18 wherein:

said alternate input value comprises first and second alternate input values;

said instructions to configure logic of said programmable integrated circuit device as circuitry for deriving an alternate input value comprise instructions to configure logic of said programmable integrated circuit device to subtract said original input value from π/4 to generate said first alternate input value, and to subtract π/4 from said original input value to generate said second alternate input value;

said first range includes values at most equal to π/8;

said second range includes values at least equal to 3π/8 and at most equal to π/2; and

said instructions to configure logic of said programmable integrated circuit device as circuitry for deriving a final value comprise instructions to configure logic of said programmable integrated circuit device to selectively combine sine and cosine of said first and second alternate input values.

22. The non-transitory machine-readable data storage medium of claim 17 wherein:

said instructions to configure logic of said programmable integrated circuit device as circuitry for determining respective initial values of a plurality of respective trigonometric functions comprise instructions to configure logic of said programmable integrated circuit device as circuitry for determining sine and cosine values; and

said instructions to configure logic of said programmable integrated circuit device as circuitry for deriving a final value comprise instructions to configure logic of said programmable integrated circuit device as circuitry for combining said initial values of each of said plurality of respective trigonometric functions in a first manner of combination when said original input value is in a first range, and for combining said initial values of each of said plurality of respective trigonometric functions in a second manner of combination when said original input value is in a second range.

23. The non-transitory machine-readable data storage medium of claim 18 wherein said first manner of combination and said second manner of combination are selected from the group consisting of sums, differences, products, sums of products, differences of products, and combinations thereof.

24. The non-transitory machine-readable data storage medium of claim 23 wherein said instructions to configure logic of said programmable integrated circuit device as circuitry for deriving a final value comprise instructions to configure said circuitry for deriving a final value in a specialized processing block of a programmable integrated circuit device, said specialized processing block comprising a plurality of multipliers and at least one adder.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2010
From: LANGHAMMER, MARTIN
To: ALTERA CORPORATION
Reel/Frame 024711/0175 →
Continuity (1)
Related Publication 20110320513A1 · Dec 29, 2011