rggen 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/c_header/LICENSE +21 -0
  3. data/{c → c_header}/rggen.h +0 -0
  4. data/lib/rggen/builtins.rb +2 -5
  5. data/lib/rggen/builtins/bit_field/type.rb +22 -7
  6. data/lib/rggen/builtins/bit_field/types/ro.erb +2 -2
  7. data/lib/rggen/builtins/bit_field/types/ro.rb +2 -2
  8. data/lib/rggen/builtins/bit_field/types/rw.erb +5 -9
  9. data/lib/rggen/builtins/bit_field/types/rw.rb +5 -5
  10. data/lib/rggen/builtins/bit_field/types/rwl_rwe.erb +3 -7
  11. data/lib/rggen/builtins/bit_field/types/rwl_rwe.rb +6 -7
  12. data/lib/rggen/builtins/bit_field/types/w0c_w1c.erb +8 -12
  13. data/lib/rggen/builtins/bit_field/types/w0c_w1c.rb +5 -2
  14. data/lib/rggen/builtins/bit_field/types/w0s_w1s.erb +8 -12
  15. data/lib/rggen/builtins/bit_field/types/w0s_w1s.rb +3 -6
  16. data/lib/rggen/builtins/register/array.rb +0 -93
  17. data/lib/rggen/builtins/register/reg_model.rb +1 -1
  18. data/lib/rggen/builtins/register/rtl_top.rb +68 -0
  19. data/lib/rggen/builtins/register/type.rb +74 -0
  20. data/lib/rggen/builtins/register/types/default.erb +10 -0
  21. data/lib/rggen/builtins/register/types/external.erb +11 -0
  22. data/lib/rggen/builtins/register/types/external.rb +11 -0
  23. data/lib/rggen/builtins/register/types/indirect.erb +13 -0
  24. data/lib/rggen/builtins/register/types/indirect.rb +43 -0
  25. data/lib/rggen/builtins/register_block/clock_reset.rb +2 -2
  26. data/lib/rggen/builtins/register_block/host_if.rb +11 -12
  27. data/lib/rggen/builtins/register_block/host_ifs/apb.erb +7 -25
  28. data/lib/rggen/builtins/register_block/host_ifs/apb.rb +4 -13
  29. data/lib/rggen/builtins/register_block/host_ifs/axi4lite.erb +6 -34
  30. data/lib/rggen/builtins/register_block/host_ifs/axi4lite.rb +8 -30
  31. data/lib/rggen/builtins/register_block/irq_controller.rb +4 -4
  32. data/lib/rggen/builtins/register_block/rtl_top.erb +7 -0
  33. data/lib/rggen/builtins/register_block/rtl_top.rb +28 -0
  34. data/lib/rggen/core_components.rb +3 -0
  35. data/lib/rggen/core_components/ral/item.rb +2 -6
  36. data/lib/rggen/core_components/rtl/component.rb +8 -8
  37. data/lib/rggen/core_components/rtl/item.rb +41 -38
  38. data/lib/rggen/core_components/verilog_utility.rb +23 -4
  39. data/lib/rggen/core_components/verilog_utility/declaration.rb +14 -4
  40. data/lib/rggen/core_components/verilog_utility/identifier.rb +19 -0
  41. data/lib/rggen/core_components/verilog_utility/interface_instantiation.rb +33 -0
  42. data/lib/rggen/core_components/verilog_utility/interface_port_declaration.rb +29 -0
  43. data/lib/rggen/core_components/verilog_utility/local_scope.rb +64 -0
  44. data/lib/rggen/core_extensions/facets.rb +1 -1
  45. data/lib/rggen/core_extensions/forwardable.rb +1 -1
  46. data/lib/rggen/version.rb +2 -2
  47. data/ral/LICENSE +21 -0
  48. data/ral/rggen_ral_macros.svh +1 -4
  49. data/ral/rggen_ral_reg.svh +35 -3
  50. data/rtl/LICENSE +21 -0
  51. data/rtl/compile.f +21 -6
  52. data/rtl/rggen_address_decoder.sv +23 -0
  53. data/rtl/rggen_apb_if.sv +41 -0
  54. data/rtl/rggen_axi4lite_if.sv +68 -0
  55. data/rtl/rggen_bit_field_if.sv +28 -0
  56. data/rtl/rggen_bit_field_ro.sv +9 -0
  57. data/rtl/rggen_bit_field_rw.sv +25 -0
  58. data/rtl/rggen_bit_field_rwl_rwe.sv +29 -0
  59. data/rtl/rggen_bit_field_w01s_w01c.sv +55 -0
  60. data/rtl/rggen_bus_if.sv +43 -0
  61. data/rtl/rggen_bus_splitter.sv +87 -0
  62. data/rtl/rggen_default_register.sv +15 -0
  63. data/rtl/rggen_external_register.sv +83 -0
  64. data/rtl/rggen_host_if_apb.sv +29 -0
  65. data/rtl/rggen_host_if_axi4lite.sv +14 -0
  66. data/rtl/rggen_indirect_register.sv +21 -0
  67. data/rtl/{register_block/rggen_irq_controller.sv → rggen_irq_controller.sv} +0 -0
  68. data/rtl/rggen_register_base.sv +57 -0
  69. data/rtl/rggen_register_if.sv +42 -0
  70. data/rtl/rggen_rtl_pkg.sv +23 -0
  71. data/sample/LICENSE +21 -0
  72. data/sample/sample_0.sv +315 -444
  73. data/sample/sample_0_ral_pkg.sv +7 -7
  74. data/sample/sample_1.sv +104 -162
  75. data/sample/sample_1_ral_pkg.sv +3 -3
  76. data/sample/sample_setup.rb +2 -2
  77. data/setup/default.rb +3 -3
  78. metadata +35 -23
  79. data/lib/rggen/builtins/register/address_decoder.erb +0 -12
  80. data/lib/rggen/builtins/register/address_decoder.rb +0 -82
  81. data/lib/rggen/builtins/register/bus_exporter.erb +0 -28
  82. data/lib/rggen/builtins/register/bus_exporter.rb +0 -52
  83. data/lib/rggen/builtins/register/read_data.rb +0 -61
  84. data/lib/rggen/builtins/register_block/response_mux.erb +0 -18
  85. data/lib/rggen/builtins/register_block/response_mux.rb +0 -47
  86. data/lib/rggen/builtins/register_block/top_module.rb +0 -20
  87. data/rtl/bit_field/rggen_bit_field_common.svh +0 -15
  88. data/rtl/bit_field/rggen_bit_field_ro.sv +0 -8
  89. data/rtl/bit_field/rggen_bit_field_rw.sv +0 -27
  90. data/rtl/bit_field/rggen_bit_field_rwl_rwe.sv +0 -49
  91. data/rtl/bit_field/rggen_bit_field_w01s_w01c.sv +0 -67
  92. data/rtl/register/rggen_address_decoder.sv +0 -37
  93. data/rtl/register/rggen_bus_exporter.sv +0 -96
  94. data/rtl/register_block/rggen_host_if_apb.sv +0 -42
  95. data/rtl/register_block/rggen_host_if_axi4lite.sv +0 -257
  96. data/rtl/register_block/rggen_host_if_common.svh +0 -9
  97. data/rtl/register_block/rggen_response_mux.sv +0 -113
@@ -122,19 +122,19 @@ package sample_0_ral_pkg;
122
122
  super.new(name);
123
123
  endfunction
124
124
  function void create_sub_models();
125
- `rggen_ral_create_reg_model(register_0, "register_0", '{}, 8'h00, "RW", 0, "")
126
- `rggen_ral_create_reg_model(register_1, "register_1", '{}, 8'h04, "RW", 0, "")
127
- `rggen_ral_create_reg_model(register_2, "register_2", '{}, 8'h08, "RW", 0, "")
128
- `rggen_ral_create_reg_model(register_3, "register_3", '{}, 8'h0c, "RO", 0, "")
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
129
  foreach (register_4[i]) begin
130
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
131
  end
132
132
  foreach (register_5[i, j]) begin
133
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
134
  end
135
- `rggen_ral_create_reg_model(register_6, "register_6", '{}, 8'h24, "RW", 0, "")
136
- `rggen_ral_create_reg_model(register_7, "register_7", '{}, 8'h28, "RW", 0, "")
137
- `rggen_ral_create_reg_model(register_8, "register_8", '{}, 8'h2c, "RW", 0, "")
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
138
  `rggen_ral_create_block_model(register_9, "register_9", 8'h80)
139
139
  endfunction
140
140
  function uvm_reg_map create_default_map();
data/sample/sample_1.sv CHANGED
@@ -1,176 +1,118 @@
1
1
  module sample_1 (
2
2
  input clk,
3
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,
4
+ rggen_apb_if.slave apb_if,
14
5
  output [15:0] o_bit_field_0_0,
15
6
  input [15:0] i_bit_field_0_1,
16
7
  output [31:0] o_bit_field_1_0,
17
8
  input i_bit_field_2_0,
18
9
  output o_bit_field_2_1
19
10
  );
20
- logic command_valid;
21
- logic write;
22
- logic read;
23
- logic [6:0] address;
24
- logic [3:0] strobe;
25
- logic [31:0] write_data;
26
- logic [31:0] write_mask;
27
- logic response_ready;
28
- logic [31:0] read_data;
29
- logic [1:0] status;
30
- logic [2:0] register_select;
31
- logic [31:0] register_read_data[3];
32
- logic [15:0] bit_field_0_0_value;
33
- logic [15:0] bit_field_0_1_value;
34
- logic [31:0] bit_field_1_0_value;
35
- logic bit_field_2_0_value;
36
- logic bit_field_2_1_value;
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;
37
19
  rggen_host_if_apb #(
20
+ .LOCAL_ADDRESS_WIDTH (7),
38
21
  .DATA_WIDTH (32),
39
- .HOST_ADDRESS_WIDTH (16),
40
- .LOCAL_ADDRESS_WIDTH (7)
22
+ .TOTAL_REGISTERS (3)
41
23
  ) u_host_if (
42
- .clk (clk),
43
- .rst_n (rst_n),
44
- .i_paddr (i_paddr),
45
- .i_pprot (i_pprot),
46
- .i_psel (i_psel),
47
- .i_penable (i_penable),
48
- .i_pwrite (i_pwrite),
49
- .i_pwdata (i_pwdata),
50
- .i_pstrb (i_pstrb),
51
- .o_pready (o_pready),
52
- .o_prdata (o_prdata),
53
- .o_pslverr (o_pslverr),
54
- .o_command_valid (command_valid),
55
- .o_write (write),
56
- .o_read (read),
57
- .o_address (address),
58
- .o_strobe (strobe),
59
- .o_write_data (write_data),
60
- .o_write_mask (write_mask),
61
- .i_response_ready (response_ready),
62
- .i_read_data (read_data),
63
- .i_status (status)
64
- );
65
- rggen_response_mux #(
66
- .DATA_WIDTH (32),
67
- .TOTAL_REGISTERS (3),
68
- .TOTAL_EXTERNAL_REGISTERS (0)
69
- ) u_response_mux (
70
- .clk (clk),
71
- .rst_n (rst_n),
72
- .i_command_valid (command_valid),
73
- .i_read (read),
74
- .o_response_ready (response_ready),
75
- .o_read_data (read_data),
76
- .o_status (status),
77
- .i_register_select (register_select),
78
- .i_register_read_data (register_read_data),
79
- .i_external_register_select (1'b0),
80
- .i_external_register_ready (1'b0),
81
- .i_external_register_status ('{2'b00})
82
- );
83
- rggen_address_decoder #(
84
- .ADDRESS_WIDTH (5),
85
- .START_ADDRESS (5'h00),
86
- .END_ADDRESS (5'h00),
87
- .INDIRECT_REGISTER (0),
88
- .INDIRECT_INDEX_WIDTH (1),
89
- .INDIRECT_INDEX_VALUE (1'h0)
90
- ) u_register_0_address_decoder (
91
- .i_address (address[6:2]),
92
- .i_indirect_index (1'h0),
93
- .o_select (register_select[0])
94
- );
95
- assign register_read_data[0] = {bit_field_0_0_value, bit_field_0_1_value};
96
- assign o_bit_field_0_0 = bit_field_0_0_value;
97
- rggen_bit_field_rw #(
98
- .WIDTH (16),
99
- .INITIAL_VALUE (16'h0000)
100
- ) u_bit_field_0_0 (
101
- .clk (clk),
102
- .rst_n (rst_n),
103
- .i_command_valid (command_valid),
104
- .i_select (register_select[0]),
105
- .i_write (write),
106
- .i_write_data (write_data[31:16]),
107
- .i_write_mask (write_mask[31:16]),
108
- .o_value (bit_field_0_0_value)
109
- );
110
- rggen_bit_field_ro #(
111
- .WIDTH (16)
112
- ) u_bit_field_0_1 (
113
- .i_value (i_bit_field_0_1),
114
- .o_value (bit_field_0_1_value)
115
- );
116
- rggen_address_decoder #(
117
- .ADDRESS_WIDTH (5),
118
- .START_ADDRESS (5'h01),
119
- .END_ADDRESS (5'h01),
120
- .INDIRECT_REGISTER (0),
121
- .INDIRECT_INDEX_WIDTH (1),
122
- .INDIRECT_INDEX_VALUE (1'h0)
123
- ) u_register_1_address_decoder (
124
- .i_address (address[6:2]),
125
- .i_indirect_index (1'h0),
126
- .o_select (register_select[1])
127
- );
128
- assign register_read_data[1] = {bit_field_1_0_value};
129
- assign o_bit_field_1_0 = bit_field_1_0_value;
130
- rggen_bit_field_rw #(
131
- .WIDTH (32),
132
- .INITIAL_VALUE (32'h00000000)
133
- ) u_bit_field_1_0 (
134
- .clk (clk),
135
- .rst_n (rst_n),
136
- .i_command_valid (command_valid),
137
- .i_select (register_select[1]),
138
- .i_write (write),
139
- .i_write_data (write_data[31:0]),
140
- .i_write_mask (write_mask[31:0]),
141
- .o_value (bit_field_1_0_value)
142
- );
143
- rggen_address_decoder #(
144
- .ADDRESS_WIDTH (5),
145
- .START_ADDRESS (5'h02),
146
- .END_ADDRESS (5'h02),
147
- .INDIRECT_REGISTER (0),
148
- .INDIRECT_INDEX_WIDTH (1),
149
- .INDIRECT_INDEX_VALUE (1'h0)
150
- ) u_register_2_address_decoder (
151
- .i_address (address[6:2]),
152
- .i_indirect_index (1'h0),
153
- .o_select (register_select[2])
154
- );
155
- assign register_read_data[2] = {15'h0000, bit_field_2_0_value, 15'h0000, bit_field_2_1_value};
156
- rggen_bit_field_ro #(
157
- .WIDTH (1)
158
- ) u_bit_field_2_0 (
159
- .i_value (i_bit_field_2_0),
160
- .o_value (bit_field_2_0_value)
161
- );
162
- assign o_bit_field_2_1 = bit_field_2_1_value;
163
- rggen_bit_field_rw #(
164
- .WIDTH (1),
165
- .INITIAL_VALUE (1'h0)
166
- ) u_bit_field_2_1 (
167
- .clk (clk),
168
- .rst_n (rst_n),
169
- .i_command_valid (command_valid),
170
- .i_select (register_select[2]),
171
- .i_write (write),
172
- .i_write_data (write_data[0]),
173
- .i_write_mask (write_mask[0]),
174
- .o_value (bit_field_2_1_value)
24
+ .clk (clk),
25
+ .rst_n (rst_n),
26
+ .apb_if (apb_if),
27
+ .register_if (register_if)
175
28
  );
29
+ generate if (1) begin : g_register_0
30
+ rggen_bit_field_if #(32) bit_field_if();
31
+ rggen_bit_field_if #(16) bit_field_0_0_if();
32
+ rggen_bit_field_if #(16) bit_field_0_1_if();
33
+ rggen_default_register #(
34
+ .ADDRESS_WIDTH (7),
35
+ .START_ADDRESS (7'h00),
36
+ .END_ADDRESS (7'h03),
37
+ .DATA_WIDTH (32),
38
+ .VALID_BITS (32'hffffffff)
39
+ ) u_register_0 (
40
+ .register_if (register_if[0]),
41
+ .bit_field_if (bit_field_if)
42
+ );
43
+ `rggen_connect_bit_field_if(bit_field_if, bit_field_0_0_if, 31, 16)
44
+ rggen_bit_field_rw #(
45
+ .WIDTH (16),
46
+ .INITIAL_VALUE (16'h0000)
47
+ ) u_bit_field_0_0 (
48
+ .clk (clk),
49
+ .rst_n (rst_n),
50
+ .bit_field_if (bit_field_0_0_if),
51
+ .o_value (o_bit_field_0_0)
52
+ );
53
+ `rggen_connect_bit_field_if(bit_field_if, bit_field_0_1_if, 15, 0)
54
+ rggen_bit_field_ro #(
55
+ .WIDTH (16)
56
+ ) u_bit_field_0_1 (
57
+ .bit_field_if (bit_field_0_1_if),
58
+ .i_value (i_bit_field_0_1)
59
+ );
60
+ end endgenerate
61
+ generate if (1) begin : g_register_1
62
+ rggen_bit_field_if #(32) bit_field_if();
63
+ rggen_bit_field_if #(32) bit_field_1_0_if();
64
+ rggen_default_register #(
65
+ .ADDRESS_WIDTH (7),
66
+ .START_ADDRESS (7'h04),
67
+ .END_ADDRESS (7'h07),
68
+ .DATA_WIDTH (32),
69
+ .VALID_BITS (32'hffffffff)
70
+ ) u_register_1 (
71
+ .register_if (register_if[1]),
72
+ .bit_field_if (bit_field_if)
73
+ );
74
+ `rggen_connect_bit_field_if(bit_field_if, bit_field_1_0_if, 31, 0)
75
+ rggen_bit_field_rw #(
76
+ .WIDTH (32),
77
+ .INITIAL_VALUE (32'h00000000)
78
+ ) u_bit_field_1_0 (
79
+ .clk (clk),
80
+ .rst_n (rst_n),
81
+ .bit_field_if (bit_field_1_0_if),
82
+ .o_value (o_bit_field_1_0)
83
+ );
84
+ end endgenerate
85
+ generate if (1) begin : g_register_2
86
+ rggen_bit_field_if #(32) bit_field_if();
87
+ rggen_bit_field_if #(1) bit_field_2_0_if();
88
+ rggen_bit_field_if #(1) bit_field_2_1_if();
89
+ rggen_default_register #(
90
+ .ADDRESS_WIDTH (7),
91
+ .START_ADDRESS (7'h08),
92
+ .END_ADDRESS (7'h0b),
93
+ .DATA_WIDTH (32),
94
+ .VALID_BITS (32'h00010001)
95
+ ) u_register_2 (
96
+ .register_if (register_if[2]),
97
+ .bit_field_if (bit_field_if)
98
+ );
99
+ `rggen_connect_bit_field_if(bit_field_if, bit_field_2_0_if, 16, 16)
100
+ rggen_bit_field_ro #(
101
+ .WIDTH (1)
102
+ ) u_bit_field_2_0 (
103
+ .bit_field_if (bit_field_2_0_if),
104
+ .i_value (i_bit_field_2_0)
105
+ );
106
+ `rggen_connect_bit_field_if(bit_field_if, bit_field_2_1_if, 0, 0)
107
+ rggen_bit_field_rw #(
108
+ .WIDTH (1),
109
+ .INITIAL_VALUE (1'h0)
110
+ ) u_bit_field_2_1 (
111
+ .clk (clk),
112
+ .rst_n (rst_n),
113
+ .bit_field_if (bit_field_2_1_if),
114
+ .o_value (o_bit_field_2_1)
115
+ );
116
+ end endgenerate
117
+ `undef rggen_connect_bit_field_if
176
118
  endmodule
@@ -44,9 +44,9 @@ package sample_1_ral_pkg;
44
44
  super.new(name);
45
45
  endfunction
46
46
  function void create_sub_models();
47
- `rggen_ral_create_reg_model(register_0, "register_0", '{}, 7'h00, "RW", 0, "")
48
- `rggen_ral_create_reg_model(register_1, "register_1", '{}, 7'h04, "RW", 0, "")
49
- `rggen_ral_create_reg_model(register_2, "register_2", '{}, 7'h08, "RW", 0, "")
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
50
  endfunction
51
51
  function uvm_reg_map create_default_map();
52
52
  return create_map("default_map", 0, 4, UVM_LITTLE_ENDIAN, 1);
@@ -14,9 +14,9 @@ enable :register , [:offset_address, :name, :array, :type, :uniquness_valid
14
14
  enable :register , :type, [:indirect, :external]
15
15
  enable :bit_field , [:bit_assignment, :name, :type, :initial_value, :reference]
16
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, :response_mux, :irq_controller]
17
+ enable :register_block, [:top_module, :clock_reset, :host_if, :irq_controller]
18
18
  enable :register_block, :host_if, [:apb, :bar]
19
- enable :register , [:address_decoder, :read_data, :bus_exporter]
19
+ enable :register , :rtl_top
20
20
  enable :register_block, [:ral_package, :block_model, :constructor, :sub_model_creator, :default_map_creator]
21
21
  enable :register , [:reg_model, :constructor, :field_model_creator, :indirect_index_configurator, :sub_block_model]
22
22
  enable :bit_field , :field_model
data/setup/default.rb CHANGED
@@ -4,10 +4,10 @@ enable :register , [:offset_address, :name, :array, :type, :uniquness_valid
4
4
  enable :register , :type, [:indirect, :external]
5
5
  enable :bit_field , [:bit_assignment, :name, :type, :initial_value, :reference]
6
6
  enable :bit_field , :type, [:rw, :ro, :w0c, :w1c, :w0s, :w1s, :rwl, :rwe, :reserved]
7
- enable :register_block, [:top_module, :clock_reset, :host_if, :response_mux, :irq_controller]
7
+ enable :register_block, [:rtl_top, :clock_reset, :host_if, :irq_controller]
8
8
  enable :register_block, :host_if, [:apb, :axi4lite]
9
- enable :register , [:address_decoder, :read_data, :bus_exporter]
9
+ enable :register , :rtl_top
10
10
  enable :register_block, [:ral_package, :block_model, :constructor, :sub_model_creator, :default_map_creator]
11
11
  enable :register , [:reg_model, :constructor, :field_model_creator, :indirect_index_configurator, :sub_block_model]
12
12
  enable :bit_field , :field_model
13
- enable :register_block, [:c_header_file, :address_struct]
13
+ enable :register_block, [:c_header_file, :address_struct]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.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: 2017-04-26 00:00:00.000000000 Z
11
+ date: 2017-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: baby_erubis
@@ -123,7 +123,8 @@ files:
123
123
  - LICENSE.txt
124
124
  - README.md
125
125
  - bin/rggen
126
- - c/rggen.h
126
+ - c_header/LICENSE
127
+ - c_header/rggen.h
127
128
  - lib/rggen.rb
128
129
  - lib/rggen/base/component.rb
129
130
  - lib/rggen/base/component_factory.rb
@@ -167,21 +168,20 @@ files:
167
168
  - lib/rggen/builtins/loaders/register_map/csv_loader.rb
168
169
  - lib/rggen/builtins/loaders/register_map/xls_loader.rb
169
170
  - lib/rggen/builtins/loaders/register_map/xlsx_ods_loader.rb
170
- - lib/rggen/builtins/register/address_decoder.erb
171
- - lib/rggen/builtins/register/address_decoder.rb
172
171
  - lib/rggen/builtins/register/array.rb
173
- - lib/rggen/builtins/register/bus_exporter.erb
174
- - lib/rggen/builtins/register/bus_exporter.rb
175
172
  - lib/rggen/builtins/register/constructor.rb
176
173
  - lib/rggen/builtins/register/field_model_creator.rb
177
174
  - lib/rggen/builtins/register/indirect_index_configurator.rb
178
175
  - lib/rggen/builtins/register/name.rb
179
176
  - lib/rggen/builtins/register/offset_address.rb
180
- - lib/rggen/builtins/register/read_data.rb
181
177
  - lib/rggen/builtins/register/reg_model.rb
178
+ - lib/rggen/builtins/register/rtl_top.rb
182
179
  - lib/rggen/builtins/register/sub_block_model.rb
183
180
  - lib/rggen/builtins/register/type.rb
181
+ - lib/rggen/builtins/register/types/default.erb
182
+ - lib/rggen/builtins/register/types/external.erb
184
183
  - lib/rggen/builtins/register/types/external.rb
184
+ - lib/rggen/builtins/register/types/indirect.erb
185
185
  - lib/rggen/builtins/register/types/indirect.rb
186
186
  - lib/rggen/builtins/register/uniqueness_validator.rb
187
187
  - lib/rggen/builtins/register_block/address_struct.rb
@@ -201,10 +201,9 @@ files:
201
201
  - lib/rggen/builtins/register_block/irq_controller.rb
202
202
  - lib/rggen/builtins/register_block/name.rb
203
203
  - lib/rggen/builtins/register_block/ral_package.rb
204
- - lib/rggen/builtins/register_block/response_mux.erb
205
- - lib/rggen/builtins/register_block/response_mux.rb
204
+ - lib/rggen/builtins/register_block/rtl_top.erb
205
+ - lib/rggen/builtins/register_block/rtl_top.rb
206
206
  - lib/rggen/builtins/register_block/sub_model_creator.rb
207
- - lib/rggen/builtins/register_block/top_module.rb
208
207
  - lib/rggen/commands.rb
209
208
  - lib/rggen/core_components.rb
210
209
  - lib/rggen/core_components/c_header/item.rb
@@ -245,6 +244,9 @@ files:
245
244
  - lib/rggen/core_components/verilog_utility/class_definition.rb
246
245
  - lib/rggen/core_components/verilog_utility/declaration.rb
247
246
  - lib/rggen/core_components/verilog_utility/identifier.rb
247
+ - lib/rggen/core_components/verilog_utility/interface_instantiation.rb
248
+ - lib/rggen/core_components/verilog_utility/interface_port_declaration.rb
249
+ - lib/rggen/core_components/verilog_utility/local_scope.rb
248
250
  - lib/rggen/core_components/verilog_utility/module_definition.rb
249
251
  - lib/rggen/core_components/verilog_utility/package_definition.rb
250
252
  - lib/rggen/core_components/verilog_utility/source_file.rb
@@ -272,6 +274,7 @@ files:
272
274
  - lib/rggen/output_base/template_engine.rb
273
275
  - lib/rggen/rggen_home.rb
274
276
  - lib/rggen/version.rb
277
+ - ral/LICENSE
275
278
  - ral/compile.f
276
279
  - ral/rggen_ral_block.svh
277
280
  - ral/rggen_ral_field.svh
@@ -281,19 +284,28 @@ files:
281
284
  - ral/rggen_ral_map.svh
282
285
  - ral/rggen_ral_pkg.sv
283
286
  - ral/rggen_ral_reg.svh
284
- - rtl/bit_field/rggen_bit_field_common.svh
285
- - rtl/bit_field/rggen_bit_field_ro.sv
286
- - rtl/bit_field/rggen_bit_field_rw.sv
287
- - rtl/bit_field/rggen_bit_field_rwl_rwe.sv
288
- - rtl/bit_field/rggen_bit_field_w01s_w01c.sv
287
+ - rtl/LICENSE
289
288
  - rtl/compile.f
290
- - rtl/register/rggen_address_decoder.sv
291
- - rtl/register/rggen_bus_exporter.sv
292
- - rtl/register_block/rggen_host_if_apb.sv
293
- - rtl/register_block/rggen_host_if_axi4lite.sv
294
- - rtl/register_block/rggen_host_if_common.svh
295
- - rtl/register_block/rggen_irq_controller.sv
296
- - rtl/register_block/rggen_response_mux.sv
289
+ - rtl/rggen_address_decoder.sv
290
+ - rtl/rggen_apb_if.sv
291
+ - rtl/rggen_axi4lite_if.sv
292
+ - rtl/rggen_bit_field_if.sv
293
+ - rtl/rggen_bit_field_ro.sv
294
+ - rtl/rggen_bit_field_rw.sv
295
+ - rtl/rggen_bit_field_rwl_rwe.sv
296
+ - rtl/rggen_bit_field_w01s_w01c.sv
297
+ - rtl/rggen_bus_if.sv
298
+ - rtl/rggen_bus_splitter.sv
299
+ - rtl/rggen_default_register.sv
300
+ - rtl/rggen_external_register.sv
301
+ - rtl/rggen_host_if_apb.sv
302
+ - rtl/rggen_host_if_axi4lite.sv
303
+ - rtl/rggen_indirect_register.sv
304
+ - rtl/rggen_irq_controller.sv
305
+ - rtl/rggen_register_base.sv
306
+ - rtl/rggen_register_if.sv
307
+ - rtl/rggen_rtl_pkg.sv
308
+ - sample/LICENSE
297
309
  - sample/sample.csv
298
310
  - sample/sample.json
299
311
  - sample/sample.xls