origen_jtag 0.13.0.pre1 → 0.13.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_jtag/driver.rb +4 -0
- data/lib/origen_jtag/tap_controller.rb +32 -2
- data/templates/web/index.md.erb +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9920632e33d08faa8fb93b0ecdd6af4e593e888a
|
4
|
+
data.tar.gz: bc0fc81b5fcbcb71ccd669ea535f4ea80a6dc1c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ecb02a03b825efa5787a0a3208603c0e92ba90192551420ff9466aa2dead851b4daf4d04e81fd70fda5021dee58a4b5e1f71c6eaceabcbc4106a321517d7d66
|
7
|
+
data.tar.gz: 11e95ae8171b60984b8627ac51f9773d8604105bc28cb44f2d515b6b7a3ee8c78e8c2f4573871e7aa13cef78440bf62ca56df7a9d15f8b00fa0e6ff55b726566
|
data/config/version.rb
CHANGED
data/lib/origen_jtag/driver.rb
CHANGED
@@ -27,6 +27,9 @@ module OrigenJTAG
|
|
27
27
|
attr_accessor :verbose
|
28
28
|
alias_method :verbose?, :verbose
|
29
29
|
|
30
|
+
# Log all state changes in pattern comments, false by default
|
31
|
+
attr_accessor :log_state_changes
|
32
|
+
|
30
33
|
def initialize(owner, options = {})
|
31
34
|
@owner = owner
|
32
35
|
validate_pins
|
@@ -61,6 +64,7 @@ module OrigenJTAG
|
|
61
64
|
@tdo_strobe = options[:tdo_strobe]
|
62
65
|
@tdo_store_cycle = options[:tdo_store_cycle]
|
63
66
|
@state = options[:init_state]
|
67
|
+
@log_state_changes = options[:log_state_changes] || false
|
64
68
|
end
|
65
69
|
|
66
70
|
# Shift data into the TDI pin or out of the TDO pin.
|
@@ -54,7 +54,9 @@ module OrigenJTAG
|
|
54
54
|
log 'Transition to Shift-DR...'
|
55
55
|
if state == :idle
|
56
56
|
tms!(1) # => Select-DR-Scan
|
57
|
+
update_state :select_dr_scan
|
57
58
|
tms!(0) # => Capture-DR
|
59
|
+
update_state :capture_dr
|
58
60
|
tms!(0) # => Shift-DR
|
59
61
|
update_state :shift_dr
|
60
62
|
if options[:write]
|
@@ -71,18 +73,22 @@ module OrigenJTAG
|
|
71
73
|
@last_data_vector_shifted = false
|
72
74
|
else
|
73
75
|
tms!(1) # => Exit1-DR
|
76
|
+
update_state :exit1_dr
|
74
77
|
end
|
75
78
|
end
|
76
79
|
tms!(1) # => Update-DR
|
80
|
+
update_state :update_dr
|
77
81
|
tms!(0) # => Run-Test/Idle
|
78
82
|
update_state :idle
|
79
83
|
else # :pause_dr
|
80
84
|
tms!(1) # => Exit2-DR
|
85
|
+
update_state :exit2_dr
|
81
86
|
tms!(0) # => Shift-DR
|
82
87
|
update_state :shift_dr
|
83
88
|
yield
|
84
89
|
log 'Transition to Pause-DR...'
|
85
90
|
tms!(1) # => Exit1-DR
|
91
|
+
update_state :exit1_dr
|
86
92
|
tms!(0) # => Pause-DR
|
87
93
|
update_state :pause_dr
|
88
94
|
end
|
@@ -116,23 +122,30 @@ module OrigenJTAG
|
|
116
122
|
log 'Transition to Pause-DR...'
|
117
123
|
if state == :idle
|
118
124
|
tms!(1) # => Select-DR-Scan
|
125
|
+
update_state :select_dr_scan
|
119
126
|
tms!(0) # => Capture-DR
|
127
|
+
update_state :capture_dr
|
120
128
|
tms!(1) # => Exit1-DR
|
129
|
+
update_state :exit1_dr
|
121
130
|
tms!(0) # => Pause-DR
|
122
131
|
update_state :pause_dr
|
123
132
|
yield
|
124
133
|
log 'Transition to Run-Test/Idle...'
|
125
134
|
tms!(1) # => Exit2-DR
|
135
|
+
update_state :exit2_dr
|
126
136
|
tms!(1) # => Update-DR
|
137
|
+
update_state :update_dr
|
127
138
|
tms!(0) # => Run-Test/Idle
|
128
139
|
update_state :idle
|
129
140
|
else # shift_dr
|
130
141
|
tms!(1) # => Exit1-DR
|
142
|
+
update_state :exit1_dr
|
131
143
|
tms!(0) # => Pause-DR
|
132
144
|
update_state :pause_dr
|
133
145
|
yield
|
134
146
|
log 'Transition to Shift-DR...'
|
135
147
|
tms!(1) # => Exit2-DR
|
148
|
+
update_state :exit2_dr
|
136
149
|
tms!(0) # => Shift-DR
|
137
150
|
update_state :shift_dr
|
138
151
|
end
|
@@ -166,8 +179,11 @@ module OrigenJTAG
|
|
166
179
|
log 'Transition to Shift-IR...'
|
167
180
|
if state == :idle
|
168
181
|
tms!(1) # => Select-DR-Scan
|
182
|
+
update_state :select_dr_scan
|
169
183
|
tms!(1) # => Select-IR-Scan
|
184
|
+
update_state :select_ir_scan
|
170
185
|
tms!(0) # => Capture-IR
|
186
|
+
update_state :capture_ir
|
171
187
|
tms!(0) # => Shift-IR
|
172
188
|
update_state :shift_ir
|
173
189
|
if options[:write]
|
@@ -183,19 +199,23 @@ module OrigenJTAG
|
|
183
199
|
if @last_data_vector_shifted
|
184
200
|
@last_data_vector_shifted = false
|
185
201
|
else
|
186
|
-
tms!(1) # => Exit1-
|
202
|
+
tms!(1) # => Exit1-IR
|
203
|
+
update_state :exit1_ir
|
187
204
|
end
|
188
205
|
end
|
189
206
|
tms!(1) # => Update-IR
|
207
|
+
update_state :update_ir
|
190
208
|
tms!(0) # => Run-Test/Idle
|
191
209
|
update_state :idle
|
192
210
|
else # :pause_ir
|
193
211
|
tms!(1) # => Exit2-IR
|
212
|
+
update_state :exit2_ir
|
194
213
|
tms!(0) # => Shift-IR
|
195
214
|
update_state :shift_ir
|
196
215
|
yield
|
197
216
|
log 'Transition to Pause-IR...'
|
198
217
|
tms!(1) # => Exit1-IR
|
218
|
+
update_state :exit1_ir
|
199
219
|
tms!(0) # => Pause-IR
|
200
220
|
update_state :pause_ir
|
201
221
|
end
|
@@ -229,24 +249,32 @@ module OrigenJTAG
|
|
229
249
|
log 'Transition to Pause-IR...'
|
230
250
|
if state == :idle
|
231
251
|
tms!(1) # => Select-DR-Scan
|
252
|
+
update_state :select_dr_scan
|
232
253
|
tms!(1) # => Select-IR-Scan
|
254
|
+
update_state :select_ir_scan
|
233
255
|
tms!(0) # => Capture-IR
|
256
|
+
update_state :capture_ir
|
234
257
|
tms!(1) # => Exit1-IR
|
258
|
+
update_state :exit1_ir
|
235
259
|
tms!(0) # => Pause-IR
|
236
260
|
update_state :pause_ir
|
237
261
|
yield
|
238
262
|
log 'Transition to Run-Test/Idle...'
|
239
263
|
tms!(1) # => Exit2-IR
|
264
|
+
update_state :exit2_ir
|
240
265
|
tms!(1) # => Update-IR
|
266
|
+
update_state :update_ir
|
241
267
|
tms!(0) # => Run-Test/Idle
|
242
268
|
update_state :idle
|
243
269
|
else # :shift_ir
|
244
270
|
tms!(1) # => Exit1-IR
|
271
|
+
update_state :exit1_ir
|
245
272
|
tms!(0) # => Pause-IR
|
246
273
|
update_state :pause_ir
|
247
274
|
yield
|
248
275
|
log 'Transition to Shift-IR...'
|
249
276
|
tms!(1) # => Exit2-IR
|
277
|
+
update_state :exit2_ir
|
250
278
|
tms!(0) # => Shift-IR
|
251
279
|
update_state :shift_ir
|
252
280
|
end
|
@@ -281,7 +309,9 @@ module OrigenJTAG
|
|
281
309
|
|
282
310
|
def update_state(state)
|
283
311
|
@state = state
|
284
|
-
log "Current state: #{state_str}"
|
312
|
+
log "Current state: #{state_str}" if log_state_changes
|
313
|
+
@listeners ||= Origen.listeners_for(:on_jtag_state_change)
|
314
|
+
@listeners.each { |l| l.on_jtag_state_change(@state) }
|
285
315
|
end
|
286
316
|
|
287
317
|
private
|
data/templates/web/index.md.erb
CHANGED
@@ -110,6 +110,18 @@ See the [<code>OrigenJTAG::Driver</code>](<%= path "api/OrigenJTAG/Driver.html"
|
|
110
110
|
[<code>OrigenJTAG::TAPController</code>](<%= path "api/OrigenJTAG/TAPController.html" %>)
|
111
111
|
APIs for more details about the available driver methods.
|
112
112
|
|
113
|
+
Any model/controller within a target runtime environment can listen out for JTAG state
|
114
|
+
changes by implementing the following callback handler:
|
115
|
+
|
116
|
+
~~~ruby
|
117
|
+
def on_jtag_state_change(new_state)
|
118
|
+
if new_state == :update_dr
|
119
|
+
# Do something every time we enter this state
|
120
|
+
end
|
121
|
+
end
|
122
|
+
~~~
|
123
|
+
|
124
|
+
|
113
125
|
### How To Setup a Development Environment
|
114
126
|
|
115
127
|
[Clone the repository from Github](https://github.com/Origen-SDK/origen_jtag).
|
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.13.0
|
4
|
+
version: 0.13.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:
|
11
|
+
date: 2017-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: origen
|