origen_testers 0.49.1 → 0.49.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/config/version.rb +1 -1
 - data/lib/origen_testers/api.rb +10 -0
 - data/lib/origen_testers/charz/profile.rb +13 -0
 - data/lib/origen_testers/igxl_based_tester/base.rb +1 -1
 - data/lib/origen_testers/igxl_based_tester/ultraflex.rb +8 -3
 - data/lib/origen_testers/smartest_based_tester/base.rb +2 -1
 - data/pattern/uflex_digital_instrument.rb +3 -0
 - data/program/prb1.rb +4 -0
 - data/templates/origen_guides/pattern/ultraflex.md.erb +12 -0
 - metadata +3 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: b7fb18cb0a867b3e7d16d411f4d90d3f8a7e5164e68648bdab6228a88c9493db
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 203c0d17be3c4da9ae74db8467d4f7d4f0d838dd7c3ed53dc6eabf0fa8dd0042
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a1ed85ac570989eef01297d1db96b02bee44de409972e56c4136adac466acc49384a0f2ab9ba91ca44d5889e3a1569dd3ca08734dc72ac62f735a0bcd446ba05
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: ee18f2e4c82ccf3e5d6ce1676d58b8acbce4ed76491e3b00ad5641d21da361db9c509afee9d2b0add262d1529d8082de4a9125f1d3406e274b9b7ca9d531e13e
         
     | 
    
        data/config/version.rb
    CHANGED
    
    
    
        data/lib/origen_testers/api.rb
    CHANGED
    
    | 
         @@ -11,6 +11,7 @@ module OrigenTesters 
     | 
|
| 
       11 
11 
     | 
    
         
             
                attr_accessor :includes
         
     | 
| 
       12 
12 
     | 
    
         
             
                attr_accessor :comment_level
         
     | 
| 
       13 
13 
     | 
    
         
             
                attr_accessor :generating
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       14 
15 
     | 
    
         
             
                # Get/Set the overlay style
         
     | 
| 
       15 
16 
     | 
    
         
             
                #
         
     | 
| 
       16 
17 
     | 
    
         
             
                # This method changes the way overlay is handled.
         
     | 
| 
         @@ -19,6 +20,7 @@ module OrigenTesters 
     | 
|
| 
       19 
20 
     | 
    
         
             
                # @example
         
     | 
| 
       20 
21 
     | 
    
         
             
                #   tester.overlay_style = :label
         
     | 
| 
       21 
22 
     | 
    
         
             
                attr_accessor :overlay_style
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       22 
24 
     | 
    
         
             
                # Get/Set the capture style
         
     | 
| 
       23 
25 
     | 
    
         
             
                #
         
     | 
| 
       24 
26 
     | 
    
         
             
                # This method changes the way tester.store() implements the store
         
     | 
| 
         @@ -49,10 +51,18 @@ module OrigenTesters 
     | 
|
| 
       49 
51 
     | 
    
         
             
                end
         
     | 
| 
       50 
52 
     | 
    
         
             
                alias_method :pattern_extension, :pat_extension
         
     | 
| 
       51 
53 
     | 
    
         | 
| 
      
 54 
     | 
    
         
            +
                def comment_char=(val)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  @comment_char = val
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
       52 
58 
     | 
    
         
             
                def comment_char
         
     | 
| 
       53 
59 
     | 
    
         
             
                  @comment_char || '//'
         
     | 
| 
       54 
60 
     | 
    
         
             
                end
         
     | 
| 
       55 
61 
     | 
    
         | 
| 
      
 62 
     | 
    
         
            +
                def program_comment_char=(val)
         
     | 
| 
      
 63 
     | 
    
         
            +
                  @program_comment_char = val
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
       56 
66 
     | 
    
         
             
                def program_comment_char
         
     | 
| 
       57 
67 
     | 
    
         
             
                  @program_comment_char || comment_char
         
     | 
| 
       58 
68 
     | 
    
         
             
                end
         
     | 
| 
         @@ -35,6 +35,19 @@ module OrigenTesters 
     | 
|
| 
       35 
35 
     | 
    
         
             
                  def attrs_ok?
         
     | 
| 
       36 
36 
     | 
    
         
             
                    return if @quality_check == false
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
      
 38 
     | 
    
         
            +
                    unless @routines.is_a?(Array)
         
     | 
| 
      
 39 
     | 
    
         
            +
                      Origen.log.error "Profile #{id}: routines is expected to be of type <Array>, but is instead of type <#{@routines.class}>!"
         
     | 
| 
      
 40 
     | 
    
         
            +
                      fail
         
     | 
| 
      
 41 
     | 
    
         
            +
                    end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                    # allowing a config for empty routines for usecase of
         
     | 
| 
      
 44 
     | 
    
         
            +
                    # determining routines on the fly dynamically
         
     | 
| 
      
 45 
     | 
    
         
            +
                    if @routines.empty? && !@allow_empty_routines
         
     | 
| 
      
 46 
     | 
    
         
            +
                      Origen.log.error "Profile #{id}: routines array is empty!"
         
     | 
| 
      
 47 
     | 
    
         
            +
                      Origen.log.warn "If you'd like to enable profile creation without routines, set the profile's @allow_empty_routines attribute to true"
         
     | 
| 
      
 48 
     | 
    
         
            +
                      fail
         
     | 
| 
      
 49 
     | 
    
         
            +
                    end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
       38 
51 
     | 
    
         
             
                    unknown_routines = @routines - @defined_routines
         
     | 
| 
       39 
52 
     | 
    
         
             
                    unless unknown_routines.empty?
         
     | 
| 
       40 
53 
     | 
    
         
             
                      Origen.log.error "Profile #{id}: unknown routines: #{unknown_routines}"
         
     | 
| 
         @@ -28,7 +28,7 @@ module OrigenTesters 
     | 
|
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
                  # Returns a new IGXLBasedTester instance, normally there would only ever be one of these
         
     | 
| 
       30 
30 
     | 
    
         
             
                  # assigned to the global variable such as $tester by your target.
         
     | 
| 
       31 
     | 
    
         
            -
                  def initialize
         
     | 
| 
      
 31 
     | 
    
         
            +
                  def initialize(options = {})
         
     | 
| 
       32 
32 
     | 
    
         
             
                    @unique_counter = 0
         
     | 
| 
       33 
33 
     | 
    
         
             
                    @counter_lsb_bits = 0
         
     | 
| 
       34 
34 
     | 
    
         
             
                    @counter_msb_bits = 0
         
     | 
| 
         @@ -4,6 +4,10 @@ module OrigenTesters 
     | 
|
| 
       4 
4 
     | 
    
         
             
                class UltraFLEX < Base
         
     | 
| 
       5 
5 
     | 
    
         
             
                  autoload :Generator,   'origen_testers/igxl_based_tester/ultraflex/generator.rb'
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
      
 7 
     | 
    
         
            +
                  # Read or update the digital instrument
         
     | 
| 
      
 8 
     | 
    
         
            +
                  #  Ex: tester.digital_instrument = 'hsdmq'
         
     | 
| 
      
 9 
     | 
    
         
            +
                  attr_accessor :digital_instrument
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       7 
11 
     | 
    
         
             
                  # Tester model to generate .atp patterns for the Teradyne UltraFLEX
         
     | 
| 
       8 
12 
     | 
    
         
             
                  #
         
     | 
| 
       9 
13 
     | 
    
         
             
                  # == Basic Usage
         
     | 
| 
         @@ -18,8 +22,9 @@ module OrigenTesters 
     | 
|
| 
       18 
22 
     | 
    
         | 
| 
       19 
23 
     | 
    
         
             
                  # Returns a new UltraFLEX instance, normally there would only ever be one of these
         
     | 
| 
       20 
24 
     | 
    
         
             
                  # assigned to the global variable such as $tester by your target.
         
     | 
| 
       21 
     | 
    
         
            -
                  def initialize
         
     | 
| 
       22 
     | 
    
         
            -
                    super
         
     | 
| 
      
 25 
     | 
    
         
            +
                  def initialize(options = {})
         
     | 
| 
      
 26 
     | 
    
         
            +
                    super(options)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    options = { digital_instrument: 'hsdm' }.merge(options)
         
     | 
| 
       23 
28 
     | 
    
         
             
                    @pipeline_depth = 255  # for single mode
         
     | 
| 
       24 
29 
     | 
    
         
             
                    @software_version = '8.10.10'
         
     | 
| 
       25 
30 
     | 
    
         
             
                    @name = 'ultraflex'
         
     | 
| 
         @@ -36,7 +41,7 @@ module OrigenTesters 
     | 
|
| 
       36 
41 
     | 
    
         
             
                    # this handled in pattern_header below
         
     | 
| 
       37 
42 
     | 
    
         
             
                    @min_pattern_vectors = (@opcode_mode == :single) ? 64 : 128
         
     | 
| 
       38 
43 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
                    @digital_instrument =  
     | 
| 
      
 44 
     | 
    
         
            +
                    @digital_instrument = options[:digital_instrument] # 'hsdm' for HSD1000 and UP800, ok with UP1600 though
         
     | 
| 
       40 
45 
     | 
    
         | 
| 
       41 
46 
     | 
    
         
             
                    @capture_state = 'V'            # STV requires valid 'V' expect data
         
     | 
| 
       42 
47 
     | 
    
         | 
| 
         @@ -99,8 +99,10 @@ module OrigenTesters 
     | 
|
| 
       99 
99 
     | 
    
         
             
                    @min_repeat_loop = 33
         
     | 
| 
       100 
100 
     | 
    
         
             
                    if smt8?
         
     | 
| 
       101 
101 
     | 
    
         
             
                      @pat_extension = 'pat'
         
     | 
| 
      
 102 
     | 
    
         
            +
                      @program_comment_char = ['println', '//']
         
     | 
| 
       102 
103 
     | 
    
         
             
                    else
         
     | 
| 
       103 
104 
     | 
    
         
             
                      @pat_extension = 'avc'
         
     | 
| 
      
 105 
     | 
    
         
            +
                      @program_comment_char = ['print_dl', '//']
         
     | 
| 
       104 
106 
     | 
    
         
             
                    end
         
     | 
| 
       105 
107 
     | 
    
         
             
                    @compress = true
         
     | 
| 
       106 
108 
     | 
    
         
             
                    # @support_repeat_previous = true
         
     | 
| 
         @@ -465,7 +467,6 @@ module OrigenTesters 
     | 
|
| 
       465 
467 
     | 
    
         
             
                    # Ensure the match pins are don't care by default
         
     | 
| 
       466 
468 
     | 
    
         
             
                    pin.dont_care
         
     | 
| 
       467 
469 
     | 
    
         
             
                    options[:pin2].dont_care if options[:pin2]
         
     | 
| 
       468 
     | 
    
         
            -
             
     | 
| 
       469 
470 
     | 
    
         
             
                    if !options[:pin2]
         
     | 
| 
       470 
471 
     | 
    
         
             
                      cc "for the #{pin.name.upcase} pin to go #{state.to_s.upcase}"
         
     | 
| 
       471 
472 
     | 
    
         
             
                      match_block(timeout_in_cycles, options) do |match_or_conditions, fail_conditions|
         
     | 
    
        data/program/prb1.rb
    CHANGED
    
    | 
         @@ -8,6 +8,10 @@ Flow.create interface: 'OrigenTesters::Test::Interface', flow_description: 'Prob 
     | 
|
| 
       8 
8 
     | 
    
         
             
                self.resources_filename = 'prb1'
         
     | 
| 
       9 
9 
     | 
    
         
             
              end
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
      
 11 
     | 
    
         
            +
              # Extra log below not in approved/ folder to show that comments are 
         
     | 
| 
      
 12 
     | 
    
         
            +
              # being skipped correctly during the difference checks
         
     | 
| 
      
 13 
     | 
    
         
            +
              log 'PRB1 Test Flow Version 00001 - do not copy me to approved!'
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       11 
15 
     | 
    
         
             
              import 'components/prb1_main'
         
     | 
| 
       12 
16 
     | 
    
         | 
| 
       13 
17 
     | 
    
         
             
              import 'test' # import top-level test.rb directly, note that Flow.create options of sub-flow will be ignored!
         
     | 
| 
         @@ -27,4 +27,16 @@ for a given pin. 
     | 
|
| 
       27 
27 
     | 
    
         
             
              # Overlay operations can happen after this point
         
     | 
| 
       28 
28 
     | 
    
         
             
            ~~~
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
      
 30 
     | 
    
         
            +
            ### Digital Instrument
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            The default digital instrument used is hsdm. This can be changed with either a create option or through an accessor:
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            ~~~ruby
         
     | 
| 
      
 35 
     | 
    
         
            +
              # Instantiate with a different digital instrument
         
     | 
| 
      
 36 
     | 
    
         
            +
              OrigenTesters::UltraFLEX.new(digital_instrument: 'hsdmq')
         
     | 
| 
      
 37 
     | 
    
         
            +
              
         
     | 
| 
      
 38 
     | 
    
         
            +
              # set the digital instrument after instantiation
         
     | 
| 
      
 39 
     | 
    
         
            +
              tester.digital_instrument = 'hsdmq'
         
     | 
| 
      
 40 
     | 
    
         
            +
            ~~~
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
       30 
42 
     | 
    
         
             
            % end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: origen_testers
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.49. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.49.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Stephen McGinty
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-02-25 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: origen
         
     | 
| 
         @@ -516,6 +516,7 @@ files: 
     | 
|
| 
       516 
516 
     | 
    
         
             
            - pattern/tester_overlay.rb
         
     | 
| 
       517 
517 
     | 
    
         
             
            - pattern/tester_overlay_no_start.rb
         
     | 
| 
       518 
518 
     | 
    
         
             
            - pattern/tester_store.rb
         
     | 
| 
      
 519 
     | 
    
         
            +
            - pattern/uflex_digital_instrument.rb
         
     | 
| 
       519 
520 
     | 
    
         
             
            - program/_additional_erase.rb
         
     | 
| 
       520 
521 
     | 
    
         
             
            - program/_efa_resources.rb
         
     | 
| 
       521 
522 
     | 
    
         
             
            - program/_erase.rb
         
     |