Home Knowledge Base Gate-Level Simulation (GLS)

Gate-Level Simulation (GLS) is the functional and timing verification technique that simulates the chip design at the synthesized netlist level with actual gate delays annotated from the Standard Delay Format (SDF) file — bridging the gap between fast RTL simulation (which ignores physical delays) and static timing analysis (which doesn't verify functionality), catching timing-dependent functional bugs like race conditions, glitches, and clock domain crossing errors that neither RTL simulation nor STA alone can detect.

Why Gate-Level Simulation

GLS Flow

 [Gate Netlist (.v)]  + [SDF File (.sdf)]  + [Testbench]
  from Synthesis/PnR     from Timing Analysis   same as RTL
          ↓                     ↓                    ↓
       [Gate-Level Simulator (VCS, Xcelium, QuestaSim)]
          ↓
       [Compare outputs vs. RTL golden reference]

SDF Annotation

// SDF file snippet
(CELL
  (CELLTYPE "AND2X1")
  (INSTANCE u_core/u_alu/g123)
  (DELAY
    (ABSOLUTE
      (IOPATH A Y (0.025:0.030:0.038) (0.020:0.025:0.032))
      (IOPATH B Y (0.028:0.033:0.042) (0.022:0.028:0.036))
    )
  )
)

Types of GLS

TypeDelaysCatchesRuntime
Zero-delay GLSNo delaysStructural bugs (missing connections)2-5× RTL
Unit-delay GLSAll delays = 1 unitBasic race conditions3-7× RTL
Full-timing GLS (SDF)Actual gate + wire delaysAll timing-dependent bugs10-100× RTL
Back-annotated GLSPost-PnR parasiticsMost accurate, signoff quality50-200× RTL

Bugs Found by GLS (Not by RTL Sim or STA)

Bug TypeWhy RTL MissesWhy STA Misses
Glitch on clock gate enableZero-delay enable is cleanSTA checks setup/hold, not glitch
Race between reset and clockReset and clock are concurrent in RTLSTA doesn't simulate async reset
CDC data corruptionRTL model assumes instant synchronizationSTA flags but doesn't simulate
Timing-dependent MUX selectMUX select arrives same cycle → RTL picks one arbitrarilySTA verifies paths independently
Init sequence timingPower-on sequence has no delay in RTLSTA doesn't cover power-on

Practical Challenges

ChallengeImpactMitigation
Runtime50-200× slower than RTLReduce test vector set, use targeted tests
X-propagationUninitialized signals create X → masks bugs or causes false failuresUse X-prop simulation mode
Memory modelsLarge memories slow simulationUse behavioral memory models
Analog interfacesGLS cannot model analog behaviorBlack-box analog blocks
DebugGate-level waveforms harder to readCross-reference to RTL hierarchy

Gate-level simulation is the verification safety net that catches the timing-functional interaction bugs that slip through all other verification methods — while STA ensures timing correctness under assumed functionality and RTL simulation verifies functionality under ideal timing, GLS is the only method that verifies both together, making it an indispensable step for taping out reliable silicon despite its significant runtime cost.

gate level simulationglspost synthesis simulationtiming simulationsdf annotation

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.