tree 0b6b11e710aaf9c86266158050f61a27b6ed06f7
parent bf7fb1e358571e4d5cc9c494b2e82d617bbd1298
author Cindy Chen <chencindy@opentitan.org> 1648577884 -0700
committer Cindy Chen <cindy.chen0316@gmail.com> 1648594625 -0700

[dv/otp_ctrl] Fix stress_all_with_rand_reset seq

This PR fixes otp_ctrl's stress_all_with_rand_reset:
1). Method to force the mubi value - previous method try to use for
  loop, and pre-assign the mubi values to all partitions before forcing
  them. This will work for normal sequences but not
  stress_all_with_rand_reset. Because if the previous parition is not
  locked (force it to unlocked value), then next sequence lock it without reset(
  usually sequence will reset here), then next sequence cannot be locked
  because of the force value.
  So this PR change it to only force locked value to undeclared mubi
  values.
2). In stress_all_with_rand_reset sequence, because reset we use a
  different task `apply_resets_concurrently`, it does not include all
  the overrides for `apply_reset` and `dut_init`. To adds the additional
  overrides, I used to put it under `otp_ctrl_stress_all_vseq`. However,
  stress_all_with_rand_reset is based on `common_sequence` instead, so
  this override did not apply to `stress_all_with_rand_reset` sequence.
  So I moved the override to base task.
3). For the timing to re-enable scb: because in some fatal error user
  has to issue reset to get a functional OTP again, so
  stress_all_with_rand_reset child sequence will wait until reset is
  issue. If we enable the scb during post_start(), but did not issue
  reset immediately, scb will report error.
  The solution here is to move `en_scb` when apply_reset is issued.

Signed-off-by: Cindy Chen <chencindy@opentitan.org>
