不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我
欢迎大家加入2022届数字IC交流群,QQ群号 1060380138
覆盖率的性能影响
采样方法
SVA包含了一些定义何时开始收集覆盖率以及合适停止收集覆盖率的方法。这些方法可以和covergroup关联,并且在程序中调用·。
上图的代码块中,具有两个覆盖点“pc”和“gc”的覆盖组“rg”。“pc”覆盖所有未决请求,“gc”覆盖发出这些请求时总线上的主机数量。“my_rg”是这个covergroup的实例。
我们的目的是收集req有效的时候,总线中主机的数量,而在授予权限,也就是gnt有效时,并不关心主机数量。gnt有效时的覆盖率收集是另一个覆盖组的任务。
示例的代码中包含了简单的控制,但能够带来很好的性能优化。恰当的使用可以加快仿真速度和log信息的简洁度。
最后是sample方法,它通过always@(posedge clk)获取了采样时机,从而触发覆盖组的采样。也就是说,我们也可以根据覆盖组的需要,只在恰当的时候进行采样。请注意,my_rg.sample() 将在 my_rg.start() 执行时启动,并在 my_rg.stop() 执行时停止,从而帮助我们优化覆盖率的收集
请注意,预定义的“sample()”方法不能接受任何参数。但是如果你确实想用 sample() 方法传递参数怎么办?敬请期待。
END