Hey

> I haven't seen the Goertzel algorithm before, but it looks like a great 
> idea for this: we might be able to produce a coefficient DDS in just two 
> DSPs!

The Goertzel algorithm predates the FFT even and is used to calculate
sparse FFTs. It basically just calculates each bin individually. This
was one of the techniques in the book I read to calculate the twiddle
factors.

> For my applications, I'm *totally* DSP limited, but I agree that we 
> should try to cater to the greater CASPER community of course.

I think that it would be easy to provide users with the option to trade
off resources for others here so as to cater for everyone :)

> I think the reuse of control logic, coefficients etc would potentially
> be the biggest saver assuming wide bandwidth systems. Ideally the
> compiler would do this for us implicitly, but in the meantime explicit
> reuse with optional register stages to reduce fanout would be awesome.
> 
> You can change a setting on pipeline registers (and maybe other places 
> too) which allows it to do this.  it's called "Implement using 
> behavioral HDL" in simulink, or "allow_register_retiming" in the xBlock 
> interface.  I had a bad experience with it though: It'll try to optimize 
> EVERYTHING.  Got two identical registers which you intend to place on 
> opposite sides of the chip? They're now the same register.  In my 
> experience, the only good way to control the sharing (or lack thereof) 
> was to do it manually..... YMMV.

Interesting, I have not had a close look at how good it is.

> I've got another idea we can consider too.  This one is farther away.  
> I'm building radix-4 versions of my FFTs (1/2 as much fabric, 85% as 
> much DSP and 100% as much coeff).  Now, for radix 4, you get three 
> coefficient banks per butterfly stage, and while the sum total (# 
> coefficients stored) is the same, the coefficients are actually in trios 
> of (x^1; x^2; x^3 and an implicit x^0).  You could, in principle, store 
> just the x^1 and square/cube it into x^2 and x^3.  I haven't tried this 
> (just thought of it), so no idea regarding performance.  In addition, 
> while Dan and I are working with JPL legal to get my library 
> open-sourced, it's looking pretty clear that I won't be able to share 
> the really new stuff, so you'd have to do radix-4 on your own :-(

Dave McMahon built one a while ago (with bit growth too) so we have
something to work off. Will see how we go. It is always nice to bounce
ideas off you, even if you can't help with the work.

Cheers
Andrew




Reply via email to