Skip to content

Commit ba4a2d2

Browse files
committed
[rdl2ot] Refactor to reg_pkg.sv.tpl
1 parent 6a4d076 commit ba4a2d2

3 files changed

Lines changed: 566 additions & 90 deletions

File tree

rdl2ot/src/templates/reg_pkg.sv.tpl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ package {{ name }}_reg_pkg;
112112
{%- set printed.header = true %}
113113
{%- endif %}
114114
{%- set width = reg.fields|length * reg.offsets|length if reg.opentitan.is_homogeneous and reg.is_multifields else reg.offsets|length %}
115-
{%- set bits = " [{}:0]".format(width - 1) if reg.is_multireg %}
116-
{{ name }}_reg2hw_{{ reg.name|lower }}_{{"m" if reg.is_multireg}}reg_t{{ bits }} {{ reg.name|lower }};
115+
{%- set bits = " [{}:0]".format(width - 1) if reg.is_multireg or (reg.opentitan.is_homogeneous and reg.is_multifields) %}
116+
{{ "{}_reg2hw_{}_{}reg_t{} {};".format(name, reg.name, "m" if reg.is_multireg, bits, reg.name)|lower }}
117117
{%- endif %}
118118
{%- endfor %}
119119
{%- if printed.header %}
@@ -131,7 +131,7 @@ package {{ name }}_reg_pkg;
131131
{%- endif %}
132132
{%- set width = reg.fields|length if reg.opentitan.is_homogeneous and reg.is_multifields else reg.offsets|length %}
133133
{%- set bits = " [{}:0]".format(width - 1) if reg.is_multireg %}
134-
{{ name }}_hw2reg_{{ reg.name|lower }}_{{"m" if reg.is_multireg}}reg_t{{ bits }} {{ reg.name|lower }};
134+
{{ "{}_hw2reg_{}_{}reg_t{} {};".format(name, reg.name, "m" if reg.is_multireg, bits, reg.name)|lower }}
135135
{%- endif %}
136136
{%- endfor %}
137137
{%- if printed.header %}

rdl2ot/tests/snapshots/lc_ctrl_regs_reg_top.sv

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,6 @@ module lc_ctrl_regs_reg_top (
225225
logic [31:0] manuf_state_6_qs;
226226
logic manuf_state_7_re;
227227
logic [31:0] manuf_state_7_qs;
228-
229228
// Register instances
230229
// R[alert_test]: V(True)
231230
logic alert_test_qe;
@@ -464,20 +463,28 @@ module lc_ctrl_regs_reg_top (
464463

465464
// R[claim_transition_if_regwen]: V(False)
466465
prim_subreg #(
467-
.DW (1),
466+
.DW (1),
468467
.SwAccess(prim_subreg_pkg::SwAccessW0C),
469468
.RESVAL (1'h1),
470469
.Mubi (1'b0)
471470
) u_claim_transition_if_regwen (
472471
.clk_i (clk_i),
473472
.rst_ni (rst_ni),
473+
474+
// from register interface
474475
.we (claim_transition_if_regwen_we),
475476
.wd (claim_transition_if_regwen_wd),
477+
478+
// from internal hardware
476479
.de (1'b0),
477480
.d ('0),
481+
482+
// to internal hardware
478483
.qe (),
479484
.q (),
480485
.ds (),
486+
487+
// to register interface (read)
481488
.qs (claim_transition_if_regwen_qs)
482489
);
483490

@@ -1210,62 +1217,71 @@ module lc_ctrl_regs_reg_top (
12101217

12111218
// Generate write-enables
12121219
assign alert_test_we = addr_hit[0] & reg_we & !reg_error;
1220+
12131221
assign alert_test_fatal_prog_error_wd = reg_wdata[0];
1222+
12141223
assign alert_test_fatal_state_error_wd = reg_wdata[1];
1224+
12151225
assign alert_test_fatal_bus_integ_error_wd = reg_wdata[2];
1216-
1226+
12171227
assign status_re = addr_hit[1] & reg_re & !reg_error;
1218-
12191228
assign claim_transition_if_regwen_we = addr_hit[2] & reg_we & !reg_error;
1229+
12201230
assign claim_transition_if_regwen_wd = reg_wdata[0];
1221-
1231+
12221232
assign claim_transition_if_re = addr_hit[3] & reg_re & !reg_error;
12231233
assign claim_transition_if_we = addr_hit[3] & reg_we & !reg_error;
1234+
12241235
assign claim_transition_if_wd = reg_wdata[7:0];
1225-
1236+
12261237
assign transition_regwen_re = addr_hit[4] & reg_re & !reg_error;
1227-
12281238
assign transition_cmd_we = addr_hit[5] & reg_we & !reg_error;
1239+
12291240
assign transition_cmd_wd = reg_wdata[0];
1230-
1241+
12311242
assign transition_ctrl_re = addr_hit[6] & reg_re & !reg_error;
12321243
assign transition_ctrl_we = addr_hit[6] & reg_we & !reg_error;
1244+
12331245
assign transition_ctrl_ext_clock_en_wd = reg_wdata[0];
1246+
12341247
assign transition_ctrl_volatile_raw_unlock_wd = reg_wdata[1];
1235-
1248+
12361249
assign transition_token_0_re = addr_hit[7] & reg_re & !reg_error;
12371250
assign transition_token_0_we = addr_hit[7] & reg_we & !reg_error;
1251+
12381252
assign transition_token_0_wd = reg_wdata[31:0];
1253+
12391254
assign transition_token_1_re = addr_hit[8] & reg_re & !reg_error;
12401255
assign transition_token_1_we = addr_hit[8] & reg_we & !reg_error;
1256+
12411257
assign transition_token_1_wd = reg_wdata[31:0];
1258+
12421259
assign transition_token_2_re = addr_hit[9] & reg_re & !reg_error;
12431260
assign transition_token_2_we = addr_hit[9] & reg_we & !reg_error;
1261+
12441262
assign transition_token_2_wd = reg_wdata[31:0];
1263+
12451264
assign transition_token_3_re = addr_hit[10] & reg_re & !reg_error;
12461265
assign transition_token_3_we = addr_hit[10] & reg_we & !reg_error;
1266+
12471267
assign transition_token_3_wd = reg_wdata[31:0];
1248-
1268+
12491269
assign transition_target_re = addr_hit[11] & reg_re & !reg_error;
12501270
assign transition_target_we = addr_hit[11] & reg_we & !reg_error;
1271+
12511272
assign transition_target_wd = reg_wdata[29:0];
1252-
1273+
12531274
assign otp_vendor_test_ctrl_re = addr_hit[12] & reg_re & !reg_error;
12541275
assign otp_vendor_test_ctrl_we = addr_hit[12] & reg_we & !reg_error;
1276+
12551277
assign otp_vendor_test_ctrl_wd = reg_wdata[31:0];
1256-
1278+
12571279
assign otp_vendor_test_status_re = addr_hit[13] & reg_re & !reg_error;
1258-
12591280
assign lc_state_re = addr_hit[14] & reg_re & !reg_error;
1260-
12611281
assign lc_transition_cnt_re = addr_hit[15] & reg_re & !reg_error;
1262-
12631282
assign lc_id_state_re = addr_hit[16] & reg_re & !reg_error;
1264-
12651283
assign hw_revision0_re = addr_hit[17] & reg_re & !reg_error;
1266-
12671284
assign hw_revision1_re = addr_hit[18] & reg_re & !reg_error;
1268-
12691285
assign device_id_0_re = addr_hit[19] & reg_re & !reg_error;
12701286
assign device_id_1_re = addr_hit[20] & reg_re & !reg_error;
12711287
assign device_id_2_re = addr_hit[21] & reg_re & !reg_error;
@@ -1274,7 +1290,6 @@ module lc_ctrl_regs_reg_top (
12741290
assign device_id_5_re = addr_hit[24] & reg_re & !reg_error;
12751291
assign device_id_6_re = addr_hit[25] & reg_re & !reg_error;
12761292
assign device_id_7_re = addr_hit[26] & reg_re & !reg_error;
1277-
12781293
assign manuf_state_0_re = addr_hit[27] & reg_re & !reg_error;
12791294
assign manuf_state_1_re = addr_hit[28] & reg_re & !reg_error;
12801295
assign manuf_state_2_re = addr_hit[29] & reg_re & !reg_error;
@@ -1283,7 +1298,6 @@ module lc_ctrl_regs_reg_top (
12831298
assign manuf_state_5_re = addr_hit[32] & reg_re & !reg_error;
12841299
assign manuf_state_6_re = addr_hit[33] & reg_re & !reg_error;
12851300
assign manuf_state_7_re = addr_hit[34] & reg_re & !reg_error;
1286-
12871301

12881302
// Assign write-enables to checker logic vector.
12891303
always_comb begin

0 commit comments

Comments
 (0)