|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 bosome 于 2012-12-4 11:58 编辑
求问:在uvm验证平台中,单独处理功能覆盖率,也就是说我将功能覆盖率写入到了一个叫cov.sv的文件中,代码如下
- class mc_cover extends uvm_component;
- virtual interface drv_if vif;
- `uvm_component_utils(mc_cover)
- function new(string name, uvm_component parent);
- super.new(name,parent);
- endfunction
- function build_phase(uvm_phase phase);
- super.build_phase(phase);
- if(!uvm_config_db#(virtual drv_if)::get(this , "","drv_if",vif)) ///from the top
- `uvm_fatal("NOVIF",{"Error in getting interface",get_full_name(),".vif"});
- endfunction
- virtual task run_phase(uvm_phase phase);
- fork
- collect_wr_coverage();
- //collect_rd_coverage();
- wr.sample();
- join
- endtask
- covergroup collect_wr_coverage @(posedge mc_top.vif.clock);// @($root.mc_top.dut.vif.cs_event);
- option.per_instance=1;
- type_option.goal=100;
- coverpoint mc_top.vif.mosi {bins si[]={[0:1]}; }
- coverpoint mc_top.vif.chip_select_bar{bins cs[]={[0:1]};}
- //coverpoint $root.mc_top.dut.vif.miso;
- endgroup
- collect_wr_coverage = new;
- endclass
复制代码
现在的问题是:(1)是否需要new 类mc_cover。
(2)covergroup的new是否正确,编译结果显示该语句有语法错误。
请高手指点 |
|