受约束的随机化

受约束的随机化

ID:42172908

大小:525.36 KB

页数:33页

时间:2019-09-09

受约束的随机化_第1页
受约束的随机化_第2页
受约束的随机化_第3页
受约束的随机化_第4页
受约束的随机化_第5页
资源描述:

《受约束的随机化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SystemVerilog中受约束的随机化薛晓军xueislark@hotmail.com中科院自动化所集成中心2014-02-25为何要引入受约束的随机测试方法CRT原因:产生完整的激励集测试设计的功能越来越困难,编写足够的定向测试集变得不可能功能项的关系是大多错误的来源,而这种错误很难通过清单检查方法排查与定向测试环境的不同:受约束测试环境需要通过参考模型、传输函数或其他方法预测结果需要对待测设计的所有关键点(控制路径的每一个分支)都采用随机化测试提高效率,充分利用计算机来节省人工检查和验证时间需随机化的设计配置:器件配置环境配置原始输

2、入封装后的输入数据协议异常延时事务状态错误和违规随机约束的简介随机约束目的:使用随机激励能够节省人力和时间,但是纯粹的随机激励是接近无限空间的,没有实际使用价值。所以限制和规定随机激励的自由度,以产生既随机又让人感兴趣的测试场景随机约束特点:能够表达复杂的场景可以灵活地、动态地控制随机数可以产生组合的或者序列的约束组合的约束举例:以太网中payload等于13-14个字节序列的约束举例:当一个申请之后,应答需要在4-10个周期内给出简单的例子例子说明:随机变量使用rand/randc修饰词使用约束constraint确定变量的范围调用类的r

3、andomize函数来执行随机化,如果遇到随机化问题,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;Transactiontr=new;initialbegin:random_repeat#20repeat(

4、32)beginif(tr.randomize()==1)$display("addr=%16hdata=%h",tr.addr,tr.data);else$display("Randomizationfailed.");endend:random_repeatendmodulerandcbit[1:0]y;初始序列:0321下一个序列:2130下一个序列:2013…随机变量约束设置的方式普通方式:typedefenum{low,mid,high}AddrType;classMyBusextendsBus;rand

5、AddrTypeatype;constraintaddr_range{(atype==low)->addrinside{[0:15]};(atype==mid)->addrinside{[16:127]};(atype==high)->addrinside{[128:255]};}endclasstaskexercise_bus(MyBusbus);intres;//EXAMPLE1:restricttolowaddressesres=bus.randomize()with{atype==low;};//EXAMPLE2:restrictt

6、oaddressbetween10and20res=bus.randomize()with{10<=addr&&addr<=20;};//EXAMPLE3:restrictdatavaluestopowers-of-twores=bus.randomize()with{data&(data-1)==0;};endtask内嵌方式:这种定义方法的好处:每个不同测试定义的约束的不同版本以产生不同的激励坏处:约束过于分散,有潜在风险//packet.svtypedefenum{low,mid,high}AddrType;classMyBusext

7、endsBus;randAddrTypeatype;constraintaddr_rangeendclass//test.svprogrameautomatictest;include“packet.sv”constraintMyBus::addr_range{(atype==low)->addrinside{[0:15]};(atype==mid)->addrinside{[16:127]};(atype==high)->addrinside{[128:255]};}…endprograme随机约束块的格式constraint_decla

8、ration::=[static]constraintconstraint_identifierconstraint_blockconstraint_block::={{cons

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。