Skip to content

Commit 93747ff

Browse files
committed
[csrng/rtl] Remove the genbits FIFO from ctr_drbg_gen
Signed-off-by: Florian Glaser <[email protected]>
1 parent 9d84eca commit 93747ff

File tree

12 files changed

+57
-174
lines changed

12 files changed

+57
-174
lines changed

hw/ip/csrng/data/csrng.hjson

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -758,15 +758,6 @@
758758
This bit will stay set until the next reset.
759759
'''
760760
}
761-
{ bits: "14",
762-
name: "SFIFO_GGENBITS_ERR",
763-
desc: '''
764-
This bit will be set to one when an error has been detected for the
765-
ggenbits FIFO. The type of error is reflected in the type status
766-
bits (bits 28 through 30 of this register).
767-
This bit will stay set until the next reset.
768-
'''
769-
}
770761
{ bits: "15",
771762
name: "SFIFO_CMDID_ERR",
772763
desc: '''

hw/ip/csrng/doc/registers.md

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -555,12 +555,12 @@ Writing a zero resets this status bit.
555555
Hardware detection of error conditions status register
556556
- Offset: `0x54`
557557
- Reset default: `0x0`
558-
- Reset mask: `0x7ff0e603`
558+
- Reset mask: `0x7ff0a603`
559559

560560
### Fields
561561

562562
```wavejson
563-
{"reg": [{"name": "SFIFO_CMD_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "SFIFO_GENBITS_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 7}, {"name": "SFIFO_FINAL_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "SFIFO_GBENCACK_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 2}, {"name": "SFIFO_GADSTAGE_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "SFIFO_GGENBITS_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "SFIFO_CMDID_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 4}, {"name": "CMD_STAGE_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "MAIN_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "DRBG_GEN_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "DRBG_UPDBE_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "DRBG_UPDOB_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "AES_CIPHER_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "CMD_GEN_CNT_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "DRBG_CMD_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "FIFO_WRITE_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "FIFO_READ_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "FIFO_STATE_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 1}], "config": {"lanes": 1, "fontsize": 10, "vspace": 200}}
563+
{"reg": [{"name": "SFIFO_CMD_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "SFIFO_GENBITS_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 7}, {"name": "SFIFO_FINAL_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "SFIFO_GBENCACK_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 2}, {"name": "SFIFO_GADSTAGE_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 1}, {"name": "SFIFO_CMDID_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 4}, {"name": "CMD_STAGE_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "MAIN_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "DRBG_GEN_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "DRBG_UPDBE_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "DRBG_UPDOB_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "AES_CIPHER_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "CMD_GEN_CNT_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "DRBG_CMD_SM_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "FIFO_WRITE_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "FIFO_READ_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"name": "FIFO_STATE_ERR", "bits": 1, "attr": ["ro"], "rotate": -90}, {"bits": 1}], "config": {"lanes": 1, "fontsize": 10, "vspace": 200}}
564564
```
565565

566566
| Bits | Type | Reset | Name |
@@ -579,7 +579,7 @@ Hardware detection of error conditions status register
579579
| 20 | ro | 0x0 | [CMD_STAGE_SM_ERR](#err_code--cmd_stage_sm_err) |
580580
| 19:16 | | | Reserved |
581581
| 15 | ro | 0x0 | [SFIFO_CMDID_ERR](#err_code--sfifo_cmdid_err) |
582-
| 14 | ro | 0x0 | [SFIFO_GGENBITS_ERR](#err_code--sfifo_ggenbits_err) |
582+
| 14 | | | Reserved |
583583
| 13 | ro | 0x0 | [SFIFO_GADSTAGE_ERR](#err_code--sfifo_gadstage_err) |
584584
| 12:11 | | | Reserved |
585585
| 10 | ro | 0x0 | [SFIFO_GBENCACK_ERR](#err_code--sfifo_gbencack_err) |
@@ -661,12 +661,6 @@ cmdid FIFO. The type of error is reflected in the type status
661661
bits (bits 28 through 30 of this register).
662662
This bit will stay set until the next reset.
663663

664-
### ERR_CODE . SFIFO_GGENBITS_ERR
665-
This bit will be set to one when an error has been detected for the
666-
ggenbits FIFO. The type of error is reflected in the type status
667-
bits (bits 28 through 30 of this register).
668-
This bit will stay set until the next reset.
669-
670664
### ERR_CODE . SFIFO_GADSTAGE_ERR
671665
This bit will be set to one when an error has been detected for the
672666
gadstage FIFO. The type of error is reflected in the type status

hw/ip/csrng/dv/env/csrng_env_pkg.sv

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ package csrng_env_pkg;
6161
sfifo_final_error = 3,
6262
sfifo_gbencack_error = 4,
6363
sfifo_gadstage_error = 7,
64-
sfifo_ggenbits_error = 8,
6564
sfifo_cmdid_error = 9,
6665
cmd_stage_sm_error = 10,
6766
main_sm_error = 11,
@@ -83,7 +82,6 @@ package csrng_env_pkg;
8382
sfifo_final_err = 3,
8483
sfifo_gbencack_err = 4,
8584
sfifo_gadstage_err = 7,
86-
sfifo_ggenbits_err = 8,
8785
sfifo_cmdid_err = 9,
8886
cmd_stage_sm_err = 10,
8987
main_sm_err = 11,
@@ -102,7 +100,6 @@ package csrng_env_pkg;
102100
sfifo_final_err_test = 24,
103101
sfifo_gbencack_err_test = 25,
104102
sfifo_gadstage_err_test = 28,
105-
sfifo_ggenbits_err_test = 29,
106103
sfifo_cmdid_err_test = 30,
107104
cmd_stage_sm_err_test = 31,
108105
main_sm_err_test = 32,
@@ -125,7 +122,6 @@ package csrng_env_pkg;
125122
SFIFO_FINAL_ERR = 9,
126123
SFIFO_GBENCACK_ERR = 10,
127124
SFIFO_GADSTAGE_ERR = 13,
128-
SFIFO_GGENBITS_ERR = 14,
129125
SFIFO_CMDID_ERR = 15,
130126
CMD_STAGE_SM_ERR = 20,
131127
MAIN_SM_ERR = 21,
@@ -153,7 +149,6 @@ package csrng_env_pkg;
153149

154150
typedef enum int {
155151
sfifo_cmdid = 0,
156-
sfifo_ggenbits = 1,
157152
sfifo_gadstage = 2,
158153
sfifo_gbencack = 5,
159154
sfifo_final = 6,

hw/ip/csrng/dv/env/csrng_path_if.sv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ interface csrng_path_if
1818
"sfifo_cmd", "sfifo_genbits": return {core_path, $sformatf(".gen_cmd_stage[%0d]", app),
1919
".u_csrng_cmd_stage.", fifo_name, "_", which_path};
2020
"sfifo_final": return {core_path, ".u_csrng_ctr_drbg_upd.", fifo_name, "_", which_path};
21-
"sfifo_gbencack", "sfifo_gadstage", "sfifo_ggenbits":
21+
"sfifo_gbencack", "sfifo_gadstage":
2222
return {core_path,".u_csrng_ctr_drbg_gen.sfifo_", fifo_name.substr(7, fifo_name.len()-1),
2323
"_", which_path};
2424
"sfifo_cmdid": return {core_path, ".u_csrng_block_encrypt.", fifo_name, "_", which_path};

hw/ip/csrng/dv/env/seq_lib/csrng_err_vseq.sv

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class csrng_err_vseq extends csrng_base_vseq;
101101

102102
case (cfg.which_err_code) inside
103103
sfifo_cmd_err, sfifo_genbits_err, sfifo_final_err, sfifo_gbencack_err, sfifo_gadstage_err,
104-
sfifo_ggenbits_err, sfifo_cmdid_err: begin
104+
sfifo_cmdid_err: begin
105105
fld = csr.get_field_by_name(fld_name);
106106
fifo_base_path = fld_name.substr(0, last_index-1);
107107

@@ -289,7 +289,7 @@ class csrng_err_vseq extends csrng_base_vseq;
289289
cov_vif.cg_err_code_sample(.err_code(backdoor_err_code_val));
290290
end
291291
sfifo_cmd_err_test, sfifo_genbits_err_test, sfifo_final_err_test,
292-
sfifo_gbencack_err_test, sfifo_gadstage_err_test, sfifo_ggenbits_err_test,
292+
sfifo_gbencack_err_test, sfifo_gadstage_err_test,
293293
sfifo_cmdid_err_test, cmd_stage_sm_err_test, main_sm_err_test, drbg_cmd_sm_err_test,
294294
drbg_gen_sm_err_test, drbg_updbe_sm_err_test, drbg_updob_sm_err_test, aes_cipher_sm_err_test,
295295
cmd_gen_cnt_err_test, fifo_write_err_test, fifo_read_err_test, fifo_state_err_test: begin

hw/ip/csrng/dv/env/seq_lib/csrng_intr_vseq.sv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ class csrng_intr_vseq extends csrng_base_vseq;
221221

222222
case (cfg.which_fatal_err) inside
223223
sfifo_cmd_error, sfifo_genbits_error, sfifo_final_error, sfifo_cmdid_error,
224-
sfifo_gadstage_error, sfifo_ggenbits_error, sfifo_gbencack_error: begin
224+
sfifo_gadstage_error, sfifo_gbencack_error: begin
225225
fifo_base_path = fld_name.substr(0, last_index-1);
226226

227227
foreach (path_exts[i]) begin

hw/ip/csrng/rtl/csrng_core.sv

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,6 @@ module csrng_core import csrng_pkg::*; #(
136136
logic [2:0] ctr_drbg_gen_sfifo_gbencack_err;
137137
logic ctr_drbg_gen_sfifo_gadstage_err_sum;
138138
logic [2:0] ctr_drbg_gen_sfifo_gadstage_err;
139-
logic ctr_drbg_gen_sfifo_ggenbits_err_sum;
140-
logic [2:0] ctr_drbg_gen_sfifo_ggenbits_err;
141139
logic block_encrypt_sfifo_cmdid_err_sum;
142140
logic [2:0] block_encrypt_sfifo_cmdid_err;
143141
logic fifo_write_err_sum;
@@ -416,7 +414,6 @@ module csrng_core import csrng_pkg::*; #(
416414
ctr_drbg_upd_sfifo_final_err_sum ||
417415
ctr_drbg_gen_sfifo_gbencack_err_sum ||
418416
ctr_drbg_gen_sfifo_gadstage_err_sum ||
419-
ctr_drbg_gen_sfifo_ggenbits_err_sum ||
420417
block_encrypt_sfifo_cmdid_err_sum ||
421418
fifo_write_err_sum ||
422419
fifo_read_err_sum ||
@@ -432,8 +429,6 @@ module csrng_core import csrng_pkg::*; #(
432429
err_code_test_bit[10];
433430
assign ctr_drbg_gen_sfifo_gadstage_err_sum = (|ctr_drbg_gen_sfifo_gadstage_err) ||
434431
err_code_test_bit[13];
435-
assign ctr_drbg_gen_sfifo_ggenbits_err_sum = (|ctr_drbg_gen_sfifo_ggenbits_err) ||
436-
err_code_test_bit[14];
437432
assign block_encrypt_sfifo_cmdid_err_sum = (|block_encrypt_sfifo_cmdid_err) ||
438433
err_code_test_bit[15];
439434
assign cmd_stage_sm_err_sum = (|cmd_stage_sm_err) || err_code_test_bit[20];
@@ -447,7 +442,6 @@ module csrng_core import csrng_pkg::*; #(
447442
ctr_drbg_upd_v_ctr_err || err_code_test_bit[26];
448443
assign fifo_write_err_sum =
449444
block_encrypt_sfifo_cmdid_err[2] ||
450-
ctr_drbg_gen_sfifo_ggenbits_err[2] ||
451445
ctr_drbg_gen_sfifo_gadstage_err[2] ||
452446
ctr_drbg_gen_sfifo_gbencack_err[2] ||
453447
ctr_drbg_upd_sfifo_final_err[2] ||
@@ -456,7 +450,6 @@ module csrng_core import csrng_pkg::*; #(
456450
err_code_test_bit[28];
457451
assign fifo_read_err_sum =
458452
block_encrypt_sfifo_cmdid_err[1] ||
459-
ctr_drbg_gen_sfifo_ggenbits_err[1] ||
460453
ctr_drbg_gen_sfifo_gadstage_err[1] ||
461454
ctr_drbg_gen_sfifo_gbencack_err[1] ||
462455
ctr_drbg_upd_sfifo_final_err[1] ||
@@ -465,7 +458,6 @@ module csrng_core import csrng_pkg::*; #(
465458
err_code_test_bit[29];
466459
assign fifo_status_err_sum =
467460
block_encrypt_sfifo_cmdid_err[0] ||
468-
ctr_drbg_gen_sfifo_ggenbits_err[0] ||
469461
ctr_drbg_gen_sfifo_gadstage_err[0] ||
470462
ctr_drbg_gen_sfifo_gbencack_err[0] ||
471463
ctr_drbg_upd_sfifo_final_err[0] ||
@@ -494,10 +486,6 @@ module csrng_core import csrng_pkg::*; #(
494486
assign hw2reg.err_code.sfifo_gadstage_err.de = cs_enable_fo[15] &&
495487
ctr_drbg_gen_sfifo_gadstage_err_sum;
496488

497-
assign hw2reg.err_code.sfifo_ggenbits_err.d = 1'b1;
498-
assign hw2reg.err_code.sfifo_ggenbits_err.de = cs_enable_fo[16] &&
499-
ctr_drbg_gen_sfifo_ggenbits_err_sum;
500-
501489
assign hw2reg.err_code.sfifo_cmdid_err.d = 1'b1;
502490
assign hw2reg.err_code.sfifo_cmdid_err.de = cs_enable_fo[17] &&
503491
block_encrypt_sfifo_cmdid_err_sum;
@@ -1378,8 +1366,7 @@ module csrng_core import csrng_pkg::*; #(
13781366
.sm_err_o (drbg_gen_sm_err),
13791367

13801368
.fifo_gbencack_err_o(ctr_drbg_gen_sfifo_gbencack_err),
1381-
.fifo_gadstage_err_o(ctr_drbg_gen_sfifo_gadstage_err),
1382-
.fifo_ggenbits_err_o(ctr_drbg_gen_sfifo_ggenbits_err)
1369+
.fifo_gadstage_err_o(ctr_drbg_gen_sfifo_gadstage_err)
13831370
);
13841371

13851372

@@ -1414,9 +1401,10 @@ module csrng_core import csrng_pkg::*; #(
14141401
logic [SeedLen-1:0] unused_gen_rsp_pdata;
14151402
logic unused_state_db_inst_state;
14161403

1417-
assign unused_err_code_test_bit = (|err_code_test_bit[19:16]) || (|err_code_test_bit[12:11]) ||
1418-
(|err_code_test_bit[8:2]);
1419-
assign unused_enable_fo = cs_enable_fo[42] || (|cs_enable_fo[14:13]) || (|cs_enable_fo[9:4]);
1404+
assign unused_err_code_test_bit = (|err_code_test_bit[19:16]) || err_code_test_bit[14] ||
1405+
(|err_code_test_bit[12:11]) || (|err_code_test_bit[8:2]);
1406+
assign unused_enable_fo = cs_enable_fo[42] || cs_enable_fo[16] || (|cs_enable_fo[14:13]) ||
1407+
(|cs_enable_fo[9:4]);
14201408
assign unused_reg2hw_genbits = (|reg2hw.genbits.q);
14211409
assign unused_int_state_val = (|reg2hw.int_state_val.q);
14221410
assign unused_reseed_interval = reg2hw.reseed_interval.qe;

0 commit comments

Comments
 (0)