Hi John

Some pointers on improving timing generally in ROACH.

Decrease the space your design occupies.  Implement delays on data inputs to
multiplier cores in behavioural logic as these are absorbed by the DSP48E
core. Implement large adders and counters in DSP48Es. Use Truncation as your
Rounding strategy where possible (decreases timing pressure on the FFT
especially).

Increase BRAM delays or place delays between BRAM outputs and logic. The
links between BRAMs and multiplier cores or other BRAMs are especially
troublesome.

Try to implement logic as a pipeline with minimal "closed loop" feedback
paths. This allows latency to increase performance to be added arbitrarily
without necessitating a remake of the logic.

Good luck
Regards
Andrew

2009/11/13 John Ford <[email protected]>

> >
> > On Nov 12, 2009, at 16:36 , John Ford wrote:
> >
> >> At least one timing constraint is impossible to meet because
> >> component delays alone exceed the constraint.
> >
> > I think this means that part of your design synthesized to multiple
> > levels of combinatorial logic where the sum of each level's component
> > delay alone (i.e. not even counting propagation delay from component
> > to component) exceed the period of the clock.
> >
> > You'll need to create a timing report (e.g. using trce) to find out
> > which part of the design is problematic.
>
> I managed to figure out how to use the timing analyser in this version,
> and it's clear to me now that the message that's output is pretty
> misleading.  It's got nothing really to do with the ADC, it's just that
> that's the clock signal that everything's clocked off of.  The real timing
> errors are in the FFT and some arithmetic.  Hopefully with a little
> adjustment to some latencies I can make it meet timing.
>
> Thanks for the info.
>
> John
>
> >
> > Dave
> >
>
>
>
>

Reply via email to