The problem here is that the FVCO is not within the range of 600MHz to
1600MHz. This is an MMCM configuration issue as Dave has already mentioned.

I have recently fixed a similar bug in the SKA-SA mlib_devel repository. Is
this the repository that you are using?

I have tested the aux clock on this repository between 100MHz and 200MHz.

Thanks

Wes


Wesley New
South African SKA Project
+2721 506 7300
www.ska.ac.za



On Tue, Aug 4, 2015 at 11:41 PM, David MacMahon <[email protected]>
wrote:

> Hi, Vereese,
>
> That's a very curious failure mode!  It's very interesting that everything
> worked fine when clocking via iADC, but not when clocking via your
> mezzanine board (or aux_clk) even though the fabric clock rate was the
> same.  I can think of two possible theories for what's going on (both
> alluded to in your email).
>
> The first theory is that the problem is somehow related to the address
> mapping.  Maybe under certain circumstances the memory map works out such
> that bram7 is accessed via an extra opb_to_opb bridge (or some other slight
> variation) compared to the other brams?  It would be interesting to compare
> the system.mhs and core_info.tab files for your various test builds so
> what's different between working builds and non-working builds.  What if
> you add additional unrelated BRAMs such that they appear earlier in the
> address map (maybe give them a lexicographically "early" name like
> "aaa_bram0") or maybe enlarge the existing BRAMs?  That might push bram6
> (and others?) into the hypothetically troublesome address range.  Maybe
> clocking from the iADC changed the address map such that this hypothesized
> problem was avoided.
>
> The other theory is that some sort of MMCM (mis-)configuration is causing
> the MMCM to behave in a weird way.  I don't know what kind of problem that
> would be.  I've only seen issues when trying to use the ISERDES resources
> at fairly high bit rates, but the ~155 MHz clock should be fine.  I think
> the MMCM config options are shown in the system_map.mrp file, so maybe
> comparing working vs non-working versions of those files would be
> illuminating.
>
> When you tried to run aux_clk at faster than 143 MHz, what values did you
> use for MULTIPLY and DIVIDE?  It looks like the defaults would result in
> the same settings as the hardcoded values (with the exception of CLKOUT5)
> .  I think the MULTIPLY and DIVIDE parameters are intended to be used for
> sys_clk, so I'm not sure how they get set (or passed on) for aux_clk.
>
> Hope this helps,
> Dave
>
> On Aug 4, 2015, at 12:13 PM, Vereese Van Tonder wrote:
>
> > Hi Everyone,
> >
> > I'm clocking a ROACH2 design from a mezzanine board at 155.52MHz. In the
> design I have 8 bram's each with a 16 bit address width and data width. I'm
> writing the bram's address counter value into the bram, (so at the first
> address write 0, at the second address write 1, ... at the last address
> write 2^16-1). The output bram's 0-6 shows the expected linear relationship
> however bram7 does the following (also see attached .png's):
> >
> > Address 0-16387: expected linear relationship with gradient = 1
> > Address 16388 - 20476 (diff=4088): the output toggles between the
> expected behavior and the following set
> (4,12,20,...,252,4,12,20,...,252,......4,12,....,252)
> > Address 20477 - 36867: expected linear relationship with gradient = 1
> > Address 36868 - 40956 (diff=4088): the output toggles between the
> expected behavior and the following set
> (4,12,20,...,252,4,12,20,...,252,......4,12,....,252)
> >
> > The design works in simulation and when I clock the same design from the
> on board 100MHz system clock I don't get the problem anymore. I also saw
> that when I include only 7 brams and occupy the memory space
> 1020000-0103FFFF for bram0 ..... 01080000-0109FFFF for bram6 then I don't
> get the error but when I do include the 8th bram which occupies the space
> 010E0000-010FFFFF then I get the error. I'm unsure whether this is a memory
> problem or a clocking speed error. I also clocked the design off an iadc
> running at 4*155.52=622.08 MHz and then the design worked.
> >
> > Then I tried compiling a design that clocks from the aux_clk input and
> the design fails because the FVCO is out of range, I found the input limit
> to be 143MHz. From an earlier post I saw that Dave said the limit is
> between 100MHz-200MHz as there are some hard-coded parameters in the MMCM
> of the roach_infrastructure_v1_00_a pcore. I modified the MMCM_BASE_aux_clk
> instantiation to take the parameter values instead of having the hard coded
> values as follows:
> >
> > .CLKFBOUT_MULT_F  (6), - .CLKFBOUT_MULT_F  (MULTIPLY)
> > .CLKOUT1_DIVIDE     (6), - .CLKOUT1_DIVIDE     (DIVIDE), //THIS IS THE
> DIVISOR
> > .CLKOUT2_DIVIDE     (6), - .CLKOUT2_DIVIDE     (DIVIDE),
> > .CLKOUT3_DIVIDE     (6), - .CLKOUT3_DIVIDE     (DIVIDE),
> > .CLKOUT4_DIVIDE     (6), - .CLKOUT4_DIVIDE     (DIVIDE),
> > .CLKOUT5_DIVIDE     (6), - .CLKOUT5_DIVIDE     (DIVIDE/2),
> > .CLKOUT6_DIVIDE     (6), - .CLKOUT6_DIVIDE     (MULTIPLY/DIVCLK),
> > .DIVCLK_DIVIDE        (1), - .DIVCLK_DIVIDE        (DIVCLK),
> >
> > but it didn't solve the problem. Has anyone clocked a ROACH2 board from
> the aux_clk input at a  frequency higher than 143MHz?
> >
> > Thanks,
> > Vereese
> > <all_brams.png><bram7.png><slx.png>
>
>
>

Reply via email to