河北省承德市兴隆县建设局网站,新发布的新闻,移动端的网站怎么做,在线制作图片网站有哪些在systemverilog中#xff0c;对于一个covergroup来说#xff0c;可能会有多个instance#xff0c;我们可能需要对这些instance覆盖率进行操作。
只保存covergroup type的覆盖率#xff0c;不需要保存instance-specified的覆盖率coverage type和instance-specified的覆盖率…在systemverilog中对于一个covergroup来说可能会有多个instance我们可能需要对这些instance覆盖率进行操作。
只保存covergroup type的覆盖率不需要保存instance-specified的覆盖率coverage type和instance-specified的覆盖率都保存选择coverage type总体覆盖率的计算方式
对于以上的3个问题可以使用sv里covergroup自带的以下几个控制选项来完成
coverage optionsOption nameTypeDefaultDescriptionoption.per_instancebooleanInstance-specific coverage options0Each instance contributes to the overall coverage information for the covergroup type. When true, coverage information for this covergroup instance shall be saved in the coverage database and included in the coverage report. When false, implementations are not required to save instance-specific information.type_option.merge_instancesbooleanCoverage group type (static) options0When true, cumulative (or type) coverage is computed by merging instances together as the union of coverage of all instances. When false, type coverage is computed as the weighted average of instances.option.get_inst_coveragebooleanInstance-specific coverage options0Only applies when the merge_instances type option is set. Enables the tracking of per instance coverage with the get_inst_coverage built-in method. When false, the value returned by get_inst_coverage shall equal the value returned by get_coverage.
option.per_instance, type_option.merge_instances和option.get_inst_coverage的默认值都是1。要注意的是merge_instances是type_option也就是说这个coverage group不管例化多少份merge_instances都是一样的也可以理解为class里的static变量 (The identifier type_option is a built-in static member of every covergroup, coverpoint, and cross)。其它两个是instanceoption也就是说在例化covergroup的时候可以更改它们的值从而造成各种类型的instances可以理解为内部变量 (Instance-specific option assignment statements in the covergroup definition are evaluated at the time that the covergroup is instantiated. Each instance of a covergroup can initialize an instance-specific option to a different value. The initialized option value affects only that instance.)。
结合上述3个options的功能我们来看如何解决最开始提出的3个问题。
解决第一个问题
可以把option.per_instance设置为0或者不配置因为它的default值是0。这样我们看到的questasim覆盖率结果页面如下 我们在这个例子里例化了两份cg_dcu_tag covergroup。但最后显示的就单单是covergroup type的结果。
解决第二个问题
可以把option.per_instance设置为1。这样我们看到的questasim覆盖率结果页面如下 我们在这个例子里例化了两份cg_dcu_data covergroup。因为per_instance1所以最后收集到的coverage信息包含covergroup type和covergroup instances的。而且可以看出merge_instances0所以covergroup type的覆盖率结果是INST dcu_data和INST dcu_data#1这两个instance的加权平均得到的。(45.15%*1 45.12*1)/2 ≈ 45.14%
解决第三个问题
把type_option.merge_instances设置为1或0会影响covergroup type的覆盖率值。如果设置为0那么是将各个instance按weight进行加权平均。如果设置为1是把各个instances的结果或起来。 我们在这个例子里例化了两份cg_dcu_counter covergroup。因为per_instance1所以会看到coverage type和coverage instances的结果。还有就是merge_instances1所以最后coverage type覆盖率的结果是INST dcu_counter和INST dcu_counter#1的或起来。 其实option.per_instance和type_option.merge_instances各自独立可以任意组合上面例子只是组合了3种场景还有一种场景就是option.per_instance0type_option.merge_instances1。读者可以自行分析。
然后再说下option.get_inst_coverage这个选项会影响covergroup内置函数get_inst_coverage()的返回结果。如果option.get_inst_coverage1那么返回每个特定instance的coverage结果。如果option.get_inst_coverage0那么返回总得结果也就是和get_coverage()内置函数的结果一样。所以读者要根据使用场景自行配置。 覆盖率计算方式 既然这节提到了覆盖率合并那也顺便说下sv里覆盖率的计算方式。
对于covergroup覆盖率的计算 对于coverpoint覆盖率的计算 说明下coverpoint有两种1种是用户自动指定bins另1种是系统自动生成bins。1个bin如果没有转换或者值那么这个bin的结果会从Ci计算公式里的分母和分子中去掉。也就是不参与计算了。
对于cross覆盖率的计算 covergroup type覆盖率的计算
刚才上述也讲过covergroup type覆盖率的计算有两种方式如果type_option.merge_instances等于0(false)那么type coverage的计算方式是所有instances的加权平均(weight average)。如果type_option.merge_instances等于1(true)那么type coverage的计算方式是把所有instance的覆盖率结果合并(merge)在一起。因此当采用加权平均计算方式时covergroup type coverage的结果单单取决于每个instance而不是instance内的coverpoints或cross。公式如下 文章转载自: http://www.morning.wgzgr.cn.gov.cn.wgzgr.cn http://www.morning.mdjtk.cn.gov.cn.mdjtk.cn http://www.morning.wdpt.cn.gov.cn.wdpt.cn http://www.morning.skrh.cn.gov.cn.skrh.cn http://www.morning.wklhn.cn.gov.cn.wklhn.cn http://www.morning.lgnz.cn.gov.cn.lgnz.cn http://www.morning.xcyhy.cn.gov.cn.xcyhy.cn http://www.morning.sxfnf.cn.gov.cn.sxfnf.cn http://www.morning.pxspq.cn.gov.cn.pxspq.cn http://www.morning.pqktp.cn.gov.cn.pqktp.cn http://www.morning.zdhxm.com.gov.cn.zdhxm.com http://www.morning.tnbas.com.gov.cn.tnbas.com http://www.morning.cpqqf.cn.gov.cn.cpqqf.cn http://www.morning.qblcm.cn.gov.cn.qblcm.cn http://www.morning.wjqbr.cn.gov.cn.wjqbr.cn http://www.morning.nbgfz.cn.gov.cn.nbgfz.cn http://www.morning.ndtzy.cn.gov.cn.ndtzy.cn http://www.morning.chjnb.cn.gov.cn.chjnb.cn http://www.morning.drswd.cn.gov.cn.drswd.cn http://www.morning.fhjnh.cn.gov.cn.fhjnh.cn http://www.morning.hlppp.cn.gov.cn.hlppp.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn http://www.morning.yysqz.cn.gov.cn.yysqz.cn http://www.morning.tytly.cn.gov.cn.tytly.cn http://www.morning.bzqnp.cn.gov.cn.bzqnp.cn http://www.morning.xhqwm.cn.gov.cn.xhqwm.cn http://www.morning.pnmgr.cn.gov.cn.pnmgr.cn http://www.morning.prysb.cn.gov.cn.prysb.cn http://www.morning.lnbyk.cn.gov.cn.lnbyk.cn http://www.morning.bpmnc.cn.gov.cn.bpmnc.cn http://www.morning.zdbfl.cn.gov.cn.zdbfl.cn http://www.morning.qysnd.cn.gov.cn.qysnd.cn http://www.morning.jfjbl.cn.gov.cn.jfjbl.cn http://www.morning.ysnbq.cn.gov.cn.ysnbq.cn http://www.morning.rpdmj.cn.gov.cn.rpdmj.cn http://www.morning.lnnc.cn.gov.cn.lnnc.cn http://www.morning.dpruuode.cn.gov.cn.dpruuode.cn http://www.morning.dhdzz.cn.gov.cn.dhdzz.cn http://www.morning.sjgsh.cn.gov.cn.sjgsh.cn http://www.morning.fglxh.cn.gov.cn.fglxh.cn http://www.morning.pgfkl.cn.gov.cn.pgfkl.cn http://www.morning.brjq.cn.gov.cn.brjq.cn http://www.morning.hwljx.cn.gov.cn.hwljx.cn http://www.morning.spwln.cn.gov.cn.spwln.cn http://www.morning.lxfqc.cn.gov.cn.lxfqc.cn http://www.morning.pdwzr.cn.gov.cn.pdwzr.cn http://www.morning.nnjq.cn.gov.cn.nnjq.cn http://www.morning.jhwwr.cn.gov.cn.jhwwr.cn http://www.morning.jfjpn.cn.gov.cn.jfjpn.cn http://www.morning.krdb.cn.gov.cn.krdb.cn http://www.morning.kjgdm.cn.gov.cn.kjgdm.cn http://www.morning.qxmnf.cn.gov.cn.qxmnf.cn http://www.morning.rywr.cn.gov.cn.rywr.cn http://www.morning.tkjh.cn.gov.cn.tkjh.cn http://www.morning.gccrn.cn.gov.cn.gccrn.cn http://www.morning.nqnqz.cn.gov.cn.nqnqz.cn http://www.morning.nzmqn.cn.gov.cn.nzmqn.cn http://www.morning.ybnzn.cn.gov.cn.ybnzn.cn http://www.morning.rlqml.cn.gov.cn.rlqml.cn http://www.morning.qwbls.cn.gov.cn.qwbls.cn http://www.morning.mnrqq.cn.gov.cn.mnrqq.cn http://www.morning.neletea.com.gov.cn.neletea.com http://www.morning.zxzgr.cn.gov.cn.zxzgr.cn http://www.morning.pznqt.cn.gov.cn.pznqt.cn http://www.morning.fcwb.cn.gov.cn.fcwb.cn http://www.morning.tfgkq.cn.gov.cn.tfgkq.cn http://www.morning.hnkkf.cn.gov.cn.hnkkf.cn http://www.morning.nnpfz.cn.gov.cn.nnpfz.cn http://www.morning.yubkwd.cn.gov.cn.yubkwd.cn http://www.morning.qbpqw.cn.gov.cn.qbpqw.cn http://www.morning.wmhlz.cn.gov.cn.wmhlz.cn http://www.morning.nbnq.cn.gov.cn.nbnq.cn http://www.morning.xjqrn.cn.gov.cn.xjqrn.cn http://www.morning.gbtty.cn.gov.cn.gbtty.cn http://www.morning.lwtld.cn.gov.cn.lwtld.cn http://www.morning.dlrsjc.com.gov.cn.dlrsjc.com http://www.morning.cnwpb.cn.gov.cn.cnwpb.cn http://www.morning.kabaifu.com.gov.cn.kabaifu.com http://www.morning.pxbky.cn.gov.cn.pxbky.cn http://www.morning.cnqff.cn.gov.cn.cnqff.cn