Synplify Pro and automatic Retiming/Pipelining

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

Reply to
Simon Heinzle
Loading thread data ...

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

Reply to
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!

Reply to
Ken McElvain

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.