Something we've had with PFBs and FFTs is that they don't resize properly
if you simply change their length in a design. It may be worth deleting
them and putting new ones.
On 12 Sep 2015 20:03, "Danny Price" <dpr...@cfa.harvard.edu> wrote:

> Hi Michael
>
> I always blame the sync gen first! I’d suggest just sending out a single
> pulse to reset the logic, not a heartbeat, at least to begin with, to rule
> this out. Jack’s suggestion that it might be the addressing of the shared
> BRAM is definitely a possibility too.
>
> It’s very easy for the FFT to become broken if you’re using an unstable
> github branch. I’d suggest testing the FFT by itself in its own simulink
> model. You can use the blackbox tutorial setup as a starting point, and
> then add in some test vectors. The easiest test vector is a delta function,
> e.g. [0 0 1 0 0 … 0]. The FFT will take the FT of this, which will be a
> sine wave if you look at the real/imag components separately (take the
> power and you’ll get back a DC signal), where the frequency of the wave
> will depend on where the delta is.
>
> The test procedure in this case is to connect up a scope to the output and
> just look to see if you get a sine wave out, your eye will be able to tell
> if it’s a major bug. Once you’ve got it simulating, blackbox it up and then
> you don’t have to worry.
>
> Also look out for toolflow version mismatches. As Jack (et al) have just
> updated the casper_astro repository, I’d suggest using that:
> https://github.com/casper-astro/mlib_devel
> Make sure to run update_casper_blocks(gcs) on your design. Deleting and
> redrawing the FFT from scratch isn’t a bad idea either.
>
> Once you’ve got it simulating OK, here’s some other general tips for
> spectrometer that I started writing before reading your email properly:
>
> * One of the first things I’d do is play around with the shift schedule. A
> 2^15 point FFT will have 15 stages, and shifting every stage will probably
> shift your signal into oblivion. It doesn’t look to me like you have
> overflows (generally lots of spikes everywhere), but overshifting can also
> be detrimental. Maybe try writing 0b111111100000 or so, so you shift the
> first N stages only (someone may have a more rigorous approach/strategy?).
>
> * It’s also important to check that your RMS input from the digitizer
> isn’t too high. Even with RFI, having an RMS of 32 or below on an 8-bit ADC
> would be good. A good reference for this is: A. R. Thompson, D. T. Emerson,
> and F. R. Schwab, “Convenient formulas for quantization efficiency,” Radio
> Science, vol. 42, p. 3022, Jun. 2007 (Just read the last paragraph if
> you’re pressed for time!). You can compute the RMS by looking at raw ADC
> samples (use a snapshot block)
>
> * An approach I’ve found useful for debugging is looking at your data in
> terms of bits — i.e. take the log2 of your data. This can help find
> quantization and saturation issues. In the tut3_spectrum.png, all the RFI
> spikes are suspiciously similar heights, which I would guess is due to
> saturation or quantization somewhere along the line.
>
> Cheers
> Danny
>
> On Sep 12, 2015, at 9:34 AM, Michael D'Cruze <
> michael.dcr...@postgrad.manchester.ac.uk> wrote:
>
> Hi everyone,
>
>
> I’m having quite a lot of trouble getting large-ish designs (16k channels)
> to produce spectra. The spectra that are being produced are quite strange.
> I’ve provided links below to a few examples. The first link is the spectrum
> produced by the unmodified tut3 model (except for the ADC and FPGA clocks
> increased to 1024 MHz and 256 MHz, respectively). It’s pretty much as you’d
> expect – a bog-standard L-band spectrum full of RFI. The second link is
> what happens when I try to increase the number of channels to 16k. As you
> can see, I can pull 16k channels from the board, but there are no actual
> data in there, beyond the original 2k channels. All the usual blocks were
> modified to get the model to work at 16k channels: the #PFB and #FFT points
> increased to 32768, the vector length in the VACC increased to 8192, the
> sync_gen block (using for now before changing to a PPS-based system)
> adjusted, and the shared_brams adjusted for longer address length. The
> third link is a zoomed-in image of the same spectrum, just to show that
> there is a partial spectrum in there. The fourth link is what comes out
> when I replace the FFT and PFB blocks with black-boxes… where the
> pre-compiled PFB and FFT blocks have the same settings as in the previous
> spectra….! The inconsistency between compiling with “raw” blocks and
> pre-compiled blocks is another source of concern.
>
>
> https://dl.dropboxusercontent.com/u/38103354/tut3_spectrum.png
>
> https://dl.dropboxusercontent.com/u/38103354/tut3_mod3_correct.png
>
> https://dl.dropboxusercontent.com/u/38103354/tut3_mod3.png
>
> https://dl.dropboxusercontent.com/u/38103354/tut3_mod2.png
>
>
> I can also make my models available if anyone would like. If I were to
> list every setting I’d changed to try and get this to work, this email
> would take about an hour to write…. but I’ve kept a log of everything I’ve
> tested. So, I’d be very grateful for suggestions for what to do next… I
> really have run out of ideas. I’ve compared the settings I’m using to the
> VEGAS models available on the git repo, and have even looked back to the
> deprecated “million channel spectrometer” model to look at the block
> settings used there. Nothing seems very different to what I’m doing.
>
>
> I’m going for 16k channels at the moment just because I was having trouble
> getting timing closure on 32k channels in 2-pols, with all the backend
> logic. Eventually I need to get a 64k channel model in 1-pol working, with
> the 5 GS/s ASIAA ADC, so this pre-requisite is essential.
>
>
> Many thanks in advance
>
> Michael
>
>
> P.S. I should add that the 1024 MHz ADC clock has to stay fixed because
> the downconverted 500 MHz L-band signal comes into the ADC at 0.5—1 GHz….
>
>
>
>
>
>

Reply via email to