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