SystemVerilog中受约束的随机化薛晓军xueislark@hotmail
com中科院自动化所集成中心2014-02-25为何要引入受约束的随机测试方法CRT原因:产生完整的激励集测试设计的功能越来越困难,编写足够的定向测试集变得不可能功能项的关系是大多错误的来源,而这种错误很难通过清单检查方法排查与定向测试环境的不同:受约束测试环境需要通过参考模型、传输函数或其他方法预测结果需要对待测设计的所有关键点(控制路径的每一个分支)都采用随机化测试提高效率,充分利用计算机来节省人工检查和验证时间需随机化的设计配置:器件配置环境配置原始输入封装后的输入数据协议异常延时事务状态错误和违规随机约束的简介随机约束目的:使用随机激励能够节省人力和时间,但是纯粹的随机激励是接近无限空间的,没有实际使用价值
所以限制和规定随机激励的自由度,以产生既随机又让人感兴趣的测试场景随机约束特点:能够表达复杂的场景可以灵活地、动态地控制随机数可以产生组合的或者序列的约束组合的约束举例:以太网中payload等于13-14个字节序列的约束举例:当一个申请之后,应答需要在4-10个周期内给出简单的例子例子说明:随机变量使用rand/randc修饰词使用约束constraint确定变量的范围调用类的randomize函数来执行随机化,如果遇到随机化问题,randomize函数返回0普通随机数rand循环随机数randcclassTransaction;randbit[15:0]addr;randbit[31:0]data;randbit[2:0]port;randbitrequest;randbit[1:0]grant;constraintword_align{addr[1:0]==2'b0;}endclassmoduletop;Transaction