origen_jtag 0.12.1 → 0.13.0.pre0
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 +3 -3
- data/lib/origen_jtag/driver.rb +33 -3
- data/pattern/jtag_workout.rb +10 -2
- 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: b298fc2934ec803286a7cac8a2f0a74b1089a2c1
|
4
|
+
data.tar.gz: aacc8893df525dc878e3b120d06256a58f67ce2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fafb0ef55e995a4aaca2214bf9bd713f27f0345471f2fbc7d68016c4576dae5b1fd857e22d052e381712b518981c73a60ff53b2d74010bff5b4c03dd81ce210e
|
7
|
+
data.tar.gz: 16d11af83861035fcbb8c0d139fcf92c4ab8db11f0abd2c9fff2535ac8aff50e7cf5cdf9a73997ef18640af10b85238c944edf31c4465b9be0f789628a2878be
|
data/config/version.rb
CHANGED
data/lib/origen_jtag/driver.rb
CHANGED
@@ -101,9 +101,16 @@ module OrigenJTAG
|
|
101
101
|
options = {
|
102
102
|
read: false,
|
103
103
|
cycle_last: false,
|
104
|
-
includes_last_bit: true
|
104
|
+
includes_last_bit: true,
|
105
|
+
no_subr: false # do not use subroutine for any overlay
|
105
106
|
}.merge(options)
|
106
107
|
size = extract_size(reg_or_val, options)
|
108
|
+
if options[:no_subr] && !$tester.respond_to?('label')
|
109
|
+
# tester does not support direct labels, so can't do
|
110
|
+
cc 'This tester does not support use of labels, cannot do no_subr option as requested'
|
111
|
+
cc ' going with subroutine overlay instead'
|
112
|
+
options[:no_subr] = false
|
113
|
+
end
|
107
114
|
if options.key?(:arm_debug_comment)
|
108
115
|
cc options[:arm_debug_comment]
|
109
116
|
end
|
@@ -114,8 +121,10 @@ module OrigenJTAG
|
|
114
121
|
contains_bits = (contains_bits?(reg_or_val) || is_a_bit?(reg_or_val))
|
115
122
|
owner.pin(:tdi).drive(0) # Drive state when reading out
|
116
123
|
owner.pin(:tms).drive(0)
|
124
|
+
last_overlay_label = ''
|
117
125
|
size.times do |i|
|
118
126
|
call_subroutine = false
|
127
|
+
direct_overlay = false
|
119
128
|
if options[:read]
|
120
129
|
# If it's a register support bit-wise reads
|
121
130
|
if contains_bits
|
@@ -127,7 +136,16 @@ module OrigenJTAG
|
|
127
136
|
if Origen.mode.simulation?
|
128
137
|
owner.pin(:tdo).dont_care
|
129
138
|
else
|
130
|
-
|
139
|
+
if options[:no_subr]
|
140
|
+
Origen.tester.dont_compress = true
|
141
|
+
if reg_or_val[i].overlay_str != last_overlay_label
|
142
|
+
$tester.label(reg_or_val[i].overlay_str)
|
143
|
+
last_overlay_label = reg_or_val[i].overlay_str
|
144
|
+
end
|
145
|
+
owner.pin(:tdo).assert(reg_or_val[i] ? reg_or_val[i] : 0)
|
146
|
+
else
|
147
|
+
call_subroutine = reg_or_val[i].overlay_str
|
148
|
+
end
|
131
149
|
end
|
132
150
|
elsif reg_or_val[i].is_to_be_read?
|
133
151
|
owner.pin(:tdo).assert(reg_or_val[i] ? reg_or_val[i] : 0)
|
@@ -148,6 +166,7 @@ module OrigenJTAG
|
|
148
166
|
end
|
149
167
|
# Otherwise read the whole thing
|
150
168
|
else
|
169
|
+
Origen.tester.dont_compress = false
|
151
170
|
owner.pin(:tdo).assert(reg_or_val[i] ? reg_or_val[i] : 0)
|
152
171
|
end
|
153
172
|
else
|
@@ -155,7 +174,16 @@ module OrigenJTAG
|
|
155
174
|
if Origen.mode.simulation?
|
156
175
|
owner.pin(:tdi).drive(reg_or_val[i] ? reg_or_val[i] : 0)
|
157
176
|
else
|
158
|
-
|
177
|
+
if options[:no_subr]
|
178
|
+
Origen.tester.dont_compress = true
|
179
|
+
if reg_or_val[i].overlay_str != last_overlay_label
|
180
|
+
$tester.label(reg_or_val[i].overlay_str)
|
181
|
+
last_overlay_label = reg_or_val[i].overlay_str
|
182
|
+
end
|
183
|
+
owner.pin(:tdi).drive(reg_or_val[i] ? reg_or_val[i] : 0)
|
184
|
+
else
|
185
|
+
call_subroutine = reg_or_val[i].overlay_str
|
186
|
+
end
|
159
187
|
end
|
160
188
|
elsif options.key?(:arm_debug_overlay)
|
161
189
|
if Origen.mode.simulation?
|
@@ -191,6 +219,8 @@ module OrigenJTAG
|
|
191
219
|
# Clear read and similar flags to reflect that the request has just
|
192
220
|
# been fulfilled
|
193
221
|
reg_or_val.clear_flags if reg_or_val.respond_to?(:clear_flags)
|
222
|
+
# put back compression if turned on above
|
223
|
+
Origen.tester.dont_compress = false
|
194
224
|
end
|
195
225
|
|
196
226
|
# Cycles the tester through one TCLK cycle
|
data/pattern/jtag_workout.rb
CHANGED
@@ -78,10 +78,14 @@ Pattern.create(options={:name => "jtag_workout_#{$dut.tclk_format.upcase}#{$dut.
|
|
78
78
|
Origen.tester.cycle # Give a padding cycle as a place for the subroutine call to go
|
79
79
|
jtag.shift reg, :cycle_last => true
|
80
80
|
Origen.mode = :debug
|
81
|
+
if $tester.respond_to?('label')
|
82
|
+
cc "Full register overlay without using subroutine"
|
83
|
+
jtag.shift reg, :cycle_last => true, :no_subr => true
|
84
|
+
end
|
81
85
|
|
82
86
|
test "Shift register into TDI with single bit overlay"
|
83
87
|
reg.overlay(nil)
|
84
|
-
reg.bit(:bit).overlay("
|
88
|
+
reg.bit(:bit).overlay("write_overlay2")
|
85
89
|
Origen.tester.cycle # Give a padding cycle as a place for the subroutine call to go
|
86
90
|
jtag.shift reg, :cycle_last => true
|
87
91
|
reg.overlay(nil)
|
@@ -136,10 +140,14 @@ Pattern.create(options={:name => "jtag_workout_#{$dut.tclk_format.upcase}#{$dut.
|
|
136
140
|
Origen.tester.cycle # Give a padding cycle as a place for the subroutine call to go
|
137
141
|
jtag.shift reg, :cycle_last => true, :read => true
|
138
142
|
Origen.mode = :debug
|
143
|
+
if $tester.respond_to?('label')
|
144
|
+
cc "Full register overlay without using subroutine"
|
145
|
+
jtag.shift reg, :cycle_last => true, :read => true, :no_subr => true
|
146
|
+
end
|
139
147
|
|
140
148
|
test "Shift register out of TDO with single bit overlay"
|
141
149
|
reg.overlay(nil)
|
142
|
-
reg.bit(:bit).overlay("
|
150
|
+
reg.bit(:bit).overlay("read_overlay2")
|
143
151
|
Origen.tester.cycle # Give a padding cycle as a place for the subroutine call to go
|
144
152
|
jtag.shift reg, :cycle_last => true
|
145
153
|
reg.overlay(nil)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: origen_jtag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0.pre0
|
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-10-
|
11
|
+
date: 2016-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: origen
|
@@ -65,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
65
|
version: 1.8.11
|
66
66
|
requirements: []
|
67
67
|
rubyforge_project:
|
68
|
-
rubygems_version: 2.
|
68
|
+
rubygems_version: 2.6.7
|
69
69
|
signing_key:
|
70
70
|
specification_version: 4
|
71
71
|
summary: JTAG driver for the Origen SDK
|