rggen-default-register-map 0.25.0 → 0.27.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/LICENSE +1 -1
- data/README.md +4 -3
- data/lib/rggen/default_register_map/bit_field/bit_assignment.rb +3 -3
- data/lib/rggen/default_register_map/bit_field/comment.rb +5 -0
- data/lib/rggen/default_register_map/bit_field/type/{ro.rb → ro_rotrg.rb} +1 -1
- data/lib/rggen/default_register_map/bit_field/type/row0trg_row1trg.rb +8 -0
- data/lib/rggen/default_register_map/bit_field/type/rowo_rowotrg.rb +10 -0
- data/lib/rggen/default_register_map/bit_field/type/{rw_w1_wrc_wrs.rb → rw_rwtrg_w1_wrc_wrs.rb} +1 -1
- data/lib/rggen/default_register_map/bit_field/type/{wo_wo1.rb → wo_wo1_wotrg.rb} +1 -1
- data/lib/rggen/default_register_map/{common/comment.rb → comment.rb} +3 -3
- data/lib/rggen/default_register_map/global/enable_wide_register.rb +27 -0
- data/lib/rggen/default_register_map/register/comment.rb +5 -0
- data/lib/rggen/default_register_map/register/offset_address.rb +15 -7
- data/lib/rggen/default_register_map/register/size.rb +9 -0
- data/lib/rggen/default_register_map/register/type/indirect.rb +1 -1
- data/lib/rggen/default_register_map/register/type.rb +1 -1
- data/lib/rggen/default_register_map/register_block/comment.rb +5 -0
- data/lib/rggen/default_register_map/register_file/comment.rb +5 -0
- data/lib/rggen/default_register_map/version.rb +1 -1
- data/lib/rggen/default_register_map.rb +48 -46
- metadata +18 -11
- data/lib/rggen/default_register_map/setup.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e1b5c8952df6d5cf956a991019f222ff1fa5789316a37b2f82b0c204fe7a30a
|
4
|
+
data.tar.gz: a2740678c7e416b435f294652fafa074b7a4090656f9c52ba8487a9866a6362c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b562f3dda473595d8b96ab350da36654e5c75a78cd56afb25dfc4b0a45666dbf77185aa85261938cda985d72b7878b346c7b5331c8e837155a2310ebba83c0d
|
7
|
+
data.tar.gz: '09288fa36647791243feb903e3752350b66197111ac960223be51e7766af0be2848fbcd086a2035e600dce2af8ea399940e528d9ed743bd8b739a05dd2b19601'
|
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2019-
|
3
|
+
Copyright (c) 2019-2022 Taichi Ishitani
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -21,7 +21,7 @@ During RgGen installation, RgGen::DefaultRegisterMap will also be installed auto
|
|
21
21
|
$ gem install rggen
|
22
22
|
```
|
23
23
|
|
24
|
-
If you to install RgGen::DefaultRegisterMap only, use the command below:
|
24
|
+
If you want to install RgGen::DefaultRegisterMap only, use the command below:
|
25
25
|
|
26
26
|
```
|
27
27
|
$ gem install rggen-default-register-map
|
@@ -31,14 +31,15 @@ $ gem install rggen-default-register-map
|
|
31
31
|
|
32
32
|
Feedbacks, bug reports, questions and etc. are wellcome! You can post them by using following ways:
|
33
33
|
|
34
|
-
* [GitHub Issue Tracker](https://github.com/rggen/rggen
|
34
|
+
* [GitHub Issue Tracker](https://github.com/rggen/rggen/issues)
|
35
|
+
* [GitHub Discussions](https://github.com/rggen/rggen/discussions)
|
35
36
|
* [Chat Room](https://gitter.im/rggen/rggen)
|
36
37
|
* [Mailing List](https://groups.google.com/d/forum/rggen)
|
37
38
|
* [Mail](mailto:rggen@googlegroups.com)
|
38
39
|
|
39
40
|
## Copyright & License
|
40
41
|
|
41
|
-
Copyright © 2019-
|
42
|
+
Copyright © 2019-2022 Taichi Ishitani. RgGen::DefaultRegisterMap is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
|
42
43
|
|
43
44
|
## Code of Conduct
|
44
45
|
|
@@ -59,8 +59,8 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
verify(:feature) do
|
62
|
-
error_condition { sequential? && step <
|
63
|
-
message { "step is less than
|
62
|
+
error_condition { sequential? && step < width }
|
63
|
+
message { "step is less than width: step #{step} width #{width}" }
|
64
64
|
end
|
65
65
|
|
66
66
|
verify(:feature) do
|
@@ -108,7 +108,7 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
|
|
108
108
|
helper.variable_names.keys
|
109
109
|
else
|
110
110
|
keys = helper.variable_names.keys
|
111
|
-
[keys[1], keys[0], *keys[2
|
111
|
+
[keys[1], keys[0], *keys[2..]]
|
112
112
|
end
|
113
113
|
@keys[index]
|
114
114
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
module RgGen
|
4
|
+
module DefaultRegisterMap
|
5
|
+
COMMENT = proc do
|
6
6
|
property :comment, initial: -> { '' }
|
7
7
|
|
8
8
|
build do |value|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RgGen.define_simple_feature(:global, :enable_wide_register) do
|
4
|
+
configuration do
|
5
|
+
property :enable_wide_register?, default: false
|
6
|
+
|
7
|
+
input_pattern [/true|on|yes/i, /false|off|no/i],
|
8
|
+
match_automatically: false
|
9
|
+
|
10
|
+
ignore_empty_value false
|
11
|
+
|
12
|
+
build do |value|
|
13
|
+
@enable_wide_register =
|
14
|
+
if [true, false].include?(value)
|
15
|
+
value
|
16
|
+
elsif match_pattern(value)
|
17
|
+
[true, false][match_index]
|
18
|
+
else
|
19
|
+
error "cannot convert #{value.inspect} into boolean"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
printable :enable_wide_register do
|
24
|
+
enable_wide_register?
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -93,9 +93,9 @@ RgGen.define_simple_feature(:register, :offset_address) do
|
|
93
93
|
configuration.byte_width
|
94
94
|
end
|
95
95
|
|
96
|
-
def overlap_address_range?(other,
|
96
|
+
def overlap_address_range?(other, shareable)
|
97
97
|
overlap_range?(other) &&
|
98
|
-
(exclusive_range?(other) ||
|
98
|
+
(exclusive_range?(other) || !shareable_access?(other, shareable))
|
99
99
|
end
|
100
100
|
|
101
101
|
def overlap_range?(other)
|
@@ -108,13 +108,21 @@ RgGen.define_simple_feature(:register, :offset_address) do
|
|
108
108
|
other.register_file? || other.reserved? || register.reserved?
|
109
109
|
end
|
110
110
|
|
111
|
-
def
|
112
|
-
|
113
|
-
|
111
|
+
def shareable_access?(other, shareable)
|
112
|
+
match_range?(other) &&
|
113
|
+
(alternate_access?(other) || shareable_range?(other, shareable))
|
114
114
|
end
|
115
115
|
|
116
|
-
def
|
117
|
-
|
116
|
+
def match_range?(other)
|
117
|
+
address_range == other.address_range
|
118
|
+
end
|
119
|
+
|
120
|
+
def alternate_access?(other)
|
121
|
+
[:writable?, :readable?].all? { |access| [register, other].one?(&access) }
|
122
|
+
end
|
123
|
+
|
124
|
+
def shareable_range?(other, shareable)
|
125
|
+
shareable && shared_address? && register.match_type?(other)
|
118
126
|
end
|
119
127
|
|
120
128
|
def shared_address?
|
@@ -26,6 +26,15 @@ RgGen.define_simple_feature(:register, :size) do
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
verify(:component) do
|
30
|
+
error_condition do
|
31
|
+
!configuration.enable_wide_register? && byte_width > 8
|
32
|
+
end
|
33
|
+
message do
|
34
|
+
"register width wider than 8 bytes is not allowed: #{byte_width} bytes"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
29
38
|
private
|
30
39
|
|
31
40
|
def parse_values(values)
|
@@ -194,7 +194,7 @@ RgGen.define_list_item_feature(:register, :type, :indirect) do
|
|
194
194
|
input_value = Array(value)
|
195
195
|
field_name = input_value.first
|
196
196
|
if sting_or_symbol?(field_name) && match_pattern(field_name)
|
197
|
-
[*match_data.captures, *input_value[1
|
197
|
+
[*match_data.captures, *input_value[1..]]
|
198
198
|
else
|
199
199
|
error "illegal input value for indirect index: #{value.inspect}"
|
200
200
|
end
|
@@ -1,51 +1,53 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative 'default_register_map/version'
|
4
|
+
require_relative 'default_register_map/comment'
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
6
|
+
RgGen.setup_plugin :'rggen-default-register-map' do |plugin|
|
7
|
+
plugin.version RgGen::DefaultRegisterMap::VERSION
|
8
|
+
plugin.files [
|
9
|
+
'default_register_map/global/address_width',
|
10
|
+
'default_register_map/global/bus_width',
|
11
|
+
'default_register_map/global/enable_wide_register',
|
12
|
+
'default_register_map/register_block/name',
|
13
|
+
'default_register_map/register_block/byte_size',
|
14
|
+
'default_register_map/register_block/comment',
|
15
|
+
'default_register_map/register_file/name',
|
16
|
+
'default_register_map/register_file/offset_address',
|
17
|
+
'default_register_map/register_file/size',
|
18
|
+
'default_register_map/register_file/comment',
|
19
|
+
'default_register_map/register/name',
|
20
|
+
'default_register_map/register/offset_address',
|
21
|
+
'default_register_map/register/size',
|
22
|
+
'default_register_map/register/type',
|
23
|
+
'default_register_map/register/type/external',
|
24
|
+
'default_register_map/register/type/indirect',
|
25
|
+
'default_register_map/register/type/reserved',
|
26
|
+
'default_register_map/register/comment',
|
27
|
+
'default_register_map/bit_field/name',
|
28
|
+
'default_register_map/bit_field/bit_assignment',
|
29
|
+
'default_register_map/bit_field/type',
|
30
|
+
'default_register_map/bit_field/type/rc',
|
31
|
+
'default_register_map/bit_field/type/reserved',
|
32
|
+
'default_register_map/bit_field/type/ro_rotrg',
|
33
|
+
'default_register_map/bit_field/type/rof',
|
34
|
+
'default_register_map/bit_field/type/row0trg_row1trg',
|
35
|
+
'default_register_map/bit_field/type/rowo_rowotrg',
|
36
|
+
'default_register_map/bit_field/type/rs',
|
37
|
+
'default_register_map/bit_field/type/rw_rwtrg_w1_wrc_wrs',
|
38
|
+
'default_register_map/bit_field/type/rwc_rws',
|
39
|
+
'default_register_map/bit_field/type/rwe_rwl',
|
40
|
+
'default_register_map/bit_field/type/w0c_w1c_wc',
|
41
|
+
'default_register_map/bit_field/type/w0crs_w1crs_wcrs',
|
42
|
+
'default_register_map/bit_field/type/w0s_w1s_ws',
|
43
|
+
'default_register_map/bit_field/type/w0src_w1src_wsrc',
|
44
|
+
'default_register_map/bit_field/type/w0t_w1t',
|
45
|
+
'default_register_map/bit_field/type/w0trg_w1trg',
|
46
|
+
'default_register_map/bit_field/type/wo_wo1_wotrg',
|
47
|
+
'default_register_map/bit_field/type/woc',
|
48
|
+
'default_register_map/bit_field/type/wos',
|
49
|
+
'default_register_map/bit_field/initial_value',
|
50
|
+
'default_register_map/bit_field/reference',
|
51
|
+
'default_register_map/bit_field/comment'
|
52
|
+
]
|
51
53
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rggen-default-register-map
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.27.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Taichi Ishitani
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -36,16 +36,19 @@ files:
|
|
36
36
|
- README.md
|
37
37
|
- lib/rggen/default_register_map.rb
|
38
38
|
- lib/rggen/default_register_map/bit_field/bit_assignment.rb
|
39
|
+
- lib/rggen/default_register_map/bit_field/comment.rb
|
39
40
|
- lib/rggen/default_register_map/bit_field/initial_value.rb
|
40
41
|
- lib/rggen/default_register_map/bit_field/name.rb
|
41
42
|
- lib/rggen/default_register_map/bit_field/reference.rb
|
42
43
|
- lib/rggen/default_register_map/bit_field/type.rb
|
43
44
|
- lib/rggen/default_register_map/bit_field/type/rc.rb
|
44
45
|
- lib/rggen/default_register_map/bit_field/type/reserved.rb
|
45
|
-
- lib/rggen/default_register_map/bit_field/type/
|
46
|
+
- lib/rggen/default_register_map/bit_field/type/ro_rotrg.rb
|
46
47
|
- lib/rggen/default_register_map/bit_field/type/rof.rb
|
48
|
+
- lib/rggen/default_register_map/bit_field/type/row0trg_row1trg.rb
|
49
|
+
- lib/rggen/default_register_map/bit_field/type/rowo_rowotrg.rb
|
47
50
|
- lib/rggen/default_register_map/bit_field/type/rs.rb
|
48
|
-
- lib/rggen/default_register_map/bit_field/type/
|
51
|
+
- lib/rggen/default_register_map/bit_field/type/rw_rwtrg_w1_wrc_wrs.rb
|
49
52
|
- lib/rggen/default_register_map/bit_field/type/rwc_rws.rb
|
50
53
|
- lib/rggen/default_register_map/bit_field/type/rwe_rwl.rb
|
51
54
|
- lib/rggen/default_register_map/bit_field/type/w0c_w1c_wc.rb
|
@@ -54,12 +57,14 @@ files:
|
|
54
57
|
- lib/rggen/default_register_map/bit_field/type/w0src_w1src_wsrc.rb
|
55
58
|
- lib/rggen/default_register_map/bit_field/type/w0t_w1t.rb
|
56
59
|
- lib/rggen/default_register_map/bit_field/type/w0trg_w1trg.rb
|
57
|
-
- lib/rggen/default_register_map/bit_field/type/
|
60
|
+
- lib/rggen/default_register_map/bit_field/type/wo_wo1_wotrg.rb
|
58
61
|
- lib/rggen/default_register_map/bit_field/type/woc.rb
|
59
62
|
- lib/rggen/default_register_map/bit_field/type/wos.rb
|
60
|
-
- lib/rggen/default_register_map/
|
63
|
+
- lib/rggen/default_register_map/comment.rb
|
61
64
|
- lib/rggen/default_register_map/global/address_width.rb
|
62
65
|
- lib/rggen/default_register_map/global/bus_width.rb
|
66
|
+
- lib/rggen/default_register_map/global/enable_wide_register.rb
|
67
|
+
- lib/rggen/default_register_map/register/comment.rb
|
63
68
|
- lib/rggen/default_register_map/register/name.rb
|
64
69
|
- lib/rggen/default_register_map/register/offset_address.rb
|
65
70
|
- lib/rggen/default_register_map/register/size.rb
|
@@ -68,18 +73,20 @@ files:
|
|
68
73
|
- lib/rggen/default_register_map/register/type/indirect.rb
|
69
74
|
- lib/rggen/default_register_map/register/type/reserved.rb
|
70
75
|
- lib/rggen/default_register_map/register_block/byte_size.rb
|
76
|
+
- lib/rggen/default_register_map/register_block/comment.rb
|
71
77
|
- lib/rggen/default_register_map/register_block/name.rb
|
78
|
+
- lib/rggen/default_register_map/register_file/comment.rb
|
72
79
|
- lib/rggen/default_register_map/register_file/name.rb
|
73
80
|
- lib/rggen/default_register_map/register_file/offset_address.rb
|
74
81
|
- lib/rggen/default_register_map/register_file/size.rb
|
75
|
-
- lib/rggen/default_register_map/setup.rb
|
76
82
|
- lib/rggen/default_register_map/version.rb
|
77
83
|
homepage: https://github.com/rggen/rggen-default-register-map
|
78
84
|
licenses:
|
79
85
|
- MIT
|
80
86
|
metadata:
|
81
|
-
bug_tracker_uri: https://github.com/rggen/rggen
|
87
|
+
bug_tracker_uri: https://github.com/rggen/rggen/issues
|
82
88
|
mailing_list_uri: https://groups.google.com/d/forum/rggen
|
89
|
+
rubygems_mfa_required: 'true'
|
83
90
|
source_code_uri: https://github.com/rggen/rggen-default-register-map
|
84
91
|
wiki_uri: https://github.com/rggen/rggen/wiki
|
85
92
|
post_install_message:
|
@@ -90,15 +97,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
97
|
requirements:
|
91
98
|
- - ">="
|
92
99
|
- !ruby/object:Gem::Version
|
93
|
-
version: '2.
|
100
|
+
version: '2.6'
|
94
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
102
|
requirements:
|
96
103
|
- - ">="
|
97
104
|
- !ruby/object:Gem::Version
|
98
105
|
version: '0'
|
99
106
|
requirements: []
|
100
|
-
rubygems_version: 3.
|
107
|
+
rubygems_version: 3.3.3
|
101
108
|
signing_key:
|
102
109
|
specification_version: 4
|
103
|
-
summary: rggen-default-register-map-0.
|
110
|
+
summary: rggen-default-register-map-0.27.0
|
104
111
|
test_files: []
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rggen/default_register_map'
|
4
|
-
|
5
|
-
RgGen.register_plugin RgGen::DefaultRegisterMap do |builder|
|
6
|
-
builder.enable :global, [:bus_width, :address_width]
|
7
|
-
builder.enable :register_block, [
|
8
|
-
:name, :byte_size, :comment
|
9
|
-
]
|
10
|
-
builder.enable :register_file, [
|
11
|
-
:name, :offset_address, :size, :comment
|
12
|
-
]
|
13
|
-
builder.enable :register, [
|
14
|
-
:name, :offset_address, :size, :type, :comment
|
15
|
-
]
|
16
|
-
builder.enable :register, :type, [:external, :indirect, :reserved]
|
17
|
-
builder.enable :bit_field, [
|
18
|
-
:name, :bit_assignment, :type, :initial_value, :reference, :comment
|
19
|
-
]
|
20
|
-
builder.enable :bit_field, :type, [
|
21
|
-
:rc, :reserved, :ro, :rof, :rs,
|
22
|
-
:rw, :rwc, :rwe, :rwl, :rws,
|
23
|
-
:w0c, :w0crs, :w0s, :w0src, :w0t, :w0trg,
|
24
|
-
:w1, :w1c, :w1crs, :w1s, :w1src, :w1t, :w1trg, :wo, :wo1,
|
25
|
-
:woc, :wos, :wc, :wcrs, :wrc, :wrs, :ws, :wsrc
|
26
|
-
]
|
27
|
-
end
|