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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ae69f91bc9e2535f91cecbcd30bef84b57c8a017
4
- data.tar.gz: 25accfa2f3054119f0e3fec8efbbdb59f74f9f55
3
+ metadata.gz: b298fc2934ec803286a7cac8a2f0a74b1089a2c1
4
+ data.tar.gz: aacc8893df525dc878e3b120d06256a58f67ce2b
5
5
  SHA512:
6
- metadata.gz: 064956cbd19af58b772357f8b5a5c2ec8aede02531098192b239efbbaa466ded0febe18295b62d0f779d33652a59911857fea2778bdb01a88636cd6e717c054c
7
- data.tar.gz: 468f70f9ee9a58ade048f191ad9468400f377c49ae3d77f95f69e7b3e63bcf95b3eb646ac32b1b8aad34c73684b7b3b88ddddf7c1cd34f597bdcdb436381590f
6
+ metadata.gz: fafb0ef55e995a4aaca2214bf9bd713f27f0345471f2fbc7d68016c4576dae5b1fd857e22d052e381712b518981c73a60ff53b2d74010bff5b4c03dd81ce210e
7
+ data.tar.gz: 16d11af83861035fcbb8c0d139fcf92c4ab8db11f0abd2c9fff2535ac8aff50e7cf5cdf9a73997ef18640af10b85238c944edf31c4465b9be0f789628a2878be
data/config/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module OrigenJTAG
2
2
  MAJOR = 0
3
- MINOR = 12
4
- BUGFIX = 1
5
- DEV = nil
3
+ MINOR = 13
4
+ BUGFIX = 0
5
+ DEV = 0
6
6
 
7
7
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
8
8
  end
@@ -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
- call_subroutine = reg_or_val[i].overlay_str
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
- call_subroutine = reg_or_val[i].overlay_str
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
@@ -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("write_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("read_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.12.1
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-07 00:00:00.000000000 Z
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.2.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