rggen-default-register-map 0.23.0 → 0.24.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 +40 -46
- data/lib/rggen/default_register_map/bit_field/bit_assignment.rb +13 -7
- data/lib/rggen/default_register_map/bit_field/initial_value.rb +3 -2
- data/lib/rggen/default_register_map/register/type/indirect.rb +4 -4
- data/lib/rggen/default_register_map/setup.rb +1 -1
- data/lib/rggen/default_register_map/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 31786d4f412d28362fe13510c065488bdcc4f630e70323d8bfd00f18252d4889
|
|
4
|
+
data.tar.gz: 2acbf4af3aecaf5b95e2f209b995a9c7a2638e19e3ded7b77c097f9161472e8d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1b04ed8512a8cdc99e43864778926d59d1497d00a99c031eaea61887104d993ebdb84e8034ee6ae09fccd5e8b22b552761c0dbad1332c95aa96a9d47c9922a92
|
|
7
|
+
data.tar.gz: a1ace1cd824758b1f6a349d4586d04b05bee0f48a2c17a6f4d49375a7895b80573d654871e0c254578fb79681a98d244323ebc3f6bcd548b4c0119a6f1ea1703
|
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,53 +4,47 @@ require_relative 'default_register_map/version'
|
|
|
4
4
|
|
|
5
5
|
module RgGen
|
|
6
6
|
module DefaultRegisterMap
|
|
7
|
-
|
|
7
|
+
extend Core::Plugin
|
|
8
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
|
-
def self.load_features
|
|
49
|
-
FEATURES.each { |file| require_relative file }
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def self.default_setup(_builder)
|
|
53
|
-
load_features
|
|
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_block/byte_size',
|
|
43
|
+
'default_register_map/register_block/name',
|
|
44
|
+
'default_register_map/register_file/name',
|
|
45
|
+
'default_register_map/register_file/offset_address',
|
|
46
|
+
'default_register_map/register_file/size'
|
|
47
|
+
]
|
|
54
48
|
end
|
|
55
49
|
end
|
|
56
50
|
end
|
|
@@ -15,7 +15,7 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
|
|
|
15
15
|
|
|
16
16
|
build do |value|
|
|
17
17
|
input_value = preprocess(value)
|
|
18
|
-
|
|
18
|
+
helper.variable_keys.each { |key| parse_value(input_value, key) }
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
verify(:feature) do
|
|
@@ -61,11 +61,17 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
|
|
|
61
61
|
|
|
62
62
|
private
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
define_helpers do
|
|
65
|
+
def variable_names
|
|
66
|
+
@variable_names ||= {
|
|
67
|
+
lsb: :@lsb_base, width: :@width, sequence_size: :@sequence_size, step: :@step
|
|
68
|
+
}.freeze
|
|
69
|
+
end
|
|
67
70
|
|
|
68
|
-
|
|
71
|
+
def variable_keys
|
|
72
|
+
@variable_keys ||= variable_names.keys
|
|
73
|
+
end
|
|
74
|
+
end
|
|
69
75
|
|
|
70
76
|
def preprocess(value)
|
|
71
77
|
if value.is_a?(Hash)
|
|
@@ -81,13 +87,13 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
|
|
|
81
87
|
match_data
|
|
82
88
|
.to_s
|
|
83
89
|
.split(':')
|
|
84
|
-
.map.with_index { |value, i| [
|
|
90
|
+
.map.with_index { |value, i| [helper.variable_keys[i], value] }
|
|
85
91
|
.to_h
|
|
86
92
|
end
|
|
87
93
|
|
|
88
94
|
def parse_value(input_value, key)
|
|
89
95
|
input_value.key?(key) &&
|
|
90
|
-
instance_variable_set(
|
|
96
|
+
instance_variable_set(helper.variable_names[key], Integer(input_value[key]))
|
|
91
97
|
rescue ArgumentError, TypeError
|
|
92
98
|
error "cannot convert #{input_value[key].inspect} into " \
|
|
93
99
|
"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]
|
|
@@ -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
|
|
|
@@ -2,7 +2,7 @@
|
|
|
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
7
|
builder.enable :register_block, [
|
|
8
8
|
:name, :byte_size, :comment
|
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.24.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-01-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -96,8 +96,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
96
96
|
- !ruby/object:Gem::Version
|
|
97
97
|
version: '0'
|
|
98
98
|
requirements: []
|
|
99
|
-
rubygems_version: 3.
|
|
99
|
+
rubygems_version: 3.2.3
|
|
100
100
|
signing_key:
|
|
101
101
|
specification_version: 4
|
|
102
|
-
summary: rggen-default-register-map-0.
|
|
102
|
+
summary: rggen-default-register-map-0.24.0
|
|
103
103
|
test_files: []
|