Synplify Pro and automatic Retiming/Pipelining

Oct 14, 2005 2 Replies

Hi everybody!



Synplify Pro offers Retiming, which allows register relocation across combinatorial logic. However, this does not work with the embedded 18x18 multipliers.



Does anybody know how to make the retiming work, i.e. that Synplify Pro moves registers accross multipliers? Or does there exist another tool capable of that?



Best Regards, Simon


In general this is not possible because of the initialization problem. If you have registers after the multiplier that are initialized to a prime numberer larger than 18 bits and you retime them to the inputs of the multipliers there is no reset value for these registers that yields the same circuit behaviour.

Even for numbers were it is possible you need to solve a complicated satisfiability problem.

Of course most registers are initialized to 0 s there could be a special case implemented for that.

Kolja Sulimma

Synplify Pro will move registers across multiplers. I think it won't move registers across instantiated logic. You can dissolve an instantiated primitive back to its model using the attribute syn_hier with value "dissolve", which will allow retiming to take place. Synplify Pro's retiming will maintain an equivalent initial state if your registers have resets.

- Ken

Sim> Hi everybody!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required