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

  • How to Use This Course
  • Reading Path
  • STA Glossary
  • STA Metrics Reference
  • STA Mastery Cheatsheet
  • Timing Paths and Checks16
    • What STA Checks
    • Setup and Hold Checks
    • Clocks in Timing Analysis
    • Delay Models
      • Cell Delay Tables and Slew
      • Net Delay and Parasitics
      • Loads and Driving Cells
      • How Delay Calculation Flows
  • Constraints & SDC Fundamentals20
  • Delay Graph & Path Analysis16
  • Beyond Setup and Hold16
  • Multi-Corner Multi-Mode Signoff16
  • OCV, AOCV, POCV and Variation16
  • Crosstalk and Noise16
  • ECO and Closure16
  • STA Debug Playbook16
  • STA Interview Prep26
  • Capstone Timing Signoff Lab4
Loading lesson

‹Delay Models
  1. Topics
  2. Static Timing Analysis
  3. Timing Paths and Checks
  4. Delay Models
  5. Loads and Driving Cells

Part 1 · Timing Paths and Checks · All levels

Loads and Driving Cells

A driver's delay depends on its load; ports need load and driving-cell models so boundary timing is realistic.

On this page

    Why it matters

    Inside a block the load on each net comes from the netlist: the pin capacitances of the sinks plus the wire. At the block boundary the tool does not know what is outside, so you must tell it: how strongly the signal that enters the block is driven, and how much load an output port must drive. Wrong boundary models give wrong delay and slew on the first and last cells of every path.

    Computing a load

    example.py
    1
    2
    3
    4
    5
    pin_caps_fF = [2.0, 2.0, 2.5]    # three sink pins
    wire_fF = 5.0
    load = sum(pin_caps_fF) + wire_fF
    assert abs(load - 11.5) < 1e-9
    print("PASS: load on the net =", load, "fF")

    The driver sees 11.5 fF: 6.5 fF of pins plus 5 fF of wire. A cell with the table from the previous lessons would be interpolated at that load. Adding one more fanout raises both the pin sum and typically the wire, so the delay climbs. This is why high-fanout nets are buffered.

    Boundary conditions

    Diagram
    # not-run: SDC is not executable here
    set_driving_cell -lib_cell BUF_X2 [get_ports data_in]   ;# models the cell driving this input
    set_load 0.050 [get_ports data_out]                      ;# capacitive load on an output, in library capacitance units
    set_input_transition 0.15 [get_ports mode]               ;# alternative: fix the input slew directly, in library time units

    Constraint

    What it means

    What it does NOT mean

    set_driving_cell

    Input is driven by a given cell, so its slew depends on load

    Does not set the signal arrival time, which still comes from set_input_delay; it models the driver's drive strength (the load-dependent delay and the slew at the port)

    set_load

    Adds capacitance to an output port or net

    Does not model the delay of the outside logic

    set_input_transition

    Fixes the slew at an input regardless of load

    Does not model how slew would change with the load

    What the review looks for

    • Every input port has a driving cell or transition and every output port a load; missing values default to ideal (zero) models, which are optimistic.

    • Boundary values are consistent with how the block will actually be used at the next level up.

    • Fanout-heavy nets are checked against the library's maximum fanout, capacitance and transition limits.

    Common pitfall

    Treating an unconstrained port as a stronger driver than it is. With no driving cell, an input is ideal (zero transition), so the first cell on every input path looks faster than it will be in the system. Always model the real driver.

    Interview

    Distinguish set_driving_cell (shapes slew) from set_input_delay (sets arrival time). Candidates often confuse the two.

    Check yourself An input port has no driving-cell constraint. What does the first cell's delay in the report assume?

    An ideal driver with zero transition at the port, so the first gate's delay is smaller than in real use. The port's slew should be modelled with a driving cell or an input transition.

    Related topics

    • Net Delay and Parasitics

    • Next: How Delay Calculation Flows

    Previous

    20 / 183

    Next: How Delay Calculation Flows

    Up next

    Up nextHow Delay Calculation Flows

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Cell Delay Tables and Slew