Forum Discussion
sstrell
Super Contributor
5 years agoDo you have registers on the boundaries of your partitions? If you don't, then paths in the top level may become critical. Remember that there is no optimization across partition boundaries, so combinational logic on the boundaries of the design partitions cannot be optimized with respect to the top level.
Adding registers at the boundaries can fix this, allowing you to run the design faster at the expense of an extra cycle of latency.
#iwork4intel
Yogesh
Occasional Contributor
5 years agoYes , all output signals from a submodule are registers.
So before sending a signal to a other module , I am registering it .
So before sending a signal to a other module , I am registering it .
- KhaiChein_Y_Intel5 years ago
Regular Contributor
Hi,
Is the failing path within the sub-modules? Have you tried to preserve timing-closed partitions and use in the top design?
Thanks.
Best regards,
KhaiY
- Yogesh5 years ago
Occasional Contributor
Hi,
1) if I don't preserve design partition (fitter netlist of a submodule ) then yes , there are some failing paths within the submodule. Few days back fitter used to fail because of high routing congestion . So, I changed the fitter effort to 8.0 , so fitter passes but with significant loss of timing .
2) If I preserve design partition(fitter netlist of the submodule ), then I don't think I have any critical paths within sub-modules . But there is inbetween 2 sub-modules. Here I get this fitter error sometimes :
Error (18999): Placement cannot find a legal solution.
Error (170079): Cannot place node <name>of type MLAB cell.
But after changing fitter effort settings to 8.0 . It will pass with loss in timing.
3)what does preserve timing closed partition mean ? Is it same as preserving fitter netlist in design partition? If yes , then yes I have done as in 2nd point