origen_testers 0.7.0.pre0 → 0.7.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 +1 -1
- data/lib/origen_testers/igxl_based_tester/base.rb +10 -1
- data/lib/origen_testers/smartest_based_tester/base.rb +3 -1
- data/lib/origen_testers/vector.rb +6 -2
- data/lib/origen_testers/vector_generator.rb +7 -1
- data/pattern/multi_vector.rb +5 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d897e6581771bc27d333380a7268dd24f5823c11
|
4
|
+
data.tar.gz: 9320f4f545dba6122cfc142da034818a5ef8856c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 440ddc17e513453c7611976fa25e2f310368d5fe7f409b3077d80354f3e21d8bbfe38631dff4322247b7b61417bbdd6967d0c98ca490b70acb0f5aff3ee868aa
|
7
|
+
data.tar.gz: 90bd5c77657cb3c31cda3b098ee0db03f68fb017a9796cb1cd49c8d8b5301ad4e7fb3b3db253d85614ae4c9607ffdfe793471bfd5834889a2a31b696e16a3c51
|
data/config/version.rb
CHANGED
@@ -267,6 +267,7 @@ module OrigenTesters
|
|
267
267
|
options = { offset: 0
|
268
268
|
}.merge(options)
|
269
269
|
update_vector microcode: 'stv', offset: options[:offset]
|
270
|
+
last_vector(options[:offset]).contains_capture = true
|
270
271
|
end
|
271
272
|
alias_method :to_hram, :store
|
272
273
|
alias_method :capture, :store
|
@@ -285,10 +286,18 @@ module OrigenTesters
|
|
285
286
|
options = pins.last.is_a?(Hash) ? pins.pop : {}
|
286
287
|
options = {
|
287
288
|
}.merge(options)
|
288
|
-
preset_next_vector microcode: 'stv'
|
289
|
+
preset_next_vector microcode: 'stv' do |vector|
|
290
|
+
vector.contains_capture = true
|
291
|
+
end
|
289
292
|
end
|
290
293
|
alias_method :store!, :store_next_cycle
|
291
294
|
|
295
|
+
# @api private
|
296
|
+
def remove_store_from_vector(vector)
|
297
|
+
super
|
298
|
+
vector.microcode = nil
|
299
|
+
end
|
300
|
+
|
292
301
|
# Call a subroutine.
|
293
302
|
#
|
294
303
|
# This method applies a call subroutine opcode to the previous vector, it does not
|
@@ -69,6 +69,7 @@ module OrigenTesters
|
|
69
69
|
pin.capture
|
70
70
|
update_vector_pin_val pin, offset: options[:offset]
|
71
71
|
last_vector(options[:offset]).dont_compress = true
|
72
|
+
last_vector(options[:offset]).contains_capture = true
|
72
73
|
end
|
73
74
|
end
|
74
75
|
end
|
@@ -95,7 +96,8 @@ module OrigenTesters
|
|
95
96
|
pins.each { |pin| pin.save; pin.capture }
|
96
97
|
# Register this clean up function to be run after the next vector
|
97
98
|
# is generated, cool or what!
|
98
|
-
preset_next_vector do
|
99
|
+
preset_next_vector do |vector|
|
100
|
+
vector.contains_capture = true
|
99
101
|
pins.each(&:restore)
|
100
102
|
end
|
101
103
|
end
|
@@ -3,7 +3,7 @@ module OrigenTesters
|
|
3
3
|
class Vector
|
4
4
|
attr_accessor :repeat, :microcode, :timeset, :pin_vals,
|
5
5
|
:number, :cycle_number, :dont_compress,
|
6
|
-
:comments, :inline_comment, :cycle, :number
|
6
|
+
:comments, :inline_comment, :cycle, :number, :contains_capture
|
7
7
|
|
8
8
|
def initialize(attrs = {})
|
9
9
|
@inline_comment = ''
|
@@ -73,7 +73,9 @@ module OrigenTesters
|
|
73
73
|
if timeset.period_in_ns % tset.period_in_ns != 0
|
74
74
|
fail "The period of timeset #{timeset.name} is not a multiple of the period of timeset #{tset.name}!"
|
75
75
|
end
|
76
|
-
if
|
76
|
+
if contains_capture
|
77
|
+
vector_modification_required = true
|
78
|
+
elsif $tester.timing_toggled_pins.empty?
|
77
79
|
vector_modification_required = false
|
78
80
|
else
|
79
81
|
# If the timing toggled pins are not driving on this vector, then no
|
@@ -102,6 +104,7 @@ module OrigenTesters
|
|
102
104
|
v = dup
|
103
105
|
v.repeat = 1
|
104
106
|
v.pin_vals = inhibit_compares
|
107
|
+
$tester.remove_store_from_vector(v) if v.contains_capture
|
105
108
|
yield v
|
106
109
|
# Then drive the pin 'off' value for the remainder
|
107
110
|
v = dup
|
@@ -110,6 +113,7 @@ module OrigenTesters
|
|
110
113
|
v = dup
|
111
114
|
v.repeat = r - 1
|
112
115
|
pin_values.each { |vals| v.set_pin_value(vals[:pin], vals[:off]) if vals }
|
116
|
+
$tester.remove_store_from_vector(v) if v.contains_capture
|
113
117
|
yield v
|
114
118
|
end
|
115
119
|
v = dup
|
@@ -229,11 +229,12 @@ module OrigenTesters
|
|
229
229
|
end
|
230
230
|
@preset_next_vector = nil
|
231
231
|
end
|
232
|
+
v = Vector.new(attrs)
|
232
233
|
stage.store Vector.new(attrs)
|
233
234
|
inc_vec_count
|
234
235
|
inc_cycle_count(attrs[:repeat] || 1)
|
235
236
|
if @preset_next_vector_cleanup
|
236
|
-
@preset_next_vector_cleanup.call
|
237
|
+
@preset_next_vector_cleanup.call(v)
|
237
238
|
@preset_next_vector_cleanup = nil
|
238
239
|
end
|
239
240
|
end
|
@@ -636,5 +637,10 @@ module OrigenTesters
|
|
636
637
|
@dont_care_state || 'X'
|
637
638
|
end
|
638
639
|
end
|
640
|
+
|
641
|
+
# @api private
|
642
|
+
def remove_store_from_vector(vector)
|
643
|
+
vector.pin_vals.sub!('C', 'X')
|
644
|
+
end
|
639
645
|
end
|
640
646
|
end
|
data/pattern/multi_vector.rb
CHANGED
@@ -84,6 +84,11 @@ SetupTester.new
|
|
84
84
|
8.cycles
|
85
85
|
$tester.set_timeset("nvmbist_readout", 160)
|
86
86
|
8.cycles
|
87
|
+
ss "Test that additional stores are not injected, only 4 TDO vectors should be captured"
|
88
|
+
4.times do
|
89
|
+
1.cycle
|
90
|
+
$tester.store($dut.pin(:tdo))
|
91
|
+
end
|
87
92
|
$dut.pin(:tdo).dont_care
|
88
93
|
$tester.set_timeset("nvmbist", 40)
|
89
94
|
|
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.0
|
4
|
+
version: 0.7.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: 2016-05-
|
11
|
+
date: 2016-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: origen
|
@@ -399,7 +399,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
399
399
|
version: 1.8.11
|
400
400
|
requirements: []
|
401
401
|
rubyforge_project:
|
402
|
-
rubygems_version: 2.
|
402
|
+
rubygems_version: 2.6.2
|
403
403
|
signing_key:
|
404
404
|
specification_version: 4
|
405
405
|
summary: This plugin provides Origen tester models to drive ATE type testers like
|