Skip to content

Add clock uncertainty/jitter margin to timing checks #8

@robtaylor

Description

@robtaylor

Summary

Add a configurable clock uncertainty margin to timing checks, matching commercial STA set_clock_uncertainty behavior.

Current State

GEM timing checks use exact clock period with no pessimism margin. Real designs have PLL jitter, duty cycle distortion, and other clock uncertainty that must be accounted for.

Proposed Approach

  • Add --clock-uncertainty <ps> CLI flag (default 0)
  • Setup check becomes: slack = clock_period - uncertainty - data_arrival - setup_time
  • Hold check becomes: slack = data_arrival - hold_time - uncertainty
  • Support separate setup/hold uncertainty values

Impact

Medium — adds realism to timing checks without major architectural changes.

Effort

Low — single parameter addition to existing check logic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions