对于 待测设计(Design Under Test, DUT) 来说,必须产生足够多的测试激励集进行测试,因此对于激励的产生就很重要,这涉及到了随机化的概念。
1. 介绍
对于DUT的测试激励,主要有两种方法:定向测试和受约束的随机测试(Constraint Random Test, CRT)。
定向测试能够找到你所认为的可能的bug,CRT可以找到你都无法确定的bug
● 定向测试:人工给定测试激励,人工检查输出结果,并将结果保存至标准日志文件,日后与仿真结果相比较判断仿真正确性。
定向测试能够找到你所认为的可能的bug,
● CRT:产生DUT的测试代码or使用伪随机数发生器,产生激励,再通过参考模型、传输函数等方法预测输出结果,无需手动检查结果。
SV中CRT约束可以设定地非常灵活,无论是变量、数组还是事务均可以设计复杂约束,让SV自动解得随机结果。
事务在计算机中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit),来自事务 - 百度百科
2. 分布函数
一种产生随机数最简单的方法就是调用随机数函数,每次调用都根据所在分布返回一个数
● $random(int seed)
: