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 Foundations57
  • Combinational Design58
  • Sequential Design61
  • FSM & Control66
  • Timing & Clocking64
    • STA Foundations
    • Setup, Hold and Slack
    • Skew and Variation
    • Timing Exceptions
    • Clock Gating
    • RTL for Timing
    • Clock Architecture
  • Reset & CDC58
  • Memory & Buses94
  • Advanced RTL60
  • Senior & Interview117
Loading lesson

‹RTL Design
  1. Topics
  2. RTL Design
  3. Timing & Clocking

Part 5 · Timing & Clocking · Intermediate

Timing & Clocking

Setup, hold and slack, skew, exceptions, clock gating, clock architecture, and RTL habits for timing closure.

  • 7topics
  • 64lessons

Timing closure depends on delays between flip-flops. This section covers STA foundations, setup and hold slack, skew, exceptions, clock gating, and RTL habits for closure.

Learning path through the timing topics.
Suggested order. The first three build the timing model; exceptions, gating, RTL habits and clock architecture apply it.

Topic

Lessons

After it you can…

Study time

STA foundations

5

Explain what STA checks, read a flow, write a starter SDC.

2 h

Setup, hold and slack

6

Compute slack and choose the right fix for each violation.

3 h

Skew and variation

5

Read a path report with clock latencies, uncertainty and derates.

2–3 h

Timing exceptions

4

Justify multicycle, false-path and case-analysis constraints.

2 h

Clock gating

5

Gate clocks safely with a latch-based ICG.

2–3 h

RTL for timing

7

Apply depth budgets, fanout control and shallow structures.

2 h

Clock architecture

7

Plan domains, switch clocks safely, write concrete SDC, and sequence DVFS.

3–4 h

Study time covers reading each lesson and running its examples. The section's hands-on project takes extra hours on top.

Tip

When a number in a lesson surprises you, change one parameter in the simulation and see whether the slack equation still predicts the result. That habit is worth more than any single formula.

Check yourself Before starting: a path has 1.8 ns of delay and the clock period is 2.0 ns. Is it safe?

Not necessarily. You also need the flip-flops' clock-to-Q and setup times, skew, and uncertainty. A 2.0 ns period with 0.47 ns of clock-to-Q plus setup leaves only 1.53 ns for logic, so 1.8 ns fails. The setup/hold lessons show the full equation.

Interview

Typical screening tasks from this section: compute setup and hold slack from given delays, explain what changes with positive skew, justify a multicycle path, and describe why an AND gate cannot be used for clock gating.

End-of-section checkpoint

Use these four questions to decide whether you are ready to move on: explain, predict, implement and debug. If one is shaky, each answer names the lesson to revisit. New readers can skip this until they finish the section.

Check yourself Explain: setup slack is required time minus arrival time. Why does the hold check not depend on the clock period?

Setup compares data launched at one edge against the next capture edge, so the period is in the equation. Hold compares data launched at an edge against the capture at that same edge: the new data must not arrive before the capturing flop's hold window closes. Both sides refer to the same edge, so the period cancels, and slowing the clock never fixes a hold violation. Revisit Core equations and slack meaning.

Check yourself Predict: period 2.0 ns, clock-to-Q 0.15 ns, logic 1.6 ns, setup 0.1 ns, no skew or uncertainty. What is the setup slack?

Arrival = 0.15 + 1.6 = 1.75 ns. Required = 2.0 − 0.1 = 1.9 ns. Slack = 1.9 − 1.75 = +0.15 ns: the path meets setup with 150 ps to spare. Revisit Worked numeric examples.

Check yourself Implement: a result is only captured every second cycle, under an enable. How do you constrain it, and what is the trap?

set_multicycle_path -setup 2 on those paths, paired with set_multicycle_path -hold 1 on the same paths. Without the hold line the hold check moves with the setup check and becomes far too strict. Only do this when the RTL really guarantees the two-cycle spacing. Revisit Multicycle path setup and hold pairing.

Check yourself Debug: after clock-tree synthesis a short register-to-register path fails hold by 40 ps. Someone proposes lowering the clock frequency. What is the right fix?

Lowering the frequency does nothing for hold. Add delay on the data path (hold buffers or slower cells) or reduce the capture clock's late arrival, and recheck setup on that path afterwards. Revisit Fix strategy: setup vs hold.

How this was checked

Timing-aware simulations give every element a delay and check setup and hold windows, so a violation appears as an unknown (X) at the capture flop. The testbenches compare the simulated violations with the slack equations in both directions.

Logic-depth and cell numbers come from Yosys runs on the code shown, with the caveat that a generic area-oriented flow is not a timing-driven commercial flow. The trends are what matters.

Constraint (SDC) examples and timing reports are not machine-checked here; the numbers in the constructed reports are internally consistent and labelled as illustrations.

Related topics

  • Previous: FSM & Control

  • Next: Reset & CDC

PreviousNext: STA Foundations

Up next

Up nextSTA Foundations

Sign in to save progress

Practice this lessonReport an error

See also

  • RTL Foundations
  • Combinational Design
  • Sequential Design