Systems and methods for high throughput signal processing using interleaved data converters
View Patent ↗Various embodiments of methods and associated devices for increasing throughput in a programmable hardware element using interleaved data converters are disclosed. A device comprising a programmable hardware element may be configured to comprise a plurality N of processing portions. The device may receive an input signal, and sample the signal in an interleaved fashion, on a per sample basis, at an effective rate K, to produce N parallel data streams. The N parallel data streams may be processed in parallel by the plurality N of processing portions. Outputs of the plurality N of processing portions may be combined to produce output data. The effective rate K and/or the number N of parallel data streams may be specified by user input. Alternatively, these values may be determined automatically. For example, the effective rate K may be determined automatically based on a bandwidth of the input signal.
1. A method for processing a signal, the method comprising:
configuring a programmable hardware element of a device to comprise a plurality N of processing portions, wherein the number N of processing portions is based on a processing rate of the programmable hardware element and an effective sampling rate K;
receiving, at the device, an input signal;
sampling, by an analog to digital converter (ADC) of the device, the input signal, wherein said sampling is performed in an interleaved fashion on a per sample basis at the effective sampling rate K and wherein said sampling produces a plurality N of parallel data streams, wherein the effective rate K is greater than the processing rate of the programmable hardware element, wherein each of the N data streams has a rate K/N, wherein the rate K/N is not greater than the processing rate of the programmable hardware element;
each of the N processing portions processing a respective one of the N parallel data streams in parallel, wherein said processing produces a plurality of intermediate data streams; and
combining the plurality of intermediate data streams to produce output data.
2. The method of claim 1 ,
wherein each of the N processing portions produces an intermediate data stream at rate K/N; and
wherein the output data is output at rate K.
3. The method of claim 1 ,
wherein each of the N processing portions produces an intermediate data stream at output rate O, wherein output rate O is a different rate than K/N; and
wherein the output data is output at rate O*N.
4. The method of claim 1 , further comprising
receiving user input indicating the effective sampling rate K;
determining the maximum rate R of the programmable hardware element, wherein the processing rate of the programmable hardware element is the maximum rate R;
determining the number N of the parallel data streams and the number N of the processing portions based on the maximum rate R and the received effective sampling rate K.
5. The method of claim 1 , further comprising
determining the effective sampling rate K;
receiving user input indicating a desired clock rate of the programmable hardware element, wherein the processing rate of the programmable hardware element is the received desired clock rate;
determining the number N of the parallel data streams and the number N of the processing portions based on the desired clock rate and the effective sampling rate K, such that the rate K/N is not greater than the desired clock rate.
6. The method of claim 1 , wherein the effective rate K is based on a bandwidth of the input signal.
7. A device that processes a signal, the device comprising:
an analog to digital converter (ADC) configured to:
receive in an input signal to the device; and
sample the input signal in an interleaved fashion on a per sample basis at an effective rate K, wherein said sampling produces a plurality N of parallel data streams; and
a programmable hardware element having a maximum clock rate R that is less than K, the programmable hardware element comprising:
a plurality N of processing portions, each of the N processing portions configured to process one of the N parallel data streams at a rate K/N, wherein the N parallel data streams are processed in parallel by the N processing portions; and
a combining portion configured to combine the plurality of intermediate data streams to produce output data;
wherein the number N is determined based on the maximum clock rate R and the effective rate K.
8. The device of claim 7 , wherein the effective rate K is based on a bandwidth of the input signal.
9. A method for configuring a device that includes a programmable hardware element, the method comprising:
displaying a plurality of symbols representing signal processing blocks, wherein each of the signal processing blocks is useable to configure the programmable hardware element;
receiving user input selecting a first signal processing block, wherein the first signal processing block specifies a plurality of parallel function blocks and a combiner block;
determine a sampling rate K at which to sample an input signal to be provided to the device;
determining a maximum clock rate R of the programmable hardware element;
determining a number N of the parallel function blocks to instantiate on the programmable hardware element, such that N≧K/R; and
instantiating, on the programmable hardware element, the first signal processing block comprising the N parallel function blocks and the combiner block.
10. The method of claim 9 , wherein the device includes an interleaved analog to digital converter (ADC), the method further comprising:
configuring the interleaved ADC to sample the input signal provided to the device in an interleaved fashion on a per sample basis at the sampling rate K, wherein said sampling produces N parallel outputs; and
connecting the N parallel outputs of the ADC to respective inputs of the N parallel function blocks.
11. The method of claim 10 , wherein, after said instantiating, the programmable hardware element is configured to:
process the N parallel outputs of the ADC, each of the N parallel function blocks processing a respective one of the N parallel outputs of the ADC, wherein said processing produces a plurality of intermediate data streams at rate K/N; and
combine the plurality of intermediate data streams to produce output data.
12. The method of claim 9 , wherein the determining a number N of the parallel function blocks is further based on a number of programmable resources available in the programmable hardware element for instantiating the first signal processing block.
13. The method of claim 9 , wherein each of the parallel function blocks comprises an instantiation of a signal processing function, wherein the signal processing function comprises at least one of a finite impulse response (FIR) filter, a FFT (fast Fourier transform), an IFFT (inverse FFT), a complex auto-correlation, a complex cross-correlation, a digital mixer, a matrix inverter, a matrix multiplier, and a frequency domain equalizer.
14. The method of claim 9 , wherein the determining the sampling rate K comprises receiving user input specifying the sample rate K.
15. The method of claim 9 , wherein the determining the number N of the parallel function blocks comprises receiving user input specifying the number N.
16. The method of claim 9 , further comprising
receiving user input indicating a desired clock rate C of the programmable hardware element;
wherein the determining the number N of the parallel function blocks comprises automatically selecting the number N such that N≧K/C.
17. A method for processing a signal by a device comprising a programmable hardware element, the method comprising:
processing a digital signal using a plurality of processing portions of the programmable hardware element, wherein the digital signal comprises a plurality of parallel intermediate data streams, wherein each of the processing portions processes a respective one of the parallel data streams in parallel and outputs a respective intermediate data stream at a clock rate O, wherein the clock rate O is not greater than a maximum clock rate R of the programmable hardware element;
combining the intermediate data streams to produce a plurality M of output data streams, wherein the M output data streams represent a time-interleaved signal;
converting the plurality M of output data streams to a single analog signal, wherein the converting comprises interleaving the M output data streams on a per sample basis at a rate of O*M that is greater than the maximum clock rate R of the programmable hardware element.
18. The method of claim 1 , wherein the processing rate of the programmable hardware element is a maximum rate R at which each of the processing portions is able to process data.
19. The method of claim 1 , further comprising:
configuring the N processing portions to operate at a clock rate C that is less than a maximum clock rate of the programmable hardware element, wherein the processing rate of the programmable hardware element is the clock rate C.