微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > UVM 语法求助

UVM 语法求助

时间:10-02 整理:3721RD 点击:

  1. module test;
  2. import uvm_pkg::*;

  3. uvm_event_pool ep=new("ep");

  4. initial begin
  5. uvm_event e;
  6. e = ep.get("fred");
  7. e = ep.get("george");
  8. uvm_default_table_printer.knobs.reference = 0;
  9. ep.print();

  10. begin
  11. uvm_report_server svr;
  12. svr = _global_reporter.get_report_server();

  13. svr.summarize();

  14. if (svr.get_severity_count(UVM_FATAL) +
  15. svr.get_severity_count(UVM_ERROR) == 0)
  16. $write("** UVM TEST PASSED **\n");
  17. else
  18. $write("! UVM TEST FAILED !\n");
  19. end

  20. end
  21. endmodule

复制代码



疑问1:svr = _global_reporter.get_report_server();
_global_reporter 是啥意思啊,文档里查不到
疑问2:uvm_event e;
e = ep.get("fred");
e = ep.get("george");
啥意思啊
谢谢

这个东东的确文档查不到,只能看源代码。不过源代码很难看懂,我也觉得很烦!

第一个的_global_reporter_估计是一个全局的对象,是一个singliton的可能性很大,这里就是告诉你,你的环境里面的报告机制的句柄吧,我是根据后面的代码推导的,具体含义确实需要看底层函数库了。至于第二个,你可以找找event_pool的相关定义。

这个在VMM里面还真没有见过。

uvm_event e;声明事件(event)
e = ep.get("fred");从event_pool中取出“事件(uvm_event)”,如果事件fred不存在,则新建之。
e = ep.get("george");

这个源代码确实有点难看啊!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top