rggen 0.8.2 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (269) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +54 -29
  3. data/{LICENSE.txt → LICENSE} +1 -1
  4. data/README.md +65 -56
  5. data/lib/rggen.rb +4 -63
  6. data/lib/rggen/built_in.rb +53 -0
  7. data/lib/rggen/built_in/bit_field/bit_assignment.rb +108 -0
  8. data/lib/rggen/built_in/bit_field/comment.rb +16 -0
  9. data/lib/rggen/built_in/bit_field/initial_value.rb +45 -0
  10. data/lib/rggen/built_in/bit_field/name.rb +39 -0
  11. data/lib/rggen/built_in/bit_field/reference.rb +100 -0
  12. data/lib/rggen/built_in/bit_field/sv_rtl_top.rb +87 -0
  13. data/lib/rggen/built_in/bit_field/type.rb +279 -0
  14. data/lib/rggen/built_in/bit_field/type/rc_w0c_w1c.erb +15 -0
  15. data/lib/rggen/built_in/bit_field/type/rc_w0c_w1c.rb +68 -0
  16. data/lib/rggen/built_in/bit_field/type/reserved.erb +3 -0
  17. data/lib/rggen/built_in/bit_field/type/reserved.rb +16 -0
  18. data/lib/rggen/built_in/bit_field/type/ro.erb +6 -0
  19. data/lib/rggen/built_in/bit_field/type/ro.rb +34 -0
  20. data/lib/rggen/built_in/bit_field/type/rof.erb +6 -0
  21. data/lib/rggen/built_in/bit_field/type/rof.rb +17 -0
  22. data/lib/rggen/built_in/bit_field/type/rs_w0s_w1s.erb +13 -0
  23. data/lib/rggen/built_in/bit_field/type/rs_w0s_w1s.rb +52 -0
  24. data/lib/rggen/built_in/bit_field/type/rw_wo.erb +9 -0
  25. data/lib/rggen/built_in/bit_field/type/rw_wo.rb +33 -0
  26. data/lib/rggen/built_in/bit_field/type/rwe_rwl.erb +14 -0
  27. data/lib/rggen/built_in/bit_field/type/rwe_rwl.rb +39 -0
  28. data/lib/rggen/built_in/global/address_width.rb +32 -0
  29. data/lib/rggen/built_in/global/array_port_format.rb +19 -0
  30. data/lib/rggen/built_in/global/bus_width.rb +33 -0
  31. data/lib/rggen/built_in/global/fold_sv_interface_port.rb +24 -0
  32. data/lib/rggen/built_in/register/name.rb +34 -0
  33. data/lib/rggen/built_in/register/offset_address.rb +96 -0
  34. data/lib/rggen/built_in/register/size.rb +49 -0
  35. data/lib/rggen/built_in/register/sv_rtl_top.rb +82 -0
  36. data/lib/rggen/built_in/register/type.rb +374 -0
  37. data/lib/rggen/built_in/register/type/default_sv_ral.erb +8 -0
  38. data/lib/rggen/built_in/register/type/default_sv_rtl.erb +15 -0
  39. data/lib/rggen/built_in/register/type/external.erb +11 -0
  40. data/lib/rggen/built_in/register/type/external.rb +141 -0
  41. data/lib/rggen/built_in/register/type/indirect.rb +329 -0
  42. data/lib/rggen/built_in/register/type/indirect_sv_ral.erb +13 -0
  43. data/lib/rggen/built_in/register/type/indirect_sv_rtl.erb +17 -0
  44. data/lib/rggen/built_in/register_block/byte_size.rb +59 -0
  45. data/lib/rggen/built_in/register_block/name.rb +36 -0
  46. data/lib/rggen/built_in/register_block/protocol.rb +71 -0
  47. data/lib/rggen/built_in/register_block/protocol/apb.erb +10 -0
  48. data/lib/rggen/built_in/register_block/protocol/apb.rb +113 -0
  49. data/lib/rggen/built_in/register_block/protocol/axi4lite.erb +11 -0
  50. data/lib/rggen/built_in/register_block/protocol/axi4lite.rb +167 -0
  51. data/lib/rggen/built_in/register_block/sv_ral_block_model.erb +11 -0
  52. data/lib/rggen/built_in/register_block/sv_ral_package.rb +58 -0
  53. data/lib/rggen/built_in/register_block/sv_rtl_macros.erb +9 -0
  54. data/lib/rggen/built_in/register_block/sv_rtl_top.rb +87 -0
  55. data/lib/rggen/built_in/version.rb +7 -0
  56. data/lib/rggen/default_setup_file.rb +6 -0
  57. data/lib/rggen/setup/default.rb +26 -0
  58. data/lib/rggen/version.rb +5 -4
  59. data/sample/block_0.rb +85 -0
  60. data/sample/block_0.sv +601 -0
  61. data/sample/block_0.xlsx +0 -0
  62. data/sample/block_0.yml +94 -0
  63. data/sample/block_0_ral_pkg.sv +174 -0
  64. data/sample/block_1.rb +22 -0
  65. data/sample/block_1.sv +136 -0
  66. data/sample/block_1.xlsx +0 -0
  67. data/sample/block_1.yml +26 -0
  68. data/sample/block_1_ral_pkg.sv +68 -0
  69. data/sample/config.json +5 -0
  70. data/sample/config.yml +3 -0
  71. metadata +96 -270
  72. data/bin/rggen +0 -6
  73. data/c_header/LICENSE +0 -21
  74. data/c_header/rggen.h +0 -17
  75. data/lib/rggen/base/component.rb +0 -31
  76. data/lib/rggen/base/component_factory.rb +0 -53
  77. data/lib/rggen/base/hierarchical_accessors.rb +0 -87
  78. data/lib/rggen/base/hierarchical_item_accessors.rb +0 -79
  79. data/lib/rggen/base/internal_struct.rb +0 -28
  80. data/lib/rggen/base/item.rb +0 -35
  81. data/lib/rggen/base/item_factory.rb +0 -25
  82. data/lib/rggen/builder/builder.rb +0 -69
  83. data/lib/rggen/builder/category.rb +0 -63
  84. data/lib/rggen/builder/component_entry.rb +0 -50
  85. data/lib/rggen/builder/component_store.rb +0 -42
  86. data/lib/rggen/builder/input_component_store.rb +0 -25
  87. data/lib/rggen/builder/item_store.rb +0 -89
  88. data/lib/rggen/builder/list_item_entry.rb +0 -81
  89. data/lib/rggen/builder/output_component_store.rb +0 -13
  90. data/lib/rggen/builder/simple_item_entry.rb +0 -33
  91. data/lib/rggen/builtins.rb +0 -55
  92. data/lib/rggen/builtins/bit_field/bit_assignment.rb +0 -39
  93. data/lib/rggen/builtins/bit_field/field_model.rb +0 -38
  94. data/lib/rggen/builtins/bit_field/initial_value.rb +0 -36
  95. data/lib/rggen/builtins/bit_field/name.rb +0 -26
  96. data/lib/rggen/builtins/bit_field/reference.rb +0 -40
  97. data/lib/rggen/builtins/bit_field/rtl_top.rb +0 -11
  98. data/lib/rggen/builtins/bit_field/type.rb +0 -244
  99. data/lib/rggen/builtins/bit_field/types/reserved.erb +0 -6
  100. data/lib/rggen/builtins/bit_field/types/reserved.rb +0 -18
  101. data/lib/rggen/builtins/bit_field/types/ro.erb +0 -6
  102. data/lib/rggen/builtins/bit_field/types/ro.rb +0 -22
  103. data/lib/rggen/builtins/bit_field/types/rw.erb +0 -9
  104. data/lib/rggen/builtins/bit_field/types/rw.rb +0 -23
  105. data/lib/rggen/builtins/bit_field/types/rwl_rwe.erb +0 -11
  106. data/lib/rggen/builtins/bit_field/types/rwl_rwe.rb +0 -54
  107. data/lib/rggen/builtins/bit_field/types/w0c_w1c.erb +0 -12
  108. data/lib/rggen/builtins/bit_field/types/w0c_w1c.rb +0 -33
  109. data/lib/rggen/builtins/bit_field/types/w0s_w1s.erb +0 -12
  110. data/lib/rggen/builtins/bit_field/types/w0s_w1s.rb +0 -33
  111. data/lib/rggen/builtins/bit_field/types/wo.rb +0 -5
  112. data/lib/rggen/builtins/global/address_width.rb +0 -17
  113. data/lib/rggen/builtins/global/array_port_format.rb +0 -15
  114. data/lib/rggen/builtins/global/data_width.rb +0 -20
  115. data/lib/rggen/builtins/global/unfold_sv_interface_port.rb +0 -22
  116. data/lib/rggen/builtins/loaders/configuration/json_loader.rb +0 -7
  117. data/lib/rggen/builtins/loaders/configuration/yaml_loader.rb +0 -7
  118. data/lib/rggen/builtins/loaders/register_map/csv_loader.rb +0 -12
  119. data/lib/rggen/builtins/loaders/register_map/xls_loader.rb +0 -17
  120. data/lib/rggen/builtins/loaders/register_map/xlsx_ods_loader.rb +0 -21
  121. data/lib/rggen/builtins/register/array.rb +0 -30
  122. data/lib/rggen/builtins/register/constructor.rb +0 -17
  123. data/lib/rggen/builtins/register/field_model_creator.rb +0 -14
  124. data/lib/rggen/builtins/register/indirect_index_configurator.rb +0 -54
  125. data/lib/rggen/builtins/register/name.rb +0 -26
  126. data/lib/rggen/builtins/register/offset_address.rb +0 -61
  127. data/lib/rggen/builtins/register/reg_model.rb +0 -107
  128. data/lib/rggen/builtins/register/rtl_top.rb +0 -68
  129. data/lib/rggen/builtins/register/sub_block_model.rb +0 -34
  130. data/lib/rggen/builtins/register/type.rb +0 -283
  131. data/lib/rggen/builtins/register/types/default.erb +0 -10
  132. data/lib/rggen/builtins/register/types/external.erb +0 -11
  133. data/lib/rggen/builtins/register/types/external.rb +0 -77
  134. data/lib/rggen/builtins/register/types/indirect.erb +0 -13
  135. data/lib/rggen/builtins/register/types/indirect.rb +0 -175
  136. data/lib/rggen/builtins/register/uniqueness_validator.rb +0 -51
  137. data/lib/rggen/builtins/register_block/address_struct.rb +0 -56
  138. data/lib/rggen/builtins/register_block/base_address.rb +0 -64
  139. data/lib/rggen/builtins/register_block/block_model.rb +0 -20
  140. data/lib/rggen/builtins/register_block/byte_size.rb +0 -37
  141. data/lib/rggen/builtins/register_block/c_header_file.rb +0 -15
  142. data/lib/rggen/builtins/register_block/clock_reset.rb +0 -8
  143. data/lib/rggen/builtins/register_block/constructor.rb +0 -14
  144. data/lib/rggen/builtins/register_block/default_map_creator.rb +0 -39
  145. data/lib/rggen/builtins/register_block/host_if.rb +0 -64
  146. data/lib/rggen/builtins/register_block/host_ifs/apb.erb +0 -10
  147. data/lib/rggen/builtins/register_block/host_ifs/apb.rb +0 -64
  148. data/lib/rggen/builtins/register_block/host_ifs/axi4lite.erb +0 -11
  149. data/lib/rggen/builtins/register_block/host_ifs/axi4lite.rb +0 -93
  150. data/lib/rggen/builtins/register_block/name.rb +0 -26
  151. data/lib/rggen/builtins/register_block/ral_package.rb +0 -24
  152. data/lib/rggen/builtins/register_block/rtl_top.rb +0 -38
  153. data/lib/rggen/builtins/register_block/sub_model_creator.rb +0 -14
  154. data/lib/rggen/commands.rb +0 -23
  155. data/lib/rggen/core_components.rb +0 -54
  156. data/lib/rggen/core_components/c_header/item.rb +0 -8
  157. data/lib/rggen/core_components/c_header/setup.rb +0 -19
  158. data/lib/rggen/core_components/c_utility.rb +0 -19
  159. data/lib/rggen/core_components/c_utility/data_structure_definition.rb +0 -60
  160. data/lib/rggen/core_components/c_utility/source_file.rb +0 -10
  161. data/lib/rggen/core_components/c_utility/variable_declaration.rb +0 -35
  162. data/lib/rggen/core_components/code_utility.rb +0 -56
  163. data/lib/rggen/core_components/code_utility/code_block.rb +0 -72
  164. data/lib/rggen/core_components/code_utility/line.rb +0 -28
  165. data/lib/rggen/core_components/code_utility/source_file.rb +0 -97
  166. data/lib/rggen/core_components/configuration/configuration_factory.rb +0 -23
  167. data/lib/rggen/core_components/configuration/item.rb +0 -11
  168. data/lib/rggen/core_components/configuration/item_factory.rb +0 -20
  169. data/lib/rggen/core_components/configuration/raise_error.rb +0 -11
  170. data/lib/rggen/core_components/configuration/setup.rb +0 -14
  171. data/lib/rggen/core_components/erb_engine.rb +0 -15
  172. data/lib/rggen/core_components/ral/component.rb +0 -24
  173. data/lib/rggen/core_components/ral/item.rb +0 -59
  174. data/lib/rggen/core_components/ral/setup.rb +0 -19
  175. data/lib/rggen/core_components/register_map/bit_field_factory.rb +0 -11
  176. data/lib/rggen/core_components/register_map/component.rb +0 -15
  177. data/lib/rggen/core_components/register_map/component_factory.rb +0 -9
  178. data/lib/rggen/core_components/register_map/generic_map.rb +0 -80
  179. data/lib/rggen/core_components/register_map/item.rb +0 -26
  180. data/lib/rggen/core_components/register_map/item_factory.rb +0 -26
  181. data/lib/rggen/core_components/register_map/loader.rb +0 -11
  182. data/lib/rggen/core_components/register_map/raise_error.rb +0 -17
  183. data/lib/rggen/core_components/register_map/register_block_factory.rb +0 -29
  184. data/lib/rggen/core_components/register_map/register_factory.rb +0 -18
  185. data/lib/rggen/core_components/register_map/register_map_factory.rb +0 -18
  186. data/lib/rggen/core_components/register_map/setup.rb +0 -33
  187. data/lib/rggen/core_components/rtl/component.rb +0 -24
  188. data/lib/rggen/core_components/rtl/item.rb +0 -82
  189. data/lib/rggen/core_components/rtl/setup.rb +0 -19
  190. data/lib/rggen/core_components/verilog_utility.rb +0 -88
  191. data/lib/rggen/core_components/verilog_utility/class_definition.rb +0 -56
  192. data/lib/rggen/core_components/verilog_utility/identifier.rb +0 -78
  193. data/lib/rggen/core_components/verilog_utility/interface_instance.rb +0 -37
  194. data/lib/rggen/core_components/verilog_utility/interface_port.rb +0 -33
  195. data/lib/rggen/core_components/verilog_utility/local_scope.rb +0 -75
  196. data/lib/rggen/core_components/verilog_utility/module_definition.rb +0 -82
  197. data/lib/rggen/core_components/verilog_utility/package_definition.rb +0 -57
  198. data/lib/rggen/core_components/verilog_utility/source_file.rb +0 -10
  199. data/lib/rggen/core_components/verilog_utility/structure_definition.rb +0 -51
  200. data/lib/rggen/core_components/verilog_utility/subroutine_definition.rb +0 -41
  201. data/lib/rggen/core_components/verilog_utility/variable.rb +0 -115
  202. data/lib/rggen/core_extensions/array.rb +0 -9
  203. data/lib/rggen/core_extensions/facets.rb +0 -22
  204. data/lib/rggen/core_extensions/forwardable.rb +0 -49
  205. data/lib/rggen/core_extensions/integer.rb +0 -5
  206. data/lib/rggen/core_extensions/math.rb +0 -7
  207. data/lib/rggen/core_extensions/roo.rb +0 -17
  208. data/lib/rggen/exceptions.rb +0 -28
  209. data/lib/rggen/generator.rb +0 -67
  210. data/lib/rggen/input_base/component.rb +0 -28
  211. data/lib/rggen/input_base/component_factory.rb +0 -58
  212. data/lib/rggen/input_base/item.rb +0 -171
  213. data/lib/rggen/input_base/item_factory.rb +0 -13
  214. data/lib/rggen/input_base/loader.rb +0 -23
  215. data/lib/rggen/input_base/regexp_patterns.rb +0 -29
  216. data/lib/rggen/option_switches.rb +0 -60
  217. data/lib/rggen/options.rb +0 -97
  218. data/lib/rggen/output_base/code_generator.rb +0 -36
  219. data/lib/rggen/output_base/component.rb +0 -78
  220. data/lib/rggen/output_base/component_factory.rb +0 -32
  221. data/lib/rggen/output_base/file_writer.rb +0 -36
  222. data/lib/rggen/output_base/item.rb +0 -110
  223. data/lib/rggen/output_base/item_factory.rb +0 -9
  224. data/lib/rggen/output_base/template_engine.rb +0 -24
  225. data/lib/rggen/rggen_home.rb +0 -3
  226. data/ral/LICENSE +0 -21
  227. data/ral/compile.f +0 -2
  228. data/ral/rggen_ral_block.svh +0 -83
  229. data/ral/rggen_ral_field.svh +0 -47
  230. data/ral/rggen_ral_field_rwl_rwe.svh +0 -158
  231. data/ral/rggen_ral_indirect_reg.svh +0 -193
  232. data/ral/rggen_ral_macros.svh +0 -27
  233. data/ral/rggen_ral_map.svh +0 -124
  234. data/ral/rggen_ral_pkg.sv +0 -15
  235. data/ral/rggen_ral_reg.svh +0 -88
  236. data/rtl/LICENSE +0 -21
  237. data/rtl/compile.f +0 -18
  238. data/rtl/rggen_address_decoder.sv +0 -23
  239. data/rtl/rggen_apb_if.sv +0 -41
  240. data/rtl/rggen_axi4lite_if.sv +0 -68
  241. data/rtl/rggen_bit_field_if.sv +0 -28
  242. data/rtl/rggen_bit_field_ro.sv +0 -9
  243. data/rtl/rggen_bit_field_rw.sv +0 -25
  244. data/rtl/rggen_bit_field_rwl_rwe.sv +0 -29
  245. data/rtl/rggen_bit_field_w01s_w01c.sv +0 -55
  246. data/rtl/rggen_bus_if.sv +0 -43
  247. data/rtl/rggen_bus_splitter.sv +0 -86
  248. data/rtl/rggen_default_register.sv +0 -15
  249. data/rtl/rggen_external_register.sv +0 -83
  250. data/rtl/rggen_host_if_apb.sv +0 -29
  251. data/rtl/rggen_host_if_axi4lite.sv +0 -161
  252. data/rtl/rggen_indirect_register.sv +0 -21
  253. data/rtl/rggen_register_base.sv +0 -57
  254. data/rtl/rggen_register_if.sv +0 -42
  255. data/rtl/rggen_rtl_pkg.sv +0 -23
  256. data/sample/LICENSE +0 -21
  257. data/sample/sample.csv +0 -21
  258. data/sample/sample.json +0 -6
  259. data/sample/sample.xls +0 -0
  260. data/sample/sample.xlsx +0 -0
  261. data/sample/sample.yaml +0 -4
  262. data/sample/sample_0.h +0 -17
  263. data/sample/sample_0.sv +0 -402
  264. data/sample/sample_0_ral_pkg.sv +0 -145
  265. data/sample/sample_1.h +0 -9
  266. data/sample/sample_1.sv +0 -128
  267. data/sample/sample_1_ral_pkg.sv +0 -56
  268. data/sample/sample_setup.rb +0 -24
  269. data/setup/default.rb +0 -14
@@ -1,145 +0,0 @@
1
- `ifndef SAMPLE_0_RAL_PKG_SV
2
- `define SAMPLE_0_RAL_PKG_SV
3
- package sample_0_ral_pkg;
4
- import uvm_pkg::*;
5
- import rggen_ral_pkg::*;
6
- `include "uvm_macros.svh"
7
- `include "rggen_ral_macros.svh"
8
- class register_0_reg_model extends rggen_ral_reg;
9
- rand rggen_ral_field bit_field_0_0;
10
- rand rggen_ral_field bit_field_0_1;
11
- function new(string name = "register_0");
12
- super.new(name, 32, 0);
13
- endfunction
14
- function void create_fields();
15
- `rggen_ral_create_field_model(bit_field_0_0, "bit_field_0_0", 16, 16, "RW", 0, 16'h0000, 1, "g_bit_field_0_0.u_bit_field.value")
16
- `rggen_ral_create_field_model(bit_field_0_1, "bit_field_0_1", 16, 0, "RW", 0, 16'h0000, 1, "g_bit_field_0_1.u_bit_field.value")
17
- endfunction
18
- endclass
19
- class register_1_reg_model extends rggen_ral_reg;
20
- rand rggen_ral_field bit_field_1_0;
21
- function new(string name = "register_1");
22
- super.new(name, 32, 0);
23
- endfunction
24
- function void create_fields();
25
- `rggen_ral_create_field_model(bit_field_1_0, "bit_field_1_0", 32, 0, "RW", 0, 32'h00000000, 1, "g_bit_field_1_0.u_bit_field.value")
26
- endfunction
27
- endclass
28
- class register_2_reg_model extends rggen_ral_reg;
29
- rand rggen_ral_field bit_field_2_0;
30
- rand rggen_ral_field bit_field_2_1;
31
- function new(string name = "register_2");
32
- super.new(name, 24, 0);
33
- endfunction
34
- function void create_fields();
35
- `rggen_ral_create_field_model(bit_field_2_0, "bit_field_2_0", 1, 16, "RO", 0, 1'h0, 0, "g_bit_field_2_0.u_bit_field.i_value")
36
- `rggen_ral_create_field_model(bit_field_2_1, "bit_field_2_1", 1, 0, "RW", 0, 1'h0, 1, "g_bit_field_2_1.u_bit_field.value")
37
- endfunction
38
- endclass
39
- class register_3_reg_model extends rggen_ral_reg;
40
- rand rggen_ral_field bit_field_3_0;
41
- function new(string name = "register_3");
42
- super.new(name, 32, 0);
43
- endfunction
44
- function void create_fields();
45
- `rggen_ral_create_field_model(bit_field_3_0, "bit_field_3_0", 32, 0, "RO", 0, 32'h00000000, 0, "g_bit_field_3_0.u_bit_field.i_value")
46
- endfunction
47
- endclass
48
- class register_4_reg_model extends rggen_ral_reg;
49
- rand rggen_ral_field bit_field_4_0;
50
- rand rggen_ral_field bit_field_4_1;
51
- function new(string name = "register_4");
52
- super.new(name, 32, 0);
53
- endfunction
54
- function void create_fields();
55
- `rggen_ral_create_field_model(bit_field_4_0, "bit_field_4_0", 16, 16, "RO", 0, 16'h0000, 0, "g_bit_field_4_0.u_bit_field.i_value")
56
- `rggen_ral_create_field_model(bit_field_4_1, "bit_field_4_1", 16, 0, "RW", 0, 16'h0000, 1, "g_bit_field_4_1.u_bit_field.value")
57
- endfunction
58
- endclass
59
- class register_5_reg_model extends rggen_ral_indirect_reg;
60
- rand rggen_ral_field bit_field_5_0;
61
- rand rggen_ral_field bit_field_5_1;
62
- function new(string name = "register_5");
63
- super.new(name, 32, 0);
64
- endfunction
65
- function void create_fields();
66
- `rggen_ral_create_field_model(bit_field_5_0, "bit_field_5_0", 16, 16, "RO", 0, 16'h0000, 0, "g_bit_field_5_0.u_bit_field.i_value")
67
- `rggen_ral_create_field_model(bit_field_5_1, "bit_field_5_1", 16, 0, "RW", 0, 16'h0000, 1, "g_bit_field_5_1.u_bit_field.value")
68
- endfunction
69
- function void configure_indirect_indexes();
70
- set_indirect_index("register_2", "bit_field_2_1", 1);
71
- set_indirect_index("register_0", "bit_field_0_0", indexes[0]);
72
- set_indirect_index("register_0", "bit_field_0_1", indexes[1]);
73
- endfunction
74
- endclass
75
- class register_6_reg_model extends rggen_ral_reg;
76
- rand rggen_ral_field bit_field_6_0;
77
- rand rggen_ral_field bit_field_6_1;
78
- function new(string name = "register_6");
79
- super.new(name, 16, 0);
80
- endfunction
81
- function void create_fields();
82
- `rggen_ral_create_field_model(bit_field_6_0, "bit_field_6_0", 1, 8, "W0C", 0, 1'h0, 1, "g_bit_field_6_0.u_bit_field.value")
83
- `rggen_ral_create_field_model(bit_field_6_1, "bit_field_6_1", 1, 0, "W1C", 0, 1'h0, 1, "g_bit_field_6_1.u_bit_field.value")
84
- endfunction
85
- endclass
86
- class register_7_reg_model extends rggen_ral_reg;
87
- rand rggen_ral_field bit_field_7_0;
88
- rand rggen_ral_field bit_field_7_1;
89
- function new(string name = "register_7");
90
- super.new(name, 16, 0);
91
- endfunction
92
- function void create_fields();
93
- `rggen_ral_create_field_model(bit_field_7_0, "bit_field_7_0", 1, 8, "W0S", 0, 1'h0, 1, "g_bit_field_7_0.u_bit_field.value")
94
- `rggen_ral_create_field_model(bit_field_7_1, "bit_field_7_1", 1, 0, "W1S", 0, 1'h0, 1, "g_bit_field_7_1.u_bit_field.value")
95
- endfunction
96
- endclass
97
- class register_8_reg_model extends rggen_ral_reg;
98
- rand rggen_ral_field_rwl#("register_2", "bit_field_2_1") bit_field_8_0;
99
- rand rggen_ral_field_rwe#("register_2", "bit_field_2_1") bit_field_8_1;
100
- function new(string name = "register_8");
101
- super.new(name, 32, 0);
102
- endfunction
103
- function void create_fields();
104
- `rggen_ral_create_field_model(bit_field_8_0, "bit_field_8_0", 16, 16, "RWL", 0, 16'h0000, 1, "g_bit_field_8_0.u_bit_field.value")
105
- `rggen_ral_create_field_model(bit_field_8_1, "bit_field_8_1", 16, 0, "RWE", 0, 16'h0000, 1, "g_bit_field_8_1.u_bit_field.value")
106
- endfunction
107
- endclass
108
- class sample_0_block_model#(
109
- type REGISTER_9 = rggen_ral_block
110
- ) extends rggen_ral_block;
111
- rand register_0_reg_model register_0;
112
- rand register_1_reg_model register_1;
113
- rand register_2_reg_model register_2;
114
- rand register_3_reg_model register_3;
115
- rand register_4_reg_model register_4[4];
116
- rand register_5_reg_model register_5[2][4];
117
- rand register_6_reg_model register_6;
118
- rand register_7_reg_model register_7;
119
- rand register_8_reg_model register_8;
120
- rand REGISTER_9 register_9;
121
- function new(string name = "sample_0");
122
- super.new(name);
123
- endfunction
124
- function void create_sub_models();
125
- `rggen_ral_create_reg_model(register_0, "register_0", '{}, 8'h00, "RW", 0, "g_register_0")
126
- `rggen_ral_create_reg_model(register_1, "register_1", '{}, 8'h04, "RW", 0, "g_register_1")
127
- `rggen_ral_create_reg_model(register_2, "register_2", '{}, 8'h08, "RW", 0, "g_register_2")
128
- `rggen_ral_create_reg_model(register_3, "register_3", '{}, 8'h0c, "RO", 0, "g_register_3")
129
- foreach (register_4[i]) begin
130
- `rggen_ral_create_reg_model(register_4[i], $sformatf("register_4[%0d]", i), '{i}, 8'h10 + 4 * i, "RW", 0, $sformatf("g_register_4.g[%0d]", i))
131
- end
132
- foreach (register_5[i, j]) begin
133
- `rggen_ral_create_reg_model(register_5[i][j], $sformatf("register_5[%0d][%0d]", i, j), '{i, j}, 8'h20, "RW", 1, $sformatf("g_register_5.g[%0d].g[%0d]", i, j))
134
- end
135
- `rggen_ral_create_reg_model(register_6, "register_6", '{}, 8'h24, "RW", 0, "g_register_6")
136
- `rggen_ral_create_reg_model(register_7, "register_7", '{}, 8'h28, "RW", 0, "g_register_7")
137
- `rggen_ral_create_reg_model(register_8, "register_8", '{}, 8'h2c, "RW", 0, "g_register_8")
138
- `rggen_ral_create_block_model(register_9, "register_9", 8'h80)
139
- endfunction
140
- function uvm_reg_map create_default_map();
141
- return create_map("default_map", 0, 4, UVM_LITTLE_ENDIAN, 1);
142
- endfunction
143
- endclass
144
- endpackage
145
- `endif
data/sample/sample_1.h DELETED
@@ -1,9 +0,0 @@
1
- #ifndef SAMPLE_1_H
2
- #define SAMPLE_1_H
3
- #include "rggen.h"
4
- typedef struct {
5
- rggen_uint32 register_0;
6
- rggen_uint32 register_1;
7
- rggen_uint32 register_2;
8
- } s_sample_1_address_struct;
9
- #endif
data/sample/sample_1.sv DELETED
@@ -1,128 +0,0 @@
1
- module sample_1 (
2
- input logic clk,
3
- input logic rst_n,
4
- rggen_apb_if.slave apb_if,
5
- output logic [15:0] o_bit_field_0_0,
6
- input logic [15:0] i_bit_field_0_1,
7
- output logic [31:0] o_bit_field_1_0,
8
- input logic i_bit_field_2_0,
9
- output logic o_bit_field_2_1
10
- );
11
- rggen_register_if #(7, 32) register_if[3]();
12
- `define rggen_connect_bit_field_if(RIF, FIF, MSB, LSB) \
13
- assign FIF.read_access = RIF.read_access; \
14
- assign FIF.write_access = RIF.write_access; \
15
- assign FIF.write_data = RIF.write_data[MSB:LSB]; \
16
- assign FIF.write_mask = RIF.write_mask[MSB:LSB]; \
17
- assign RIF.value[MSB:LSB] = FIF.value; \
18
- assign RIF.read_data[MSB:LSB] = FIF.read_data;
19
- rggen_host_if_apb #(
20
- .LOCAL_ADDRESS_WIDTH (7),
21
- .DATA_WIDTH (32),
22
- .TOTAL_REGISTERS (3)
23
- ) u_host_if (
24
- .clk (clk),
25
- .rst_n (rst_n),
26
- .apb_if (apb_if),
27
- .register_if (register_if)
28
- );
29
- generate if (1) begin : g_register_0
30
- rggen_bit_field_if #(32) bit_field_if();
31
- rggen_default_register #(
32
- .ADDRESS_WIDTH (7),
33
- .START_ADDRESS (7'h00),
34
- .END_ADDRESS (7'h03),
35
- .DATA_WIDTH (32),
36
- .VALID_BITS (32'hffffffff)
37
- ) u_register (
38
- .register_if (register_if[0]),
39
- .bit_field_if (bit_field_if)
40
- );
41
- if (1) begin : g_bit_field_0_0
42
- rggen_bit_field_if #(16) bit_field_sub_if();
43
- `rggen_connect_bit_field_if(bit_field_if, bit_field_sub_if, 31, 16)
44
- rggen_bit_field_rw #(
45
- .WIDTH (16),
46
- .INITIAL_VALUE (16'h0000)
47
- ) u_bit_field (
48
- .clk (clk),
49
- .rst_n (rst_n),
50
- .bit_field_if (bit_field_sub_if),
51
- .o_value (o_bit_field_0_0)
52
- );
53
- end
54
- if (1) begin : g_bit_field_0_1
55
- rggen_bit_field_if #(16) bit_field_sub_if();
56
- `rggen_connect_bit_field_if(bit_field_if, bit_field_sub_if, 15, 0)
57
- rggen_bit_field_ro #(
58
- .WIDTH (16)
59
- ) u_bit_field (
60
- .bit_field_if (bit_field_sub_if),
61
- .i_value (i_bit_field_0_1)
62
- );
63
- end
64
- end endgenerate
65
- generate if (1) begin : g_register_1
66
- rggen_bit_field_if #(32) bit_field_if();
67
- rggen_default_register #(
68
- .ADDRESS_WIDTH (7),
69
- .START_ADDRESS (7'h04),
70
- .END_ADDRESS (7'h07),
71
- .DATA_WIDTH (32),
72
- .VALID_BITS (32'hffffffff)
73
- ) u_register (
74
- .register_if (register_if[1]),
75
- .bit_field_if (bit_field_if)
76
- );
77
- if (1) begin : g_bit_field_1_0
78
- rggen_bit_field_if #(32) bit_field_sub_if();
79
- `rggen_connect_bit_field_if(bit_field_if, bit_field_sub_if, 31, 0)
80
- rggen_bit_field_rw #(
81
- .WIDTH (32),
82
- .INITIAL_VALUE (32'h00000000)
83
- ) u_bit_field (
84
- .clk (clk),
85
- .rst_n (rst_n),
86
- .bit_field_if (bit_field_sub_if),
87
- .o_value (o_bit_field_1_0)
88
- );
89
- end
90
- end endgenerate
91
- generate if (1) begin : g_register_2
92
- rggen_bit_field_if #(32) bit_field_if();
93
- rggen_default_register #(
94
- .ADDRESS_WIDTH (7),
95
- .START_ADDRESS (7'h08),
96
- .END_ADDRESS (7'h0b),
97
- .DATA_WIDTH (32),
98
- .VALID_BITS (32'h00010001)
99
- ) u_register (
100
- .register_if (register_if[2]),
101
- .bit_field_if (bit_field_if)
102
- );
103
- if (1) begin : g_bit_field_2_0
104
- rggen_bit_field_if #(1) bit_field_sub_if();
105
- `rggen_connect_bit_field_if(bit_field_if, bit_field_sub_if, 16, 16)
106
- rggen_bit_field_ro #(
107
- .WIDTH (1)
108
- ) u_bit_field (
109
- .bit_field_if (bit_field_sub_if),
110
- .i_value (i_bit_field_2_0)
111
- );
112
- end
113
- if (1) begin : g_bit_field_2_1
114
- rggen_bit_field_if #(1) bit_field_sub_if();
115
- `rggen_connect_bit_field_if(bit_field_if, bit_field_sub_if, 0, 0)
116
- rggen_bit_field_rw #(
117
- .WIDTH (1),
118
- .INITIAL_VALUE (1'h0)
119
- ) u_bit_field (
120
- .clk (clk),
121
- .rst_n (rst_n),
122
- .bit_field_if (bit_field_sub_if),
123
- .o_value (o_bit_field_2_1)
124
- );
125
- end
126
- end endgenerate
127
- `undef rggen_connect_bit_field_if
128
- endmodule
@@ -1,56 +0,0 @@
1
- `ifndef SAMPLE_1_RAL_PKG_SV
2
- `define SAMPLE_1_RAL_PKG_SV
3
- package sample_1_ral_pkg;
4
- import uvm_pkg::*;
5
- import rggen_ral_pkg::*;
6
- `include "uvm_macros.svh"
7
- `include "rggen_ral_macros.svh"
8
- class register_0_reg_model extends rggen_ral_reg;
9
- rand rggen_ral_field bit_field_0_0;
10
- rand rggen_ral_field bit_field_0_1;
11
- function new(string name = "register_0");
12
- super.new(name, 32, 0);
13
- endfunction
14
- function void create_fields();
15
- `rggen_ral_create_field_model(bit_field_0_0, "bit_field_0_0", 16, 16, "RW", 0, 16'h0000, 1, "g_bit_field_0_0.u_bit_field.value")
16
- `rggen_ral_create_field_model(bit_field_0_1, "bit_field_0_1", 16, 0, "RO", 0, 16'h0000, 0, "g_bit_field_0_1.u_bit_field.i_value")
17
- endfunction
18
- endclass
19
- class register_1_reg_model extends rggen_ral_reg;
20
- rand rggen_ral_field bit_field_1_0;
21
- function new(string name = "register_1");
22
- super.new(name, 32, 0);
23
- endfunction
24
- function void create_fields();
25
- `rggen_ral_create_field_model(bit_field_1_0, "bit_field_1_0", 32, 0, "RW", 0, 32'h00000000, 1, "g_bit_field_1_0.u_bit_field.value")
26
- endfunction
27
- endclass
28
- class register_2_reg_model extends rggen_ral_reg;
29
- rand rggen_ral_field bit_field_2_0;
30
- rand rggen_ral_field bit_field_2_1;
31
- function new(string name = "register_2");
32
- super.new(name, 24, 0);
33
- endfunction
34
- function void create_fields();
35
- `rggen_ral_create_field_model(bit_field_2_0, "bit_field_2_0", 1, 16, "RO", 0, 1'h0, 0, "g_bit_field_2_0.u_bit_field.i_value")
36
- `rggen_ral_create_field_model(bit_field_2_1, "bit_field_2_1", 1, 0, "RW", 0, 1'h0, 1, "g_bit_field_2_1.u_bit_field.value")
37
- endfunction
38
- endclass
39
- class sample_1_block_model extends rggen_ral_block;
40
- rand register_0_reg_model register_0;
41
- rand register_1_reg_model register_1;
42
- rand register_2_reg_model register_2;
43
- function new(string name = "sample_1");
44
- super.new(name);
45
- endfunction
46
- function void create_sub_models();
47
- `rggen_ral_create_reg_model(register_0, "register_0", '{}, 7'h00, "RW", 0, "g_register_0")
48
- `rggen_ral_create_reg_model(register_1, "register_1", '{}, 7'h04, "RW", 0, "g_register_1")
49
- `rggen_ral_create_reg_model(register_2, "register_2", '{}, 7'h08, "RW", 0, "g_register_2")
50
- endfunction
51
- function uvm_reg_map create_default_map();
52
- return create_map("default_map", 0, 4, UVM_LITTLE_ENDIAN, 1);
53
- endfunction
54
- endclass
55
- endpackage
56
- `endif
@@ -1,24 +0,0 @@
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, :array_port_format, :unfold_sv_interface_port]
12
- enable :register_block, [:name, :base_address]
13
- enable :register , [:offset_address, :name, :array, :type, :uniquness_validator]
14
- enable :register , :type, [:indirect, :external]
15
- enable :bit_field , [:bit_assignment, :name, :type, :initial_value, :reference]
16
- enable :bit_field , :type, [:rw, :ro, :w0c, :w1c, :w0s, :w1s, :rwl, :rwe, :foo, :reserved]
17
- enable :register_block, [:top_module, :clock_reset, :host_if]
18
- enable :register_block, :host_if, [:apb, :bar]
19
- enable :register , :rtl_top
20
- enable :bit_field , :rtl_top
21
- enable :register_block, [:ral_package, :block_model, :constructor, :sub_model_creator, :default_map_creator]
22
- enable :register , [:reg_model, :constructor, :field_model_creator, :indirect_index_configurator, :sub_block_model]
23
- enable :bit_field , :field_model
24
- enable :register_block, [:c_header_file, :address_struct]
data/setup/default.rb DELETED
@@ -1,14 +0,0 @@
1
- enable :global , [:data_width, :address_width, :array_port_format, :unfold_sv_interface_port]
2
- enable :register_block, [:name, :byte_size]
3
- enable :register , [:offset_address, :name, :array, :type, :uniquness_validator]
4
- enable :register , :type, [:indirect, :external]
5
- enable :bit_field , [:bit_assignment, :name, :type, :initial_value, :reference]
6
- enable :bit_field , :type, [:rw, :ro, :w0c, :w1c, :w0s, :w1s, :rwl, :rwe, :reserved]
7
- enable :register_block, [:rtl_top, :clock_reset, :host_if]
8
- enable :register_block, :host_if, [:apb, :axi4lite]
9
- enable :register , :rtl_top
10
- enable :bit_field , :rtl_top
11
- enable :register_block, [:ral_package, :block_model, :constructor, :sub_model_creator, :default_map_creator]
12
- enable :register , [:reg_model, :constructor, :field_model_creator, :indirect_index_configurator, :sub_block_model]
13
- enable :bit_field , :field_model
14
- enable :register_block, [:c_header_file, :address_struct]