blob: 43810076daa1eb783fcd911a9d54f0b896fd3e3f [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
class dv_base_driver #(type ITEM_T = uvm_sequence_item,
type CFG_T = dv_base_agent_cfg,
type RSP_ITEM_T = ITEM_T)
extends uvm_driver #(.REQ(ITEM_T), .RSP(RSP_ITEM_T));
`uvm_component_param_utils(dv_base_driver #(.ITEM_T (ITEM_T),
.CFG_T (CFG_T),
.RSP_ITEM_T (RSP_ITEM_T)))
bit under_reset;
CFG_T cfg;
`uvm_component_new
virtual task run_phase(uvm_phase phase);
fork
reset_signals();
get_and_drive();
join
endtask
// reset signals
virtual task reset_signals();
`uvm_fatal(`gfn, "this is implemented as pure virtual task - please extend")
endtask
// drive trans received from sequencer
virtual task get_and_drive();
`uvm_fatal(`gfn, "this is implemented as pure virtual task - please extend")
endtask
endclass