[4] UVM

UVM base class & phase mechanism

OPPRU 2023. 10. 9. 16:17

<UVM base class와 상속 구조>

- 기본적으로 uvm_object class로부터 상속을 받고, 구조에 따라 크게 4가지로 분류한다.

1) stimulus, sequence 관련 class

2) hierarchy, component 관련 class

- uvm_component class로 부터 상속받는 class 들로 구성되어 있고, UVM phasing concept 순서를 따른다.

- UVM phase concept 은 간략히 build_phase -> run_phase -> clean-up phase 로 나뉜다. 제세한 설명은 다음 절을 참고한다.

3) dynamic configuration 관련 class

4) register model 관련 class

 

 

<UVM Phase mechansim>

- uvm_component class로 부터 상속받는 class들이 phase mechansim에 의해 실행되는 순서를 나타낸 그림이다.

- 주의할 것은 build_phase()는 top-down 방식, connect_phase()는 bottom-up 방식.

 

 

<UVM Simulation 이 실행되는 순서>

1. testbench 에서 run_test() 실행.

run_test() 는 uvm_root singleton object가 sim command line으로 부터 "+UVM_TESTNAME=★" 로 준 +UVM_TESTNAME으로 부터 test (class) name을 추출하여 실행하도록 한다.

2. 실행되는 test class 의 build_phase()에서 uvm_config_db::set()을 통해 default_sequence 로 지정한 test sequence class 를 실행.