Hi all,

FWIW, I use these snapshots extensively on ROACH2 and have not had any issues. However I'm still compiling using 11.x and still running tcpborphserver2.

Best,
Rurik

On 12/7/2012 2:41 AM, Henno Kriel wrote:
Hi Dave

I think Andrews point 3 is relevant.

We have picked up on transient on the register write with the latest memory mapped TCPBORPH. It seems that sometimes, some of the bits goes high for a short while and then settles at the required register value.

We need to figure out where the issue is (gateware or software).

For now try TCPBORPH server 2 and see if the problem still persist.

HK

On Fri, Dec 7, 2012 at 8:56 AM, Andrew Martens <[email protected] <mailto:[email protected]>> wrote:

    Hi Dave

    > I am working on ROACH2.

    Jason also had a problem with snapshot blocks using ROACH2. His snap
    block would not finish capturing, i.e write 7 into the control
    register,
    busy bit goes high and byte count spins, but busy bit never goes low
    again! Again, the logic to finish capturing is very simple
    (counter and
    comparison). He also reports that this behaviour changes with
    different
    compiles. This may mean that we are missing some crucial
    timing-related
    constraint.

    > When I say they are triggered, I mean that the contents of the
    BRAM change immediately upon writing 5 to the ctrl register while
    the trigger input is 0 (i.e. before I set the trigger to 1).

    I will assume that the BRAM value changes are caused by snapshot logic
    (the status register reflects a 'busy' snapshot, address changing
    etc),
    which seems ok as a write to a register connected to logic triggering
    capture causes the values to change.

    That means that the snapshot block was enabled, and then triggered. It
    seems as though the enable is happening as expected i.e it does not
    randomly become enabled, but the trigger is premature. The trigger
    could
    come from three sources
    1. Some kind of metastability in the triggering logic in the snapshot
    block. This is unlikely as all 4 snapshot blocks are behaving the
    same.

    2. The bit in the register linked to the trig input on all
    snapshots is
    toggling high (or held high). This is unlikely (no writes to that
    address) but would indicate some problem in the bus controller (writes
    affect registers not addressed) or register logic (some kind of
    metastability/weirdness). Replicating the register for each snapshot
    block, and replacing some with constants would shed some light.

    3. The ctrl register is misbehaving. If bit 1 somehow goes high for a
    bit before going low, or toggles high for even one cycle, then this
    would generate an internal trigger. This would indicate some
    systematic
    error in the register logic (occurs in the same way in four different
    registers) or metastability (unlikely again as occurs in multiple
    places). Manually modifying the snapshot block to use bit 0 for the
    trigger and 1 for the enable would be interesting as bit 0 *seems*
    to be
    behaving (no completely random enabling).

    Changing the design would also be interesting as it would be nice
    to see
    if the problem changes if things are placed differently in the chip.

    Regards
    Andrew









--
Henno Kriel

DSP Engineer
Digital Back End
meerKAT

SKA South Africa
Third Floor
The Park
Park Road (off Alexandra Road)
Pinelands
7405
Western Cape
South Africa

Latitude: -33.94329 (South); Longitude: 18.48945 (East).

(p) +27 (0)21 506 7300
(p) +27 (0)21 506 7365 (direct)
(f) +27 (0)21 506 7375
(m) +27 (0)84 504 5050

Reply via email to