origen_jtag 0.12.1 → 0.13.0.pre0
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 +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
|