Hey all, sorry for the late reply.  I saw this some time ago as well.

If you look at the Virtex 6 DC/Switching characteristics [1], you can see
component switching limits on the hardware we're developing to.  Naturally,
you can't pass timing if you intend to operate faster than those speeds.
 Unfortunately, Xilinx omits several restrictions from that listing.
 Specifically, you need to have at least one register in every path which
is in use for the DSP48 to operate at full speed.  In this case, it looks
like your AREG could use another pipeline register, although the problem is
most troublesome with the D register (which gets no mention whatsoever in
the tools).  You could resolve this by hacking the complex multiply block
such that the DSP carries one extra latency in that part, reducing the
external latency by 1.  If conditions require, you might have to change
other components at higher hierarchical levels, if there isn't enough
latency to absorb.

Finally, if this is your worst-case slack (-0.092 ns), I frankly just
wouldn't worry about it.  There are a number of pessimistic assumptions
made in the timing analysis of these designs, and if you can garuntee that
you won't be operating at 75C, 0.95V, your designs will operate somewhat
faster.  Do check what your best-case achievable period is!


[1] http://www.xilinx.com/support/documentation/data_sheets/ds152.pdf


On Mon, Feb 24, 2014 at 3:56 PM, Jack Hickish <[email protected]> wrote:

> Hi Jay,
>
> Component switching limits test that individual components of your
> design are running within their specified operating frequency
> parameters -- a few brief posts are here --
>
> http://forums.xilinx.com/t5/Timing-Analysis/component-switching-limit/m-p/73419
> -- so to fix them you basically just have to find the specific
> component which is unhappy, and work out how to use it within it's
> allowed ranges.
>
> I've sometimes seen these errors with misconfigured MMCMs and things
> like that. Does the timing report shed any light on where you are
> getting these errors? If it's something in the ADC yellow block (which
> would surprise me a little because I've compiled for 50MSa on ROACH 2)
> then I'll try and recreate your error and fix it.
>
> Cheers,
> Jack
>
> On 24 February 2014 23:30, Jay Brady <[email protected]> wrote:
> > Hi all,
> >
> > I've just started working on porting a design I had done for a ROACH 1
> up to
> > ROACH 2. The design is based off of the 64ADCx64-12 running at 50Msps
> with a
> > handful of VHDL/Coregen blocks. I've finally got all the green/yellow
> blocks
> > updated for ROACH 2 so that it will actually synthesize, but now I'm
> getting
> > a bunch of timing errors, all component switching limit error. I'm
> > comfortable clearing up setup/hold errors by pipelining and whatnot, but
> > I've never had component switching errors, so I'm not even sure where to
> > begin to diagnose and fix them (or even what they really mean...)  Does
> > anyone have any general tips or references for these kind of timing
> errors?
> >
> > Thanks,
> > Jay Brady
>
>

Reply via email to