class LinkDemo::TestProgram::Interface

Public Instance Methods

add_flow_entry(test, options) click to toggle source
# File lib/origen_doc_helpers_dev/interface.rb, line 60
def add_flow_entry(test, options)
  options = {
    number:   options[:bin] * 1000,
    soft_bin: options[:bin]
  }.merge(options)
  flow.test test, options
end
apply_levels(test, options) click to toggle source
# File lib/origen_doc_helpers_dev/interface.rb, line 55
def apply_levels(test, options)
  test.dc_category = 'spec'
  test.dc_selector = options[:vdd] || :nom
end
func(name, options = {}) click to toggle source
# File lib/origen_doc_helpers_dev/interface.rb, line 24
def func(name, options = {})
  options = {
    vdd:  [:min, :max],
    type: :functional
  }.merge(options)
  vdd_loop(options) do |options|
    test = test_instances.functional(instance_name(name, options), options)
    test.pattern = pattern_name(name, options)
    apply_levels(test, options)
    add_flow_entry(test, options)
  end
end
instance_name(name, options = {}) click to toggle source
# File lib/origen_doc_helpers_dev/interface.rb, line 6
def instance_name(name, options = {})
  name = pattern_name(name)
  if options[:vdd] || options[:vdd] != :nom
    name += "_#{options[:vdd]}"
  end
  name
end
para(name, options = {}) click to toggle source
# File lib/origen_doc_helpers_dev/interface.rb, line 37
def para(name, options = {})
  options = {
    vdd:  [:min, :max],
    type: :parametric
  }.merge(options)
  unless options[:cz]
    vdd_loop(options) do |options|
      test = test_instances.ppmu(instance_name(name, options), options)
      test.pattern = pattern_name(name, options)
      test.lo_limit = options[:lo]
      test.hi_limit = options[:hi]
      test.force_cond = options[:force] || 0
      apply_levels(test, options)
      add_flow_entry(test, options)
    end
  end
end
pattern_name(name, options = {}) click to toggle source
# File lib/origen_doc_helpers_dev/interface.rb, line 14
def pattern_name(name, options = {})
  options[:pattern] || name.to_s
end
vdd_loop(options) { |merge(vdd: vdd)| ... } click to toggle source
# File lib/origen_doc_helpers_dev/interface.rb, line 18
def vdd_loop(options)
  [options[:vdd]].flatten.each do |vdd|
    yield options.merge(vdd: vdd)
  end
end