Hey Michael

I am not sure that I understand your use case correctly. It seems that you
want to generate snap shots of the spectrum being generated?

The way we generally use the circular capture snapshot mode is to start
capturing data, and then to trigger a stop signal on some event. The
snapshot block finishes capturing the current buffer of data and then stops
so that the user can read out the data associated with the stop event. The
tr_en_cnt register can be used to monitor how much time has elapsed between
the trig event that started capture, and the stop event stopping it.

If you tie the stop input to 0, the block will never stop. You might gate
the en input, and then read the data back, but you might find yourself off
by a few samples, Basically, it is being used in a way that was not
envisaged when it was designed.

I would recommend a trigger event generated by a counter with a period of
one second, and a software loop monitoring the 'done' bit in the status
register to know when this has happened, read out the data, and restart the
data capture. You would also need the trig input controlled by a counter
that ensured that capture started at the start of a spectrum, otherwise you
might start (and end) capture with an offset.

Not sure if all of that made sense.

Regards
Andrew

On Wed, Jul 27, 2016 at 4:19 PM, Michael D'Cruze <
michael.dcr...@postgrad.manchester.ac.uk> wrote:

> Dear all,
>
>
>
> During debugging for the new ROACH2 Lovell spectrometer, I’ve found a
> potential issue with the snapshot block that I’m hoping is a control issue.
>
> The snapshot block is intended to take a 4096-channel slice of spectrum,
> and display it via a GUI at intervals around 1 second. The spectrum appears
> to “dance” around by a few channels, and in particular on larger designs
> the spectrum seems to scroll across the screen. After ruling out issues
> with the Python interface, I found that the snapshot block itself seemed to
> be generating the address incorrectly. In simulation, the address was
> lagging behind the data and write enable by a few clocks per acc, which
> created the scrolling behaviour.
>
>
>
> Now, since circular capture is enabled and 0 are inserted to both the trig
> and stop inputs, I’m writing 0b1011 to snap_control. According to the
> instructions (and, on examination, the logic), this should enable repeated
> capture, ignoring both the stop and trig inputs, but obeying the
> write_enable. Can I check that this input is correct?
>
>
>
> Actually writing a block to do only what I need it to do is not difficult,
> but I’d prefer to avoid recompiling everything if it is simply a control
> issue.
>
>
>
> Thanks
>
> Michael
>

Reply via email to