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