Design: Planning
Design: Planning
Design: Planning
Floorplanning
Powerplanning
Placement
CTS
Post CTS
Routing
Post Route
closure
Signoff Timing
Physical verification
Beif decription
Iaportesign
In this step we import all design files constraints files suchas
Netlist Adc impf def technology
file logical andphysical
libraries
Earp Lanning
Determines shapes and arrangements
the subcircuits ormodules as
of
well as donation external posts and Ip or macro blocks
of
Powerplanning
Routing
modules based
Routing is nothing but ofinstanies
connection
on netlist connectivity
Rante
Post
Datapath optimization which is done to avoid timingfailuredue
to added RC delays in Routing Stage
Signoff
checks we do with respect to ourdesign Includes
Different types of
Timing closure STA Physical verification DRC Lus ERCetc
HE SIS
Synthesis is a process of converting a high level descriptionofthe
design written at Register transfer level RTL in a technology
mapped gate level representation
a Translation
The
final output of translation is in unoptimised internal
representation
of the RTL description
b Optimization
Constraints
Apply
N
Mapping
Technology
W
Optimization
Scan Insertion
Incremental
Optimization
t
a Synthesized netlist
b outputSDC
c Scan DEF
1 Inputs RTL and lib are the inputs to synthesis lib is
used at the stage of technology Mapping
2 React
RTL is read and tool also checks in Rtc
for syntax errors
3 ELT
when the tool get the RTL file the designs are present in different
RTL files so during elaboration step the tool understands all
the verilog files and buildsone singlenetlist from all those verilog
files
case is
I bo out io
I bt out it
endcase
Max inferred and revisit this notthe
yourRTL
Check
Info if
intended behaviour ICDFor29 616
elaborationstep
Inferring during
HiRisingEdge
infallingedge
Gac Synthesis
It In genericsynthesis the toolmaps thecells to thatgeneric
library Technology independent and gives us an un optimized
intermediate technology independentgate level netlist
logicaptimization
Tool tries to optimize the logic to removeredundant logic
Latch mapped V
Input din en
output dontpart4
wire din en
wire dont Port4
wire m 0
assign Port 4 dont
CMOS40 LDLax10 dont GN th o D Idin dont
neg
MOS40 IVXIO le 4 Alen 2 no
endmodule
Cells to nm
Technology specific
Optimization
Ign
In design optimization the tool tries to optimize the design
to acheive optimal PPA Power performance Area
Scan Chain Insertion
Scan chain insertion can be done by a synthesisteam
if it
is one pass flow or it can be done the DFTteam if
by
it is two pass flow
Incremental Optimization
So after scan chain insertion we do one more round of
incremental optimization
inputs
for it
Answers is For all standardcells poortools hasindependence to place as
per its wish but macros are the one we are fixing locations
Since
physical location macros is known
of doingthis synthesis
by
tool can do more accurate optimization and report more realistic
timingnumbers and area numbers
Using the macro DEF synthesis team gets the idea abouttheinsertion
ofMBISTlogicinside the core area
HYSICAL DESIGN
INPUTS
Is Verilog netlist e
Sdc
i Tech
lef
Physical def
N lib file
4 Sian def
Wii mm me file
Wii UPF CPF
Don't touch
I file
4 Don't use file
Xii Port DEF optional
Xiii Ewasplan DEF optional
Netlist v
file
the connectivity information ofgates RTL
It contain
b
a
Constraints
fortiming
area and Power
c Constraints
for design rules
for
d constraints
for interfaces
e Design rule Constraints
f timing Exceptions
I create clock definition clock exceptions
Cii Generated clock definition is Multicycle path
Iii Virtual clock Lii False Path
Iv Input Delay Gil Half cyclepath
e Output Delay I Disable timing arcs
Ki Max Delay 01 Case Analysis
Will Min Delay
Hiii Max transition
tix Max fanout
X Clock latency
exit Clock uncertainty
Ii common
partoflibcontains
in
librarynametechnologyname
Hi Units ofpower voltage current temperature
in Value of operating condition
His tellspecificinformation
Marx Tin typical of eachcell
Cell specific information in his
file is mainly
a CellName
b PG Pin Name
1 Area
of tell
d Leakage
Power in respect of inputs logicstate
Internal Power
Capacitance
Raise Capacita
Fall Capacitance
Fanout load nce
Site information
Wi MMMe file
Taimode Multi corner file is used to generate different
various
library set files based on Voltage andtemperature
values like Ssoff itt
Xiii Stand
Contains scan chain information ofthe design DFTteamcreates
the Scan DEF and as an inputs to the PD team
gives
flow then we give don't use file For example ULut's we are
removing don'ttouch attribute on the wut's only after
postroutestage
4 Macho DEF
Contains
pin information location of size
ofMacro
Hi Port DEF
Contains the between theports
part location portname space
Wire load Model 7 present in deb
intop If the mode for the top level design is Top thetop
level were load model is used to compute the wire
capacitance all nets within the design at all levelsof
hiearchy
for
is Enclosed Segmented
In these modes wire load models on hiearchial cells
are used to calculate wire load capacitance resistance
and area nets inside these blocks
for
a Enclosed
In using the
enclosed mode Primetime determines net values
wire load model of the heiarchial cell that fully
encloses the net
b Segmented
If segmented mode is set Primetime separately determines
net values of the net in each levelof hiearchy
forthe total net valuefromthe sum all
andthen obtain
segments
of
segments
ofthe net
Design
Mu
ni p ni n h ns NG
p y
Medium Medium
In loadmodels
Custom wire
The net delay is taken generationchip of
fromprevious
same technology mode
in wireload Model
Contains the RC Constant values nets
of
lef
Check desi To check the qualityofnetlist
a Multidriven Nets
In multidriven sets there is no consistency that when I or o
is going to reach in the flops because of multidrivennets
is going to
Design
fail
I III multidriven nets
4
If you are finding any multi driven nets during synthethis
we will report it to the synthethis team
b Floating Inputs
Eating outputs
Dj
a
CK CK
combinationalloop
This addition
ofterm cell Tie cell is done after past route
the tool has done in placement Stage is well and good
If
Ni Emptymodule
Module
endmodule
Due to the empty module during the synthethis stage the tool
will allocate the more estimated area to the empty module
But
finalstages ofdesign should not have empty modules in
the design
Wi Unification
a Suppose a RTL engineer has written verilog code for Not gate
and this verilogcode was converted to Gatelevelnetlist
This AND
gatename will be presentfor will be for thousand
paths but we wantto optimize for only one path upsiring down
sizing Utswapping
each and
That means
every cell present in the path must
have their unique name which is called unification
4 Black box
any blackbox in the design
We should not have
Emptydodules BlackBox
Module YA B Module is
original
I
Innercontent notdefined
End Mode
Y odule instantiation is don
design do YE AtosBios
my
Input output
For Input Reg and output there is no clocks for our
reg
flops calculation ofthesepaths are based on input output
delay constraints So if the Input output delay is missing
the tool will not able to do timing analysis
Is Unconstrained endpoints
For example
everypath is reg reg that means at the end we
need to have the register
If any constraint is missing
at the endpoint wet to neg thoseconstraint missing will
be reported under unconstrained endpoints
For example there are two differenttiming arcs if one of
thetiming arcs is missing then this will come under
unconstrained endpoints
pg
elk
X set driving all
The external driver that drives an input
port has impe
dance and parasitic load characteristics that can
affect
the signal timing To more accuratty take these effectsinto
account can use the setdriving cell command This
you
command
specifies the name of a library cell that is
preassumed to be driving the inputport
net delay
So check timing will check for set driving sell missing
constraint
Bygones
Design
setdrivingcell under load
Analysis jet
Iilibrary
This command will check the inconsistency between tits andalef
among the standard cells
lets
Phtify
a
Ay
B D
i
y
not present
OOD LANNING
Floorplanning Steps
Ii Decide core width and size die estimation
height for
M IO padsites are created
for placement of Io padplacement
Citi Macro Placement
site
Mamas are allinged to
Typesof
grids quid
manufacturing
in Placementguido
ginaggaduringggan
Placingthe parts
b Amoebaviews
1
Floorplan views
d 3D view Innonus
RAMI G Cz Cz Ca G
SameNaming
Convention RAM
RAM
RAMA
Rains
3rd
priority
All macro should be placed to theboundary
near
of the core
Questions why macros should be placed near to the boundary
not in the centre
by
avoided adding decapcells
ioa the
gag for
posts
macros 09
connectionof
standard cells
gag
gag
C
ShapeApproach
4th Minimum channel length shouldbe maintained
Priority
between the macros
Reference metallayer
is the least layer so we wanted to with
Initially m go
the least layer which is presentbetween the macros
8thparity
D Placement of endlapcells Ranting blockage Halo
around the macros
standard cells
of
Routing blockage
hence
The manufacturing
of Ic's happens layer by layerprocess
this is one ofthe reasons routing blockage is placedabove
the macros to avoidshorts
10th
Priority Macropin should beplaced towards thecore area
I fined in
Placement statuses place
fix
hisSoft in Unplaced
set db get db insts if base tell class core's place status fixed
There are
four status for macroplacement s
a Unplaced b Placed c
fined d Soft
fixed
L
Thestandard Celland You are
macro is not placed on explicitlyfixing
the core then the the status
category comes
under Unplaced of macro
status
L
I Can move themacroswithin
the rangeof20am
output
port
Input port
Buffers
Buffers
d Location Edge
A Tracks are used as a reference
for Parts
Attribute Ii getdb getdb is used when we wanted to
s
Now shouldhave
post this part
whenever we are a
choosing
a communication possibility with lowermetal layers
equal
andupper metal layers If we are usingthe top or bottom
metal layer the connection of ports then we mayhave
for
to drop large no of vias for the connection with the
m 5Mt
other parts chips
f
So mostof the time wechoose Mpmoorms
mt
Question How to decide which metal layer is horizontal or
vertical
Danity floatplane
as in Care area widthmustbe in multiple ofplacement
heightmustbe the multiplesof cellheight
grid
ii Core area and die area mustbe clearly
differentiated o
ease
l t
I l
so so
g
eas l Minimumdistancebetween wee
tapsmustbe below sopgicrons
in case 4 the
maintai
minimum
ing
the minimum distance which is to be needed but
distance between well taps is
not maintained
d unplacedports
e
Multiple ports for same tracks I lead to short
etc
for checking min space violation
Commands unplaced ports
check pin assignment
Command
for checking overlap between macros
check place
between the macros so that
sanity check
Command
for
minimum internal distance has been followed or not
check welltap
Questions Before starting the floorplan what is the proffered
initial density initial utilization
Solutions close to 50 551
used
These are
for physical synthesis
Floorplan LEF and DEF will be given to caliber to
check base doc
VDD
Due to resistance the signal Power current is decreasing CIRdrop
spited
current
distribution
As we frombottom to top s
go
a Data tracks is decreasing
a Paver tracks is increasing
Resistance is more
8 0 Power staples
in staples that is
y tf j space is
forsignalrouting
left
the reason we
don't connect it D8 BE
back to back
Mil stripes
mio stripes
Ma staple d Since the Resistance
of
Ms staple sothey are not connected
back to back
Ma staple
Mo staple
ms stripe
To connect metal stripes metal nias isused s
a
Single cat
b Multi cat was Resistance is lessdue to
parallelconnectionofstripes
Actually in a
given power mesh the supply voltage
Upp 0 65 Volts
Uss O volts
6 But in
reality
UDD 0 64 0 63 0 62
Iss 0.0 1 o 02
given by foundary
Thesecells are added in the design to avoid Latchupissue
changes
well taps at
8 8 As Regular Intervals
a welltapscannotbe
added where macros Welltaps are added all
F
I E
ÉBb faga.iq
i
Hi Tieu
purpose cells whose output is constanthigh or low
These are special
left in the layout where you do not have anystandard all present
It is notpossible to abutevery cell available as that would cause
routing issues due to high congestion So if yousay youhave
70 utilization then you can expect 30 ofthe area as unfilled
Decap cells
Fig
rent Steps
Pre placement
Lii Initial Placement Coarse placement Mahal placement
legalization
HENS
0 Iterations
for Congestion Timing DRV andPowerOptimization
Ci Multibit flop conversion
Hii Scan chain reordering
Pre placement
During
Coarse placement the tool determines an approximate
location
foreachcell according to timing congestion
connectivity
theplacement
The placed cells don't
fall on
grid andmight
overlap with eachother
Legalization
So to summarize
Was 200ps
This 1200 too 50 t 100 t 15 75 10 650ps
0 The tool tries to wills and on fining the WNS
first fix
in turn TNS gets reduced
long
distance
routing huge RC leading to RCdelays
means
A good alternative is to use
buffer repeater I idling the
line into several paces
i
IDF
FF
7 I D FE
FF DI
FF
M
beginning
logic restructing means to rearrange logic to meet timing
constraints on critical paths designof
to a
AND NOT HAND
Vi Pin Swapping
Pin swapping optimization examines the slacks on the inputs
of the gates on worst timing paths and optimizes the
timing by swapping nets attached to the inputpins so the net
with the least amount of slack is put on fastest path
through the gate without changing the structure oflogic
Interchanging the
datapaths tothepins 7377
j In Gizahighesttiming arc
is taken as a celldelay
There are
generallyfourpath groups In Reg In out
a Rg Rg
b
Reg out
e Input Reg
d Input output
Maxhotspotlocal hotspot 50
Globalhotspot 100
Congestion depends on
hence
The manufacturing
of Ic's happens layer by layerprocess
this is one ofthe reasons whyrouting blockage is placedabove
the macros to avoidshorts
i Placementblockage
Blockages are specific locations where placing of cells are prevented or
blocked
b Softy aye
This placement blockage won't allow anyof combinational cells
or sequential cells Only placement investor is
of buffer
allowed
c Partial blockage
In a particular region we are partially blocking some area
and some of the area placement is allowed
for the
placement of standard cells
ex S
a Instance
padding
Padding which done on the entire hierarchy of cells is called
instance padding
b Cellpadding
a whenever we are finding a problem withrespect to oneparticular cell
then we
go for cell padding
D In the cell name example AOI cell then all the AOI
for
cell will get the constraint
1XjT
instance
padding
In standard cell padding is done oneside
first on
Hi then routing blockage is applied over the macro
lil Cornerpads
É
ITEMthMI
415 Boundary
Pads Figg
To Mowwheneverthey want to
By Dee
s test the functionality then
SE
they will enable scan enable
elk BY to 1
Sian D flipflop
of netlist
is Mormal Metlist
ScanEnable Neth'st
Inputpins of a scan enableflop
Imjin ftp.nutein
SE ScanEnable Scan output Sto
clock
SI ScanInput
Scanchain
whenever we have of scanInserted flops we pass
a series
I Regioncoration
whenever we are seeing a hierarchal split in design which
is contributing to timing failure with huge slack then
a
a Region
c Guide
Guide is a technique which is to placestandard
cells which belong to one hierarchy in one specific
region and allowing tool to relocate standard cells
to otherregion to have bettertiming
using fence the mandatory thing is the
whenever we are
clk clk
Basic path 1 2
groups Reg LReg highestpriority
2 Reg2 as 2ndhighest priority z
3 In
Reg Equal priority
4 Reg out
11 weight
age
5 In out
India Bangladesh
Pakistan
yfjGÉÉÉMt
If the total design has too paths and all are Reg Reg so
initially if we are not creating any path group all
will have equal weightage
If we create a user
path group for 80paths then these
80paths will be excluded the Thenthere
from design
will be 620paths remaining and we are creating user
name
defined path group with a separate
Now after creatingthe pathgroup have
for example we
achecksoften Placement
a setup check
DRU'so
HENS r E
D
D
D
D
having violations
has still
path from1 to
Data 10
path I 200ps
path 2 180ps Scope to fire Sowe ask tool
to put more these
path 3 160ps effort on
th
Runtime
o
3 time Required for placement
Checks Placement
after Stage
I check legalization
I Check PG connections
for all thecells
Iii Checkcongestion reports
W there should not be wits violations
Timing OOR any
VI DRVs
Lui Check total utilization ofdesignafterplacement
Modes
Understanding different
Is Functional Mode
Pjajnnn.sn
s
nsw
UK SE
D
Wha
Ak SE
Scan
Capture
Tuk qt Taib t Tsetup E Tak
Tak q t tsetup L Tak Setup Equation
holdEquation Tambo
Tak w I Tak
Siang
MhistMode s MBis t Memorybuild in selftest
clocks one
for testing and other is forcheckingthefunctionality
So in taBistmode the testclock is to
going frommy memory
Register The tool will report mem to Reg path for setup
violation
dieting
this step
During CCOpt will build
only
a DRV aware clocktree
In Post conditioning
This step is used to clean
any minor degradation afterthe
clock routing due to signalIntegrity
In placement stage when the optimization is complete the
the slack is met when the clock is ideal
But in Cts stage the real clock comes into picture and
skew is introduced in the design
meet
To theslack since the clock nets are already detailed
routed so we need to do the datapath optimisation
to meet the slack this step is known as post TS
q
our FF FF
oar
is if if if
if if if if if if
Out of the
two skews the tool will always try give more
importance to local skew than global skew because it
always corresponds to a valid in a design
timing path
So inside a skewgroup
Ii First the tool well build the clocktree then the clock
will ensure that the it should have minimum insertion
delay between the flops
Specfile
90ps
i process SS ff tt
Put corners
2 Voltage low high typical
3 Temperature low high typical
4 RC ofmetal Cworst Rebest
J
best RC
worst Rc corner
Coupling Capacitorofmetal Coworst Ccbest
modes functional mode Scan
Operating Shift Scan Capturedmodes
Testmode
3
Lucy target
4 Preffered Metallayer
D Since the toggle rate of clock nets are high so this can
lead to EM violation hencemetal with more width
is chosen So this contains the top proffered metallayers
and bottom metal layer which is used to build clocktree
NDR Rules
Route Rules
forpuffer clocknets
For defining the route rules we are diversifying cts nets
Trunk 2W 25
IN its
leaf
MafanoutImet
Man Capacitate
listof Buffers Inverters to be usedfor cis
a Buffer 618,10 Drivestrength
4 Inverters 8,10
Only LVT cells are used for cts
Max netlength
Largernet length leads to transition violation in the design
so to avoid the transition violation max netlength is
specified in the spec
file
I CTSEnceptions NoTDon
listof Id with drive strengths
Idg incurknets
I Toavoid the crosstalk issue in the nets proper shielding
shouldbepresentbetween thenets This is done by adding UssIUD
between the nets
4 But in general is proffered because Upp requirespower
Uss
In CTS
specfile isgenerated Userdefined Specfile
the tool constraint is
by
commandsmputadded
this content is written in
preplugin files
I Monstoppins gpus
Monstops pins trace through the endpoints that are normally
considered as endpoints
ofclocktree
Enampf
The clock
pin of sequential cells duringgenerated clocks
an implicit stop pins clock divider circuit
Clock cells
a pins of It or
sq
D Q D A
DANK D
Through pin
Endude Pins
Ended e pins are clock tree endpoints that are excluded
Enamplet
Mon clock input pin of sequential cell
a Multiplexer select Pin
Ciii Float Pins
Float Pins clock pins that havespecial insertion
are
Ms hoops Macro
X
in
2ns flop
iv Stopping
Stoppins are the endpoints of check tree that are used
delay balancing In Cts the tool uses stop pins in
for
calculations and optimization for both DRC and clocktree
timing
IQ Pins
clock
TaTa Ito Ty to Ito ti
Its data
So in the above don'tneed clock to propagate
case we
if the data is not present Er after Tr
Data Enable D d
And
gate
oops
clock
A Ica's are added both near to the clock definition
pointand near to the leaf cells
amitant to Ica
zyreg Path
Report
check for ska
in check
for latency
Iii check for fanouts
civ Max transition
e Man Capacitance
Mi EM Violations
Vii Fired Place Unplaced Softfire 20microns
Status ofclock
network cells
checking forglobalroutes
proffered first
If the data nets are given more preference then the clock
nets will get detoured Hence clock routing is performed in
CTS itself
Priority Order
I Thereshould not be
any open's andshorts in clock
nets
Imingcheckfor
Setup check
holdcheck
In Cts the real clock comes into picture and hold is
checked with respect to clock edges
Notdependent
of clock period
305T CTS
O
D
DI D D A
DD ok alk
D D D
post cts
Techniques to improve setup
Utswapping higherUt
to Lowery
till Upsizing
id Buffer Insertion Breaking the net
is cloning
01 logic Restructuring disadvantages leads to congestion
Xi Pin Swapping
Forholdt
LowerUt to higher Vt
Uswapping
BufferInsertion Near tothe end point ofCapture flop
We are adding near to the Capture flop because
we are connecting in between the flops there
if may
be many fanout connected to the data nets
Adding buffer may effect
other timing paths
D a
toooo D o which are connected
Fanouls to it
elk elk
n ni n t paths
In 1 n path inti paly
s
kazoo gooooo Appar Gooooo Nooooogooooogooooo
FF FF F
Fez Fg
Clock
pushing clock is late
coming
clockpulling clock is coming early
A clock pushing in a path will impactsetup in nti
Checks
after Post Cts IsSetup Reports Setup holdboth
IS hold Reports will be checked
on user definedpath
groups
Ciii DRV's
Question
If Wms is optimized having too much
we are
TNS then what
type of technique will be used
Answers We will give postcis dob
for incremental
optimization
Incremental optimization works on reducing WNs Ultimatty
Grouting
In global routing tool identifies the shortest rentablepaths
is not DRC aware I will not consider Drc while routing
Hi while doing the global routing the tool tries to assign
layers to the nets
Ei
while doing the congestion calculation it tries to
calculate the number in each So
of overflows layer global
routing is congestion aware
Track assignment
Detailed Routing
Tries to
fire all Drc violations after track assignment
a size small area known as bbox
using fined
Mk Mk
Checks
after Routing
I setup holdtiming checks in comparison to postcis and
Routing
Hit Noise
glitchreport
POST ROUTI
At routing stage the Datanets are detailed routed due to which
RC Delay the net comes into picture which again degrades
of
the timing of design
Optimizationques
finingorder
4 ITWhen
are fining the Drv's this well fix many
setup holds that is the reason we are fixing Dru's
I Hold
we are derate in thedata path and we have only
trying add
a
postrouteAb
Starke quantusRC
of SPEF generation
Significance
Is larger number of Unannotated netsshows that routing has
been done properly
y the tool So spef file containing large
no of annotated bets does not give accurateresults in Sta
Timing Sta
SIGN OFI
Physicalverification
SIGN OFF TIMING STA
Inputs a Postroutedb
b SPEEfile
PrimeTime
Tools Is Synopsys
Tempus Cadence
in Setup
Outputs 120ps
Ii hold 60ps
BA is more
STATIC TIMING ANALYSIS
Setuptime
Jitter
Clock the deviation
is a clockedge from its ideal
jitter of
position in time
Types
oflatency
ounce latency the time taken
Source latency is defined as
Skew
ositive Skew
If the Capture clock comes late than the
launch clock then it is called the skew
Sourcelatency
Network latency
Setup Hold
i
Upsizing Is Downsizing
Ut swapping Hut Lutlulut Gi UtswappingKut Hut Higheste
ImingException
Falsepath
False path refers to a timing path in timing Analysis is
not done on that particularhats it will never get captured
in a limited time frame whenexcited
Is Recovery time
It is the minimum required time to the neat active edge
after the reset
Removal time
It is the minimum required time after which reset can
be released
G BA and PBA
GBI
In GBA mode the tool computes the path delay based worst
the instances
case timing arcs
of all
A GBA take less runtime as compared to PBA
PBI
In path based timing analysis the tool considers each path inisolation
other paths which eliminates impossible combination
from of
worst stew and worstarrivals and similar combination
of effects
such as crosstalk and CRPR
Thereporttiming commands
report thetiming paths in the current design
that haveworstslack These are the paths that violate the timing
constraints the large amounts or paths with positive slack that comes
by
closest to causing timing violation
DEach pathhas a startpointand an endpoint Data is launched a
by
clockedge at the path start
point propagatedthrough combinationallogic
in thepath and then captured at the path endpoint another
clock edge The startpoint can be a registerclock pin
by
or an input
post The endpoint can be a register data inputpin or an output
port
command without options reports the
By default thereporttiming single
constraint violation
paths in the design with the worstmaxdelay setup
to consider constraints other than max delay use the delay type
option
To control the numberof paths reported use the nworst option which
specifies the maximum number of worstpaths reported per endpoint
IING Reports
To invoke path based analysis use the pbamode option In pathbased
timing analysis the tool path in isolation fromother
considers each
paths
u
Éo___
oom
MINIMUM PULSE WIDTH CHECK
variationwithin a die
is termed as localvariation
So inside a wafer there is a variation in each dia and
also there is variation in characteristics of transistors even
inside even inside a single IC along with the die
Sof variation
Profess 1 temperature
Voltage
ystematic onSystematic
Ambient Juridion
variations Variations temp Temp
Internal Variation
SupplyVoltage
voltage
variation
ProcessVariation
In processvariation there are two types of variation one is
systematic Variation and other is non systematic Variation
Chip ariations
To take care of Ocu we need to addsome pessimism in
the timing of standard cells we basically apply Ix
of additional delay to all standard cells which is
called OCU derate
Ocu berate factors
A fixed derate factor is applied on throughout the design so
in that case any variation occurs will not cause failure of
the Chip But it added too much of timing pessimism
which leads to difficulties in the timing closure especially in the
lower nodes
Issues in OCU
Fixed timing derate is used all the cells in the Ocu is
over pessimistic In reality for
there is cancellation Random
a
of
variation effect
D
LF c
Ho Mo r
Distance
y
logicdepth
g
Distance
If the distance increases systematic variation would
Pathdepth
In the case of distance is fined andpath depthincreases systemal
variation would be constant but the random variation would tend
to cancel each other Therefore the pathdepthincreases the derate
factor would
decreases
teletypes
The dirate is based on the celltype as an ANDgate and or
gate doesnotexibit thesame variation Derate value also varies
with drive strength of the cell like ANDI and ANDY will have
drive derate values
Poco
In Pev instead of applying the specific derate factor to
A cell cell
delay is calculated based on delayvariation
o the cell
of
In Poco it is assumed that the normal delayvalue of a
it
310 20 20 35
I Y I
7
95
2 995
DOCU
Analysis
Docu uses nominal delayvalues k instead
ofusing the
min or max value of delay to modelthe randomvariations
using the nominal delay valued
and
Timing Analysis is
A done
delay variation o in thefollowing ways
PInputda
Is using single
POCu coefficient c
An external
file containing the delaycoefficientvalues C for each
heiarchial cell ordesign
library cell
There is only one valueof C for eachtiming arc ofthe
cell irrespective of the input transition or outputload
The cell
delay variation o is calculated based on Cas
follows
The delay variation o Ct Nominaldelay
Poor Calculations
Verilog library
SDC Parasitic RC
variation setup
Read POW Input andenable PoW Analysis
Timing Analysis
Subtraction
Apply statiscal Addition min
Max calculation
AOCU POCO
Is Random Variation modeled andsystematic variation
Random
Numericals
0 2 O 4
D a
I
Launcher
Wtf
µ O3 2 0 4
Arrival time A T
Required time
Setup Slack RT A T
4.23 4.29
0006 C ve Slack
Holdanalysis
hold analysis we need to take
While calculating the
derates the launch and late derate early
along path along
the Capture path
Arrival time
wire 1 delay early derate tide early
q
derate wire 2delay
derate inverter delay early derate were 3delay
early derate
early
Arrival time 0.1 0.9 0.2 0.9 0.2 0.9 3 0.9
0.4 9 3 51 nseconds
Required time
ight Ight
m O3 2 0.4
Setup Analysis
AT were 1 talk to a inv delay wire 3
AT O I 0 2 02 3 0 4 3.9nseconds
HoldAnalysis
AT were I talk qt inv delay wire 3
A T O 1 0 2 to 2 3 0.4 3.9ns
Hold Slack A T RT
I In seconds
GRPRICII
RPR Clock Re
convergence
removal Pessimism
CPPR Clock Path pessimism removal
D a D a
delay
Tsetup 0.35ns
FF 5.2ns Ftz
TIM
BE BE
A
Iga M
woop
ihr
ak Thold 0.25ns
Ins 0.86
Set timing derate early 09
set timing derate late 1.2
Solution
getup slack RT LA
AT 1.2ns to 8 5.2
RT 10 1.2 086 0.35 setup
Hold Slack A T RT
R'T o 8 11 0.25 1.1 1.2 1.2 0.9 ppr
AT 12 0.9 t 10.8 0.9 5 2 0.9
Question
why do we need to go with STA if the timing is already
clean in Postroute stage
Inputs is routedb
Post
SPEF
Kii STA Reports
ECO EngineeringChangeOrder
inDRy'secofiley
Thiscontainsglitch bumpyWaveform
noise Ecofiles
ECOFlows routedb
new post
Jostroute dis's
SPEF
1ststage
Sta
Reporting W
Reports
Éco
Tempus flow
2nd ECO til files with
Stage
fines
Generating tool
based Elo's Restorepostroutelab Restoringthe dbwithInno
vous
ICcompiler Pnrtool
gotdisturbedaftersourcingthe
Whatevernets
ecoMaute Ecofiledue toinstancesintroductionthenets
are
routedagainin Ecoroutestage
Addfilter cells
Savictb
Spefgeneration postroutedb
new
If the tool not able to fix the timing
generated Elo is
then we have to with manualEco's Generally I 2
go
iteration is done with tool Eco still
if degradation intiming
is observed we with manualEco's
go
ManualEco
Manual Ecomean's user have to write the til script to
fire the violations ability to report the timing
Runtime
Physical verification caliber
Lhs
II ERC
Ciii Antenna Violation
In Metal Go violations
C Lus
Rule deck Rule deck is given from foundry It is a
file file
set of written in standard verification rule format
Code
US layoutnetlist
Spice netlist generatedfromspicetool
Bares
it Violation with to oxide diffusion OD
ftp.ggt
spacing
Area
Enclosure
Overlaps Overlaps with N well
width
Area
ptre t
US ERC I
MetalDRIs
From me to the top routing layer Fos ex Mai if we are
reroute it again
89Short
i
Soif some overlap issue is present with respect to ESD cells this will
be reported in ESD violations
Sometimes
in order to the min the pin
fill area requirements
dimension is not a straight line So the pin dimensionmay
be in CShape I Shape or reverse C Shape
r b
formation of metalloop
So in this this mutual couplingof Pins
case during fabrication
this might effect the intended functionality of cell
Dueto the's type of metal loopformation capacitance ofeach
pin will effect the pinsof other standard cells
Spreading the cell can resolve metal G violation
Lutputs of LEC
A Mismatch Instance Name report LEC Fait
o o
ye FE
Inverter Buffer
Mismatch Instant.es LEC fail
of
In LEC the tool matches thetwo given netlist with respect toinputs
andoutputs logico orlogic 1
Stages at which LEC isdone
Reason
forperforming Lec
Post Timing optimization
Synthesis
Ii At placement Data path optimization
Hill Past Cts Data Path and Clock optimizations
v1 Past Routes Datapath optimization
your netlist
Question a Functional Eco is introduced in which
If
will
your golden netlist
aFunctional Eco Synthesized netlist will be
mygolden
netlist Given Synthesis team
by
Runtime
Redhawk EM IR Checks
2hrs
a The
first method is to reduce the amount
ofchargeaccumulation
and this can be acheived
reducing the area of metal
by
gate oftransistor
interconnect connected to
Antenna Ratio
Antenna Ratio is theratio ofthe metal area connected tothe
gate
to thetotal gate area
Antenna Rule
file CALIBER
Antenna Check
results
Design
gaffease
N JumperInsertion
Best to break thelengthy metal into small pieces and
way
using jumpers route them through other metal layers This
process is called jumper insertion ofmetal hopping
Iii Adding antenna diodes Ireversedbiased zener diode
Aggressor
Do 0
mm Im Iit
GlitchMagnitudes
Magnitude depends on
Ii coupling capacitor between Aggressor victim
Slew of aggressor
tin Victim not ground Capacitor
N Victim net driving strength
Overshoot
victim
Aggressor
AFall glitch
Rise
glitch
Nana
Crosstalk delta
delay
Negative crosstalk delays
when Aggressor and victim are switching in same direction
abath
Aggressor
Do 0
Positive Crosstalk
Delays
d
o
Aggressor
Setup Equation
Launch Clockpath
Dataggh
Tsetup Jimmy t Capture path
Delay Delay
Worstcrosstalk scenario
forsetup
delay on launchand data path
Positive crosstalk
Worstcrosstalk scenario
for hold
Launch Clock path Datapath delay Thold Capture Path Delay
Latchap formation
CMos circuit two parasites BIT
Inside a
get formed and
and connected in such a
way that
these BIT form a PNPN
device
summary
latch
up is a phenomenon of activating the parasitic Bit's in a
TEMP IN VERSION
i
to the phenomenon
ofelectrons decreases
of
HiTemptnversion
In lower technology nodes Vas has a lower value and
Time borrowing
property of latches is due to the fact that
latches are level sensitive hence
they can capture data
times than a singletime the entire
over a
range of
duration time over which they are transparent Ifthey
of
capture data when they are transparent the same pointof
time can launch the data
for the next stage
lock
up
latches are used two scan flopshaving large
in between
hold failure probability due to uncommon clock path so that
there is no issue in
closing timing in a scan chain across
domains in scan shift mode
a Concatenation
of Scan chains of different Clockdomains
There is aneed of concatenation of scan chainsof different
domains lock in order to mitigate
up latch is
clock inserted
large clock skew and uncommon path
Scanchain I
I
Yahn
Simms I
but to eachother
lil Flops within same domain are
far apart
when flops are sitting
far apart the same clock
but within
domain so to avoid
large clock skew and uncommon path
lock up latch is inserted in between
Figs lock
up latch connecting far apartflops within the
same clock domain
DOUBLE PATTERNINI
The fabrication MOSFET's
i's done using light of Wavelength 193mm
of
in a process called optical lithography Now as we
move lower Technology nodes i e channel below 30 nm the
process can loose its accuracy The quality is lost dueto
the diffraction of light around the corners and edgesofthe
mask since the features are so small compared to the
wavelength oflight The result in uneven edges ofthe mask
since the features are too smaller as compared to the
Wavelen th
of light This results in uneven edges shorts or the
complete absence
of metal to be etched this is where
double
patterning comes into picture
gig's
intparaara
Maska Task I
Result
HEIRARCHICAL BLOCK
Etangeneration Primetime
This ETMs are generated
by Tempus
Once the placement is done this placement db is given to
Primetime Tempus to generate ETMs
The tool will generate ETMs which contains theenactinternal delaysof
Childblock
A Inter logic Module ILM's are same like ETMs but this
model is
for Chiplevel
Person I childblock Person 2 Parent
Block
stage Floorplanning is
complete but Person I has to
ay
On post cts we generate EtMs Ms For parent block
Because due heed to notethe while doingpostCTS
irate timing information EtMs
6) init_design
To load the netlist file
7) read_def
Load a DEF file containing the floorplan saved by any tool.
Load the DEF file containing the scan chain information so that the
placement can do scan chain reorder.
9) check_place
Checks FIXED and PLACED cells for violations, adds violations markers
to the display area, and generates the violation report.
10) add_io_buffers
Adds buffers/inverters to the I/O pins and places the buffers/inverters
near the I/O pins.
11) check_pin_assignment
Sanity checks with respect to port placement like spacing, allignment
with tracks, allingment with proper metal layer etc.
13) create_route_blockage
Creates an area which prevents which prevents routing of specified
metal layer, signal routes and hierarchical instances.
{-insts name} - blockage over a particular instance
{-layers layer name} -blockage over particular layer
{-rects {x1 y1 x2 y2} … { } } - specifies the rectangular area of the
blockage
{polygon {x1 y1 x2 y2} …{ } } -specifies the polygon area of the blockage
{-except_pg_nets} - applies routing blockage to all the nets except PG
nets
14) create_place_blockage
Creates a placement blockage for the specified area.
-rects {x1 y1 x2 y2} -area of the blockage
-all_macros -keeps the placement blockage around all macro
-type -hard/soft/{-partial -density -exclude_flops}/macro only
a) hard -niether standard cell nor macros may be placed in the blockage
b) soft - allows only buffers, inverters, isolation cells, clock gates, tie
cells and level shifters.
c) partial -creates a placement blockage that has a maximum density as
specified (sometime excludes flops and latches too)
d) macro_only - enable proto_design command to keep macros out of
the placement blockage
-inst instance name - specifies the name of instances in which
placement blockage has to be applied.
15) add_endcaps
Places physical only end cap cells at the end of site rows. add_endcaps
is always done after floorplan and before add_well_taps
{-rect x1 y1 x2 y2} — boundary box.
{-core_boundary_only} —specifies that endcaps cells are placed within
the core boundary.
{-power_domain power domain name} —specifies the power domain
name in which the endcaps are inserted.
16) add_well_taps
Add physical only well tap cells. Well tap cells are physical only filler
cells that are required by some technology libraries to limit the
resistance between power and ground connections.
{-area x1 y1 x2 y2} -specifies the co ordinates of all row in which well tap
needed to be placed
{-cell_interval microns} -specifies the maximum distance from the center
of one well tap to the other well tap
{-checker_board} —places the well tap in checker board pattern
17) add_decaps
Adds decoupling capacitance to the end of design.
[-place_status] -keep the place status of macro as fixed or placed
[-area lllx lly urx ury | -exclude _areas { {lax lly urx ury} … { } ] -defines the
entire area in which decaps are to be added
[-pg_net net name] —add decaps to the specified power rail.
19) create_place_halo
Adds a halo to the block. A halo is an area that prevents the placement
of standard cells within the specified halo distance from the edge of a
hard macro to avoid congestion.
{-all_blocks} — add halo around all hard macros, black boxes and
commited partitions.
{-all_io_pads} —add halo around all IO Pads.
{-cell name} —Add halo around all instances of cell.
Sanity check after Powerplan:
1) check_connectivity
Detects conditions such as opens, unconnected, wires(geometric
antennas), unconnected pins, loops, partial routing and unrouted nets
and generates violation marker in the design window; reports violations.
{-out_file filename} specifies the report file for connectivity violation data
2)check_power_vias
This command checks missing powergrid vias.
{-area {x1 y1 x2 y2}} specifies the co-ordinates of the area to be checked
{-report filename } specifies the name of output file for the report.
{-what_if_report filename } write out the violations data into an ECO file
that can be used directly as an input for what if rail analysis
3) check_drc
Checks for the DRC Violations and creates violation markers in the
design database that can be seen on the GUI and browsed with the
violation browser.
{-area {x1 y1 x2 y2} … {} } checks DRC within the specified area
{-out_file filename} specifies the report file that contains DRC violations
information.
5) add_stripes -area
Creates power strips within the specified area.
6) update_power_vias
Adds power vias to the design or perform one of the following actions to
existing power vias:
a) Modies the power vias
b) Deletes the power vias
c) Fixes the vias that violate LEF minimum cut rule
INNOVUS command Placement:
1) set_cell_padding
Add cell padding to the specified instance
{-cells leaf cell name}
{-padding right | left | top |bottom}
2) set_inst_padding
creates cell padding for entire hierarchy of instances.
{-inst instance name}
{-padding number of sites | [-right_side numofsites] [-left_side
numofsites] [-top_side numofsites] [-bottom_side numofsites]
3)create_group
Command for creating fence, region, guide, cluster
{-name group_name} Name of the created group
{-type fence/region/guide/cluster} specifies the type of group to create
{-density value} specifies the placement density percentage
{-rects {x1 y1 x2 y2}……{ } } specifies the coordinates of the rectangle for
fence, region and guide
4)group_path
Creates group path in the design, and identifies them with the path
group name.
{-name path group name } specifies the name of path group
{-from fromlist} List of pins, instances at the start of path
{-through throughlist } list of pins, instances where the paths go through
{-to to list } list of pins, instances where the path ends
5) place_connected
Magnetic placement
{-attractor_pin pinlist} specifies hard macros/IOs/fixed standard cells for
attracting standard cells.
{-attractor macrolist } places only standard cells connected with
specified pins of attractor close to attractor.
{-sequential all_connected} pulls sequential cells connected close to the
attractor.
6) place_opt_design
Executes pre-CTS with both placement and pre CTS optimization.
{-expanded_views} prints timing information for each active view at the
end of the command.
{-incremental} specifies the “place_opt_design” to run incremental
mode
{-num_paths numofpaths} specifies the number of paths to be reported
in the timing report.
{-report_dir directoryname} specifies the output directory in which the
timing/DRV reports will be saved.
{report_prefix outfilename} specifies the file name that is generated at
the end of place_opt_design.
7) opt_design
Performs timing optimization before or after the clock tree is built, or
after routing and generates timing reports.
{-drv} — corrects max_cap and max_trans violations, if we want to
correct fanout_load we have to first specify opt_fix_load attribute before
you specify opt_design.
8) report_congestion
Reports the average congestion and the local hotspot score.
{-hotspot} reports the local hotspot score. It reports the local and total
hotspot area.
{-overflow} reports horizontal and vertical overflow.
{-3d} honors 3d congestion map.
1) ccopt_design
Performs clock concurrent optimization (CCOpt) on the current loaded
design in Innovus.
{-check _cts_config} checks that all the prerequites for running the
clock tree synthesis are fulfilled without actual doing CTS.
2) create_clock_tree_spec
Create a clock tree network with associated skew groups and other
clock tree synthesis (CTS) configuration setting such as ignore pins,
case analysis, max trans etc.
{-out_file filename} writes this clock tree specification script file in
Stylus UI format.
{-views} specifies the TCL list of analysis view names.
3) delete_clock_tree_spec
This command deletes all the skew group definitions and other clock
tree synthesis configuration information.
INNOVUS command Routing Stage:
1) route_design
Runs routing per postroute via or wire optimization using the nanoroute
router. Using without any arguments runs global and detailed routing.
2) opt_design -post_route
Performs timing optimization after post route.
3) {-exclude excludelist}
Excludes all paths in which the data goes from, through, or to the
specified list of pins, ports, nets or cell instances. Use of -exclude
option can lead to longer runtimes. To reduce the runtime impact, use
-from and -through.
For ex. report_timing -from -A1 -through {B1 B2} -through C1 -to D1
Reports only paths in which the data goes through the named pins,
ports, cell instances, or nets. This option can be used multiple times in a
command.
If advanced analysis through transparent latches in enabled
(timing_enable_through_paths set to true), and the pins specified in the
last -through options are latch loop breakers.
5) {-delay_type delaytype}
Specifies the type of path delay constraint to consider for finding and
sorting paths with worst slacks.
If you are setting the value greater than the default value, then the tool
does the following things:
8) {-group groupname}
Reports only paths that belongs to the specified path groups.
9) {-slack_lesser_than maximumslack}
Reports only paths with slack less than the specified maximum_slack
value
13) {-don_merge_duplicates}
Prevents the merging of duplicate paths across multiple scenarios in
DMSA.
By default, when the same path is reported in more than one scenario,
the tool reports only the single most critical instances of the path from
all scenarios.
15) {-nets}
Shows the nets in the timing path.
16) {-transition_time}
Shows the transition time (slew) in the path report for each driver and
load pin, appearing as an additional column labeled “Trans”.
17) {-crosstalk_delta}
Reports the annotated delta delay values at cell input pins in a column
labeled “Delta”. The delta delay values are computed during crosstalk
and Signal Integrity analysis.
18) {-derate}
Shows derating factors in a column labeled “Derate”. Specifying this
option automatically sets the -input_pins option, so that different net
and cell derating values are reported.
19) {-variation}
Includes parametric on-chip variation (POCV) in the report in columns
labeled “Mean” and “Sensit”. POCV analysis is enabled by setting the
timing_pocvm_enable_analysis variable to true.
20) {-physical}
Reports the X-Y co-ordinates for each path element in a column labeled
“location”.
21) {-voltage}
Reports the supply group or the supply net name for each path element
in a column labeled “voltage” allowing you to debug voltage levels in
multi voltage designs.