cross_origen 0.6.0 → 0.6.1
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 +1 -1
- data/lib/cross_origen/ip_xact.rb +23 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f7582c611769181fb35ca1c63a9de7d0b91fb55
|
4
|
+
data.tar.gz: 12b85146240f75f5135419ef20420a9cc5f1ca20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd24d373d4d19d60f230db4d84feddf85eae354c2699a2f8405c0188e98d4cf0c926f1f8cb51f92bfe00d82a3eb3df9a9a94b6471f6e7584e86469aaee925017
|
7
|
+
data.tar.gz: 4a4143ef8cfef70ea40eed6a13859b329687b47cf19eee009416f480afa4eaebb552610c03372b7af6ca7dd5fc3bf0602f55f23dff07bed145902b0d0c115dd6
|
data/config/version.rb
CHANGED
data/lib/cross_origen/ip_xact.rb
CHANGED
@@ -52,7 +52,7 @@ module CrossOrigen
|
|
52
52
|
# Do a logical bitwise AND with the reset value and mask
|
53
53
|
reset_value = reset_value & reset_mask
|
54
54
|
end
|
55
|
-
addr_block_obj.reg name, addr_offset, size: size, access: access do |reg|
|
55
|
+
addr_block_obj.reg name, addr_offset, size: size, access: access, description: reg_description(register) do |reg|
|
56
56
|
register.xpath('spirit:field').each do |field|
|
57
57
|
name = fetch field.at_xpath('spirit:name'), downcase: true, to_sym: true, get_text: true
|
58
58
|
bit_offset = fetch field.at_xpath('spirit:bitOffset'), get_text: true, to_i: true
|
@@ -71,7 +71,7 @@ module CrossOrigen
|
|
71
71
|
else
|
72
72
|
range = (bit_offset + bit_width - 1)..bit_offset
|
73
73
|
end
|
74
|
-
reg.bit range, name, reset: reset_value[range], access: access
|
74
|
+
reg.bit range, name, reset: reset_value[range], access: access, description: bit_description(field)
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
@@ -191,6 +191,27 @@ module CrossOrigen
|
|
191
191
|
|
192
192
|
private
|
193
193
|
|
194
|
+
def reg_description(register)
|
195
|
+
fetch register.at_xpath('spirit:description'), get_text: true, whitespace: true
|
196
|
+
end
|
197
|
+
|
198
|
+
def bit_description(bit)
|
199
|
+
desc = fetch(bit.at_xpath('spirit:description'), get_text: true, whitespace: true) || ''
|
200
|
+
bit_val_present = false
|
201
|
+
bit.xpath('spirit:values').each do |val|
|
202
|
+
unless bit_val_present
|
203
|
+
desc += "\n"
|
204
|
+
bit_val_present = true
|
205
|
+
end
|
206
|
+
value = extract(val, 'spirit:value', format: :integer, hex: true)
|
207
|
+
value_desc = extract val, 'spirit:description'
|
208
|
+
if value && value_desc
|
209
|
+
desc += "\n#{value.to_s(2)} | #{value_desc}"
|
210
|
+
end
|
211
|
+
end
|
212
|
+
desc
|
213
|
+
end
|
214
|
+
|
194
215
|
def mask(reg)
|
195
216
|
m = 0
|
196
217
|
reg.size.times do |i|
|