Hi Dave,

I have always used div_clk = 200MHz (sys_clk_2x).

I have compiled my QDR test design to run of sys_clk (arb_clk) at 200, 225
MHz. I ran into timing issues when compiling for 250MHz.

The QDR controller enables the QDR in high frequency mode, which means that
the QDR clock must be > 130MHz, so sys_clk is to low.

I'm not sure why clocking it below 200MHz (>130MHz) is giving problems.

This testing sufficed for time when I did this and I did not explore more
clocking options, due to other pressing work.

Regards,
Henno



On Thu, Aug 15, 2013 at 8:45 AM, David MacMahon
<[email protected]>wrote:

> Hi, Henno,
>
> I rebuilt a ROACH2 design using the 100 MHz sys_clk for the
> qdr_controllers' div_clk input.  When running that bitstream, the QDR
> calibration always failed.  Then I tried rebuilding the design using the
> 143 MHz fabric clock for div_clk.  The QDR calibration always failed when
> running that bitstream as well.
>
> That made me wonder/worry about the relationship between the
> qdr_controller's clk0 (i.e. the fabric clock) and div_clk (i.e. the IODELAY
> tap setting clock) inputs.  If the QDR calibration fails when running
> div_clk at or below the clk0 frequency, does that imply that the QDR
> calibration would fail when running clk0 faster than than the nominal 200
> MHz div_clk?
>
> To test this, I built a simple test model using the 4 QDRs.  This test
> model was clocked from aux_clk.  I specified the aux_clk clock frequency to
> be 240 MHz and manually modified (i.e. re-hardcoded) the hardcoding in the
> aux_clk MMCM config so that the MMCM could be driven from 135 MHz to 240
> MHz without failing a DRC in the map phase.  When running this design, I
> found that the QDRs calibrated fine from 200 MHz almost all the way to 240
> MHz.  Around 239 MHz I started to get some calibration errors.  By 240 MHz
> I was getting lots.  On the low end, I tried 180 MHz and got total
> calibration failure.  I haven't fully explored things, but I found the
> preliminary results somewhat discouraging.  The low end behavior is
> contradicted somewhat by the empirical success of others running clk0 more
> slowly than the 200 MHz div_clk, but maybe there are "good" (aka "lucky")
> and "bad" (aka "unlucky") clock ratios?
>
> Can you think of anything that I might have inadvertently changed or
> broken?  At which fabric clock frequencies have you tested/verified QDR
> calibration?  My guess is that the basic test is done using the 100 MHz
> sys_clk and/or 200 MHz sys_clk2x.  Have you tested at other fabric
> frequencies?
>
> Thanks,
> Dave
>
> On Aug 1, 2013, at 11:10 AM, David MacMahon wrote:
>
> > Hi, Henno,
> >
> > Thanks for the reply.
> >
> > On Aug 1, 2013, at 12:50 AM, Henno Kriel wrote:
> >
> >> The IODELAY_CTRL block need to be clocked at 200MHz +/- 10MHz. From the
> datasheet it is not clear whether you can clock the IODELAY block at a
> different frequency - it just states that the average tap delay at 200MHz
> is 78ps.
> >
> > Yes, the IODELAYCTRL element must be clocked at 200 MHz +/- 10 MHz, but
> I think that's separate and distinct from the IODELAY's clock input C.
>  Page 98 of "Virtex-6 FPGA SelectIO Resources User Guide UG361 (v1.3)
> August 16, 2010" mentions that the IODELAY's clock input C "should be
> connected to the same clock in the SelectIO logic resources (when using
> ISERDES and OSERDES, C is connected to CLKDIV).".  This implies that this
> clock input C is very independent from the IODELAYCTRL clock, so there is
> no FPGA limitation/constraint that would prevent the use of sys_clk here
> instead of sys_clk2x.  Whether the qdr_controller will work that way
> remains to be seen.
> >
> >> I'm not sure what the effect would be if you clocked it at 100MHz, but
> let us know what your experience is.
> >
> > I'll let you know!
> >
> > Thanks again,
> > Dave
> >
>
>


-- 
Kind regards,
Henno Kriel

Digital Back End: Hardware Team Manager
MeerKAT Digitiser: System Architect

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