rggen 0.12.0 → 0.13.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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -2
  3. data/lib/rggen.rb +0 -1
  4. data/lib/rggen/default.rb +7 -0
  5. data/lib/rggen/default_setup_file.rb +1 -2
  6. data/lib/rggen/version.rb +1 -3
  7. metadata +25 -81
  8. data/lib/rggen/built_in.rb +0 -57
  9. data/lib/rggen/built_in/bit_field/bit_assignment.rb +0 -114
  10. data/lib/rggen/built_in/bit_field/comment.rb +0 -18
  11. data/lib/rggen/built_in/bit_field/initial_value.rb +0 -75
  12. data/lib/rggen/built_in/bit_field/name.rb +0 -41
  13. data/lib/rggen/built_in/bit_field/reference.rb +0 -139
  14. data/lib/rggen/built_in/bit_field/sv_rtl_top.rb +0 -89
  15. data/lib/rggen/built_in/bit_field/type.rb +0 -245
  16. data/lib/rggen/built_in/bit_field/type/rc_w0c_w1c.erb +0 -15
  17. data/lib/rggen/built_in/bit_field/type/rc_w0c_w1c.rb +0 -59
  18. data/lib/rggen/built_in/bit_field/type/reserved.erb +0 -3
  19. data/lib/rggen/built_in/bit_field/type/reserved.rb +0 -16
  20. data/lib/rggen/built_in/bit_field/type/ro.erb +0 -6
  21. data/lib/rggen/built_in/bit_field/type/ro.rb +0 -31
  22. data/lib/rggen/built_in/bit_field/type/rof.erb +0 -6
  23. data/lib/rggen/built_in/bit_field/type/rof.rb +0 -17
  24. data/lib/rggen/built_in/bit_field/type/rs_w0s_w1s.erb +0 -13
  25. data/lib/rggen/built_in/bit_field/type/rs_w0s_w1s.rb +0 -46
  26. data/lib/rggen/built_in/bit_field/type/rw_wo.erb +0 -9
  27. data/lib/rggen/built_in/bit_field/type/rw_wo.rb +0 -30
  28. data/lib/rggen/built_in/bit_field/type/rwc_rwe_rwl.erb +0 -16
  29. data/lib/rggen/built_in/bit_field/type/rwc_rwe_rwl.rb +0 -92
  30. data/lib/rggen/built_in/bit_field/type/w0trg_w1trg.erb +0 -9
  31. data/lib/rggen/built_in/bit_field/type/w0trg_w1trg.rb +0 -29
  32. data/lib/rggen/built_in/global/address_width.rb +0 -34
  33. data/lib/rggen/built_in/global/array_port_format.rb +0 -19
  34. data/lib/rggen/built_in/global/bus_width.rb +0 -35
  35. data/lib/rggen/built_in/global/fold_sv_interface_port.rb +0 -24
  36. data/lib/rggen/built_in/register/markdown.erb +0 -11
  37. data/lib/rggen/built_in/register/markdown.rb +0 -26
  38. data/lib/rggen/built_in/register/name.rb +0 -36
  39. data/lib/rggen/built_in/register/offset_address.rb +0 -106
  40. data/lib/rggen/built_in/register/size.rb +0 -95
  41. data/lib/rggen/built_in/register/sv_rtl_top.rb +0 -82
  42. data/lib/rggen/built_in/register/type.rb +0 -344
  43. data/lib/rggen/built_in/register/type/default_sv_ral.erb +0 -8
  44. data/lib/rggen/built_in/register/type/default_sv_rtl.erb +0 -15
  45. data/lib/rggen/built_in/register/type/external.erb +0 -11
  46. data/lib/rggen/built_in/register/type/external.rb +0 -128
  47. data/lib/rggen/built_in/register/type/indirect.rb +0 -327
  48. data/lib/rggen/built_in/register/type/indirect_sv_ral.erb +0 -13
  49. data/lib/rggen/built_in/register/type/indirect_sv_rtl.erb +0 -17
  50. data/lib/rggen/built_in/register_block/byte_size.rb +0 -61
  51. data/lib/rggen/built_in/register_block/markdown.erb +0 -8
  52. data/lib/rggen/built_in/register_block/markdown.rb +0 -36
  53. data/lib/rggen/built_in/register_block/name.rb +0 -38
  54. data/lib/rggen/built_in/register_block/protocol.rb +0 -100
  55. data/lib/rggen/built_in/register_block/protocol/apb.erb +0 -10
  56. data/lib/rggen/built_in/register_block/protocol/apb.rb +0 -89
  57. data/lib/rggen/built_in/register_block/protocol/axi4lite.erb +0 -11
  58. data/lib/rggen/built_in/register_block/protocol/axi4lite.rb +0 -125
  59. data/lib/rggen/built_in/register_block/sv_ral_block_model.erb +0 -11
  60. data/lib/rggen/built_in/register_block/sv_ral_package.rb +0 -65
  61. data/lib/rggen/built_in/register_block/sv_rtl_macros.erb +0 -9
  62. data/lib/rggen/built_in/register_block/sv_rtl_top.rb +0 -86
  63. data/lib/rggen/built_in/version.rb +0 -7
  64. data/lib/rggen/setup/default.rb +0 -30
  65. data/sample/block_0.md +0 -155
  66. data/sample/block_0.rb +0 -90
  67. data/sample/block_0.sv +0 -678
  68. data/sample/block_0.xlsx +0 -0
  69. data/sample/block_0.yml +0 -99
  70. data/sample/block_0_ral_pkg.sv +0 -184
  71. data/sample/block_1.md +0 -39
  72. data/sample/block_1.rb +0 -22
  73. data/sample/block_1.sv +0 -136
  74. data/sample/block_1.xlsx +0 -0
  75. data/sample/block_1.yml +0 -26
  76. data/sample/block_1_ral_pkg.sv +0 -68
  77. data/sample/config.json +0 -5
  78. data/sample/config.yml +0 -3
Binary file
@@ -1,99 +0,0 @@
1
- register_blocks: [
2
- {
3
- name: block_0,
4
- byte_size: 256,
5
- registers: [
6
- {
7
- name: register_0,
8
- offset_address: 0x00,
9
- bit_fields: [
10
- { name: bit_field_0, bit_assignment: { lsb: 0 , width: 4 }, type: rw, initial_value: 0 },
11
- { name: bit_field_1, bit_assignment: { lsb: 4 , width: 4 }, type: rw, initial_value: 0 },
12
- { name: bit_field_2, bit_assignment: { lsb: 8 , width: 1 }, type: rw, initial_value: 0 }
13
- ]
14
- },
15
- {
16
- name: register_1,
17
- offset_address: 0x04,
18
- bit_fields: [
19
- { name: bit_field_0, bit_assignment: { lsb: 0 , width: 4 }, type: ro },
20
- { name: bit_field_1, bit_assignment: { lsb: 8 , width: 4 }, type: ro },
21
- { name: bit_field_2, bit_assignment: { lsb: 16, width: 8 }, type: rof, initial_value: 0xab },
22
- { name: bit_field_3, bit_assignment: { lsb: 24, width: 8 }, type: reserved }
23
- ]
24
- },
25
- {
26
- name: register_2,
27
- offset_address: 0x04,
28
- bit_fields: [
29
- { name: bit_field_0, bit_assignment: { lsb: 0 , width: 4 }, type: wo, initial_value: 0 },
30
- { name: bit_field_1, bit_assignment: { lsb: 8 , width: 4 }, type: w0trg },
31
- { name: bit_field_2, bit_assignment: { lsb: 16, width: 4 }, type: w1trg }
32
- ]
33
- },
34
- {
35
- name: register_3,
36
- offset_address: 0x08,
37
- bit_fields: [
38
- { name: bit_field_0, bit_assignment: { lsb: 0 , width: 4 }, type: rc, initial_value: 0 },
39
- { name: bit_field_1, bit_assignment: { lsb: 8 , width: 4 }, type: rc, initial_value: 0, reference: register_0.bit_field_0 },
40
- { name: bit_field_2, bit_assignment: { lsb: 12, width: 4 }, type: ro, reference: register_3.bit_field_1 },
41
- { name: bit_field_3, bit_assignment: { lsb: 16, width: 4 }, type: rs, initial_value: 0 }
42
- ]
43
- },
44
- {
45
- name: register_4,
46
- offset_address: 0x0C,
47
- bit_fields: [
48
- { name: bit_field_0, bit_assignment: { lsb: 0 , width: 4 }, type: rwc, initial_value: 0 },
49
- { name: bit_field_1, bit_assignment: { lsb: 4 , width: 4 }, type: rwc, initial_value: 0, reference: register_2.bit_field_1 },
50
- { name: bit_field_2, bit_assignment: { lsb: 8 , width: 4 }, type: rwe, initial_value: 0 },
51
- { name: bit_field_3, bit_assignment: { lsb: 12, width: 4 }, type: rwe, initial_value: 0, reference: register_0.bit_field_2 },
52
- { name: bit_field_4, bit_assignment: { lsb: 16, width: 4 }, type: rwl, initial_value: 0 },
53
- { name: bit_field_5, bit_assignment: { lsb: 20, width: 4 }, type: rwl, initial_value: 0, reference: register_0.bit_field_2 }
54
- ]
55
- },
56
- {
57
- name: register_5,
58
- offset_address: 0x10,
59
- bit_fields: [
60
- { name: bit_field_0, bit_assignment: { lsb: 0 , width: 4 }, type: w0c, initial_value: 0 },
61
- { name: bit_field_1, bit_assignment: { lsb: 4 , width: 4 }, type: w0c, initial_value: 0, reference: register_0.bit_field_0 },
62
- { name: bit_field_2, bit_assignment: { lsb: 8 , width: 4 }, type: ro , reference: register_5.bit_field_1 },
63
- { name: bit_field_3, bit_assignment: { lsb: 12, width: 4 }, type: w1c, initial_value: 0 },
64
- { name: bit_field_4, bit_assignment: { lsb: 16, width: 4 }, type: w1c, initial_value: 0, reference: register_0.bit_field_0 },
65
- { name: bit_field_5, bit_assignment: { lsb: 20, width: 4 }, type: ro , reference: register_5.bit_field_4 },
66
- { name: bit_field_6, bit_assignment: { lsb: 24, width: 4 }, type: w0s, initial_value: 0 },
67
- { name: bit_field_7, bit_assignment: { lsb: 28, width: 4 }, type: w1s, initial_value: 0 },
68
- ]
69
- },
70
- {
71
- name: register_6,
72
- offset_address: 0x20,
73
- size: 4,
74
- bit_fields: [
75
- # bit assignments: [7:0] [23:16] [39:32] [55:48]
76
- { name: bit_field_0, bit_assignment: { lsb: 0 , width: 8, sequence_size: 4, step: 16 }, type: rw, initial_value: 0 },
77
- # bit assignments: [15:8] [31:24] [47:40] [63:56]
78
- { name: bit_field_1, bit_assignment: { lsb: 8 , width: 8, sequence_size: 4, step: 16 }, type: rw, initial_value: 0 }
79
- ]
80
- },
81
- {
82
- name: register_7,
83
- offset_address: 0x40,
84
- size: [2, 4],
85
- type: [indirect, register_0.bit_field_0, register_0.bit_field_1, [register_0.bit_field_2, 1]],
86
- bit_fields: [
87
- { name: bit_field_0, bit_assignment: { lsb: 0 , width: 8, sequence_size: 4, step: 16 }, type: rw, initial_value: 0 },
88
- { name: bit_field_1, bit_assignment: { lsb: 8 , width: 8, sequence_size: 4, step: 16 }, type: rw, initial_value: 0 }
89
- ]
90
- },
91
- {
92
- name: register_8,
93
- offset_address: 0x80,
94
- size: 32,
95
- type: external
96
- }
97
- ]
98
- }
99
- ]
@@ -1,184 +0,0 @@
1
- package block_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;
8
- rand rggen_ral_field bit_field_1;
9
- rand rggen_ral_field bit_field_2;
10
- function new(string name);
11
- super.new(name, 32, 0);
12
- endfunction
13
- function void build();
14
- `rggen_ral_create_field_model(bit_field_0, 0, 4, RW, 0, 4'h0, 1)
15
- `rggen_ral_create_field_model(bit_field_1, 4, 4, RW, 0, 4'h0, 1)
16
- `rggen_ral_create_field_model(bit_field_2, 8, 1, RW, 0, 1'h0, 1)
17
- endfunction
18
- endclass
19
- class register_1_reg_model extends rggen_ral_reg;
20
- rand rggen_ral_field bit_field_0;
21
- rand rggen_ral_field bit_field_1;
22
- rand rggen_ral_field bit_field_2;
23
- rand rggen_ral_field bit_field_3;
24
- function new(string name);
25
- super.new(name, 32, 0);
26
- endfunction
27
- function void build();
28
- `rggen_ral_create_field_model(bit_field_0, 0, 4, RO, 1, 4'h0, 0)
29
- `rggen_ral_create_field_model(bit_field_1, 8, 4, RO, 1, 4'h0, 0)
30
- `rggen_ral_create_field_model(bit_field_2, 16, 8, RO, 0, 8'hab, 1)
31
- `rggen_ral_create_field_model(bit_field_3, 24, 8, RO, 0, 8'h00, 0)
32
- endfunction
33
- endclass
34
- class register_2_reg_model extends rggen_ral_reg;
35
- rand rggen_ral_field bit_field_0;
36
- rand rggen_ral_w0trg_field bit_field_1;
37
- rand rggen_ral_w1trg_field bit_field_2;
38
- function new(string name);
39
- super.new(name, 32, 0);
40
- endfunction
41
- function void build();
42
- `rggen_ral_create_field_model(bit_field_0, 0, 4, WO, 0, 4'h0, 1)
43
- `rggen_ral_create_field_model(bit_field_1, 8, 4, W0TRG, 0, 4'h0, 0)
44
- `rggen_ral_create_field_model(bit_field_2, 16, 4, W1TRG, 0, 4'h0, 0)
45
- endfunction
46
- endclass
47
- class register_3_reg_model extends rggen_ral_reg;
48
- rand rggen_ral_field bit_field_0;
49
- rand rggen_ral_field bit_field_1;
50
- rand rggen_ral_field bit_field_2;
51
- rand rggen_ral_field bit_field_3;
52
- function new(string name);
53
- super.new(name, 32, 0);
54
- endfunction
55
- function void build();
56
- `rggen_ral_create_field_model(bit_field_0, 0, 4, RC, 1, 4'h0, 1)
57
- `rggen_ral_create_field_model(bit_field_1, 8, 4, RC, 1, 4'h0, 1)
58
- `rggen_ral_create_field_model(bit_field_2, 12, 4, RO, 1, 4'h0, 0)
59
- `rggen_ral_create_field_model(bit_field_3, 16, 4, RS, 1, 4'h0, 1)
60
- endfunction
61
- endclass
62
- class register_4_reg_model extends rggen_ral_reg;
63
- rand rggen_ral_field bit_field_0;
64
- rand rggen_ral_field bit_field_1;
65
- rand rggen_ral_rwe_field #("", "") bit_field_2;
66
- rand rggen_ral_rwe_field #("register_0", "bit_field_2") bit_field_3;
67
- rand rggen_ral_rwl_field #("", "") bit_field_4;
68
- rand rggen_ral_rwl_field #("register_0", "bit_field_2") bit_field_5;
69
- function new(string name);
70
- super.new(name, 32, 0);
71
- endfunction
72
- function void build();
73
- `rggen_ral_create_field_model(bit_field_0, 0, 4, RW, 1, 4'h0, 1)
74
- `rggen_ral_create_field_model(bit_field_1, 4, 4, RW, 1, 4'h0, 1)
75
- `rggen_ral_create_field_model(bit_field_2, 8, 4, RWE, 1, 4'h0, 1)
76
- `rggen_ral_create_field_model(bit_field_3, 12, 4, RWE, 0, 4'h0, 1)
77
- `rggen_ral_create_field_model(bit_field_4, 16, 4, RWL, 1, 4'h0, 1)
78
- `rggen_ral_create_field_model(bit_field_5, 20, 4, RWL, 0, 4'h0, 1)
79
- endfunction
80
- endclass
81
- class register_5_reg_model extends rggen_ral_reg;
82
- rand rggen_ral_field bit_field_0;
83
- rand rggen_ral_field bit_field_1;
84
- rand rggen_ral_field bit_field_2;
85
- rand rggen_ral_field bit_field_3;
86
- rand rggen_ral_field bit_field_4;
87
- rand rggen_ral_field bit_field_5;
88
- rand rggen_ral_field bit_field_6;
89
- rand rggen_ral_field bit_field_7;
90
- function new(string name);
91
- super.new(name, 32, 0);
92
- endfunction
93
- function void build();
94
- `rggen_ral_create_field_model(bit_field_0, 0, 4, W0C, 1, 4'h0, 1)
95
- `rggen_ral_create_field_model(bit_field_1, 4, 4, W0C, 1, 4'h0, 1)
96
- `rggen_ral_create_field_model(bit_field_2, 8, 4, RO, 1, 4'h0, 0)
97
- `rggen_ral_create_field_model(bit_field_3, 12, 4, W1C, 1, 4'h0, 1)
98
- `rggen_ral_create_field_model(bit_field_4, 16, 4, W1C, 1, 4'h0, 1)
99
- `rggen_ral_create_field_model(bit_field_5, 20, 4, RO, 1, 4'h0, 0)
100
- `rggen_ral_create_field_model(bit_field_6, 24, 4, W0S, 1, 4'h0, 1)
101
- `rggen_ral_create_field_model(bit_field_7, 28, 4, W1S, 1, 4'h0, 1)
102
- endfunction
103
- endclass
104
- class register_6_reg_model extends rggen_ral_reg;
105
- rand rggen_ral_field bit_field_0[4];
106
- rand rggen_ral_field bit_field_1[4];
107
- function new(string name);
108
- super.new(name, 64, 0);
109
- endfunction
110
- function void build();
111
- `rggen_ral_create_field_model(bit_field_0[0], 0, 8, RW, 0, 8'h00, 1)
112
- `rggen_ral_create_field_model(bit_field_0[1], 16, 8, RW, 0, 8'h00, 1)
113
- `rggen_ral_create_field_model(bit_field_0[2], 32, 8, RW, 0, 8'h00, 1)
114
- `rggen_ral_create_field_model(bit_field_0[3], 48, 8, RW, 0, 8'h00, 1)
115
- `rggen_ral_create_field_model(bit_field_1[0], 8, 8, RW, 0, 8'h00, 1)
116
- `rggen_ral_create_field_model(bit_field_1[1], 24, 8, RW, 0, 8'h00, 1)
117
- `rggen_ral_create_field_model(bit_field_1[2], 40, 8, RW, 0, 8'h00, 1)
118
- `rggen_ral_create_field_model(bit_field_1[3], 56, 8, RW, 0, 8'h00, 1)
119
- endfunction
120
- endclass
121
- class register_7_reg_model extends rggen_ral_indirect_reg;
122
- rand rggen_ral_field bit_field_0[4];
123
- rand rggen_ral_field bit_field_1[4];
124
- function new(string name);
125
- super.new(name, 64, 0);
126
- endfunction
127
- function void build();
128
- `rggen_ral_create_field_model(bit_field_0[0], 0, 8, RW, 0, 8'h00, 1)
129
- `rggen_ral_create_field_model(bit_field_0[1], 16, 8, RW, 0, 8'h00, 1)
130
- `rggen_ral_create_field_model(bit_field_0[2], 32, 8, RW, 0, 8'h00, 1)
131
- `rggen_ral_create_field_model(bit_field_0[3], 48, 8, RW, 0, 8'h00, 1)
132
- `rggen_ral_create_field_model(bit_field_1[0], 8, 8, RW, 0, 8'h00, 1)
133
- `rggen_ral_create_field_model(bit_field_1[1], 24, 8, RW, 0, 8'h00, 1)
134
- `rggen_ral_create_field_model(bit_field_1[2], 40, 8, RW, 0, 8'h00, 1)
135
- `rggen_ral_create_field_model(bit_field_1[3], 56, 8, RW, 0, 8'h00, 1)
136
- endfunction
137
- function void setup_index_fields();
138
- setup_index_field("register_0", "bit_field_0", array_index[0]);
139
- setup_index_field("register_0", "bit_field_1", array_index[1]);
140
- setup_index_field("register_0", "bit_field_2", 1'h1);
141
- endfunction
142
- endclass
143
- class block_0_block_model #(
144
- type REGISTER_8 = rggen_ral_block,
145
- bit INTEGRATE_REGISTER_8 = 1
146
- ) extends rggen_ral_block;
147
- rand register_0_reg_model register_0;
148
- rand register_1_reg_model register_1;
149
- rand register_2_reg_model register_2;
150
- rand register_3_reg_model register_3;
151
- rand register_4_reg_model register_4;
152
- rand register_5_reg_model register_5;
153
- rand register_6_reg_model register_6[4];
154
- rand register_7_reg_model register_7[2][4];
155
- rand REGISTER_8 register_8;
156
- function new(string name);
157
- super.new(name);
158
- endfunction
159
- function void build();
160
- `rggen_ral_create_reg_model(register_0, '{}, 8'h00, RW, 0, g_register_0.u_register)
161
- `rggen_ral_create_reg_model(register_1, '{}, 8'h04, RO, 0, g_register_1.u_register)
162
- `rggen_ral_create_reg_model(register_2, '{}, 8'h04, WO, 0, g_register_2.u_register)
163
- `rggen_ral_create_reg_model(register_3, '{}, 8'h08, RO, 0, g_register_3.u_register)
164
- `rggen_ral_create_reg_model(register_4, '{}, 8'h0c, RW, 0, g_register_4.u_register)
165
- `rggen_ral_create_reg_model(register_5, '{}, 8'h10, RW, 0, g_register_5.u_register)
166
- `rggen_ral_create_reg_model(register_6[0], '{0}, 8'h20, RW, 0, g_register_6.g[0].u_register)
167
- `rggen_ral_create_reg_model(register_6[1], '{1}, 8'h28, RW, 0, g_register_6.g[1].u_register)
168
- `rggen_ral_create_reg_model(register_6[2], '{2}, 8'h30, RW, 0, g_register_6.g[2].u_register)
169
- `rggen_ral_create_reg_model(register_6[3], '{3}, 8'h38, RW, 0, g_register_6.g[3].u_register)
170
- `rggen_ral_create_reg_model(register_7[0][0], '{0, 0}, 8'h40, RW, 1, g_register_7.g[0].g[0].u_register)
171
- `rggen_ral_create_reg_model(register_7[0][1], '{0, 1}, 8'h40, RW, 1, g_register_7.g[0].g[1].u_register)
172
- `rggen_ral_create_reg_model(register_7[0][2], '{0, 2}, 8'h40, RW, 1, g_register_7.g[0].g[2].u_register)
173
- `rggen_ral_create_reg_model(register_7[0][3], '{0, 3}, 8'h40, RW, 1, g_register_7.g[0].g[3].u_register)
174
- `rggen_ral_create_reg_model(register_7[1][0], '{1, 0}, 8'h40, RW, 1, g_register_7.g[1].g[0].u_register)
175
- `rggen_ral_create_reg_model(register_7[1][1], '{1, 1}, 8'h40, RW, 1, g_register_7.g[1].g[1].u_register)
176
- `rggen_ral_create_reg_model(register_7[1][2], '{1, 2}, 8'h40, RW, 1, g_register_7.g[1].g[2].u_register)
177
- `rggen_ral_create_reg_model(register_7[1][3], '{1, 3}, 8'h40, RW, 1, g_register_7.g[1].g[3].u_register)
178
- `rggen_ral_create_block_model(register_8, 8'h80, this, INTEGRATE_REGISTER_8)
179
- endfunction
180
- function uvm_reg_map create_default_map();
181
- return create_map("default_map", 0, 4, UVM_LITTLE_ENDIAN, 1);
182
- endfunction
183
- endclass
184
- endpackage
@@ -1,39 +0,0 @@
1
- ## block_1
2
-
3
- * name
4
- * block_1
5
- * byte_size
6
- * 128
7
-
8
- |name|offset_address|
9
- |:--|:--|
10
- |[register_0](#block_1-register_0)|0x00 - 0x3f|
11
- |[register_1](#block_1-register_1)|0x40 - 0x7f|
12
-
13
- ### <div id="block_1-register_0"></div>register_0
14
-
15
- * name
16
- * register_0
17
- * offset_address
18
- * 0x00 - 0x3f
19
- * array_size
20
- * [2, 4]
21
-
22
- |name|bit_assignments|type|initial_value|comment|
23
- |:--|:--|:--|:--|:--|
24
- |bit_field_0|[7:0]<br>[23:16]<br>[39:32]<br>[55:48]|rw|0x00||
25
- |bit_field_1|[15:8]<br>[31:24]<br>[47:40]<br>[63:56]|ro|||
26
-
27
- ### <div id="block_1-register_1"></div>register_1
28
-
29
- * name
30
- * register_1
31
- * offset_address
32
- * 0x40 - 0x7f
33
- * array_size
34
- * [2, 4]
35
-
36
- |name|bit_assignments|type|initial_value|comment|
37
- |:--|:--|:--|:--|:--|
38
- |bit_field_0|[7:0]<br>[23:16]<br>[39:32]<br>[55:48]|ro|||
39
- |bit_field_1|[15:8]<br>[31:24]<br>[47:40]<br>[63:56]|rw|0x00||
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- register_block {
4
- name 'block_1'
5
- byte_size 128
6
-
7
- register {
8
- name 'register_0'
9
- offset_address 0x00
10
- size [2, 4]
11
- bit_field { name 'bit_field_0'; bit_assignment lsb: 0, width: 8, sequence_size: 4, step: 16; type :rw; initial_value 0 }
12
- bit_field { name 'bit_field_1'; bit_assignment lsb: 8, width: 8, sequence_size: 4, step: 16; type :ro; reference 'register_1.bit_field_1' }
13
- }
14
-
15
- register {
16
- name 'register_1'
17
- offset_address 0x40
18
- size [2, 4]
19
- bit_field { name 'bit_field_0'; bit_assignment lsb: 0, width: 8, sequence_size: 4, step: 16; type :ro; reference 'register_0.bit_field_0' }
20
- bit_field { name 'bit_field_1'; bit_assignment lsb: 8, width: 8, sequence_size: 4, step: 16; type :rw; initial_value 0 }
21
- }
22
- }
@@ -1,136 +0,0 @@
1
- `ifndef rggen_connect_bit_field_if
2
- `define rggen_connect_bit_field_if(RIF, FIF, LSB, WIDTH) \
3
- assign FIF.valid = RIF.valid; \
4
- assign FIF.read_mask = RIF.read_mask[LSB+:WIDTH]; \
5
- assign FIF.write_mask = RIF.write_mask[LSB+:WIDTH]; \
6
- assign FIF.write_data = RIF.write_data[LSB+:WIDTH]; \
7
- assign RIF.read_data[LSB+:WIDTH] = FIF.read_data; \
8
- assign RIF.value[LSB+:WIDTH] = FIF.value;
9
- `endif
10
- module block_1
11
- import rggen_rtl_pkg::*;
12
- (
13
- input logic i_clk,
14
- input logic i_rst_n,
15
- rggen_apb_if.slave apb_if,
16
- output logic [1:0][3:0][3:0][7:0] o_register_0_bit_field_0,
17
- output logic [1:0][3:0][3:0][7:0] o_register_1_bit_field_1
18
- );
19
- rggen_register_if #(7, 32, 64) register_if[16]();
20
- rggen_apb_adapter #(
21
- .ADDRESS_WIDTH (7),
22
- .BUS_WIDTH (32),
23
- .REGISTERS (16)
24
- ) u_adapter (
25
- .i_clk (i_clk),
26
- .i_rst_n (i_rst_n),
27
- .apb_if (apb_if),
28
- .register_if (register_if)
29
- );
30
- generate if (1) begin : g_register_0
31
- genvar i;
32
- genvar j;
33
- for (i = 0;i < 2;++i) begin : g
34
- for (j = 0;j < 4;++j) begin : g
35
- rggen_bit_field_if #(64) bit_field_if();
36
- rggen_default_register #(
37
- .READABLE (1),
38
- .WRITABLE (1),
39
- .ADDRESS_WIDTH (7),
40
- .OFFSET_ADDRESS (7'h00),
41
- .BUS_WIDTH (32),
42
- .DATA_WIDTH (64),
43
- .VALID_BITS (64'hffffffffffffffff),
44
- .REGISTER_INDEX (4*i+j)
45
- ) u_register (
46
- .i_clk (i_clk),
47
- .i_rst_n (i_rst_n),
48
- .register_if (register_if[0+4*i+j]),
49
- .bit_field_if (bit_field_if)
50
- );
51
- if (1) begin : g_bit_field_0
52
- genvar k;
53
- for (k = 0;k < 4;++k) begin : g
54
- rggen_bit_field_if #(8) bit_field_sub_if();
55
- `rggen_connect_bit_field_if(bit_field_if, bit_field_sub_if, 0+16*k, 8)
56
- rggen_bit_field_rw #(
57
- .WIDTH (8),
58
- .INITIAL_VALUE (8'h00)
59
- ) u_bit_field (
60
- .i_clk (i_clk),
61
- .i_rst_n (i_rst_n),
62
- .bit_field_if (bit_field_sub_if),
63
- .o_value (o_register_0_bit_field_0[i][j][k])
64
- );
65
- end
66
- end
67
- if (1) begin : g_bit_field_1
68
- genvar k;
69
- for (k = 0;k < 4;++k) begin : g
70
- rggen_bit_field_if #(8) bit_field_sub_if();
71
- `rggen_connect_bit_field_if(bit_field_if, bit_field_sub_if, 8+16*k, 8)
72
- rggen_bit_field_ro #(
73
- .WIDTH (8)
74
- ) u_bit_field (
75
- .bit_field_if (bit_field_sub_if),
76
- .i_value (register_if[8+4*i+j].value[8+16*k+:8])
77
- );
78
- end
79
- end
80
- end
81
- end
82
- end endgenerate
83
- generate if (1) begin : g_register_1
84
- genvar i;
85
- genvar j;
86
- for (i = 0;i < 2;++i) begin : g
87
- for (j = 0;j < 4;++j) begin : g
88
- rggen_bit_field_if #(64) bit_field_if();
89
- rggen_default_register #(
90
- .READABLE (1),
91
- .WRITABLE (1),
92
- .ADDRESS_WIDTH (7),
93
- .OFFSET_ADDRESS (7'h40),
94
- .BUS_WIDTH (32),
95
- .DATA_WIDTH (64),
96
- .VALID_BITS (64'hffffffffffffffff),
97
- .REGISTER_INDEX (4*i+j)
98
- ) u_register (
99
- .i_clk (i_clk),
100
- .i_rst_n (i_rst_n),
101
- .register_if (register_if[8+4*i+j]),
102
- .bit_field_if (bit_field_if)
103
- );
104
- if (1) begin : g_bit_field_0
105
- genvar k;
106
- for (k = 0;k < 4;++k) begin : g
107
- rggen_bit_field_if #(8) bit_field_sub_if();
108
- `rggen_connect_bit_field_if(bit_field_if, bit_field_sub_if, 0+16*k, 8)
109
- rggen_bit_field_ro #(
110
- .WIDTH (8)
111
- ) u_bit_field (
112
- .bit_field_if (bit_field_sub_if),
113
- .i_value (register_if[0+4*i+j].value[0+16*k+:8])
114
- );
115
- end
116
- end
117
- if (1) begin : g_bit_field_1
118
- genvar k;
119
- for (k = 0;k < 4;++k) begin : g
120
- rggen_bit_field_if #(8) bit_field_sub_if();
121
- `rggen_connect_bit_field_if(bit_field_if, bit_field_sub_if, 8+16*k, 8)
122
- rggen_bit_field_rw #(
123
- .WIDTH (8),
124
- .INITIAL_VALUE (8'h00)
125
- ) u_bit_field (
126
- .i_clk (i_clk),
127
- .i_rst_n (i_rst_n),
128
- .bit_field_if (bit_field_sub_if),
129
- .o_value (o_register_1_bit_field_1[i][j][k])
130
- );
131
- end
132
- end
133
- end
134
- end
135
- end endgenerate
136
- endmodule