origen_testers 0.50.0 → 0.51.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/commands.rb +1 -1
- data/config/version.rb +1 -1
- data/lib/origen_testers/atp/processors/pre_cleaner.rb +12 -2
- data/lib/origen_testers/igxl_based_tester/base/flow.rb +5 -1
- data/lib/origen_testers/igxl_based_tester/base.rb +12 -0
- data/lib/origen_testers/igxl_based_tester/j750.rb +2 -2
- data/lib/origen_testers/igxl_based_tester/j750_hpt.rb +2 -2
- data/lib/origen_testers/smartest_based_tester/base.rb +11 -0
- data/program/flow_control_literals.rb +139 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5ff2e2f1b209e2dadbf045bc52f45361a8220f7f43b5fa27a1782f6c2b61a9e
|
4
|
+
data.tar.gz: a0387e3b6629f520a42dde25ae6c5b78a86d4f93a1beefbff6bd865988b8577d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c1b698fc08e769ce66ce5b65073f1aa3644b59497587849338c6fa343c615e42c5300e45238d4f706c347d6b7e354aab7fae28541f90f8845ee3cdcd0633a72
|
7
|
+
data.tar.gz: a227d7203f78c6d36aa2963478067b8e4a7746e588f464d680da7e36069f48fa2bbed19743d8e2923045bb53adb42856ab700061bd52492d28bf0c188f7c2db3
|
data/config/commands.rb
CHANGED
@@ -200,7 +200,7 @@ when "examples", "test"
|
|
200
200
|
puts
|
201
201
|
puts "To approve any diffs in the reference.list files run the following command:"
|
202
202
|
puts
|
203
|
-
platforms = %w(j750 j750_hpt ultraflex v93k v93k_multiport v93k_enable_flow v93k_disable_flow v93k_limits_file v93k_global v93k_smt8) # put here the various platforms used in examples/program_generator.rb
|
203
|
+
platforms = %w(j750 j750_literals j750_hpt ultraflex ultraflex_literals v93k v93k_multiport v93k_enable_flow v93k_disable_flow v93k_limits_file v93k_global v93k_smt8) # put here the various platforms used in examples/program_generator.rb
|
204
204
|
reflist_command = ''
|
205
205
|
platforms.each do |platform|
|
206
206
|
unless reflist_command == ''
|
data/config/version.rb
CHANGED
@@ -9,15 +9,25 @@ module OrigenTesters::ATP
|
|
9
9
|
end
|
10
10
|
|
11
11
|
# Make all IDs lower cased symbols
|
12
|
+
# unless literal_flags is set
|
12
13
|
def on_id(node)
|
13
14
|
id = node.to_a[0]
|
14
|
-
|
15
|
+
if tester.literal_flags
|
16
|
+
node.updated(nil, [id])
|
17
|
+
else
|
18
|
+
node.updated(nil, [clean(id)])
|
19
|
+
end
|
15
20
|
end
|
16
21
|
|
17
22
|
# Make all ID references use the lower case symbols
|
23
|
+
# unless literal_flags is set
|
18
24
|
def on_if_failed(node)
|
19
25
|
id, *children = *node
|
20
|
-
|
26
|
+
if tester.literal_flags
|
27
|
+
node.updated(nil, [id] + process_all(children))
|
28
|
+
else
|
29
|
+
node.updated(nil, [clean(id)] + process_all(children))
|
30
|
+
end
|
21
31
|
end
|
22
32
|
alias_method :on_if_passed, :on_if_failed
|
23
33
|
alias_method :on_if_any_failed, :on_if_failed
|
@@ -23,6 +23,11 @@ module OrigenTesters
|
|
23
23
|
attr_accessor :min_repeat_loop
|
24
24
|
alias_method :min_repeat_count, :min_repeat_loop
|
25
25
|
alias_method :min_repeat_count=, :min_repeat_loop=
|
26
|
+
|
27
|
+
# Control literal flag definitions
|
28
|
+
attr_accessor :literal_flags # whether flags should be exactly as indicated
|
29
|
+
attr_accessor :literal_enables # whether enables should be exactly as indicated
|
30
|
+
|
26
31
|
# NOTE: DO NOT USE THIS CLASS DIRECTLY ONLY USED AS PARENT FOR
|
27
32
|
# DESIRED TESTER CLASS
|
28
33
|
|
@@ -64,6 +69,13 @@ module OrigenTesters
|
|
64
69
|
@overlay_history = {} # used to track labels, subroutines, digsrc pins used etc
|
65
70
|
@overlay_subr = nil
|
66
71
|
@capture_history = {}
|
72
|
+
|
73
|
+
if options[:literal_flags]
|
74
|
+
@literal_flags = true
|
75
|
+
end
|
76
|
+
if options[:literal_enables]
|
77
|
+
@literal_enables = true
|
78
|
+
end
|
67
79
|
end
|
68
80
|
|
69
81
|
def igxl_based?
|
@@ -26,8 +26,8 @@ module OrigenTesters
|
|
26
26
|
|
27
27
|
# Returns a new J750 instance, normally there would only ever be one of these
|
28
28
|
# assigned to the global variable such as $tester by your target.
|
29
|
-
def initialize
|
30
|
-
super
|
29
|
+
def initialize(options = {})
|
30
|
+
super(options)
|
31
31
|
@pipeline_depth = 34 # for extended mode is vectors, for normal mode is vector pairs (54 for J750Ex)
|
32
32
|
@use_hv_pin = false # allows to use high voltage for a pin for all patterns
|
33
33
|
@software_version = '3.50.40'
|
@@ -14,8 +14,8 @@ module OrigenTesters
|
|
14
14
|
class J750_HPT < J750
|
15
15
|
require 'origen_testers/igxl_based_tester/j750_hpt/generator.rb'
|
16
16
|
|
17
|
-
def initialize
|
18
|
-
super
|
17
|
+
def initialize(options = {})
|
18
|
+
super(options)
|
19
19
|
@@hpt_mode = true
|
20
20
|
@drive_hi_state = '.1'
|
21
21
|
@drive_lo_state = '.0'
|
@@ -27,6 +27,10 @@ module OrigenTesters
|
|
27
27
|
alias_method :min_repeat_count, :min_repeat_loop
|
28
28
|
alias_method :min_repeat_count=, :min_repeat_loop=
|
29
29
|
|
30
|
+
# Control literal flag definitions
|
31
|
+
attr_accessor :literal_flags # whether flags should be exactly as indicated
|
32
|
+
attr_accessor :literal_enables # whether enables should be exactly as indicated
|
33
|
+
|
30
34
|
# permit option to generate multiport type patterns
|
31
35
|
# and use multiport type code
|
32
36
|
attr_accessor :multiport
|
@@ -140,6 +144,13 @@ module OrigenTesters
|
|
140
144
|
@create_limits_file = false
|
141
145
|
end
|
142
146
|
end
|
147
|
+
if options[:literal_flags]
|
148
|
+
@literal_flags = true
|
149
|
+
end
|
150
|
+
if options[:literal_enables]
|
151
|
+
@literal_enables = true
|
152
|
+
end
|
153
|
+
|
143
154
|
@package_namespace = options.delete(:package_namespace)
|
144
155
|
self.limitfile_test_modes = options[:limitfile_test_modes] || options[:limitsfile_test_modes]
|
145
156
|
self.force_pass_on_continue = options[:force_pass_on_continue]
|
@@ -0,0 +1,139 @@
|
|
1
|
+
# Flow to exercise the Flow Control API related to using exact literal value of flag (no lowercase or cleanup) as
|
2
|
+
# controlled at tester API level
|
3
|
+
#
|
4
|
+
# Some of the other flows also cover the flow control API and those tests are used
|
5
|
+
# to guarantee that the test ID references work when sub-flows are involved.
|
6
|
+
# This flow provides a full checkout of all flow control methods.
|
7
|
+
Flow.create interface: 'OrigenTesters::Test::Interface', flow_name: "Flow Control Flag/Enable Literal Testing" do
|
8
|
+
flow.flow_description = 'Flow to exercise the Flow Control API' if tester.v93k?
|
9
|
+
|
10
|
+
self.resources_filename = 'flow_control'
|
11
|
+
|
12
|
+
log "Test that if_failed works using Literal"
|
13
|
+
func :read1, id: :Test__Flag1, bin: 10, number: 50000
|
14
|
+
func :erase1, if_failed: :Test__Flag1, bin: 12, number: 50010
|
15
|
+
|
16
|
+
log "Test the block form of if_failed"
|
17
|
+
func :read2, id: :Test__Flag2, bin: 10, number: 50020
|
18
|
+
if_failed :Test__Flag2 do
|
19
|
+
func :erase2, number: 50030
|
20
|
+
func :erase2, number: 50040
|
21
|
+
end
|
22
|
+
|
23
|
+
log "Test that if_passed works"
|
24
|
+
func :read1, id: :Test__Flag3, bin: 10, number: 50050
|
25
|
+
func :pgm1, if_passed: :Test__Flag3, number: 50060
|
26
|
+
|
27
|
+
log "Test the block form of if_passed"
|
28
|
+
func :read2, id: :Test__Flag4, bin: 10, number: 50070
|
29
|
+
if_passed :Test__Flag4 do
|
30
|
+
func :pgm1, number: 50080
|
31
|
+
func :pgm1, number: 50090
|
32
|
+
end
|
33
|
+
|
34
|
+
log "Test that if_ran works"
|
35
|
+
func :pgm, id: :Test__Flag5, bin: 10, number: 50100
|
36
|
+
func :read0, if_ran: :Test__Flag5, number: 50110
|
37
|
+
|
38
|
+
log "Test the block form of if_ran"
|
39
|
+
func :pgm, id: :Test__Flag6, bin: 10, number: 50120
|
40
|
+
if_ran :Test__Flag6 do
|
41
|
+
func :read0, number: 50130
|
42
|
+
func :read0, number: 50140
|
43
|
+
end
|
44
|
+
|
45
|
+
log "Test that unless_ran works"
|
46
|
+
func :pgm, id: :Test__Flag7, bin: 10, number: 50150
|
47
|
+
func :read0, unless_ran: :Test__Flag7, number: 50160
|
48
|
+
|
49
|
+
log "Test the block form of unless_ran"
|
50
|
+
func :pgm, id: :Test__Flag8, bin: 10, number: 50170
|
51
|
+
unless_ran :Test__Flag8 do
|
52
|
+
func :read0, number: 50180
|
53
|
+
func :read0, number: 50190
|
54
|
+
end
|
55
|
+
|
56
|
+
log "Test that if_enable works"
|
57
|
+
func :extra_test, if_enable: :Extras__123, number: 50270
|
58
|
+
|
59
|
+
log "Test the block form of if_enable"
|
60
|
+
if_enable :Cz__123 do
|
61
|
+
func :cz_test1, number: 50280
|
62
|
+
func :cz_test2, number: 50290
|
63
|
+
end
|
64
|
+
|
65
|
+
log "Test that unless_enable works"
|
66
|
+
func :long_test, unless_enable: :Quick__123, number: 50300
|
67
|
+
|
68
|
+
log "Test the block form of unless_enable"
|
69
|
+
unless_enable :Quick__123 do
|
70
|
+
func :long_test1, number: 50310
|
71
|
+
func :long_test2, number: 50320
|
72
|
+
end
|
73
|
+
|
74
|
+
log "Test that if_any_failed works"
|
75
|
+
func :test1, id: :iFA__1, number: 50330
|
76
|
+
func :test2, id: :iFA__2, number: 50340
|
77
|
+
func :test3, if_any_failed: [:iFA__1, :iFA__2], number: 50350
|
78
|
+
|
79
|
+
log "Test the block form of if_any_failed"
|
80
|
+
func :test1, id: :OOF__Passcode1, number: 50360
|
81
|
+
func :test2, id: :OOF__Passcode2, number: 50370
|
82
|
+
if_any_failed :OOF__Passcode1, :OOF__Passcode2 do
|
83
|
+
func :test3, number: 50380
|
84
|
+
func :test4, number: 50390
|
85
|
+
end
|
86
|
+
|
87
|
+
log "Test that if_all_failed works"
|
88
|
+
func :test1, id: :iFall__1, number: 50400
|
89
|
+
func :test2, id: :iFall__2, number: 50410
|
90
|
+
func :test3, if_all_failed: [:iFall__1, :iFall__2], number: 50420
|
91
|
+
|
92
|
+
log "Test the block form of if_all_failed"
|
93
|
+
func :test1, id: :iFall__B1, number: 50430
|
94
|
+
func :test2, id: :iFall__B2, number: 50440
|
95
|
+
if_all_failed [:iFall__B1, :iFall__B2] do
|
96
|
+
func :test3, number: 50450
|
97
|
+
func :test4, number: 50460
|
98
|
+
end
|
99
|
+
|
100
|
+
log "Test that if_any_passed works"
|
101
|
+
func :test1, id: :if__AP1, number: 50470
|
102
|
+
func :test2, id: :if__AP2, number: 50480
|
103
|
+
func :test3, if_any_passed: [:if__AP1, :if__AP2], number: 50490
|
104
|
+
|
105
|
+
log "Test the block form of if_any_passed"
|
106
|
+
func :test1, id: :if__APB1, number: 50500
|
107
|
+
func :test2, id: :if__APB2, number: 50510
|
108
|
+
if_any_passed :if__APB1, :if__APB2 do
|
109
|
+
func :test3, number: 50520
|
110
|
+
func :test4, number: 50530
|
111
|
+
end
|
112
|
+
|
113
|
+
log "Test that if_all_passed works"
|
114
|
+
func :test1, id: :iFall__P1, number: 50540
|
115
|
+
func :test2, id: :iFall__P2, number: 50550
|
116
|
+
func :test3, if_all_passed: [:iFall__P1, :iFall__P2], number: 50560
|
117
|
+
|
118
|
+
log "Test the block form of if_all_passed"
|
119
|
+
func :test1, id: :iFall__PB1, number: 50570
|
120
|
+
func :test2, id: :iFall__PB2, number: 50580
|
121
|
+
if_all_passed :iFall__PB1, :iFall__PB2 do
|
122
|
+
func :test3, number: 50590
|
123
|
+
func :test4, number: 50600
|
124
|
+
end
|
125
|
+
|
126
|
+
log "Test that group-level dependencies work"
|
127
|
+
group "grp1", id: :Group__1 do
|
128
|
+
func :grp1_test1, bin: 5, number: 50610
|
129
|
+
func :grp1_test2, bin: 5, number: 50620
|
130
|
+
func :grp1_test3, bin: 5, number: 50630
|
131
|
+
end
|
132
|
+
|
133
|
+
group "grp2", if_failed: :Group__1 do
|
134
|
+
func :grp2_test1, bin: 5, number: 50640
|
135
|
+
func :grp2_test2, bin: 5, number: 50650
|
136
|
+
func :grp2_test3, bin: 5, number: 50660
|
137
|
+
end
|
138
|
+
|
139
|
+
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.51.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: 2022-05-
|
11
|
+
date: 2022-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: origen
|
@@ -532,6 +532,7 @@ files:
|
|
532
532
|
- program/custom_tests.rb
|
533
533
|
- program/flow_control.rb
|
534
534
|
- program/flow_control_flag_bug.rb
|
535
|
+
- program/flow_control_literals.rb
|
535
536
|
- program/prb1.rb
|
536
537
|
- program/prb1_resources.rb
|
537
538
|
- program/prb2.rb
|
@@ -600,7 +601,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
600
601
|
- !ruby/object:Gem::Version
|
601
602
|
version: '0'
|
602
603
|
requirements: []
|
603
|
-
rubygems_version: 3.1.
|
604
|
+
rubygems_version: 3.1.6
|
604
605
|
signing_key:
|
605
606
|
specification_version: 4
|
606
607
|
summary: This plugin provides Origen tester models to drive ATE type testers like
|