Module: OrigenTesters::PatternCompilers

Defined in:
lib/origen_testers/pattern_compilers.rb,
lib/origen_testers/pattern_compilers/job.rb,
lib/origen_testers/pattern_compilers/assembler.rb,
lib/origen_testers/pattern_compilers/ultraflex_pattern_compiler.rb

Defined Under Namespace

Classes: Job, UltraFlexPatternCompiler

Constant Summary collapse

PLATFORMS =
[:ultraflex]
LINUX_PATTERN_COMPILER =

Linux compiler executable path

"#{Origen.root!}/bin/latest/bin/atpcompiler"
WINDOWS_PATTERN_COMPILER =

Windows compiler executable path

"#{ENV['IGXLROOT']}/bin/apc.exe"

Instance Method Summary collapse

Instance Method Details

#add_pattern_compiler(id, platform, options = {}) ⇒ Object Also known as: add_compiler

Add a compiler for a particular tester platform and pattern type



48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/origen_testers/pattern_compilers.rb', line 48

def add_pattern_compiler(id, platform, options = {})
  pattern_compilers
  id = id.to_sym
  platform = platform.to_sym
  options[:location] = options[:location].to_sym unless options[:location].nil?
  case platform
  when :ultraflex
    fail "Compiler ID #{id} for platform #{platform} already exists!  Pick another name, delete the compiler, or clear all compilers" if @pattern_compilers[platform].keys.include? id
    @pattern_compilers[platform][id] = UltraFlexPatternCompiler.new(id, options)
  else
    fail "Platform #{platform} is not valid, please choose from #{PLATFORMS.join(', ')}"
  end
end

#delete_pattern_compiler(id) ⇒ Object Also known as: delete_compiler

Delete a pattern compiler instance.



42
43
44
# File 'lib/origen_testers/pattern_compilers.rb', line 42

def delete_pattern_compiler(id)
  @pattern_compilers[platform].delete(id)
end

#delete_pattern_compilers(p = platform) ⇒ Object Also known as: delete_compilers

Delete pattern compiler instances. If no argument default to current platform



36
37
38
# File 'lib/origen_testers/pattern_compilers.rb', line 36

def delete_pattern_compilers(p = platform)
  @pattern_compilers[p].delete_if { |k, v| true }
end

#pattern_compiler_instances(p = platform) ⇒ Object Also known as: compiler_instances

Returns an array of the pattern compiler instance ids for the currently selected tester platform.



65
66
67
68
69
70
# File 'lib/origen_testers/pattern_compilers.rb', line 65

def pattern_compiler_instances(p = platform)
  # Check if nil which means no tester is defined so ask user to supply it
  fail "No tester platform defined so supply one of the following as an argument: #{PLATFORMS.join(', ')}" if p.nil?
  p = p.to_sym
  @pattern_compilers[p].keys
end

#pattern_compiler_optionsObject Also known as: compiler_options



73
74
75
76
77
# File 'lib/origen_testers/pattern_compilers.rb', line 73

def pattern_compiler_options
  cmd = ''
  running_on_windows? ? cmd = "#{WINDOWS_PATTERN_COMPILER} -help" : cmd = "#{LINUX_PATTERN_COMPILER} -help"
  system cmd
end

#pattern_compiler_platformsObject Also known as: compiler_platforms



30
31
32
# File 'lib/origen_testers/pattern_compilers.rb', line 30

def pattern_compiler_platforms
  PLATFORMS
end

#pattern_compiler_supported?Boolean Also known as: compiler_supported?

Check if the current tester is supported

Returns:

  • (Boolean)


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

def pattern_compiler_supported?
  PLATFORMS.include? platform ? true : false
end

#pattern_compiler_versionObject Also known as: compiler_version



80
81
82
83
84
# File 'lib/origen_testers/pattern_compilers.rb', line 80

def pattern_compiler_version
  cmd = ''
  running_on_windows? ? cmd = "#{WINDOWS_PATTERN_COMPILER} -version" : cmd = "#{LINUX_PATTERN_COMPILER} -version"
  system cmd
end

#pattern_compilers(id = nil) ⇒ Object Also known as: compilers

Hash wrapper for compiler instances, defaults to display currently enabled tester platform. If none is set then user must supply a valid tester platform argument



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/origen_testers/pattern_compilers.rb', line 16

def pattern_compilers(id = nil)
  @pattern_compilers ||= begin
    hash = {}
    PLATFORMS.each { |platform| hash[platform] = {} }
    hash
  end
  if id.nil?
    @pattern_compilers[platform]
  else
    @pattern_compilers[platform][id].inspect_options
  end
end