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. Cell Delay Tables and Slew

Part 1 · Timing Paths and Checks · All levels

Cell Delay Tables and Slew

Libraries store cell delay and output slew as tables indexed by input slew and output load; tools interpolate between the entries.

On this page

    Why it matters

    A cell does not have one delay. Its delay depends on how fast its input switches (the input slew or transition) and how much capacitance it drives. Libraries capture this with two-dimensional tables, usually called non-linear delay models. If you can interpolate one by hand you can check a number in a report and understand why upsizing a cell or reducing a load helps.

    The table and the interpolation

    Delay (ns)

    Load 0.010 pF

    Load 0.030 pF

    Input slew 0.10 ns

    0.10

    0.14

    Input slew 0.30 ns

    0.16

    0.22

    A query between the grid points is answered by linear interpolation along each axis (bilinear interpolation). For slew 0.20 ns and load 0.020 pF, both fractions are one half, so the result is the average of the four corner values.

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    slews = [0.10, 0.30]; loads = [0.010, 0.030]
    tbl = [[0.10, 0.14],
           [0.16, 0.22]]   # tbl[slew_index][load_index], ns
    def delay(slew, load):
        fs = (slew - slews[0]) / (slews[1] - slews[0])
        fl = (load - loads[0]) / (loads[1] - loads[0])
        top = tbl[0][0] + fl * (tbl[0][1] - tbl[0][0])
        bot = tbl[1][0] + fl * (tbl[1][1] - tbl[1][0])
        return top + fs * (bot - top)
    assert abs(delay(0.20, 0.020) - 0.155) < 1e-9
    assert abs(delay(0.10, 0.020) - 0.12) < 1e-9
    # a slower input slew costs delay at the same load
    assert delay(0.30, 0.020) > delay(0.10, 0.020)
    print("PASS: delay(0.20,0.020) =", round(delay(0.20, 0.020), 3), "ns")

    The first query gives 0.155 ns, the mean of 0.10, 0.14, 0.16 and 0.22. The second (slew at the first grid line, load halfway) gives 0.12 ns. Two effects show up in any table: delay grows with load and also grows with input slew. A parallel table gives the output slew, which becomes the next cell's input slew, so slew degradation compounds along a path.

    What the review looks for

    • Extrapolation outside the table range is flagged: results beyond the characterised slew or load are unreliable.

    • Very large slews on a net are fixed (buffering, sizing) rather than tolerated; they inflate delay and noise sensitivity.

    • The library corner matches the analysis corner (the delay-maximising library for setup, the delay-minimising library for hold).

    Common pitfall

    Judging a cell by its nominal delay and ignoring slew. A cell that looks fast in the library can be slow in context if its input slew is poor. When a cell's delay in a report disagrees with the datasheet number, check the slew and load first.

    Interview

    Explain why the same gate shows different delays: delay is a function of input transition and output load, read from a table. Mention that output transition feeds the next stage.

    Check yourself A path's delay report shows a NAND gate at 0.31 ns, but the library table's typical value is 0.18 ns. Name two checks.

    Check the input slew arriving at the gate (a degraded transition raises delay) and its output load (long wire or many fanouts). Also confirm the corner: the slow corner has larger table values than the typical one.

    Related topics

    • Next: Net Delay and Parasitics

    Previous

    18 / 183

    Next: Net Delay and Parasitics

    Up next

    Up nextNet Delay and Parasitics

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Loads and Driving Cells
    • How Delay Calculation Flows