Class: OrigenTesters::PatternCompilers::J750PatternCompiler
- Inherits:
- 
      IGXLBasedPatternCompiler
      
        - Object
- BasePatternCompiler
- IGXLBasedPatternCompiler
- OrigenTesters::PatternCompilers::J750PatternCompiler
 
- Defined in:
- lib/origen_testers/pattern_compilers/j750.rb
Instance Attribute Summary
Attributes inherited from BasePatternCompiler
Class Method Summary collapse
- 
  
    
      .atpc_setup  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Pre-compile environment setup if necessary. 
- 
  
    
      .compiler  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Resolves to correct compiler based on operating system. 
- .compiler_cmd ⇒ Object
- .compiler_options ⇒ Object
- .compiler_version ⇒ Object
- 
  
    
      .linux_compiler  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Linux compiler executable path. 
- 
  
    
      .windows_compiler  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Windows compiler executable path. 
Instance Method Summary collapse
- 
  
    
      #initialize(id, options = {})  ⇒ J750PatternCompiler 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of J750PatternCompiler. 
- 
  
    
      #run(list = nil, options = {})  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Executes the compiler for each job in the queue. 
Methods inherited from IGXLBasedPatternCompiler
#bad_options, #find_jobs, #inspect_jobs, #options_ok?, #pinmap, #ready?, #to_list, #verify_pinmap_is_specified
Methods inherited from BasePatternCompiler
#clear, #count, #empty?, #inspect_options, #is_j750?, #is_ultraflex?, #is_v93k?, #name, #platform
Constructor Details
#initialize(id, options = {}) ⇒ J750PatternCompiler
| 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | # File 'lib/origen_testers/pattern_compilers/j750.rb', line 36 def initialize(id, = {}) super @user_options = {}.merge(@user_options) @job_options = { tester: :j750, compiler: self.class.compiler, # required }.merge(@job_options) # These are compiler options that are specific to J750 compiler (builds on options from IGXL-Based) # Set all of these compiler options that don't have args to true/flase. if true then send compiler '-opt' @compiler_options = { compress: false, # Compress the compiled output file. extended: false, # Compiles the pattern for extended mode. scan_parallel: false, # Expands scan vectors into parallel SVM/LVM vectors. svm_only: false, # Compile all vectors in the file for SVM. svm_subr_only: false, # Only SVM subroutines in file being used. }.merge(@compiler_options) # These are compiler options that are specific to J750 compiler (builds on options from IGXL-Based) @compiler_options_with_args = { i: nil, # Includes paths to be passed to C++ preprocessor. lvm_size: nil, # Number of LVM vectors to allow in a single pattern. max_errors: nil, # Number of errors that will cause compilation of the pattern file to be aborted. min_period: nil, # Minimum period, in seconds, that will be used during a pattern burst. }.merge(@compiler_options_with_args) () # Update common options with default (see BasePatternCompiler) verify_pinmap_is_specified # verify pinmap specified correctly - IGXL specific # Standard cleaning and verifying (see BasePatternCompiler) end | 
Class Method Details
.atpc_setup ⇒ Object
Pre-compile environment setup if necessary
| 15 16 17 | # File 'lib/origen_testers/pattern_compilers/j750.rb', line 15 def self.atpc_setup Origen.site_config.origen_testers[:j750_atpc_setup] end | 
.compiler ⇒ Object
Resolves to correct compiler based on operating system
| 20 21 22 | # File 'lib/origen_testers/pattern_compilers/j750.rb', line 20 def self.compiler Origen.running_on_windows? ? windows_compiler : linux_compiler end | 
.compiler_cmd ⇒ Object
| 24 25 26 | # File 'lib/origen_testers/pattern_compilers/j750.rb', line 24 def self.compiler_cmd Pathname.new(compiler).absolute? ? compiler : eval('"' + compiler + '"') end | 
.compiler_options ⇒ Object
| 28 29 30 | # File 'lib/origen_testers/pattern_compilers/j750.rb', line 28 def self. "#{compiler_cmd} -help" end | 
.compiler_version ⇒ Object
| 32 33 34 | # File 'lib/origen_testers/pattern_compilers/j750.rb', line 32 def self.compiler_version "#{compiler_cmd} -version" end | 
.linux_compiler ⇒ Object
Linux compiler executable path
| 5 6 7 | # File 'lib/origen_testers/pattern_compilers/j750.rb', line 5 def self.linux_compiler Origen.site_config.origen_testers[:j750_linux_pattern_compiler] end | 
.windows_compiler ⇒ Object
Windows compiler executable path
| 10 11 12 | # File 'lib/origen_testers/pattern_compilers/j750.rb', line 10 def self.windows_compiler Origen.site_config.origen_testers[:j750_windows_pattern_compiler] end | 
Instance Method Details
#run(list = nil, options = {}) ⇒ Object
Executes the compiler for each job in the queue
| 70 71 72 73 74 75 76 77 | # File 'lib/origen_testers/pattern_compilers/j750.rb', line 70 def run(list = nil, = {}) fail "Error: the tester #{Origen.tester} is not an J750 tester,exiting..." unless is_j750? msg = "Error: application #{Origen.app.name} is running on Windows, " msg += 'to run the pattern compiler you must be on a Linux machine' fail msg if Origen.running_on_windows? super end |