rggen 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/c_header/LICENSE +21 -0
- data/{c → c_header}/rggen.h +0 -0
- data/lib/rggen/builtins.rb +2 -5
- data/lib/rggen/builtins/bit_field/type.rb +22 -7
- data/lib/rggen/builtins/bit_field/types/ro.erb +2 -2
- data/lib/rggen/builtins/bit_field/types/ro.rb +2 -2
- data/lib/rggen/builtins/bit_field/types/rw.erb +5 -9
- data/lib/rggen/builtins/bit_field/types/rw.rb +5 -5
- data/lib/rggen/builtins/bit_field/types/rwl_rwe.erb +3 -7
- data/lib/rggen/builtins/bit_field/types/rwl_rwe.rb +6 -7
- data/lib/rggen/builtins/bit_field/types/w0c_w1c.erb +8 -12
- data/lib/rggen/builtins/bit_field/types/w0c_w1c.rb +5 -2
- data/lib/rggen/builtins/bit_field/types/w0s_w1s.erb +8 -12
- data/lib/rggen/builtins/bit_field/types/w0s_w1s.rb +3 -6
- data/lib/rggen/builtins/register/array.rb +0 -93
- data/lib/rggen/builtins/register/reg_model.rb +1 -1
- data/lib/rggen/builtins/register/rtl_top.rb +68 -0
- data/lib/rggen/builtins/register/type.rb +74 -0
- data/lib/rggen/builtins/register/types/default.erb +10 -0
- data/lib/rggen/builtins/register/types/external.erb +11 -0
- data/lib/rggen/builtins/register/types/external.rb +11 -0
- data/lib/rggen/builtins/register/types/indirect.erb +13 -0
- data/lib/rggen/builtins/register/types/indirect.rb +43 -0
- data/lib/rggen/builtins/register_block/clock_reset.rb +2 -2
- data/lib/rggen/builtins/register_block/host_if.rb +11 -12
- data/lib/rggen/builtins/register_block/host_ifs/apb.erb +7 -25
- data/lib/rggen/builtins/register_block/host_ifs/apb.rb +4 -13
- data/lib/rggen/builtins/register_block/host_ifs/axi4lite.erb +6 -34
- data/lib/rggen/builtins/register_block/host_ifs/axi4lite.rb +8 -30
- data/lib/rggen/builtins/register_block/irq_controller.rb +4 -4
- data/lib/rggen/builtins/register_block/rtl_top.erb +7 -0
- data/lib/rggen/builtins/register_block/rtl_top.rb +28 -0
- data/lib/rggen/core_components.rb +3 -0
- data/lib/rggen/core_components/ral/item.rb +2 -6
- data/lib/rggen/core_components/rtl/component.rb +8 -8
- data/lib/rggen/core_components/rtl/item.rb +41 -38
- data/lib/rggen/core_components/verilog_utility.rb +23 -4
- data/lib/rggen/core_components/verilog_utility/declaration.rb +14 -4
- data/lib/rggen/core_components/verilog_utility/identifier.rb +19 -0
- data/lib/rggen/core_components/verilog_utility/interface_instantiation.rb +33 -0
- data/lib/rggen/core_components/verilog_utility/interface_port_declaration.rb +29 -0
- data/lib/rggen/core_components/verilog_utility/local_scope.rb +64 -0
- data/lib/rggen/core_extensions/facets.rb +1 -1
- data/lib/rggen/core_extensions/forwardable.rb +1 -1
- data/lib/rggen/version.rb +2 -2
- data/ral/LICENSE +21 -0
- data/ral/rggen_ral_macros.svh +1 -4
- data/ral/rggen_ral_reg.svh +35 -3
- data/rtl/LICENSE +21 -0
- data/rtl/compile.f +21 -6
- data/rtl/rggen_address_decoder.sv +23 -0
- data/rtl/rggen_apb_if.sv +41 -0
- data/rtl/rggen_axi4lite_if.sv +68 -0
- data/rtl/rggen_bit_field_if.sv +28 -0
- data/rtl/rggen_bit_field_ro.sv +9 -0
- data/rtl/rggen_bit_field_rw.sv +25 -0
- data/rtl/rggen_bit_field_rwl_rwe.sv +29 -0
- data/rtl/rggen_bit_field_w01s_w01c.sv +55 -0
- data/rtl/rggen_bus_if.sv +43 -0
- data/rtl/rggen_bus_splitter.sv +87 -0
- data/rtl/rggen_default_register.sv +15 -0
- data/rtl/rggen_external_register.sv +83 -0
- data/rtl/rggen_host_if_apb.sv +29 -0
- data/rtl/rggen_host_if_axi4lite.sv +14 -0
- data/rtl/rggen_indirect_register.sv +21 -0
- data/rtl/{register_block/rggen_irq_controller.sv → rggen_irq_controller.sv} +0 -0
- data/rtl/rggen_register_base.sv +57 -0
- data/rtl/rggen_register_if.sv +42 -0
- data/rtl/rggen_rtl_pkg.sv +23 -0
- data/sample/LICENSE +21 -0
- data/sample/sample_0.sv +315 -444
- data/sample/sample_0_ral_pkg.sv +7 -7
- data/sample/sample_1.sv +104 -162
- data/sample/sample_1_ral_pkg.sv +3 -3
- data/sample/sample_setup.rb +2 -2
- data/setup/default.rb +3 -3
- metadata +35 -23
- data/lib/rggen/builtins/register/address_decoder.erb +0 -12
- data/lib/rggen/builtins/register/address_decoder.rb +0 -82
- data/lib/rggen/builtins/register/bus_exporter.erb +0 -28
- data/lib/rggen/builtins/register/bus_exporter.rb +0 -52
- data/lib/rggen/builtins/register/read_data.rb +0 -61
- data/lib/rggen/builtins/register_block/response_mux.erb +0 -18
- data/lib/rggen/builtins/register_block/response_mux.rb +0 -47
- data/lib/rggen/builtins/register_block/top_module.rb +0 -20
- data/rtl/bit_field/rggen_bit_field_common.svh +0 -15
- data/rtl/bit_field/rggen_bit_field_ro.sv +0 -8
- data/rtl/bit_field/rggen_bit_field_rw.sv +0 -27
- data/rtl/bit_field/rggen_bit_field_rwl_rwe.sv +0 -49
- data/rtl/bit_field/rggen_bit_field_w01s_w01c.sv +0 -67
- data/rtl/register/rggen_address_decoder.sv +0 -37
- data/rtl/register/rggen_bus_exporter.sv +0 -96
- data/rtl/register_block/rggen_host_if_apb.sv +0 -42
- data/rtl/register_block/rggen_host_if_axi4lite.sv +0 -257
- data/rtl/register_block/rggen_host_if_common.svh +0 -9
- data/rtl/register_block/rggen_response_mux.sv +0 -113
data/sample/sample_0_ral_pkg.sv
CHANGED
@@ -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
|
-
|
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
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
-
.
|
40
|
-
.LOCAL_ADDRESS_WIDTH (7)
|
22
|
+
.TOTAL_REGISTERS (3)
|
41
23
|
) u_host_if (
|
42
|
-
.clk
|
43
|
-
.rst_n
|
44
|
-
.
|
45
|
-
.
|
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
|
data/sample/sample_1_ral_pkg.sv
CHANGED
@@ -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);
|
data/sample/sample_setup.rb
CHANGED
@@ -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, :
|
17
|
+
enable :register_block, [:top_module, :clock_reset, :host_if, :irq_controller]
|
18
18
|
enable :register_block, :host_if, [:apb, :bar]
|
19
|
-
enable :register ,
|
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, [:
|
7
|
+
enable :register_block, [:rtl_top, :clock_reset, :host_if, :irq_controller]
|
8
8
|
enable :register_block, :host_if, [:apb, :axi4lite]
|
9
|
-
enable :register ,
|
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.
|
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-
|
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
|
-
-
|
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/
|
205
|
-
- lib/rggen/builtins/register_block/
|
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/
|
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/
|
291
|
-
- rtl/
|
292
|
-
- rtl/
|
293
|
-
- rtl/
|
294
|
-
- rtl/
|
295
|
-
- rtl/
|
296
|
-
- rtl/
|
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
|