rggen-default-register-map 0.23.0 → 0.24.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|