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

[adc_ctrl] V2(S) Signoff #21027

Closed
msfschaffner opened this issue Jan 25, 2024 · 5 comments · Fixed by #22143
Closed

[adc_ctrl] V2(S) Signoff #21027

msfschaffner opened this issue Jan 25, 2024 · 5 comments · Fixed by #22143
Assignees
Labels
Component:DV DV issue: testbench, test case, etc. IP:adc_ctrl 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
@msfschaffner msfschaffner self-assigned this Mar 8, 2024
@msfschaffner
Copy link
Contributor Author

msfschaffner commented Mar 8, 2024

adc_ctrl V2(S) Signoff

This is a focus block.

Commits since Earlgrey-ES tapeout

$ git rev-parse --short HEAD
$ git log Earlgrey-M2.5.2-RC0..HEAD --oneline hw/ip/adc_ctrl

86b94a2

  • a8ba853 [adc_ctrl] Updates to LP -> NP transition
    • this converts the adc_ctrl interrupt to status type, and adapts the DV accordingly
  • f575e4b Make .core files pass FuseSoC 2 schema validator
    • unrelated
  • 772a6c2 [adc_ctrl/dv] Update UNR file
    • UNR update for improving coverage in DV
  • 4c06f37 [adc_ctrl] Updates to LP -> NP transition
    • this adds an extra interrupt with wakeup capability so that LP -> NP transitions can be observed for debug purposes.
  • 9d8cc48 [adc_ctrl] Add FSM state observation register for debug purposes
    • this adds a debug observability register
  • 1d8f192 [adc_ctrl] Fix low-power sampling mode
    • this introduces an automatic fall-back from NP to LP mode in case a match cannot be confirmed. this is an important bugfix to prevent accidental high power consumption when the device is in any of the sleep modes and the ADC is enabled to detect cable plug/unplug events
  • 3ab37e4 [adc_ctrl] Bump version to 2.0.0
    • version bump in the Hjson
  • 10a563b [adc_ctrl/doc] Tweak ADC requirements
    • spec update
  • 5db5697 [adc_ctrl/doc] Update programming guidance for 0.0V 2.3V full range
    • spec update
  • 61a237e [util/reggen] reverse order of substruct generation
    • generic reggen change
  • de31bdf [reggen] Remove the devmode input
    • generic reggen change
  • 38d5796 [doc,adc_ctrl] Fix typos in theory of operation doc
    • minor doc change
  • 975a6eb [adc_ctrl,dv] Tidy up access to intr_state in env_cfg files
    • DV cleanup
  • 93524e9 [adc_ctrl,dv] Fix adc_ctrl_lowpower_counter_vseq if used with resets
    • DV fix
  • 2042318 [SiVal] Test plan update for adc_ctrl
    • sival issue
  • 1b16ca2 [reggen] Add mubi support SWAccess that sets/clears a reg
    • generic reggen issue
  • 59f8142 [doc] Moved badges over to using hosted images
    • unrelated
  • 7688e71 [reggen] Add initial support for version and cip_id hjson fields
    • generic reggen change
  • fbd888e Revert "[reggen] Add CIP_IDs and bump all major versions"
    • revers a previous commit
  • 9f6ee51 [doc] adc_ctrl registers now using CMDGEN
    • doc generation update
  • 0ba10b3 [reggen] Add CIP_IDs and bump all major versions
    • this commit is reverted later

Issues closed since the Earlgrey-ES tapeout

Currently open issues

Coverage report from 03/12/2024

image

Coverage looks good across the board except for adc_ctrl_stress_all which has a pass rate of 86%.

Summary

There were a few RTL updates in this block:

  1. an issue related to sampling during low power states has been fixed so that the ADC_CTRL does not accidentally gets stuck in NP sampling mode while the chip remains in deep sleep. [adc_ctrl] Enhance adc_ctrl low power scan to automatically return to low power #13725 [adc_ctrl] Issues with the current design #18511
    • the sequences in DV were already randomized, so from a stimulus perspective this is covered. the model in the scoreboard has been aligned accordingly.
  2. an observability register has been added for the FSM state for debug purposes
    • since it is hard to model the internal state exactly and cycle accurate, this is covered using an assertion. since this is for debug purposes only, this level of coverage is deemed sufficient.
  3. an interrupt with wakeup capability has been added so that LP -> NP transitions can be detected. this is mainly intended for debug.
    • the interrupt enable and status registers were already covered with randomized vectors and the test descriptions are generic enough so that this does not need any alignment of the testplan. the DV scoreboard has been updated to model this correctly.
  4. adc_ctrl only has one collated IRQ that is generated from multiple internal sources. it therefore made sense to convert the interrupt to status type so that SW does not have to clear multiple IRQ status bits when handling an interrupt. [sysrst_ctrl, adc_ctrl] Convert collated edge based interrupt to level #21832 [chip] Convert Edge-triggered status interrupt to Level #15378. the scoreboard has been updated to model this correctly.

The DV has been adapted accordingly so that these new features are all covered.
There are no countermeasures in this block except for bus integrity.

Coverage looks great except for one test that has a pass rate of 86%.
My recommendation would be to sign this off at V2S after fixing the pass rate of that test.

@msfschaffner
Copy link
Contributor Author

@matutem @rswarbrick I may need your help on getting this across the finish line.

@andreaskurth
Copy link
Contributor

@matutem has a PR under review that should get this above the threshold required for V2.

@matutem
Copy link
Contributor

matutem commented Mar 20, 2024

#22095 Fixes most failures. The test that blocked V2(S) was adc_ctrl_stress_all. Rerunning it with #22095 merged gives the following report:

| V2 | stress_all | adc_ctrl_stress_all | 16.174m | 1.016s | 50 | 50 | 100.00 % |

@matutem matutem changed the title [adc_ctrl] V1 Signoff [adc_ctrl] V2(S) Signoff Mar 20, 2024
matutem added a commit to matutem/opentitan that referenced this issue Mar 20, 2024
Fixes lowRISC#21027

Signed-off-by: Guillermo Maturana <[email protected]>
@andreaskurth
Copy link
Contributor

Very nice, thanks @msfschaffner and @matutem! 👍

I agree that adc_ctrl meets the V2S criteria.

andreaskurth pushed a commit that referenced this issue Mar 21, 2024
Fixes #21027

Signed-off-by: Guillermo Maturana <[email protected]>
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:adc_ctrl Type:Signoff
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants