origen_testers 0.7.4 → 0.7.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 583a52b3c5621f1528fe2900c6da91b6ce915ada
4
- data.tar.gz: acc663a7769af920033b4c2cdb6a300072a5ca1a
3
+ metadata.gz: edfdf15d6a4c296c9ffc64a07f73c7acbf2edba3
4
+ data.tar.gz: 4060a9cd664237473668d98386d1d69734dac305
5
5
  SHA512:
6
- metadata.gz: 4f93d14161f3054614edcc9fbfdfc1c49cc213c727b1c2d2c8686a712377aa56df1b83372d5532c7c07d06d40fddcdba1dafadbe2c02ac92560fb2742332db6f
7
- data.tar.gz: bc41fb4b51be3abc32be3e2023bf8b2619688c7f97741ba510e7ac2b6f697ee559e6f0e56df33e03d79b8022f85cf89d5ef4a50a98cb1636e1ad3c2891bf22c3
6
+ metadata.gz: 19b34204d49775685b6f1fac2973f16ba95f11d0cb8124b4258bcb42dbe44df00ce3dda89e63585a9618bb99deecb381b42a3c89dbe230afb7d94854609051c1
7
+ data.tar.gz: d310bccf94ab3bebe98bc851540c9be2e2841257461d03b7ed0fd7fa6dcedcd1c0688cc85975fd640335aa4c3478c8cc0cd33e75e03dd391a8d8413947542f11
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module OrigenTesters
2
2
  MAJOR = 0
3
3
  MINOR = 7
4
- BUGFIX = 4
4
+ BUGFIX = 5
5
5
  DEV = nil
6
6
 
7
7
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
@@ -107,6 +107,10 @@ module OrigenTesters
107
107
  new(name, :apmu_powersupply, attrs)
108
108
  end
109
109
 
110
+ def self.new_powersupply(name, attrs = {})
111
+ new(name, :powersupply, attrs)
112
+ end
113
+
110
114
  def self.new_mto_memory(name, attrs = {})
111
115
  new(name, :mto_memory, attrs)
112
116
  end
@@ -225,6 +229,23 @@ module OrigenTesters
225
229
  end
226
230
  end
227
231
 
232
+ elsif @type == :powersupply
233
+ if r == :smart
234
+ self.irange = 6
235
+ elsif r == :auto
236
+ self.irange = 5
237
+ else
238
+ self.irange = case
239
+ when r > 0.25 then 4 # between 250mA - 1A
240
+ when r > 0.1 then 7 # between 100mA - 250mA
241
+ when r > 0.01 then 0 # between 10mA - 100mA
242
+ when r > 0.0005 then 1 # between 500ua - 10mA
243
+ when r > 0.00005 then 2 # between 50ua - 500u
244
+ when r > 0.000005 then 3 # between 5u - 50u
245
+ else 8
246
+ end
247
+ end
248
+
228
249
  else # :pin_pmu
229
250
  if r == :smart
230
251
  self.irange = 5
@@ -158,6 +158,11 @@ module OrigenTesters
158
158
  end
159
159
  alias_method :board_pmu, :bpmu
160
160
 
161
+ def powersupply(name, options = {})
162
+ add(name, :powersupply, options)
163
+ end
164
+ alias_method :power_supply, :powersupply
165
+
161
166
  def ppmu(name, options = {})
162
167
  add(name, :pin_pmu, options)
163
168
  end
@@ -272,6 +272,7 @@ module OrigenTesters
272
272
  post_pat_f: :arg5,
273
273
  end_func: :arg6,
274
274
  end_of_body_f: :arg6,
275
+ pattern: :arg7,
275
276
  hold_state_pat: :arg7,
276
277
  holdstate_pat: :arg7,
277
278
  wait_flags: :arg8,
@@ -334,6 +335,88 @@ module OrigenTesters
334
335
  serialize_meas_func_args: :arg45,
335
336
  serialize_meas_f_args: :arg45
336
337
  },
338
+
339
+ powersupply: {
340
+ precond_pat: :arg0,
341
+ pre_cond_pat: :arg0,
342
+ start_func: :arg1,
343
+ start_of_body_f: :arg1,
344
+ pre_pat_func: :arg2,
345
+ pre_pat_f: :arg2,
346
+ pre_test_func: :arg3,
347
+ pre_test_f: :arg3,
348
+ post_test_func: :arg4,
349
+ post_test_f: :arg4,
350
+ post_pat_func: :arg5,
351
+ post_pat_f: :arg5,
352
+ end_func: :arg6,
353
+ end_of_body_f: :arg6,
354
+ pattern: :arg7,
355
+ hold_state_pat: :arg7,
356
+ holdstate_pat: :arg7,
357
+ wait_flags: :arg8,
358
+ wait_time_out: :arg9,
359
+ start_lo: :arg10,
360
+ start_init_lo: :arg10,
361
+ init_lo: :arg10,
362
+ start_hi: :arg11,
363
+ start_init_hi: :arg11,
364
+ init_hi: :arg11,
365
+ start_hiz: :arg12,
366
+ start_init_hiz: :arg12,
367
+ init_hiz: :arg12,
368
+ float_pins: :arg13,
369
+ irange: :arg14,
370
+ sampling_time: :arg15,
371
+ samples: :arg16,
372
+ settling_time: :arg17,
373
+ hi_lo_lim_valid: :arg18,
374
+ hi_lo_limit_valid: :arg18,
375
+ hi_limit: :arg19,
376
+ lo_limit: :arg20,
377
+ force_cond_1: :arg21,
378
+ force_cond: :arg21,
379
+ force_condition: :arg21,
380
+ force_condition_1: :arg21,
381
+ force_cond_2: :arg22,
382
+ force_condition_2: :arg22,
383
+ power_pins: :arg23,
384
+ pins: :arg23,
385
+ pin: :arg23,
386
+ force_source: :arg24,
387
+ pcp_start: :arg25,
388
+ pcp_stop: :arg26,
389
+ start_func_args: :arg27,
390
+ start_of_body_f_args: :arg27,
391
+ pre_pat_func_args: :arg28,
392
+ pre_pat_f_args: :arg28,
393
+ pre_test_func_args: :arg29,
394
+ pre_test_f_args: :arg29,
395
+ post_test_func_args: :arg30,
396
+ post_test_f_args: :arg30,
397
+ post_pat_func_args: :arg31,
398
+ post_pat_f_args: :arg31,
399
+ end_func_args: :arg32,
400
+ end_of_body_f_args: :arg32,
401
+ hsp_start: :arg33,
402
+ hsp_stop: :arg34,
403
+ pcp_check_pg: :arg35,
404
+ clamp: :arg36,
405
+ hsp_check_pg: :arg37,
406
+ resume_pat: :arg38,
407
+ relay_mode: :arg39,
408
+ utility_pins_1: :arg40,
409
+ utility_pins_0: :arg41,
410
+ test_control: :arg42,
411
+ serialize_meas: :arg43,
412
+ serialize_meas_func: :arg44,
413
+ serialize_meas_f: :arg44,
414
+ serialize_meas_func_args: :arg45,
415
+ serialize_meas_f_args: :arg45,
416
+ precond_pat_clamp: :arg46,
417
+ threading: :arg47
418
+ },
419
+
337
420
  mto_memory: {
338
421
  patterns: :arg0,
339
422
  pattern: :arg0,
@@ -492,6 +575,21 @@ module OrigenTesters
492
575
  resume_pat: 0,
493
576
  test_control: 0
494
577
  },
578
+ powersupply: {
579
+ proc_type: 'IG-XL Template',
580
+ proc_name: 'PowerSupply_T',
581
+ proc_called_as: 'VB DLL',
582
+ wait_flags: 'XXXX',
583
+ irange: 1,
584
+ settling_time: 0,
585
+ hi_lo_lim_valid: 3,
586
+ relay_mode: 0,
587
+ wait_time_out: 30,
588
+ pcp_check_pg: 1,
589
+ hsp_check_pg: 1,
590
+ resume_pat: 0,
591
+ test_control: 0
592
+ },
495
593
  mto_memory: {
496
594
  proc_type: 'IG-XL Template',
497
595
  proc_name: 'MtoMemory_T',
@@ -575,6 +673,18 @@ module OrigenTesters
575
673
  if force_cond
576
674
  m['Force'] = force_cond
577
675
  end
676
+ elsif type == :powersupply
677
+ if hi_lo_limit_valid & 2 != 0
678
+ m['Hi'] = hi_limit
679
+ end
680
+ if hi_lo_limit_valid & 1 != 0
681
+ m['Lo'] = lo_limit
682
+ end
683
+ m['Hi'] = hi_limit
684
+ m['Lo'] = lo_limit
685
+ if force_cond
686
+ m['Force'] = force_cond
687
+ end
578
688
  end
579
689
  m['DC'] = "#{dc_category} (#{dc_selector})"
580
690
  m['AC'] = "#{ac_category} (#{ac_selector})"
@@ -272,6 +272,7 @@ module OrigenTesters
272
272
  post_pat_f: :arg5,
273
273
  end_func: :arg6,
274
274
  end_of_body_f: :arg6,
275
+ pattern: :arg7,
275
276
  hold_state_pat: :arg7,
276
277
  holdstate_pat: :arg7,
277
278
  wait_flags: :arg8,
@@ -334,6 +335,88 @@ module OrigenTesters
334
335
  serialize_meas_func_args: :arg45,
335
336
  serialize_meas_f_args: :arg45
336
337
  },
338
+
339
+ powersupply: {
340
+ precond_pat: :arg0,
341
+ pre_cond_pat: :arg0,
342
+ start_func: :arg1,
343
+ start_of_body_f: :arg1,
344
+ pre_pat_func: :arg2,
345
+ pre_pat_f: :arg2,
346
+ pre_test_func: :arg3,
347
+ pre_test_f: :arg3,
348
+ post_test_func: :arg4,
349
+ post_test_f: :arg4,
350
+ post_pat_func: :arg5,
351
+ post_pat_f: :arg5,
352
+ end_func: :arg6,
353
+ end_of_body_f: :arg6,
354
+ pattern: :arg7,
355
+ hold_state_pat: :arg7,
356
+ holdstate_pat: :arg7,
357
+ wait_flags: :arg8,
358
+ wait_time_out: :arg9,
359
+ start_lo: :arg10,
360
+ start_init_lo: :arg10,
361
+ init_lo: :arg10,
362
+ start_hi: :arg11,
363
+ start_init_hi: :arg11,
364
+ init_hi: :arg11,
365
+ start_hiz: :arg12,
366
+ start_init_hiz: :arg12,
367
+ init_hiz: :arg12,
368
+ float_pins: :arg13,
369
+ irange: :arg14,
370
+ sampling_time: :arg15,
371
+ samples: :arg16,
372
+ settling_time: :arg17,
373
+ hi_lo_lim_valid: :arg18,
374
+ hi_lo_limit_valid: :arg18,
375
+ hi_limit: :arg19,
376
+ lo_limit: :arg20,
377
+ force_cond_1: :arg21,
378
+ force_cond: :arg21,
379
+ force_condition: :arg21,
380
+ force_condition_1: :arg21,
381
+ force_cond_2: :arg22,
382
+ force_condition_2: :arg22,
383
+ power_pins: :arg23,
384
+ pins: :arg23,
385
+ pin: :arg23,
386
+ force_source: :arg24,
387
+ pcp_start: :arg25,
388
+ pcp_stop: :arg26,
389
+ start_func_args: :arg27,
390
+ start_of_body_f_args: :arg27,
391
+ pre_pat_func_args: :arg28,
392
+ pre_pat_f_args: :arg28,
393
+ pre_test_func_args: :arg29,
394
+ pre_test_f_args: :arg29,
395
+ post_test_func_args: :arg30,
396
+ post_test_f_args: :arg30,
397
+ post_pat_func_args: :arg31,
398
+ post_pat_f_args: :arg31,
399
+ end_func_args: :arg32,
400
+ end_of_body_f_args: :arg32,
401
+ hsp_start: :arg33,
402
+ hsp_stop: :arg34,
403
+ pcp_check_pg: :arg35,
404
+ clamp: :arg36,
405
+ hsp_check_pg: :arg37,
406
+ resume_pat: :arg38,
407
+ relay_mode: :arg39,
408
+ utility_pins_1: :arg40,
409
+ utility_pins_0: :arg41,
410
+ test_control: :arg42,
411
+ serialize_meas: :arg43,
412
+ serialize_meas_func: :arg44,
413
+ serialize_meas_f: :arg44,
414
+ serialize_meas_func_args: :arg45,
415
+ serialize_meas_f_args: :arg45,
416
+ precond_pat_clam: :arg46,
417
+ threading: :arg47
418
+ },
419
+
337
420
  mto_memory: {
338
421
  patterns: :arg0,
339
422
  pattern: :arg0,
@@ -492,7 +575,8 @@ module OrigenTesters
492
575
  resume_pat: 0,
493
576
  test_control: 0
494
577
  },
495
- mto_memory: {}
578
+ mto_memory: {},
579
+ powersupply: {}
496
580
  }
497
581
 
498
582
  # Generate the instance method definitions based on the above
@@ -5,7 +5,7 @@ module OrigenTesters
5
5
  attr_accessor :parser
6
6
 
7
7
  TYPES = %w(
8
- functional board_pmu empty pin_pmu power_supply mto_memory
8
+ functional board_pmu empty pin_pmu powersupply mto_memory
9
9
  )
10
10
 
11
11
  TYPE_ALIASES = {
@@ -17,7 +17,7 @@ module OrigenTesters
17
17
  pinpmu_t: :pin_pmu,
18
18
  nvmpinpmucal_t: :pin_pmu,
19
19
  nvmpinpmumeas_t: :pin_pmu,
20
- powersupply_t: :power_supply,
20
+ powersupply_t: :powersupply,
21
21
  mto_memory_t: :mto_memory
22
22
  }
23
23
 
@@ -33,9 +33,9 @@ module OrigenTesters
33
33
  ATTRS = attributes
34
34
 
35
35
  ALIASES = {
36
- name: :test_name,
36
+ name: :test_name,
37
37
 
38
- functional: {
38
+ functional: {
39
39
  pattern: :arg0,
40
40
  start_func: :arg1,
41
41
  pre_pat_func: :arg2,
@@ -65,7 +65,7 @@ module OrigenTesters
65
65
  data_type: :arg35
66
66
  },
67
67
 
68
- board_pmu: {
68
+ board_pmu: {
69
69
  hsp_start: :arg0,
70
70
  start_func: :arg1,
71
71
  pre_pat_func: :arg2,
@@ -120,7 +120,7 @@ module OrigenTesters
120
120
  threading: :arg46
121
121
  },
122
122
 
123
- pin_pmu: {
123
+ pin_pmu: {
124
124
  hsp_start: :arg0,
125
125
  start_func: :arg1,
126
126
  pre_pat_func: :arg2,
@@ -175,7 +175,7 @@ module OrigenTesters
175
175
  pre_charge: :arg45,
176
176
  threading: :arg46
177
177
  },
178
- mto_memory: {
178
+ mto_memory: {
179
179
  patterns: :arg0,
180
180
  pattern: :arg0,
181
181
  start_func: :arg1,
@@ -253,8 +253,87 @@ module OrigenTesters
253
253
  mapmem_1_input_set: :arg65,
254
254
  threading: :arg69,
255
255
  match_all_sites: :arg70
256
- }
256
+ },
257
257
 
258
+ powersupply: {
259
+ precond_pat: :arg0,
260
+ pre_cond_pat: :arg0,
261
+ start_func: :arg1,
262
+ start_of_body_f: :arg1,
263
+ pre_pat_func: :arg2,
264
+ pre_pat_f: :arg2,
265
+ pre_test_func: :arg3,
266
+ pre_test_f: :arg3,
267
+ post_test_func: :arg4,
268
+ post_test_f: :arg4,
269
+ post_pat_func: :arg5,
270
+ post_pat_f: :arg5,
271
+ end_func: :arg6,
272
+ end_of_body_f: :arg6,
273
+ hold_state_pat: :arg7,
274
+ holdstate_pat: :arg7,
275
+ wait_flags: :arg8,
276
+ wait_time_out: :arg9,
277
+ start_lo: :arg10,
278
+ start_init_lo: :arg10,
279
+ init_lo: :arg10,
280
+ start_hi: :arg11,
281
+ start_init_hi: :arg11,
282
+ init_hi: :arg11,
283
+ start_hiz: :arg12,
284
+ start_init_hiz: :arg12,
285
+ init_hiz: :arg12,
286
+ float_pins: :arg13,
287
+ irange: :arg14,
288
+ sampling_time: :arg15,
289
+ samples: :arg16,
290
+ settling_time: :arg17,
291
+ hi_lo_lim_valid: :arg18,
292
+ hi_lo_limit_valid: :arg18,
293
+ hi_limit: :arg19,
294
+ lo_limit: :arg20,
295
+ force_cond_1: :arg21,
296
+ force_cond: :arg21,
297
+ force_condition: :arg21,
298
+ force_condition_1: :arg21,
299
+ force_cond_2: :arg22,
300
+ force_condition_2: :arg22,
301
+ power_pins: :arg23,
302
+ pins: :arg23,
303
+ pin: :arg23,
304
+ force_source: :arg24,
305
+ pcp_start: :arg25,
306
+ pcp_stop: :arg26,
307
+ start_func_args: :arg27,
308
+ start_of_body_f_args: :arg27,
309
+ pre_pat_func_args: :arg28,
310
+ pre_pat_f_args: :arg28,
311
+ pre_test_func_args: :arg29,
312
+ pre_test_f_args: :arg29,
313
+ post_test_func_args: :arg30,
314
+ post_test_f_args: :arg30,
315
+ post_pat_func_args: :arg31,
316
+ post_pat_f_args: :arg31,
317
+ end_func_args: :arg32,
318
+ end_of_body_f_args: :arg32,
319
+ hsp_start: :arg33,
320
+ hsp_stop: :arg34,
321
+ pcp_check_pg: :arg35,
322
+ clamp: :arg36,
323
+ hsp_check_pg: :arg37,
324
+ resume_pat: :arg38,
325
+ relay_mode: :arg39,
326
+ utility_pins_1: :arg40,
327
+ utility_pins_0: :arg41,
328
+ test_control: :arg42,
329
+ serialize_meas: :arg43,
330
+ serialize_meas_func: :arg44,
331
+ serialize_meas_f: :arg44,
332
+ serialize_meas_func_args: :arg45,
333
+ serialize_meas_f_args: :arg45,
334
+ precond_pat_clam: :arg46,
335
+ threading: :arg47
336
+ }
258
337
  }
259
338
 
260
339
  # Make readers for each low level attribute
@@ -72,7 +72,6 @@ module OrigenTesters
72
72
  flow.test(ins, options)
73
73
  patsets.add("#{name}_pset", pattern: "#{name}.PAT")
74
74
  end
75
- alias_method :meas, :para
76
75
 
77
76
  # OR 2 IDS together into 1 flag
78
77
  def or_ids(options = {})
@@ -110,6 +109,36 @@ module OrigenTesters
110
109
  end
111
110
  end
112
111
  end
112
+
113
+ def meas(name, options = {})
114
+ options = {
115
+ duration: :static
116
+ }.merge(options)
117
+
118
+ name = "meas_#{name}" unless name.to_s =~ /meas/
119
+
120
+ if options[:pins] == :hi_v
121
+ ins = test_instances.board_pmu(name)
122
+ elsif options[:pins] == :power
123
+ ins = test_instances.powersupply(name)
124
+ else
125
+ ins = test_instances.pin_pmu(name)
126
+ end
127
+ ins.set_wait_flags(:a) if options[:duration] == :dynamic
128
+ ins.pin_levels = options.delete(:pin_levels) if options[:pin_levels]
129
+ ins.lo_limit = options[:lo_limit]
130
+ ins.hi_limit = options[:hi_limit]
131
+
132
+ pname = "#{name}_pset"
133
+ patsets.add(pname, [{ pattern: "#{name}.PAT" },
134
+ { pattern: 'nvm_global_subs.PAT', start_label: 'subr' }])
135
+ ins.pattern = pname
136
+ if options[:cz_setup]
137
+ flow.cz(ins, options[:cz_setup], options)
138
+ else
139
+ flow.test(ins, options)
140
+ end
141
+ end
113
142
  end
114
143
  end
115
144
  end
data/program/prb1.rb CHANGED
@@ -185,5 +185,11 @@ Flow.create do
185
185
  meas :bgap_voltage_meas1
186
186
  end
187
187
 
188
+ if tester.j750?
189
+ meas :lo_voltage, tnum: 1150, bin: 95, soft_bin: 5
190
+ meas :hi_voltage, pins: :hi_v, tnum: 1160, bin: 96, soft_bin: 6
191
+ meas :ps_leakage, pins: :power, tnum: 1170, bin: 97, soft_bin: 6
192
+ end
193
+
188
194
  pass 1, description: "Good die!", softbin: 1
189
195
  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.7.4
4
+ version: 0.7.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-16 00:00:00.000000000 Z
11
+ date: 2016-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen