blob: 67a8d228a15d96a1b4bd0ec0bcf7e2fbd58833a1 [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 uart_agent_cov extends dv_base_agent_cov #(uart_agent_cfg);
`uvm_component_utils(uart_agent_cov)
covergroup uart_cg with function sample(uart_dir_e dir, uart_item item);
cp_dir: coverpoint dir;
cp_data: coverpoint item.data;
cp_en_parity: coverpoint cfg.en_parity;
cp_odd_parity: coverpoint cfg.odd_parity;
cp_baud_rate: coverpoint cfg.baud_rate;
cross cp_dir, cp_data, cp_en_parity, cp_odd_parity, cp_baud_rate;
endgroup
// sample reset at every bit location in both direction
covergroup uart_reset_cg with function sample(uart_dir_e dir, int bit_position);
cp_dir: coverpoint dir;
cp_rst_pos: coverpoint bit_position {
// including parity, totally NUM_BIT_START_DATA_STOP+1 bits
bins values[] = {[0:NUM_UART_XFER_BITS_WO_PARITY]};
}
cross cp_dir, cp_rst_pos;
endgroup
function new(string name, uvm_component parent);
super.new(name, parent);
uart_cg = new();
uart_reset_cg = new();
endfunction : new
endclass