Hi guys,

I am not sure if our experience is relevant.
It was with totally different hardware, we had a lot of sync problems.
The culprit was our technician who was testing computer monitors on the next table.

Particularly LVDS signals are vulnerable, with a small common-mode voltage the line receivers lock to one state. Very good grounding and shielding help.

Easy to test, just trigger an modern oscilloscope AFTER the line receiver for extra long cycles on the clock line. Or extra short, if there is ringing.

Cheers,
Jouko

--

"Life is pretty simple: You do some stuff. Most fails. Some works. You do
more of what works. If it works big, others quickly copy it. Then you do
something else. The trick is to do something else."


On Mon, 26 Nov 2012, Dan Werthimer wrote:



hi ricardo,
there still might be a bug with 2^27 sync period??? 
a 2^27 period is so long, you might not notice a very rare occasional error
in the spectra. 
you'd have to check the spectrum right after the sync pulse propagates
through...

best wishes,

dan


On Mon, Nov 26, 2012 at 7:20 AM, Ricardo Finger <[email protected]> wrote:
      Hello Dan and Andrew,

      Thanks for your replies.

      Yes, my sync period is a multiple of Nacc· PFB FIR taps ·
      LCM(reorder orders) · FFT Size / Simultaneous inputs.

      The order of the fft_unscrambler is 9 and the biblex
      unscramblers have order 2, so I have a pulse sync of
      Nacc*4*LCM(2,2,9)*4096/8 = Nacc*36864. I have tried Nacc=128,256
      and 512 with no success.

      Thanks for the tips on debugging technics. I will implement the
      test data as you suggest.
      I did went through compiling with casper mlib_devel using less
      slices. The 36864 minimum periode still doesnt work to me, but a
      2**27 sync pulse periode seems to work... i don't know why,
      since 2**27 is not a multiple of 36864... This suggest I may
      have a bug after the FFT block.
      At least I have something working while I gather more knowledge
      on sync stuff!

      Cheers,

      Ricardo


On Sat, Nov 24, 2012 at 7:45 PM, Dan Werthimer <[email protected]>
wrote:

hi ricardo,

have you reviewed the memo on sync pulse minimum period?
it's at:
https://casper.berkeley.edu/memos/sync_memo_v1.pdf

in particular, have you checked the number of iterationsin the
FFT reorder block? 

is your sync period a multiple of: 

Sync period = Naccumulations · PFB FIR taps · LCM(reorder
orders) ·
FFT Size Simultaneous inputs


best wishes,

dan

On Fri, Nov 23, 2012 at 11:25 PM, Andrew Martens
<[email protected]> wrote:
      Hi Ricardo

      > I am trying to build a 2-pol spectrometer in a
      ROACH 1. I started with
      > the Casper mlib_devel PFB+FFT but I ran out of
      slices so I swap the
      > PFB for the one used at VEGAS (taken from the
      monroe_library_latest)
      > on the git repo.

      Just to let you know in case you didn't that there
      are various parameter
      options for the fft and pfb_fir that allow you to
      trade off usage of one
      resource for another (e.g You can force the adders
      in the fft butterfly
      to be implemented in DSP48Es rather than in slices.
      You can also force
      delays and coefficients at fft stages to be
      implemented in BRAMs instead
      of slices).

      > The model compiled but I am having problems with
      synchronization. The
      > zero channel jumps around every time I run the bof
      (It can be
      > anywhere).

      To debug this, you may want to try the following;
      * Make a new design
      * Make 4 counters, the first one starting from 0,
      the second from 1 etc.
      Make the step size 4, and make them increment to
      2^N-4, 2^N-3, 2^N-2,
      2^N-1 (where N is the size of your FFT).
      * Copy all the logic (accumulator etc) after the FFT
      in your design to
      your new design
      * Make the counters the real and imaginary part of
      the input to your
      logic.
      * Make a sync generator that outputs a sync exactly
      every accumulation
      (e.g 2**12/4*512).
      * If you simulate with this, or compile it and run
      it on the FPGA, you
      should be able to check if everything after the FFT
      works correctly as
      you can work out exactly what the output should be.
      This should help
      tell you where the problem is.

      We often build these types of tests into our designs
      (if there is logic
      available). We have blocks that generate test data
      (TVGs or test vector
      generators) in the data path with a multiplexor
      allowing us to use real
      data or the test data. This allows us to verify
      parts of our design and
      help isolate bugs. It seems that you don't have much
      logic available
      though, so that is why making a separate design with
      only part of your
      design would be easier (quicker to compile with no
      chance of running out
      of space).

      Good luck and regards
      Andrew










--
Ricardo Finger Camus
Electrical Engineer
Astronomy Department
University of Chile
Of: 56(2)9771122
Casilla 36-D, Santiago.
http://www.das.uchile.cl/lab_mwl/





Reply via email to