Interview Question · Concept
Skew, Latency and Insertion Delay
- Likely at Intel
- Likely at Infineon
- Likely at Qualcomm
The Question
The interviewer asks
What is the difference between clock latency, insertion delay and skew, and which kind of skew actually changes a path's slack?
You have two and a half minutes. Speak or type, then press Get Feedback under your answer. No credits needed.
Speech-to-text runs in your browser. Chrome and Edge may send audio to their own speech service.
You can edit your answer before you send it. Feedback uses AI and checks your answer only against our written answer. No credits are used and your answer is not saved.
Reveal the Model Answer
Latency is when the clock edge reaches a flop. It is source latency up to the clock's definition point, plus network latency through the tree. Network latency is also called the insertion delay. Skew is the difference in latency between two flops, capture minus launch. Only local skew enters a slack: skew between flops joined by a timing path. Global skew, the latest minus the earliest sink anywhere, is a tree quality number.
- Earliest and latest
fasees the edge first, at 0.2151 ns;fdsees it last, at 0.5306 ns. Their difference, 0.3155 ns, is the global skew. - A pair that talks
falaunches intofb. Their local skew is 0.2885 − 0.2151 = 0.0734 ns. - The other pair
fclaunches intofd: 0.5306 − 0.4529 = 0.0777 ns.
Read the diagram as text
- root (clkbuf_4): from the clk port
- ba: 1 × clkbuf_1
- bb1 → bb: 2 × clkbuf_1
- l1 → l4: 4 × clkbuf_1
- fa: L = 0.2151 ns
- fb: L = 0.2885 ns
- fc: L = 0.4529 ns
- l5 → fd: L = 0.5306 ns
- root (clkbuf_4) → ba: clock
- root (clkbuf_4) → bb1 → bb: clock
- root (clkbuf_4) → l1 → l4: clock
- ba → fa: CLK
- bb1 → bb → fb: CLK
- l1 → l4 → fc: CLK
- l1 → l4 → l5 → fd: CLK
- fa → fb: data
- fc → l5 → fd: data
Four flops on three branches. Only flops joined by a timing path compare their latencies, so only that local skew enters a slack.
Self-Check
Tick each key point you covered in your answer.
What Interviewers Listen For (Fresher)
A good fresher answer defines latency and skew, and states which way skew is measured. It says positive skew helps setup and hurts hold.
What Interviewers Listen For (Mid-Level)
A good mid-level answer separates local skew from global skew, and checks the tool's sign rule against the latencies. It knows a shared latency cancels on internal paths but not on I/O paths.
Cross-Questions
Where the interviewer goes next. Open a node to practise that follow-up.
WhyWhat IfProve ItBreak ItCompareScale It
- Skew, Latency and Insertion Delay
-
WhyWhy Only Local Skew Enters a SlackL1 Junior
Why does skew between two flops with no path between them not matter for timing?
2:30You have two and a half minutes. Speak or type, then press Get Feedback under your answer. No credits needed.
Speech-to-text runs in your browser. Chrome and Edge may send audio to their own speech service.
You can edit your answer before you send it. Feedback uses AI and checks your answer only against our written answer. No credits are used and your answer is not saved.
Reveal the Model Answer
A setup or hold check compares one launch flop with one capture flop along a path. If no path joins two flops, no check ever compares their clocks, so their latency difference never appears in any slack. It can still matter for power and for clock-domain interfaces, but not for these checks.
Self-Check
Tick each key point you covered in your answer.
-
Prove ItSolve L5.1.1: Separate Local Skew from Clock SpreadSimulator-graded
Show it, don't just say it: this Silicon Lab problem is graded by the simulator.
-
CompareA Strong Clock Tree vs a Weak OneL1 JuniorL2 Mid-Level
Compare a clock tree built from large buffers with one built from small buffers.
2:30You have two and a half minutes. Speak or type, then press Get Feedback under your answer. No credits needed.
Speech-to-text runs in your browser. Chrome and Edge may send audio to their own speech service.
You can edit your answer before you send it. Feedback uses AI and checks your answer only against our written answer. No credits are used and your answer is not saved.
Reveal the Model Answer
Large buffers give sharp edges, low insertion delay and low skew. They cost area and clock power, since the clock switches every cycle. In lesson L5.2 the default tree on the MAC had 0.31 ns insertion delay and 0.008 ns skew at 0.257 mW. A
clkbuf_1tree had about 0.73 ns, 0.045 ns and 0.166 mW. Clocks route on upper, low-resistance metal for the same reason.The MAC's Tree: An H-Tree of Two LevelsArrows are the clock. The numbers come from the run: each leaf drives its flops and, in some quadrants, a dummy load. Illustrative sequence- Split the region
The topology cuts the area of the sinks in two, then each half in two again. Each cut is a level of the H-tree.
- One buffer per quadrant
A leaf buffer sits in each quarter and drives the flops there: 12, 13, 14, 13. The wires from the root to each leaf are about the same length.
- Even out the loads
CTS added 3 dummy loads: clock cells that drive nothing. They make the lightly loaded leaves as slow as the heavy ones.
Read the diagram as text
- clk port: drives the root only
- clkbuf_0_clk: clkbuf_8, centre
- clkbuf_2_3__f_clk: 12 flops + 1 dummy
- clkbuf_2_2__f_clk: 13 flops + 1 dummy
- clkbuf_2_1__f_clk: 14 flops
- clkbuf_2_0__f_clk: 13 flops + 1 dummy
- clk port → clkbuf_0_clk: clk
- clkbuf_0_clk → clkbuf_2_3__f_clk: clock
- clkbuf_0_clk → clkbuf_2_2__f_clk: clock
- clkbuf_0_clk → clkbuf_2_1__f_clk: clock
- clkbuf_0_clk → clkbuf_2_0__f_clk: clock
The default tree on lesson L5.2's MAC: a two-level H-tree. Names are the ones CTS writes.
Self-Check
Tick each key point you covered in your answer.
- Split the region
-
What IfWhat a Slow Clock Edge Does to a FlopL1 JuniorL2 Mid-Level
What if the clock edge reaching a flop is very slow?
2:30You have two and a half minutes. Speak or type, then press Get Feedback under your answer. No credits needed.
Speech-to-text runs in your browser. Chrome and Edge may send audio to their own speech service.
You can edit your answer before you send it. Feedback uses AI and checks your answer only against our written answer. No credits are used and your answer is not saved.
Reveal the Model Answer
The flop gets slower and its timing window moves. In the sky130 library, clock-to-Q of
dfxtp_1grows from about 0.27 to 0.52 ns as the clock slew goes from 0.01 to 1.5 ns. The setup and hold times shift too. That is why clock trees keep edges sharp and why a clock slew limit is part of CTS.Measured sweepdfxtp_1: Clock-to-Q and Q Slew Against the Clock SlewNine flops on nine clocks in one OpenSTA run, each Q falling into a flop's D pin. Whole plot- clock to Q (falling Q)
- Q slew (falling)
- Clock slew 100 psclock to Q (falling Q) = 305.5 ps · Q slew (falling) = 22.6 ps
At a 0.1 ns clock slew: clock-to-Q 0.3055 ns, Q slew 0.0226 ns.
- Clock slew 1.5 nsclock to Q (falling Q) = 510.5 ps · Q slew (falling) = 22.6 ps
At 1.5 ns the clock-to-Q is 0.5105 ns, but the Q slew is still 0.0226 ns.
Read the plot as a table
Clock slew clock to Q (falling Q) Q slew (falling) 100 ps 305.5 ps 22.6 ps 200 ps 336.7 ps 22.6 ps 400 ps 382.4 ps 22.65 ps 600 ps 415.3 ps 22.7 ps 800 ps 442.4 ps 22.68 ps 1 ns 461.9 ps 22.6 ps 1.2 ns 481.3 ps 22.6 ps 1.4 ns 500.8 ps 22.6 ps 1.5 ns 510.5 ps 22.6 ps Measured on
dfxtp_1, falling Q. Clock-to-Q grows as the clock edge slows, while the Q edge itself stays sharp.Self-Check
Tick each key point you covered in your answer.
-
Scale ItUseful Skew: Borrowing Time Between StagesL2 Mid-LevelL3 Senior
Asked if they say all skew is bad
Stage A into register R fails setup by 0.34 ns, and the stage after R has 0.70 ns to spare. A colleague adds the latency below on R's clock. Does it work, and how far can you push it?
sdc create_clock -name clk -period 1.25 [get_ports clk] set_clock_transition 0.1 [all_clocks] set_clock_latency 0.4 [get_pins {r0/CLK r1/CLK}] group_path -name stageA -to [get_pins r1/D] group_path -name intoR -to [get_pins r0/D] group_path -name stageB -to [get_pins b/D]2:30You have two and a half minutes. Speak or type, then press Get Feedback under your answer. No credits needed.
Speech-to-text runs in your browser. Chrome and Edge may send audio to their own speech service.
You can edit your answer before you send it. Feedback uses AI and checks your answer only against our written answer. No credits are used and your answer is not saved.
Reveal the Model Answer
Yes: delaying R's clock by 0.4 ns gives stage A 0.4 ns more and takes 0.4 ns from the stage after R, so both pass. The limit is hold into R, which loses the same 0.4 ns; at 0.6 ns stage A gains more but hold into R fails. Around any loop of registers the skews sum to zero. The delay must later be built from real clock cells, in steps.
Measured sweepThree Checks Against the Middle Register's Clock LatencyA 1.25 ns ideal clock. Stage A ends at R, stage B starts at R, and "hold into R" is the shortest path into R: one and2_1.Whole plot- stage A setup
- stage B setup
- hold into R
- Latency of R 0 sstage A setup = -341.5 ps · stage B setup = 696.4 ps · hold into R = 474.2 ps
No skew: stage A -0.3415 ns, stage B 0.6964 ns, hold into R 0.4742 ns.
- Latency of R 400 psstage A setup = 58.5 ps · stage B setup = 296.4 ps · hold into R = 74.2 ps
0.4 ns: stage A 0.0585 ns, stage B 0.2964 ns, hold 0.0742 ns. Every check passes.
- Latency of R 500 psstage A setup = 158.5 ps · stage B setup = 196.4 ps · hold into R = -25.8 ps
0.5 ns: hold into R is -0.0258 ns. The late edge now catches the next value on the short path.
Read the plot as a table
Latency of R stage A setup stage B setup hold into R 0 s -341.5 ps 696.4 ps 474.2 ps 100 ps -241.5 ps 596.4 ps 374.2 ps 200 ps -141.5 ps 496.4 ps 274.2 ps 300 ps -41.5 ps 396.4 ps 174.2 ps 400 ps 58.5 ps 296.4 ps 74.2 ps 400 ps 58.5 ps 296.4 ps 74.2 ps 500 ps 158.5 ps 196.4 ps -25.8 ps 600 ps 258.5 ps 96.4 ps -125.8 ps The three checks of this question against the latency on R. At 0.4 ns all pass. Past it, hold into R fails first.
Self-Check
Tick each key point you covered in your answer.
What Interviewers Listen For (Mid-Level)
A good mid-level answer shows that a later capture clock gives setup time to the stage before. It takes the same time from the stage after. It then checks hold into the delayed register.
What Interviewers Listen For (Senior)
A good senior answer limits the skew by the shortest path into the register, and rules out loops of registers. It plans how to build the delay, and how to cover variation on the branch that is not shared.
Missed Corner
"More latency on R just makes stage A faster; push it until setup is comfortable."
Hold into R loses whatever stage A gains. At 0.6 ns stage A has 0.26 ns spare but hold into R fails by 0.13 ns; at 0.4 ns every check passes.
Run It
The pipeline from lesson L5.4 with 0.6 ns of latency on R's clock pins.
create_clock -name clk -period 1.25 [get_ports clk] set_clock_transition 0.1 [all_clocks] set_clock_latency 0.6 [get_pins {r0/CLK r1/CLK}] group_path -name stageA -to [get_pins r1/D] group_path -name intoR -to [get_pins r0/D] group_path -name stageB -to [get_pins b/D]Prints:
1.1579 slack (MET)0.2585 slack (MET)0.0964 slack (MET)-0.1258 slack (VIOLATED)See the Fix
create_clock -name clk -period 1.25 [get_ports clk] set_clock_transition 0.1 [all_clocks] set_clock_latency 0.4 [get_pins {r0/CLK r1/CLK}] group_path -name stageA -to [get_pins r1/D] group_path -name intoR -to [get_pins r0/D] group_path -name stageB -to [get_pins b/D]Prints:
0.9579 slack (MET)0.0585 slack (MET)0.2964 slack (MET)0.0742 slack (MET)Misconception
"Useful skew can fix a slow self-loop too."
A register feeding itself sees the same latency at launch and capture, so the skew is zero by construction. Around any register cycle the skews sum to zero.
Source ASIC Point lesson L5.4 (MAC acc -> acc slack unchanged at -0.0959 ns, measured)
-
WhyWhy Skew Around a Loop Sums to ZeroL2 Mid-LevelL3 Senior
Why can useful skew not speed up a loop of registers as a whole?
2:30You have two and a half minutes. Speak or type, then press Get Feedback under your answer. No credits needed.
Speech-to-text runs in your browser. Chrome and Edge may send audio to their own speech service.
You can edit your answer before you send it. Feedback uses AI and checks your answer only against our written answer. No credits are used and your answer is not saved.
Reveal the Model Answer
Each register's latency is added to the stage it captures and subtracted from the stage it launches. Walk around a loop and every latency appears once with each sign, so the total time available to the loop is unchanged. The best you can do is share it evenly, so the period is bounded by the loop's average stage delay.
The MAC's Registers and Its One LoopArrows are data. accfeeds the adder that feedsacc.Illustrative sequence- A path that skew can help
p→ adder →acc: delayingaccgives it time, taken from paths that start atacc. - A common vector latency cancels
accis a vector. This path crosses different bits; giving every bit the same latency moves both ends equally.
Read the diagram as text
- ra, rb: operand registers
- multiplier: stage into p
- p: product register
- adder: acc + p
- acc: accumulator
- ra, rb → multiplier: data
- multiplier → p: data
- p → adder: data
- adder → acc: sum
- acc → adder: acc
The MAC has one loop: acc feeds the adder that feeds acc. Skew on acc helps one side of the loop and hurts the other.
Self-Check
Tick each key point you covered in your answer.
- A path that skew can help
-
CompareUseful Skew vs RetimingL2 Mid-LevelL3 Senior
Compare useful skew with retiming, which moves logic across the register instead.
2:30You have two and a half minutes. Speak or type, then press Get Feedback under your answer. No credits needed.
Speech-to-text runs in your browser. Chrome and Edge may send audio to their own speech service.
You can edit your answer before you send it. Feedback uses AI and checks your answer only against our written answer. No credits are used and your answer is not saved.
Reveal the Model Answer
Useful skew moves the clock edge and leaves the logic alone. So it costs clock cells and hold margin, and it is invisible to the RTL. Retiming moves gates across the register, which changes the state encoding and needs equivalence checking and sometimes reset changes. Skew is the late, physical fix. Retiming or pipelining is the structural fix when a stage is too long for any clock trick.
Self-Check
Tick each key point you covered in your answer.
-
Break ItBuilding Skew from Real Clock CellsL2 Mid-LevelL3 Senior
The SDC latency of 0.4 ns must now be built from clock delay cells. The measured options are below. Which do you pick?
log R latency built with (propagated clock, lesson L5.4, measured) 2 x clkdlybuf4s18_1 latency 0.3935 ns stage A +0.0399 hold into R +0.0875 1 x clkdlybuf4s50_1 latency 0.4927 ns hold into R -0.0129 1 x clkdlybuf4s25_1 latency 0.2688 ns stage A -0.08332:30You have two and a half minutes. Speak or type, then press Get Feedback under your answer. No credits needed.
Speech-to-text runs in your browser. Chrome and Edge may send audio to their own speech service.
You can edit your answer before you send it. Feedback uses AI and checks your answer only against our written answer. No credits are used and your answer is not saved.
Reveal the Model Answer
Two
clkdlybuf4s18_1cells, the only option that passes both checks. Real cells come in steps, so the built latency rarely matches the SDC number. The window between hold into R and setup of stage A decides which steps are usable. The branch to R is also not shared with the other flops, so its variation is not cancelled by reconvergence pessimism removal.Timing pathStage A with R's Clock Through Two Delay BuffersA propagated clock: every flop's latency is its real clock path. R's clock passes dl1anddl2(clkdlybuf4s18_1).Whole patha1 → r1setup check, latest arrival7 cells
- Clock latency
- Cell delay
- Setup time
- Launch
a0is clocked straight from the port, so its launch latency is 0.0000 ns. - Built latency
R's clock arrives 0.3935 ns late, through the two delay buffers.
- Met
Stage A meets setup with the built delay, at a slack of 0.0399 ns.
Read the path as a table
Launch: clk rise edge at 0.0000 ns, clock latency 0.0000 ns. Capture: clk rise edge at 1.2500 ns, latency 0.3935 ns, library setup time −0.1217 ns.
Arrival 1.4819 ns, required 1.5218 ns, slack 0.0399 ns (met).
Cell Arc Through Edge Delay (ns) Time (ns) Slew (ns) 1 a1/CLK→a1/Qdfxtp_1 rise 0.4872 0.4872 0.2741 a1/Q→m1/Bwire qa1 rise 0.0000 0.4872 0.2741 2 m1/B→m1/Xxor2_1 fall 0.1173 0.6045 0.0897 m1/X→m2/Awire s1 fall 0.0000 0.6045 0.0897 3 m2/A→m2/Xxor2_1 fall 0.1781 0.7827 0.0897 m2/X→m3/Awire s2 fall 0.0000 0.7827 0.0897 4 m3/A→m3/Xxor2_1 fall 0.1781 0.9608 0.0897 m3/X→m4/Awire s3 fall 0.0000 0.9608 0.0897 5 m4/A→m4/Xxor2_1 fall 0.1781 1.1389 0.0897 m4/X→m5/Awire s4 fall 0.0000 1.1389 0.0897 6 m5/A→m5/Xxor2_1 fall 0.1781 1.3170 0.0897 m5/X→m6/Awire s5 fall 0.0000 1.3170 0.0897 7 m6/A→m6/Xxor2_1 fall 0.1649 1.4819 0.0723 m6/X→r1/Dwire s6 fall 0.0000 1.4819 0.0723 The report
Startpoint: a1 (rising edge-triggered flip-flop clocked by clk) Endpoint: r1 (rising edge-triggered flip-flop clocked by clk) Path Group: stageA Path Type: max Fanout Cap Slew Delay Time Description ------------------------------------------------------------------------------------- 0.0000 0.0000 clock clk (rise edge) 0.0000 0.0000 clock source latency 4 0.0079 0.1000 0.0000 0.0000 ^ clk (in) clk (net) 0.1000 0.0000 0.0000 ^ a1/CLK (sky130_fd_sc_hd__dfxtp_1) 7 0.0286 0.2741 0.4872 0.4872 ^ a1/Q (sky130_fd_sc_hd__dfxtp_1) qa1 (net) 0.2741 0.0000 0.4872 ^ m1/B (sky130_fd_sc_hd__xor2_1) 1 0.0042 0.0897 0.1173 0.6045 v m1/X (sky130_fd_sc_hd__xor2_1) s1 (net) 0.0897 0.0000 0.6045 v m2/A (sky130_fd_sc_hd__xor2_1) 1 0.0042 0.0897 0.1781 0.7827 v m2/X (sky130_fd_sc_hd__xor2_1) s2 (net) 0.0897 0.0000 0.7827 v m3/A (sky130_fd_sc_hd__xor2_1) 1 0.0042 0.0897 0.1781 0.9608 v m3/X (sky130_fd_sc_hd__xor2_1) s3 (net) 0.0897 0.0000 0.9608 v m4/A (sky130_fd_sc_hd__xor2_1) 1 0.0042 0.0897 0.1781 1.1389 v m4/X (sky130_fd_sc_hd__xor2_1) s4 (net) 0.0897 0.0000 1.1389 v m5/A (sky130_fd_sc_hd__xor2_1) 1 0.0042 0.0897 0.1781 1.3170 v m5/X (sky130_fd_sc_hd__xor2_1) s5 (net) 0.0897 0.0000 1.3170 v m6/A (sky130_fd_sc_hd__xor2_1) 1 0.0017 0.0723 0.1649 1.4819 v m6/X (sky130_fd_sc_hd__xor2_1) s6 (net) 0.0723 0.0000 1.4819 v r1/D (sky130_fd_sc_hd__dfxtp_1) 1.4819 data arrival time 1.2500 1.2500 clock clk (rise edge) 0.0000 1.2500 clock source latency 4 0.0079 0.1000 0.0000 1.2500 ^ clk (in) clk (net) 0.1000 0.0000 1.2500 ^ dl1/A (sky130_fd_sc_hd__clkdlybuf4s18_1) 1 0.0023 0.0352 0.2029 1.4529 ^ dl1/X (sky130_fd_sc_hd__clkdlybuf4s18_1) rc1 (net) 0.0352 0.0000 1.4529 ^ dl2/A (sky130_fd_sc_hd__clkdlybuf4s18_1) 2 0.0038 0.0482 0.1906 1.6435 ^ dl2/X (sky130_fd_sc_hd__clkdlybuf4s18_1) rc2 (net) 0.0482 0.0000 1.6435 ^ r1/CLK (sky130_fd_sc_hd__dfxtp_1) 0.0000 1.6435 clock reconvergence pessimism -0.1217 1.5218 library setup time 1.5218 data required time ------------------------------------------------------------------------------------- 1.5218 data required time -1.4819 data arrival time ------------------------------------------------------------------------------------- 0.0399 slack (MET)Stage A with R's clock through two real delay buffers: setup passes with 0.0399 ns to spare.
Self-Check
Tick each key point you covered in your answer.
-
Prove ItSolve L5.4.1: Schedule Three Capture ClocksSimulator-graded
Show it, don't just say it: this Silicon Lab problem is graded by the simulator.
-
WhyWhy CPPR Does Not Cover the Delay BranchL2 Mid-LevelL3 Senior
Why is the variation on the branch to R not cancelled by reconvergence pessimism removal?
2:30You have two and a half minutes. Speak or type, then press Get Feedback under your answer. No credits needed.
Speech-to-text runs in your browser. Chrome and Edge may send audio to their own speech service.
You can edit your answer before you send it. Feedback uses AI and checks your answer only against our written answer. No credits are used and your answer is not saved.
Reveal the Model Answer
CPPR credits only the clock segment that launch and capture share, because one wire cannot be early and late at once. The delay cells sit on the branch to R alone. So the tool still derates them late for one side and early for the other. That variation shrinks the usable window.
Self-Check
Tick each key point you covered in your answer.
Misconception
"CPPR removes all clock variation from the report."
It removes only the shared part. Every cell after the branch point still carries its full derate.
Source Lesson L2.9 key points
What People Get Wrong
Common wrong answers and why they fail.
Half-Truth
"CTS should drive global skew to zero."
Only the skew between connected flops matters to slack. In lesson L5.1 the global skew was 0.3155 ns while the local skews on real paths were about 0.075 ns, and every check passed.
Source ASIC Point lesson L5.1 (measured)
Tool as Truth
Quotes a skew number from report_clock_skew without its sign.
OpenSTA prints launch minus capture, the opposite of the capture-minus-launch convention most equations use. Check the sign against the two latencies before reasoning about setup or hold.
Source ASIC Point lesson L5.1 (OpenSTA 3.1.0, measured -0.0776 for fc to fd)