Reply To: State transitions as coverage bins

Why OSVVM™? Forums OSVVM State transitions as coverage bins Reply To: State transitions as coverage bins

Jorge Tonfat

Thanks Jim, 

I didn’t know about this problem with links. 

On the other hand, this example helps to verify if all the transitions have ocurred but does not keep track of what condition trigger this transition. ( In the example, there is only one signal (TMS) that triggers the transition.)

How can I implement the functional coverage keeping track of which condition triggered my transition?

I was thinking in the following:

1. Define a condition type as an enumerate type, and put here all the possible conditions that triggers a transition in the FSM. For example: 

type conditions is ( C_rst, C_enable, …. etc.

2. Create a variable of this condition type in the coverage collector process. And update this variable with the status of the UUT (as it is done with the state variable)

3. Add this condition var as a third parameter to the addCross function. Ex:

cp_FSM.AddCross(GenBin(state_type’pos(S_rst)), GenBin(state_type’pos(S_idle),GenBin(condition_type’pos(C_rst)));

One restriction of this implementation is that only one condition can be register per clock cycle.

What is your advice? 

Many thanks,