Module Definition
dashboard | hierarchy | modlist | groups | tests | asserts

Module : prim_pulse_sync
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00 100.00

Source File(s) :
/workspaces/lowrisc/opentitan/scratch/earlgrey_1_0_0_2024_08_20_RC0/sysrst_ctrl-sim-vcs/default/sim-vcs/../src/lowrisc_prim_all_0.1/rtl/prim_pulse_sync.sv

Module self-instances :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
tb.dut.u_reg.u_ec_rst_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_ec_rst_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_ulp_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_ulp_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_wkup_status_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_key_invert_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_key_invert_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_pin_out_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_pin_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_pin_out_value_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_pin_out_value_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_key_intr_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_key_intr_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_det_ctl_0_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_det_ctl_1_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_det_ctl_2_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_det_ctl_3_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_out_ctl_0_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_out_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_out_ctl_1_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_out_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_out_ctl_2_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_out_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_out_ctl_3_cdc.u_src_to_dst_req 100.00 100.00 100.00 100.00 100.00
tb.dut.u_reg.u_com_out_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack 100.00 100.00 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_ec_rst_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_ec_rst_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_ec_rst_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
83.33 100.00 66.67 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_ulp_ac_debounce_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
83.33 100.00 66.67 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_ulp_lid_debounce_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
83.33 100.00 66.67 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_ulp_pwrb_debounce_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
83.33 100.00 66.67 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_ulp_ctl_cdc.u_src_to_dst_req

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
98.08 100.00 92.31 100.00 100.00 u_ulp_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_ulp_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_wkup_status_cdc.u_src_to_dst_req

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
96.88 100.00 87.50 100.00 100.00 u_wkup_status_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_key_invert_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_key_invert_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_key_invert_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_pin_allowed_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_pin_out_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_pin_out_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_pin_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_pin_out_value_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_pin_out_value_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_pin_out_value_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_key_intr_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_key_intr_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_key_intr_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_key_intr_debounce_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
83.33 100.00 66.67 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_auto_block_debounce_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
83.33 100.00 66.67 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_auto_block_out_ctl_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_pre_sel_ctl_0_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_pre_sel_ctl_1_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_pre_sel_ctl_2_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_pre_sel_ctl_3_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_pre_det_ctl_0_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_pre_det_ctl_1_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_pre_det_ctl_2_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_pre_det_ctl_3_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_sel_ctl_0_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_sel_ctl_1_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_sel_ctl_2_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_sel_ctl_3_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_det_ctl_0_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_det_ctl_0_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_det_ctl_1_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_det_ctl_1_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_det_ctl_2_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_det_ctl_2_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_det_ctl_3_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_det_ctl_3_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_out_ctl_0_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_out_ctl_0_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_out_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_out_ctl_1_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_out_ctl_1_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_out_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_out_ctl_2_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_out_ctl_2_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_out_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_out_ctl_3_cdc.u_src_to_dst_req

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
97.73 100.00 90.91 100.00 100.00 u_com_out_ctl_3_cdc


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00



Module Instance : tb.dut.u_reg.u_com_out_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack

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
100.00 100.00 100.00 u_arb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
prim_flop_2sync 100.00 100.00 100.00

Line Coverage for Module : prim_pulse_sync
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Module : prim_pulse_sync
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T3
10CoveredT5,T2,T3
11CoveredT3,T7,T25

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T3
10CoveredT3,T7,T25
11CoveredT5,T2,T3

Branch Coverage for Module : prim_pulse_sync
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Module : prim_pulse_sync
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
DstPulseCheck_A 2147483647 198651 0 0
SrcPulseCheck_M 2147483647 201304 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 2147483647 198651 0 0
T1 63995 0 0 0
T2 61738 2 0 0
T3 116302 0 0 0
T5 52781 2 0 0
T6 61264 0 0 0
T7 126196 0 0 0
T8 249086 2 0 0
T10 0 2 0 0
T12 0 6 0 0
T13 0 2 0 0
T14 54275 0 0 0
T15 61295 0 0 0
T16 246675 0 0 0
T17 49308 0 0 0
T18 307774 0 0 0
T25 837557 33 0 0
T27 62100 0 0 0
T28 620966 16 0 0
T29 0 14 0 0
T30 0 9 0 0
T31 0 1 0 0
T32 219176 2 0 0
T43 0 2 0 0
T45 0 15 0 0
T49 0 16 0 0
T51 0 12 0 0
T58 0 2 0 0
T59 0 16 0 0
T60 0 16 0 0
T61 0 16 0 0
T62 0 14 0 0
T63 414868 0 0 0
T64 113104 0 0 0
T65 184386 0 0 0
T66 748766 0 0 0
T67 257750 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 2147483647 201304 0 0
T1 63995 0 0 0
T2 61738 2 0 0
T3 116302 0 0 0
T5 52781 2 0 0
T6 61264 0 0 0
T7 126196 0 0 0
T8 249086 2 0 0
T10 0 2 0 0
T12 0 6 0 0
T13 0 2 0 0
T14 54275 0 0 0
T15 61295 0 0 0
T16 246675 0 0 0
T17 49308 0 0 0
T18 307774 0 0 0
T25 7314 33 0 0
T27 62100 0 0 0
T28 620966 16 0 0
T29 0 14 0 0
T30 0 9 0 0
T31 0 1 0 0
T32 219176 2 0 0
T43 0 2 0 0
T45 0 15 0 0
T49 0 16 0 0
T51 0 12 0 0
T58 0 2 0 0
T59 0 16 0 0
T60 0 16 0 0
T61 0 16 0 0
T62 0 14 0 0
T63 414868 0 0 0
T64 113104 0 0 0
T65 184386 0 0 0
T66 748766 0 0 0
T67 257750 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_ec_rst_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T5 T2 T18 

Cond Coverage for Instance : tb.dut.u_reg.u_ec_rst_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T18
10CoveredT5,T2,T18
11CoveredT33,T293,T21

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T18
10CoveredT33,T293,T21
11CoveredT5,T2,T18

Branch Coverage for Instance : tb.dut.u_reg.u_ec_rst_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_ec_rst_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1645 0 0
SrcPulseCheck_M 1222336775 1717 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1645 0 0
T1 786 0 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 1 0 0
T25 0 1 0 0
T32 0 1 0 0
T58 0 1 0 0
T65 0 1 0 0
T70 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1717 0 0
T1 63209 0 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 1 0 0
T25 0 1 0 0
T32 0 1 0 0
T58 0 1 0 0
T65 0 1 0 0
T70 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_ec_rst_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_ec_rst_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T18
10CoveredT5,T2,T18
11CoveredT33,T293,T21

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T18
10CoveredT33,T293,T21
11CoveredT5,T2,T18

Branch Coverage for Instance : tb.dut.u_reg.u_ec_rst_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_ec_rst_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1709 0 0
SrcPulseCheck_M 7999703 1709 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1709 0 0
T1 63209 0 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 1 0 0
T25 0 1 0 0
T32 0 1 0 0
T58 0 1 0 0
T65 0 1 0 0
T70 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1709 0 0
T1 786 0 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 1 0 0
T25 0 1 0 0
T32 0 1 0 0
T58 0 1 0 0
T65 0 1 0 0
T70 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T3 T7 T25 

Cond Coverage for Instance : tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T25
11CoveredT3,T7,T38

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T38
11CoveredT3,T7,T25

Branch Coverage for Instance : tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 838 0 0
SrcPulseCheck_M 1222336775 914 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 838 0 0
T3 2489 3 0 0
T7 0 3 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 1 0 0
T28 619 0 0 0
T32 445 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 422 0 0 0
T64 448 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 914 0 0
T3 113813 3 0 0
T7 0 3 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 1 0 0
T28 309864 0 0 0
T32 109143 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

Line Coverage for Instance : tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T25
11CoveredT3,T7,T38

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T38
11CoveredT3,T7,T25

Branch Coverage for Instance : tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_ulp_ac_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 901 0 0
SrcPulseCheck_M 7999703 901 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 901 0 0
T3 113813 3 0 0
T7 0 3 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 1 0 0
T28 309864 0 0 0
T32 109143 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 901 0 0
T3 2489 3 0 0
T7 0 3 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 1 0 0
T28 619 0 0 0
T32 445 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 422 0 0 0
T64 448 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

Line Coverage for Instance : tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T3 T7 T25 

Cond Coverage for Instance : tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T25
11CoveredT3,T7,T38

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T38
11CoveredT3,T7,T25

Branch Coverage for Instance : tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 852 0 0
SrcPulseCheck_M 1222336775 925 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 852 0 0
T3 2489 3 0 0
T7 0 3 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 1 0 0
T28 619 0 0 0
T32 445 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 422 0 0 0
T64 448 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 925 0 0
T3 113813 3 0 0
T7 0 3 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 1 0 0
T28 309864 0 0 0
T32 109143 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

Line Coverage for Instance : tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T25
11CoveredT3,T7,T38

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T38
11CoveredT3,T7,T25

Branch Coverage for Instance : tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_ulp_lid_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 915 0 0
SrcPulseCheck_M 7999703 915 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 915 0 0
T3 113813 3 0 0
T7 0 3 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 1 0 0
T28 309864 0 0 0
T32 109143 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 915 0 0
T3 2489 3 0 0
T7 0 3 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 1 0 0
T28 619 0 0 0
T32 445 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 422 0 0 0
T64 448 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

Line Coverage for Instance : tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T3 T7 T25 

Cond Coverage for Instance : tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T25
11CoveredT3,T7,T38

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T38
11CoveredT3,T7,T25

Branch Coverage for Instance : tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 843 0 0
SrcPulseCheck_M 1222336775 921 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 843 0 0
T3 2489 3 0 0
T7 0 3 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 1 0 0
T28 619 0 0 0
T32 445 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 422 0 0 0
T64 448 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 921 0 0
T3 113813 3 0 0
T7 0 3 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 1 0 0
T28 309864 0 0 0
T32 109143 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

Line Coverage for Instance : tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T25
11CoveredT3,T7,T38

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T38
11CoveredT3,T7,T25

Branch Coverage for Instance : tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_ulp_pwrb_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 908 0 0
SrcPulseCheck_M 7999703 908 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 908 0 0
T3 113813 3 0 0
T7 0 3 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 1 0 0
T28 309864 0 0 0
T32 109143 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 908 0 0
T3 2489 3 0 0
T7 0 3 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 1 0 0
T28 619 0 0 0
T32 445 0 0 0
T38 0 2 0 0
T45 0 1 0 0
T63 422 0 0 0
T64 448 0 0 0
T68 0 2 0 0
T69 0 3 0 0
T71 0 1 0 0
T72 0 2 0 0
T73 0 2 0 0

Line Coverage for Instance : tb.dut.u_reg.u_ulp_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T3 T7 T25 

Cond Coverage for Instance : tb.dut.u_reg.u_ulp_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T25
11CoveredT3,T7,T25

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T25
11CoveredT3,T7,T25

Branch Coverage for Instance : tb.dut.u_reg.u_ulp_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_ulp_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 850 0 0
SrcPulseCheck_M 1222336775 927 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 850 0 0
T3 2489 2 0 0
T7 0 4 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 4 0 0
T28 619 0 0 0
T32 445 0 0 0
T38 0 2 0 0
T45 0 4 0 0
T63 422 0 0 0
T64 448 0 0 0
T68 0 2 0 0
T69 0 4 0 0
T72 0 2 0 0
T73 0 2 0 0
T92 0 2 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 927 0 0
T3 113813 2 0 0
T7 0 4 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 4 0 0
T28 309864 0 0 0
T32 109143 0 0 0
T38 0 2 0 0
T45 0 4 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T68 0 2 0 0
T69 0 4 0 0
T72 0 2 0 0
T73 0 2 0 0
T92 0 2 0 0

Line Coverage for Instance : tb.dut.u_reg.u_ulp_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_ulp_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T25
11CoveredT3,T7,T25

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T25
10CoveredT3,T7,T25
11CoveredT3,T7,T25

Branch Coverage for Instance : tb.dut.u_reg.u_ulp_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_ulp_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 914 0 0
SrcPulseCheck_M 7999703 914 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 914 0 0
T3 113813 2 0 0
T7 0 4 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 4 0 0
T28 309864 0 0 0
T32 109143 0 0 0
T38 0 2 0 0
T45 0 4 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T68 0 2 0 0
T69 0 4 0 0
T72 0 2 0 0
T73 0 2 0 0
T92 0 2 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 914 0 0
T3 2489 2 0 0
T7 0 4 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 4 0 0
T28 619 0 0 0
T32 445 0 0 0
T38 0 2 0 0
T45 0 4 0 0
T63 422 0 0 0
T64 448 0 0 0
T68 0 2 0 0
T69 0 4 0 0
T72 0 2 0 0
T73 0 2 0 0
T92 0 2 0 0

Line Coverage for Instance : tb.dut.u_reg.u_wkup_status_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T3 T7 T12 

Cond Coverage for Instance : tb.dut.u_reg.u_wkup_status_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T12
10CoveredT3,T7,T12
11CoveredT7,T69,T41

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT3,T7,T12
10CoveredT7,T69,T41
11CoveredT3,T7,T12

Branch Coverage for Instance : tb.dut.u_reg.u_wkup_status_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_wkup_status_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 957 0 0
SrcPulseCheck_M 1222336775 1032 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 957 0 0
T3 2489 1 0 0
T7 0 2 0 0
T12 0 1 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T28 619 0 0 0
T30 0 2 0 0
T32 445 0 0 0
T38 0 1 0 0
T41 0 12 0 0
T43 0 1 0 0
T56 0 8 0 0
T63 422 0 0 0
T64 448 0 0 0
T68 0 1 0 0
T69 0 2 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1032 0 0
T3 113813 1 0 0
T7 0 2 0 0
T12 0 1 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T28 309864 0 0 0
T30 0 2 0 0
T32 109143 0 0 0
T38 0 1 0 0
T41 0 12 0 0
T43 0 1 0 0
T45 0 1 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T68 0 1 0 0
T69 0 2 0 0

Line Coverage for Instance : tb.dut.u_reg.u_key_invert_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T16 T19 T26 

Cond Coverage for Instance : tb.dut.u_reg.u_key_invert_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT16,T19,T26
10CoveredT16,T19,T26
11CoveredT16,T19,T26

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT16,T19,T26
10CoveredT16,T19,T26
11CoveredT16,T19,T26

Branch Coverage for Instance : tb.dut.u_reg.u_key_invert_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_key_invert_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1991 0 0
SrcPulseCheck_M 1222336775 2067 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1991 0 0
T16 492 20 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 20 0 0
T20 422 0 0 0
T26 0 20 0 0
T27 509 0 0 0
T28 619 0 0 0
T32 445 0 0 0
T51 0 20 0 0
T63 422 0 0 0
T64 448 0 0 0
T74 0 20 0 0
T75 0 20 0 0
T76 0 20 0 0
T77 0 20 0 0
T78 0 20 0 0
T79 0 20 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 2067 0 0
T16 246183 20 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 20 0 0
T20 202906 0 0 0
T26 0 20 0 0
T27 30541 0 0 0
T28 309864 0 0 0
T32 109143 0 0 0
T51 0 20 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T74 0 20 0 0
T75 0 20 0 0
T76 0 20 0 0
T77 0 20 0 0
T78 0 20 0 0
T79 0 20 0 0

Line Coverage for Instance : tb.dut.u_reg.u_key_invert_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_key_invert_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT16,T19,T26
10CoveredT16,T19,T26
11CoveredT16,T19,T26

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT16,T19,T26
10CoveredT16,T19,T26
11CoveredT16,T19,T26

Branch Coverage for Instance : tb.dut.u_reg.u_key_invert_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_key_invert_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 2056 0 0
SrcPulseCheck_M 7999703 2056 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 2056 0 0
T16 246183 20 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 20 0 0
T20 202906 0 0 0
T26 0 20 0 0
T27 30541 0 0 0
T28 309864 0 0 0
T32 109143 0 0 0
T51 0 20 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T74 0 20 0 0
T75 0 20 0 0
T76 0 20 0 0
T77 0 20 0 0
T78 0 20 0 0
T79 0 20 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 2056 0 0
T16 492 20 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 20 0 0
T20 422 0 0 0
T26 0 20 0 0
T27 509 0 0 0
T28 619 0 0 0
T32 445 0 0 0
T51 0 20 0 0
T63 422 0 0 0
T64 448 0 0 0
T74 0 20 0 0
T75 0 20 0 0
T76 0 20 0 0
T77 0 20 0 0
T78 0 20 0 0
T79 0 20 0 0

Line Coverage for Instance : tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T6 T15 T16 

Cond Coverage for Instance : tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT6,T15,T16
10CoveredT6,T15,T16
11CoveredT6,T15,T27

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT6,T15,T16
10CoveredT6,T15,T27
11CoveredT6,T15,T16

Branch Coverage for Instance : tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 4110 0 0
SrcPulseCheck_M 1222336775 4192 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 4110 0 0
T1 786 0 0 0
T2 510 0 0 0
T3 2489 0 0 0
T6 528 20 0 0
T14 430 0 0 0
T15 506 20 0 0
T16 492 1 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 1 0 0
T26 0 1 0 0
T27 0 20 0 0
T67 0 20 0 0
T74 0 1 0 0
T80 0 20 0 0
T81 0 20 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 4192 0 0
T1 63209 0 0 0
T2 61228 0 0 0
T3 113813 0 0 0
T6 60736 20 0 0
T14 53845 0 0 0
T15 60789 20 0 0
T16 246183 1 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 1 0 0
T26 0 1 0 0
T27 0 20 0 0
T67 0 20 0 0
T74 0 1 0 0
T80 0 20 0 0
T81 0 20 0 0

Line Coverage for Instance : tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT6,T15,T16
10CoveredT6,T15,T16
11CoveredT6,T15,T27

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT6,T15,T16
10CoveredT6,T15,T27
11CoveredT6,T15,T16

Branch Coverage for Instance : tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_pin_allowed_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 4176 0 0
SrcPulseCheck_M 7999703 4176 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 4176 0 0
T1 63209 0 0 0
T2 61228 0 0 0
T3 113813 0 0 0
T6 60736 20 0 0
T14 53845 0 0 0
T15 60789 20 0 0
T16 246183 1 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 1 0 0
T26 0 1 0 0
T27 0 20 0 0
T67 0 20 0 0
T74 0 1 0 0
T80 0 20 0 0
T81 0 20 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 4176 0 0
T1 786 0 0 0
T2 510 0 0 0
T3 2489 0 0 0
T6 528 20 0 0
T14 430 0 0 0
T15 506 20 0 0
T16 492 1 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 1 0 0
T26 0 1 0 0
T27 0 20 0 0
T67 0 20 0 0
T74 0 1 0 0
T80 0 20 0 0
T81 0 20 0 0

Line Coverage for Instance : tb.dut.u_reg.u_pin_out_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T5 T6 T2 

Cond Coverage for Instance : tb.dut.u_reg.u_pin_out_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T6,T2
10CoveredT5,T6,T2
11CoveredT6,T15,T27

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T6,T2
10CoveredT6,T15,T27
11CoveredT5,T6,T2

Branch Coverage for Instance : tb.dut.u_reg.u_pin_out_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_pin_out_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 5072 0 0
SrcPulseCheck_M 1222336775 5155 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 5072 0 0
T1 786 0 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 20 0 0
T8 0 1 0 0
T14 430 0 0 0
T15 506 20 0 0
T16 492 1 0 0
T17 407 0 0 0
T18 614 1 0 0
T19 0 1 0 0
T27 0 20 0 0
T32 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 5155 0 0
T1 63209 0 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 20 0 0
T8 0 1 0 0
T14 53845 0 0 0
T15 60789 20 0 0
T16 246183 1 0 0
T17 48901 0 0 0
T18 307160 1 0 0
T19 0 1 0 0
T27 0 20 0 0
T32 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_pin_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_pin_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T6,T2
10CoveredT5,T6,T2
11CoveredT6,T15,T27

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T6,T2
10CoveredT6,T15,T27
11CoveredT5,T6,T2

Branch Coverage for Instance : tb.dut.u_reg.u_pin_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_pin_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 5136 0 0
SrcPulseCheck_M 7999703 5136 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 5136 0 0
T1 63209 0 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 20 0 0
T8 0 1 0 0
T14 53845 0 0 0
T15 60789 20 0 0
T16 246183 1 0 0
T17 48901 0 0 0
T18 307160 1 0 0
T19 0 1 0 0
T27 0 20 0 0
T32 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 5136 0 0
T1 786 0 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 20 0 0
T8 0 1 0 0
T14 430 0 0 0
T15 506 20 0 0
T16 492 1 0 0
T17 407 0 0 0
T18 614 1 0 0
T19 0 1 0 0
T27 0 20 0 0
T32 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_pin_out_value_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T6 T15 T27 

Cond Coverage for Instance : tb.dut.u_reg.u_pin_out_value_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT6,T15,T27
10CoveredT6,T15,T27
11CoveredT6,T15,T27

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT6,T15,T27
10CoveredT6,T15,T27
11CoveredT6,T15,T27

Branch Coverage for Instance : tb.dut.u_reg.u_pin_out_value_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_pin_out_value_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 4047 0 0
SrcPulseCheck_M 1222336775 4135 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 4047 0 0
T1 786 0 0 0
T2 510 0 0 0
T3 2489 0 0 0
T6 528 20 0 0
T14 430 0 0 0
T15 506 20 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T27 0 20 0 0
T67 0 20 0 0
T80 0 20 0 0
T81 0 20 0 0
T82 0 20 0 0
T83 0 20 0 0
T84 0 60 0 0
T85 0 20 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 4135 0 0
T1 63209 0 0 0
T2 61228 0 0 0
T3 113813 0 0 0
T6 60736 20 0 0
T14 53845 0 0 0
T15 60789 20 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T27 0 20 0 0
T67 0 20 0 0
T80 0 20 0 0
T81 0 20 0 0
T82 0 20 0 0
T83 0 20 0 0
T84 0 60 0 0
T85 0 20 0 0

Line Coverage for Instance : tb.dut.u_reg.u_pin_out_value_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_pin_out_value_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT6,T15,T27
10CoveredT6,T15,T27
11CoveredT6,T15,T27

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT6,T15,T27
10CoveredT6,T15,T27
11CoveredT6,T15,T27

Branch Coverage for Instance : tb.dut.u_reg.u_pin_out_value_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_pin_out_value_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 4114 0 0
SrcPulseCheck_M 7999703 4114 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 4114 0 0
T1 63209 0 0 0
T2 61228 0 0 0
T3 113813 0 0 0
T6 60736 20 0 0
T14 53845 0 0 0
T15 60789 20 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T27 0 20 0 0
T67 0 20 0 0
T80 0 20 0 0
T81 0 20 0 0
T82 0 20 0 0
T83 0 20 0 0
T84 0 60 0 0
T85 0 20 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 4114 0 0
T1 786 0 0 0
T2 510 0 0 0
T3 2489 0 0 0
T6 528 20 0 0
T14 430 0 0 0
T15 506 20 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T27 0 20 0 0
T67 0 20 0 0
T80 0 20 0 0
T81 0 20 0 0
T82 0 20 0 0
T83 0 20 0 0
T84 0 60 0 0
T85 0 20 0 0

Line Coverage for Instance : tb.dut.u_reg.u_key_intr_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T1 T9 T25 

Cond Coverage for Instance : tb.dut.u_reg.u_key_intr_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT1,T9,T25
10CoveredT1,T9,T25
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT1,T9,T25
10CoveredT25,T45,T33
11CoveredT1,T9,T25

Branch Coverage for Instance : tb.dut.u_reg.u_key_intr_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_key_intr_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 868 0 0
SrcPulseCheck_M 1222336775 945 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 868 0 0
T1 786 1 0 0
T2 510 0 0 0
T3 2489 0 0 0
T9 0 1 0 0
T11 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 28 0 0
T45 0 28 0 0
T49 0 1 0 0
T50 0 1 0 0
T51 0 1 0 0
T53 0 1 0 0
T54 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 945 0 0
T1 63209 1 0 0
T2 61228 0 0 0
T3 113813 0 0 0
T9 0 1 0 0
T11 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 28 0 0
T45 0 28 0 0
T49 0 1 0 0
T50 0 1 0 0
T51 0 1 0 0
T53 0 1 0 0
T54 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_key_intr_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_key_intr_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT1,T9,T25
10CoveredT1,T9,T25
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT1,T9,T25
10CoveredT25,T45,T33
11CoveredT1,T9,T25

Branch Coverage for Instance : tb.dut.u_reg.u_key_intr_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_key_intr_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 932 0 0
SrcPulseCheck_M 7999703 932 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 932 0 0
T1 63209 1 0 0
T2 61228 0 0 0
T3 113813 0 0 0
T9 0 1 0 0
T11 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 28 0 0
T45 0 28 0 0
T49 0 1 0 0
T50 0 1 0 0
T51 0 1 0 0
T53 0 1 0 0
T54 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 932 0 0
T1 786 1 0 0
T2 510 0 0 0
T3 2489 0 0 0
T9 0 1 0 0
T11 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 28 0 0
T45 0 28 0 0
T49 0 1 0 0
T50 0 1 0 0
T51 0 1 0 0
T53 0 1 0 0
T54 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T5 T1 T2 

Cond Coverage for Instance : tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T1,T2
10CoveredT5,T1,T2
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T1,T2
10CoveredT25,T45,T33
11CoveredT5,T1,T2

Branch Coverage for Instance : tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1655 0 0
SrcPulseCheck_M 1222336775 1733 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1655 0 0
T1 786 1 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 0 0 0
T8 0 1 0 0
T9 0 1 0 0
T10 0 1 0 0
T11 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T25 0 2 0 0
T32 0 1 0 0
T58 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1733 0 0
T1 63209 1 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 0 0 0
T8 0 1 0 0
T9 0 1 0 0
T10 0 1 0 0
T11 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T25 0 2 0 0
T32 0 1 0 0
T58 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T1,T2
10CoveredT5,T1,T2
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T1,T2
10CoveredT25,T45,T33
11CoveredT5,T1,T2

Branch Coverage for Instance : tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_key_intr_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1723 0 0
SrcPulseCheck_M 7999703 1723 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1723 0 0
T1 63209 1 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 0 0 0
T8 0 1 0 0
T9 0 1 0 0
T10 0 1 0 0
T11 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T25 0 2 0 0
T32 0 1 0 0
T58 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1723 0 0
T1 786 1 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 0 0 0
T8 0 1 0 0
T9 0 1 0 0
T10 0 1 0 0
T11 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T25 0 2 0 0
T32 0 1 0 0
T58 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T28 T29 T25 

Cond Coverage for Instance : tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT28,T29,T25
10CoveredT28,T29,T25
11CoveredT28,T29,T25

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT28,T29,T25
10CoveredT28,T29,T25
11CoveredT28,T29,T25

Branch Coverage for Instance : tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1056 0 0
SrcPulseCheck_M 1222336775 1134 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1056 0 0
T7 2664 0 0 0
T8 505 0 0 0
T25 0 2 0 0
T27 509 0 0 0
T28 619 5 0 0
T29 0 4 0 0
T32 445 0 0 0
T45 0 2 0 0
T49 0 5 0 0
T51 0 4 0 0
T59 0 5 0 0
T60 0 5 0 0
T61 0 5 0 0
T62 0 4 0 0
T63 422 0 0 0
T64 448 0 0 0
T65 795 0 0 0
T66 746 0 0 0
T67 523 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1134 0 0
T7 60434 0 0 0
T8 124038 0 0 0
T25 0 2 0 0
T27 30541 0 0 0
T28 309864 5 0 0
T29 0 4 0 0
T32 109143 0 0 0
T45 0 2 0 0
T49 0 5 0 0
T51 0 4 0 0
T59 0 5 0 0
T60 0 5 0 0
T61 0 5 0 0
T62 0 4 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T65 91398 0 0 0
T66 373637 0 0 0
T67 128352 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT28,T29,T25
10CoveredT28,T29,T25
11CoveredT28,T29,T25

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT28,T29,T25
10CoveredT28,T29,T25
11CoveredT28,T29,T25

Branch Coverage for Instance : tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_auto_block_debounce_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1122 0 0
SrcPulseCheck_M 7999703 1122 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1122 0 0
T7 60434 0 0 0
T8 124038 0 0 0
T25 0 2 0 0
T27 30541 0 0 0
T28 309864 5 0 0
T29 0 4 0 0
T32 109143 0 0 0
T45 0 2 0 0
T49 0 5 0 0
T51 0 4 0 0
T59 0 5 0 0
T60 0 5 0 0
T61 0 5 0 0
T62 0 4 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T65 91398 0 0 0
T66 373637 0 0 0
T67 128352 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1122 0 0
T7 2664 0 0 0
T8 505 0 0 0
T25 0 2 0 0
T27 509 0 0 0
T28 619 5 0 0
T29 0 4 0 0
T32 445 0 0 0
T45 0 2 0 0
T49 0 5 0 0
T51 0 4 0 0
T59 0 5 0 0
T60 0 5 0 0
T61 0 5 0 0
T62 0 4 0 0
T63 422 0 0 0
T64 448 0 0 0
T65 795 0 0 0
T66 746 0 0 0
T67 523 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T28 T29 T25 

Cond Coverage for Instance : tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT28,T29,T25
10CoveredT28,T29,T25
11CoveredT28,T29,T59

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT28,T29,T25
10CoveredT28,T29,T59
11CoveredT28,T29,T25

Branch Coverage for Instance : tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 927 0 0
SrcPulseCheck_M 1222336775 1006 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 927 0 0
T7 2664 0 0 0
T8 505 0 0 0
T25 0 1 0 0
T27 509 0 0 0
T28 619 3 0 0
T29 0 3 0 0
T32 445 0 0 0
T45 0 1 0 0
T49 0 3 0 0
T51 0 2 0 0
T59 0 3 0 0
T60 0 3 0 0
T61 0 3 0 0
T62 0 3 0 0
T63 422 0 0 0
T64 448 0 0 0
T65 795 0 0 0
T66 746 0 0 0
T67 523 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1006 0 0
T7 60434 0 0 0
T8 124038 0 0 0
T25 0 1 0 0
T27 30541 0 0 0
T28 309864 3 0 0
T29 0 3 0 0
T32 109143 0 0 0
T45 0 1 0 0
T49 0 3 0 0
T51 0 2 0 0
T59 0 3 0 0
T60 0 3 0 0
T61 0 3 0 0
T62 0 3 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T65 91398 0 0 0
T66 373637 0 0 0
T67 128352 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT28,T29,T25
10CoveredT28,T29,T25
11CoveredT28,T29,T59

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT28,T29,T25
10CoveredT28,T29,T59
11CoveredT28,T29,T25

Branch Coverage for Instance : tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_auto_block_out_ctl_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 995 0 0
SrcPulseCheck_M 7999703 995 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 995 0 0
T7 60434 0 0 0
T8 124038 0 0 0
T25 0 1 0 0
T27 30541 0 0 0
T28 309864 3 0 0
T29 0 3 0 0
T32 109143 0 0 0
T45 0 1 0 0
T49 0 3 0 0
T51 0 2 0 0
T59 0 3 0 0
T60 0 3 0 0
T61 0 3 0 0
T62 0 3 0 0
T63 207012 0 0 0
T64 56104 0 0 0
T65 91398 0 0 0
T66 373637 0 0 0
T67 128352 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 995 0 0
T7 2664 0 0 0
T8 505 0 0 0
T25 0 1 0 0
T27 509 0 0 0
T28 619 3 0 0
T29 0 3 0 0
T32 445 0 0 0
T45 0 1 0 0
T49 0 3 0 0
T51 0 2 0 0
T59 0 3 0 0
T60 0 3 0 0
T61 0 3 0 0
T62 0 3 0 0
T63 422 0 0 0
T64 448 0 0 0
T65 795 0 0 0
T66 746 0 0 0
T67 523 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T2 T8 T25 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT2,T8,T25
10CoveredT2,T8,T25
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT2,T8,T25
10CoveredT25,T30,T31
11CoveredT2,T8,T25

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 6821 0 0
SrcPulseCheck_M 1222336775 6901 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 6821 0 0
T2 510 1 0 0
T3 2489 0 0 0
T8 0 1 0 0
T13 0 1 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 11 0 0
T28 619 0 0 0
T30 0 82 0 0
T31 0 51 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 0 1 0 0
T63 422 0 0 0
T86 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 6901 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T8 0 1 0 0
T13 0 1 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 11 0 0
T28 309864 0 0 0
T30 0 82 0 0
T31 0 51 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 0 1 0 0
T63 207012 0 0 0
T86 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT2,T8,T25
10CoveredT2,T8,T25
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT2,T8,T25
10CoveredT25,T30,T31
11CoveredT2,T8,T25

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 6892 0 0
SrcPulseCheck_M 7999703 6892 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 6892 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T8 0 1 0 0
T13 0 1 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 11 0 0
T28 309864 0 0 0
T30 0 82 0 0
T31 0 51 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 0 1 0 0
T63 207012 0 0 0
T86 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 6892 0 0
T2 510 1 0 0
T3 2489 0 0 0
T8 0 1 0 0
T13 0 1 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 11 0 0
T28 619 0 0 0
T30 0 82 0 0
T31 0 51 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 0 1 0 0
T63 422 0 0 0
T86 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T30 T31 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 6763 0 0
SrcPulseCheck_M 1222336775 6844 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 6763 0 0
T10 478 0 0 0
T25 7314 11 0 0
T30 0 72 0 0
T31 0 51 0 0
T39 0 70 0 0
T40 0 76 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 63 0 0
T88 0 51 0 0
T89 0 65 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 6844 0 0
T10 117201 0 0 0
T25 837557 11 0 0
T30 0 72 0 0
T31 0 51 0 0
T39 0 70 0 0
T40 0 76 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 63 0 0
T88 0 51 0 0
T89 0 65 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 6832 0 0
SrcPulseCheck_M 7999703 6832 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 6832 0 0
T10 117201 0 0 0
T25 837557 11 0 0
T30 0 72 0 0
T31 0 51 0 0
T39 0 70 0 0
T40 0 76 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 63 0 0
T88 0 51 0 0
T89 0 65 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 6832 0 0
T10 478 0 0 0
T25 7314 11 0 0
T30 0 72 0 0
T31 0 51 0 0
T39 0 70 0 0
T40 0 76 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 63 0 0
T88 0 51 0 0
T89 0 65 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T30 T31 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 6741 0 0
SrcPulseCheck_M 1222336775 6821 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 6741 0 0
T10 478 0 0 0
T25 7314 11 0 0
T30 0 82 0 0
T31 0 51 0 0
T39 0 62 0 0
T40 0 60 0 0
T45 0 11 0 0
T57 0 52 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 77 0 0
T88 0 51 0 0
T89 0 90 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 6821 0 0
T10 117201 0 0 0
T25 837557 11 0 0
T30 0 82 0 0
T31 0 51 0 0
T39 0 62 0 0
T40 0 60 0 0
T45 0 11 0 0
T57 0 52 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 77 0 0
T88 0 51 0 0
T89 0 90 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 6810 0 0
SrcPulseCheck_M 7999703 6810 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 6810 0 0
T10 117201 0 0 0
T25 837557 11 0 0
T30 0 82 0 0
T31 0 51 0 0
T39 0 62 0 0
T40 0 60 0 0
T45 0 11 0 0
T57 0 52 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 77 0 0
T88 0 51 0 0
T89 0 90 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 6810 0 0
T10 478 0 0 0
T25 7314 11 0 0
T30 0 82 0 0
T31 0 51 0 0
T39 0 62 0 0
T40 0 60 0 0
T45 0 11 0 0
T57 0 52 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 77 0 0
T88 0 51 0 0
T89 0 90 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T30 T31 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 6708 0 0
SrcPulseCheck_M 1222336775 6790 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 6708 0 0
T10 478 0 0 0
T25 7314 11 0 0
T30 0 58 0 0
T31 0 51 0 0
T39 0 62 0 0
T40 0 76 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 64 0 0
T88 0 51 0 0
T89 0 65 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 6790 0 0
T10 117201 0 0 0
T25 837557 11 0 0
T30 0 58 0 0
T31 0 51 0 0
T39 0 62 0 0
T40 0 76 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 64 0 0
T88 0 51 0 0
T89 0 65 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 6778 0 0
SrcPulseCheck_M 7999703 6778 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 6778 0 0
T10 117201 0 0 0
T25 837557 11 0 0
T30 0 58 0 0
T31 0 51 0 0
T39 0 62 0 0
T40 0 76 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 64 0 0
T88 0 51 0 0
T89 0 65 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 6778 0 0
T10 478 0 0 0
T25 7314 11 0 0
T30 0 58 0 0
T31 0 51 0 0
T39 0 62 0 0
T40 0 76 0 0
T45 0 11 0 0
T57 0 71 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 64 0 0
T88 0 51 0 0
T89 0 65 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T2 T8 T25 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT2,T8,T25
10CoveredT2,T8,T25
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT2,T8,T25
10CoveredT25,T45,T33
11CoveredT2,T8,T25

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1078 0 0
SrcPulseCheck_M 1222336775 1153 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1078 0 0
T2 510 1 0 0
T3 2489 0 0 0
T8 0 1 0 0
T13 0 1 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 9 0 0
T28 619 0 0 0
T30 0 3 0 0
T31 0 1 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 0 1 0 0
T63 422 0 0 0
T86 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1153 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T8 0 1 0 0
T13 0 1 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 9 0 0
T28 309864 0 0 0
T30 0 3 0 0
T31 0 1 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 0 1 0 0
T63 207012 0 0 0
T86 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT2,T8,T25
10CoveredT2,T8,T25
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT2,T8,T25
10CoveredT25,T45,T33
11CoveredT2,T8,T25

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1142 0 0
SrcPulseCheck_M 7999703 1142 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1142 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T8 0 1 0 0
T13 0 1 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T19 54652 0 0 0
T20 202906 0 0 0
T25 0 9 0 0
T28 309864 0 0 0
T30 0 3 0 0
T31 0 1 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 0 1 0 0
T63 207012 0 0 0
T86 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1142 0 0
T2 510 1 0 0
T3 2489 0 0 0
T8 0 1 0 0
T13 0 1 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T19 496 0 0 0
T20 422 0 0 0
T25 0 9 0 0
T28 619 0 0 0
T30 0 3 0 0
T31 0 1 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 0 1 0 0
T63 422 0 0 0
T86 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T30 T31 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T45,T33
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1084 0 0
SrcPulseCheck_M 1222336775 1162 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1084 0 0
T10 478 0 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1162 0 0
T10 117201 0 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T45,T33
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1148 0 0
SrcPulseCheck_M 7999703 1148 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1148 0 0
T10 117201 0 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1148 0 0
T10 478 0 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T30 T31 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T45,T33
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1052 0 0
SrcPulseCheck_M 1222336775 1129 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1052 0 0
T10 478 0 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1129 0 0
T10 117201 0 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T45,T33
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1118 0 0
SrcPulseCheck_M 7999703 1118 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1118 0 0
T10 117201 0 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1118 0 0
T10 478 0 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T30 T31 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T45,T33
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1065 0 0
SrcPulseCheck_M 1222336775 1142 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1065 0 0
T10 478 0 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1142 0 0
T10 117201 0 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T30,T31
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T30,T31
10CoveredT25,T45,T33
11CoveredT25,T30,T31

Branch Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_pre_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1131 0 0
SrcPulseCheck_M 7999703 1131 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1131 0 0
T10 117201 0 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1131 0 0
T10 478 0 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T39 0 8 0 0
T40 0 10 0 0
T45 0 9 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T87 0 2 0 0
T88 0 1 0 0
T89 0 1 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T5 T2 T32 

Cond Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT5,T2,T32
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT25,T30,T31
11CoveredT5,T2,T32

Branch Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 7342 0 0
SrcPulseCheck_M 1222336775 7422 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 7342 0 0
T1 786 0 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T25 0 11 0 0
T30 0 82 0 0
T32 0 1 0 0
T58 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 7422 0 0
T1 63209 0 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T25 0 11 0 0
T30 0 82 0 0
T32 0 1 0 0
T58 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT5,T2,T32
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT25,T30,T31
11CoveredT5,T2,T32

Branch Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 7410 0 0
SrcPulseCheck_M 7999703 7410 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 7410 0 0
T1 63209 0 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T25 0 11 0 0
T30 0 82 0 0
T32 0 1 0 0
T58 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 7410 0 0
T1 786 0 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T25 0 11 0 0
T30 0 82 0 0
T32 0 1 0 0
T58 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T12 T30 

Cond Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T30,T31
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 7256 0 0
SrcPulseCheck_M 1222336775 7335 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 7256 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 11 0 0
T30 0 72 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 71 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 7335 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 11 0 0
T30 0 72 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 71 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T30,T31
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 7324 0 0
SrcPulseCheck_M 7999703 7324 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 7324 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 11 0 0
T30 0 72 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 71 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 7324 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 11 0 0
T30 0 72 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 71 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T12 T30 

Cond Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T30,T31
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 7274 0 0
SrcPulseCheck_M 1222336775 7354 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 7274 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 11 0 0
T30 0 82 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 52 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 7354 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 11 0 0
T30 0 82 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 52 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T30,T31
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 7343 0 0
SrcPulseCheck_M 7999703 7343 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 7343 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 11 0 0
T30 0 82 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 52 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 7343 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 11 0 0
T30 0 82 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 52 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T12 T30 

Cond Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T30,T31
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 7190 0 0
SrcPulseCheck_M 1222336775 7272 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 7190 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 11 0 0
T30 0 58 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 71 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 7272 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 11 0 0
T30 0 58 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 71 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T30,T31

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T30,T31
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_sel_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 7261 0 0
SrcPulseCheck_M 7999703 7261 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 7261 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 11 0 0
T30 0 58 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 71 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 7261 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 11 0 0
T30 0 58 0 0
T31 0 51 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 11 0 0
T56 0 16 0 0
T57 0 71 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_0_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T5 T2 T32 

Cond Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_0_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT5,T2,T32
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT25,T45,T33
11CoveredT5,T2,T32

Branch Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_0_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_0_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1631 0 0
SrcPulseCheck_M 1222336775 1710 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1631 0 0
T1 786 0 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T25 0 9 0 0
T30 0 3 0 0
T32 0 1 0 0
T58 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1710 0 0
T1 63209 0 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T25 0 9 0 0
T30 0 3 0 0
T32 0 1 0 0
T58 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT5,T2,T32
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT25,T45,T33
11CoveredT5,T2,T32

Branch Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1696 0 0
SrcPulseCheck_M 7999703 1696 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1696 0 0
T1 63209 0 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T25 0 9 0 0
T30 0 3 0 0
T32 0 1 0 0
T58 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1696 0 0
T1 786 0 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T25 0 9 0 0
T30 0 3 0 0
T32 0 1 0 0
T58 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_1_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T12 T30 

Cond Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_1_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_1_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_1_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1538 0 0
SrcPulseCheck_M 1222336775 1614 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1538 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1614 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1604 0 0
SrcPulseCheck_M 7999703 1604 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1604 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1604 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_2_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T12 T30 

Cond Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_2_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_2_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_2_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1582 0 0
SrcPulseCheck_M 1222336775 1661 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1582 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1661 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1651 0 0
SrcPulseCheck_M 7999703 1651 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1651 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1651 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_3_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T12 T30 

Cond Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_3_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_3_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_3_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1601 0 0
SrcPulseCheck_M 1222336775 1671 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1601 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1671 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_det_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1660 0 0
SrcPulseCheck_M 7999703 1660 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1660 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1660 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_0_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T5 T2 T32 

Cond Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_0_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT5,T2,T32
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT25,T45,T33
11CoveredT5,T2,T32

Branch Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_0_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_0_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1591 0 0
SrcPulseCheck_M 1222336775 1667 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1591 0 0
T1 786 0 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T25 0 9 0 0
T30 0 3 0 0
T32 0 1 0 0
T58 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1667 0 0
T1 63209 0 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T25 0 9 0 0
T30 0 3 0 0
T32 0 1 0 0
T58 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT5,T2,T32
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT5,T2,T32
10CoveredT25,T45,T33
11CoveredT5,T2,T32

Branch Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_0_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1655 0 0
SrcPulseCheck_M 7999703 1655 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1655 0 0
T1 63209 0 0 0
T2 61228 1 0 0
T3 113813 0 0 0
T5 52345 1 0 0
T6 60736 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 53845 0 0 0
T15 60789 0 0 0
T16 246183 0 0 0
T17 48901 0 0 0
T18 307160 0 0 0
T25 0 9 0 0
T30 0 3 0 0
T32 0 1 0 0
T58 0 1 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1655 0 0
T1 786 0 0 0
T2 510 1 0 0
T3 2489 0 0 0
T5 436 1 0 0
T6 528 0 0 0
T8 0 1 0 0
T10 0 1 0 0
T12 0 2 0 0
T13 0 1 0 0
T14 430 0 0 0
T15 506 0 0 0
T16 492 0 0 0
T17 407 0 0 0
T18 614 0 0 0
T25 0 9 0 0
T30 0 3 0 0
T32 0 1 0 0
T58 0 1 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_1_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T12 T30 

Cond Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_1_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_1_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_1_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1565 0 0
SrcPulseCheck_M 1222336775 1641 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1565 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1641 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_1_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1629 0 0
SrcPulseCheck_M 7999703 1629 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1629 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1629 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_2_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T12 T30 

Cond Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_2_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_2_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_2_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1552 0 0
SrcPulseCheck_M 1222336775 1627 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1552 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1627 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_2_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1615 0 0
SrcPulseCheck_M 7999703 1615 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1615 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1615 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_3_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T25 T12 T30 

Cond Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_3_cdc.u_src_to_dst_req
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_3_cdc.u_src_to_dst_req
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_3_cdc.u_src_to_dst_req
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
DstPulseCheck_A 7999703 1570 0 0
SrcPulseCheck_M 1222336775 1649 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1570 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1649 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

Line Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
TOTAL77100.00
ALWAYS3133100.00
CONT_ASSIGN4900
CONT_ASSIGN5200
ALWAYS5500
ALWAYS8933100.00
CONT_ASSIGN9711100.00

30 always_ff @(posedge clk_src_i or negedge rst_src_ni) begin 31 1/1 if (!rst_src_ni) begin Tests: T4 T5 T6  32 1/1 src_level <= 1'b0; Tests: T4 T5 T6  33 end else begin 34 1/1 src_level <= src_level ^ src_pulse_i; Tests: T4 T5 T6  35 end 36 end 37 38 39 // source active must come far enough such that the destination domain has time 40 // to create a valid pulse. 41 `ifdef INC_ASSERT 42 //VCS coverage off 43 // pragma coverage off 44 45 // source active flag tracks whether there is an ongoing "toggle" event. 46 // Until this toggle event is accepted by the destination domain (negative edge of 47 // of the pulse output), the source side cannot toggle again. 48 logic effective_rst_n; 49 unreachable assign effective_rst_n = rst_src_ni && dst_pulse_o; 50 51 logic src_active_flag_d, src_active_flag_q; 52 unreachable assign src_active_flag_d = src_pulse_i || src_active_flag_q; 53 54 always_ff @(posedge clk_src_i or negedge effective_rst_n) begin 55 unreachable if (!effective_rst_n) begin 56 unreachable src_active_flag_q <= '0; 57 end else begin 58 unreachable src_active_flag_q <= src_active_flag_d; 59 end 60 end 61 62 //VCS coverage on 63 // pragma coverage on 64 65 `ASSERT(SrcPulseCheck_M, src_pulse_i |-> !src_active_flag_q, clk_src_i, !rst_src_ni) 66 `endif 67 68 ////////////////////////////////////////////////////////// 69 // synchronize level signal to destination clock domain // 70 ////////////////////////////////////////////////////////// 71 logic dst_level; 72 73 prim_flop_2sync #(.Width(1)) prim_flop_2sync ( 74 // source clock domain 75 .d_i (src_level), 76 // destination clock domain 77 .clk_i (clk_dst_i), 78 .rst_ni (rst_dst_ni), 79 .q_o (dst_level) 80 ); 81 82 //////////////////////////////////////// 83 // convert level signal back to pulse // 84 //////////////////////////////////////// 85 logic dst_level_q; 86 87 // delay dst_level by 1 cycle 88 always_ff @(posedge clk_dst_i or negedge rst_dst_ni) begin 89 1/1 if (!rst_dst_ni) begin Tests: T4 T5 T6  90 1/1 dst_level_q <= 1'b0; Tests: T4 T5 T6  91 end else begin 92 1/1 dst_level_q <= dst_level; Tests: T4 T5 T6  93 end 94 end 95 96 // edge detection 97 1/1 assign dst_pulse_o = dst_level_q ^ dst_level; Tests: T4 T5 T6 

Cond Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
TotalCoveredPercent
Conditions88100.00
Logical88100.00
Non-Logical00
Event00

 LINE       34
 EXPRESSION (src_level ^ src_pulse_i)
             ----1----   -----2-----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T12,T30
11CoveredT25,T45,T33

 LINE       97
 EXPRESSION (dst_level_q ^ dst_level)
             -----1-----   ----2----
-1--2-StatusTests
00CoveredT4,T5,T6
01CoveredT25,T12,T30
10CoveredT25,T45,T33
11CoveredT25,T12,T30

Branch Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
Line No.TotalCoveredPercent
Branches 4 4 100.00
IF 31 2 2 100.00
IF 89 2 2 100.00


31 if (!rst_src_ni) begin -1- 32 src_level <= 1'b0; ==> 33 end else begin 34 src_level <= src_level ^ src_pulse_i; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


89 if (!rst_dst_ni) begin -1- 90 dst_level_q <= 1'b0; ==> 91 end else begin 92 dst_level_q <= dst_level; ==>

Branches:
-1-StatusTests
1 Covered T4,T5,T6
0 Covered T4,T5,T6


Assert Coverage for Instance : tb.dut.u_reg.u_com_out_ctl_3_cdc.u_arb.gen_passthru.u_dst_to_src_ack
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
DstPulseCheck_A 1222336775 1636 0 0
SrcPulseCheck_M 7999703 1636 0 0


DstPulseCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1222336775 1636 0 0
T10 117201 0 0 0
T12 0 2 0 0
T25 837557 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 57883 0 0 0
T59 79937 0 0 0
T74 240560 0 0 0
T75 236110 0 0 0
T80 25649 0 0 0
T81 62970 0 0 0
T90 44748 0 0 0
T91 107871 0 0 0

SrcPulseCheck_M
NameAttemptsReal SuccessesFailuresIncomplete
Total 7999703 1636 0 0
T10 478 0 0 0
T12 0 2 0 0
T25 7314 9 0 0
T30 0 3 0 0
T31 0 1 0 0
T41 0 1 0 0
T43 0 2 0 0
T44 0 13 0 0
T45 0 9 0 0
T56 0 16 0 0
T57 0 2 0 0
T58 462 0 0 0
T59 639 0 0 0
T74 495 0 0 0
T75 491 0 0 0
T80 513 0 0 0
T81 524 0 0 0
T90 447 0 0 0
T91 4402 0 0 0

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%