Module: OrigenTesters::SmartestBasedTester::V93K_SMT8::Generator

Extended by:
ActiveSupport::Concern
Includes:
Base::Generator
Defined in:
lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb

Overview

Include this module in an interface class to make it a V93K interface and to give access to the V93K SMT8 program generator API

Constant Summary collapse

PLATFORM =
V93K_SMT8

Instance Method Summary collapse

Methods included from Base::Generator

#_internal_startup, #add_tml, #at_flow_end, #at_flow_start, #at_run_start, #flow, #flow_generators, #flow_sheets, #initialize, #pattern_compiler, #pattern_compilers, #pattern_master, #pattern_master_filename, #pattern_master_filename=, #pattern_masters, #pattern_reference_recorded, #resources_filename=, #sheet_generators, #test_methods, #test_suites, #variables_file, #variables_files, #with_flow

Methods included from Interface

#add_description!, #add_flow_enable, #add_flow_enable=, #add_meta!, #all_pattern_references, #app_identifier, #atp, #clean_referenced_patterns, #clear_pattern_references, #clear_top_level_flow, #close, #comment, #comments, #compile, #consume_comments, #context_changed?, #context_or_parameter_changed?, #descriptions, #discard_comments, #discard_top_level_flow, #flow_generator, #generating_sub_program?, #identity_map, #import, #merge_pattern_references, #on_program_completion, #parameter_changed?, #pattern_references, #pattern_references_name, #pattern_references_name=, #platform, #record_pattern_reference, #referenced_patterns, #render, #resources_mode, resources_mode?, #resources_mode?, #set_top_level_flow, #test, #top_level_flow, #unique_test_names, #unique_test_names=, with_resources_mode, write=, write?, #write?, #write_files

Methods included from ATP::FlowAPI

#atp, #atp=, #hi_limit, #limit, #lo_limit, #loop

Instance Method Details

#limits_workbookObject



42
43
44
# File 'lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb', line 42

def limits_workbook
  @@limits_workbook ||= LimitsWorkbook.new(manually_register: true)
end

#shmoo_testsObject



46
47
48
# File 'lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb', line 46

def shmoo_tests
  flow.shmoo_tests
end

#sub_flow_no_return_varsObject

Sub flows are generated in a forked process for SMT8, however any updates made to interface instance variables by the sub-flow will be applied to the interface of the master process. This is what the user would expect to happen and keeps them largely unaware of the fact that the sub-flow is actually being generated by a forked process. However, to do this it is necessary to marshal the value of the instance variables and some (rich) Ruby objects cannot be marshaled. This parameter allows applications to selectively mark such variables as not to be returned from the forked process, skipping the marshal operation but also meaning that any changes made to the variable by the sub-flow will not be visible to the top-level flow.

If the application actually needs updates to that variable made during a sub-flow to be available to the top-level flow, then they will need to work around it in another way on a case by case basis.

# In the application's interface
sub_flow_no_return_vars << :@my_problem_var


33
34
35
# File 'lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb', line 33

def sub_flow_no_return_vars
  @sub_flow_no_return_vars ||= []
end

#sub_flow_no_return_vars=(val) ⇒ Object

See sub_flow_no_return_vars



38
39
40
# File 'lib/origen_testers/smartest_based_tester/v93k_smt8/generator.rb', line 38

def sub_flow_no_return_vars=(val)
  @sub_flow_no_return_vars = val
end