rggen-systemverilog 0.27.1 → 0.29.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b163ec13c4940ca6d489739aaae909dd3d189627eff20383cef519537bade127
4
- data.tar.gz: 6bdfd55721b6e7c1a7250eed73cb5ca6ce1a2dba28d57e134b06b601397afabe
3
+ metadata.gz: 7e5fc548cd3c93e80580efc9d2027ce309b9a6e8900078f3f5bf8bb157357e53
4
+ data.tar.gz: 4fb5af7f5ad76f4938406a553fe425767e2fc363ce79b79b07213fd292535efb
5
5
  SHA512:
6
- metadata.gz: f8327405b12e0d43ab8801772b85efd57f0a71f856f0f07efec961d97c7b70c4bacee05968303a41178201e9b90a16b289af24b23a71cb403ed5949fbeba0251
7
- data.tar.gz: be673375b40e9d4c8241be45a4feb8ee4a09d815bc4ecd0926759f058dea021e8588b270de22408f8a34fa8cb5f50772f51addc47b3cfa60dba0c858064bccbd
6
+ metadata.gz: 34cc65c49e1510303e8ca8ed7d16b941bfd331d66188602ecdf41a61cc9b1b0a627f56d33c3ba6b44b0c2e56ca1c44a896893ad3d82070a72b5cfb913e5a28b5
7
+ data.tar.gz: 55600c8bf365ffbbc2d8cc6b020e6cb13c33ebb91f49253d53cef0c5a7a5df86d639a61cc0a1eb2aa5d2a36d86530236e837735721da55def694c2a1c19c9d74
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2019-2022 Taichi Ishitani
3
+ Copyright (c) 2019-2023 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
@@ -35,7 +35,7 @@ Feedbacks, bug reports, questions and etc. are wellcome! You can post them by us
35
35
 
36
36
  ## Copyright & License
37
37
 
38
- Copyright © 2019-2022 Taichi Ishitani. RgGen::SystemVerilog is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
38
+ Copyright © 2019-2023 Taichi Ishitani. RgGen::SystemVerilog is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
39
39
 
40
40
  ## Code of Conduct
41
41
 
@@ -76,8 +76,8 @@ module RgGen
76
76
  def __serialized_lsb__(array_index, lsb)
77
77
  index =
78
78
  array_index
79
- .yield_self(&method(:__serialized_index__))
80
- .yield_self(&method(:__enclose_index_in_parenthesis))
79
+ .then(&method(:__serialized_index__))
80
+ .then(&method(:__enclose_index_in_parenthesis))
81
81
  array_lsb = __reduce_array__([@width, index], :*, 1)
82
82
  __reduce_array__([array_lsb, lsb], :+, 0)
83
83
  end
@@ -87,7 +87,7 @@ module RgGen
87
87
  .reverse
88
88
  .zip(__index_factors__)
89
89
  .map { |i, f| __calc_index_value__(i, f) }
90
- .yield_self { |values| __reduce_array__(values.reverse, :+, 0) }
90
+ .then { |values| __reduce_array__(values.reverse, :+, 0) }
91
91
  end
92
92
 
93
93
  def __enclose_index_in_parenthesis(index)
@@ -8,6 +8,7 @@ module RgGen
8
8
  define_attribute :name
9
9
  define_attribute :package_imports
10
10
  define_attribute :include_files
11
+ define_attribute :parameters
11
12
 
12
13
  def package_imports(packages)
13
14
  @package_imports ||= []
@@ -36,21 +37,28 @@ module RgGen
36
37
  def pre_body_code(code)
37
38
  package_import_declaration(code)
38
39
  file_include_directives(code)
40
+ parameter_declarations(code)
39
41
  end
40
42
 
41
43
  def package_import_declaration(code)
42
44
  declarations =
43
- Array(@package_imports)
44
- .map { |package| ['import', space, package, '::*'] }
45
- add_declarations_to_body(code, declarations)
45
+ @package_imports
46
+ &.map { |package| ['import', space, package, '::*'] }
47
+ declarations &&
48
+ add_declarations_to_body(code, declarations)
46
49
  end
47
50
 
48
51
  def file_include_directives(code)
49
- Array(@include_files).each do |file|
52
+ @include_files&.each do |file|
50
53
  code << ['`include', space, string(file), nl]
51
54
  end
52
55
  end
53
56
 
57
+ def parameter_declarations(code)
58
+ parameters &&
59
+ add_declarations_to_body(code, parameters)
60
+ end
61
+
54
62
  def footer_code
55
63
  'endpackage'
56
64
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, :custom) do
4
+ sv_ral do
5
+ model_name do
6
+ 'rggen_ral_custom_field ' \
7
+ "#(#{sw_read}, #{sw_write}, #{write_once}, #{hw_update})"
8
+ end
9
+
10
+ private
11
+
12
+ def sw_read
13
+ string(bit_field.sw_read.upcase)
14
+ end
15
+
16
+ def sw_write
17
+ string(bit_field.sw_write.upcase)
18
+ end
19
+
20
+ def write_once
21
+ bit_field.sw_write_once? && 1 || 0
22
+ end
23
+
24
+ def hw_update
25
+ bit_field.hw_update? && 1 || 0
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, [:rof, :rol]) do
4
+ sv_ral { access 'RO' }
5
+ end
@@ -22,7 +22,8 @@ RgGen.setup_plugin :'rggen-sv-ral' do |plugin|
22
22
  'ral/register/type/external',
23
23
  'ral/register/type/indirect',
24
24
  'ral/bit_field/type',
25
- 'ral/bit_field/type/rof',
25
+ 'ral/bit_field/type/custom',
26
+ 'ral/bit_field/type/rof_rol',
26
27
  'ral/bit_field/type/rotrg_rwtrg_wotrg',
27
28
  'ral/bit_field/type/row0trg_row1trg_w0trg_w1trg',
28
29
  'ral/bit_field/type/rowo_rowotrg',
@@ -0,0 +1,25 @@
1
+ rggen_bit_field #(
2
+ .WIDTH (<%= width %>),
3
+ .INITIAL_VALUE (<%= initial_value %>),
4
+ .SW_READ_ACTION (<%= sw_read_action %>),
5
+ .SW_WRITE_ACTION (<%= sw_write_action %>),
6
+ .SW_WRITE_ONCE (<%= write_once %>),
7
+ .STORAGE (<%= storage %>),
8
+ .EXTERNAL_READ_DATA (<%= external_read_data %>),
9
+ .TRIGGER (<%= trigger %>)
10
+ ) u_bit_field (
11
+ .i_clk (i_clk),
12
+ .i_rst_n (i_rst_n),
13
+ .bit_field_if (bit_field_sub_if),
14
+ .o_write_trigger (<%= output_port(:write_trigger) %>),
15
+ .o_read_trigger (<%= output_port(:read_trigger) %>),
16
+ .i_sw_write_enable ('1),
17
+ .i_hw_write_enable (<%= input_port(:hw_write_enable) %>),
18
+ .i_hw_write_data (<%= input_port(:hw_write_data) %>),
19
+ .i_hw_set (<%= input_port(:hw_set) %>),
20
+ .i_hw_clear (<%= input_port(:hw_clear) %>),
21
+ .i_value (<%= input_port(:value_in) %>),
22
+ .i_mask ('1),
23
+ .o_value (<%= output_port(:value_out) %>),
24
+ .o_value_unmasked ()
25
+ );
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, :custom) do
4
+ sv_rtl do
5
+ build do
6
+ if external_read_data?
7
+ input :value_in, {
8
+ name: "i_#{full_name}", width: width,
9
+ array_size: array_size, array_format: array_port_format
10
+ }
11
+ else
12
+ output :value_out, {
13
+ name: "o_#{full_name}", width: width,
14
+ array_size: array_size, array_format: array_port_format
15
+ }
16
+ end
17
+ if bit_field.hw_write?
18
+ input :hw_write_enable, {
19
+ name: "i_#{full_name}_hw_write_enable", width: 1,
20
+ array_size: array_size, array_format: array_port_format
21
+ }
22
+ input :hw_write_data, {
23
+ name: "i_#{full_name}_hw_write_data", width: width,
24
+ array_size: array_size, array_format: array_port_format
25
+ }
26
+ end
27
+ if bit_field.hw_set?
28
+ input :hw_set, {
29
+ name: "i_#{full_name}_hw_set", width: width,
30
+ array_size: array_size, array_format: array_port_format
31
+ }
32
+ end
33
+ if bit_field.hw_clear?
34
+ input :hw_clear, {
35
+ name: "i_#{full_name}_hw_clear", width: width,
36
+ array_size: array_size, array_format: array_port_format
37
+ }
38
+ end
39
+ if bit_field.write_trigger?
40
+ output :write_trigger, {
41
+ name: "o_#{full_name}_write_trigger", width: 1,
42
+ array_size: array_size, array_format: array_port_format
43
+ }
44
+ end
45
+ if bit_field.read_trigger?
46
+ output :read_trigger, {
47
+ name: "o_#{full_name}_read_trigger", width: 1,
48
+ array_size: array_size, array_format: array_port_format
49
+ }
50
+ end
51
+ end
52
+
53
+ main_code :bit_field, from_template: true
54
+
55
+ private
56
+
57
+ def external_read_data?
58
+ !bit_field.sw_update? && !bit_field.hw_update?
59
+ end
60
+
61
+ def initial_value
62
+ external_read_data? && all_bits_0 || super
63
+ end
64
+
65
+ def sw_read_action
66
+ {
67
+ none: 'RGGEN_READ_NONE',
68
+ default: 'RGGEN_READ_DEFAULT',
69
+ set: 'RGGEN_READ_SET',
70
+ clear: 'RGGEN_READ_CLEAR'
71
+ }[bit_field.sw_read]
72
+ end
73
+
74
+ def sw_write_action
75
+ {
76
+ none: 'RGGEN_WRITE_NONE',
77
+ default: 'RGGEN_WRITE_DEFAULT',
78
+ clear_0: 'RGGEN_WRITE_0_CLEAR',
79
+ clear_1: 'RGGEN_WRITE_1_CLEAR',
80
+ clear: 'RGGEN_WRITE_CLEAR',
81
+ set_0: 'RGGEN_WRITE_0_SET',
82
+ set_1: 'RGGEN_WRITE_1_SET',
83
+ set: 'RGGEN_WRITE_SET',
84
+ toggle_0: 'RGGEN_WRITE_0_TOGGLE',
85
+ toggle_1: 'RGGEN_WRITE_1_TOGGLE'
86
+ }[bit_field.sw_write]
87
+ end
88
+
89
+ def write_once
90
+ bit_field.sw_write_once? && 1 || 0
91
+ end
92
+
93
+ def storage
94
+ external_read_data? && 0 || 1
95
+ end
96
+
97
+ def external_read_data
98
+ external_read_data? && 1 || 0
99
+ end
100
+
101
+ def trigger?
102
+ bit_field.write_trigger? || bit_field.read_trigger?
103
+ end
104
+
105
+ def trigger
106
+ trigger? && 1 || 0
107
+ end
108
+
109
+ def input_port(name)
110
+ find_port(name, all_bits_0)
111
+ end
112
+
113
+ def output_port(name)
114
+ find_port(name, '')
115
+ end
116
+
117
+ def find_port(name, default_value)
118
+ respond_to?(name) && __send__(name)[loop_variables] || default_value
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,20 @@
1
+ rggen_bit_field #(
2
+ .WIDTH (<%= width %>),
3
+ .INITIAL_VALUE (<%= initial_value %>),
4
+ .SW_WRITE_ACTION (RGGEN_WRITE_NONE)
5
+ ) u_bit_field (
6
+ .i_clk (<%= clock %>),
7
+ .i_rst_n (<%= reset %>),
8
+ .bit_field_if (<%= bit_field_if %>),
9
+ .o_write_trigger (),
10
+ .o_read_trigger (),
11
+ .i_sw_write_enable ('1),
12
+ .i_hw_write_enable (<%= latch_signal %>),
13
+ .i_hw_write_data (<%= value_in[loop_variables] %>),
14
+ .i_hw_set ('0),
15
+ .i_hw_clear ('0),
16
+ .i_value ('0),
17
+ .i_mask ('1),
18
+ .o_value (<%= value_out[loop_variables] %>),
19
+ .o_value_unmasked ()
20
+ );
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_list_item_feature(:bit_field, :type, :rol) do
4
+ sv_rtl do
5
+ build do
6
+ unless bit_field.reference?
7
+ input :latch, {
8
+ name: "i_#{full_name}_latch", width: 1,
9
+ array_size: array_size, array_format: array_port_format
10
+ }
11
+ end
12
+ input :value_in, {
13
+ name: "i_#{full_name}", width: width,
14
+ array_size: array_size, array_format: array_port_format
15
+ }
16
+ output :value_out, {
17
+ name: "o_#{full_name}", width: width,
18
+ array_size: array_size, array_format: array_port_format
19
+ }
20
+ end
21
+
22
+ main_code :bit_field, from_template: true
23
+
24
+ private
25
+
26
+ def latch_signal
27
+ reference_bit_field || latch[loop_variables]
28
+ end
29
+ end
30
+ end
@@ -20,7 +20,7 @@ RgGen.define_list_item_feature(
20
20
  end
21
21
 
22
22
  def read_set?
23
- [:w0crs, :w1crs, :wcrs].include?(bit_field.type)
23
+ [:w0crs, :w1crs, :wcrs].any? { |type| bit_field.type == type }
24
24
  end
25
25
 
26
26
  def write_action
@@ -51,9 +51,9 @@ module RgGen
51
51
 
52
52
  def index(offset_or_offsets = nil)
53
53
  offset_or_offsets
54
- .yield_self(&method(:index_operands))
55
- .yield_self(&method(:partial_sums))
56
- .yield_self(&method(:reduce_indices))
54
+ .then(&method(:index_operands))
55
+ .then(&method(:partial_sums))
56
+ .then(&method(:reduce_indices))
57
57
  end
58
58
 
59
59
  def inside_loop?
@@ -27,8 +27,8 @@ module RgGen
27
27
  def offset_address
28
28
  [*register_files, register]
29
29
  .flat_map(&method(:collect_offsets))
30
- .yield_self(&method(:partial_sums))
31
- .yield_self(&method(:format_offsets))
30
+ .then(&method(:partial_sums))
31
+ .then(&method(:format_offsets))
32
32
  end
33
33
 
34
34
  def collect_offsets(component)
@@ -7,6 +7,7 @@ require_relative 'rtl/register_index'
7
7
  require_relative 'rtl/register_type'
8
8
  require_relative 'rtl/indirect_index'
9
9
  require_relative 'rtl/bit_field_index'
10
+ require_relative 'rtl_package/feature'
10
11
 
11
12
  RgGen.setup_plugin :'rggen-sv-rtl' do |plugin|
12
13
  plugin.version RgGen::SystemVerilog::VERSION
@@ -32,9 +33,11 @@ RgGen.setup_plugin :'rggen-sv-rtl' do |plugin|
32
33
  'rtl/register/type/indirect',
33
34
  'rtl/bit_field/sv_rtl_top',
34
35
  'rtl/bit_field/type',
36
+ 'rtl/bit_field/type/custom',
35
37
  'rtl/bit_field/type/rc_w0c_w1c_wc_woc',
36
38
  'rtl/bit_field/type/ro_rotrg',
37
39
  'rtl/bit_field/type/rof',
40
+ 'rtl/bit_field/type/rol',
38
41
  'rtl/bit_field/type/row0trg_row1trg',
39
42
  'rtl/bit_field/type/rowo_rowotrg',
40
43
  'rtl/bit_field/type/rs_w0s_w1s_ws_wos',
@@ -48,4 +51,17 @@ RgGen.setup_plugin :'rggen-sv-rtl' do |plugin|
48
51
  'rtl/bit_field/type/wo_wo1_wotrg',
49
52
  'rtl/bit_field/type/wrc_wrs'
50
53
  ]
54
+
55
+ plugin.register_component :sv_rtl_package do
56
+ component RgGen::SystemVerilog::Common::Component,
57
+ RgGen::SystemVerilog::Common::ComponentFactory
58
+ feature RgGen::SystemVerilog::RTLPackage::Feature,
59
+ RgGen::SystemVerilog::Common::FeatureFactory
60
+ end
61
+
62
+ plugin.files [
63
+ 'rtl_package/bit_field/sv_rtl_package',
64
+ 'rtl_package/register/sv_rtl_package',
65
+ 'rtl_package/register_block/sv_rtl_package'
66
+ ]
51
67
  end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_simple_feature(:bit_field, :sv_rtl_package) do
4
+ sv_rtl_package do
5
+ build do
6
+ localparam :__width, {
7
+ name: "#{full_name}_bit_width",
8
+ data_type: :int, default: bit_field.width
9
+ }
10
+ localparam :__mask, {
11
+ name: "#{full_name}_bit_mask",
12
+ data_type: :bit, width: bit_field.width, default: mask_value
13
+ }
14
+ define_offset_localparam
15
+ define_label_localparams
16
+ end
17
+
18
+ private
19
+
20
+ def mask_value
21
+ hex((1 << bit_field.width) - 1, bit_field.width)
22
+ end
23
+
24
+ def define_offset_localparam
25
+ if bit_field.sequential?
26
+ define_sequential_offset_localparam
27
+ else
28
+ define_single_offset_localparam
29
+ end
30
+ end
31
+
32
+ def define_sequential_offset_localparam
33
+ size = bit_field.sequence_size
34
+ localparam :__offset, {
35
+ name: "#{full_name}_bit_offset",
36
+ data_type: :int, array_size: [size], default: offset_value(size)
37
+ }
38
+ end
39
+
40
+ def offset_value(size)
41
+ array(Array.new(size, &bit_field.method(:lsb)))
42
+ end
43
+
44
+ def define_single_offset_localparam
45
+ localparam :__offset, {
46
+ name: "#{full_name}_bit_offset",
47
+ data_type: :int, default: bit_field.lsb
48
+ }
49
+ end
50
+
51
+ def define_label_localparams
52
+ bit_field.labels
53
+ .each { |label| define_label_localparam(label) }
54
+ end
55
+
56
+ def define_label_localparam(label)
57
+ identifier = "label_#{label.name}".downcase.to_sym
58
+ value = hex(label.value, bit_field.width)
59
+ localparam identifier, {
60
+ name: "#{full_name}_#{label.name}",
61
+ data_type: :bit, width: bit_field.width, default: value
62
+ }
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RgGen
4
+ module SystemVerilog
5
+ module RTLPackage
6
+ class Feature < Common::Feature
7
+ private
8
+
9
+ def full_name(separator = '_')
10
+ component.full_name(separator)
11
+ end
12
+
13
+ def create_parameter(parameter_type, attributes, &block)
14
+ attributes =
15
+ attributes.merge(
16
+ parameter_type: parameter_type, array_format: :unpacked,
17
+ name: attributes[:name].upcase
18
+ )
19
+ DataObject.new(
20
+ :parameter, attributes, &block
21
+ )
22
+ end
23
+
24
+ define_entity :localparam, :create_parameter, :parameter, -> { register_block }
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_simple_feature(:register, :sv_rtl_package) do
4
+ sv_rtl_package do
5
+ build do
6
+ localparam :__byte_width, {
7
+ name: "#{full_name}_byte_width",
8
+ data_type: :int, default: register.byte_width
9
+ }
10
+ localparam :__byte_size, {
11
+ name: "#{full_name}_byte_size",
12
+ data_type: :int, default: register.byte_size(hierarchical: true)
13
+ }
14
+ define_array_size_localparam
15
+ define_offset_localparams
16
+ end
17
+
18
+ private
19
+
20
+ def define_array_size_localparam
21
+ return unless array?
22
+
23
+ list = array_size_list
24
+ localparam :__array_size, {
25
+ name: "#{full_name}_array_size",
26
+ data_type: :int, array_size: [list.size], default: array(list)
27
+ }
28
+ end
29
+
30
+ def define_offset_localparams
31
+ if array?
32
+ define_array_offset_localparams
33
+ else
34
+ define_single_offset_localparam
35
+ end
36
+ end
37
+
38
+ def define_array_offset_localparams
39
+ width = register_block.local_address_width
40
+ size_list = array_size_list
41
+ value_list = group_address_list(address_list, size_list).first
42
+ localparam :__offset, {
43
+ name: "#{full_name}_byte_offset",
44
+ data_type: :bit, width: width, array_size: size_list, default: value_list
45
+ }
46
+ end
47
+
48
+ def address_list
49
+ register
50
+ .expanded_offset_addresses
51
+ .map { |address| hex(address, register_block.local_address_width) }
52
+ end
53
+
54
+ def group_address_list(address_list, size_list)
55
+ list =
56
+ if size_list.size > 1
57
+ group_address_list(address_list, size_list[1..])
58
+ else
59
+ address_list
60
+ end
61
+ list
62
+ .each_slice(size_list.first)
63
+ .map(&method(:array))
64
+ end
65
+
66
+ def define_single_offset_localparam
67
+ width = register_block.local_address_width
68
+ value = address_list.first
69
+ localparam :__offset, {
70
+ name: "#{full_name}_byte_offset",
71
+ data_type: :bit, width: width, default: value
72
+ }
73
+ end
74
+
75
+ def array?
76
+ register.array?(hierarchical: true)
77
+ end
78
+
79
+ def array_size_list
80
+ register.array_size(hierarchical: true)
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_simple_feature(:register_block, :sv_rtl_package) do
4
+ sv_rtl_package do
5
+ write_file '<%= package_name %>.sv' do |file|
6
+ file.body { sv_rtl_package_definition }
7
+ end
8
+
9
+ private
10
+
11
+ def sv_rtl_package_definition
12
+ package_definition(package_name) do |package|
13
+ package.parameters parameters
14
+ end
15
+ end
16
+
17
+ def package_name
18
+ "#{register_block.name}_rtl_pkg"
19
+ end
20
+
21
+ def parameters
22
+ register_block.declarations[:parameter]
23
+ end
24
+ end
25
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module SystemVerilog
5
- VERSION = '0.27.1'
5
+ VERSION = '0.29.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-systemverilog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.1
4
+ version: 0.29.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: 2022-08-30 00:00:00.000000000 Z
11
+ date: 2023-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -55,7 +55,8 @@ files:
55
55
  - lib/rggen/systemverilog/common/utility/structure_definition.rb
56
56
  - lib/rggen/systemverilog/ral.rb
57
57
  - lib/rggen/systemverilog/ral/bit_field/type.rb
58
- - lib/rggen/systemverilog/ral/bit_field/type/rof.rb
58
+ - lib/rggen/systemverilog/ral/bit_field/type/custom.rb
59
+ - lib/rggen/systemverilog/ral/bit_field/type/rof_rol.rb
59
60
  - lib/rggen/systemverilog/ral/bit_field/type/rotrg_rwtrg_wotrg.rb
60
61
  - lib/rggen/systemverilog/ral/bit_field/type/row0trg_row1trg_w0trg_w1trg.rb
61
62
  - lib/rggen/systemverilog/ral/bit_field/type/rowo_rowotrg.rb
@@ -76,12 +77,16 @@ files:
76
77
  - lib/rggen/systemverilog/rtl.rb
77
78
  - lib/rggen/systemverilog/rtl/bit_field/sv_rtl_top.rb
78
79
  - lib/rggen/systemverilog/rtl/bit_field/type.rb
80
+ - lib/rggen/systemverilog/rtl/bit_field/type/custom.erb
81
+ - lib/rggen/systemverilog/rtl/bit_field/type/custom.rb
79
82
  - lib/rggen/systemverilog/rtl/bit_field/type/rc_w0c_w1c_wc_woc.erb
80
83
  - lib/rggen/systemverilog/rtl/bit_field/type/rc_w0c_w1c_wc_woc.rb
81
84
  - lib/rggen/systemverilog/rtl/bit_field/type/ro_rotrg.erb
82
85
  - lib/rggen/systemverilog/rtl/bit_field/type/ro_rotrg.rb
83
86
  - lib/rggen/systemverilog/rtl/bit_field/type/rof.erb
84
87
  - lib/rggen/systemverilog/rtl/bit_field/type/rof.rb
88
+ - lib/rggen/systemverilog/rtl/bit_field/type/rol.erb
89
+ - lib/rggen/systemverilog/rtl/bit_field/type/rol.rb
85
90
  - lib/rggen/systemverilog/rtl/bit_field/type/row0trg_row1trg.erb
86
91
  - lib/rggen/systemverilog/rtl/bit_field/type/row0trg_row1trg.rb
87
92
  - lib/rggen/systemverilog/rtl/bit_field/type/rowo_rowotrg.erb
@@ -130,6 +135,10 @@ files:
130
135
  - lib/rggen/systemverilog/rtl/register_file/sv_rtl_top.rb
131
136
  - lib/rggen/systemverilog/rtl/register_index.rb
132
137
  - lib/rggen/systemverilog/rtl/register_type.rb
138
+ - lib/rggen/systemverilog/rtl_package/bit_field/sv_rtl_package.rb
139
+ - lib/rggen/systemverilog/rtl_package/feature.rb
140
+ - lib/rggen/systemverilog/rtl_package/register/sv_rtl_package.rb
141
+ - lib/rggen/systemverilog/rtl_package/register_block/sv_rtl_package.rb
133
142
  - lib/rggen/systemverilog/version.rb
134
143
  homepage: https://github.com/rggen/rggen-systemverilog
135
144
  licenses:
@@ -148,15 +157,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
148
157
  requirements:
149
158
  - - ">="
150
159
  - !ruby/object:Gem::Version
151
- version: '2.6'
160
+ version: '2.7'
152
161
  required_rubygems_version: !ruby/object:Gem::Requirement
153
162
  requirements:
154
163
  - - ">="
155
164
  - !ruby/object:Gem::Version
156
165
  version: '0'
157
166
  requirements: []
158
- rubygems_version: 3.3.7
167
+ rubygems_version: 3.4.1
159
168
  signing_key:
160
169
  specification_version: 4
161
- summary: rggen-systemverilog-0.27.1
170
+ summary: rggen-systemverilog-0.29.0
162
171
  test_files: []
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RgGen.define_list_item_feature(:bit_field, :type, :rof) do
4
- sv_ral { access 'RO' }
5
- end