Verbosity 레벨에 대해 더 자세히 알아보자. 아래 코드는 Verbosity 레벨을 설정하는 두 가지 방법을 보여준다. 첫 번째는, 코드 내부에서 set_report_verbosity_level()을 통해 명시적으로 설정해주는 방법이다. 만약 하위 계층에도 Verbosity를 설정해주고 싶다면, set_report_verbosity_level_hier() 함수를 사용하자.
`include "uvm_macros.svh"
import uvm_pkg::*;
//////////////////////////////////////////////////
class driver extends uvm_driver;
`uvm_component_utils(driver)
function new(string path , uvm_component parent);
super.new(path, parent);
endfunction
task run();
`uvm_info("DRV1", "Executed Driver1 Code", UVM_HIGH);
`uvm_info("DRV2", "Executed Driver2 Code", UVM_HIGH);
endtask
endclass
//////////////////////////////////////////////////
class env extends uvm_env;
`uvm_component_utils(env)
function new(string path , uvm_component parent);
super.new(path, parent);
endfunction
task run();
`uvm_info("ENV1", "Executed ENV1 Code", UVM_HIGH);
`uvm_info("ENV2", "Executed ENV2 Code", UVM_HIGH);
endtask
endclass
////////////////////
module tb;
driver drv;
env e;
initial begin
drv = new("DRV", null);
e = new("ENV", null);
e.set_report_verbosity_level(UVM_HIGH);
// e.set_report_verbosity_level_hier(UVM_HIGH);
drv.run();
e.run();
end
endmodule
코드에서 작성하지 않더라도 시뮬레이션 실행 시 커맨드라인에서 설정하는 방법 (전역 설정)도 있다. 이 방법을 사용하면 전역적으로 모든 UVM 컴포넌트에 대한 verbosity level을 설정하기 때문에 필요시, set_report_verbosity_level()로 컴포넌트의 verbosity를 명시적으로 설정해주자.
vcs -sv tb.sv +UVM_VERBOSITY=UVM_HIGH
'이론 공부 > UVM (Universal Verification Methodology)' 카테고리의 다른 글
UVM Reporting Mechanism - UVM Severity (0) | 2025.04.21 |
---|---|
UVM Reporting Mechanism - `uvm_info (1) (0) | 2025.04.21 |
UVM Testbench Structure - Constraint (0) | 2025.04.19 |
UVM Testbench Structure - UVM Factory (0) | 2025.04.19 |
UVM Testbench Structure - 06. Scoreboard (0) | 2025.04.19 |