验证笔记

来源:互联网 发布:windows nt 5.x 编辑:程序博客网 时间:2024/06/16 14:10
在Makefile里加入define需在一行完成。
 
在静态方法里不能使用this的变量。
 
monitor里只允许有一个callback,原因是由于appened时的检查,只允许一次callbck(当前的基类或者扩展类)。并且不会报错。
 
如果需要在一个monitor里callback两个地方,需要重载append函数。在monitor里只能有一个callback,但是在例化出多个,到不同的scoreboard里。
 

两个过程化语句可以用来提前中止一个生成式:breakreturn。这两个语句可以出现在任意代码块中;它们的不同之处在于它们退出的范围不同。 

break语句中止序列的产生。当在一个生成式代码块中执行break语句的时候,它会强制跳出randsequence块。return语句中止生成当前的生成式。当在一个生成式代码块中执行一个return语句的时候,会中止当前的生成式。序列产生会继续紧跟在被中止的生成式之后的下一个生成式。

 wait(event_var.triggered);
Similar to @(event_var), but will also be satisfied by events which happened earlier during the same simulation time
Can be used to eliminate potential race condition
 
program static
 
force static
semaphore get put try_get              bucket
mailbox get put try_get peek try_peek   message
 
禁止在我们的验证环境中使用$random来产生随机数,大家要统一使用$urandom();
$random不是SV的系统函数,在产生随机数时无法使用仿真环境传递的种子,而是采用默认的UNIX随机种子,可能造成系统问题无法复现:也就是说random产生的随机数在基于SV的仿真系统下是不可控的。
SV中除了随机整个类,还提供了很丰富的In-line randomize,除了std::randomize之外,还有randcase, randsequence等等。

 

比如,大多数情况下,将randcasestd::randomize联合使用,即可方便的对某一变量进行随机化,如下例:

上述代码的执行结果是,vr_bei位于[0:8]区间的概率为0.8,位于[9:15]且不等于b的概率为0.2

perl里面glob使用时,需要使用绝对路径,rmdir之类无法识别相对路径unlink glob “/obsolute_dir/*"

 

 

原创粉丝点击