做网站的报价方案,渭南建网站,购物帮做特惠的网站,微商营销技巧1. 问题描述
在某项目调试过程中#xff0c;发现通过tc_base.sv中new函数里的set_report_max_quit_count()设置最大error数量不生效#xff0c;uvm_error数量仍旧是达到10个#xff08;默认#xff09;就会退出仿真。
2. 设置uvm_error到达一定数量结束仿真的方式
由白皮…1. 问题描述
在某项目调试过程中发现通过tc_base.sv中new函数里的set_report_max_quit_count()设置最大error数量不生效uvm_error数量仍旧是达到10个默认就会退出仿真。
2. 设置uvm_error到达一定数量结束仿真的方式
由白皮书可知设置uvm_error到达一定数量结束仿真的方式有两种
1通过set_report_max_quit_count(num)函数设置。环境的tc_base.sv时在new函数里添加了该函数如下图 2通过命令行UVM_MAX_QUIT_COUNTnum设置。环境在makefile里设置num10如下图 目前生效的是方式2当需要修改此数量时发现通过修改tc_base.sv里new函数中的set_report_max_quit_count()不生效。
3. 原因分析
tc_base.sv里new函数在调用完set_report_max_quit_count(100)后在build_phase阶段uvm_root会调用m_do_max_quit_settings()函数如下图 该函数内部会拿到命令行设置的UVM_MAX_QUIT_COUNT10如下图。从而导致前面tc在new函数里设置的100被覆盖。 4. 结论
该问题本质上是两种方式设置的优先级问题目前的环境中默认方式2优先级更高优点是方式2可以不重新编译就可以修改MAX_QUIT_COUNT