PD Interview Questions and Answers
PD Interview Questions and Answers
a) setup fixes:
b) Hold fixes:
a) I worked on 10 corners.
6. How to fix setup and hold violations if the base layers are fixed?
a) Setup:
3. Hold :
4. Path exceptions
• Set_min_delay
• Set_max_delay
• Set_multicycle_path 3 –from [get_clocks {launch clock}] –to [
get_clocks { capture clock}] -setup
Set_multicycle_path 2 –from [get_clocks {launch clock}] –to [
get_clocks { capture clock}] -hold
• Set_false_path –from [get_clocks {clk}] –to [get_clocks {clk_v}]
• Set_clock_uncertainty 0.2 –from [get_clocks{clk}] –to [get_clocks {clk_v} ]
8. Explain PD flow ?
a) Inputs to the PD are netlist(.v) , .sdc , .lef , .lib , captables, udf/cpf.
1. Performing sanity checks on input files. if all sanity checks are cleared then
only we move further.
2. Floor planning :
• define core area dimensions, calculate utilization and aspect ratio then
• place IO ports then
• place macros by following macro guidelines then
• place physical cells
3. placement :
• Global placement : std cells are placed based on hierarchy
• congestion
• timing ( drv’s and setup)
• core area utilization
• Cells placed in a legalized manner or not.
• netlist (.v)
• sdc
• lef
• def
• lib
• captables
16. what is skew ? and what are the different types of skew?
a) skew is the difference between the capture latency and launch latency. There are two
types of skew. 1. Positive skew 2.negative skew.
degrades setup.
a) Endcap cells are the physical only cells, which are placed at the boundary of the chip to
avoid cell damage during fabrication and to provide nwell continuity to the std cells at the
end of the rows.
a) Halo is one type of blockage; it placed around the macros to avoid base drc violations.
Useful skew is the technique that is improving setup without impacting the hold
violation. Global skew is difference between max latency and min latency.
a) cross talk is the transfer of a voltage transition from multiple switching net
(aggressor ) to another static or switching net ( victim ) through a capacitor.
a) Electron migration: The gradual displacement of metal atoms along with the charge
carriers due to the flow of high density current is called electron migration.
It results in shorts and opens in the circuit. To overcome EM increase the width of the metal
layers.
a) There are 3 clocks in my design. One is main clock, test clock and generated clock.
a) I did one project on Low power design. In that 3 power domains are there.
Two are switchable and one is always-on domain.
a) I worked on three projects , in that two are rectangle and one is square.
31. you worked on 28nm and 14nm technology, what differences you found?
a) After placement we will check setup violations, so while calculating timing from in-to-reg
and reg- to-out paths it requires external input and output delays those are mentioned in sdc
file. And also any path exceptions like multicycle path , false path and asynchronous paths.
And clock definitions are required for calculating timing.
a) In data path nets and clock path nets also( if we didn’t provide NDR’S).
a) In AC.
a) Innovus 18.1
a) yes , I solved the setup and hold violations after CTS stage.
a) Floor planning :
• define core area dimensions, calculate utilization and aspect ratio then
• place IO ports then
• place macros by following macro guidelines then
• place physical cells
a)
42. In between macros std cells can we place?
a) At placement stage if any std cells are placed in macro channel , if we didn’t get any
congestion issues then we can place . if we are getting congestion in macro channel then
put any hard blockage to avoid std cells placement.
a) In floorplan stage only Endcap cells and Welltap cells are placed.
44. How many clocks you have ? location of clocks? Frequency of design?
a) Three clocks are there in my design. IO ports are placed on top side of the block.
Frequency is 500 MHz.
a) After post route stage, the routed netlist is send to all sign off stages. At sign off
stage if they found any timing , IR , lec and DRC’s related issues, then sign off
people wrote some ECO’s ( engineering change order) to solve those issues and
send back to the PD people.
a) In Physical design flow after Placement , CTS and Routing stage the STA people
will involve to solve timing violations (DRV’S , setup and hold).
The main targets of CTS are to balancing skew and insertion delay. In CTS stage ,
clock will be built from clock port to all flip flop clock pins. And then clock tree
optimization will be done.
a) clock buffers and clock inverters have equal rise and fall delays.
a) In my project I used both clock inverters and clock buffers. Clock inverter has
good tran compare to clock buffers.
50. What do you meant by PBA?
a) PBA ( path base analysis) while calculating timing, tool will follow path base analysis . In
path base analysis tool pick worst delay arc while calculating setup and min delay arc for
the cells while calculating hold irrespective of the path.
a) Yes.
52. Draw your block? Where the pins are located? Which metal layers are used for your
pins?
a)
pins located at top side of the block. Metal 4 is used for pins.
53. why you placed pins on top side , why not any other side?
a) The IO ports location is purely depends on data flow. Based on communication on top
level chip , our block communication with other blocks will decides the port location.
a) 250 ps
a) I involved from netlist to gds. and my role is to make good floor plan, solving
congestion and solving timing violations.
• netlist (.v)
• sdc
• lib
• spef
58. Tell me flow RTL onwards?
a) for module, it has module definition and endmodule. It doesn’t contain logic inside it.
a) LVT Cells has Low threshold voltage and high doping concentration, therefore less
delay and more leakage power.
HVT Cells has High threshold voltage and less doping concentration, therefore more
delay and less leakage power.
61. What consists of uncertainty where you’re getting those values? Why we need to
give those?
We can get this value from top level people. To over constraint the design we consider
uncertainty parameters.
a) Samsung foundry.
a) If the clock is skewed intentionally to resolve the violations, it is called as useful skew.
LIB missing: The design has been initialized in physical-only mode because the
init_mmmc_file global variable was not defined. Timing analysis will not be possible within
this session. You can only use commands that do not depend on timing data. If you need to
use timing, you need to restart with an init_mmmc_file to define the timing setup, or you can
save this design and use restoreDesign - mmmc_file <viewDef.tcl> to add the timing setup
information.
LEF missing :
a) checkNetlist : The checkNetlist command will check the netlist , is it have any :
• Tri-state buffers
• Multi driven Nets
• Combinational loops
• No.of input floating’s
• Empty modules
checkDesign –timingLibrary: This command is used to check the library. It shows errors like,
checkDesign –physicalLibrary : This command is used to check the LEF file. It shows errors
like,
timeDesign –preplace : This command is used to check the timing violations present in the
design at synthesis stage only.
72. What happens if I have multi driven nets in my design?
Due to multi driven nets functionality will damage. Here we don’t know that which
value the buffer will drive. Multi driven nets should not be present in the design.
73. How will you place macros if you have 100 macros in your design?
a) By using design browser we can group the macros of same hierarchy, and then we
will assign different colours to different hierarchies for easy identification. Then we will
place particular hierarchy of macros at one place by following macro guidelines and
based on communication by using flight line analysis.
a) The stripes will get power from power rings. And the macros will get power from stripes.
Generally for power stripes we will use higher metal layers (M8, M9) but macro pins are on
M3, M4, M5, M6 layers, so there should be stacked via from via3 to via9 to connect stripe
to macro pin.
75. In my design I don’t have cell density and pin density but I face congestion
what could be the reason?
a) In placement stage clock is ideal that means the skew is zero. Setup slack is difference of
required path and arrival path. Setup slack = RT – AT. If RT value is less compared to AT
value then we get the setup violation. In placement stage clock is ideal so less delay is
present in clock path, so we get setup violations.
a) Because clock tree is not build at placement stage that means clock is ideal. Clock ideal
means , skew is zero, so we can’t get hold violations.
a) 1. If you don’t have reasonable rationale to place the macro inside the core area,
then place macros around the chip periphery.
79. Why we should not place macros at the centre of the core area?
a) Placing a macro centre of the core can invite serious consequence during routing due
to a lot of detour routing, because macros are equal to a large obstacle for routing.
Another advantage to placing the hard macros around the core periphery is it's easier to
supply power to them, and reduces the change of IR drop problems to macros consuming
high amounts of power.
place_design
optDesign –
preCTS
place_opt_desig
createPlacementBlockag
e checkPlace
refinePlace
report_utilization (checkFPlan –
report_timing
a) I didn’t fixed skew. But I know how to fix skew i.e we should concentrate on each path
while fixing skew because if you fix skew for one path then any other path gets violated.
Fixing skew is nothing but adding buffers and removing buffers in the clock path.
for next time Eco’s , we will load the previously updated routed database.
84. What are all sign off tools you have experience?
a) I have hands on experience on PD tool only. I don’t have hands on experience on sign off
tools.
85. what are half cycle paths? In half cycle path which one is critical? Setup or hold?
a) A path which requires only half cycle to capture the data. It is formed when data is
launched on positive edge of the clock and captured on negative edge of the clock or when
data gets launched on negative edge of the clock and gets captured on positive edge of the
clock.
In such paths, setup check become more tight as setup gets only half cycle while hold
constraint is relaxed by half cycle.
The falling edge occurs at 5ns and the rising edge occurs at 10ns. Thus, the data gets only a
half-cycle, which is 5ns, to propagate to the capture flip-flop. While the data path gets
only half- cycle for setup check, an extra half-cycle is available for the hold timing check.
The hold check always occurs one cycle prior to the capture edge. Since the capture edge
occurs at 10ns, the previous capture edge is at 0ns, and hence the hold gets checked at 0ns.
This effectively adds a half-cycle margin for hold checking and thus results in a large positive
slack on hold.
86. If you are facing congestion globally ,what is the reason for that?
a) By skewing the clock path we will fix the timing violations. Hold can be fixed by
pushing (adding buffers) launch path and pulling (removing buffers) the capture path.
a) Clock gating is a very common technique to save power by stopping the clock to a module
when the module is not operating. The advantage of ICG cell is , it reduces dynamic power
consumption.
90. What you will fix first if there is setup , hold and DRV’s?
a) First we have to fix DRV’s and then setup and then hold.
91. In netlist we didn’t find pg pin information then where will you find this ?
a) No, I didn’t get congestion between macro channel. Some standard cells are placed but
congestion didn’t occur. If I get congestion between macro channel then I will solve that
congestion by applying hard blockage.
a) Latency is important than skew. If timing is met for both scenarios then which one
you will choose?
95. What is the difference between soft , hard and partial blockages?
a) soft blockage : It won’t allow std cells to place in that area during global
placement. But it allows buffers and inverters during optimization.
Hard blockage : It won’t allow std cells to place in that area during global
placement and optimization also.
96. How will you apply derates for setup and hold ?
a) For setup : early derates are applied to capture path and late derates are applied to
launch path. For hold : early derates are applied to launch path and late derates are
a) The time taken by the signal to switch from one state to another state is called
transition time. Rise transition : The time taken by the signal to switch from 10% of its
input to 90% of its output is called rise transition.
Fall transition : The time taken by the signal to switch from 90% of its input to 10% of its
output is called fall transition.
• First look at starting and ending points is both are triggered by the same
clock or different clock. if it is different clock then check both clocks are
synchronous or asynchronous.
• Then see the slack value . if slack is violating more than 1ns , then analyse
why it is violating that much. This violation occurs maybe due to constraint
missing like multi cycle path or half cycle path.
• If slack is less then see the report for which cell is taking more delay. And
analyse why this cell taking this much delay i.e observe input tran and output
cap of the cell.
• Find the no.of violating paths, if more paths violating with single start
point and multiple endpoints then trace out diverging point from starting
point. And do changes before diverging point.
• After analysing the reports use proper techniques to solve setup and hold
violations.
a) NDR’s ( non default routing rule) are used on clock nets . because clock nets are high
switching activity nets so they effected more on cross talk and EM issues. In my design
we used 2w2s . double width to avoid EM violation and double space to avoid cross talk
violation
a) Because the size of clock buffer is large compared to normal buffer , it consumes
more power and more area.
a) DRC : DRC is design rule violations. In DRC it checks the design is meting DRC
rules given by foundry or not.
LVS : LVS means Layout versus schematic . It is a method of verifying that the layout of
the design is functionally equivalent to the schematic of the design.
103. Opens and shorts they are LVS issues or DRC issues?
104. DRC is passing and LVS is failing , does this scenario exists?
a) Yes
105. LVS is passing and DRC is failing ,does this scenario exists?
a) Yes.
a) It is undesired change in the output values of victim due to switching in the input of
aggressor. If one net is switching and other is at a constant value , the switching net may
cause voltage spikes on other net. This is called as cross talk noise. Cross talk noise is
evolving as a key source in degrading performance and reliability of high speed integrated
circuits.
a) When there is some delay in output transition of victim due to input transition of
aggressor, it is called as cross talk delay. It occurs when some transition is happening in
both the nets. Cross talk delay depends on the switching direction of the aggressor and
victim nets too. If input transitions occur in same direction then output transition of victim
becomes faster and if input transitions occur in opposite directions then output transition of
victim becomes slower and delay is more which may violate setup time.
108. What are all the delay for given path consisting of two flops?
a) The delays in the data path are launch latency , Tcq ( propagation delay of
the flip flop), combinational delay
The delays in the clock path are capture latency, Tsetup ( library setup time of a flop) ,
Thold (library hold time of flop) , uncertainty and CRPR.
End points are : D-pin of the flip flop and Output port.
111. There is a two version of tools(v1 ,v2) while loading same data in v1 tool it
won’t see any congestion while load in v2 i m seeing congestion what may be the
reason?
a)There are some variations in tool options from one version to another version. Some
options will be enabled in one version by default , but in other it won’t be enabled. So due
this variations we can see the variations in reports.
112. Before routing your timing was good but after routing you find more
violations what may be the reason?
a) 1. Before routing the net delays are estimated values, but after routing those are
accurate. So we can see some violations from previous stage.
2. While doing routing we will enable some options like SI aware ( cross talk ),so to avoid
cross talk issue some nets will be detoured due to this we get some timing violations.
3. During post route optimization some cells will be added in the design , due to this
we may get congestion.
113. If there are setup violations in placement stage, then how will you fix ?
a) If track availability is less then all metal will route through that track then we get
shorts, This may be due to more cell density at that area or pin density.
116. If you use normal buffers means what will happen?
a) For normal buffers the rise and fall times are not equal. When we use this normal buffers in
clock path , min pulse width violations may occurs.
a) LEC is logic equivalence check, LEC compares revised netlist and golden netlist ,
and it checks is both are logically equivalent or not that means functionality should be
equal.
• read golden netlist and read revised netlist and then read the libraries
• specifying design constraints
• mapping
resolving unmapped key points
• Compare process
Debugging non-equivalent key points
• Report run statistics
a) When a long metal is connected to the gate terminal charge accumulation takes
place on the surface of the metal during the etching of plasma. This charge tries to
discharge at gate and damages the gate oxide.
1. Metal jogging :
This is preferred when the antenna effect occurs in lower metals. We split the metal
near the gate and add a higher level metal parallel to that. Only higher level metal
are preferred because during fabrication lower metals are fabricated first. If charge
accumulation takes place ,it can be removed by process known as rinsing.
2. Antenna diode:
This is preferred when the A.E occurs in higher metals. We connect it near the gate
terminal in a reverse biased mode. As the charge flows breakdown occurs and no
harm happens.
3. Break the net and add buffer on long nets.
a) Decap cells are temporary capacitors added in the design between power and ground
rails to counter functional failures due to dynamic IR drop happens at the active edge of the
clock at which a high percentage of sequential and digital elements switch. At active edge
of clock when the current requirement is high, these decaps discharge and provide boost
to the power grid.
One drawback of decap cells is that they are very leaky, so the more decap cells the more
leakage.
121. What is Ocv, derates, uncertainty, jitter and what makes it to occur?
a) OCV ( On chip variations ) occurs due variations in PVT ( process, voltage and
temparature). Ocv is considered for single PVT.
a) Pre CTS :
margin
123. Suppose you have 2 clock transition value 40ps and 50ps ,and with both
your timing is met then what value you will choose?
a) we choose 40ps . if transition is less power dissipation also less. And speed increases.
124. What is ndm and how u will generate the NDM, what inputs you need to generate
NDM?
a) If there are less no.of metals than specified in particular region then it results in min
density violations. If there are min density violations it results in dishing effects it
causes opens.
ii . removing buffers
a) path grouping can be applied for in2reg paths, reg2reg paths and reg2out paths.
The tool will optimize these paths based on the weightage value given to it.
Command:
• group_path -name anyname(path1) -from start point list –to end point
list – weight integer value(1,2 ,3 etc)
• refine_opt -path_group path1
refine opt will do incremental optimization. In path grouping command we
have different sub options. By using this path grouping technique we can
optimize specific paths or nets.
a) The frequency of test clock and functional clock is different. The functional clock
has more frequency than the test clock. Because test clock is used in test mode to
check the manufacturing defects of the flops and combinational elements( i.e flops
and combinational elements are working properly or not), to test this not much
frequency is required . the functional clock is used in functional mode to check the
timing of the design.
a) NO I didn’t worked on multi clock entering points. But I have idea if multiple clock
entry points are there in design. We have two scenarios: multi clocks means clocks
with different frequency . this clocks can have generated logic outside the block (i.e
in top level design) or inside our block.
i) If clock is generated inside the block ,then the tool will automatically balance the
insertion delay and skew for those clocks by considering information mentioned in
the spec file (like through pin).
But if the divided logic is in outside the block ( i.e if it present in top level ) then we
need to apply clock grouping technique to balance the skew between those to clocks.
Multi clocks with different source then those clocks called as asynchronous
clocks. For asynchronous clocks no need to calculate timing.
130.we are getting clock net shorts, what may be possible reason?
a) may be at that area we have more no.of sequential elements. We are getting
shorts means the available tracks are less than the required tracks this may be
due to having more cell density at that particular area and main thing is most of
the cells are flip flops. Congestion is not cleared at that area in placement stage.
A) In post CTS , various optimizations will be done that includes: meeting DRV’s ,
setup and hold, Area and Power optimization, congestion reduction.
132. How channel spacing between macros is kept based on what factors?
A) channel spacing between macro’s = no.of pins x pitch / ((total no.of metal
layers available)/2)
i. cell density : if congestion is due to cell density ,then apply partial blockages at
that area to reduce cell density in that region.
ii. Pin density : if congestion is due to pin density ,then apply cell padding techniques.
1. specify a maximum density that controls how densely the tool can
place cells in uncongested areas during wire-length-driven placement.
place.coarse.max_density ( default is 0 and the tool spreads cells uniformly by
default)
choose a value between 1 and the overall utilization of the block. For example, if the
utilization of a block is 40 percent, you can choose values between 1 and 0.4.
3. Enable automatic density control, which derives optimal values for the maximum
density and congestion-driven maximum utilization
a) icc2_lm_shell -f ndm_gen.tcl
A ) max_density: specify a maximum density that controls how densely the tool
can place cells in uncongested areas during wire-length-driven placement.
choose a value between 1 and the overall utilization of the block. For example, if the
utilization of a block is 40 percent, you can choose values between 1 and 0.4.
136. How do you check setup and hold for half cycle path?
A)
to 2.5ns
137. How do you fix setup and hold on same path i.e single start
point and single end point? Reason?
a) There are two reasons for getting setup and hold on same path:
1. for setup we won’t remove CRPR value because setup check is done at
different edges, the impact of delay variation at one clock edge is different from
delay variation on cell at different clock edge so we consider those
variations(CRPR) for setup check.
Whereas for hold check is done at same edge, so we remove the CRPR value for
hold. Therefore due to this CRPR , we may get setup and hold violation on same
path.
2. if cell delay variations are more in data path from max lib to min lib , then we
can get the setup and hold on same path.
Fixes:
1. we will swap the huge variation cells with less variation cells.
2. Reduce the common path by moving cells closure.
138. Multiple start points and single end point what is the reason for violation?
a) The reason for getting violation is that the data path is not optimized properly.
So in this case ,we trace the path from endpoint and find diverging point and try to fix
the violation before diverging point by using techniques upsizing, swapping( HVT to
LVT) ,adding
buffer if net delay dominates the buffer delay for solving setup. For solving
hold use techniques like downsizing, swapping (LVT to HVT), add buffer at D-
pin of the flipflop.
a) The clocks originate from two different sources are called as asynchronous clocks.
Physically exclusive clocks means, the clocks originate from same source but have
only one entry point in the design.
140. Why do you apply MMMC from CTS when you already apply derates ?
a) derates are considered for intra chip variations i.e PVT variations on a chip
(process
, voltage and temperature) , whereas MMMC (multi mode multi corner) is
consider for environmental variations.
141. 3 flops – Flop 1 to flop 2 (-300ps slack) –flop2 and flop3 (+100ps slack)
? pre CTS how you will fix?
a)
FF1 FF FF3
2
In pre CTS stage , by upsizing or swapping the cells in the data path we can fix this
142. More buffers are added on longer nets and high fanout nets? What is the
reason?
a) If we over constraint the max tran and max cap values, then over
buffering will be happen.
clock path.
144. Pulse width checks? What is input? On which cells we perform pulse
width checks?
a) Minimum pulse width checks are done to ensure that width of the clock signal is wide
enough for the cell’s internal operations to complete. i.e. to get a stable output you need
to ensure that the clock signal at the clock pin of the flop is at least of a certain
‘minimum’ width.
If you need a formal definition of the term, it is the interval between the rising edge
of the signal crossing 50% of VDD and the falling edge of the signal crossing 50%
of VDD. If talking in terms of low signals, it is the interval between falling edge of the
signal crossing 50% of VDD and the rising edge of signal crossing 50% of VDD.
Minimum pulse width depends on the technology node and the standard cell library
design. You will have these modeled in your .lib file. Look for timing_type :
min_pulse_width; in your liberty file. These will be defined for clock, reset and preset
pins of a flop, or the enable pin of a latch.
SDC command:
145. If you don’t mention in SDC? How will tool get to understand info?
a) we will have these modelled in .lib file. So the tool pick the data from this .lib file.
146. For antenna violation what extra take care we take when going from
block level to top level?
a) when we have antenna violation in top level, then first observe port location of
the blocks. We get this violation if any top level port is connected to block level
port and the distance between these two are more, then one long net is
connected between these two, due to this long net antenna violation occurs.
Fixes:
By considering OCV( on chip variations) , the different derates are applied to launch and
capture path of cells, the common path cells can’t drive two different values at the
same time, so to decrease pessimism we take the difference of the delays for common
path cells.
148. What Vt cells you have used in design ? Did you meet timing in preroute
stage?
a) Mainly SVT cells are allowed in the design at placement stage. Yes, meeting was
met in preroute stage.
149. In CTS we have 50 cormers? Which corners you will pick for CTS?
How will your run time be taken care?
a) In my project , at CTS stage I read rc worst corner for setup and rc best corner
for hold. If we read more corners run time also more.
150. If your setup slack is worse in placement ? What could be the reason
and what steps you will takecare?
1. The starting points and endpoints of flops are placed far apart , then due to long
routing the path get violated. This happens because of scan chain reordering is not
done in optimization stage.
Take care:
151. Once you setup and hold is fixed, Do you have to fix DRV – Tran
violation? Will you fix or leave?
a) Yes , surely we have to fix DRV’s. The delays taken for setup and hold are not
accurate, the DRV’s mask some hold violations. The setup and hold issues are
met with inaccurate delays, so we get unexpected outputs. The chip behaviour is
not as expected one.
a) Setup fixing is more diffult, because setup is depends purely on design. For
fixing setup violation ,we have to analyse the whole path why the violation occurs,
what are the reasons for the violation. The analysis is difficult, it takes more time to
analyse everything. The hold violation occurs due to skew and insertion(source)
delay violations. The hold violation can be fixed by adding buffer at D-pin of the
flipflop.
a) Physically Exclusive clocks: The two clocks originate from same source and have
only one entry point in the design. By using set case analysis we can select which
clock to propagate
in the design. At a time only one clock can exist in the design. These clocks won’t
affected by cross talk.
Logically Exclusive clocks: The two clocks originate from same source and
have two different entry points in the design. By using MUX we can select
the which clock to propagate in the design. These are affected by cross talk
.
A) scan chain reordering is not happen in CTS stage. But it is not an hard
constraint. Based on violation , if necessary we can do scan chain reordering
in CTS stage also.
156. After your CTS is complete, you have more hold violations? What could
be the reason?
a) After CTS we are getting violations means, the clock tree is not built properly. The
skew is not balanced properly between flops. This will happen if skew target, insertion
delay targets and DRV targets are not correct . if we miss any clock exceptions like float
pin, through pin.
*159. When your design is full of 32x driver cells? What issues we get?
a) as drive strength increases, the size of the cell increases due to this ,It
occupies more area and it consumes more power.
160. If you have setup 2k violation paths, hold 2k violation paths, What you
will fix first and why?
a) If we use AND gate , glitches will be formed when enable signal toggles at
positive level of the clock signal. So, to avoid glitches in the clock signal we will
use ICG cell instead of AND gate.
162. From Post CTS to PRO is there any timing degradation? If so why? If not
why?
a) yes, timing is degrade from Post CTS to PRO(post route optimization) because
actual signal routing is done in routing state. Before Routing stage virtual route is
done, so timing is calculated by taking approximate delay for nets, but at PRO stage
timing is calculated with actual net delays.
A) After CTS if we have timing violation means, the clock tree is not built properly.
So first analyse the clock path i.e which drive strength cells are used and check all
constraints are defined properly or not, if some constraints like clock exceptions
(eg. Floating pin and through pin, ignore pin, exclude pin) , clock grouping (if our
design has two or more main clocks) are missed then skew and insertion delay
won’t balanced properly, we get timing violations.
Take cares:
1. Mention all constraints properly i.e NDRs( 2w2s), specify clock buffers and
clock
inverters list, clock exceptions, clock grouping, routing layer list,
skew and insertion delay targets.
2. Allow some high drive strength clock buffers and clock inverters.
3. Use macro modelling technique
4. Enable CCD (concurrent clock and data optimization)option before building the
clock tree.
5. Over constraints the skew and insertion delay targets and again run post CTS
.
A) For a flop the delay will be modelled in library for synchronous pins and
asynchronous pins of a flop , the delay will be modelled like , clock pin to D-pin ,
clock pin to SI, clock pin to SE, clock to Q-pin ,clock pin to Clear or reset and clock
pin to preset pin of a flop.
For synchronous pins like D, SI and SE timing is modelled for setup arc (rise
and fall) and hold arc (rise and fall). Setup and hold checks are done on
synchronous pins.
For asynchronous pins like Clear and preset , timing is modelled for recovery and
Scenario 1: If aggressor and victim net are switching in the same direction, then
the delay of the victim net is reduced due to high switching activity of the
aggressor net, it pulls the victim net so delay will be decreases. If this happens in
data path it effects the hold violation. If this happen in clock path (in required
path) then setup gets violated.
Aggressor: high switching activity net
Scenario 2: If aggressor and victim net is switching in the opposite direction ,then
the delay of the victim net is increases due to high switching activity of the
aggressor net ,it push the victim net so delay will be increases. If this happens in
data path it effects setup violation. If this happen in clock path (in required path)
hold gets violated.
Aggressor:
Victim :
You can specify fixed macro cells, a pin of a fixed macro cell, or an I/O pin as
thFor the best results, perform magnet placement before the standard cells are
placed.
To instruct the magnet_placement cmd whether or not to pull cells toward the
magnet objects, you can set the magnet_placement_fanout_limit variable to specify
the fanout limit. If the fanout of a net exceeds the specified limit, the cmd does not
pull cells of the net toward the magnet objects. The default setting is 1000.
Magnet placement allows cells to be overlapped by default. To prevent overlapping
of cells, you can set the magnet_placement_disable_overlap variable to true,
changing it from its default of false.