Class: OrigenTesters::Test::V93KInterface

Inherits:
Object
  • Object
show all
Includes:
V93K::Generator
Defined in:
lib/origen_testers/test/v93k_interface.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ V93KInterface

Options passed to Flow.create and Library.create will be passed in here, use as desired to configure your interface



8
9
# File 'lib/origen_testers/test/v93k_interface.rb', line 8

def initialize(options = {})
end

Instance Method Details

#block_loop(name, options) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
# File 'lib/origen_testers/test/v93k_interface.rb', line 69

def block_loop(name, options)
  if options[:by_block]
    flow.group name, options do
      $dut.blocks.each_with_index do |block, i|
        yield block, i
      end
    end
  else
    yield
  end
end

#func(name, options = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/origen_testers/test/v93k_interface.rb', line 15

def func(name, options = {})
  options = {
    duration: :static
  }.merge(options)

  block_loop(name, options) do |block, i|
    tm = test_methods.ac_tml.ac_test.functional_test
    ts = test_suites.run(name, options)
    ts.test_method = tm
    ts.levels = options.delete(:pin_levels) if options[:pin_levels]
    if block
      ts.pattern = "#{name}_b#{i}"
    else
      ts.pattern = name.to_s
      #    if options[:cz_setup]
      #      flow.cz(ins, options[:cz_setup], options)
      #    else
      #    end
    end
    flow.test ts, options
  end
end

#group(name, options = {}) ⇒ Object



63
64
65
66
67
# File 'lib/origen_testers/test/v93k_interface.rb', line 63

def group(name, options = {})
  flow.group name, options do |group|
    yield group
  end
end

#log(msg) ⇒ Object



11
12
13
# File 'lib/origen_testers/test/v93k_interface.rb', line 11

def log(msg)
  flow.log(msg)
end

#meas(name, options = {}) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/origen_testers/test/v93k_interface.rb', line 38

def meas(name, options = {})
  options = {
    duration: :static
  }.merge(options)

  name = "meas_#{name}" unless name.to_s =~ /meas/

  tm = test_methods.dc_tml.dc_test.general_pmu
  ts = test_suites.run(name, options)
  ts.test_method = tm
  ts.levels = options.delete(:pin_levels) if options[:pin_levels]
  ts.lo_limit = options[:lo_limit] if options[:lo_limit]
  ts.hi_limit = options[:hi_limit] if options[:hi_limit]
  ts.pattern = name.to_s
  # if options[:cz_setup]
  #  flow.cz(ins, options[:cz_setup], options)
  # else
  #  use_limit_params = [:lo_limit, :hi_limit, :scale, :units] # define options to strip for flow.test
  #  options_use_limit = options.dup                           # duplicate, as modifying options directly, even an assigned copy modifies original
  #  flow.test(ins, options.reject! { |k, _| use_limit_params.include? k })    # set up test skipping use-limit options
  #  flow.use_limit(name, options_use_limit) if options_use_limit[:hi_limit] || options_use_limit[:lo_limit]  # Only use use-limit if limits present in flow
  # end
  flow.test ts, options
end

#mto_memory(name, options = {}) ⇒ Object



92
93
94
# File 'lib/origen_testers/test/v93k_interface.rb', line 92

def mto_memory(name, options = {})
  # Seriously?!
end

#para(name, options = {}) ⇒ Object



88
89
90
# File 'lib/origen_testers/test/v93k_interface.rb', line 88

def para(name, options = {})
  # print "UltraFLEX Parametric Test not yet supported for UltraFLEX!\n"
end

#por(options = {}) ⇒ Object



81
82
83
84
85
86
# File 'lib/origen_testers/test/v93k_interface.rb', line 81

def por(options = {})
  options = {
    instance_not_available: true
  }.merge(options)
  func('por_ins', options)
end