Legal claims defining the scope of protection, as filed with the USPTO.
1. A complex exponential vector sequence generator, comprising: a frequency generator stage comprising a multiplier for multiplying first and second programmable input frequency parameters to generate an output frequency value, where the output frequency value has a fixed value for time domain applications and has a changing value for frequency domain applications; a vector phase accumulator stage comprising an accumulator for adding a programmable vector length input parameter to a programmable output from the accumulator to generate an accumulator output that is supplied to a plurality of different vector element paths to generate a plurality of vector phase accumulator values, where each vector phase accumulator value is computed as a first value for time domain applications and is computed as a second value for frequency domain applications; one or more vector element multipliers coupled to receive the output frequency value and the plurality of vector phase accumulator values, and to generate therefrom a complex exponential phase index value for each of the different vector element paths; and a complex exponential generator stage coupled to receive the complex exponential phase index value for each vector element path and to compute therefrom a plurality of complex exponential values.
2. The complex exponential vector sequence generator of claim 1 , where the frequency generator stage is a single frequency generator stage shared in common with the one or more vector element multipliers.
3. The complex exponential vector sequence generator of claim. 1 , Where the frequency generator stage comprises a first input register for storing a first programmable input frequency parameter k and a second input register for storing a second programmable input frequency parameter f 0 ), so that the multiplier generates an output frequency value having a fixed value f 0 for time domain applications, and generates an output frequency value having a changing value k ·f 0 for frequency domain applications.
4. The complex exponential vector sequence generator of claim 1 , where the vector phase accumulator stage is a single vector phase accumulator stage shared in common. with the plurality of different vector element paths.
5. The complex exponential vector sequence generator of claim 1 , where the vector phase accumulator stage comprises a first vector parameter register for storing an initial phase parameter θ, and a second vector parameter register for storing the programmable vector length input parameter v and for storing the accumulator output, so that the accumulator generates an accumulator output at each vector element path i having a first value (i +v*n) for frequency domain applications at each clock cycle n, and generates an accumulator output at each vector element, path i having a second value θ+i +v*n for frequency domain applications at each clock cycle n.
6. The complex exponential vector sequence generator of claim 1 , where the vector phase accumulator stage comprises a plurality of adders connected in the plurality of different vector element paths, here each adder is coupled to receive the accumulator output as a first input and to receive a vector element path index as a second input such that the plurality of adders generate the plurality of vector phase accumulator values.
7. The complex exponential vector sequence generator of claim 1 , where the one or more vector element multipliers comprises a plurality of vector element multipliers coupled in the vector element paths to receive the output frequency value and the plurality of vector phase accumulator values.
8. The complex exponential vector sequence generator of claim 1 , where the complex exponential generator stage comprises a plurality of complex exponential generators coupled in the vector element paths to receive a complex exponential phase index value α i for each vector element path i and to compute therefrom a complex exponential values e j2πα i .
9. The complex exponential vector sequence generator of claim 1 , further comprising a permutation unit coupled to receive and rearrange the plurality of complex exponential values for use by vector data path in a single-instruction-stream, multiple-data-stream (SIMD) processor.
10. In a data processing system, a method for generating a plurality of complex exponential values with a programmable complex exponential sequence generator, comprising: programming the complex exponential sequence generator with input parameter values to generate complex exponential values; deriving a plurality of complex exponential phase index values in parallel from the input parameter values and generating a plurality of complex exponential values from the plurality of complex exponential phase index values, wherein deriving the plurality of complex exponential phase index values comprises computing, using a plurality of multipliers, a plurality of complex products of a frequency value and plurality of vector phase accumulator values derived from the input parameter values.
11. The method of claim 10 , further rearranging the plurality of complex exponential values into a vector format.
12. The method of claim 10 , further comprising multiplying first and second programmable input, frequency parameters to generate the frequency value, where the frequency value has a fixed value for time domain applications and has a changing value for frequency domain applications.
13. The method of claim 10 , further comprising using an accumulator to add a programmable vector length input parameter to a programmable output from the accumulator to generate an accumulator output that is supplied to a plurality of different vector element paths to generate the plurality of vector phase accumulator values, where each vector phase accumulator value is computed as a first value for time domain applications and is computed as a second value for frequency domain applications.
14. The method of claim 10 , where the plurality of complex exponential phase index values are derived from a common frequency generator stage and a common vector phase accumulator stage shared in common with a plurality of vector element multipliers which compute the plurality of complex exponential phase index values.
15. The method of claim 10 , where generating the plurality of complex exponential values comprises applying the plurality of complex exponential phase index values to a bank of complex exponential generators, each of which extracts a first plurality of bits from a received complex exponential phase index value to index into a pair of slope and intercept tables for generating a pair of slope and intercept values, which multiplies the slope values with an extracted second plurality of hits from the received complex exponential phase index value to compute a pair of product values, and which adds the pair of product values to a shifted pair of intercept values to compute I and Q values.
16. The method of claim 10 , where programming the complex exponential sequence generator comprises programming input parameter values to generate complex exponential values in a frequency domain.
17. The method of claim 10 , where programming the complex exponential sequence generator comprises programming input parameter values to generate complex exponential values in a time domain.
18. A device for generating a complex exponential sequence vector suitable for either frequency domain or time domain applications, comprising: a frequency generator stage comprising a first multiplier coupled to receive first and second multiplier operands from first and second clocked latch circuits, where the first multiplier receives a programmable input frequency parameter f 0 from the first clocked latch circuit and a programmable input frequency parameter k from the second docked latch circuit and generates a product of the first and second multiplier operands at a frequency stage output over a plurality of clock cycles; a vector phase accumulator stage for generating, a plurality of vector phase accumulator values, comprising: an accumulator coupled to receive a first and second addition operands from third and fourth clocked latch circuits, where the accumulator receives a programmable vector length parameter v from the third clocked latch circuit and receives a programmable phase parameter θ from the fourth clocked latch circuit and generates a sum of the first and second addition operands for storage in the third clocked latch circuit over the plurality of clock cycles, and a plurality of different vector element paths comprising a plurality of adders, each of which receives a first addition operand from the third clocked latch circuit and receives a second addition operand corresponding to a vector element index value for the vector element path, thereby generating the plurality of vector phase accumulator values; a vector element multiplier stage comprising a plurality of multipliers connected, respectively, to the plurality of different vector dement paths, where each multiplier receives the frequency stage output as a first multiplicand operand and receives a vector phase accumulator value as a second multiplicand operand, thereby generating, a plurality of complex exponential phase index values; a complex exponential generator stage coupled to receive the plurality of complex exponential phase index values and to compute therefrom a plurality of complex exponential values; and a permutation stage coupled to arrange the plurality of complex exponential values for use by a vector data path.
19. The device of claim 18 , where the clocked latch circuits are programmed with input parameter values k, f 0 , v for frequency domain applications so that the plurality of complex exponential phase index values α i for vector element path i are computed as α i =k*f 0 *(i +v*n), with k specifying an FFT stage index value (e.g., 0, 1,2,. . .), f 0 specifying a frequency spacing for FFT, v specifying a vector length, and n specifying the cycle index, starting with 0.
20. The device of claim 18 , where the docked latch circuits are programmed with input parameter values k, f 0 , v, θ for time domain applications so that the plurality of complex exponential phase index values α i for vector element path i are computed as α i =k*f 0 *(θ+i +v*n), with f 0 specifying a desired frequency, θspecifying a phase parameter, v specifying a vector length, and n specifying the cycle index, starting with 0.
21. The device of claim 18 , where the complex exponential generator stage comprises a plurality of complex exponential generators, each of which comprises: an input register for receiving an input complex exponential phase index value: first and second slope tables coupled to be indexed by a first plurality of bits from the input complex exponential phase index value for generating first and second slope values; first and second intercept tables coupled to be indexed by the first plurality of bits from the input complex exponential phase index value for generating first and second intercept values; first and second shifters coupled to generate first and second shifted intercept values; first and second multipliers coupled to multiply the first and second slope values with a second plurality of bits from the input complex exponential phase index value, thereby generating first and second product values; and first and second adders coupled to add the first and second shifted intercept values with the first and second product values corresponding, respectively to I and Q values.
Unknown
July 21, 2015
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.