origen_testers 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
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