A coverage collector is a component responsible for gathering and aggregating functional coverage data from various parts of the testbench during the verification process. Its primary role is to collect coverage information from different coverage models and components, such as monitors, scoreboards, and custom coverage classes, and combine them to provide a comprehensive view of the design's verification progress.
Features of a coverage collector:
Coverage Aggregation: Gathers coverage data from different parts of the testbench, including coverage models and custom coverage points.// Filename : basic_coverage.sv class basic_coverage extends uvm_component; `uvm_component_utils(basic_coverage) extern function new(string name, uvm_component parent); extern virtual function void build_phase(uvm_phase phase); extern virtual function void extract_phase(uvm_phase phase); endclass: basic_coverage //------------------------------------------------------------------// function basic_coverage::new(string name, uvm_component parent); super.new(name, parent); endfunction: new //------------------------------------------------------------------// function void basic_coverage::build_phase(uvm_phase phase); super.build_phase(phase); endfunction: build_phase //--------------------------------------------------------------------------------------------------- function void basic_coverage::extract_phase(uvm_phase phase); super.extract_phase(phase); endfunction: extract_phase