Uncovered bin of transition coverage even though state transition happened

Hi All,

i’m getting an issue in transition coverage

issue : while changing from state “CBT_CS_CAP to CBT_VREF_SET” coverage bin has not hit, but while observing the wave form this transition is happened.
please find the following is the code :

CBT_CS_CAP:
begin
if(phy_intf.cacd_rdy == 1 && phy_intf.dfi_cslvl_resp_valid == 1 && phy_intf.dfi_cslvl_resp[1] == 0)
cbt_curr_state = CBT_CS_REQ;
if(phy_intf.cacd_rdy == 1 && phy_intf.dfi_cslvl_resp_valid == 1 && phy_intf.dfi_cslvl_resp[1] == 1)
cbt_curr_state = CBT_VREF_SET;
end

CBT_CS_CAP:
begin
if(phy_intf.cacd_rdy == 1 && phy_intf.dfi_cslvl_resp_valid == 1 && phy_intf.dfi_cslvl_resp[1] == 0)
cbt_curr_state = CBT_CS_REQ;
if(phy_intf.cacd_rdy == 1 && phy_intf.dfi_cslvl_resp_valid == 1 && phy_intf.dfi_cslvl_resp[1] == 1)
cbt_curr_state = CBT_VREF_SET;
end

Thank you All

In reply to k@nth_nethula:

I guess this is code snippet from a case statement of your FSM. Could you please post the definition of your transition coverage.

In reply to chr_sue:

In reply to k@nth_nethula:
I guess this is code snippet from a case statement of your FSM. Could you please post the definition of your transition coverage.

FROM_CBT_CS_REQ : coverpoint {curr_cbt_state} iff (prev_cbt_state == CBT_CS_REQ)
{
bins CBT_CS_REQ_TO_CBT_CS_CAP = ( CBT_CS_REQ => CBT_CS_CAP );
bins CBT_CS_CAP_TO_CBT_CS_REQ = ( CBT_CS_REQ => CBT_CS_CAP => CBT_CS_REQ );
bins CBT_CS_CAP_TO_CBT_VREF_SET = (CBT_CS_REQ => CBT_CS_CAP => CBT_VREF_SET); // unhit
}

In reply to k@nth_nethula:

This might be caused by your iff.
BTW the statement iff (prev_cbt_state == CBT_CS_REQ) is not necessary because of your bin definition.

In reply to chr_sue:

In reply to k@nth_nethula:
This might be caused by your iff.
BTW the statement iff (prev_cbt_state == CBT_CS_REQ) is not necessary because of your bin definition.

thanks for the reply
if i remove that iff (prev_cbt_state == CBT_CS_REQ) still the bin isn’t hit

In reply to k@nth_nethula:

I guess your FSM is in your DUT. In which language is it implemented?
How do you connect your coverage collector to the DUT? Are you using the bind statementand were you checking the wave forms of your phy_intf?