blob: a2ed78f6ae8241d95271187caec2b5fde7c5e313 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
// this is a base sequence for alert sender side
class alert_sender_base_seq extends dv_base_seq #(
.REQ (alert_esc_seq_item),
.CFG_T (alert_esc_agent_cfg),
.SEQUENCER_T (alert_esc_sequencer)
);
`uvm_object_utils(alert_sender_base_seq)
`uvm_object_new
rand bit s_alert_send;
rand bit s_alert_ping_rsp;
rand bit int_err;
rand bit ping_timeout;
virtual task body();
`uvm_info(`gfn, $sformatf("starting alert sender transfer"), UVM_HIGH)
req = alert_esc_seq_item::type_id::create("req");
start_item(req);
`DV_CHECK_RANDOMIZE_WITH_FATAL(req,
s_alert_send == local::s_alert_send;
s_alert_ping_rsp == local::s_alert_ping_rsp;
int_err == local::int_err;
ping_timeout == local::ping_timeout;
)
`uvm_info(`gfn, $sformatf("seq_item: send_alert=%0b, ping_rsp=%0b, int_err=%0b",
req.s_alert_send, req.s_alert_ping_rsp, req.int_err), UVM_MEDIUM)
finish_item(req);
get_response(rsp);
`uvm_info(`gfn, "alert sender transfer done", UVM_HIGH)
endtask : body
endclass : alert_sender_base_seq