Class: OrigenTesters::IGXLBasedTester::Base::Pinmap

Inherits:
Object
  • Object
show all
Includes:
Generator
Defined in:
lib/origen_testers/igxl_based_tester/base/pinmap.rb

Direct Known Subclasses

UltraFLEX::Pinmap

Constant Summary collapse

PIN_TYPES =
['I/O', 'I', 'O']
PWR_TYPES =
['Power']
UTL_TYPES =
['Utility', 'I/O', 'I', 'O']

Instance Attribute Summary collapse

Attributes included from Generator

#output_directory

Instance Method Summary collapse

Methods included from Generator

#close, #collection, #collection=, #compiler, #current_dir, #dont_diff=, execute_source, #file_extension, #file_pipeline, #filename, #filename=, #identity_map, #import, #inhibit_output, #name, #on_close, original_reference_file, original_reference_file=, #output_file, #output_inhibited?, #reference_file, #render, #set_flow_description, #stats, #to_be_written?, #write_from_template, #write_to_file

Constructor Details

#initializePinmap

:nodoc:



16
17
18
19
20
21
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 16

def initialize # :nodoc:
  @pins = {}
  @pin_groups = Hash.new { |h, k| h[k] = {} }
  @power_pins = {}
  @utility_pins = {}
end

Instance Attribute Details

#pin_groupsObject

Returns the value of attribute pin_groups.



8
9
10
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 8

def pin_groups
  @pin_groups
end

#pinsObject

Returns the value of attribute pins.



7
8
9
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 7

def pins
  @pins
end

#power_pinsObject

Returns the value of attribute power_pins.



9
10
11
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 9

def power_pins
  @power_pins
end

#utility_pinsObject

Returns the value of attribute utility_pins.



10
11
12
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 10

def utility_pins
  @utility_pins
end

Instance Method Details

#add_group_pin(grp_name, pin_name, attrs = {}) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 38

def add_group_pin(grp_name, pin_name, attrs = {})
  attrs = {
    type:    'I/O',
    comment: ''
  }.merge(attrs)
  grp_name = grp_name.to_sym unless grp_name.is_a? Symbol
  pin_name = pin_name.to_sym unless pin_name.is_a? Symbol
  if PIN_TYPES.include? attrs[:type]
    type = attrs[:type]
  else
    Origen.log.error "Pinmap group pin type '#{attrs[:type]}' must be set to one of the following: #{PIN_TYPES.join(', ')} for pin '#{pin_name}'"
    fail
  end
  @pin_groups[grp_name][pin_name] = { type: attrs[:type], comment: attrs[:comment] }
end

#add_pin(pin_name, attrs = {}) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 23

def add_pin(pin_name, attrs = {})
  attrs = {
    type:    'I/O',
    comment: ''
  }.merge(attrs)
  pin_name = pin_name.to_sym unless pin_name.is_a? Symbol
  if PIN_TYPES.include? attrs[:type]
    type = attrs[:type]
  else
    Origen.log.error "Pinmap individual pin type '#{attrs[:type]}' must be set to one of the following: #{PIN_TYPES.join(', ')} for pin '#{pin_name}'"
    fail
  end
  @pins[pin_name] = { type: type, comment: attrs[:comment] }
end

#add_power_pin(pin_name, attrs = {}) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 54

def add_power_pin(pin_name, attrs = {})
  attrs = {
    type:    'Power',
    comment: ''
  }.merge(attrs)
  pin_name = pin_name.to_sym unless pin_name.is_a? Symbol
  if PWR_TYPES.include? attrs[:type]
    type = attrs[:type]
  else
    Origen.log.error "Pinmap powerpin type '#{attrs[:type]}' must be set to one of the following: #{PWR_TYPES.join(', ')} for pin '#{pin_name}'"
    fail
  end
  @power_pins[pin_name] = { type: attrs[:type], comment: attrs[:comment] }
end

#add_utility_pin(pin_name, attrs = {}) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 69

def add_utility_pin(pin_name, attrs = {})
  attrs = {
    type:    'Utility',
    comment: ''
  }.merge(attrs)
  pin_name = pin_name.to_sym unless pin_name.is_a? Symbol
  if UTL_TYPES.include? attrs[:type]
    type = attrs[:type]
  else
    Origen.log.error "Pinmap utility pin type '#{attrs[:type]}' must be set to one of the following: #{UTL_TYPES.join(', ')} for pin '#{pin_name}'"
    fail
  end
  @utility_pins[pin_name] = { type: attrs[:type], comment: attrs[:comment] }
end

#finalize(options = {}) ⇒ Object



84
85
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 84

def finalize(options = {})
end

#platformObject



87
88
89
# File 'lib/origen_testers/igxl_based_tester/base/pinmap.rb', line 87

def platform
  Origen.interface.platform
end