origen.tester#
Classes#
DummyTester: Undocumented.IGXL:Tester: Python interface for the tester backend.V93K: Python interface for the tester backend.
- class origen.tester.IGXL(tester=None)#
- add_ac_spec(symbol, specset, selector=Ellipsis, typ=None, min=None, max=None, comment=Ellipsis)#
- add_dc_spec(symbol, specset, selector=Ellipsis, typ=None, min=None, max=None, comment=Ellipsis)#
- add_dut_pinmap(groups=None, pin_type='I/O', comment='')#
Populate an IG-XL pin map from the active O2 DUT.
Physical pins are emitted once. Multi-pin DUT groups are expanded into ordered IG-XL group rows. Pass
groupsto restrict group generation; otherwise all non-trivial DUT groups are included.
- add_dut_timesets_basic(timesets=None, timing_mode='Machine')#
Derive UltraFLEX Time Sets (Basic) rows from O2 DUT wavetables.
A row is generated for every physical pin with applied waves. Conflicting event times for the same IG-XL edge are rejected, since silently choosing one would change the DUT timing semantics.
- add_edgeset(name, pin, src=Ellipsis, format=Ellipsis, drive_on=Ellipsis, drive_data=Ellipsis, drive_return=Ellipsis, drive_off=Ellipsis, compare_mode=Ellipsis, compare_open=Ellipsis, compare_close=Ellipsis, resolution=Ellipsis, timing_mode=Ellipsis, comment=Ellipsis)#
- add_global_spec(symbol, value, job=Ellipsis, comment=Ellipsis)#
- add_group_pin(group, pin, pin_type=Ellipsis, comment=Ellipsis)#
- add_level(pin, parameter, value, comment=Ellipsis)#
- add_pin(name, pin_type=Ellipsis, comment=Ellipsis)#
- add_power_pin(name, comment=Ellipsis)#
- add_reference(path, comment=None)#
- add_timeset(name, period, pin, edgeset, clock_period=Ellipsis, setup=Ellipsis, timing_mode=Ellipsis, comment=Ellipsis)#
- add_timeset_basic(name, period, pin, clock_period=Ellipsis, setup=Ellipsis, src=Ellipsis, format=Ellipsis, drive_on=Ellipsis, drive_data=Ellipsis, drive_return=Ellipsis, drive_off=Ellipsis, compare_mode=Ellipsis, compare_open=Ellipsis, compare_close=Ellipsis, resolution=Ellipsis, timing_mode=Ellipsis, comment=Ellipsis)#
- add_utility_pin(name, pin_type=Ellipsis, comment=Ellipsis)#
- dcvi_powersupply(name, allow_missing=False, **kwargs)#
- empty(name, allow_missing=False, **kwargs)#
- functional(name, allow_missing=False, **kwargs)#
- new_custom_test_instance(name, proc_name, allow_missing=False, **kwargs)#
- new_flow_line(allow_missing=False, **kwargs)#
- new_job(name, **kwargs)#
- new_patgroup(name, pattern=None, patterns=None)#
- new_patset(name, pattern=None, patterns=None)#
- new_patsubr(name, pattern=None, patterns=None)#
- new_test_instance(name, template, library=None, allow_missing=False, **kwargs)#
- other(name, allow_missing=False, **kwargs)#
- pin_pmu(name, allow_missing=False, **kwargs)#
- ppmu(name, allow_missing=False, **kwargs)#
- set_resource_filename(kind, name)#
- set_wait_flags(test_instance, *flags)#
- test_instance_group(name)#
- class origen.tester.Tester#
- apply_pin_header(pin_header)#
- apply_timeset(timeset)#
set_timeset(timeset)
Sets the timeset.
>>> origen.tester.set_timeset(origen.dut.timesets['my_timeset']) origen.tester.timesets['my_timeset']
- Parameters:
timeset (_origen.dut.timesets.Timeset, None) – Timeset to set as current, or
Noneto clear
See also
- ast#
Prints out the AST for the current flow to the console (for debugging)
- ast_to_file(file)#
Write out the AST to the given file (for debugging)
- capture(symbol=None, cycles=None, mask=None, pins=None)#
- cc(comment: str) self#
Inserts a single-line comment into the AST.
>>> origen.tester.cc("my comment") <self> >>> origen.tester.cc("my first comment").cc("my second comment") <self>
- cycle(**kwargs) self#
- end_pattern()#
- eq(*names)#
- generate_pattern_header(header_comments)#
- issue_callbacks(func)#
- neq(*names)#
- overlay(label=None, symbol=None, pins=None, cycles=None, mask=None)#
- pin_header#
- register_tester(g)#
- render_pattern(continue_on_fail=False)#
Attempts to render the pattern on all targeted testers and returns paths to the output files that have been created. There is no need for the Python side to do anything with those, but they are returned in case they are useful in future. Continue on fail means that any errors will be logged but Origen will continue, if false it will blow up and immediately return an error to Python.
- repeat(count)#
- reset()#
This resets the tester, clearing all loaded targets and any other state, making it ready for a fresh target load. This should only be called from Python code for testing, it will be called automatically by Origen before loading targets.
- set_pin_header(pin_header)#
- set_timeset(timeset)#
Sets the timeset.
>>> origen.tester.set_timeset(origen.dut.timesets['my_timeset']) origen.tester.timesets['my_timeset']
- Parameters:
timeset (_origen.dut.timesets.Timeset, None) – Timeset to set as current, or
Noneto clear
See also
- stats()#
- target(*testers)#
- targets#
- testers#
- timeset#
Property for the current
_origen.dut.timesets.Timesetor None, if no timeset has been set. Set toNoneto clear the current timeset.- Returns:
_origen.dut.timesets.TimesetorNone
>>> # Initially no timeset has been set >>> origen.tester.timeset None >>> origen.tester.timeset = origen.dut.timesets.Timeset['my_timeset'] origen.dut.timesets.Timeset['my_timeset'] >>> origen.tester.timeset origen.dut.timesets.Timeset['my_timeset'] >>> # Clear the current timeset >>> origen.tester.timeset = None None >>> origen.tester.timeset None