UVM 语法求助
时间:10-02
整理:3721RD
点击:
- module test;
- import uvm_pkg::*;
- uvm_event_pool ep=new("ep");
- initial begin
- uvm_event e;
- e = ep.get("fred");
- e = ep.get("george");
- uvm_default_table_printer.knobs.reference = 0;
- ep.print();
- begin
- uvm_report_server svr;
- svr = _global_reporter.get_report_server();
- svr.summarize();
- if (svr.get_severity_count(UVM_FATAL) +
- svr.get_severity_count(UVM_ERROR) == 0)
- $write("** UVM TEST PASSED **\n");
- else
- $write("! UVM TEST FAILED !\n");
- end
- end
- 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");
这个源代码确实有点难看啊!