rggen 0.3.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 +7 -0
- data/.rubocop.yml +7 -0
- data/.rubocop_todo.yml +91 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/LICENSE.txt +21 -0
- data/README.md +31 -0
- data/bin/rggen +6 -0
- data/lib/rggen/base/component.rb +27 -0
- data/lib/rggen/base/component_factory.rb +46 -0
- data/lib/rggen/base/hierarchical_accessors.rb +87 -0
- data/lib/rggen/base/hierarchical_item_accessors.rb +79 -0
- data/lib/rggen/base/item.rb +24 -0
- data/lib/rggen/base/item_factory.rb +20 -0
- data/lib/rggen/builder/builder.rb +69 -0
- data/lib/rggen/builder/category.rb +52 -0
- data/lib/rggen/builder/component_entry.rb +50 -0
- data/lib/rggen/builder/component_store.rb +42 -0
- data/lib/rggen/builder/input_component_store.rb +25 -0
- data/lib/rggen/builder/item_store.rb +89 -0
- data/lib/rggen/builder/list_item_entry.rb +81 -0
- data/lib/rggen/builder/output_component_store.rb +13 -0
- data/lib/rggen/builder/simple_item_entry.rb +33 -0
- data/lib/rggen/builtins/bit_field/bit_assignment.rb +39 -0
- data/lib/rggen/builtins/bit_field/field_model_creation.rb +25 -0
- data/lib/rggen/builtins/bit_field/field_model_declaration.rb +9 -0
- data/lib/rggen/builtins/bit_field/initial_value.rb +36 -0
- data/lib/rggen/builtins/bit_field/name.rb +26 -0
- data/lib/rggen/builtins/bit_field/reference.rb +42 -0
- data/lib/rggen/builtins/bit_field/reserved.rb +9 -0
- data/lib/rggen/builtins/bit_field/ro.rb +19 -0
- data/lib/rggen/builtins/bit_field/rw.erb +13 -0
- data/lib/rggen/builtins/bit_field/rw.rb +25 -0
- data/lib/rggen/builtins/bit_field/type.rb +205 -0
- data/lib/rggen/builtins/bit_field/wo.rb +5 -0
- data/lib/rggen/builtins/global/address_width.rb +17 -0
- data/lib/rggen/builtins/global/data_width.rb +20 -0
- data/lib/rggen/builtins/loaders/configuration/json_loader.rb +7 -0
- data/lib/rggen/builtins/loaders/configuration/yaml_loader.rb +7 -0
- data/lib/rggen/builtins/loaders/register_map/csv_loader.rb +14 -0
- data/lib/rggen/builtins/loaders/register_map/xls_loader.rb +19 -0
- data/lib/rggen/builtins/loaders/register_map/xlsx_ods_loader.rb +24 -0
- data/lib/rggen/builtins/register/accessibility.rb +23 -0
- data/lib/rggen/builtins/register/address_decoder.erb +16 -0
- data/lib/rggen/builtins/register/address_decoder.rb +92 -0
- data/lib/rggen/builtins/register/array.rb +133 -0
- data/lib/rggen/builtins/register/field_model_creator.rb +10 -0
- data/lib/rggen/builtins/register/field_model_declarations.rb +7 -0
- data/lib/rggen/builtins/register/name.rb +26 -0
- data/lib/rggen/builtins/register/offset_address.rb +55 -0
- data/lib/rggen/builtins/register/read_data.rb +36 -0
- data/lib/rggen/builtins/register/reg_model_constructor.rb +17 -0
- data/lib/rggen/builtins/register/reg_model_creation.rb +64 -0
- data/lib/rggen/builtins/register/reg_model_declaration.rb +13 -0
- data/lib/rggen/builtins/register/reg_model_definition.rb +22 -0
- data/lib/rggen/builtins/register/shadow.rb +130 -0
- data/lib/rggen/builtins/register/shadow_index_configurator.rb +53 -0
- data/lib/rggen/builtins/register/uniqueness_validator.rb +48 -0
- data/lib/rggen/builtins/register_block/apb.erb +27 -0
- data/lib/rggen/builtins/register_block/apb.rb +20 -0
- data/lib/rggen/builtins/register_block/base_address.rb +64 -0
- data/lib/rggen/builtins/register_block/block_model_constructor.rb +14 -0
- data/lib/rggen/builtins/register_block/block_model_default_map_creator.rb +39 -0
- data/lib/rggen/builtins/register_block/block_model_definition.rb +18 -0
- data/lib/rggen/builtins/register_block/byte_size.rb +37 -0
- data/lib/rggen/builtins/register_block/clock_reset.rb +8 -0
- data/lib/rggen/builtins/register_block/host_if.rb +46 -0
- data/lib/rggen/builtins/register_block/module_definition.rb +13 -0
- data/lib/rggen/builtins/register_block/name.rb +26 -0
- data/lib/rggen/builtins/register_block/ral_package_definition.rb +19 -0
- data/lib/rggen/builtins/register_block/reg_model_creator.rb +14 -0
- data/lib/rggen/builtins/register_block/reg_model_declarations.rb +7 -0
- data/lib/rggen/builtins/register_block/response_mux.erb +14 -0
- data/lib/rggen/builtins/register_block/response_mux.rb +16 -0
- data/lib/rggen/builtins/register_block/signal_declarations.rb +9 -0
- data/lib/rggen/builtins.rb +52 -0
- data/lib/rggen/commands.rb +23 -0
- data/lib/rggen/core_components/configuration/configuration_factory.rb +23 -0
- data/lib/rggen/core_components/configuration/item_factory.rb +13 -0
- data/lib/rggen/core_components/configuration/raise_error.rb +11 -0
- data/lib/rggen/core_components/configuration/setup.rb +14 -0
- data/lib/rggen/core_components/ral/item.rb +16 -0
- data/lib/rggen/core_components/ral/setup.rb +19 -0
- data/lib/rggen/core_components/register_map/bit_field_factory.rb +11 -0
- data/lib/rggen/core_components/register_map/component.rb +12 -0
- data/lib/rggen/core_components/register_map/generic_map.rb +69 -0
- data/lib/rggen/core_components/register_map/item.rb +22 -0
- data/lib/rggen/core_components/register_map/item_factory.rb +13 -0
- data/lib/rggen/core_components/register_map/loader.rb +13 -0
- data/lib/rggen/core_components/register_map/raise_error.rb +17 -0
- data/lib/rggen/core_components/register_map/register_block_factory.rb +29 -0
- data/lib/rggen/core_components/register_map/register_factory.rb +18 -0
- data/lib/rggen/core_components/register_map/register_map_factory.rb +21 -0
- data/lib/rggen/core_components/register_map/setup.rb +33 -0
- data/lib/rggen/core_components/rtl/component.rb +28 -0
- data/lib/rggen/core_components/rtl/item.rb +83 -0
- data/lib/rggen/core_components/rtl/setup.rb +19 -0
- data/lib/rggen/core_components.rb +23 -0
- data/lib/rggen/core_extensions/facets.rb +17 -0
- data/lib/rggen/core_extensions/forwardable.rb +26 -0
- data/lib/rggen/core_extensions/integer.rb +5 -0
- data/lib/rggen/core_extensions/math.rb +7 -0
- data/lib/rggen/exceptions.rb +22 -0
- data/lib/rggen/generator.rb +185 -0
- data/lib/rggen/input_base/component.rb +19 -0
- data/lib/rggen/input_base/component_factory.rb +58 -0
- data/lib/rggen/input_base/item.rb +170 -0
- data/lib/rggen/input_base/item_factory.rb +13 -0
- data/lib/rggen/input_base/loader.rb +14 -0
- data/lib/rggen/input_base/regexp_patterns.rb +29 -0
- data/lib/rggen/output_base/code_block.rb +72 -0
- data/lib/rggen/output_base/code_utility.rb +44 -0
- data/lib/rggen/output_base/component.rb +88 -0
- data/lib/rggen/output_base/component_factory.rb +32 -0
- data/lib/rggen/output_base/item.rb +175 -0
- data/lib/rggen/output_base/item_factory.rb +6 -0
- data/lib/rggen/output_base/line.rb +28 -0
- data/lib/rggen/output_base/template_utility.rb +29 -0
- data/lib/rggen/output_base/verilog_utility/class_definition.rb +23 -0
- data/lib/rggen/output_base/verilog_utility/declaration.rb +70 -0
- data/lib/rggen/output_base/verilog_utility/identifier.rb +29 -0
- data/lib/rggen/output_base/verilog_utility/module_definition.rb +47 -0
- data/lib/rggen/output_base/verilog_utility/package_definition.rb +67 -0
- data/lib/rggen/output_base/verilog_utility/structure_definition.rb +52 -0
- data/lib/rggen/output_base/verilog_utility/subroutine_definition.rb +43 -0
- data/lib/rggen/output_base/verilog_utility.rb +66 -0
- data/lib/rggen/version.rb +6 -0
- data/lib/rggen.rb +65 -0
- data/ral/compile.f +4 -0
- data/ral/rggen_ral_block.svh +84 -0
- data/ral/rggen_ral_field.svh +47 -0
- data/ral/rggen_ral_macros.svh +22 -0
- data/ral/rggen_ral_map.svh +124 -0
- data/ral/rggen_ral_pkg.sv +14 -0
- data/ral/rggen_ral_reg.svh +52 -0
- data/ral/rggen_ral_shadow_reg.svh +188 -0
- data/rggen.gemspec +45 -0
- data/rtl/bit_field/rggen_bit_field_rw.sv +28 -0
- data/rtl/register/rggen_address_decoder.sv +49 -0
- data/rtl/register_block/rggen_host_if_apb.sv +40 -0
- data/rtl/register_block/rggen_response_mux.sv +82 -0
- data/sample/sample.csv +14 -0
- data/sample/sample.json +4 -0
- data/sample/sample.xls +0 -0
- data/sample/sample.xlsx +0 -0
- data/sample/sample.yaml +2 -0
- data/sample/sample_0.sv +285 -0
- data/sample/sample_0_ral_pkg.sv +99 -0
- data/sample/sample_1.sv +172 -0
- data/sample/sample_1_ral_pkg.sv +53 -0
- data/sample/sample_setup.rb +21 -0
- data/setup/default.rb +11 -0
- metadata +296 -0
data/sample/sample_0.sv
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
module sample_0 (
|
|
2
|
+
input clk,
|
|
3
|
+
input rst_n,
|
|
4
|
+
input [15:0] i_paddr,
|
|
5
|
+
input [2:0] i_pprot,
|
|
6
|
+
input i_psel,
|
|
7
|
+
input i_penable,
|
|
8
|
+
input i_pwrite,
|
|
9
|
+
input [31:0] i_pwdata,
|
|
10
|
+
input [3:0] i_pstrb,
|
|
11
|
+
output o_pready,
|
|
12
|
+
output [31:0] o_prdata,
|
|
13
|
+
output o_pslverr,
|
|
14
|
+
output [15:0] o_bit_field_0_0,
|
|
15
|
+
output [15:0] o_bit_field_0_1,
|
|
16
|
+
output [31:0] o_bit_field_1_0,
|
|
17
|
+
input i_bit_field_2_0,
|
|
18
|
+
output o_bit_field_2_1,
|
|
19
|
+
input [31:0] i_bit_field_3_0,
|
|
20
|
+
input [15:0] i_bit_field_4_0[4],
|
|
21
|
+
output [15:0] o_bit_field_4_1[4],
|
|
22
|
+
input [15:0] i_bit_field_5_0[2][4],
|
|
23
|
+
output [15:0] o_bit_field_5_1[2][4]
|
|
24
|
+
);
|
|
25
|
+
logic command_valid;
|
|
26
|
+
logic write;
|
|
27
|
+
logic read;
|
|
28
|
+
logic [7:0] address;
|
|
29
|
+
logic [31:0] write_data;
|
|
30
|
+
logic [31:0] write_mask;
|
|
31
|
+
logic response_ready;
|
|
32
|
+
logic [31:0] read_data;
|
|
33
|
+
logic [1:0] status;
|
|
34
|
+
logic [15:0] register_select;
|
|
35
|
+
logic [31:0] register_read_data[16];
|
|
36
|
+
logic [15:0] bit_field_0_0_value;
|
|
37
|
+
logic [15:0] bit_field_0_1_value;
|
|
38
|
+
logic [31:0] bit_field_1_0_value;
|
|
39
|
+
logic bit_field_2_0_value;
|
|
40
|
+
logic bit_field_2_1_value;
|
|
41
|
+
logic [31:0] bit_field_3_0_value;
|
|
42
|
+
logic [15:0] bit_field_4_0_value[4];
|
|
43
|
+
logic [15:0] bit_field_4_1_value[4];
|
|
44
|
+
logic [32:0] register_5_shadow_index[2][4];
|
|
45
|
+
logic [15:0] bit_field_5_0_value[2][4];
|
|
46
|
+
logic [15:0] bit_field_5_1_value[2][4];
|
|
47
|
+
rggen_host_if_apb #(
|
|
48
|
+
.DATA_WIDTH (32),
|
|
49
|
+
.HOST_ADDRESS_WIDTH (16),
|
|
50
|
+
.LOCAL_ADDRESS_WIDTH (8)
|
|
51
|
+
) u_host_if (
|
|
52
|
+
.clk (clk),
|
|
53
|
+
.rst_n (rst_n),
|
|
54
|
+
.i_paddr (i_paddr),
|
|
55
|
+
.i_pprot (i_pprot),
|
|
56
|
+
.i_psel (i_psel),
|
|
57
|
+
.i_penable (i_penable),
|
|
58
|
+
.i_pwrite (i_pwrite),
|
|
59
|
+
.i_pwdata (i_pwdata),
|
|
60
|
+
.i_pstrb (i_pstrb),
|
|
61
|
+
.o_pready (o_pready),
|
|
62
|
+
.o_prdata (o_prdata),
|
|
63
|
+
.o_pslverr (o_pslverr),
|
|
64
|
+
.o_command_valid (command_valid),
|
|
65
|
+
.o_write (write),
|
|
66
|
+
.o_read (read),
|
|
67
|
+
.o_address (address),
|
|
68
|
+
.o_write_data (write_data),
|
|
69
|
+
.o_write_mask (write_mask),
|
|
70
|
+
.i_response_ready (response_ready),
|
|
71
|
+
.i_read_data (read_data),
|
|
72
|
+
.i_status (status)
|
|
73
|
+
);
|
|
74
|
+
rggen_response_mux #(
|
|
75
|
+
.DATA_WIDTH (32),
|
|
76
|
+
.TOTAL_REGISTERS (16)
|
|
77
|
+
) u_response_mux (
|
|
78
|
+
.clk (clk),
|
|
79
|
+
.rst_n (rst_n),
|
|
80
|
+
.i_command_valid (command_valid),
|
|
81
|
+
.i_read (read),
|
|
82
|
+
.o_response_ready (response_ready),
|
|
83
|
+
.o_read_data (read_data),
|
|
84
|
+
.o_status (status),
|
|
85
|
+
.i_register_select (register_select),
|
|
86
|
+
.i_register_read_data (register_read_data)
|
|
87
|
+
);
|
|
88
|
+
rggen_address_decoder #(
|
|
89
|
+
.READABLE (1),
|
|
90
|
+
.WRITABLE (1),
|
|
91
|
+
.ADDRESS_WIDTH (6),
|
|
92
|
+
.START_ADDRESS (6'h00),
|
|
93
|
+
.END_ADDRESS (6'h00),
|
|
94
|
+
.USE_SHADOW_INDEX (0),
|
|
95
|
+
.SHADOW_INDEX_WIDTH (1),
|
|
96
|
+
.SHADOW_INDEX_VALUE (1'h0)
|
|
97
|
+
) u_register_0_address_decoder (
|
|
98
|
+
.i_read (read),
|
|
99
|
+
.i_write (write),
|
|
100
|
+
.i_address (address[7:2]),
|
|
101
|
+
.i_shadow_index (1'h0),
|
|
102
|
+
.o_select (register_select[0])
|
|
103
|
+
);
|
|
104
|
+
assign register_read_data[0] = {bit_field_0_0_value, bit_field_0_1_value};
|
|
105
|
+
assign o_bit_field_0_0 = bit_field_0_0_value;
|
|
106
|
+
rggen_bit_field_rw #(
|
|
107
|
+
.WIDTH (16),
|
|
108
|
+
.INITIAL_VALUE (16'h0000)
|
|
109
|
+
) u_bit_field_0_0 (
|
|
110
|
+
.clk (clk),
|
|
111
|
+
.rst_n (rst_n),
|
|
112
|
+
.i_command_valid (command_valid),
|
|
113
|
+
.i_select (register_select[0]),
|
|
114
|
+
.i_write (write),
|
|
115
|
+
.i_write_data (write_data[31:16]),
|
|
116
|
+
.i_write_mask (write_mask[31:16]),
|
|
117
|
+
.o_value (bit_field_0_0_value)
|
|
118
|
+
);
|
|
119
|
+
assign o_bit_field_0_1 = bit_field_0_1_value;
|
|
120
|
+
rggen_bit_field_rw #(
|
|
121
|
+
.WIDTH (16),
|
|
122
|
+
.INITIAL_VALUE (16'h0000)
|
|
123
|
+
) u_bit_field_0_1 (
|
|
124
|
+
.clk (clk),
|
|
125
|
+
.rst_n (rst_n),
|
|
126
|
+
.i_command_valid (command_valid),
|
|
127
|
+
.i_select (register_select[0]),
|
|
128
|
+
.i_write (write),
|
|
129
|
+
.i_write_data (write_data[15:0]),
|
|
130
|
+
.i_write_mask (write_mask[15:0]),
|
|
131
|
+
.o_value (bit_field_0_1_value)
|
|
132
|
+
);
|
|
133
|
+
rggen_address_decoder #(
|
|
134
|
+
.READABLE (1),
|
|
135
|
+
.WRITABLE (1),
|
|
136
|
+
.ADDRESS_WIDTH (6),
|
|
137
|
+
.START_ADDRESS (6'h01),
|
|
138
|
+
.END_ADDRESS (6'h01),
|
|
139
|
+
.USE_SHADOW_INDEX (0),
|
|
140
|
+
.SHADOW_INDEX_WIDTH (1),
|
|
141
|
+
.SHADOW_INDEX_VALUE (1'h0)
|
|
142
|
+
) u_register_1_address_decoder (
|
|
143
|
+
.i_read (read),
|
|
144
|
+
.i_write (write),
|
|
145
|
+
.i_address (address[7:2]),
|
|
146
|
+
.i_shadow_index (1'h0),
|
|
147
|
+
.o_select (register_select[1])
|
|
148
|
+
);
|
|
149
|
+
assign register_read_data[1] = {bit_field_1_0_value};
|
|
150
|
+
assign o_bit_field_1_0 = bit_field_1_0_value;
|
|
151
|
+
rggen_bit_field_rw #(
|
|
152
|
+
.WIDTH (32),
|
|
153
|
+
.INITIAL_VALUE (32'h00000000)
|
|
154
|
+
) u_bit_field_1_0 (
|
|
155
|
+
.clk (clk),
|
|
156
|
+
.rst_n (rst_n),
|
|
157
|
+
.i_command_valid (command_valid),
|
|
158
|
+
.i_select (register_select[1]),
|
|
159
|
+
.i_write (write),
|
|
160
|
+
.i_write_data (write_data[31:0]),
|
|
161
|
+
.i_write_mask (write_mask[31:0]),
|
|
162
|
+
.o_value (bit_field_1_0_value)
|
|
163
|
+
);
|
|
164
|
+
rggen_address_decoder #(
|
|
165
|
+
.READABLE (1),
|
|
166
|
+
.WRITABLE (1),
|
|
167
|
+
.ADDRESS_WIDTH (6),
|
|
168
|
+
.START_ADDRESS (6'h02),
|
|
169
|
+
.END_ADDRESS (6'h02),
|
|
170
|
+
.USE_SHADOW_INDEX (0),
|
|
171
|
+
.SHADOW_INDEX_WIDTH (1),
|
|
172
|
+
.SHADOW_INDEX_VALUE (1'h0)
|
|
173
|
+
) u_register_2_address_decoder (
|
|
174
|
+
.i_read (read),
|
|
175
|
+
.i_write (write),
|
|
176
|
+
.i_address (address[7:2]),
|
|
177
|
+
.i_shadow_index (1'h0),
|
|
178
|
+
.o_select (register_select[2])
|
|
179
|
+
);
|
|
180
|
+
assign register_read_data[2] = {15'h0000, bit_field_2_0_value, 15'h0000, bit_field_2_1_value};
|
|
181
|
+
assign bit_field_2_0_value = i_bit_field_2_0;
|
|
182
|
+
assign o_bit_field_2_1 = bit_field_2_1_value;
|
|
183
|
+
rggen_bit_field_rw #(
|
|
184
|
+
.WIDTH (1),
|
|
185
|
+
.INITIAL_VALUE (1'h0)
|
|
186
|
+
) u_bit_field_2_1 (
|
|
187
|
+
.clk (clk),
|
|
188
|
+
.rst_n (rst_n),
|
|
189
|
+
.i_command_valid (command_valid),
|
|
190
|
+
.i_select (register_select[2]),
|
|
191
|
+
.i_write (write),
|
|
192
|
+
.i_write_data (write_data[0]),
|
|
193
|
+
.i_write_mask (write_mask[0]),
|
|
194
|
+
.o_value (bit_field_2_1_value)
|
|
195
|
+
);
|
|
196
|
+
rggen_address_decoder #(
|
|
197
|
+
.READABLE (1),
|
|
198
|
+
.WRITABLE (0),
|
|
199
|
+
.ADDRESS_WIDTH (6),
|
|
200
|
+
.START_ADDRESS (6'h03),
|
|
201
|
+
.END_ADDRESS (6'h03),
|
|
202
|
+
.USE_SHADOW_INDEX (0),
|
|
203
|
+
.SHADOW_INDEX_WIDTH (1),
|
|
204
|
+
.SHADOW_INDEX_VALUE (1'h0)
|
|
205
|
+
) u_register_3_address_decoder (
|
|
206
|
+
.i_read (read),
|
|
207
|
+
.i_write (write),
|
|
208
|
+
.i_address (address[7:2]),
|
|
209
|
+
.i_shadow_index (1'h0),
|
|
210
|
+
.o_select (register_select[3])
|
|
211
|
+
);
|
|
212
|
+
assign register_read_data[3] = {bit_field_3_0_value};
|
|
213
|
+
assign bit_field_3_0_value = i_bit_field_3_0;
|
|
214
|
+
for (genvar g_i = 0;g_i < 4;g_i++) begin : gen_register_4_0
|
|
215
|
+
rggen_address_decoder #(
|
|
216
|
+
.READABLE (1),
|
|
217
|
+
.WRITABLE (1),
|
|
218
|
+
.ADDRESS_WIDTH (6),
|
|
219
|
+
.START_ADDRESS (6'h04 + g_i),
|
|
220
|
+
.END_ADDRESS (6'h04 + g_i),
|
|
221
|
+
.USE_SHADOW_INDEX (0),
|
|
222
|
+
.SHADOW_INDEX_WIDTH (1),
|
|
223
|
+
.SHADOW_INDEX_VALUE (1'h0)
|
|
224
|
+
) u_register_4_address_decoder (
|
|
225
|
+
.i_read (read),
|
|
226
|
+
.i_write (write),
|
|
227
|
+
.i_address (address[7:2]),
|
|
228
|
+
.i_shadow_index (1'h0),
|
|
229
|
+
.o_select (register_select[4+g_i])
|
|
230
|
+
);
|
|
231
|
+
assign register_read_data[4+g_i] = {bit_field_4_0_value[g_i], bit_field_4_1_value[g_i]};
|
|
232
|
+
assign bit_field_4_0_value[g_i] = i_bit_field_4_0[g_i];
|
|
233
|
+
assign o_bit_field_4_1[g_i] = bit_field_4_1_value[g_i];
|
|
234
|
+
rggen_bit_field_rw #(
|
|
235
|
+
.WIDTH (16),
|
|
236
|
+
.INITIAL_VALUE (16'h0000)
|
|
237
|
+
) u_bit_field_4_1 (
|
|
238
|
+
.clk (clk),
|
|
239
|
+
.rst_n (rst_n),
|
|
240
|
+
.i_command_valid (command_valid),
|
|
241
|
+
.i_select (register_select[4+g_i]),
|
|
242
|
+
.i_write (write),
|
|
243
|
+
.i_write_data (write_data[15:0]),
|
|
244
|
+
.i_write_mask (write_mask[15:0]),
|
|
245
|
+
.o_value (bit_field_4_1_value[g_i])
|
|
246
|
+
);
|
|
247
|
+
end
|
|
248
|
+
for (genvar g_i = 0;g_i < 2;g_i++) begin : gen_register_5_0
|
|
249
|
+
for (genvar g_j = 0;g_j < 4;g_j++) begin : gen_register_5_1
|
|
250
|
+
assign register_5_shadow_index[g_i][g_j] = {bit_field_2_1_value, bit_field_0_0_value, bit_field_0_1_value};
|
|
251
|
+
rggen_address_decoder #(
|
|
252
|
+
.READABLE (1),
|
|
253
|
+
.WRITABLE (1),
|
|
254
|
+
.ADDRESS_WIDTH (6),
|
|
255
|
+
.START_ADDRESS (6'h08),
|
|
256
|
+
.END_ADDRESS (6'h08),
|
|
257
|
+
.USE_SHADOW_INDEX (1),
|
|
258
|
+
.SHADOW_INDEX_WIDTH (33),
|
|
259
|
+
.SHADOW_INDEX_VALUE ({1'h1, g_i[15:0], g_j[15:0]})
|
|
260
|
+
) u_register_5_address_decoder (
|
|
261
|
+
.i_read (read),
|
|
262
|
+
.i_write (write),
|
|
263
|
+
.i_address (address[7:2]),
|
|
264
|
+
.i_shadow_index (register_5_shadow_index[g_i][g_j]),
|
|
265
|
+
.o_select (register_select[8+4*g_i+g_j])
|
|
266
|
+
);
|
|
267
|
+
assign register_read_data[8+4*g_i+g_j] = {bit_field_5_0_value[g_i][g_j], bit_field_5_1_value[g_i][g_j]};
|
|
268
|
+
assign bit_field_5_0_value[g_i][g_j] = i_bit_field_5_0[g_i][g_j];
|
|
269
|
+
assign o_bit_field_5_1[g_i][g_j] = bit_field_5_1_value[g_i][g_j];
|
|
270
|
+
rggen_bit_field_rw #(
|
|
271
|
+
.WIDTH (16),
|
|
272
|
+
.INITIAL_VALUE (16'h0000)
|
|
273
|
+
) u_bit_field_5_1 (
|
|
274
|
+
.clk (clk),
|
|
275
|
+
.rst_n (rst_n),
|
|
276
|
+
.i_command_valid (command_valid),
|
|
277
|
+
.i_select (register_select[8+4*g_i+g_j]),
|
|
278
|
+
.i_write (write),
|
|
279
|
+
.i_write_data (write_data[15:0]),
|
|
280
|
+
.i_write_mask (write_mask[15:0]),
|
|
281
|
+
.o_value (bit_field_5_1_value[g_i][g_j])
|
|
282
|
+
);
|
|
283
|
+
end
|
|
284
|
+
end
|
|
285
|
+
endmodule
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
package sample_0_ral_pkg;
|
|
2
|
+
import uvm_pkg::*;
|
|
3
|
+
import rggen_ral_pkg::*;
|
|
4
|
+
`include "uvm_macros.svh"
|
|
5
|
+
`include "rggen_ral_macros.svh"
|
|
6
|
+
class register_0_reg_model extends rggen_ral_reg;
|
|
7
|
+
rand rggen_ral_field bit_field_0_0;
|
|
8
|
+
rand rggen_ral_field bit_field_0_1;
|
|
9
|
+
function new(string name = "register_0");
|
|
10
|
+
super.new(name, 32, 0);
|
|
11
|
+
endfunction
|
|
12
|
+
function void create_fields();
|
|
13
|
+
`rggen_ral_create_field_model(bit_field_0_0, "bit_field_0_0", 16, 16, "RW", 0, 16'h0000, 1)
|
|
14
|
+
`rggen_ral_create_field_model(bit_field_0_1, "bit_field_0_1", 16, 0, "RW", 0, 16'h0000, 1)
|
|
15
|
+
endfunction
|
|
16
|
+
endclass
|
|
17
|
+
class register_1_reg_model extends rggen_ral_reg;
|
|
18
|
+
rand rggen_ral_field bit_field_1_0;
|
|
19
|
+
function new(string name = "register_1");
|
|
20
|
+
super.new(name, 32, 0);
|
|
21
|
+
endfunction
|
|
22
|
+
function void create_fields();
|
|
23
|
+
`rggen_ral_create_field_model(bit_field_1_0, "bit_field_1_0", 32, 0, "RW", 0, 32'h00000000, 1)
|
|
24
|
+
endfunction
|
|
25
|
+
endclass
|
|
26
|
+
class register_2_reg_model extends rggen_ral_reg;
|
|
27
|
+
rand rggen_ral_field bit_field_2_0;
|
|
28
|
+
rand rggen_ral_field bit_field_2_1;
|
|
29
|
+
function new(string name = "register_2");
|
|
30
|
+
super.new(name, 24, 0);
|
|
31
|
+
endfunction
|
|
32
|
+
function void create_fields();
|
|
33
|
+
`rggen_ral_create_field_model(bit_field_2_0, "bit_field_2_0", 1, 16, "RO", 0, 1'h0, 0)
|
|
34
|
+
`rggen_ral_create_field_model(bit_field_2_1, "bit_field_2_1", 1, 0, "RW", 0, 1'h0, 1)
|
|
35
|
+
endfunction
|
|
36
|
+
endclass
|
|
37
|
+
class register_3_reg_model extends rggen_ral_reg;
|
|
38
|
+
rand rggen_ral_field bit_field_3_0;
|
|
39
|
+
function new(string name = "register_3");
|
|
40
|
+
super.new(name, 32, 0);
|
|
41
|
+
endfunction
|
|
42
|
+
function void create_fields();
|
|
43
|
+
`rggen_ral_create_field_model(bit_field_3_0, "bit_field_3_0", 32, 0, "RO", 0, 32'h00000000, 0)
|
|
44
|
+
endfunction
|
|
45
|
+
endclass
|
|
46
|
+
class register_4_reg_model extends rggen_ral_reg;
|
|
47
|
+
rand rggen_ral_field bit_field_4_0;
|
|
48
|
+
rand rggen_ral_field bit_field_4_1;
|
|
49
|
+
function new(string name = "register_4");
|
|
50
|
+
super.new(name, 32, 0);
|
|
51
|
+
endfunction
|
|
52
|
+
function void create_fields();
|
|
53
|
+
`rggen_ral_create_field_model(bit_field_4_0, "bit_field_4_0", 16, 16, "RO", 0, 16'h0000, 0)
|
|
54
|
+
`rggen_ral_create_field_model(bit_field_4_1, "bit_field_4_1", 16, 0, "RW", 0, 16'h0000, 1)
|
|
55
|
+
endfunction
|
|
56
|
+
endclass
|
|
57
|
+
class register_5_reg_model extends rggen_ral_shadow_reg;
|
|
58
|
+
rand rggen_ral_field bit_field_5_0;
|
|
59
|
+
rand rggen_ral_field bit_field_5_1;
|
|
60
|
+
function new(string name = "register_5");
|
|
61
|
+
super.new(name, 32, 0);
|
|
62
|
+
endfunction
|
|
63
|
+
function void create_fields();
|
|
64
|
+
`rggen_ral_create_field_model(bit_field_5_0, "bit_field_5_0", 16, 16, "RO", 0, 16'h0000, 0)
|
|
65
|
+
`rggen_ral_create_field_model(bit_field_5_1, "bit_field_5_1", 16, 0, "RW", 0, 16'h0000, 1)
|
|
66
|
+
endfunction
|
|
67
|
+
function void configure_shadow_indexes();
|
|
68
|
+
set_shadow_index("register_2", "bit_field_2_1", 1);
|
|
69
|
+
set_shadow_index("register_0", "bit_field_0_0", indexes[0]);
|
|
70
|
+
set_shadow_index("register_0", "bit_field_0_1", indexes[1]);
|
|
71
|
+
endfunction
|
|
72
|
+
endclass
|
|
73
|
+
class sample_0_block_model extends rggen_ral_block;
|
|
74
|
+
rand register_0_reg_model register_0;
|
|
75
|
+
rand register_1_reg_model register_1;
|
|
76
|
+
rand register_2_reg_model register_2;
|
|
77
|
+
rand register_3_reg_model register_3;
|
|
78
|
+
rand register_4_reg_model register_4[4];
|
|
79
|
+
rand register_5_reg_model register_5[2][4];
|
|
80
|
+
function new(string name = "sample_0");
|
|
81
|
+
super.new(name);
|
|
82
|
+
endfunction
|
|
83
|
+
function void create_registers();
|
|
84
|
+
`rggen_ral_create_reg_model(register_0, "register_0", '{}, 8'h00, "RW", 0)
|
|
85
|
+
`rggen_ral_create_reg_model(register_1, "register_1", '{}, 8'h04, "RW", 0)
|
|
86
|
+
`rggen_ral_create_reg_model(register_2, "register_2", '{}, 8'h08, "RW", 0)
|
|
87
|
+
`rggen_ral_create_reg_model(register_3, "register_3", '{}, 8'h0c, "RO", 0)
|
|
88
|
+
foreach (register_4[i]) begin
|
|
89
|
+
`rggen_ral_create_reg_model(register_4[i], "register_4", '{i}, 8'h10 + 4 * i, "RW", 0)
|
|
90
|
+
end
|
|
91
|
+
foreach (register_5[i, j]) begin
|
|
92
|
+
`rggen_ral_create_reg_model(register_5[i][j], "register_5", '{i, j}, 8'h20, "RW", 1)
|
|
93
|
+
end
|
|
94
|
+
endfunction
|
|
95
|
+
function uvm_reg_map create_default_map();
|
|
96
|
+
return create_map("default_map", 0, 4, UVM_LITTLE_ENDIAN, 1);
|
|
97
|
+
endfunction
|
|
98
|
+
endclass
|
|
99
|
+
endpackage
|
data/sample/sample_1.sv
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
module sample_1 (
|
|
2
|
+
input clk,
|
|
3
|
+
input rst_n,
|
|
4
|
+
input [15:0] i_paddr,
|
|
5
|
+
input [2:0] i_pprot,
|
|
6
|
+
input i_psel,
|
|
7
|
+
input i_penable,
|
|
8
|
+
input i_pwrite,
|
|
9
|
+
input [31:0] i_pwdata,
|
|
10
|
+
input [3:0] i_pstrb,
|
|
11
|
+
output o_pready,
|
|
12
|
+
output [31:0] o_prdata,
|
|
13
|
+
output o_pslverr,
|
|
14
|
+
output [15:0] o_bit_field_0_0,
|
|
15
|
+
input [15:0] i_bit_field_0_1,
|
|
16
|
+
output [31:0] o_bit_field_1_0,
|
|
17
|
+
input i_bit_field_2_0,
|
|
18
|
+
output o_bit_field_2_1
|
|
19
|
+
);
|
|
20
|
+
logic command_valid;
|
|
21
|
+
logic write;
|
|
22
|
+
logic read;
|
|
23
|
+
logic [6:0] address;
|
|
24
|
+
logic [31:0] write_data;
|
|
25
|
+
logic [31:0] write_mask;
|
|
26
|
+
logic response_ready;
|
|
27
|
+
logic [31:0] read_data;
|
|
28
|
+
logic [1:0] status;
|
|
29
|
+
logic [2:0] register_select;
|
|
30
|
+
logic [31:0] register_read_data[3];
|
|
31
|
+
logic [15:0] bit_field_0_0_value;
|
|
32
|
+
logic [15:0] bit_field_0_1_value;
|
|
33
|
+
logic [31:0] bit_field_1_0_value;
|
|
34
|
+
logic bit_field_2_0_value;
|
|
35
|
+
logic bit_field_2_1_value;
|
|
36
|
+
rggen_host_if_apb #(
|
|
37
|
+
.DATA_WIDTH (32),
|
|
38
|
+
.HOST_ADDRESS_WIDTH (16),
|
|
39
|
+
.LOCAL_ADDRESS_WIDTH (7)
|
|
40
|
+
) u_host_if (
|
|
41
|
+
.clk (clk),
|
|
42
|
+
.rst_n (rst_n),
|
|
43
|
+
.i_paddr (i_paddr),
|
|
44
|
+
.i_pprot (i_pprot),
|
|
45
|
+
.i_psel (i_psel),
|
|
46
|
+
.i_penable (i_penable),
|
|
47
|
+
.i_pwrite (i_pwrite),
|
|
48
|
+
.i_pwdata (i_pwdata),
|
|
49
|
+
.i_pstrb (i_pstrb),
|
|
50
|
+
.o_pready (o_pready),
|
|
51
|
+
.o_prdata (o_prdata),
|
|
52
|
+
.o_pslverr (o_pslverr),
|
|
53
|
+
.o_command_valid (command_valid),
|
|
54
|
+
.o_write (write),
|
|
55
|
+
.o_read (read),
|
|
56
|
+
.o_address (address),
|
|
57
|
+
.o_write_data (write_data),
|
|
58
|
+
.o_write_mask (write_mask),
|
|
59
|
+
.i_response_ready (response_ready),
|
|
60
|
+
.i_read_data (read_data),
|
|
61
|
+
.i_status (status)
|
|
62
|
+
);
|
|
63
|
+
rggen_response_mux #(
|
|
64
|
+
.DATA_WIDTH (32),
|
|
65
|
+
.TOTAL_REGISTERS (3)
|
|
66
|
+
) u_response_mux (
|
|
67
|
+
.clk (clk),
|
|
68
|
+
.rst_n (rst_n),
|
|
69
|
+
.i_command_valid (command_valid),
|
|
70
|
+
.i_read (read),
|
|
71
|
+
.o_response_ready (response_ready),
|
|
72
|
+
.o_read_data (read_data),
|
|
73
|
+
.o_status (status),
|
|
74
|
+
.i_register_select (register_select),
|
|
75
|
+
.i_register_read_data (register_read_data)
|
|
76
|
+
);
|
|
77
|
+
rggen_address_decoder #(
|
|
78
|
+
.READABLE (1),
|
|
79
|
+
.WRITABLE (1),
|
|
80
|
+
.ADDRESS_WIDTH (5),
|
|
81
|
+
.START_ADDRESS (5'h00),
|
|
82
|
+
.END_ADDRESS (5'h00),
|
|
83
|
+
.USE_SHADOW_INDEX (0),
|
|
84
|
+
.SHADOW_INDEX_WIDTH (1),
|
|
85
|
+
.SHADOW_INDEX_VALUE (1'h0)
|
|
86
|
+
) u_register_0_address_decoder (
|
|
87
|
+
.i_read (read),
|
|
88
|
+
.i_write (write),
|
|
89
|
+
.i_address (address[6:2]),
|
|
90
|
+
.i_shadow_index (1'h0),
|
|
91
|
+
.o_select (register_select[0])
|
|
92
|
+
);
|
|
93
|
+
assign register_read_data[0] = {bit_field_0_0_value, bit_field_0_1_value};
|
|
94
|
+
assign o_bit_field_0_0 = bit_field_0_0_value;
|
|
95
|
+
rggen_bit_field_rw #(
|
|
96
|
+
.WIDTH (16),
|
|
97
|
+
.INITIAL_VALUE (16'h0000)
|
|
98
|
+
) u_bit_field_0_0 (
|
|
99
|
+
.clk (clk),
|
|
100
|
+
.rst_n (rst_n),
|
|
101
|
+
.i_command_valid (command_valid),
|
|
102
|
+
.i_select (register_select[0]),
|
|
103
|
+
.i_write (write),
|
|
104
|
+
.i_write_data (write_data[31:16]),
|
|
105
|
+
.i_write_mask (write_mask[31:16]),
|
|
106
|
+
.o_value (bit_field_0_0_value)
|
|
107
|
+
);
|
|
108
|
+
assign bit_field_0_1_value = i_bit_field_0_1;
|
|
109
|
+
rggen_address_decoder #(
|
|
110
|
+
.READABLE (1),
|
|
111
|
+
.WRITABLE (1),
|
|
112
|
+
.ADDRESS_WIDTH (5),
|
|
113
|
+
.START_ADDRESS (5'h01),
|
|
114
|
+
.END_ADDRESS (5'h01),
|
|
115
|
+
.USE_SHADOW_INDEX (0),
|
|
116
|
+
.SHADOW_INDEX_WIDTH (1),
|
|
117
|
+
.SHADOW_INDEX_VALUE (1'h0)
|
|
118
|
+
) u_register_1_address_decoder (
|
|
119
|
+
.i_read (read),
|
|
120
|
+
.i_write (write),
|
|
121
|
+
.i_address (address[6:2]),
|
|
122
|
+
.i_shadow_index (1'h0),
|
|
123
|
+
.o_select (register_select[1])
|
|
124
|
+
);
|
|
125
|
+
assign register_read_data[1] = {bit_field_1_0_value};
|
|
126
|
+
assign o_bit_field_1_0 = bit_field_1_0_value;
|
|
127
|
+
rggen_bit_field_rw #(
|
|
128
|
+
.WIDTH (32),
|
|
129
|
+
.INITIAL_VALUE (32'h00000000)
|
|
130
|
+
) u_bit_field_1_0 (
|
|
131
|
+
.clk (clk),
|
|
132
|
+
.rst_n (rst_n),
|
|
133
|
+
.i_command_valid (command_valid),
|
|
134
|
+
.i_select (register_select[1]),
|
|
135
|
+
.i_write (write),
|
|
136
|
+
.i_write_data (write_data[31:0]),
|
|
137
|
+
.i_write_mask (write_mask[31:0]),
|
|
138
|
+
.o_value (bit_field_1_0_value)
|
|
139
|
+
);
|
|
140
|
+
rggen_address_decoder #(
|
|
141
|
+
.READABLE (1),
|
|
142
|
+
.WRITABLE (1),
|
|
143
|
+
.ADDRESS_WIDTH (5),
|
|
144
|
+
.START_ADDRESS (5'h02),
|
|
145
|
+
.END_ADDRESS (5'h02),
|
|
146
|
+
.USE_SHADOW_INDEX (0),
|
|
147
|
+
.SHADOW_INDEX_WIDTH (1),
|
|
148
|
+
.SHADOW_INDEX_VALUE (1'h0)
|
|
149
|
+
) u_register_2_address_decoder (
|
|
150
|
+
.i_read (read),
|
|
151
|
+
.i_write (write),
|
|
152
|
+
.i_address (address[6:2]),
|
|
153
|
+
.i_shadow_index (1'h0),
|
|
154
|
+
.o_select (register_select[2])
|
|
155
|
+
);
|
|
156
|
+
assign register_read_data[2] = {15'h0000, bit_field_2_0_value, 15'h0000, bit_field_2_1_value};
|
|
157
|
+
assign bit_field_2_0_value = i_bit_field_2_0;
|
|
158
|
+
assign o_bit_field_2_1 = bit_field_2_1_value;
|
|
159
|
+
rggen_bit_field_rw #(
|
|
160
|
+
.WIDTH (1),
|
|
161
|
+
.INITIAL_VALUE (1'h0)
|
|
162
|
+
) u_bit_field_2_1 (
|
|
163
|
+
.clk (clk),
|
|
164
|
+
.rst_n (rst_n),
|
|
165
|
+
.i_command_valid (command_valid),
|
|
166
|
+
.i_select (register_select[2]),
|
|
167
|
+
.i_write (write),
|
|
168
|
+
.i_write_data (write_data[0]),
|
|
169
|
+
.i_write_mask (write_mask[0]),
|
|
170
|
+
.o_value (bit_field_2_1_value)
|
|
171
|
+
);
|
|
172
|
+
endmodule
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
package sample_1_ral_pkg;
|
|
2
|
+
import uvm_pkg::*;
|
|
3
|
+
import rggen_ral_pkg::*;
|
|
4
|
+
`include "uvm_macros.svh"
|
|
5
|
+
`include "rggen_ral_macros.svh"
|
|
6
|
+
class register_0_reg_model extends rggen_ral_reg;
|
|
7
|
+
rand rggen_ral_field bit_field_0_0;
|
|
8
|
+
rand rggen_ral_field bit_field_0_1;
|
|
9
|
+
function new(string name = "register_0");
|
|
10
|
+
super.new(name, 32, 0);
|
|
11
|
+
endfunction
|
|
12
|
+
function void create_fields();
|
|
13
|
+
`rggen_ral_create_field_model(bit_field_0_0, "bit_field_0_0", 16, 16, "RW", 0, 16'h0000, 1)
|
|
14
|
+
`rggen_ral_create_field_model(bit_field_0_1, "bit_field_0_1", 16, 0, "RO", 0, 16'h0000, 0)
|
|
15
|
+
endfunction
|
|
16
|
+
endclass
|
|
17
|
+
class register_1_reg_model extends rggen_ral_reg;
|
|
18
|
+
rand rggen_ral_field bit_field_1_0;
|
|
19
|
+
function new(string name = "register_1");
|
|
20
|
+
super.new(name, 32, 0);
|
|
21
|
+
endfunction
|
|
22
|
+
function void create_fields();
|
|
23
|
+
`rggen_ral_create_field_model(bit_field_1_0, "bit_field_1_0", 32, 0, "RW", 0, 32'h00000000, 1)
|
|
24
|
+
endfunction
|
|
25
|
+
endclass
|
|
26
|
+
class register_2_reg_model extends rggen_ral_reg;
|
|
27
|
+
rand rggen_ral_field bit_field_2_0;
|
|
28
|
+
rand rggen_ral_field bit_field_2_1;
|
|
29
|
+
function new(string name = "register_2");
|
|
30
|
+
super.new(name, 24, 0);
|
|
31
|
+
endfunction
|
|
32
|
+
function void create_fields();
|
|
33
|
+
`rggen_ral_create_field_model(bit_field_2_0, "bit_field_2_0", 1, 16, "RO", 0, 1'h0, 0)
|
|
34
|
+
`rggen_ral_create_field_model(bit_field_2_1, "bit_field_2_1", 1, 0, "RW", 0, 1'h0, 1)
|
|
35
|
+
endfunction
|
|
36
|
+
endclass
|
|
37
|
+
class sample_1_block_model extends rggen_ral_block;
|
|
38
|
+
rand register_0_reg_model register_0;
|
|
39
|
+
rand register_1_reg_model register_1;
|
|
40
|
+
rand register_2_reg_model register_2;
|
|
41
|
+
function new(string name = "sample_1");
|
|
42
|
+
super.new(name);
|
|
43
|
+
endfunction
|
|
44
|
+
function void create_registers();
|
|
45
|
+
`rggen_ral_create_reg_model(register_0, "register_0", '{}, 7'h00, "RW", 0)
|
|
46
|
+
`rggen_ral_create_reg_model(register_1, "register_1", '{}, 7'h04, "RW", 0)
|
|
47
|
+
`rggen_ral_create_reg_model(register_2, "register_2", '{}, 7'h08, "RW", 0)
|
|
48
|
+
endfunction
|
|
49
|
+
function uvm_reg_map create_default_map();
|
|
50
|
+
return create_map("default_map", 0, 4, UVM_LITTLE_ENDIAN, 1);
|
|
51
|
+
endfunction
|
|
52
|
+
endclass
|
|
53
|
+
endpackage
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
define_list_item :bit_field, :type, :foo do
|
|
2
|
+
register_map do
|
|
3
|
+
end
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
define_list_item :register_block, :host_if, :bar do
|
|
7
|
+
rtl do
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
enable :global , [:data_width, :address_width]
|
|
12
|
+
enable :register_block, [:name, :base_address]
|
|
13
|
+
enable :register , [:offset_address, :name, :array, :shadow, :accessibility, :uniquness_validator]
|
|
14
|
+
enable :bit_field , [:bit_assignment, :name, :type, :initial_value, :reference]
|
|
15
|
+
enable :bit_field , :type, [:rw, :ro, :foo, :reserved]
|
|
16
|
+
enable :register_block, [:module_definition, :signal_declarations, :clock_reset, :host_if, :response_mux]
|
|
17
|
+
enable :register_block, :host_if, [:apb, :bar]
|
|
18
|
+
enable :register , [:address_decoder, :read_data]
|
|
19
|
+
enable :register_block, [:ral_package_definition, :block_model_definition, :reg_model_declarations, :block_model_constructor, :reg_model_creator, :block_model_default_map_creator]
|
|
20
|
+
enable :register , [:reg_model_definition, :field_model_declarations, :reg_model_constructor, :field_model_creator, :shadow_index_configurator, :reg_model_declaration, :reg_model_creation]
|
|
21
|
+
enable :bit_field , [:field_model_declaration, :field_model_creation]
|
data/setup/default.rb
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
enable :global , [:data_width, :address_width]
|
|
2
|
+
enable :register_block, [:name, :byte_size]
|
|
3
|
+
enable :register , [:offset_address, :name, :array, :shadow, :accessibility, :uniquness_validator]
|
|
4
|
+
enable :bit_field , [:bit_assignment, :name, :type, :initial_value, :reference]
|
|
5
|
+
enable :bit_field , :type, [:rw, :ro, :reserved]
|
|
6
|
+
enable :register_block, [:module_definition, :signal_declarations, :clock_reset, :host_if, :response_mux]
|
|
7
|
+
enable :register_block, :host_if, [:apb]
|
|
8
|
+
enable :register , [:address_decoder, :read_data]
|
|
9
|
+
enable :register_block, [:ral_package_definition, :block_model_definition, :reg_model_declarations, :block_model_constructor, :reg_model_creator, :block_model_default_map_creator]
|
|
10
|
+
enable :register , [:reg_model_definition, :field_model_declarations, :reg_model_constructor, :field_model_creator, :shadow_index_configurator, :reg_model_declaration, :reg_model_creation]
|
|
11
|
+
enable :bit_field , [:field_model_declaration, :field_model_creation]
|