-
Notifications
You must be signed in to change notification settings - Fork 1
/
Code_14 UVM Construction_phase.sv
77 lines (53 loc) · 2 KB
/
Code_14 UVM Construction_phase.sv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//now understand the typical format of how you will be overriding the phases which do not consume time.
//as well as the phases which consumer time.So all the phases which consume a time will be implemented with the task.
`include "uvm_macros.svh"
import uvm_pkg::*;
class test extends uvm_test;
`uvm_component_utils(test)
function new(string path = "test", uvm_component parent = null);
super.new(path, parent);
endfunction
//Construction Phases
function void build_phase(uvm_phase phase);
super.build_phase(phase);
`uvm_info("test","Build Phase Executed", UVM_NONE);
endfunction
function void connect_phase(uvm_phase phase);
super.connect_phase(phase);
`uvm_info("test","Connect Phase Executed", UVM_NONE);
endfunction
function void end_of_elaboration_phase(uvm_phase phase);
super.end_of_elaboration_phase(phase);
`uvm_info("test","End of Elaboration Phase Executed", UVM_NONE);
endfunction
function void start_of_simulation_phase(uvm_phase phase);
super.start_of_simulation_phase(phase);
`uvm_info("test","Start of Simulation Phase Executed", UVM_NONE);
endfunction
//Main Phases
task run_phase(uvm_phase phase);
`uvm_info("test", "Run Phase", UVM_NONE);
endtask
//Cleanup Phases
function void extract_phase(uvm_phase phase);
super.extract_phase(phase);
`uvm_info("test", "Extract Phase", UVM_NONE);
endfunction
function void check_phase(uvm_phase phase);
super.check_phase(phase);
`uvm_info("test", "Check Phase", UVM_NONE);
endfunction
function void report_phase(uvm_phase phase);
super.report_phase(phase);
`uvm_info("test", "Report Phase", UVM_NONE);
endfunction
function void final_phase(uvm_phase phase);
super.final_phase(phase);
`uvm_info("test", "Final Phase", UVM_NONE);
endfunction
endclass
module tb;
initial begin
run_test("test");
end
endmodule