Class: OrigenTesters::PatternCompilers::UltraFLEXPatternCompiler
- Inherits:
-
IGXLBasedPatternCompiler
- Object
- BasePatternCompiler
- IGXLBasedPatternCompiler
- OrigenTesters::PatternCompilers::UltraFLEXPatternCompiler
- Defined in:
- lib/origen_testers/pattern_compilers/ultraflex.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 = {}) ⇒ UltraFLEXPatternCompiler
constructor
A new instance of UltraFLEXPatternCompiler.
-
#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 = {}) ⇒ UltraFLEXPatternCompiler
Returns a new instance of UltraFLEXPatternCompiler.
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 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/origen_testers/pattern_compilers/ultraflex.rb', line 36 def initialize(id, = {}) super @user_options = {}.merge(@user_options) @job_options = { tester: :ultraflex, compiler: self.class.compiler, # required }.merge(@job_options) # These are compiler options that are specific to UltraFLEX (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 = { lock: false, # prevents pattern from being reverse compiled or opened in PatternTool multiinst: false, # indicates more than one instrument is connected to a single pin nocompress: false, # do not compress pattern data blocks stdin: false, # Compile data from standard input. Do not use -cpp or specify any pattern file(s) when using this option. }.merge(@compiler_options) # These are compiler options that are specific to UltraFLEX (builds on options from IGXL-Based) @compiler_options_with_args = { pat_version: nil, # version of pattern file to compile scan_type: nil, # type of scan data includes: nil, # include paths to be passed to C- preprocessor. post_processor: nil, # <pathname> customer's post-process executable. post_processor_args: nil, # <args> customer's post-process executable arguments cdl_cache: nil, # 'yes' | 'no', turns on/off CDL caching, default on compiler side is 'yes' init_pattern: nil, # <pattern>, uses the specified pattern module/file/set as an init patterns check_set_msb: nil, # 'yes' | 'no', turns on/off check the 'set' or 'set_infinite' opcode time_domain: nil, # <time domain>, specifies time domain for pins in patterns allow_mto_dash: nil, # Turn on/off support for channel data runtime repeat,i.e. vector dash in MTO patterns. Default value is "no". check_vm_min_size: nil, # Turns on/off the check on minimum size of a VM pattern. Default value is "yes". check_vm_mod_size: nil, # Turns on/off the check on a VM pattern module size. Default value is "yes". check_oob_size: nil, # Turns on/off the check on size of OOB regions. Yes means size must be modulo 10. Default value is "no". allow_mixed_1x2x: nil, # Turns on/off the support of mixed 1x/2x pin groups. Default value is "no". allow_differential: nil, # Turns on/off support for differential pins. Default value is "yes". allow_scan_in_srm: nil, # Allow/disallow scan vectors in SRM pattern modules. Default value is "no". vm_block_size: nil, # Specifies uncompressed size in bytes of a pattern data block }.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/ultraflex.rb', line 15 def self.atpc_setup Origen.site_config.origen_testers[:uflex_atpc_setup] end |
.compiler ⇒ Object
Resolves to correct compiler based on operating system
20 21 22 |
# File 'lib/origen_testers/pattern_compilers/ultraflex.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/ultraflex.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/ultraflex.rb', line 28 def self. "#{compiler_cmd} -help" end |
.compiler_version ⇒ Object
32 33 34 |
# File 'lib/origen_testers/pattern_compilers/ultraflex.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/ultraflex.rb', line 5 def self.linux_compiler Origen.site_config.origen_testers[:uflex_linux_pattern_compiler] end |
.windows_compiler ⇒ Object
Windows compiler executable path
10 11 12 |
# File 'lib/origen_testers/pattern_compilers/ultraflex.rb', line 10 def self.windows_compiler Origen.site_config.origen_testers[:uflex_windows_pattern_compiler] end |
Instance Method Details
#run(list = nil, options = {}) ⇒ Object
Executes the compiler for each job in the queue
82 83 84 85 86 87 88 89 |
# File 'lib/origen_testers/pattern_compilers/ultraflex.rb', line 82 def run(list = nil, = {}) fail "Error: the tester #{Origen.tester} is not an Ultrflex tester,exiting..." unless is_ultraflex? 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 |