Jump to content
Sign in to follow this  

Register model coverage

Recommended Posts

Hi all,

What is the proper method method to enable coverage using register model??

Presently I am using uvm_reg::include_coverage("*", UVM_CVR_FIELD_VALS) in my environment class.

But in my coverage report I am not able to see any hits??

What may be the problem??

Thanks and Regards,

Gaurav Gupta

Share this post

Link to post
Share on other sites

Three things must happen

1) A coverage model must be included in the generated model. See your generator options to ensure this is ON.

2) The register model must be built with the coverage model using uvm_reg::include_coverage(). You appear to have done so.

3) Coverage sampling must be turned on using uvm_reg_block::set_coverage().

Share this post

Link to post
Share on other sites

Even i am facing an issue with proper sampling of coverage. I have done all the three things above.

1) Covergroups for each register containing individual coverpoints for each field are present in the model generated by using iregGen

2) I am including uvm_reg::include_coverage("*", UVM_CVR_ALL) in the build_phase of my testcase.

3) I am including void'(<addr_block_instance).set_coverage(UVM_CVR_ALL)) in my body of virtual sequence.

Still i am not getting proper coverage. I am getting correct hits for some of the register read writes while rest are sampled wrongly.

I think the sampling is not happening properly.

I am wondering how to debug this?

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this