【发布时间】:2017-10-21 15:20:09
【问题描述】:
我正在编写一个扩展到我的记分牌的检查器。 为此,我试图用我的检查器类中定义的新任务覆盖 parser_pkt 任务。这个任务被调用到我的 uvm run_phase 中。但是,尽管我为每个任务添加了“虚拟”,但我使用了相同的任务签名,并且我使用 super 作为我的 run_phase,这不起作用。当我将打印添加到我的两个任务时,代码正在运行在记分板类中定义的 parser_pkt 任务。 为什么我做错了?
class my_scoreboard_c extends uvm_component;
`uvm_component_utils(my_scoreboard_c)
extern virtual task run_phase(uvm_phase phase);
extern virtual task parser_pkt(int a);
endclass
task my_scoreboard_c::run_phase(uvm_phase);
parser_pkt(3);
endtask
task my_scoreboard_c::parser_pkt(int a);
endtask
跟随我的跳棋课:
class my_checker_c extends my_scoreboard_c;
`uvm_component_utils(my_checker_c)
task run_phase(uvm_phase);
super.run_phase(phase);
endtask
task parser_pkt(int a);
endtask
endclass
感谢您的帮助
【问题讨论】:
标签: polymorphism virtual uvm