Timing#
Timing connects model pin actions to tester drive and compare edges. DUT timing source defines timesets and waves; a pattern selects a timeset before cycling; the active tester translates events into its native timing representation.
Modeling Timing#
See Timesets for timeset, wavetable, wave, and event
construction. Keep wave actions semantic—DriveHigh, DriveLow,
VerifyHigh, VerifyLow, and HighZ—so multiple testers can translate
the same model.
Selecting A Timeset#
Select by name or timeset object before emitting cycles:
origen.tester.set_timeset("functional")
origen.dut.pin("clk").drive(1)
origen.tester.cycle()
Origen lazily loads DUT timesets when necessary. A missing-timeset error usually means the active DUT target does not define that name or a derivative failed to load its timing source.
Periods#
Timesets provide a default period. Applications may use expressions based on
period for edge positions. Validate the resolved values for every tester;
native tools can differ in supported resolution and edge ordering.
Symbol Mapping#
The tester backend has default symbols for pin actions, and a timeset may override them. A symbol change affects vectors without changing pattern source, so symbol maps require regression coverage.
Validation#
For every supported tester, verify:
the selected timeset exists;
all pattern symbols resolve to waves;
edge expressions resolve inside the period;
drive and compare actions map to intended native edges; and
generated timing resources and vector symbols agree.