While doing prects optimization I got some drv violations. So I prefered to fix those using "optDesign -preCTS drv" command. It fixed drv violations But I got some timing violations.
so again I did optDesign -preCTS -incr and I got timing violations fixed but drv violations came again.
So how to deal with drv violations as well as timing violations concurrently in Pre CTS stage.
While doing prects optimization I got some drv violations. So I prefered to fix those using "optDesign -preCTS drv" command. It fixed drv violations But I got some timing violations.
so again I did optDesign -preCTS -incr and I got timing violations fixed but drv violations came again.
So how to deal with drv violations as well as timing violations concurrently in Pre CTS stage.
you are running into a small issue of convergence. basically you got lucky when running optDesign for the second time there. what DRV violation type is getting you in trouble? is it max_tran?
While doing prects optimization I got some drv violations. So I prefered to fix those using "optDesign -preCTS drv" command. It fixed drv violations But I got some timing violations.
so again I did optDesign -preCTS -incr and I got timing violations fixed but drv violations came again.
So how to deal with drv violations as well as timing violations concurrently in Pre CTS stage.
yeah thanks Try to fix it in synthesis stage itself..
And Now, after the successful preCTS I just moved to CTS stage ... and I created clock tree specification file using "createClockTreeSpec" and then I used "ckSynthesis" . The tool tells that, Clock net is not syntesized by FE-CTS so synthesis not succeeded.
Then I tried "clockDesign" , and it worked.
So what is the difference between "ckSynthesis" and "clockDesign".
yeah thanks Try to fix it in synthesis stage itself..
And Now, after the successful preCTS I just moved to CTS stage ... and I created clock tree specification file using "createClockTreeSpec" and then I used "ckSynthesis" . The tool tells that, Clock net is not syntesized by FE-CTS so synthesis not succeeded.
Then I tried "clockDesign" , and it worked.
So what is the difference between "ckSynthesis" and "clockDesign".
"optDesign" command will call the following five optimizers in multiple iterations:
Global Optimizer
Area Reclaim
DRV Optimizer
TNS Optimizer
WNS Optimizer
while "optDesign -incr" command only calls the WNS Optimizer (and maybe Area Reclaim).
For EDI 14.2 and Innovus, clockDesign will call "ccopt -cts" command with auto clock tree spec extraction, while ckSynthesis always calls the legacy engine.
"optDesign" command will call the following five optimizers in multiple iterations:
Global Optimizer
Area Reclaim
DRV Optimizer
TNS Optimizer
WNS Optimizer
while "optDesign -incr" command only calls the WNS Optimizer (and maybe Area Reclaim).
For EDI 14.2 and Innovus, clockDesign will call "ccopt -cts" command with auto clock tree spec extraction, while ckSynthesis always calls the legacy engine.
essentially optDesign will give up quicker than optDesign -incr when it find paths that are not meeting setup time. that is the #1 difference in my opinion.
there are others too. if you have MMMC with many many corners, optDesign and optDesign -incr can decide to work on a different subset of them and that will generate very different outcomes.
essentially optDesign will give up quicker than optDesign -incr when it find paths that are not meeting setup time. that is the #1 difference in my opinion.
there are others too. if you have MMMC with many many corners, optDesign and optDesign -incr can decide to work on a different subset of them and that will generate very different outcomes.
Only the WNS Optimizer has the "give up" mechanism:
When the WNS Optimizer cannot find further improvements for WNS, it quits & triggers refinePlace. If TNS gets worse after refinePlace, the WNS Optimizer will be restarted again for another iteration, that is, the tool does not "give up".
Both optDesign & optDesign -incr call WNS Optimizer in this way. You will find the tool "hard to give up" in case either TNS or local density is high(due to the randomness @refinePlace).