uvm 随机方法 功能覆盖率
有fpga相关的岗位,你有兴趣吗?
什么情况?可以介绍一下内容不?
先用伪随机狂轰滥炸一遍,剩余的可能就要写焦点激励逐一歼灭了。
工作地点 西安 世界500强公司
什么公司,主要做什么产品,待遇怎么样
先用伪随机狂轰滥炸一遍,剩余的可能就要写焦点激励逐一歼灭了。
我现在的做法是将模块内部的寄存器按照功能列举出来,采用交叉覆盖率的方式模块的功能进行覆盖率统计。
比如一个寄存器有十种配置可能,另一个寄存器有60种配置的可能,这两个寄存器的每种组合都是很重要的。
方法是将寄存器的值读取出来,保存在两个变量中,然后对这两个变量进行统计即可。一共有10*60=600功能组合,当然功能组合是同时出现的。
在统计功能覆盖点的时候,有些功能点出现的概率很大,有些非常小,我只是用的randc,没有做任何处理。
sv上说可以用solve before 改变解的分布。除了这个还有其它方法吗?
今天采用Questa进行了 模块的功能覆盖率统计。总共有60*60*24 一共86400个功能覆盖点。数据域一共分为三个。仿真了6个小时,功能覆盖率锁定在99.85%。查看了下覆盖率 report,发现有些功能点出现了上千次,有些功能点只出现了几次。尤其是在等最后的几个没有覆盖到的功能点时,很耗费时间。
在刚开始仿真时,功能覆盖率呈现直线上升的趋势,随之时间的推移,功能覆盖率上升的趋势变得有些缓慢,越到最后,变化的就非常的慢。还好达到了100%的覆盖率。下次决定在给激励时改变一下随机种子试试。
看看看看
请问大神们,功能覆盖率模型到底是个什么模型?由什么组成?是如何建立的?
再来学学
先随机撒网,再根据覆盖报告补刀