origen_testers 0.45.2 → 0.47.0
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 +2 -2
 - data/lib/origen_testers/atp/flow.rb +4 -0
 - data/lib/origen_testers/igxl_based_tester/base.rb +14 -0
 - data/lib/origen_testers/smartest_based_tester/base/flow.rb +1 -1
 - data/lib/origen_testers/smartest_based_tester/base/limits_file.rb +7 -3
 - data/lib/origen_testers/smartest_based_tester/base/pattern_master.rb +2 -2
 - data/lib/origen_testers/smartest_based_tester/base/test_method.rb +7 -1
 - data/lib/origen_testers/smartest_based_tester/base/test_methods/base_tml.rb +18 -7
 - data/lib/origen_testers/smartest_based_tester/base/test_methods/dc_tml.rb +1 -1
 - data/lib/origen_testers/smartest_based_tester/base/test_suite.rb +1 -0
 - data/lib/origen_testers/smartest_based_tester/base/variables_file.rb +16 -12
 - data/lib/origen_testers/smartest_based_tester/v93k/templates/vars.tf.erb +10 -6
 - data/lib/origen_testers/smartest_based_tester/v93k/test_suite.rb +0 -1
 - data/pattern/tester_overlay_no_start.rb +41 -0
 - data/program/prb1.rb +1 -1
 - data/templates/origen_guides/pattern/ultraflex.md.erb +20 -0
 - metadata +5 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: df7294cf891812cfb78d98b161891a459391abb07841eb66d14929185385df22
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 2d0bfcc2c6862a2f10abc60136dbba9099f6f1ae0deeecb099b4700d34d95121
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: c42eacdbe39b6eb35eddf8dcbeb08e49eab49bca4425c20f2c0474c8b5f977fdbeec9ed5b799001f7b8b7f5e6e87fc3293e3ac9c0ecc7012bc8eea8b7d86183b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f17d9f4f1c7bdb90e58a0f2e6791e406bbf5b80b8ec8b5986a0e2e49e3e5d4145167c81a39773e560fbb8c8392a5b2dbbcf88efc52940e77301c6b4341a88a3a
         
     | 
    
        data/config/version.rb
    CHANGED
    
    
| 
         @@ -408,6 +408,10 @@ module OrigenTesters::ATP 
     | 
|
| 
       408 
408 
     | 
    
         
             
                        children << n(:meta, attrs)
         
     | 
| 
       409 
409 
     | 
    
         
             
                      end
         
     | 
| 
       410 
410 
     | 
    
         | 
| 
      
 411 
     | 
    
         
            +
                      if options[:test_text]
         
     | 
| 
      
 412 
     | 
    
         
            +
                        children << n(:test_text, [options[:test_text]])
         
     | 
| 
      
 413 
     | 
    
         
            +
                      end
         
     | 
| 
      
 414 
     | 
    
         
            +
             
     | 
| 
       411 
415 
     | 
    
         
             
                      if subs = options[:sub_test] || options[:sub_tests]
         
     | 
| 
       412 
416 
     | 
    
         
             
                        subs = [subs] unless subs.is_a?(Array)
         
     | 
| 
       413 
417 
     | 
    
         
             
                        subs.each do |s|
         
     | 
| 
         @@ -1041,6 +1041,20 @@ module OrigenTesters 
     | 
|
| 
       1041 
1041 
     | 
    
         
             
                    # stage = sub_name
         
     | 
| 
       1042 
1042 
     | 
    
         
             
                  end # subroutine_overlay
         
     | 
| 
       1043 
1043 
     | 
    
         | 
| 
      
 1044 
     | 
    
         
            +
                  # Disable the automatic addition of the digsrc start command at the beginning of the pattern
         
     | 
| 
      
 1045 
     | 
    
         
            +
                  #
         
     | 
| 
      
 1046 
     | 
    
         
            +
                  # @example
         
     | 
| 
      
 1047 
     | 
    
         
            +
                  #   tester.digsrc_skip_start :pin_or_group_name
         
     | 
| 
      
 1048 
     | 
    
         
            +
                  #
         
     | 
| 
      
 1049 
     | 
    
         
            +
                  def digsrc_skip_start(pin_or_group)
         
     | 
| 
      
 1050 
     | 
    
         
            +
                    pin_or_group = dut.pin(pin_or_group).name
         
     | 
| 
      
 1051 
     | 
    
         
            +
                    if @overlay_history[pin_or_group].nil?
         
     | 
| 
      
 1052 
     | 
    
         
            +
                      @overlay_history[pin_or_group] = { count: 0, is_digsrc: true, start_applied: true }
         
     | 
| 
      
 1053 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1054 
     | 
    
         
            +
                      Origen.log.warn 'tester.digsrc_skip_start must be called before any overlay actions on the pin'
         
     | 
| 
      
 1055 
     | 
    
         
            +
                    end
         
     | 
| 
      
 1056 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1057 
     | 
    
         
            +
             
     | 
| 
       1044 
1058 
     | 
    
         
             
                  # Perform digsrc overlay (called by tester.cycle)
         
     | 
| 
       1045 
1059 
     | 
    
         
             
                  def digsrc_overlay(options = {})
         
     | 
| 
       1046 
1060 
     | 
    
         
             
                    options[:overlay] = { change_data: true }.merge(options[:overlay])
         
     | 
| 
         @@ -18,7 +18,7 @@ module OrigenTesters 
     | 
|
| 
       18 
18 
     | 
    
         
             
                    # Returns an array containing all runtime variables which get set by the flow
         
     | 
| 
       19 
19 
     | 
    
         
             
                    attr_reader :set_runtime_variables
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
                    attr_accessor :add_flow_enable, :flow_name, :flow_bypass, :flow_description
         
     | 
| 
      
 21 
     | 
    
         
            +
                    attr_accessor :add_flow_enable, :flow_name, :flow_bypass, :flow_description, :subdirectory
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
                    def self.generate_flag_name(flag)
         
     | 
| 
       24 
24 
     | 
    
         
             
                      case flag[0]
         
     | 
| 
         @@ -119,6 +119,7 @@ module OrigenTesters 
     | 
|
| 
       119 
119 
     | 
    
         
             
                      o[:test_name] = extract_test_name(node, o)
         
     | 
| 
       120 
120 
     | 
    
         
             
                      o[:test_number] = extract_test_number(node, o)
         
     | 
| 
       121 
121 
     | 
    
         
             
                      o[:limits] = extract_limits(node, o)
         
     | 
| 
      
 122 
     | 
    
         
            +
                      o[:test_text] = node.find(:test_text).try(:value)
         
     | 
| 
       122 
123 
     | 
    
         
             
                      if on_fail = node.find(:on_fail)
         
     | 
| 
       123 
124 
     | 
    
         
             
                        if set_result = on_fail.find(:set_result)
         
     | 
| 
       124 
125 
     | 
    
         
             
                          if bin = set_result.find(:bin)
         
     | 
| 
         @@ -252,9 +253,12 @@ module OrigenTesters 
     | 
|
| 
       252 
253 
     | 
    
         
             
                        # "Test Number"
         
     | 
| 
       253 
254 
     | 
    
         
             
                        l << f(options[:test_number])
         
     | 
| 
       254 
255 
     | 
    
         
             
                        # "Test Text"
         
     | 
| 
       255 
     | 
    
         
            -
                         
     | 
| 
       256 
     | 
    
         
            -
             
     | 
| 
       257 
     | 
    
         
            -
                         
     | 
| 
      
 256 
     | 
    
         
            +
                        if options[:test_text]
         
     | 
| 
      
 257 
     | 
    
         
            +
                          l << f(options[:test_text])
         
     | 
| 
      
 258 
     | 
    
         
            +
                        else
         
     | 
| 
      
 259 
     | 
    
         
            +
                          names = ["#{options[:suite_name]}", "#{options[:test_name]}"]
         
     | 
| 
      
 260 
     | 
    
         
            +
                          l << f(names.uniq.join('.'))
         
     | 
| 
      
 261 
     | 
    
         
            +
                        end
         
     | 
| 
       258 
262 
     | 
    
         
             
                        if test_modes.empty?
         
     | 
| 
       259 
263 
     | 
    
         
             
                          # "Low Limit"
         
     | 
| 
       260 
264 
     | 
    
         
             
                          l << f((options[:limits][nil] || {})[:lsl])
         
     | 
| 
         @@ -6,7 +6,7 @@ module OrigenTesters 
     | 
|
| 
       6 
6 
     | 
    
         
             
                    include OrigenTesters::Generator
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
                    attr_reader :flow, :paths
         
     | 
| 
       9 
     | 
    
         
            -
                    attr_accessor :filename, :id
         
     | 
| 
      
 9 
     | 
    
         
            +
                    attr_accessor :filename, :id, :subdirectory
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                    def initialize(flow = nil)
         
     | 
| 
       12 
12 
     | 
    
         
             
                      @flow = flow
         
     | 
| 
         @@ -18,7 +18,7 @@ module OrigenTesters 
     | 
|
| 
       18 
18 
     | 
    
         
             
                    end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
                    def subdirectory
         
     | 
| 
       21 
     | 
    
         
            -
                      'vectors'
         
     | 
| 
      
 21 
     | 
    
         
            +
                      @subdirectory ||= 'vectors'
         
     | 
| 
       22 
22 
     | 
    
         
             
                    end
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                    def paths
         
     | 
| 
         @@ -85,7 +85,13 @@ module OrigenTesters 
     | 
|
| 
       85 
85 
     | 
    
         
             
                      end
         
     | 
| 
       86 
86 
     | 
    
         
             
                      # Finally set any initial values that have been supplied
         
     | 
| 
       87 
87 
     | 
    
         
             
                      options[:attrs].each do |k, v|
         
     | 
| 
       88 
     | 
    
         
            -
                         
     | 
| 
      
 88 
     | 
    
         
            +
                        accessor = "#{k}="
         
     | 
| 
      
 89 
     | 
    
         
            +
                        if respond_to?(accessor)
         
     | 
| 
      
 90 
     | 
    
         
            +
                          send(accessor, v)
         
     | 
| 
      
 91 
     | 
    
         
            +
                        else
         
     | 
| 
      
 92 
     | 
    
         
            +
                          accessor = "#{k.to_s.underscore}="
         
     | 
| 
      
 93 
     | 
    
         
            +
                          send(accessor, v) if respond_to?(accessor)
         
     | 
| 
      
 94 
     | 
    
         
            +
                        end
         
     | 
| 
       89 
95 
     | 
    
         
             
                      end
         
     | 
| 
       90 
96 
     | 
    
         
             
                    end
         
     | 
| 
       91 
97 
     | 
    
         | 
| 
         @@ -13,14 +13,14 @@ module OrigenTesters 
     | 
|
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                      def method_missing(method, *args, &block)
         
     | 
| 
       15 
15 
     | 
    
         
             
                        if definitions[method]
         
     | 
| 
       16 
     | 
    
         
            -
                           
     | 
| 
       17 
     | 
    
         
            -
                                                       attrs:   (args.first || {}),
         
     | 
| 
       18 
     | 
    
         
            -
                                                       type:    method,
         
     | 
| 
       19 
     | 
    
         
            -
                                                       library: self
         
     | 
| 
       20 
     | 
    
         
            -
                          test_methods.add(m)
         
     | 
| 
       21 
     | 
    
         
            -
                          m
         
     | 
| 
      
 16 
     | 
    
         
            +
                          instantiate_test_method(method, args)
         
     | 
| 
       22 
17 
     | 
    
         
             
                        else
         
     | 
| 
       23 
     | 
    
         
            -
                           
     | 
| 
      
 18 
     | 
    
         
            +
                          method = method.to_s.underscore.to_sym
         
     | 
| 
      
 19 
     | 
    
         
            +
                          if definitions[method]
         
     | 
| 
      
 20 
     | 
    
         
            +
                            instantiate_test_method(method, args)
         
     | 
| 
      
 21 
     | 
    
         
            +
                          else
         
     | 
| 
      
 22 
     | 
    
         
            +
                            super
         
     | 
| 
      
 23 
     | 
    
         
            +
                          end
         
     | 
| 
       24 
24 
     | 
    
         
             
                        end
         
     | 
| 
       25 
25 
     | 
    
         
             
                      end
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
         @@ -31,6 +31,17 @@ module OrigenTesters 
     | 
|
| 
       31 
31 
     | 
    
         
             
                      def definitions
         
     | 
| 
       32 
32 
     | 
    
         
             
                        @definitions || self.class::TEST_METHODS
         
     | 
| 
       33 
33 
     | 
    
         
             
                      end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                      private
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                      def instantiate_test_method(method, args)
         
     | 
| 
      
 38 
     | 
    
         
            +
                        m = platform::TestMethod.new methods: definitions[method].dup,
         
     | 
| 
      
 39 
     | 
    
         
            +
                                                     attrs:   (args.first || {}),
         
     | 
| 
      
 40 
     | 
    
         
            +
                                                     type:    method,
         
     | 
| 
      
 41 
     | 
    
         
            +
                                                     library: self
         
     | 
| 
      
 42 
     | 
    
         
            +
                        test_methods.add(m)
         
     | 
| 
      
 43 
     | 
    
         
            +
                        m
         
     | 
| 
      
 44 
     | 
    
         
            +
                      end
         
     | 
| 
       34 
45 
     | 
    
         
             
                    end
         
     | 
| 
       35 
46 
     | 
    
         
             
                  end
         
     | 
| 
       36 
47 
     | 
    
         
             
                end
         
     | 
| 
         @@ -9,7 +9,7 @@ module OrigenTesters 
     | 
|
| 
       9 
9 
     | 
    
         
             
                          test_current:          [:current, 10.uA],
         
     | 
| 
       10 
10 
     | 
    
         
             
                          settling_time:         [:time, 1.ms],
         
     | 
| 
       11 
11 
     | 
    
         
             
                          measurement_mode:      [:string, 'PPMUpar', %w(PPMUpar ProgLoad)],
         
     | 
| 
       12 
     | 
    
         
            -
                          polarity:              [:string, 'SPOL',  
     | 
| 
      
 12 
     | 
    
         
            +
                          polarity:              [:string, 'SPOL', %w(SPOL BPOL)],
         
     | 
| 
       13 
13 
     | 
    
         
             
                          precharge_to_zero_vol: [:string, 'ON', %w(ON OFF)],
         
     | 
| 
       14 
14 
     | 
    
         
             
                          test_name:             [:string, 'passVolt_mv'],
         
     | 
| 
       15 
15 
     | 
    
         
             
                          output:                [:string, 'None', %w(None ReportUI ShowFailOnly)]
         
     | 
| 
         @@ -6,13 +6,13 @@ module OrigenTesters 
     | 
|
| 
       6 
6 
     | 
    
         
             
                    include OrigenTesters::Generator
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
                    attr_reader :variables
         
     | 
| 
       9 
     | 
    
         
            -
                    attr_accessor :filename, :id
         
     | 
| 
      
 9 
     | 
    
         
            +
                    attr_accessor :filename, :id, :subdirectory
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                    def initialize(options = {})
         
     | 
| 
       12 
12 
     | 
    
         
             
                    end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
                    def subdirectory
         
     | 
| 
       15 
     | 
    
         
            -
                      'testflow/mfh.testflow.setup'
         
     | 
| 
      
 15 
     | 
    
         
            +
                      @subdirectory ||= 'testflow/mfh.testflow.setup'
         
     | 
| 
       16 
16 
     | 
    
         
             
                    end
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
                    def add_variables(vars)
         
     | 
| 
         @@ -35,21 +35,25 @@ module OrigenTesters 
     | 
|
| 
       35 
35 
     | 
    
         | 
| 
       36 
36 
     | 
    
         
             
                    # What SMT7 calls a flag
         
     | 
| 
       37 
37 
     | 
    
         
             
                    def flags
         
     | 
| 
       38 
     | 
    
         
            -
                       
     | 
| 
       39 
     | 
    
         
            -
                         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
      
 38 
     | 
    
         
            +
                      if variables
         
     | 
| 
      
 39 
     | 
    
         
            +
                        (variables[:all][:referenced_enables] + variables[:all][:set_enables]).uniq.sort do |x, y|
         
     | 
| 
      
 40 
     | 
    
         
            +
                          x = x[0] if x.is_a?(Array)
         
     | 
| 
      
 41 
     | 
    
         
            +
                          y = y[0] if y.is_a?(Array)
         
     | 
| 
      
 42 
     | 
    
         
            +
                          # Need to use strings for the comparison as some flags can be a string and some a symbol
         
     | 
| 
      
 43 
     | 
    
         
            +
                          x.to_s <=> y.to_s
         
     | 
| 
      
 44 
     | 
    
         
            +
                        end
         
     | 
| 
       43 
45 
     | 
    
         
             
                      end
         
     | 
| 
       44 
46 
     | 
    
         
             
                    end
         
     | 
| 
       45 
47 
     | 
    
         | 
| 
       46 
48 
     | 
    
         
             
                    # What SMT7 calls a declaration
         
     | 
| 
       47 
49 
     | 
    
         
             
                    def declarations
         
     | 
| 
       48 
     | 
    
         
            -
                       
     | 
| 
       49 
     | 
    
         
            -
                         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
      
 50 
     | 
    
         
            +
                      if variables
         
     | 
| 
      
 51 
     | 
    
         
            +
                        (variables[:all][:jobs] + variables[:all][:referenced_flags] + variables[:all][:set_flags]).uniq.sort do |x, y|
         
     | 
| 
      
 52 
     | 
    
         
            +
                          x = x[0] if x.is_a?(Array)
         
     | 
| 
      
 53 
     | 
    
         
            +
                          y = y[0] if y.is_a?(Array)
         
     | 
| 
      
 54 
     | 
    
         
            +
                          # Need to use strings for the comparison as some declarations can be a string and some a symbol
         
     | 
| 
      
 55 
     | 
    
         
            +
                          x.to_s <=> y.to_s
         
     | 
| 
      
 56 
     | 
    
         
            +
                        end
         
     | 
| 
       53 
57 
     | 
    
         
             
                      end
         
     | 
| 
       54 
58 
     | 
    
         
             
                    end
         
     | 
| 
       55 
59 
     | 
    
         | 
| 
         @@ -3,11 +3,13 @@ language_revision = 1; 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            declarations
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            % declarations 
     | 
| 
       7 
     | 
    
         
            -
            %    
     | 
| 
      
 6 
     | 
    
         
            +
            % if declarations
         
     | 
| 
      
 7 
     | 
    
         
            +
            %   declarations.each do |var|
         
     | 
| 
      
 8 
     | 
    
         
            +
            %     if var.is_a?(Array)
         
     | 
| 
       8 
9 
     | 
    
         
             
            @<%= var[0].to_s %> = <%= var[1].is_a?(String) || var[1].is_a?(Symbol) ? "\"#{var[1]}\"" : var[1] %>;
         
     | 
| 
       9 
     | 
    
         
            -
            % 
     | 
| 
      
 10 
     | 
    
         
            +
            %     else
         
     | 
| 
       10 
11 
     | 
    
         
             
            @<%= var.to_s %> = 0;
         
     | 
| 
      
 12 
     | 
    
         
            +
            %     end
         
     | 
| 
       11 
13 
     | 
    
         
             
            %   end
         
     | 
| 
       12 
14 
     | 
    
         
             
            % end
         
     | 
| 
       13 
15 
     | 
    
         | 
| 
         @@ -15,11 +17,13 @@ end 
     | 
|
| 
       15 
17 
     | 
    
         
             
            -----------------------------------------------------------------
         
     | 
| 
       16 
18 
     | 
    
         
             
            flags
         
     | 
| 
       17 
19 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            % flags 
     | 
| 
       19 
     | 
    
         
            -
            %    
     | 
| 
      
 20 
     | 
    
         
            +
            % if flags
         
     | 
| 
      
 21 
     | 
    
         
            +
            %   flags.each do |var|
         
     | 
| 
      
 22 
     | 
    
         
            +
            %     if var.is_a?(Array)
         
     | 
| 
       20 
23 
     | 
    
         
             
            user <%= var[0].to_s %> = <%= var[1].is_a?(String) || var[1].is_a?(Symbol) ? "\"#{var[1]}\"" : var[1] %>;
         
     | 
| 
       21 
     | 
    
         
            -
            % 
     | 
| 
      
 24 
     | 
    
         
            +
            %     else
         
     | 
| 
       22 
25 
     | 
    
         
             
            user <%= var.to_s %> = 0;
         
     | 
| 
      
 26 
     | 
    
         
            +
            %     end
         
     | 
| 
       23 
27 
     | 
    
         
             
            %   end
         
     | 
| 
       24 
28 
     | 
    
         
             
            % end
         
     | 
| 
       25 
29 
     | 
    
         | 
| 
         @@ -115,7 +115,6 @@ module OrigenTesters 
     | 
|
| 
       115 
115 
     | 
    
         
             
                      l << "  site_control = #{wrap_if_string(site_control)};" if site_control
         
     | 
| 
       116 
116 
     | 
    
         
             
                      l << "  site_match = #{wrap_if_string(site_match)};" if site_match
         
     | 
| 
       117 
117 
     | 
    
         
             
                      l << "  test_level = #{test_level};" if test_level
         
     | 
| 
       118 
     | 
    
         
            -
                      l << "  force_serial = #{wrap_if_string(force_serial)};" if force_serial
         
     | 
| 
       119 
118 
     | 
    
         
             
                      l
         
     | 
| 
       120 
119 
     | 
    
         
             
                    end
         
     | 
| 
       121 
120 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -0,0 +1,41 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Pattern.create(name: "test_overlay_no_start") do
         
     | 
| 
      
 2 
     | 
    
         
            +
              tester.overlay_style = :digsrc
         
     | 
| 
      
 3 
     | 
    
         
            +
              # increase coverage by changing tdi dig src settings
         
     | 
| 
      
 4 
     | 
    
         
            +
              tester.source_memory :digsrc do |mem| 
         
     | 
| 
      
 5 
     | 
    
         
            +
                mem.pin :tdi, size: 32
         
     | 
| 
      
 6 
     | 
    
         
            +
              end
         
     | 
| 
      
 7 
     | 
    
         
            +
              cc 'should get a repeat count added to this vector for digsrc start minimum distance'
         
     | 
| 
      
 8 
     | 
    
         
            +
              tester.cycle
         
     | 
| 
      
 9 
     | 
    
         
            +
              
         
     | 
| 
      
 10 
     | 
    
         
            +
              dut.pin(:tclk).drive(1)
         
     | 
| 
      
 11 
     | 
    
         
            +
              dut.pin(:tdi).drive(1)
         
     | 
| 
      
 12 
     | 
    
         
            +
              dut.pin(:tdo).assert(1)
         
     | 
| 
      
 13 
     | 
    
         
            +
              dut.pin(:tms).drive(1)
         
     | 
| 
      
 14 
     | 
    
         
            +
              
         
     | 
| 
      
 15 
     | 
    
         
            +
              cc 'should get a repeat 5 vector'
         
     | 
| 
      
 16 
     | 
    
         
            +
              tester.cycle repeat: 5
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              tester.digsrc_skip_start :tdi_a if tester.ultraflex?
         
     | 
| 
      
 19 
     | 
    
         
            +
              tester.digsrc_skip_start :pa if tester.ultraflex?
         
     | 
| 
      
 20 
     | 
    
         
            +
              
         
     | 
| 
      
 21 
     | 
    
         
            +
              cc 'should get a send microcode and 1 cycle with D'
         
     | 
| 
      
 22 
     | 
    
         
            +
              tester.cycle overlay: {overlay_str: 'dummy_str', pins: dut.pin(:tdi_a)}
         
     | 
| 
      
 23 
     | 
    
         
            +
              cc 'should get a cycle with D and no send'
         
     | 
| 
      
 24 
     | 
    
         
            +
              tester.cycle overlay: {overlay_str: 'dummy_str', pins: dut.pin(:tdi_a), change_data: false}
         
     | 
| 
      
 25 
     | 
    
         
            +
              cc 'regular cycle with no D or send'
         
     | 
| 
      
 26 
     | 
    
         
            +
              tester.cycle
         
     | 
| 
      
 27 
     | 
    
         
            +
              
         
     | 
| 
      
 28 
     | 
    
         
            +
              cc 'cycle with 001 on pa'
         
     | 
| 
      
 29 
     | 
    
         
            +
              dut.pin(:pa).drive!(1)
         
     | 
| 
      
 30 
     | 
    
         
            +
              cc 'send microcode followed by DDD on pa'
         
     | 
| 
      
 31 
     | 
    
         
            +
              dut.pin(:pa).drive(0)
         
     | 
| 
      
 32 
     | 
    
         
            +
              tester.cycle overlay: {overlay_str: "dummy_str", pins: dut.pin(:pa)}
         
     | 
| 
      
 33 
     | 
    
         
            +
              cc 'cycle with 001 on pa'
         
     | 
| 
      
 34 
     | 
    
         
            +
              dut.pin(:pa).drive!(1)
         
     | 
| 
      
 35 
     | 
    
         
            +
              cc 'send microcode, DDD on pa with repeat 5 (will send 5 sets of data)'
         
     | 
| 
      
 36 
     | 
    
         
            +
              dut.pin(:pa).drive(0)
         
     | 
| 
      
 37 
     | 
    
         
            +
              tester.cycle repeat: 5, overlay: {overlay_str: "dummy_str", pins: dut.pin(:pa)}
         
     | 
| 
      
 38 
     | 
    
         
            +
              cc 'cycle with 001 on pa'
         
     | 
| 
      
 39 
     | 
    
         
            +
              dut.pin(:pa).drive!(1)
         
     | 
| 
      
 40 
     | 
    
         
            +
              
         
     | 
| 
      
 41 
     | 
    
         
            +
            end
         
     | 
    
        data/program/prb1.rb
    CHANGED
    
    | 
         @@ -13,7 +13,7 @@ Flow.create interface: 'OrigenTesters::Test::Interface', flow_description: 'Prob 
     | 
|
| 
       13 
13 
     | 
    
         
             
              import 'test' # import top-level test.rb directly, note that Flow.create options of sub-flow will be ignored!
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
              # Test that a reference to a deeply nested test works (mainly for SMT8)
         
     | 
| 
       16 
     | 
    
         
            -
              test :on_deep_1, if_failed: :deep_test
         
     | 
| 
      
 16 
     | 
    
         
            +
              test :on_deep_1, if_failed: :deep_test, test_text: "some_custom_text"
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
              pass 1, description: "Good die!", softbin: 1
         
     | 
| 
       19 
19 
     | 
    
         
             
            end
         
     | 
| 
         @@ -7,4 +7,24 @@ automatically to any supported platform. 
     | 
|
| 
       7 
7 
     | 
    
         
             
            There are no significant APIs in this category currently, therefore refer to the
         
     | 
| 
       8 
8 
     | 
    
         
             
            [Common Pattern API](<%= path "guides/pattern/common" %>) which can fully target the UltraFLEX.
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
      
 10 
     | 
    
         
            +
            ### DigSrc
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            UltraFlex supports <code>:digsrc</code> as a <code>tester.overlay_style</code> set like this:
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            ~~~ruby
         
     | 
| 
      
 15 
     | 
    
         
            +
              tester.overlay_style = :digsrc
         
     | 
| 
      
 16 
     | 
    
         
            +
            ~~~
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            By default Origen will automatically place the digsrc start opcode at the beginning of the resulting pattern
         
     | 
| 
      
 19 
     | 
    
         
            +
            when <code>:digsrc</code> overlay is used. In some cases (like when the pattern is used in a pattern set that has already started
         
     | 
| 
      
 20 
     | 
    
         
            +
            the instrument in a previous pattern, or possibly in svm_patterns) this behavior is undesirable.
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            The insertion of this start opcode can be disabled by placing the following code **before** any overlay operations
         
     | 
| 
      
 23 
     | 
    
         
            +
            for a given pin.
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            ~~~ruby
         
     | 
| 
      
 26 
     | 
    
         
            +
              tester.digsrc_skip_start :pin_or_group_name if tester.ultraflex?
         
     | 
| 
      
 27 
     | 
    
         
            +
              # Overlay operations can happen after this point
         
     | 
| 
      
 28 
     | 
    
         
            +
            ~~~
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       10 
30 
     | 
    
         
             
            % 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. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.47.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Stephen McGinty
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2020- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-08-05 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: origen
         
     | 
| 
         @@ -466,6 +466,7 @@ files: 
     | 
|
| 
       466 
466 
     | 
    
         
             
            - pattern/single_overlay_store.rb
         
     | 
| 
       467 
467 
     | 
    
         
             
            - pattern/subroutines.rb
         
     | 
| 
       468 
468 
     | 
    
         
             
            - pattern/tester_overlay.rb
         
     | 
| 
      
 469 
     | 
    
         
            +
            - pattern/tester_overlay_no_start.rb
         
     | 
| 
       469 
470 
     | 
    
         
             
            - pattern/tester_store.rb
         
     | 
| 
       470 
471 
     | 
    
         
             
            - program/_additional_erase.rb
         
     | 
| 
       471 
472 
     | 
    
         
             
            - program/_efa_resources.rb
         
     | 
| 
         @@ -547,7 +548,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       547 
548 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       548 
549 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       549 
550 
     | 
    
         
             
            requirements: []
         
     | 
| 
       550 
     | 
    
         
            -
             
     | 
| 
      
 551 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 552 
     | 
    
         
            +
            rubygems_version: 2.7.6
         
     | 
| 
       551 
553 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       552 
554 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       553 
555 
     | 
    
         
             
            summary: This plugin provides Origen tester models to drive ATE type testers like
         
     |