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
    • Combinational Timing Overview
      • Propagation Delay and Levels of Logic
      • Zero-Delay Simulation vs Inertial Delay
      • Critical-Path Mindset in RTL
    • Muxes, Decoders and Encoders
    • Arithmetic Blocks
    • Comparators and Shifters
    • Tri-State and Shared Buses
    • Latch Inference
    • Arithmetic Datapaths
  • Sequential Design27
  • FSM & Control27
  • Timing & Clocking39
  • Reset & CDC34
  • Memory & Buses57
  • Advanced RTL28
  • Senior & Interview76
  • Glossary and Notation
Loading lesson

‹Combinational Timing Overview
  1. Topics
  2. RTL Design
  3. Combinational Design
  4. Combinational Timing Overview
  5. Propagation Delay and Levels of Logic

Part 2 · Combinational · Intermediate

Propagation Delay and Levels of Logic

Turn one clock period into a budget for logic, then count logic levels.

On this page

    Why this matters

    At 500 MHz the clock period is 2.0 ns, and clock-to-Q, setup and uncertainty take 0.40 ns of it before any logic runs. A block that ignores that budget fails timing after synthesis, when it is expensive to change.

    After this lesson you can: turn a clock period into a logic-level budget by subtracting clock-to-Q, setup and uncertainty, and count the levels of a piece of RTL.

    The budget

    Between two clock edges a signal must leave the launching flop, pass through the logic, and be stable at the capturing flop before the next edge. The capturing flop needs its setup margin too.

    In one inequality:

    tclk→q​+tlogic​+tsetup​+tuncertainty​≤Tclk​

    Term

    Meaning

    Who controls it

    t_clk→q

    Delay from clock edge to the launching flop's output

    The cell library

    t_logic

    Sum of gate and wire delays in the logic

    Your RTL

    t_setup

    How early data must arrive before the capture edge

    The cell library

    t_uncertainty

    Clock skew, jitter and margin

    Clock design and constraints

    A worked budget

    A design at 500 MHz has T = 2.0 ns. Suppose t_clk→q = 0.15 ns, t_setup = 0.10 ns and t_uncertainty = 0.15 ns. That leaves

    tlogic​≤2.0−0.15−0.10−0.15=1.6 ns

    If a typical gate plus its wire costs about 80 ps in this technology, the logic can be roughly 20 levels deep.

    One 500 MHz clock period as a budget: the RTL controls only the 1.6 ns of logic, which is about 20 levels at 80 ps each

    Read the bar from left to right: it is one clock period, from the launch edge to the capture edge.

    • Only the wide blue block is yours. The library fixes clk-to-Q and setup, and the clock design fixes uncertainty.

    • The thin pieces still cost 0.40 ns. That is 20 percent of the period before any logic runs.

    • The row of 20 ticks is the 1.6 ns divided by an 80 ps gate and wire. Each tick is one level of logic.

    The numbers change from process to process, but the habit does not: convert the clock period into a logic-level budget before you design the block.

    Gate delays depend on the cell, the load it drives (fan-out) and the wire. The 80 ps figure above is illustrative. Always use the delays from your own library and timing report for real decisions.

    Counting levels in RTL

    Structure

    Approximate depth

    Comment

    2:1 mux

    1–2

    One select-controlled gate pair.

    N:1 mux

    ⌈log₂ N⌉ stages

    A tree of 2:1 muxes.

    AND/OR of N inputs

    ⌈log₂ N⌉

    A balanced tree, if the tool restructures it.

    Ripple-carry adder, N bits

    ≈ N

    Carry passes through every bit.

    Tool-built fast adder, N bits

    ≈ log₂ N

    Carry-lookahead or prefix structure.

    N-input priority chain (if/else)

    ≈ N if built literally

    Each condition waits for the one before it.

    Tip

    Write the structure you intend, then read the timing report to see what the tool actually built. Counting levels on paper is for deciding where to look, not for replacing the report.

    Common mistakes

    • Counting levels without load. A gate driving a large fan-out or a long wire is slower than the typical figure. Ten levels can cost more than twenty light ones.

    • Leaving out uncertainty. A budget of clock-to-Q plus setup only, with no skew and jitter margin, looks fine on paper and fails in the timing report.

    Interview

    Likely question: “How do you know if a block fits in the clock period?”

    • Subtract the fixed costs (clock-to-Q, setup, uncertainty) from the period.

    • Convert the remainder into a logic-level budget for the technology.

    • Confirm with the timing report, never with gate counts alone.

    Check yourself At 800 MHz with t_clk→q = 0.12 ns, t_setup = 0.08 ns and uncertainty 0.10 ns, how much time is left for logic?

    T = 1/800 MHz = 1.25 ns. Logic budget = 1.25 − 0.12 − 0.08 − 0.10 = 0.95 ns.

    Check yourself Why does adding pipeline registers reduce t_logic per stage but leave the total latency in time roughly the same?

    Each stage holds less logic, so the clock period can shrink. Without stalls the elapsed latency is stages times the operating period. Balance and register overhead matter, so it often grows slightly. The later pipelining example rises from 6.3 ns to 6.6 ns from one to two stages. Throughput stays one result per cycle, but the cycle is shorter, so results per second rise (159 to 303 million per second in the later example) while latency in cycles grows.

    Remember

    • Logic time = period - clk-to-Q - setup - uncertainty. Only the logic part is yours.

    • The gate delay in the worked budget (80 ps) is an example; use your own library and timing report.

    • Fan-out and wires slow a level down, so ten heavy levels can cost more than twenty light ones.

    Rule of thumb: convert the clock period into a level budget before you write the block.

    Keep going

    • Interview: run a mock interview on this topic

    Related topics

    • Critical-path mindset

    • Setup, hold and slack

    Previous

    37 / 350

    Next: Zero-Delay Simulation vs Inertial Delay

    Up next

    Up nextZero-Delay Simulation vs Inertial Delay

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Critical-Path Mindset in RTL