#C8# UVM中的factory机制 #S8.2.1# factory 机制重载法则

factory机制最伟大的地方在于其具有重载功能。重载并不是factory机制的发明,前面已经介绍过的所有面向对象的语言都支持函数/任务重载,另外,SystemVerilog还额外支持对约束的重载。只是factory机制的重载与这些重载都不一样。

一 问题引出

以8.1.1节的代码清单8-1和代码清单8-2为例,定义好bird与parrot,并在测试用例中调用print_hungry函数。只是与8.1.1节代码不同的地方在于,其将代码清单8-2的build_phase中改为如下语句:

`ifndef MY_CASE0__SV
`define MY_CASE0__SV
class case0_sequence extends uvm_sequence #(my_transaction);
   my_transaction m_trans;

   function  new(string name= "case0_sequence");
      super.new(name);
   endfunction 
   
   virtual task body();
      if(starting_phase != null) 
         starting_phase.raise_objection(this);
      repeat (10) begin
         `uvm_do(m_trans)
      end
      #100;
      if(starting_phase != null) 
   

你可能感兴趣的:(UVM)