| // Copyright lowRISC contributors. | 
 | // Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
 | // SPDX-License-Identifier: Apache-2.0 | 
 |  | 
 | class csrng_monitor extends dv_base_monitor #( | 
 |     .ITEM_T (csrng_item), | 
 |     .CFG_T  (csrng_agent_cfg), | 
 |     .COV_T  (csrng_agent_cov) | 
 |   ); | 
 |   `uvm_component_utils(csrng_monitor) | 
 |  | 
 |   // the base class provides the following handles for use: | 
 |   // csrng_agent_cfg: cfg | 
 |   // csrng_agent_cov: cov | 
 |   // uvm_analysis_port #(csrng_item): analysis_port | 
 |  | 
 |   // item will be sent to this port when req phase is done (last is set) | 
 |   uvm_analysis_port#(csrng_item) req_port; | 
 |   // item will be sent to this port when rsp phase is done (rsp_done is set) | 
 |   uvm_analysis_port#(csrng_item) rsp_port; | 
 |  | 
 |   `uvm_component_new | 
 |  | 
 |   function void build_phase(uvm_phase phase); | 
 |     super.build_phase(phase); | 
 |  | 
 |     req_port  = new("req_port", this); | 
 |     rsp_port  = new("rsp_port", this); | 
 |   endfunction | 
 |  | 
 |   task run_phase(uvm_phase phase); | 
 | //    super.run_phase(phase); | 
 |   endtask | 
 |  | 
 |   // TODO: collect_trans | 
 |  | 
 | endclass |