HOW UVM PHASING IS TRIGGERED ? - PHASING UVM ĐƯỢC ĐIỀU CHỈNH NHƯ THẾ NÀO ?

Print

To start a UVM Testbench, the run_test() method has to be called from the static part of the Testbench i.e called from an initial block in the top module of the Testbench.

module axi_top;


  axi_interface intf();                         // interface instance



  axi_slave_dut dut()                            // dut instance

  …

  ...                       

  ...


  initial begin

    uvm_config_db#(virtual axi_interface)::set(uvm_root::get(), "*", "intf", intf); // sets physical interface in uvm config database

    run_test("axi_test");

  end

  

  ...

  ...

  ...


endmodule

Once the run_test() method is called, it constructs the root component of the UVM environment & then triggers the UVM Phasing process. The run_test() method can be passed with a string argument, which in the above code is “axi_test”, to define the default type name which is used as the root node of the Testbench Hierarchy.

In addition, run_test() method also checks for a command line plusarg called UVM_TESTNAME and uses that plusarg string to lookup a factory registered uvm_component to override any default type name.

Hence to execute the “axi_test” using command line plusarg, we’ve to use the following command line:

% +UVM_TESTNAME=axi_test

Bạn Có Đam Mê Với Vi Mạch hay Nhúng      -     Bạn Muốn Trau Dồi Thêm Kĩ Năng

Mong Muốn Có Thêm Cơ Hội Trong Công Việc

Và Trở Thành Một Người Có Giá Trị Hơn

Bạn Chưa Biết Phương Thức Nào Nhanh Chóng Để Đạt Được Chúng

Hãy Để Chúng Tôi Hỗ Trợ Cho Bạn. SEMICON  

 

Last Updated ( Saturday, 22 May 2021 15:00 )