Dear all,
I'm currently facing some issues with signoff timing closure for a highly congested block design.
In short, the flow runs fine up to signoffTimeDesign in Innovus, however I'm not able to find an "automated" way to fix a few residual DRVs (max_tran and max_cap) in my design apart from invoking ECO flow commands such as ecoChangeCell or ecoAddRepeater"by hand" in interactive Innovus sessions according to reports generated using timeDesign, signoffTimeDesign, reportTranViolations or reportCapViolations commands.
I would like to know if there are flows that allows to "automate" a little bit these small fixes in such cases, mainly due to the fact that net names or cell instance names causing these few residual DRVs usually changes from run to run.
What I'm searching for is basically a Tcl flow that allows to:
1. identify nets or cells violating DRVs such as max_cap and max_tran using Tcl or dbGet commands
2. obtain a database pointer to these net/cell objects
3. automatically run ECO commands such as ecoChangeCell or ecoAddRepeater targeting nets or cell names extracted from the database pointer
Just to be clear, I'm not asking how to generate DRVs reports or how to fix them using the default setOptMode/optDesign -drv flow, I would like to automate fixes for residual DRVs without the need of fixing them one after the other "by hand" using ECO commands interactively.
Any suggestion would be more than appreciated !
Cheers
Luca