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 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