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

Extended by:
ActiveSupport::Concern
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

Instance Method Summary collapse

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

#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