Module: OrigenSTIL

Defined in:
lib/origen_stil.rb,
lib/origen_stil/pattern.rb,
lib/origen_stil/syntax/node.rb,
lib/origen_stil/syntax/parser.rb,
lib/origen_stil/processor/base.rb,
lib/origen_stil/processor/pins.rb,
lib/origen_stil/processor/pattern.rb,
lib/origen_stil/processor/timesets.rb,
lib/origen_stil/processor/expression.rb,
lib/origen_stil/processor/pin_groups.rb

Defined Under Namespace

Modules: Processor, Syntax Classes: Pattern

Class Method Summary collapse

Class Method Details

.add_pins(path, options = {}) ⇒ Object

Add pins (and pin groups) from the given STIL file to the current DUT unless they already exist



53
54
55
# File 'lib/origen_stil.rb', line 53

def self.add_pins(path, options = {})
  pattern(path).add_pins(options)
end

.execute(path, options = {}) ⇒ Object

Execute the pattern vectors in the given STIL file, this will also call add_pins to ensure the pins are available so there is no need to call that separately



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/origen_stil.rb', line 38

def self.execute(path, options = {})
  options = {
    # When true, any timeset changes from the STIL will be translated to tester.set_timeset
    # calls, otherwise they will be ignored
    set_timesets: false
  }.merge(options)
  # Bit of a hack, this is to lock in the current set of pins so that any added
  # by the STIL are not included, the Origen model is in charge of pattern formatting
  tester.current_pin_vals if tester
  add_pins(path, options)
  pattern(path).execute(options)
end

.pattern(path_to_stil_file) ⇒ Object

Returns an OrigenSTIL::Pattern instance for the given STIL file



58
59
60
61
# File 'lib/origen_stil.rb', line 58

def self.pattern(path_to_stil_file)
  path = Pathname.new(path_to_stil_file).realpath.cleanpath.to_s
  patterns[path] ||= OrigenSTIL::Pattern.new(path)
end

.patternsObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



64
65
66
# File 'lib/origen_stil.rb', line 64

def self.patterns
  @patterns ||= {}
end

.unquote(str) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



69
70
71
# File 'lib/origen_stil.rb', line 69

def self.unquote(str)
  str.gsub(/\A("|')|("|')\Z/, '')
end