Closed rajarshiroy closed 4 years ago
Hi @rajarshiroy Thanks for your interest.
Regarding the combinational logic, OpenPhySyn works based on whatever is fed from OpenSTA. So to work with combinational circuits all you need to do is provide the appropriate SDC commands for combination circuits. You are probably looking for commands such as:
As for the flow, we usually do it in iterative phases as you mentioned: Placement -> OpenPhySyn Opt. -> Legalize -> OpenPhySyn Opt -> Legalize..etc. However, tightning the -transition_pessimism_factor and -capacitance_pessimism_factor for the repair_timing command might make the optimization more tolerable for legalization movements to have fewer iterations. Additionally, OpenPhySyn supports hooking any legalization tool to legalize the design incrementally using the legalization flags in the repair_timing command but unfortunately, I do not ship any legalizer with the tool for now, but if you have a one that you use you can easily hook it up at this line and remove the #ifdef guards.
Thank you for the speedy clarifications @ahmed-agiza ! Will set up my flows based on your pointers.
Thank you for adding the recent timing driven optimization flow! The flow looks very promising and thus I am planning to use this flow for my research. In my scenario I want to optimize (timing-driven) a purely combinational design under various input arrival times and output required times. Is there a way to specify such constraints? Apologies if it is more of an OpenSTA question. I see that the examples are all sequential designs that optimize based on a clock period target.
I was also wondering how I should fit this in an overall placement flow because 1) the design should be floorplanned and placed before OpenPhySyn 2) OpenPhySyn will resize cell and add buffers which may not fit in the original floorplan. Should I run multiple iterations of 1) and 2) until convergence?