Suresh's Official Blog... - Procedure To Fix Setup and Hold Checks If Violated
Suresh's Official Blog... - Procedure To Fix Setup and Hold Checks If Violated
Followers (2)
Procedure to fix setup and hold checks if violated
Follow
Blog Archive
►
► 2019 (1)
►
► 2018 (33)
▼
▼ 2017 (45)
►
► November (11)
▼
▼ October (18)
clock phase meaning; related to
asyn/syn clocks de...
get_timing_path slack, startpt,
endpt
What is CRP? Explian with
Cross talk taken into ac...
FLOW of STA run:
Can clock path be like this?
Understand the design hierarchy: RC corners used for setup and
Know from which block to which block you want to analyze hold violations
See report and check the clock group or capture clock of your interest ECO fixing: Which is a must fix
and which can be l...
report_clock_timing
Analyzing paths:
report_bolttleneck
report_timing -from startpoint -to endpoint -pba_mode path -path_type
full_clock_expanded -nets -input_pins -significant_digits 4 get_timing_paths
if slack is -ve (violating); then follow below techniques. How to Remove Duplicates
From a Collection ("Uniqu...
Order of fixing the setup violations: Why POCV is prefered to
Use Pba mode with path (during early eco) and exhaustive (during final eco AOCV beyond 10nm?
stage) does setup and hold violation
1. Reducing data path delay: can happen simultane...
----------------------------------------------------- How PrimeTime identifies
report_timing with below options (derate, trans, cap, and net): different vdd voltages du...
- see whether derates are applied properly or not Procedure to fix setup and hold
checks if violated...
a) Sizing of data path cells (increasing the drive): Sizing would be first choice as ECO fixing order
buffering needs extra space comparatively.
ECO flow with examples
c) VT swap:
- Change to LVT (generally, 20% LVT and 80% SVT+HVT)
size_cell HVT_instance_name LVT_lib_cell
d) cross talk
e) derate check
sureshofficial.blogspot.com/2017/10/understand-design-hierarchy-know-from.html 1/4
17/07/2019 Suresh's official blog...: Procedure to fix setup and hold checks if violated
2. Check the insertion delays of launch and capture clocks and try to balance them.
http://tech.tdzire.com/timing-eco-flow-with-examples/
2. Clock path tweaking (push/pulling the clock path): Recommended this at the initial
timing ECO changes.
-----------------------------------------------------
Pusing is prefered to pull clock because adding delay on net is fine and can be done
easily but reducing delay is tough.
Since we are fixing setup violation of FF2/CP2 by adding some delay in the clock path
(required time increases), so potentially -> there is a chance of hold violation as it is (AT-
RT).
This is checking for those particular paths. But, clock pin is connected to so many flops
(parallel branches of capture FF). so we need to consider all flops which are connected
to clk pin which we are going to push.
ii) hold check violation to FF2/D in FF corner: at the same stage: (+15ps)
report_timing -delay_type min -to FF2/D -pba_mode path
and see whether 3*5ps = 15ps margin is available or not.
sureshofficial.blogspot.com/2017/10/understand-design-hierarchy-know-from.html 2/4
17/07/2019 Suresh's official blog...: Procedure to fix setup and hold checks if violated
2b) Pulling the clock going to FF1/CP1:
i) Since AT is reduced to fix setup here, check hold at the same stage first in FF corner
(+15ps).
report_timing -delay_type min -from FF1/CP -pba_mode path
------------------------------------
# Get list of cells to which you want to know the slack margin
# get input pin (data pin) of those cells and get slack, sp using get_timing_path
command
set f [open fanin.txt w]
foreach_in_collection cell $cells {
set ipin [get_pins -of_objects [get_cell $cell] -filter "direction==in"]
}
close $f
3) Net optimization:
If setup violation is very less and there is no scope in data path then check whether nets
can be optimized by promoting the critical nets to top metal layers. Since top metal
layers are thicker, capacitance is lesser and thus net delay will be less. So usually clocks
and critical nets are routed at the top metal layers.
Before giving fix to Physical design team, make sure there are no new violations
introduced due to the fix. if setup is not fixable at all, check whether it is within the
uncertainity range. If not we may have to reduce the frequency. But keep in mind that this
is the final choice.
#########
TIPS:
#########
1. Check whether the launch and capture clocks are same or different.
If different, check whether they are synchronous.
sureshofficial.blogspot.com/2017/10/understand-design-hierarchy-know-from.html 3/4
17/07/2019 Suresh's official blog...: Procedure to fix setup and hold checks if violated
If asynchronous and can be set as false path, then add the missed false path in your
exceptions.
3. Now check whether the launch and capture clock edges are as intended. That is to
check whether some multicycle path is missed in the exceptions or not.
4. Next thing is to check with the clock path in launch and capture path, whether they are
traced properly as intended.
Sometimes even if launch and capture clocks are the same they will be traced through
different paths to make the analysis pessimistic. These can happen if you have muxes in
the clock path.
5. If the clock is not traced properly, CRPR may not be removed properly.
7. Once you figured our that the path is valid, and if it is a setup violation, just see
whether one cell is giving big delay. If yes check with the physical design team whether
this is placed far away or not.
8. Check with the RTL team to confirm whether the clock freq is same if it a setup
violation.
###############
If there are a lot of violations and power is not critical:
report_timing -slack_lesser_than 0 -max_paths 200000 -nworst 100 -delay max >
max_paths.rpt
DMSA setup can check ECO across modes and corners in one shot. During final stage,
do VT swap only as it will not disturb DRC.
No comments:
Post a Comment
Publish Preview
sureshofficial.blogspot.com/2017/10/understand-design-hierarchy-know-from.html 4/4