Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[entropy_src] V1 Signoff #21008

Closed
msfschaffner opened this issue Jan 25, 2024 · 3 comments
Closed

[entropy_src] V1 Signoff #21008

msfschaffner opened this issue Jan 25, 2024 · 3 comments
Assignees
Labels
Component:DV DV issue: testbench, test case, etc. IP:i2c Type:Signoff

Comments

@msfschaffner
Copy link
Contributor

Description

Ensure V1 signoff criteria are fulfilled after focus area changes have landed.

@msfschaffner msfschaffner added this to the Earlgrey-PROD.M2 milestone Jan 25, 2024
@msfschaffner msfschaffner added the Component:DV DV issue: testbench, test case, etc. label Jan 25, 2024
@johngt
Copy link

johngt commented Feb 9, 2024

@vogelpi / @h-filali - as an observer it looks like there have been quite a few changes so DV effort might be under-represented here now. Please update as appropriate.

@vogelpi
Copy link
Contributor

vogelpi commented Mar 29, 2024

Commits since Earlgrey-ES tapeout

git rev-parse --short HEAD
a47ab77

git log Earlgrey-M2.5.2-RC0..HEAD --oneline hw/ip/entropy_src
54661e6 [entropy_src] Reduce depth of Observe FIFO
2d82cc8 [entropy_src] Rework the swread packer FIFO to reduce area
fcd7af1 [entropy_src] Reduce depth of esfinal FIFO from 4 to 3 entries
-> changes to reduce area for M2
4e422bd [entropy_src/dv] Test whether noise source symbols are not dropped

2b8870c [entropy_src] Align enable delay module with fixed CS AES Halt interface
534a41e [entropy_src] Remove unneeded main SM state and input signals
0b88a66 [entropy_src/dv] Reduce max delay for CS AES Halt IF in max rate test
-> related to fixing the CS AES halt request interface

74a6e9b [entropy_src] Add FIFO to deal with backpressure from the conditioner
-> required for FIPS compliance
c2c27db [entropy_src] Align prim_fifo_sync instantiation parameters
-> Improving security
7ebb11a [entropy_src] Fix FIFO controls, move drop point to before postht FIFO
-> required for FIPS compliance
f76a236 [entropy_src] Fix a Verilator lint warning

21adde1 [entropy_src] Fix CS AES Halt interface
15f75fa [kmac, sha3] Add REQ/ACK interface to delay Keccak operations
01b73a0 [entropy_src/dv] Fix usage of rng_max_delay plusarg
2b9338d [entropy_src/dv] Fix CS AES Halt agent configuration
-> helps saving power, required to properly assess conditioner back pressure, relevant for FIPS compliance

043b0e0 [kmac] Simplify randomness update requests and PRNG control logic
-> not related to ENTROPY_SRC
e0a5f9d [entropy_src] Remove line diabling TRNG when esrng FIFO is full
-> required for FIPS compliance
3eadcfd [entropy_src/rtl] Change the mubi4 true test to loose
03afa4c [entropy_src/rtl] Keep applying fw_ov_rd_fifo_overflow instead of pulsing
-> bug fixs

381ccf9 [entropy_src/rtl] Move the esbit FIFO down in sv file
ea70f00 [entropy_src/doc] Move the esbit packer FIFO in the block diagram
0b25451 [entropy_src/doc] Align the documentation with the moved esbit FIFO
c35040f [entropy_src/dv] Adapt the scoreboard to the repositioned esbit FIFO
46fe194 [entropy_src/rtl] Move back 1-4 packer
-> for de-risking FIPS certification

29866cc [entropy_src/doc] Adapt documentation to the new CONF register changes
03298b5 [entropy_src/dv] Add coverage for the new CONF changes
b3b4207 [entropy_src/dv] Align DV with new fips_flag changes
6b5f40f [entropy_src/rtl] Use the new fips_flag registers
55763e1 [entropy_src/rtl] Add new fips fields to CONF register
-> for de-risking FIPS certification, enable OTBN operating in firmware override: extract and insert mode

0528bc2 [entropy_src/doc] Document how to use fw_ov mode with bypass
0604938 [entropy_src/dv] Fix a failing rng_vseq test
fae3235 [dv/csr_utils] Change csr_peek to return the peeked value
79be09f [entropy_src/doc] Document operation upon health tests failures
809ba9c [entropy_src/doc] Document behavior of SHA3 conditioner engine

3f447cc [otp_ctrl] Remove entropy_src chicken switches
-> these switches need to remain enabled in PROD to enable KAT of the conditioner and the firmware override modes

c721c51 [rtl, prim] Add 'commit' functionality to prim_count
61a237e [util/reggen] reverse order of substruct generation
-> not specifically related to ENTROPY_SRC

e0a3193 [doc] Clearly expand PTRNG acronym in entropy_src

de31bdf [reggen] Remove the devmode input
963a500 [doc] Minor tweak to md sanitisation code
-> not specifically related to ENTROPY_SRC

b0fb96a [es/dv] Add test_es_health_test_failed task to intr vseq
316431f [es/dv] Get intr vseq working again
50ecc02 [es/dv] Add interrupt test
f192e3e [es/dv] Add interrupt checks to the error vseq
975a6eb [adc_ctrl,dv] Tidy up access to intr_state in env_cfg files
a5a80a6 [chip-test] List ENTROPY_SRC functional features
d940eaa [doc] Add extra links to registers and fields for entropy_src
d3326c1 [doc] Fix entropy_src links to renamed registers
1b16ca2 [reggen] Add mubi support SWAccess that sets/clears a reg

59f8142 [doc] Moved badges over to using hosted images
-> not specifically related to ENTROPY_SRC

7688e71 [reggen] Add initial support for version and cip_id hjson fields
fbd888e Revert "[reggen] Add CIP_IDs and bump all major versions"
9b974b1 [doc] entropy_src registers now using CMDGEN
0ba10b3 [reggen] Add CIP_IDs and bump all major versions

Issues closed since the Earlgrey-ES tapeout

Currently open issues

Coverage report from 29/03/2024

Screenshot from 2024-03-29 03-42-19

Summary

As part of M2, the following main RTL changes have been done. Unless stated below, DV and documentation have been updated inline with the RTL change:

Some of these changes break API compatibility , thus the version needs to be increased which is happening with this outstanding PR #22327

Despite pushing hard to keep the DV aligned with the RTL to not break things (and doing really a great job @h-filali ) we unfortunately don't meet the coverage metrics anymore to sign of at V2(S) again. Pass rates are still really good (all tests above 94%) but the coverage dropped. The reason for the coverage drop is twofold:

  1. There were quite some RTL changes and we should simply update the coverage exclusion files (and review them of course!)
  2. Due to adding new configuration bits in [entropy_src/rtl] Make the fips bit sw configurable #21369 and adding coverage for them plus crosses without incrasing the number of seeds, functional coverage now dropped from above 90% to roughly 57.5%. We need to have a conversation what makes sense here.

Both these things are tracked in #21888.

My suggestion is to sign ENTROPY_SRC v.2.0.0 off at V1.

@andreaskurth , @h-filali , please let me know what you think.

@andreaskurth
Copy link
Contributor

andreaskurth commented Mar 29, 2024

Signing entropy_src off at V1 SGTM. Thx for the detailed signoff analysis, @vogelpi! 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component:DV DV issue: testbench, test case, etc. IP:i2c Type:Signoff
Projects
None yet
Development

No branches or pull requests

6 participants