| // 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 |
| |