rggen-default-register-map 0.20.0 → 0.25.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 +1 -1
- data/lib/rggen/default_register_map.rb +41 -40
- data/lib/rggen/default_register_map/bit_field/bit_assignment.rb +37 -9
- data/lib/rggen/default_register_map/bit_field/initial_value.rb +3 -2
- data/lib/rggen/default_register_map/bit_field/type.rb +5 -0
- data/lib/rggen/default_register_map/bit_field/type/rw_w1_wrc_wrs.rb +9 -0
- data/lib/rggen/default_register_map/bit_field/type/{w0c_w1c.rb → w0c_w1c_wc.rb} +1 -1
- data/lib/rggen/default_register_map/bit_field/type/{w0crs_w1crs_w0src_w1src.rb → w0crs_w1crs_wcrs.rb} +1 -1
- data/lib/rggen/default_register_map/bit_field/type/{w0s_w1s.rb → w0s_w1s_ws.rb} +1 -1
- data/lib/rggen/default_register_map/bit_field/type/w0src_w1src_wsrc.rb +9 -0
- data/lib/rggen/default_register_map/bit_field/type/{rw_w1.rb → w0t_w1t.rb} +1 -1
- data/lib/rggen/default_register_map/bit_field/type/woc.rb +9 -0
- data/lib/rggen/default_register_map/bit_field/type/wos.rb +8 -0
- data/lib/rggen/default_register_map/common/comment.rb +18 -0
- data/lib/rggen/default_register_map/global/address_width.rb +3 -6
- data/lib/rggen/default_register_map/global/bus_width.rb +3 -6
- data/lib/rggen/default_register_map/register/offset_address.rb +16 -14
- data/lib/rggen/default_register_map/register/type.rb +9 -13
- data/lib/rggen/default_register_map/register/type/indirect.rb +4 -4
- data/lib/rggen/default_register_map/register/type/reserved.rb +10 -0
- data/lib/rggen/default_register_map/register_block/byte_size.rb +3 -6
- data/lib/rggen/default_register_map/register_file/offset_address.rb +3 -6
- data/lib/rggen/default_register_map/setup.rb +14 -7
- data/lib/rggen/default_register_map/version.rb +1 -1
- metadata +15 -10
- data/lib/rggen/default_register_map/bit_field/comment.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a0b6e48b3b6da6739cbe958694f2a1cf45f22532b41fcc47f7d1eb6cc10869e
|
4
|
+
data.tar.gz: 3eaf3ebd9bd36133bd024cf65858fee3349322c65a43071bfd8b0dd390e4b067
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e76010e8a516197774b91c23a738c4c7b510e351d083a4bdb9c4b2e6455037e801f451ffdfc2bb58f45a23cb3904ddd25995f8c2eddb40da4e1dde396c82f208
|
7
|
+
data.tar.gz: 33edbad2da7140c757901aa8bebdae1b17fbe81209e51864fde2ef7be7d41d8fd971ad7e861fa60075eeb27ab76a97347d6080e387811343fc72713e8932a17c
|
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2019-
|
3
|
+
Copyright (c) 2019-2021 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
@@ -38,7 +38,7 @@ Feedbacks, bug reports, questions and etc. are wellcome! You can post them by us
|
|
38
38
|
|
39
39
|
## Copyright & License
|
40
40
|
|
41
|
-
Copyright © 2019-
|
41
|
+
Copyright © 2019-2021 Taichi Ishitani. RgGen::DefaultRegisterMap is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
|
42
42
|
|
43
43
|
## Code of Conduct
|
44
44
|
|
@@ -4,47 +4,48 @@ require_relative 'default_register_map/version'
|
|
4
4
|
|
5
5
|
module RgGen
|
6
6
|
module DefaultRegisterMap
|
7
|
-
|
8
|
-
'default_register_map/bit_field/bit_assignment',
|
9
|
-
'default_register_map/bit_field/comment',
|
10
|
-
'default_register_map/bit_field/initial_value',
|
11
|
-
'default_register_map/bit_field/name',
|
12
|
-
'default_register_map/bit_field/reference',
|
13
|
-
'default_register_map/bit_field/type',
|
14
|
-
'default_register_map/bit_field/type/rc',
|
15
|
-
'default_register_map/bit_field/type/reserved',
|
16
|
-
'default_register_map/bit_field/type/ro',
|
17
|
-
'default_register_map/bit_field/type/rof',
|
18
|
-
'default_register_map/bit_field/type/rs',
|
19
|
-
'default_register_map/bit_field/type/rw_w1',
|
20
|
-
'default_register_map/bit_field/type/rwc_rws',
|
21
|
-
'default_register_map/bit_field/type/rwe_rwl',
|
22
|
-
'default_register_map/bit_field/type/w0c_w1c',
|
23
|
-
'default_register_map/bit_field/type/w0crs_w1crs_w0src_w1src',
|
24
|
-
'default_register_map/bit_field/type/w0s_w1s',
|
25
|
-
'default_register_map/bit_field/type/w0trg_w1trg',
|
26
|
-
'default_register_map/bit_field/type/wo_wo1',
|
27
|
-
'default_register_map/global/address_width',
|
28
|
-
'default_register_map/global/bus_width',
|
29
|
-
'default_register_map/register/name',
|
30
|
-
'default_register_map/register/offset_address',
|
31
|
-
'default_register_map/register/size',
|
32
|
-
'default_register_map/register/type',
|
33
|
-
'default_register_map/register/type/external',
|
34
|
-
'default_register_map/register/type/indirect',
|
35
|
-
'default_register_map/register_block/byte_size',
|
36
|
-
'default_register_map/register_block/name',
|
37
|
-
'default_register_map/register_file/name',
|
38
|
-
'default_register_map/register_file/offset_address',
|
39
|
-
'default_register_map/register_file/size'
|
40
|
-
].freeze
|
7
|
+
extend Core::Plugin
|
41
8
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
9
|
+
setup_plugin :'rggen-default-register-map' do |plugin|
|
10
|
+
plugin.files [
|
11
|
+
'default_register_map/bit_field/bit_assignment',
|
12
|
+
'default_register_map/bit_field/initial_value',
|
13
|
+
'default_register_map/bit_field/name',
|
14
|
+
'default_register_map/bit_field/reference',
|
15
|
+
'default_register_map/bit_field/type',
|
16
|
+
'default_register_map/bit_field/type/rc',
|
17
|
+
'default_register_map/bit_field/type/reserved',
|
18
|
+
'default_register_map/bit_field/type/ro',
|
19
|
+
'default_register_map/bit_field/type/rof',
|
20
|
+
'default_register_map/bit_field/type/rs',
|
21
|
+
'default_register_map/bit_field/type/rw_w1_wrc_wrs',
|
22
|
+
'default_register_map/bit_field/type/rwc_rws',
|
23
|
+
'default_register_map/bit_field/type/rwe_rwl',
|
24
|
+
'default_register_map/bit_field/type/w0c_w1c_wc',
|
25
|
+
'default_register_map/bit_field/type/w0crs_w1crs_wcrs',
|
26
|
+
'default_register_map/bit_field/type/w0s_w1s_ws',
|
27
|
+
'default_register_map/bit_field/type/w0src_w1src_wsrc',
|
28
|
+
'default_register_map/bit_field/type/w0t_w1t',
|
29
|
+
'default_register_map/bit_field/type/w0trg_w1trg',
|
30
|
+
'default_register_map/bit_field/type/wo_wo1',
|
31
|
+
'default_register_map/bit_field/type/woc',
|
32
|
+
'default_register_map/bit_field/type/wos',
|
33
|
+
'default_register_map/common/comment',
|
34
|
+
'default_register_map/global/address_width',
|
35
|
+
'default_register_map/global/bus_width',
|
36
|
+
'default_register_map/register/name',
|
37
|
+
'default_register_map/register/offset_address',
|
38
|
+
'default_register_map/register/size',
|
39
|
+
'default_register_map/register/type',
|
40
|
+
'default_register_map/register/type/external',
|
41
|
+
'default_register_map/register/type/indirect',
|
42
|
+
'default_register_map/register/type/reserved',
|
43
|
+
'default_register_map/register_block/byte_size',
|
44
|
+
'default_register_map/register_block/name',
|
45
|
+
'default_register_map/register_file/name',
|
46
|
+
'default_register_map/register_file/offset_address',
|
47
|
+
'default_register_map/register_file/size'
|
48
|
+
]
|
48
49
|
end
|
49
50
|
end
|
50
51
|
end
|
@@ -1,6 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
RgGen.define_simple_feature(:bit_field, :bit_assignment) do
|
4
|
+
configuration do
|
5
|
+
property :bit_assignment, default: :width_first
|
6
|
+
|
7
|
+
input_pattern [width_first: /width_first/i, lsb_first: /lsb_first/i]
|
8
|
+
ignore_empty_value false
|
9
|
+
|
10
|
+
build do |value|
|
11
|
+
pattern_matched? ||
|
12
|
+
(error "illegal input value for bit assignment: #{value.inspect}")
|
13
|
+
@bit_assignment = match_index
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
4
17
|
register_map do
|
5
18
|
property :lsb, forward_to: :lsb_bit
|
6
19
|
property :msb, forward_to: :msb_bit
|
@@ -15,7 +28,9 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
|
|
15
28
|
|
16
29
|
build do |value|
|
17
30
|
input_value = preprocess(value)
|
18
|
-
|
31
|
+
helper.variable_names.each do |key, variable_name|
|
32
|
+
parse_value(input_value, key, variable_name)
|
33
|
+
end
|
19
34
|
end
|
20
35
|
|
21
36
|
verify(:feature) do
|
@@ -61,11 +76,13 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
|
|
61
76
|
|
62
77
|
private
|
63
78
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
79
|
+
define_helpers do
|
80
|
+
def variable_names
|
81
|
+
@variable_names ||= {
|
82
|
+
width: :@width, lsb: :@lsb_base, sequence_size: :@sequence_size, step: :@step
|
83
|
+
}.freeze
|
84
|
+
end
|
85
|
+
end
|
69
86
|
|
70
87
|
def preprocess(value)
|
71
88
|
if value.is_a?(Hash)
|
@@ -81,13 +98,24 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
|
|
81
98
|
match_data
|
82
99
|
.to_s
|
83
100
|
.split(':')
|
84
|
-
.map.with_index { |value, i| [
|
101
|
+
.map.with_index { |value, i| [variable_key(i), value] }
|
85
102
|
.to_h
|
86
103
|
end
|
87
104
|
|
88
|
-
def
|
105
|
+
def variable_key(index)
|
106
|
+
@keys ||=
|
107
|
+
if configuration.bit_assignment == :width_first
|
108
|
+
helper.variable_names.keys
|
109
|
+
else
|
110
|
+
keys = helper.variable_names.keys
|
111
|
+
[keys[1], keys[0], *keys[2..-1]]
|
112
|
+
end
|
113
|
+
@keys[index]
|
114
|
+
end
|
115
|
+
|
116
|
+
def parse_value(input_value, key, variable_name)
|
89
117
|
input_value.key?(key) &&
|
90
|
-
instance_variable_set(
|
118
|
+
instance_variable_set(variable_name, Integer(input_value[key]))
|
91
119
|
rescue ArgumentError, TypeError
|
92
120
|
error "cannot convert #{input_value[key].inspect} into " \
|
93
121
|
"bit assignment(#{key.to_s.tr('_', ' ')})"
|
@@ -121,9 +121,10 @@ RgGen.define_simple_feature(:bit_field, :initial_value) do
|
|
121
121
|
end
|
122
122
|
|
123
123
|
def parse_initial_value(input_value)
|
124
|
-
|
124
|
+
case @input_format
|
125
|
+
when :parameterized
|
125
126
|
[parse_parameterized_initial_value(input_value), nil]
|
126
|
-
|
127
|
+
when :array
|
127
128
|
[nil, parse_arrayed_initial_value(input_value)]
|
128
129
|
else
|
129
130
|
[parse_value(input_value), nil]
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
[:register_block, :register_file, :register, :bit_field].each do |layer|
|
4
|
+
RgGen.define_simple_feature(layer, :comment) do
|
5
|
+
register_map do
|
6
|
+
property :comment, initial: -> { '' }
|
7
|
+
|
8
|
+
build do |value|
|
9
|
+
@comment =
|
10
|
+
(value.is_a?(Array) && value.join("\n") || value.to_s).chomp
|
11
|
+
end
|
12
|
+
|
13
|
+
printable :comment do
|
14
|
+
comment.empty? ? nil : comment
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -5,12 +5,9 @@ RgGen.define_simple_feature(:global, :address_width) do
|
|
5
5
|
property :address_width, default: 32
|
6
6
|
|
7
7
|
build do |value|
|
8
|
-
@address_width =
|
9
|
-
|
10
|
-
|
11
|
-
rescue ArgumentError, TypeError
|
12
|
-
error "cannot convert #{value.inspect} into address width"
|
13
|
-
end
|
8
|
+
@address_width = Integer(value)
|
9
|
+
rescue ArgumentError, TypeError
|
10
|
+
error "cannot convert #{value.inspect} into address width"
|
14
11
|
end
|
15
12
|
|
16
13
|
verify(:component) do
|
@@ -6,12 +6,9 @@ RgGen.define_simple_feature(:global, :bus_width) do
|
|
6
6
|
property :byte_width, initial: -> { bus_width / 8 }
|
7
7
|
|
8
8
|
build do |value|
|
9
|
-
@bus_width =
|
10
|
-
|
11
|
-
|
12
|
-
rescue ArgumentError, TypeError
|
13
|
-
error "cannot convert #{value.inspect} into bus width"
|
14
|
-
end
|
9
|
+
@bus_width = Integer(value)
|
10
|
+
rescue ArgumentError, TypeError
|
11
|
+
error "cannot convert #{value.inspect} into bus width"
|
15
12
|
end
|
16
13
|
|
17
14
|
verify(:feature) do
|
@@ -5,15 +5,12 @@ RgGen.define_simple_feature(:register, :offset_address) do
|
|
5
5
|
property :offset_address, initial: -> { default_offset_address }
|
6
6
|
property :expanded_offset_addresses, forward_to: :expand_addresses
|
7
7
|
property :address_range, initial: -> { start_address..end_address }
|
8
|
-
property :overlap?,
|
8
|
+
property :overlap?, body: ->(other) { overlap_address_range?(other, false) }
|
9
9
|
|
10
10
|
build do |value|
|
11
|
-
@offset_address =
|
12
|
-
|
13
|
-
|
14
|
-
rescue ArgumentError, TypeError
|
15
|
-
error "cannot convert #{value.inspect} into offset address"
|
16
|
-
end
|
11
|
+
@offset_address = Integer(value)
|
12
|
+
rescue ArgumentError, TypeError
|
13
|
+
error "cannot convert #{value.inspect} into offset address"
|
17
14
|
end
|
18
15
|
|
19
16
|
verify(:feature) do
|
@@ -44,7 +41,7 @@ RgGen.define_simple_feature(:register, :offset_address) do
|
|
44
41
|
verify(:component) do
|
45
42
|
error_condition do
|
46
43
|
files_and_registers.any? do |other|
|
47
|
-
overlap_address_range?(other
|
44
|
+
overlap_address_range?(other, true)
|
48
45
|
end
|
49
46
|
end
|
50
47
|
message do
|
@@ -96,8 +93,9 @@ RgGen.define_simple_feature(:register, :offset_address) do
|
|
96
93
|
configuration.byte_width
|
97
94
|
end
|
98
95
|
|
99
|
-
def overlap_address_range?(other)
|
100
|
-
overlap_range?(other) &&
|
96
|
+
def overlap_address_range?(other, sharable)
|
97
|
+
overlap_range?(other) &&
|
98
|
+
(exclusive_range?(other) || competitive_access?(other, sharable))
|
101
99
|
end
|
102
100
|
|
103
101
|
def overlap_range?(other)
|
@@ -106,13 +104,17 @@ RgGen.define_simple_feature(:register, :offset_address) do
|
|
106
104
|
self_range.include?(othre_range.first) || othre_range.include?(self_range.first)
|
107
105
|
end
|
108
106
|
|
109
|
-
def
|
110
|
-
other.register_file? ||
|
107
|
+
def exclusive_range?(other)
|
108
|
+
other.register_file? || other.reserved? || register.reserved?
|
109
|
+
end
|
110
|
+
|
111
|
+
def competitive_access?(other, sharable)
|
112
|
+
!sharable_range?(other, sharable) &&
|
111
113
|
[:writable?, :readable?].any? { |access| [register, other].all?(&access) }
|
112
114
|
end
|
113
115
|
|
114
|
-
def
|
115
|
-
|
116
|
+
def sharable_range?(other, sharable)
|
117
|
+
sharable && shared_address? && register.match_type?(other)
|
116
118
|
end
|
117
119
|
|
118
120
|
def shared_address?
|
@@ -40,6 +40,7 @@ RgGen.define_list_feature(:register, :type) do
|
|
40
40
|
property :match_type?, body: ->(register) { register.type == type }
|
41
41
|
property :writable?, initial: -> { writability }
|
42
42
|
property :readable?, initial: -> { readability }
|
43
|
+
property :reserved?, initial: -> { !(writable? || readable?) }
|
43
44
|
property :settings, forward_to_helper: true
|
44
45
|
|
45
46
|
build do |value|
|
@@ -48,6 +49,10 @@ RgGen.define_list_feature(:register, :type) do
|
|
48
49
|
helper.need_bit_fields? || register.need_no_children
|
49
50
|
end
|
50
51
|
|
52
|
+
post_build do
|
53
|
+
reserved? && register.document_only
|
54
|
+
end
|
55
|
+
|
51
56
|
verify(:component) do
|
52
57
|
error_condition do
|
53
58
|
helper.need_bit_fields? && register.bit_fields.empty?
|
@@ -62,22 +67,13 @@ RgGen.define_list_feature(:register, :type) do
|
|
62
67
|
attr_reader :options
|
63
68
|
|
64
69
|
def writability
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
def default_writability
|
69
|
-
-> { register.bit_fields.any?(&:writable?) }
|
70
|
+
block = helper.writability || -> { register.bit_fields.any?(&:writable?) }
|
71
|
+
instance_exec(&block)
|
70
72
|
end
|
71
73
|
|
72
74
|
def readability
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
def default_readability
|
77
|
-
lambda do
|
78
|
-
block = ->(bit_field) { bit_field.readable? || bit_field.reserved? }
|
79
|
-
register.bit_fields.any?(&block)
|
80
|
-
end
|
75
|
+
block = helper.readability || -> { register.bit_fields.any?(&:readable?) }
|
76
|
+
instance_exec(&block)
|
81
77
|
end
|
82
78
|
end
|
83
79
|
|
@@ -180,13 +180,13 @@ RgGen.define_list_item_feature(:register, :type, :indirect) do
|
|
180
180
|
|
181
181
|
def create_index_entry(value)
|
182
182
|
input_values = split_value(value)
|
183
|
-
|
183
|
+
case input_values.size
|
184
|
+
when 2
|
184
185
|
index_entry.new(input_values[0], convert_index_value(input_values[1]))
|
185
|
-
|
186
|
+
when 1
|
186
187
|
index_entry.new(input_values[0])
|
187
188
|
else
|
188
|
-
error
|
189
|
-
"are given: #{value.inspect}"
|
189
|
+
error "too many arguments for indirect index are given: #{value.inspect}"
|
190
190
|
end
|
191
191
|
end
|
192
192
|
|
@@ -6,13 +6,10 @@ RgGen.define_simple_feature(:register_block, :byte_size) do
|
|
6
6
|
property :local_address_width
|
7
7
|
|
8
8
|
build do |value|
|
9
|
-
@byte_size =
|
10
|
-
begin
|
11
|
-
Integer(value)
|
12
|
-
rescue ArgumentError, TypeError
|
13
|
-
error "cannot convert #{value.inspect} into byte size"
|
14
|
-
end
|
9
|
+
@byte_size = Integer(value)
|
15
10
|
@local_address_width = (@byte_size - 1).bit_length
|
11
|
+
rescue ArgumentError, TypeError
|
12
|
+
error "cannot convert #{value.inspect} into byte size"
|
16
13
|
end
|
17
14
|
|
18
15
|
verify(:feature) do
|
@@ -7,12 +7,9 @@ RgGen.define_simple_feature(:register_file, :offset_address) do
|
|
7
7
|
property :address_range, initial: -> { start_address..end_address }
|
8
8
|
|
9
9
|
build do |value|
|
10
|
-
@offset_address =
|
11
|
-
|
12
|
-
|
13
|
-
rescue ArgumentError, TypeError
|
14
|
-
error "cannot convert #{value.inspect} into offset address"
|
15
|
-
end
|
10
|
+
@offset_address = Integer(value)
|
11
|
+
rescue ArgumentError, TypeError
|
12
|
+
error "cannot convert #{value.inspect} into offset address"
|
16
13
|
end
|
17
14
|
|
18
15
|
verify(:feature) do
|
@@ -2,19 +2,26 @@
|
|
2
2
|
|
3
3
|
require 'rggen/default_register_map'
|
4
4
|
|
5
|
-
RgGen.
|
5
|
+
RgGen.register_plugin RgGen::DefaultRegisterMap do |builder|
|
6
6
|
builder.enable :global, [:bus_width, :address_width]
|
7
|
-
builder.enable :register_block, [
|
8
|
-
|
9
|
-
|
10
|
-
builder.enable :
|
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]
|
11
17
|
builder.enable :bit_field, [
|
12
18
|
:name, :bit_assignment, :type, :initial_value, :reference, :comment
|
13
19
|
]
|
14
20
|
builder.enable :bit_field, :type, [
|
15
21
|
:rc, :reserved, :ro, :rof, :rs,
|
16
22
|
:rw, :rwc, :rwe, :rwl, :rws,
|
17
|
-
:w0c, :w0crs, :w0s, :w0src, :w0trg,
|
18
|
-
:w1, :w1c, :w1crs, :w1s, :w1src, :w1trg, :wo, :wo1
|
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
|
19
26
|
]
|
20
27
|
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.25.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: 2021-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -36,7 +36,6 @@ 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
|
40
39
|
- lib/rggen/default_register_map/bit_field/initial_value.rb
|
41
40
|
- lib/rggen/default_register_map/bit_field/name.rb
|
42
41
|
- lib/rggen/default_register_map/bit_field/reference.rb
|
@@ -46,14 +45,19 @@ files:
|
|
46
45
|
- lib/rggen/default_register_map/bit_field/type/ro.rb
|
47
46
|
- lib/rggen/default_register_map/bit_field/type/rof.rb
|
48
47
|
- lib/rggen/default_register_map/bit_field/type/rs.rb
|
49
|
-
- lib/rggen/default_register_map/bit_field/type/
|
48
|
+
- lib/rggen/default_register_map/bit_field/type/rw_w1_wrc_wrs.rb
|
50
49
|
- lib/rggen/default_register_map/bit_field/type/rwc_rws.rb
|
51
50
|
- lib/rggen/default_register_map/bit_field/type/rwe_rwl.rb
|
52
|
-
- lib/rggen/default_register_map/bit_field/type/
|
53
|
-
- lib/rggen/default_register_map/bit_field/type/
|
54
|
-
- lib/rggen/default_register_map/bit_field/type/
|
51
|
+
- lib/rggen/default_register_map/bit_field/type/w0c_w1c_wc.rb
|
52
|
+
- lib/rggen/default_register_map/bit_field/type/w0crs_w1crs_wcrs.rb
|
53
|
+
- lib/rggen/default_register_map/bit_field/type/w0s_w1s_ws.rb
|
54
|
+
- lib/rggen/default_register_map/bit_field/type/w0src_w1src_wsrc.rb
|
55
|
+
- lib/rggen/default_register_map/bit_field/type/w0t_w1t.rb
|
55
56
|
- lib/rggen/default_register_map/bit_field/type/w0trg_w1trg.rb
|
56
57
|
- lib/rggen/default_register_map/bit_field/type/wo_wo1.rb
|
58
|
+
- lib/rggen/default_register_map/bit_field/type/woc.rb
|
59
|
+
- lib/rggen/default_register_map/bit_field/type/wos.rb
|
60
|
+
- lib/rggen/default_register_map/common/comment.rb
|
57
61
|
- lib/rggen/default_register_map/global/address_width.rb
|
58
62
|
- lib/rggen/default_register_map/global/bus_width.rb
|
59
63
|
- lib/rggen/default_register_map/register/name.rb
|
@@ -62,6 +66,7 @@ files:
|
|
62
66
|
- lib/rggen/default_register_map/register/type.rb
|
63
67
|
- lib/rggen/default_register_map/register/type/external.rb
|
64
68
|
- lib/rggen/default_register_map/register/type/indirect.rb
|
69
|
+
- lib/rggen/default_register_map/register/type/reserved.rb
|
65
70
|
- lib/rggen/default_register_map/register_block/byte_size.rb
|
66
71
|
- lib/rggen/default_register_map/register_block/name.rb
|
67
72
|
- lib/rggen/default_register_map/register_file/name.rb
|
@@ -85,15 +90,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
85
90
|
requirements:
|
86
91
|
- - ">="
|
87
92
|
- !ruby/object:Gem::Version
|
88
|
-
version: '2.
|
93
|
+
version: '2.5'
|
89
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
95
|
requirements:
|
91
96
|
- - ">="
|
92
97
|
- !ruby/object:Gem::Version
|
93
98
|
version: '0'
|
94
99
|
requirements: []
|
95
|
-
rubygems_version: 3.
|
100
|
+
rubygems_version: 3.2.3
|
96
101
|
signing_key:
|
97
102
|
specification_version: 4
|
98
|
-
summary: rggen-default-register-map-0.
|
103
|
+
summary: rggen-default-register-map-0.25.0
|
99
104
|
test_files: []
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
RgGen.define_simple_feature(:bit_field, :comment) do
|
4
|
-
register_map do
|
5
|
-
property :comment, body: -> { @comment ||= '' }
|
6
|
-
|
7
|
-
build do |value|
|
8
|
-
@comment =
|
9
|
-
if value.is_a?(Array)
|
10
|
-
value.join("\n")
|
11
|
-
else
|
12
|
-
value.to_s
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
printable :comment
|
17
|
-
end
|
18
|
-
end
|