blob: f35171d0bb5e501d50d4cfd3da7a7b0721c933b8 [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 usb20_monitor extends dv_base_monitor #(
.ITEM_T (usb20_item),
.CFG_T (usb20_agent_cfg),
.COV_T (usb20_agent_cov)
);
`uvm_component_utils(usb20_monitor)
// the base class provides the following handles for use:
// usb20_agent_cfg: cfg
// usb20_agent_cov: cov
// uvm_analysis_port #(usb20_item): analysis_port
`uvm_component_new
function void build_phase(uvm_phase phase);
super.build_phase(phase);
endfunction
task run_phase(uvm_phase phase);
super.run_phase(phase);
endtask
// collect transactions forever - already forked in dv_base_monitor::run_phase
virtual protected task collect_trans(uvm_phase phase);
forever begin
// TODO: detect event
// TODO: sample the interface
// TODO: sample the covergroups
// TODO: write trans to analysis_port
// TODO: remove the line below: it is added to prevent zero delay loop in template code
#1us;
end
endtask
endclass