Currently the Ack SM does not move into the Error state upon a fatal local event.
This is because the local_escalate_i input is set to es_cntr_err instead of fatal_loc_events.
Another issue is that when the error code test bit is set to ack_sm_err, then the err_code CSR reports the
ack SM error for one cycle and then the error turns into a main SM error, since the main SM then moves into the
error state.
I discovered this with the following test run:
util/dvsim/dvsim.py hw/ip/entropy_src/dv/entropy_src_sim_cfg.hjson -i entropy_src_fw_ov -t xcelium --fixed-seed 22095553500877194901919262154863091775313409021329761843458377583731512800937
IMO we need to do the following things:
[ ] Make sure that upon a fatal event all FSMs move into the Error state
Thanks @h-filali for reporting this issue. I think we should fix this for a future release, it's an issue yes but it's not very severe. I label this accordingly.
Description
Currently the Ack SM does not move into the Error state upon a fatal local event. This is because the
local_escalate_i
input is set toes_cntr_err
instead offatal_loc_events
. Another issue is that when the error code test bit is set to ack_sm_err, then the err_code CSR reports the ack SM error for one cycle and then the error turns into a main SM error, since the main SM then moves into the error state.I discovered this with the following test run:
util/dvsim/dvsim.py hw/ip/entropy_src/dv/entropy_src_sim_cfg.hjson -i entropy_src_fw_ov -t xcelium --fixed-seed 22095553500877194901919262154863091775313409021329761843458377583731512800937
IMO we need to do the following things: