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.
- checksums.yaml +4 -4
- data/README.md +13 -2
- data/lib/rggen.rb +0 -1
- data/lib/rggen/default.rb +7 -0
- data/lib/rggen/default_setup_file.rb +1 -2
- data/lib/rggen/version.rb +1 -3
- metadata +25 -81
- data/lib/rggen/built_in.rb +0 -57
- data/lib/rggen/built_in/bit_field/bit_assignment.rb +0 -114
- data/lib/rggen/built_in/bit_field/comment.rb +0 -18
- data/lib/rggen/built_in/bit_field/initial_value.rb +0 -75
- data/lib/rggen/built_in/bit_field/name.rb +0 -41
- data/lib/rggen/built_in/bit_field/reference.rb +0 -139
- data/lib/rggen/built_in/bit_field/sv_rtl_top.rb +0 -89
- data/lib/rggen/built_in/bit_field/type.rb +0 -245
- data/lib/rggen/built_in/bit_field/type/rc_w0c_w1c.erb +0 -15
- data/lib/rggen/built_in/bit_field/type/rc_w0c_w1c.rb +0 -59
- data/lib/rggen/built_in/bit_field/type/reserved.erb +0 -3
- data/lib/rggen/built_in/bit_field/type/reserved.rb +0 -16
- data/lib/rggen/built_in/bit_field/type/ro.erb +0 -6
- data/lib/rggen/built_in/bit_field/type/ro.rb +0 -31
- data/lib/rggen/built_in/bit_field/type/rof.erb +0 -6
- data/lib/rggen/built_in/bit_field/type/rof.rb +0 -17
- data/lib/rggen/built_in/bit_field/type/rs_w0s_w1s.erb +0 -13
- data/lib/rggen/built_in/bit_field/type/rs_w0s_w1s.rb +0 -46
- data/lib/rggen/built_in/bit_field/type/rw_wo.erb +0 -9
- data/lib/rggen/built_in/bit_field/type/rw_wo.rb +0 -30
- data/lib/rggen/built_in/bit_field/type/rwc_rwe_rwl.erb +0 -16
- data/lib/rggen/built_in/bit_field/type/rwc_rwe_rwl.rb +0 -92
- data/lib/rggen/built_in/bit_field/type/w0trg_w1trg.erb +0 -9
- data/lib/rggen/built_in/bit_field/type/w0trg_w1trg.rb +0 -29
- data/lib/rggen/built_in/global/address_width.rb +0 -34
- data/lib/rggen/built_in/global/array_port_format.rb +0 -19
- data/lib/rggen/built_in/global/bus_width.rb +0 -35
- data/lib/rggen/built_in/global/fold_sv_interface_port.rb +0 -24
- data/lib/rggen/built_in/register/markdown.erb +0 -11
- data/lib/rggen/built_in/register/markdown.rb +0 -26
- data/lib/rggen/built_in/register/name.rb +0 -36
- data/lib/rggen/built_in/register/offset_address.rb +0 -106
- data/lib/rggen/built_in/register/size.rb +0 -95
- data/lib/rggen/built_in/register/sv_rtl_top.rb +0 -82
- data/lib/rggen/built_in/register/type.rb +0 -344
- data/lib/rggen/built_in/register/type/default_sv_ral.erb +0 -8
- data/lib/rggen/built_in/register/type/default_sv_rtl.erb +0 -15
- data/lib/rggen/built_in/register/type/external.erb +0 -11
- data/lib/rggen/built_in/register/type/external.rb +0 -128
- data/lib/rggen/built_in/register/type/indirect.rb +0 -327
- data/lib/rggen/built_in/register/type/indirect_sv_ral.erb +0 -13
- data/lib/rggen/built_in/register/type/indirect_sv_rtl.erb +0 -17
- data/lib/rggen/built_in/register_block/byte_size.rb +0 -61
- data/lib/rggen/built_in/register_block/markdown.erb +0 -8
- data/lib/rggen/built_in/register_block/markdown.rb +0 -36
- data/lib/rggen/built_in/register_block/name.rb +0 -38
- data/lib/rggen/built_in/register_block/protocol.rb +0 -100
- data/lib/rggen/built_in/register_block/protocol/apb.erb +0 -10
- data/lib/rggen/built_in/register_block/protocol/apb.rb +0 -89
- data/lib/rggen/built_in/register_block/protocol/axi4lite.erb +0 -11
- data/lib/rggen/built_in/register_block/protocol/axi4lite.rb +0 -125
- data/lib/rggen/built_in/register_block/sv_ral_block_model.erb +0 -11
- data/lib/rggen/built_in/register_block/sv_ral_package.rb +0 -65
- data/lib/rggen/built_in/register_block/sv_rtl_macros.erb +0 -9
- data/lib/rggen/built_in/register_block/sv_rtl_top.rb +0 -86
- data/lib/rggen/built_in/version.rb +0 -7
- data/lib/rggen/setup/default.rb +0 -30
- data/sample/block_0.md +0 -155
- data/sample/block_0.rb +0 -90
- data/sample/block_0.sv +0 -678
- data/sample/block_0.xlsx +0 -0
- data/sample/block_0.yml +0 -99
- data/sample/block_0_ral_pkg.sv +0 -184
- data/sample/block_1.md +0 -39
- data/sample/block_1.rb +0 -22
- data/sample/block_1.sv +0 -136
- data/sample/block_1.xlsx +0 -0
- data/sample/block_1.yml +0 -26
- data/sample/block_1_ral_pkg.sv +0 -68
- data/sample/config.json +0 -5
- data/sample/config.yml +0 -3
data/sample/block_0.xlsx
DELETED
Binary file
|
data/sample/block_0.yml
DELETED
@@ -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
|
-
]
|
data/sample/block_0_ral_pkg.sv
DELETED
@@ -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
|
data/sample/block_1.md
DELETED
@@ -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||
|
data/sample/block_1.rb
DELETED
@@ -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
|
-
}
|
data/sample/block_1.sv
DELETED
@@ -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
|