Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • RTL Foundations36
  • Combinational Design25
  • Sequential Design27
  • FSM & Control27
  • Timing & Clocking39
  • Reset & CDC34
  • Memory & Buses57
  • Advanced RTL28
  • Senior & Interview76
    • Low-Power RTL Hub
    • DFT and Scan Hub
    • Physical Awareness Hub
    • Waveform Debug Hub
    • STA and ECO Hub
      • The timing-closure loop in practice
      • ECO levers: sizing and buffering
      • When an RTL change is the right call
      • Senior closure checklist
    • RTL-to-Implementation Closure
    • DFT-Ready RTL
    • Capstone: Resilient Streaming Peripheral
    • Principal Design Review
    • Senior RTL Interview Questions & Model Answers
  • Glossary and Notation
Loading lesson

‹STA and ECO Hub
  1. Topics
  2. RTL Design
  3. Senior & Interview
  4. STA and ECO Hub
  5. The timing-closure loop in practice

Part 9 · Senior · Senior

The timing-closure loop in practice

Read a violation report, classify the path, apply the smallest ECO, and re-verify.

On this page

    Why this matters

    Upsizing cells at random does not close timing, and a fix can open a new violation elsewhere. Closure is a loop: analyse, classify, apply the smallest ECO, re-run STA, and check for damage.

    After this lesson you can: read a violation report, classify the path as cell-delay, net-delay or logic-depth dominated, and pick the smallest fix for that class.

    The closure loop

    Closure is iterative. Analyze violations, classify root causes, apply a minimal-risk ECO, re-run STA, and confirm no new damage.

    • Setup violations call for less logic or wire delay, or for added latency.

    • Hold violations call for more minimum delay, from buffers or routing detours.

    • Always inspect path topology, not just worst slack numbers.

    Reading a violation report

    A report names the launch and capture flops, the slack, and the cells and nets along the path. The excerpt below is illustrative; tool text differs.

    Diagram
    Illustrative setup excerpt (simplified):
    Path: u_alu/prod[7] -> u_out/y[7]
      slack -0.42 ns (required 2.00 ns, arrival 2.42 ns)
      launch u_alu/clk rise, capture u_out/clk rise, next cycle
      cells 14 (8 arithmetic, 4 mux, 2 buffer), nets 15
      launch tcq 0.20 ns, remaining cell delay 1.62 ns, total net delay 0.60 ns
      worst arc: multiply stage 0.31 ns, then net n_884 0.28 ns

    Slack is required minus arrival at the capture edge. Negative setup slack means the data arrives too late.

    The excerpt's path as one bar: clock-to-Q 0.20 ns, cells 1.62 ns and nets 0.60 ns arrive at 2.42 ns, 0.42 ns after the 2.00 ns required time.

    Read the bar left to right from the launch edge. Each segment is one kind of delay, drawn to scale.

    • The arithmetic: 0.20 + 1.62 + 0.60 = 2.42 ns, and 2.00 - 2.42 = -0.42 ns.

    • The split: 1.82 ns of cell delay against 0.60 ns of net delay, so cells dominate this path.

    • The target: any fix must remove at least 0.42 ns from the bar, in every required view.

    Classify the path first

    The illustrative excerpt is cell-delay dominated because clock-to-Q plus remaining cell delays total 1.82 ns versus 0.60 ns of net delay. Fourteen cells alone would not establish that classification. Inspect aggregate delays, slew, loads and individual arcs before choosing sizing, restructuring or routing changes.

    Classification narrows the candidates. Placed repeaters can reduce distributed RC delay and improve slew on a long net; driver sizing or branch cloning may help high loads. A logic-depth path may need restructuring or an actual arithmetic split if local ECOs cannot meet the budget. Select from parasitics, load/slew and shared-branch reports, then compare setup and hold.

    Common mistakes

    Common pitfall

    An unnecessary buffer adds cell delay and load; a correctly placed repeater can improve a route-dominated RC net. Its effect depends on parasitics, placement and shared branches. Recheck maximum and minimum delay, upstream load and neighboring endpoints rather than prescribing buffering from slack alone.

    Interview

    “Talk through a recent closure loop.”

    • Names the path class before naming any fix.

    • Explains why the chosen ECO was the smallest option.

    • States what re-verification proved no collateral damage.

    Check yourself The report shows negative setup slack and fourteen arithmetic/mux cells, but no delay split. Can you classify it yet?

    No. Obtain cell and net delay totals, slew and loads. A long route could dominate despite the cell count. Upsizing cells at random is not a plan.

    Check yourself An ECO clears the worst violation, but total negative slack moves to nearby paths. Is the design closed?

    No. Re-run full STA and confirm no new damage. The loop ends at zero violations, not at one fix.

    Testbench

    The violating cone plus the regression that must stay green through every ECO.

    close_cone.sv
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    `timescale 1ns/1ps
    module close_cone (
      input  logic [3:0] a, b, c,
      input  logic       sel,
      output logic [7:0] y
    );
      logic [7:0] prod;
      always_comb begin
        prod = a * b + c;                 // multiply-add cone: the reported critical path
        y = sel ? prod : prod ^ 8'h0F;
      end
    endmodule
    

    Remember

    • Setup violations need less logic or wire delay, or added latency; hold violations need more minimum delay.

    • Slack is required minus arrival at the capture edge; negative setup slack means data arrives too late.

    • Classify with aggregate delays, slew and loads, not with the cell count.

    How this was checked

    The report excerpt is illustrative; tool text differs.

    Keep going

    • Interview: run a mock interview on this topic

    Related topics

    • ECO levers: sizing and buffering

    • When an RTL change is the right call

    Previous

    291 / 350

    Next: ECO levers: sizing and buffering

    Up next

    Up nextECO levers: sizing and buffering

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • When an RTL change is the right call
    • Senior closure checklist