> Hi, Jeff,
>
> Matt pointed out to me that the crystals on the ROACH2 are pretty nice
> (100 MHz +/- 25 ppm).  Maybe this one misbehaving ROACH2 has a bad crystal
> (or a badly soldered crystal)?
>
> FWIW, when the PAPER correlator used FPGA-based X engines, the X engines
> ran asynchronously from the F engines at 5% faster than the F engines (210
> MHz vs 200 MHz).  I don't really understand why they ran asynchronously.
> IMHO, it would have made things far simpler if the F engines fed a clock
> to the X engines so that they could run synchronously.
>

Hi Dave.  I think it was due to the philosophy of making everything on
separate boards a separate asynchronous system.  We broke the rule with
GUPPI (it does exactly as you suggest; the ibob feeds the clock of the
bee2) and in spite or the heresy, it worked out well for us...

John

> Dave
>
> On Jul 8, 2013, at 1:20 PM, Haoxuan Zheng wrote:
>
>> Hi Casper,
>> Is there any way to find out the FPGA clock rate precisely? We are
>> suspecting that our ROACH2s are not running at the frequency (202MHz) as
>> we specified in the design. We tried the python function in katcp, but
>> it does not look reliable enough. We hacked that function and increased
>> the time between counter reads to 30 seconds (instead of 2 seconds), and
>> the reading is still not that reliable. They all read roughly around
>> 200.2MHz, and if that's the case, then we must be doing something wrong
>> regarding the clocks and our 202MHz did not go into the design. We are
>> using internal FPGA clocks with no ADC or anything.
>>
>> Background:
>> We are testing 4 ROACH1 F-engine to 4 ROACH2 X-engine 10GBE set up, 16
>> connections in between. Each F-engine is sending to all 4 X-engines, and
>> each X-engine is receiving from all 4 F-engines. We have a very simple
>> sending and receiving FIFO buffer logic. The thing we see is that one
>> particular X-engine always has all 4 buffers filled up in a fixed amount
>> of time (32K buffer fills up in ~270 seconds). We swapped a lot of thing
>> around to test which part is wrong in the system, and we nailed it down
>> to something physical in that X-engine, and the fact that it fills up
>> indicate that X-engine clock is running slower than we set it to,
>> because we set X-engine clock to be 202MHz vs 200MHz on F-engine.
>> Therefore we would like an definitive measurement of the actual X-engine
>> clock that is running.
>>
>> Plot explanation:
>> It's plotting one of the four FIFO buffer filling up over 270 seconds.
>> The vertical axis is the literal number of numbers currently stored in
>> the FIFO. This FIFO should on average get 1 number every 8 clocks from
>> the F-engine (200MHz) receiver, and should get 1 number pumped out every
>> 8 clocks on X-engine (202MHz), so this long term build up definitely
>> suggest that the clocks are not what we think.
>>
>>
>> Thanks a lot and sorry for the long email!
>>
>> Jeff
>> <for_email.png>
>
>
>



Reply via email to