IP Library Granted Patent US 10,771,947
Granted Patent B2
US 10,771,947 · App. 16/506,820 · Granted Sep 8, 2020

Methods and apparatus for twiddle factor generation for use with a programmable mixed-radix DFT/IDFT processor

Inventors: Yuanbin Guo (Mountain House, CA); Hong Jik Kim (San Jose, CA)
Assignee: Cavium, LLC.
H04W4/80G06F17/142H04L27/2636
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 10,771,947
App. No.
16/506,820
Granted
Sep 8, 2020
Kind
B2
Abstract

Twiddle factor generation for use with a programmable mix-radix vector processor (“PVP”) capable of calculating discrete Fourier transform (“DFT/IDFT”) values. In an exemplary embodiment, an apparatus includes look-up table logic that receives twiddle control factors and outputs a selected twiddle factor scaler value (TFSV), a base vector generator that generates a base vector values based on the selected TFSV, and a twiddle column generator that generates a twiddle vector from the base vector.

Claims (35)

1. A device containing a programmable vector processor (PVP) able to process data for network communication, comprising:

a state machine configured to generate twiddle factor control (TFC) signals, scaling control signals, and radix engine control signals;

a twiddle factor generator coupled to the state machine and able to provide twiddle factor data in accordance with the TFC signals;

a scaling unit coupled to the state machine and operable to scale pipeline vector data based on the scaling control signals; and

a mixed radix engine coupled to the state machine and configured to generate a first radix result via radix factorization in response to the radix engine control signals.

2. The device of claim 1 , wherein the mixed radix engine is configured to perform iteration in accordance with the radix engine control signals by calculating a second radix result in response to the first radix result.

3. The device of claim 1 , wherein the mixed radix engine is programmed to facilitate generation of a discrete Fourier transform (DFT) output in response to the first radix result.

4. The device of claim 1 , wherein the mixed radix engine is programmed to facilitate generation of an inverse discrete Fourier transform (IDFT) output in response to the first radix result.

5. The device of claim 1 , further comprising a look-up table (LUT) coupled to twiddle factor generator and configured to store a set of radix twiddle coefficients and configured to receive twiddle control factors.

6. The device of claim 5 , wherein the LUT facilitates to output a selected twiddle factor scaler value (TFSV) in accordance with the twiddle control factors and one or more radix twiddle coefficients.

7. The device of claim 6 , further comprising a base vector generator coupled to the LUT and configured to generate a base vector value in accordance with the selected TFSV.

8. The device of claim 1 , wherein the LUT stores TFSVs for radix 3 and radix 6.

9. The device of claim 1 , wherein the LUT is configured to store TFSVs for radix 4 and radix 5.

10. The device of claim 1 , wherein the twiddle vector generator includes a vector cross multiplier that iteratively multiplies the base vector to generate the twiddle vector.

11. The device of claim 10 , wherein the twiddle vector generator includes step coefficients to compute twiddle vectors for a last radix stage.

12. The device of claim 1 , wherein the twiddle vector is output to a twiddle multiplication unit in a vector pipeline that carries up to 12 samples per cycle.

13. A method of generating twiddle values for a programmable vector processor (PVP) for network communication, the method comprising:

providing twiddle factor control (TFC) signals by a state machine to a twiddle factor generator for generating twiddle factor data;

sending scaling control signals via the state machine to a scaling unit for scaling pipeline vector data;

forwarding radix engine control signals from the state machine to a mixed radix engine for computing an intermediate radix result in response to the twiddle factor data and the pipeline vector data; and

storing the intermediate radix result in a memory bank for next iteration for determining a discrete Fourier transform (DFT) result.

14. The method of claim 13 , further comprising receiving twiddle control factors, by look-up table (“LUT”) logic, containing information relating to twiddle factor.

15. The method of claim 13 , further comprising

searching an LUT to identify at least one radix twiddle coefficient in accordance with the twiddle control factors; and

obtaining a selected twiddle factor scaler value (TFSV) in response to the radix twiddle coefficient.

16. The method of claim 15 , further comprising generating a base vector value based on the TFSV and generating a twiddle vector from the base vector.

17. The method of claim 15 , further comprising generating an address associated with the received twiddle control factors.

18. A method of generating twiddle values via multiple iterations in a programmable vector processor (PVP), the method comprising:

forwarding vector data from a memory to a vector mixed-radix engine via a vector data-path pipeline;

computing by the vector mixed-radix engine an intermediate radix result in accordance with the vector data;

storing the intermediate radix result in the memory for next iteration;

reconfiguring the vector mixed-radix engine based on a next radix factor; and

outputting a final radix result by the vector mix-radix engine in response to the intermediate radix result retrieved from the memory passing through the vector data-path pipeline.

19. The method of claim 18 , wherein forwarding vector data from a memory to a vector mixed-radix engine further includes providing twiddle factor control (TFC) signals by a state machine to a twiddle factor generator for generating twiddle factor data.

20. The method of claim 18 , wherein forwarding vector data from a memory to a vector mixed-radix engine further includes sending scaling control signals via the state machine to a scaling unit for scaling pipeline vector data.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2019
From: GUO, YUANBIN; KIM, HONG JIK
To: CAVIUM, LLC
Reel/Frame 050187/0831 →