IP Library Granted Patent US 9,170,985
Granted Patent B1
US 9,170,985 · App. 13/802,505 · Granted Oct 27, 2015

Bidirectional fast fourier transform in an integrated circuit device

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 9,170,985
App. No.
13/802,505
Granted
Oct 27, 2015
Kind
B1
Abstract

Methods and systems for performing Fast Fourier Transform (FFT) operations are disclosed. A plurality of cascaded stages compute a selectable one of a forward decimation-in-frequency (DFT) FFT operation in a forward direction from an i th stage to a j th stage, and a reverse DFT FFT operation in a reverse direction from the j th stage to the i th stage. The reduction in time and resource usage from employing the disclosed bidirectional DIF FFT architectures may significantly increase performance of DIF applications, for example, ones that involve streaming FFTs.

Claims (64)

1. Bidirectional circuitry for performing Fast Fourier Transform (FFT) operations, said circuitry comprising:

a plurality of cascaded stages for computing a selectable one of,

a forward decimation-in-frequency (DFT) FFT operation in a forward direction from an i th stage to a i th stage of the plurality of cascaded stages, and

a reverse DFT FFT operation in a reverse direction from the j th stage to the i th stage of the plurality of cascaded stages;

a first input for receiving first data for processing in the plurality of cascaded stages in the forward direction according to the forward DFT FFT operation, the first input being selectively coupled to an input of the i th stage of the plurality of cascaded stages; and

a second input for receiving second data for processing in the plurality of cascaded stages in the reverse direction according to the reverse DFT FFT operation, the second input being selectively coupled to an input of the j th stage of the plurality of cascaded stages.

2. The circuitry of claim 1 , wherein the plurality of cascaded stages comprises a plurality of stages serially coupled via respective selection circuitries, wherein:

i th an stage of the plurality of stages has an input coupled to an output of a first selection circuitry, the first selection circuitry having a first input coupled to the first input for receiving the first data, and a second input coupled to an output of a (i+1) th stage of the plurality of stages.

3. The circuitry of claim 2 , wherein:

an (i+1) th stage of the plurality of stages has an input coupled to an output of a second selection circuitry, the second selection circuitry having a first input coupled to an output of the i th stage, and a second input coupled to an output of a (i+2) th stage of the plurality of stages; and

the j th stage of the plurality of stages has an input coupled to an output of a third selection circuitry, the third selection circuitry having a first input coupled to the second input for receiving the second data, and a second input coupled to an output of a (j−1) th stage,

wherein the (i+2) th stage and the (j−1) th stage are the same stage.

4. The circuitry of claim 1 , further comprising a plurality of twiddle stage generators, wherein each twiddle stage generator of the plurality of twiddle stage generators is configured to generate a respective plurality of twiddle factors corresponding to a respective FFT stage, the each twiddle stage generator being coupled to a respective stage of the plurality of cascaded stages in the forward direction and another respective stage of the plurality of cascaded stages in the reverse direction.

5. The circuitry of claim 4 , wherein a twiddle stage generator of the plurality of twiddle stage generators is configured to:

provide i th stage twiddle factors to the i th stage of the plurality of cascaded stages in response to the first data being processed in the forward direction according to the forward DFT FFT operation;

provide the i th stage twiddle factors to the j th stage of the plurality of cascaded stages in response to the second data being processed in the reverse direction according to the reverse DFT FFT operation.

6. The circuitry of claim 5 , wherein the twiddle stage generator is configured to generate the i th stage twiddle factors in digit-reversed order in response to the second data being processed according to the reverse DFT FFT operation in the reverse direction.

7. The circuitry of claim 5 , wherein the forward DFT FFT operation and the reverse DFT FFT operation are mixed radix FFT operations, and wherein the twiddle stage generator is configured to:

generate the i th stage twiddle factors to the i th stage of the plurality of cascaded stages based on a first twiddle stride in response to the first data being processed in the forward direction according to the forward DFT FFT operation; and

generate the i th stage twiddle factors to the j th stage of the plurality of cascaded stages based on a second twiddle stride in response to the second data being processed in the reverse direction according to the reverse DFT FFT operation, wherein the first twiddle stride is a multiple of the second twiddle stride.

8. The circuitry of claim 1 , wherein the forward DFT FFT operation and the reverse DFT FFT operation are mixed radix FFT operations, and wherein:

the first data is processed according to the forward DFT FFT operation through a series of radix-4 stages followed by a radix-2 stage;

the second data is processed according to the reverse DFT FFT operation through a series of radix-4 stages followed by a radix-2 stage; and

the i th stage is a radix-4 stage in the forward direction and a radix-2 stage in the reverse direction.

9. The circuitry of claim 8 , further comprising a twiddle stage generator, wherein:

the twiddle stage generator is configured to provide a plurality of twiddle factors to a selectable one of a stage of the plurality of cascaded stages in the forward direction or another stage of the plurality of cascaded stages in the reverse direction; and

a first twiddle stride of the plurality of twiddle factors provided in the backward direction is half that of a second twiddle stride of the plurality of twiddle factors provided in the forward direction.

10. The circuitry of claim 1 , wherein the forward DFT FFT operation and the reverse DFT FFT operation are mixed radix FFT operations, and wherein the plurality of cascaded stages comprises a radix-2 stage followed by a series of radix-4 stages.

11. A method of performing Fast Fourier Transform (FFT) operations in bidirectional circuitry, said method comprising:

computing, using a plurality of cascaded stages in the bidirectional circuitry, a selectable one of,

a forward decimation-in-frequency (DFT) FFT operation in a forward direction from an i th stage to a i th stage of the plurality of cascaded stages, and

a reverse DFT FFT operation in a reverse direction from the j th stage to the i th stage of the plurality of cascaded stages;

receiving, via a first input of said bidirectional circuitry, first data for processing in the plurality of cascaded stages in the forward direction according to the forward DFT FFT operation, the first input being selectively coupled to an input of the i th stage of the plurality of cascaded stages; and

receiving, via a second input of said bidirectional circuitry, second data for processing in the plurality of cascaded stages in the reverse direction according to the reverse DFT FFT operation, the second input being selectively coupled to an input of the j th stage of the plurality of cascaded stages.

12. The method of claim 11 , wherein the plurality of cascaded stages comprises a plurality of stages serially coupled via respective selection circuitries, wherein:

an i th stage of the plurality of stages has an input coupled to an output of a first selection circuitry, the first selection circuitry having a first input coupled to the first input for receiving the first data, and a second input coupled to an output of a (i+1) th stage of the plurality of stages.

13. The method of claim 12 , wherein:

an (i+1) th stage of the plurality of stages has an input coupled to an output of a second selection circuitry, the second selection circuitry having a first input coupled to an output of the i th stage, and a second input coupled to an output of a (i+2) th stage of the plurality of stages; and

the j th stage of the plurality of stages has an input coupled to an output of a third selection circuitry, the third selection circuitry having a first input coupled to the second input for receiving the second data, and a second input coupled to an output of a (j−1) th stage,

wherein the (i+2) th stage and the (j−1) th stage are the same stage.

14. The method of claim 11 , wherein said bidirectional circuitry comprises a plurality of twiddle stage generators, the method further comprising generating using each twiddle stage generator of the plurality of twiddle stage generators a respective plurality of twiddle factors corresponding to a respective FFT stage, the each twiddle stage generator being coupled to a respective stage of the plurality of cascaded stages in the forward direction and another respective stage of the plurality of cascaded stages in the reverse direction.

15. The method of claim 14 , further comprising:

providing, using a twiddle stage generator, i th stage twiddle factors to the i th stage of the plurality of cascaded stages in response to the first data being processed in the forward direction according to the forward DFT FFT operation;

providing, using the twiddle stage generator, the i th stage twiddle factors to the j th stage of the plurality of cascaded stages in response to the second data being processed in the reverse direction according to the reverse DFT FFT operation.

16. The method of claim 15 , further comprising generating, using the twiddle stage generator, the i th stage twiddle factors in digit-reversed order in response to the second data being processed according to the reverse DFT FFT operation in the reverse direction.

17. The method of claim 15 , wherein the forward DFT FFT operation and the reverse DFT FFT operation are mixed radix FFT operations, the method further comprising:

generating, using the twiddle stage generator, the i th stage twiddle factors to the i th stage of the plurality of cascaded stages based on a first twiddle stride in response to the first data being processed in the forward direction according to the forward DFT FFT operation; and

generating, using the twiddle stage generator, the i th stage twiddle factors to the j th stage of the plurality of cascaded stages based on a second twiddle stride in response to the second data being processed in the reverse direction according to the reverse DFT FFT operation, wherein the first twiddle stride is a multiple of the second twiddle stride.

18. The method of claim 11 , wherein the forward DFT FFT operation and the reverse DFT FFT operation are mixed radix FFT operations, the method further comprising:

processing the first data according to the forward DFT FFT operation through a series of radix-4 stages followed by a radix-2 stage; and

processing the second data according to the reverse DFT FFT operation through a series of radix-4 stages followed by a radix-2 stage, wherein the i th stage is a radix-4 stage in the forward direction and a radix-2 stage in the reverse direction.

19. The method of claim 18 , the method further comprising:

providing, using a twiddle stage generator, a plurality of twiddle factors to a selectable one of a stage of the plurality of cascaded stages in the forward direction or another stage of the plurality of cascaded stages in the reverse direction; and

providing a first twiddle stride of the plurality of twiddle factors in the backward direction that is half that of a second twiddle stride of the plurality of twiddle factors provided in the forward direction.

20. The method of claim 11 , wherein the forward DFT FFT operation and the reverse DFT FFT operation are mixed radix FFT operations, and wherein the plurality of cascaded stages comprises a radix-2 stage followed by a series of radix-4 stages.

21. A non-transient machine-readable data storage medium encoded with machine-executable instructions for configuring a programmable integrated circuit device as bidirectional circuitry for performing Fast Fourier Transform (FFT) operations, said instructions comprising:

instructions to configure logic of said programmable integrated circuit device as a plurality of cascaded stages for computing a selectable one of,

a forward decimation-in-frequency (DFT) FFT operation in a forward direction from an i th stage to a i th stage of the plurality of cascaded stages, and

a reverse DFT FFT operation in a reverse direction from the j th stage to the i th stage of the plurality of cascaded stages;

instructions to configure a first input of said programmable integrated circuit device for receiving first data for processing in the plurality of cascaded stages in the forward direction according to the forward DFT FFT operation, the first input being selectively coupled to an input of the i th stage of the plurality of cascaded stages; and

instructions to configure a second input of said programmable integrated circuit device for receiving second data for processing in the plurality of cascaded stages in the reverse direction according to the reverse DFT FFT operation, the second input being selectively coupled to an input of the j th stage of the plurality of cascaded stages.

22. The non-transient machine-readable data storage medium of claim 21 , wherein said instructions to configure logic of said programmable integrated circuit device as a plurality of cascaded stages comprises instructions to configure logic of said programmable integrated circuit device as a plurality of stages serially coupled via respective selection circuitries, wherein:

an i th stage of the plurality of stages has an input coupled to an output of a first selection circuitry, the first selection circuitry having a first input coupled to the first input for receiving the first data, and a second input coupled to an output of a (i+1) th stage of the plurality of stages.

23. The non-transient machine-readable data storage medium of claim 21 , further comprising instructions to configure logic of said programmable integrated circuit device as a plurality of twiddle stage generators, wherein each twiddle stage generator of the plurality of twiddle stage generators is configured to generate a respective plurality of twiddle factors corresponding to a respective FFT stage, the each twiddle stage generator being coupled to a respective stage of the plurality of cascaded stages in the forward direction and another respective stage of the plurality of cascaded stages in the reverse direction.

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2013
From: LANGHAMMER, MARTIN
To: ALTERA CORPORATION
Reel/Frame 030007/0897 →