lowRISC / opentitan

OpenTitan: Open source silicon root of trust
https://www.opentitan.org
Apache License 2.0
2.5k stars 745 forks source link

[dv/aon_timer] Scoreboard cannot handle CDC variability #19371

Open matutem opened 1 year ago

matutem commented 1 year ago

Description

The aon_timer_scoreboard makes many assumptions about the exact number of cycles it will take for interrupts or resets will take, based on the a CDC crossing taking exactly one cycle. Foe example, see https://cs.opensource.google/opentitan/opentitan/+/master:hw/ip/aon_timer/dv/env/aon_timer_scoreboard.sv;drc=3d455cd4914bfe6ce235de1a3e2d44359a9aa6df;l=298.

This leads to failures when CDC takes an extra cycle. At least one such failure in aon_timer_stress_all with seed 1407603594 was traced to this problem. Unfortunately this will take some extra work to untangle.

msfschaffner commented 11 months ago

CC @GregAC @rswarbrick

andreaskurth commented 5 months ago

@antmarzam: Would you be able to look into this as part of M4?

antmarzam commented 5 months ago

@antmarzam: Would you be able to look into this as part of M4?

@andreaskurth Sure! I'll look into this!

moidx commented 3 months ago

Unable to get this done for M4. Moving to M5 with P2.

johngt commented 3 months ago

@vogelpi - you created an issue for CDC coverage for Xcelium tools - unsure if at the same time this could be covered. Whoever looks at one of the issues might be able to get this one as a related issue? https://github.com/lowRISC/opentitan/issues/23663