gaurav_brcm 0 Report post Posted December 8, 2015 Hi, I want to use in-built UVM RAL cover groups. I tried following steps but did not help : 1) Enable coverage building: Before building register model, I use following : uvm_reg::include_coverage("*",UVM_CVR_ALL); 2) To enable sampling : <_regmodel>.set_coverage(UVM_CVR_ALL); In my regmodel there are two types of cover groups: UVM_CVR_ADDR_MAP in top level register model and UVM_CVR_REG_BITS in individual registers. I was hoping that UVM_CVR_ALL would enable sampling of all. I could see cover groups getting built but are not sampled. Am I missing something ? Please let me know. Thanks. Share this post Link to post Share on other sites
uwes 17 Report post Posted December 8, 2015 hi, to collect coverage you need 1. the reg model needs to declare the coverage models via build_coverage(<mask>) in the ctor of the uvm_reg's 2. in the uvm_reg ctor the coverage model needs to be constructed conditionally via if(has_coverage(..)) <covgroup> = new();... 3. before building the reg model you need to set uvm_reg::include_coverage(...) to say which models you want to be constructed 4. eventually you need to tell the sv compiler to enable coverage collection (now you should see at least empty coverage) and finally you need to wire the events/sample calls and trigger the collection. /uwe Share this post Link to post Share on other sites
gaurav_brcm 0 Report post Posted December 8, 2015 Thanks Uwe, As you pointed out I am seeing empty coverage. In my case, RAL model generator creates protected virtual function of sample. Probably I will need to override or trigger that for correct sampling. Share this post Link to post Share on other sites
vpatel 0 Report post Posted September 27, 2017 Hello, I'm facing a similar issue. I'm seeing an empty coverage dump. I have done 1-4 steps as suggested above..i have also called sample_values() function from base test run phase I'm not sure .. sample called worked or not... Thanks Vivek Share this post Link to post Share on other sites