On 10 June 2013 17:07, David Saroff <dsar...@nrao.edu> wrote:

> Short of compiling a design, can the resource usage of a PFB yellow block
> be seen?


> If the data rate is some submultiple of the FPGA clock, say 50 MSPS and
> 200 MHz is there a natural way to share resources?
>
> The question's context:
> 38 dipole antennae of the focal plane array for the green bank telescope.
> Signal from each of the 38 is sampled at 50 MSPS, digitized to 12 bits.
> What frequency resolution fits on a virtex-6? That is what is the number
> of taps P and fft bins n that will fit?
>
> Count multipliers as dsp48 blocks.
>
> 2000/38 =~ 50 dsp48 blocks per signal. That doesn't seem like enough. If
> there is a way to resource share, is there a factor of 200MHz/50MHz = 4
> available ideally?


Since I think you're talking about using the 64 input ADC, this is the
default input format. I.e, the 64x50MSa/s channels are presented to the
FPGA as 16x200MSa/s streams. There is a version of the CASPER PFB-FIR block
designed to deal with this, and with appropriate reordering, a normal
CASPER FFT works too.



> Then it looks more like 4 * 50 = 200 dsp48's per
> channel. That still doesn't seem like enough.


This is actually quite a lot. A PFB only costs 1 multiplier per tap per
stream, and an FFT costs scales only with log(N)


>
> What about a sample rate of 2.5 MHz? Then the potential reuse multiplier
> is 200MHz/2.5MHz = 80 and the number of multiplies per channel is a more
> comfortable 80 * 50 = 4000 The bandwidth is less for the 2.5 MSPS vrs 50
> MSPS, by a factor of 1/20th. That makes fewer fft bins n necessary, so
> might the advantage of lower sampling rates and narrower band widths be
> quadratic?
>
> Summary
> 1)when we parametrize a PFB, can we conveniently see how many dsp48s and
> slices, etc it requires?
>

As a rule of thumb the PFB FIR will cost you one multiplier per tap, and
the FFT ~2log(N) (where the 2 is from 4 multipliers per complex mult / 2
real streams FFT'd as one complex). [I'm sure someone will correct me if
this isn't right]
Rurik wrote a nice memo about PFB utilization (though geared towards wide
bandwidth implementation):
https://www.cfa.harvard.edu/twiki/pub/SMAwideband/MemoSeries/sma_wideband_utilization_1.pdf


> 2)if a PFB receives samples slower than the system clock, is there a way
> to share it between channels?
>

I don't know what the capabilities of Xilinx libraries are, but with the
64-input ADC we have been using a slightly modified version of the PFB
block (https://github.com/oxfork/mlib_devel/tree/master/ox_library) which
accepts time multiplexed data streams. We then reorder and use the normal
CASPER FFT.

FWIW, with this setup we can comfortably do 4-taps, 1024 channels (2048 pt
FFTs) with 32 antennas on ROACH 1. We run out or RAM long before
multipliers.

Cheers,
Jack


>
> some embarrassment for the beginner's questions.
>
>
>
>
>

Reply via email to