-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapb_item.sv
More file actions
68 lines (56 loc) · 2.74 KB
/
Copy pathapb_item.sv
File metadata and controls
68 lines (56 loc) · 2.74 KB
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
class apb_item extends uvm_sequence_item;
//======================
// APB Signals
//======================
rand logic [`ADDR_WIDTH-1:0] PADDR;
logic PSELx;
logic PENABLE;
logic PWRITE;
rand logic [`DATA_WIDTH-1:0] PWDATA;
logic [`DATA_WIDTH/8-1:0] PSTRB;
logic PREADY;
logic [`DATA_WIDTH-1:0] PRDATA;
logic PSLVERR;
//======================
// UVM Object Utilities
//======================
`uvm_object_utils_begin(apb_item)
`uvm_field_int(PADDR, UVM_HEX+UVM_ALL_ON);
`uvm_field_int(PSELx, UVM_HEX+UVM_ALL_ON);
`uvm_field_int(PENABLE, UVM_HEX+UVM_ALL_ON);
`uvm_field_int(PWRITE, UVM_HEX+UVM_ALL_ON);
`uvm_field_int(PWDATA, UVM_HEX+UVM_ALL_ON);
`uvm_field_int(PSTRB, UVM_HEX+UVM_ALL_ON);
`uvm_field_int(PREADY, UVM_HEX+UVM_ALL_ON);
`uvm_field_int(PRDATA, UVM_HEX+UVM_ALL_ON);
`uvm_field_int(PSLVERR, UVM_HEX+UVM_ALL_ON);
`uvm_object_utils_end
//======================
// Constructor
//======================
function new(string name = "apb_item");
super.new(name);
endfunction
//======================
// Print Function
//======================
function void print_apb_mst(string tag = "APB_PACKET", int verbosity = UVM_MEDIUM);
`uvm_info(tag, "--------------------------------------------", verbosity)
`uvm_info(tag, " APB MASTER PACKET ", verbosity)
`uvm_info(tag, "--------------------------------------------", verbosity)
`uvm_info(tag, $sformatf("PADDR : 0x%0h", PADDR), verbosity)
`uvm_info(tag, $sformatf("PSELx : 0x%0h", PSELx), verbosity)
`uvm_info(tag, $sformatf("PENABLE : %0d", PENABLE), verbosity)
`uvm_info(tag, $sformatf("PWRITE : %0d", PWRITE), verbosity)
`uvm_info(tag, $sformatf("PWDATA : 0x%0h", PWDATA), verbosity)
`uvm_info(tag, $sformatf("PSTRB : 0b%0b", PSTRB), verbosity)
endfunction
function void print_apb_slv(string tag = "APB_PACKET", int verbosity = UVM_MEDIUM);
`uvm_info(tag, "--------------------------------------------", verbosity)
`uvm_info(tag, " APB SLAVE PACKET ", verbosity)
`uvm_info(tag, "--------------------------------------------", verbosity)
`uvm_info(tag, $sformatf("PREADY : %0d", PREADY), verbosity)
`uvm_info(tag, $sformatf("PRDATA : 0x%0h", PRDATA), verbosity)
`uvm_info(tag, $sformatf("PSLVERR : %0d", PSLVERR), verbosity)
endfunction
endclass