dashboard | hierarchy | modlist | groups | tests | asserts

Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_44

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_45

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_46

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_47

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_48

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_49

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_50

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_51

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_52

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_53

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_54

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_55

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_56

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_57

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_58

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_59

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_60

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_61

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_62

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_63

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_64

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_0

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_1

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_2

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_3

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_4

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_5

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_6

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_7

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_8

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_9

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_10

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_11

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_12

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_13

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_14

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_15

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_16

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_17

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_18

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_19

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_20

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_21

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_22

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_23

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_24

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.18 100.00 96.71 100.00 100.00 u_reg


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
committed_reg 100.00 100.00 100.00 100.00
shadow_reg 100.00 100.00 100.00 100.00
staged_reg 100.00 100.00 100.00 100.00
wr_en_data_arb 100.00 100.00 100.00 100.00

Go back
Module Instances:
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_44
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_45
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_46
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_47
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_48
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_49
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_50
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_51
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_52
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_53
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_54
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_55
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_56
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_57
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_58
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_59
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_60
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_61
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_62
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_63
tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_64
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_0
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_1
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_2
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_3
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_4
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_5
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_6
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_7
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_8
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_9
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_10
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_11
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_12
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_13
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_14
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_15
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_16
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_17
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_18
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_19
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_20
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_21
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_22
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_23
tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_24
Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_44
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_44
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T160,T168
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T160,T170
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T160,T168
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT157,T158,T169
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT157,T158,T169

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T160,T170

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_44
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_44
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_45
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_45
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT161,T176,T181
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT174,T161,T176
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT161,T176,T181
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T174,T166
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T174,T166

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT174,T161,T176

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_45
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_45
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_46
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_46
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT167,T160,T171
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT167,T160,T171
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT167,T160,T171
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT167,T160,T171
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT167,T160,T171

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT167,T160,T171

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_46
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_46
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_47
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_47
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT167,T166,T165
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT167,T170,T177
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT167,T166,T165
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT159,T170,T166
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT159,T170,T166

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT167,T170,T177

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_47
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_47
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_48
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_48
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT159,T170,T171
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT157,T159,T160
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT159,T170,T171
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT157,T160,T170
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T11

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T11

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T3,T11
10CoveredT1,T3,T11
11CoveredT157,T160,T170

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT157,T159,T160

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_48
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T3,T11
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_48
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_49
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_49
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT156,T167,T160
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT156,T167,T160
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT156,T167,T160
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT156,T167,T160
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT156,T167,T160

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT156,T167,T160

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_49
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_49
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_50
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_50
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT171,T161,T178
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT169,T171,T161
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT171,T161,T178
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT169,T173,T168
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T11

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T11

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T3,T11
10CoveredT1,T3,T11
11CoveredT169,T173,T168

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT169,T171,T161

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_50
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T3,T11
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_50
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_51
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_51
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT160,T166,T165
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT169,T160,T166
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT160,T166,T165
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT170,T166,T168
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT170,T166,T168

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT169,T160,T166

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_51
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_51
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_52
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_52
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T171,T179
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T171,T179
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T171,T179
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T171,T164
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T171,T164

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T171,T179

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_52
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_52
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_53
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_53
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T174,T168
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T169,T174
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T174,T168
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT169,T174,T170
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T11

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T11

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T3,T11
10CoveredT1,T3,T11
11CoveredT169,T174,T170

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T169,T174

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_53
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T3,T11
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_53
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_54
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_54
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T159,T160
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T159,T160
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T159,T160
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T159,T171
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T159,T171

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T159,T160

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_54
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_54
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_55
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_55
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT156,T167,T174
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT156,T167,T174
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT156,T167,T174
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT167,T170,T171
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T11

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T11

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T3,T11
10CoveredT1,T3,T11
11CoveredT167,T170,T171

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT156,T167,T174

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_55
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T3,T11
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_55
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_56
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_56
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T164,T168
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T164,T168
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T164,T168
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T164,T168
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T164,T168

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T164,T168

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_56
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_56
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_57
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_57
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T159,T160
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T159,T160
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T159,T160
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T159,T176
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T159,T176

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T159,T160

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_57
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_57
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_58
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_58
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T171,T165
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T171,T164
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T171,T165
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T171,T164
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T171,T164

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T171,T164

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_58
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_58
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_59
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_59
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T164,T182
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T170,T164
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T164,T182
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T170,T164
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T170,T164

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T170,T164

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_59
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_59
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_60
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_60
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT173,T166,T165
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT173,T166,T165
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT173,T166,T165
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT173,T172,T176
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT173,T172,T176

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT173,T166,T165

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_60
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_60
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_61
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_61
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT167,T174,T166
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT167,T174,T170
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT167,T174,T166
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT157,T174,T173
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT157,T174,T173

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT167,T174,T170

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_61
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_61
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_62
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_62
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT171,T166,T161
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT171,T166,T161
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT171,T166,T161
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT171,T166,T161
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT171,T166,T161

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT171,T166,T161

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_62
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_62
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_63
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_63
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT167,T166,T168
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T167,T171
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT167,T166,T168
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T167,T160
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T167,T160

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T167,T171

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_63
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_63
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_64
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_64
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT156,T171,T164
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT156,T171,T164
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT156,T171,T164
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT156,T171,T164
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT156,T171,T164

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT156,T171,T164

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_64
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_en_shadowed_64
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_0
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_0
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT174,T171,T173
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT174,T170,T171
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT174,T171,T173
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT160,T174,T170
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT160,T174,T170

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT174,T170,T171

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_0
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_0
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_1
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_1
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT167,T166,T168
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT167,T166,T168
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT167,T166,T168
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT166,T168,T163
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T12

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T12

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T3,T12
10CoveredT1,T3,T12
11CoveredT166,T168,T163

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT167,T166,T168

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_1
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T3,T12
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_1
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_2
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_2
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT157,T159,T160
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT157,T159,T160
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT157,T159,T160
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT159,T160,T164
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT159,T160,T164

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT157,T159,T160

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_2
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_2
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_3
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_3
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT160,T177,T173
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT160,T177,T173
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT160,T177,T173
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT160,T174,T177
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT160,T174,T177

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT160,T177,T173

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_3
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_3
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_4
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_4
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT167,T160,T168
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT167,T160,T168
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT167,T160,T168
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT167,T178,T181
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT167,T178,T181

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT167,T160,T168

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_4
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_4
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_5
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_5
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT169,T172,T161
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT169,T172,T161
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT169,T172,T161
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT169,T162,T183
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT169,T162,T183

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT169,T172,T161

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_5
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_5
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_6
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_6
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT156,T167,T173
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT156,T157,T167
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT156,T167,T173
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT156,T167,T173
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT156,T167,T173

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT156,T157,T167

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_6
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_6
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_7
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_7
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T170,T162
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T170,T162
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T170,T162
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT156,T158,T171
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT156,T158,T171

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T170,T162

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_7
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_7
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_8
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_8
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT156,T158,T167
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT156,T158,T167
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT156,T158,T167
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT156,T158,T167
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT156,T158,T167

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT156,T158,T167

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_8
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_8
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_9
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_9
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT174,T168,T176
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT174,T168,T176
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT174,T168,T176
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT160,T174,T168
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT160,T174,T168

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT174,T168,T176

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_9
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_9
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_10
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_10
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT159,T174,T171
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT159,T174,T170
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT159,T174,T171
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT159,T174,T168
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT159,T174,T168

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT159,T174,T170

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_10
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_10
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_11
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_11
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT167,T173,T164
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT167,T160,T173
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT167,T173,T164
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT156,T167,T160
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T12

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T12

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T3,T12
10CoveredT1,T3,T12
11CoveredT156,T167,T160

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT167,T160,T173

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_11
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T3,T12
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_11
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_12
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_12
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T174,T164
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T160,T174
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T174,T164
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T160,T173
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T160,T173

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T160,T174

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_12
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_12
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_13
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_13
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT156,T167,T160
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT156,T167,T160
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT156,T167,T160
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT156,T167,T160
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT156,T167,T160

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT156,T167,T160

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_13
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_13
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_14
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_14
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T167,T171
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T167,T171
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T167,T171
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T167,T160
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T167,T160

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T167,T171

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_14
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_14
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_15
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_15
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT156,T174,T171
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT156,T174,T171
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT156,T174,T171
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT156,T159,T171
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT156,T159,T171

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT156,T174,T171

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_15
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_15
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_16
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_16
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T164,T172
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT156,T157,T158
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T164,T172
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT157,T158,T164
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT157,T158,T164

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT156,T157,T158

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_16
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_16
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_17
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_17
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT160,T171,T164
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT160,T174,T171
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT160,T171,T164
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT156,T160,T174
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT156,T160,T174

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT160,T174,T171

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_17
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_17
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_18
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_18
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT156,T158,T159
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT156,T158,T159
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT156,T158,T159
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T159,T173
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T159,T173

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT156,T158,T159

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_18
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_18
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_19
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_19
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT167,T159,T174
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT167,T169,T159
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT167,T159,T174
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT167,T164,T168
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT167,T164,T168

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT167,T169,T159

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_19
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_19
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_20
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_20
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T174,T162
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T174,T170
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T174,T162
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T161,T184
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T161,T184

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T174,T170

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_20
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_20
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_21
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_21
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T159,T160
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT158,T169,T159
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T159,T160
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T159,T171
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T159,T171

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT158,T169,T159

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_21
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_21
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_22
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_22
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT158,T169,T160
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT157,T158,T167
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT158,T169,T160
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT158,T167,T169
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT158,T167,T169

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT157,T158,T167

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_22
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_22
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_23
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_23
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT167,T160,T168
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT167,T159,T160
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT167,T160,T168
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT167,T159,T161
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT167,T159,T161

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT167,T159,T160

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_23
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_23
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

Line Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_24
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN9411100.00
ALWAYS10066100.00
CONT_ASSIGN11311100.00
CONT_ASSIGN11400
CONT_ASSIGN13811100.00
CONT_ASSIGN13900
CONT_ASSIGN16011100.00
CONT_ASSIGN16100
CONT_ASSIGN18011100.00
CONT_ASSIGN18311100.00
CONT_ASSIGN18411100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN18811100.00
CONT_ASSIGN18911100.00

93 // - In case of RO, SW should not interfere with update process. 94 1/1 assign phase_clear = (SwAccess == SwAccessRO) ? 1'b0 : re; Tests: T38 T103 T155  95 96 // Phase tracker: 97 // - Reads from SW clear the phase back to 0. 98 // - Writes have priority (can come from SW or HW). 99 always_ff @(posedge clk_i or negedge rst_ni) begin : phase_reg 100 1/1 if (!rst_ni) begin Tests: T1 T2 T3  101 1/1 phase_q <= 1'b0; Tests: T1 T2 T3  102 1/1 end else if (wr_en && !err_storage) begin Tests: T1 T2 T3  103 1/1 phase_q <= ~phase_q; Tests: T1 T2 T3  104 1/1 end else if (phase_clear || err_storage) begin Tests: T1 T2 T3  105 1/1 phase_q <= 1'b0; Tests: T38 T103 T155  106 end MISSING_ELSE 107 end 108 109 // The staged register: 110 // - Holds the 1's complement value. 111 // - Written in Phase 0. 112 // - Once storage error occurs, do not allow any further update until reset 113 1/1 assign staged_we = we & ~phase_q & ~err_storage; Tests: T1 T2 T3  114 unreachable assign staged_de = de & ~phase_q & ~err_storage; 115 prim_subreg #( 116 .DW ( DW ), 117 .SwAccess ( StagedSwAccess ), 118 .RESVAL ( ~RESVAL ) 119 ) staged_reg ( 120 .clk_i ( clk_i ), 121 .rst_ni ( rst_ni ), 122 .we ( staged_we ), 123 .wd ( ~wr_data ), 124 .de ( staged_de ), 125 .d ( ~d ), 126 .qe ( ), 127 .q ( staged_q ), 128 .ds ( ), 129 .qs ( ) 130 ); 131 132 // The shadow register: 133 // - Holds the 1's complement value. 134 // - Written in Phase 1. 135 // - Writes are ignored in case of update errors. 136 // - Gets the value from the staged register. 137 // - Once storage error occurs, do not allow any further update until reset 138 1/1 assign shadow_we = we & phase_q & ~err_update & ~err_storage; Tests: T1 T2 T3  139 unreachable assign shadow_de = de & phase_q & ~err_update & ~err_storage; 140 prim_subreg #( 141 .DW ( DW ), 142 .SwAccess ( InvertedSwAccess ), 143 .RESVAL ( ~RESVAL ) 144 ) shadow_reg ( 145 .clk_i ( clk_i ), 146 .rst_ni ( rst_shadowed_ni ), 147 .we ( shadow_we ), 148 .wd ( staged_q ), 149 .de ( shadow_de ), 150 .d ( staged_q ), 151 .qe ( ), 152 .q ( shadow_q ), 153 .ds ( ), 154 .qs ( ) 155 ); 156 157 // The committed register: 158 // - Written in Phase 1. 159 // - Writes are ignored in case of update errors. 160 1/1 assign committed_we = shadow_we; Tests: T1 T2 T3  161 unreachable assign committed_de = shadow_de; 162 prim_subreg #( 163 .DW ( DW ), 164 .SwAccess ( SwAccess ), 165 .RESVAL ( RESVAL ) 166 ) committed_reg ( 167 .clk_i ( clk_i ), 168 .rst_ni ( rst_ni ), 169 .we ( committed_we ), 170 .wd ( wr_data ), 171 .de ( committed_de ), 172 .d ( d ), 173 .qe ( committed_qe ), 174 .q ( committed_q ), 175 .ds ( ds ), 176 .qs ( committed_qs ) 177 ); 178 179 // Output phase for hwext. 180 1/1 assign phase = phase_q; Tests: T1 T2 T3  181 182 // Error detection - all bits must match. 183 1/1 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; Tests: T1 T2 T3  184 1/1 assign err_storage = (~shadow_q != committed_q); Tests: T1 T2 T3  185 186 // Remaining output assignments 187 1/1 assign qe = committed_qe; Tests: T1 T2 T3  188 1/1 assign q = committed_q; Tests: T1 T2 T3  189 1/1 assign qs = committed_qs; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_24
TotalCoveredPercent
Conditions2525100.00
Logical2525100.00
Non-Logical00
Event00

 LINE       102
 EXPRESSION (wr_en && ((!err_storage)))
             --1--    --------2-------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT167,T159,T160
11CoveredT1,T2,T3

 LINE       104
 EXPRESSION (phase_clear || err_storage)
             -----1-----    -----2-----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT167,T159,T160
10CoveredT38,T103,T155

 LINE       113
 EXPRESSION (we & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT167,T159,T160
111CoveredT1,T2,T3

 LINE       114
 EXPRESSION (de & ((~phase_q)) & ((~err_storage)))
             -1   ------2-----   --------3-------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Unreachable
110Unreachable
111Unreachable

 LINE       138
 EXPRESSION (we & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTestsExclude Annotation
0111CoveredT1,T2,T3
1011CoveredT1,T2,T3
1101CoveredT167,T159,T160
1110Excluded VC_COV_UNR
1111CoveredT1,T2,T3

 LINE       139
 EXPRESSION (de & phase_q & ((~err_update)) & ((~err_storage)))
             -1   ---2---   -------3-------   --------4-------
-1--2--3--4-StatusTests
0111CoveredT1,T2,T3
1011Unreachable
1101Unreachable
1110Unreachable
1111Unreachable

 LINE       183
 EXPRESSION (((~staged_q) != wr_data) ? (phase_q & wr_en) : 1'b0)
             ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION ((~staged_q) != wr_data)
                ------------1-----------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       183
 SUB-EXPRESSION (phase_q & wr_en)
                 ---1---   --2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT167,T159,T160

 LINE       184
 EXPRESSION ((~shadow_q) != committed_q)
            --------------1-------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT167,T159,T160

Branch Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_24
Line No.TotalCoveredPercent
Branches 6 6 100.00
TERNARY 183 2 2 100.00
IF 100 4 4 100.00


183 assign err_update = (~staged_q != wr_data) ? phase_q & wr_en : 1'b0; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


100 if (!rst_ni) begin -1- 101 phase_q <= 1'b0; ==> 102 end else if (wr_en && !err_storage) begin -2- 103 phase_q <= ~phase_q; ==> 104 end else if (phase_clear || err_storage) begin -3- 105 phase_q <= 1'b0; ==> 106 end MISSING_ELSE ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T38,T103,T155
0 0 0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_reg_wrap.u_reg.u_alert_class_shadowed_24
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
CheckSwAccessIsLegal_A 827 827 0 0
MubiIsNotYetSupported_A 678394440 677700103 0 0


CheckSwAccessIsLegal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 827 827 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0
T14 1 1 0 0
T32 1 1 0 0
T33 1 1 0 0

MubiIsNotYetSupported_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 678394440 677700103 0 0
T1 905 832 0 0
T2 6174 6113 0 0
T3 967 896 0 0
T4 19435 6329 0 0
T11 14223 14148 0 0
T12 31216 31149 0 0
T13 27107 27018 0 0
T14 22215 22128 0 0
T32 31366 31287 0 0
T33 24526 24437 0 0

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%