标签:set run 线程 UVM timeout phase 超时
资料来源
(1) UVM实战-张强;
(2) UVM source code;
(3) (10条消息) 阻塞wait(0)等于无限阻塞_Stroller-CSDN博客_java wait(0)
1.phase的超时退出
(1)背景: 验证平台运行时,有可能会出现挂起的情况; 这种情况下,仿真时间一直往前走,但是driver或monitor并没有发出或收到transaction;
(2)方法: 一个测试用例的运行时间可以预计,超过这个时间,通常出错,可以使用UVM的set_timeout方法设置超时时间;
1.1通过uvm_root的set_timeout函数可以设置超时时间;
(1) set_timeout的第一个参数为要设置的时间,第二个参数表示此设置是否可以被其后的其他set_timeout语句覆盖;
注1:默认的超时时间是通过宏UVM_DEFAULT_TIMEOUT来指定的;
注2:在uvm_phase的execute_phase task中,存在fork join_any线程,其中一个线程会判断当前phase是否为run_phase,如果是run_phase,则会delay top.phase_timeout,并退出线程;如果当前phase不是run_phase,则不会delay top.phase_timeout,而是执行wait(0),相当于该线程无限阻塞;
1.2通过仿真命令行进行设置
标签:set,run,线程,UVM,timeout,phase,超时 来源: https://www.cnblogs.com/csjt/p/15866059.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。