Line 50... |
Line 50... |
protected int axi4_req_packet_count = 0;
|
protected int axi4_req_packet_count = 0;
|
protected int axi4_error_response_count = 0;
|
protected int axi4_error_response_count = 0;
|
|
|
|
|
|
|
|
|
typedef hmc_packet hmc_request_queue[$];
|
typedef hmc_packet hmc_request_queue[$];
|
typedef bit [127:0] flit_t;
|
typedef bit [127:0] flit_t;
|
hmc_request_queue axi4_np_requests[*];
|
hmc_request_queue axi4_np_requests[*];
|
hmc_packet axi4_2_hmc[$];
|
hmc_packet axi4_2_hmc[$];
|
hmc_packet hmc_2_axi4[$];
|
hmc_packet hmc_response[$];
|
hmc_packet hmc_2_axi4_axi4_came_first[$];
|
hmc_packet axi4_response[$];
|
|
|
|
|
int valid_cycle = 0;
|
int valid_cycle = 0;
|
|
|
//--check tags
|
//--check tags
|
int tag_count = 512;
|
int tag_count = 512;
|
bit [512:0]used_tags;
|
bit [512:0]used_tags;
|
|
|
|
|
|
|
|
|
//-- analysis imports
|
//-- analysis imports
|
//-- HMC Interface
|
//-- HMC Interface
|
`uvm_analysis_imp_decl(_hmc_req)
|
`uvm_analysis_imp_decl(_hmc_req)
|
uvm_analysis_imp_hmc_req #(hmc_packet, hmc_module_scb) hmc_req_port;
|
uvm_analysis_imp_hmc_req #(hmc_packet, hmc_module_scb) hmc_req_port;
|
`uvm_analysis_imp_decl(_hmc_rsp)
|
`uvm_analysis_imp_decl(_hmc_rsp)
|
Line 92... |
Line 90... |
hmc_req_port = new("hmc_req_port",this);
|
hmc_req_port = new("hmc_req_port",this);
|
hmc_rsp_port = new("hmc_rsp_port",this);
|
hmc_rsp_port = new("hmc_rsp_port",this);
|
endfunction : new
|
endfunction : new
|
|
|
//-- compare the received response packets and check with the previous sent request packet
|
//-- compare the received response packets and check with the previous sent request packet
|
function void hmc_2_axi4_compare(input hmc_packet expected, input hmc_packet packet);
|
function void response_compare(input hmc_packet expected, input hmc_packet packet);
|
int i;
|
int i;
|
hmc_packet request;
|
hmc_packet request;
|
|
|
if (packet.command != HMC_ERROR_RESPONSE) begin //-- HMC_ERROR_RESPONSE has no label
|
if (packet.command != HMC_ERROR_RESPONSE) begin //-- HMC_ERROR_RESPONSE has no label
|
//-- Check the packet against the request stored in the axi4_np_requests map
|
//-- Check the packet against the request stored in the axi4_np_requests map
|
label : assert (axi4_np_requests.exists(packet.tag))
|
label : assert (axi4_np_requests.exists(packet.tag))
|
else `uvm_fatal(get_type_name(),$psprintf("hmc_2_axi4_compare: Unexpected Response with tag %0x \n%s", packet.tag, packet.sprint()));
|
else `uvm_fatal(get_type_name(),$psprintf("response_compare: Unexpected Response with tag %0x \n%s", packet.tag, packet.sprint()));
|
|
|
//-- delete the previous sent request packet
|
//-- delete the previous sent request packet
|
request = axi4_np_requests[packet.tag].pop_front();
|
request = axi4_np_requests[packet.tag].pop_front();
|
if (axi4_np_requests[packet.tag].size() == 0)
|
if (axi4_np_requests[packet.tag].size() == 0)
|
axi4_np_requests.delete(packet.tag);
|
axi4_np_requests.delete(packet.tag);
|
end
|
end
|
//-- check the hmc_packet
|
//-- check the hmc_packet
|
if (packet.command == HMC_WRITE_RESPONSE
|
if (packet.command == HMC_WRITE_RESPONSE
|
&& request.get_command_type() != HMC_WRITE_TYPE
|
&& request.get_command_type() != HMC_WRITE_TYPE
|
&& request.get_command_type() != HMC_MISC_WRITE_TYPE)
|
&& request.get_command_type() != HMC_MISC_WRITE_TYPE)
|
`uvm_fatal(get_type_name(),$psprintf("hmc_2_axi4_compare: Write Response received with tag %0x for request %s\n%s", packet.tag, request.command.name(), packet.sprint()))
|
`uvm_fatal(get_type_name(),$psprintf("response_compare: Write Response received with tag %0x for request %s\n%s", packet.tag, request.command.name(), packet.sprint()))
|
|
|
if (packet.command == HMC_READ_RESPONSE && request.get_command_type() != HMC_READ_TYPE && request.get_command_type() != HMC_MODE_READ_TYPE )
|
if (packet.command == HMC_READ_RESPONSE && request.get_command_type() != HMC_READ_TYPE && request.get_command_type() != HMC_MODE_READ_TYPE )
|
`uvm_fatal(get_type_name(),$psprintf("hmc_2_axi4_compare: Read Response received with tag %0x for request %s\n%s", packet.tag, request.command.name(), packet.sprint()))
|
`uvm_fatal(get_type_name(),$psprintf("response_compare: Read Response received with tag %0x for request %s\n%s", packet.tag, request.command.name(), packet.sprint()))
|
|
|
if (packet.command == HMC_READ_RESPONSE) begin
|
if (packet.command == HMC_READ_RESPONSE) begin
|
int expected_count;
|
int expected_count;
|
case (request.command)
|
case (request.command)
|
HMC_MODE_READ: expected_count = 1;
|
HMC_MODE_READ: expected_count = 1;
|
Line 130... |
Line 128... |
HMC_READ_112: expected_count = 7;
|
HMC_READ_112: expected_count = 7;
|
HMC_READ_128: expected_count = 8;
|
HMC_READ_128: expected_count = 8;
|
default: expected_count = 0;
|
default: expected_count = 0;
|
endcase
|
endcase
|
if (expected_count != packet.payload.size())
|
if (expected_count != packet.payload.size())
|
`uvm_fatal(get_type_name(),$psprintf("hmc_2_axi4_compare: Read Response received with tag %0x and wrong size req=%0s rsp payload size=%0x\n", packet.tag, request.command.name(), packet.payload.size()))
|
`uvm_fatal(get_type_name(),$psprintf("response_compare: Read Response received with tag %0x and wrong size req=%0s rsp payload size=%0x\n", packet.tag, request.command.name(), packet.payload.size()))
|
end
|
end
|
|
|
//-- Check that the HMC command matches the HTOC item
|
//-- Check that the HMC command matches the HTOC item
|
if (packet.get_command_type() != HMC_RESPONSE_TYPE)
|
if (packet.get_command_type() != HMC_RESPONSE_TYPE)
|
`uvm_fatal(get_type_name(),$psprintf("hmc_2_axi4_compare: Unexpected Packet \n%s", packet.sprint()))
|
`uvm_fatal(get_type_name(),$psprintf("response_compare: Unexpected Packet \n%s", packet.sprint()))
|
|
|
if (expected.command != packet.command)
|
if (expected.command != packet.command)
|
`uvm_fatal(get_type_name(),$psprintf("hmc_2_axi4_compare: Expected %s, got %s", expected.command.name(), packet.command.name()))
|
`uvm_fatal(get_type_name(),$psprintf("response_compare: Expected %s, got %s", expected.command.name(), packet.command.name()))
|
|
|
if (expected.tag != packet.tag) begin
|
if (expected.tag != packet.tag) begin
|
`uvm_info(get_type_name(), $psprintf("Expected: %s. got: %s", expected.sprint(), packet.sprint() ), UVM_NONE)
|
`uvm_info(get_type_name(), $psprintf("Expected: %s. got: %s", expected.sprint(), packet.sprint() ), UVM_LOW)
|
`uvm_fatal(get_type_name(),$psprintf("hmc_2_axi4_compare: Packet tag mismatch %0d != %0d ", expected.tag, packet.tag))
|
`uvm_fatal(get_type_name(),$psprintf("response_compare: Packet tag mismatch %0d != %0d ", expected.tag, packet.tag))
|
end
|
end
|
|
|
if (expected.packet_length != packet.packet_length) begin
|
if (expected.packet_length != packet.packet_length) begin
|
`uvm_info(get_type_name(), $psprintf("Expected: %s. got: %s", expected.sprint(), packet.sprint() ), UVM_NONE)
|
`uvm_info(get_type_name(), $psprintf("Expected: %s. got: %s", expected.sprint(), packet.sprint() ), UVM_LOW)
|
`uvm_fatal(get_type_name(),$psprintf("hmc_2_axi4_compare: Packet length mismatch %0d != %0d ", expected.packet_length, packet.packet_length))
|
`uvm_fatal(get_type_name(),$psprintf("response_compare: Packet length mismatch %0d != %0d ", expected.packet_length, packet.packet_length))
|
end
|
end
|
|
|
if (expected.payload.size() != packet.payload.size())
|
if (expected.payload.size() != packet.payload.size())
|
`uvm_fatal(get_type_name(),$psprintf("hmc_2_axi4_compare: Payload size mismatch %0d != %0d", expected.payload.size(), packet.payload.size()))
|
`uvm_fatal(get_type_name(),$psprintf("response_compare: Payload size mismatch %0d != %0d", expected.payload.size(), packet.payload.size()))
|
|
|
for (int i=0; i
|
for (int i=0; i
|
if (packet.payload[i] != expected.payload[i])
|
if (packet.payload[i] != expected.payload[i])
|
`uvm_fatal(get_type_name(),$psprintf("hmc_2_axi4_compare: Payload mismatch at %0d %0x != %0x", i, packet.payload[i], expected.payload[i]))
|
`uvm_fatal(get_type_name(),$psprintf("response_compare: Payload mismatch at %0d %0x != %0x", i, packet.payload[i], expected.payload[i]))
|
end
|
end
|
|
|
endfunction : hmc_2_axi4_compare
|
endfunction : response_compare
|
|
|
//-- compare and check 2 Request type packets
|
//-- compare and check 2 Request type packets
|
function void axi4_2_hmc_compare(input hmc_packet expected, hmc_packet packet);
|
function void request_compare(input hmc_packet expected, hmc_packet packet);
|
|
|
hmc_command_type packet_type = packet.get_command_type();
|
hmc_command_type packet_type = packet.get_command_type();
|
if (packet_type == HMC_FLOW_TYPE || packet_type == HMC_RESPONSE_TYPE)
|
if (packet_type == HMC_FLOW_TYPE || packet_type == HMC_RESPONSE_TYPE)
|
`uvm_fatal(get_type_name(),$psprintf("axi4_2_hmc_compare: Unexpected Packet \n%s", packet.sprint()))
|
`uvm_fatal(get_type_name(),$psprintf("request_compare: Unexpected Packet \n%s", packet.sprint()))
|
|
|
if (expected.command != packet.command) begin
|
if (expected.command != packet.command) begin
|
`uvm_info(get_type_name(), $psprintf("Expected: %s. got: %s", expected.sprint(), packet.sprint() ), UVM_NONE)
|
`uvm_info(get_type_name(), $psprintf("Expected: %s. got: %s", expected.sprint(), packet.sprint() ), UVM_LOW)
|
`uvm_fatal(get_type_name(),$psprintf("axi4_2_hmc_compare: Expected %s, got %s", expected.command.name(), packet.command.name()))
|
`uvm_fatal(get_type_name(),$psprintf("request_compare: Expected %s, got %s", expected.command.name(), packet.command.name()))
|
end
|
end
|
|
|
if (expected.cube_ID != packet.cube_ID)
|
if (expected.cube_ID != packet.cube_ID)
|
`uvm_fatal(get_type_name(),$psprintf("axi4_2_hmc_compare: cube_ID mismatch %0d != %0d", expected.cube_ID, packet.cube_ID))
|
`uvm_fatal(get_type_name(),$psprintf("request_compare: cube_ID mismatch %0d != %0d", expected.cube_ID, packet.cube_ID))
|
|
|
if (expected.address != packet.address)
|
if (expected.address != packet.address)
|
`uvm_fatal(get_type_name(),$psprintf("axi4_2_hmc_compare: Address mismatch %0d != %0d", expected.address, packet.address))
|
`uvm_fatal(get_type_name(),$psprintf("request_compare: Address mismatch %0d != %0d", expected.address, packet.address))
|
|
|
if (expected.packet_length != packet.packet_length)
|
if (expected.packet_length != packet.packet_length)
|
`uvm_fatal(get_type_name(),$psprintf("axi4_2_hmc_compare: Packet length mismatch %0d != %0d", expected.packet_length, packet.packet_length))
|
`uvm_fatal(get_type_name(),$psprintf("request_compare: Packet length mismatch %0d != %0d", expected.packet_length, packet.packet_length))
|
|
|
if (expected.tag != packet.tag) begin
|
if (expected.tag != packet.tag) begin
|
`uvm_info(get_type_name(), $psprintf("Expected: %s. got: %s", expected.sprint(), packet.sprint() ), UVM_NONE)
|
`uvm_info(get_type_name(), $psprintf("Expected: %s. got: %s", expected.sprint(), packet.sprint() ), UVM_LOW)
|
`uvm_fatal(get_type_name(),$psprintf("axi4_2_hmc_compare: Packet tag mismatch %0d != %0d ", expected.tag, packet.tag))
|
`uvm_fatal(get_type_name(),$psprintf("request_compare: Packet tag mismatch %0d != %0d ", expected.tag, packet.tag))
|
end
|
end
|
|
|
if (expected.payload.size() != packet.payload.size())
|
if (expected.payload.size() != packet.payload.size())
|
`uvm_fatal(get_type_name(),$psprintf("axi4_2_hmc_compare: Payload size mismatch %0d != %0d", expected.payload.size(), packet.payload.size()))
|
`uvm_fatal(get_type_name(),$psprintf("request_compare: Payload size mismatch %0d != %0d", expected.payload.size(), packet.payload.size()))
|
|
|
for (int i=0;i
|
for (int i=0;i
|
if (expected.payload[i] != packet.payload[i])
|
if (expected.payload[i] != packet.payload[i])
|
`uvm_fatal(get_type_name(),$psprintf("axi4_2_hmc_compare: Payload mismatch at %0d %0x != %0x", i, expected.payload[i], packet.payload[i]))
|
`uvm_fatal(get_type_name(),$psprintf("request_compare: Payload mismatch at %0d %0x != %0x", i, expected.payload[i], packet.payload[i]))
|
end
|
end
|
endfunction : axi4_2_hmc_compare
|
endfunction : request_compare
|
|
|
function void write_hmc_rsp(input hmc_packet packet);
|
function void write_hmc_rsp(input hmc_packet packet);
|
hmc_packet expected;
|
hmc_packet expected;
|
|
|
if (packet.command != HMC_ERROR_RESPONSE) begin //TODO cover error response
|
if (packet.command != HMC_ERROR_RESPONSE) begin //TODO cover error response
|
Line 209... |
Line 207... |
`uvm_info(get_type_name(),$psprintf("hmc_error_rsp: received error response #%0d %s", hmc_error_response_count, packet.command.name()), UVM_MEDIUM)
|
`uvm_info(get_type_name(),$psprintf("hmc_error_rsp: received error response #%0d %s", hmc_error_response_count, packet.command.name()), UVM_MEDIUM)
|
`uvm_info(get_type_name(),$psprintf("hmc_error_rsp: \n%s", packet.sprint()), UVM_HIGH)
|
`uvm_info(get_type_name(),$psprintf("hmc_error_rsp: \n%s", packet.sprint()), UVM_HIGH)
|
end
|
end
|
|
|
//-- check this packet later
|
//-- check this packet later
|
hmc_2_axi4.push_back(packet);
|
|
|
//-- the response packet might be delayed due to the packet mon
|
|
//-- check if the response packet is already received on the axi link
|
|
if (axi4_response.size() == 0)
|
|
hmc_response.push_back(packet);
|
|
else begin //-- check the packet
|
|
expected = axi4_response.pop_front();
|
|
response_compare(expected, packet); //TODO
|
|
|
|
if (packet.command != HMC_ERROR_RESPONSE) begin //TODO cover error response
|
|
//-- check if open request with tag is available
|
|
if (used_tags[packet.tag] == 1'b1) begin
|
|
used_tags[packet.tag] = 1'b0;
|
|
end else begin
|
|
`uvm_fatal(get_type_name(),$psprintf("Packet with Tag %0d was not requested", packet.tag))
|
|
end
|
|
end
|
|
end
|
endfunction : write_hmc_rsp
|
endfunction : write_hmc_rsp
|
|
|
function void write_hmc_req(input hmc_packet packet);
|
function void write_hmc_req(input hmc_packet packet);
|
hmc_packet expected;
|
hmc_packet expected;
|
|
|
Line 231... |
Line 246... |
`uvm_fatal(get_type_name(),$psprintf("write_hmc_req: Unexpected packet (the request queue is empty)\n%s",packet.sprint()))
|
`uvm_fatal(get_type_name(),$psprintf("write_hmc_req: Unexpected packet (the request queue is empty)\n%s",packet.sprint()))
|
else
|
else
|
expected = axi4_2_hmc.pop_front();
|
expected = axi4_2_hmc.pop_front();
|
|
|
//-- compare and check 2 Request type packets
|
//-- compare and check 2 Request type packets
|
axi4_2_hmc_compare(expected, packet);
|
request_compare(expected, packet);
|
|
|
`uvm_info(get_type_name(),$psprintf("hmc_req: checked packet #%0d %s@%0x", hmc_req_packet_count, packet.command.name(), packet.address), UVM_MEDIUM)
|
`uvm_info(get_type_name(),$psprintf("hmc_req: checked packet #%0d %s@%0x", hmc_req_packet_count, packet.command.name(), packet.address), UVM_MEDIUM)
|
endfunction : write_hmc_req
|
endfunction : write_hmc_req
|
|
|
|
|
Line 244... |
Line 259... |
hmc_packet expected;
|
hmc_packet expected;
|
if (packet == null) begin
|
if (packet == null) begin
|
`uvm_fatal(get_type_name(), $psprintf("packet is null"))
|
`uvm_fatal(get_type_name(), $psprintf("packet is null"))
|
end
|
end
|
|
|
//-- compare with previous on the HMC side received response packet
|
|
expected = hmc_2_axi4.pop_front();
|
|
hmc_2_axi4_compare(expected, packet);
|
|
if (packet.command != HMC_ERROR_RESPONSE) begin //TODO cover error response
|
if (packet.command != HMC_ERROR_RESPONSE) begin //TODO cover error response
|
axi4_rsp_packet_count++;
|
axi4_rsp_packet_count++;
|
|
|
`uvm_info(get_type_name(),$psprintf("axi4_rsp: received packet #%0d %s", axi4_rsp_packet_count, packet.command.name()), UVM_MEDIUM)
|
`uvm_info(get_type_name(),$psprintf("axi4_rsp: received packet #%0d %s", axi4_rsp_packet_count, packet.command.name()), UVM_MEDIUM)
|
`uvm_info(get_type_name(),$psprintf("axi4_rsp: \n%s", packet.sprint()), UVM_HIGH)
|
`uvm_info(get_type_name(),$psprintf("axi4_rsp: \n%s", packet.sprint()), UVM_HIGH)
|
|
end else begin
|
|
axi4_error_response_count++;
|
|
`uvm_info(get_type_name(),$psprintf("axi4_error_rsp: received error response #%0d %s", axi4_error_response_count, packet.command.name()), UVM_MEDIUM)
|
|
`uvm_info(get_type_name(),$psprintf("axi4_error_rsp: \n%s", packet.sprint()), UVM_HIGH)
|
|
end
|
|
|
|
//-- the response packet might be delayed due to the transmission mon.
|
|
//-- due to this the compare must be executed later
|
|
|
|
//-- compare with previous on the HMC side received response packet
|
|
|
|
if (hmc_response.size()== 0)
|
|
axi4_response.push_back(packet);
|
|
else begin //-- check
|
|
expected = hmc_response.pop_front();
|
|
response_compare(expected, packet); //TODO
|
|
|
|
if (packet.command != HMC_ERROR_RESPONSE) begin //TODO cover error response
|
//-- check if open request with tag is available
|
//-- check if open request with tag is available
|
if (used_tags[packet.tag] == 1'b1) begin
|
if (used_tags[packet.tag] == 1'b1) begin
|
used_tags[packet.tag] = 1'b0;
|
used_tags[packet.tag] = 1'b0;
|
end else begin
|
end else begin
|
`uvm_fatal(get_type_name(),$psprintf("Packet with Tag %0d was not requested", packet.tag))
|
`uvm_fatal(get_type_name(),$psprintf("Packet with Tag %0d was not requested", packet.tag))
|
end
|
end
|
end else begin
|
end
|
axi4_error_response_count++;
|
|
`uvm_info(get_type_name(),$psprintf("axi4_error_rsp: received error response #%0d %s", axi4_error_response_count, packet.command.name()), UVM_MEDIUM)
|
|
`uvm_info(get_type_name(),$psprintf("axi4_error_rsp: \n%s", packet.sprint()), UVM_HIGH)
|
|
end
|
end
|
endfunction :write_axi4_hmc_rsp
|
endfunction :write_axi4_hmc_rsp
|
|
|
|
|
function void write_axi4_hmc_req(input hmc_packet packet);
|
function void write_axi4_hmc_req(input hmc_packet packet);
|
Line 303... |
Line 329... |
end
|
end
|
|
|
`uvm_info(get_type_name(),$psprintf("axi4_req: received packet #%0d %s@%0x", axi4_req_packet_count, packet.command.name(), packet.address), UVM_MEDIUM)
|
`uvm_info(get_type_name(),$psprintf("axi4_req: received packet #%0d %s@%0x", axi4_req_packet_count, packet.command.name(), packet.address), UVM_MEDIUM)
|
`uvm_info(get_type_name(),$psprintf("axi4_req: \n%s", packet.sprint()), UVM_HIGH)
|
`uvm_info(get_type_name(),$psprintf("axi4_req: \n%s", packet.sprint()), UVM_HIGH)
|
|
|
|
|
|
|
|
|
endfunction :write_axi4_hmc_req
|
endfunction :write_axi4_hmc_req
|
|
|
function void check_phase(uvm_phase phase);
|
function void check_phase(uvm_phase phase);
|
|
|
if (axi4_rsp_packet_count != hmc_rsp_packet_count)
|
if (axi4_rsp_packet_count != hmc_rsp_packet_count)
|
Line 319... |
Line 342... |
|
|
//-- check for open requests on the host side
|
//-- check for open requests on the host side
|
if (axi4_np_requests.size() > 0) begin
|
if (axi4_np_requests.size() > 0) begin
|
for(int i=0;i<512;i++)begin
|
for(int i=0;i<512;i++)begin
|
if (axi4_np_requests.exists(i))begin
|
if (axi4_np_requests.exists(i))begin
|
`uvm_info(get_type_name(),$psprintf("Unanswered Requests: %0d with tag %0d", axi4_np_requests[i].size(), i), UVM_NONE)
|
`uvm_info(get_type_name(),$psprintf("Unanswered Requests: %0d with tag %0d", axi4_np_requests[i].size(), i), UVM_LOW)
|
end
|
end
|
end
|
end
|
`uvm_fatal(get_type_name(),$psprintf("axi4_np_requests.size() = %0d, not all requests have been answered!", axi4_np_requests.size()))
|
`uvm_fatal(get_type_name(),$psprintf("axi4_np_requests.size() = %0d, not all requests have been answered!", axi4_np_requests.size()))
|
end
|
end
|
|
|
//-- check for open tags
|
//-- check for open tags
|
if (used_tags >0) begin
|
if (used_tags >0) begin
|
foreach(used_tags[i]) begin
|
foreach(used_tags[i]) begin
|
if (used_tags[i] == 1'b1)
|
if (used_tags[i] == 1'b1)
|
`uvm_info(get_type_name(),$psprintf("Tag %0d is in use", i), UVM_NONE)
|
`uvm_info(get_type_name(),$psprintf("Tag %0d is in use", i), UVM_LOW)
|
end
|
end
|
`uvm_fatal(get_type_name(),$psprintf("Open Tags!"))
|
`uvm_fatal(get_type_name(),$psprintf("Open Tags!"))
|
end
|
end
|
endfunction : check_phase
|
endfunction : check_phase
|
|
|
function void report_phase(uvm_phase phase);
|
function void report_phase(uvm_phase phase);
|
`uvm_info(get_type_name(),$psprintf("axi4_req_count %0d", axi4_req_packet_count), UVM_NONE)
|
`uvm_info(get_type_name(),$psprintf("axi4_req_count %0d", axi4_req_packet_count), UVM_LOW)
|
`uvm_info(get_type_name(),$psprintf("axi4_rsp_count %0d", axi4_rsp_packet_count), UVM_NONE)
|
`uvm_info(get_type_name(),$psprintf("axi4_rsp_count %0d", axi4_rsp_packet_count), UVM_LOW)
|
`uvm_info(get_type_name(),$psprintf("hmc_req_count %0d", hmc_req_packet_count), UVM_NONE)
|
`uvm_info(get_type_name(),$psprintf("hmc_req_count %0d", hmc_req_packet_count), UVM_LOW)
|
`uvm_info(get_type_name(),$psprintf("hmc_rsp_count %0d", hmc_rsp_packet_count), UVM_NONE)
|
`uvm_info(get_type_name(),$psprintf("hmc_rsp_count %0d", hmc_rsp_packet_count), UVM_LOW)
|
`uvm_info(get_type_name(),$psprintf("Error response count %0d", axi4_error_response_count ), UVM_NONE)
|
`uvm_info(get_type_name(),$psprintf("Error response count %0d", axi4_error_response_count ), UVM_LOW)
|
endfunction : report_phase
|
endfunction : report_phase
|
|
|
endclass : hmc_module_scb
|
endclass : hmc_module_scb
|
|
|
`endif // HMC_SCOREBOARD_SV
|
`endif // HMC_SCOREBOARD_SV
|