Hi all,

This is something I've been fighting with for a while now, and I wonder if
anyone on this maillist has any insight (because I'm pretty sure I may just
be doing something wrong with the tools).

The problem:
I'm playing with a ROACH2 design that (sometimes) compiles at 312 MHz.
However, every now and then I'll make a small change to the design and the
compile will fail timing catastrophically, with paths failing sometimes
with -2 ns (or worse) slack.
When I look at the failing path(s), the delays are usually ~80% routing.
I'll see a signal take a huge detour to use a shift register in some
arbitrary location on the chip. Upon closer inspection of the relevant SRL,
it appears that the LUT concerned is being used for two signal paths, one
on the O5 output, one on the O6. The result seems to be that it is poorly
placed for both it's roles.

I'm only using ~50% of the slices and about 30% of the registers / luts on
the FPGA, and there are plenty of sensibly located SLICEMs the placer could
use if it so desired. I've switched lut combining off (with the -lt flag),
in planahead which doesn't seem to have made any difference.

Can anyone offer me any words of advice / wisdom which might reduce my
confusion at what's going on (or, even better, help me solve the problem)?

Despairingly yours,
Jack

Reply via email to