그냥 간단한 노트 겸 저장, 기본적으로는 run_phase 에서 메인 코드가 도는데 희안하게 uvm_sequence 에서는
task body();
여기서 메인 코드가 수행됨
https://www.eunchan.kim/research/uvm/uvm-flow.html
run_phase 는 실제 동작이 구현되는 부분이니 이 코드가 들어갈만한 곳은 uvm_driver나 uvm_monitor, uvm_sequence
정도 일것 같습니다.
각 블럭은 다음 글에서 설명드릴텐데, uvm_driver 나 uvm_monitor 는
run_phase
에서 실행되는 게 맞으나,
uvm_sequence는
body
task에서 메인 코드가 실행됩니다.
예제를 보면,
/* "body()" is a task that is invoked by either a sequencer associated with
the sequence's start method or a sequence with a null sequencer.
*/
task body;
`uvm_info("TEST_SEQ", "Inside body task!", UVM_HIGH)
super.body(); // Call base sequence body for the reset sequence
`uvm_info("TEST_SEQ", "Starting AXI transaction sequence...", UVM_HIGH)
// Address 1 Write and Read
item = my_sequence_item::type_id::create("item");
start_item(item);
item.read = 0; // Write operation
item.addr = 32'h0001;
item.data = 32'hAAAA;
finish_item(item);
`uvm_info("TEST_SEQ", $sformatf("Write to Addr=%0h Data=%0h", item.addr, item.data), UVM_HIGH)
endtask: body
'IT > ASIC | FPGA' 카테고리의 다른 글
UVM Configuration Database (uvm_config_db) 사용 예제 (0) | 2024.05.29 |
---|---|
UVM Error 메시지 출력 - report_phase() in uvm_test (0) | 2024.05.29 |
UVM Factory Pattern - 무슨 디자인 패턴까지.. (0) | 2024.05.29 |
UVM - Interface 에서 Drive로 Sequence item으로 데이터 받기 (0) | 2024.05.28 |
Tessent shell - 이건 머지? SIEMENS DFT (0) | 2024.05.24 |