SystemVerilog Covergroup Coverage for Functional Verification

Instructor: EDA Academy
Resource—All LevelEnglish

SystemVerilog covergroups define data-oriented functional coverage through sampling events, coverpoints, value and transition bins, cross coverage, options, and methods. They measure intended data behavior, value combinations, illegal cases, ignored cases, and coverage progress during simulation.

5.0
2students

This offering includes

  • 1 module
  • 5 lectures
  • Access on mobile and computer
  • 1.68 hours on-demand video

Description

SystemVerilog covergroup coverage provides a structured mechanism for measuring data-oriented functional verification progress. It captures verification intent through user-defined sampling, coverpoints, bins, crosses, options, and methods. Instead of only reporting which code was executed, covergroups describe which values, transitions, ranges, combinations, and special cases have actually occurred during simulation. Coverpoints define the expressions to be sampled and turn observed values into measurable coverage bins. Automatic bins provide a fast starting point for value coverage, while explicit bins give precise control over which values are tracked and how they are grouped. Scalar bins group related values into one counter, while vector bins provide separate counters for individual values or distributed value groups. Ignore bins remove irrelevant values from coverage calculations, illegal bins identify forbidden values, and default bins collect remaining values when appropriate. Transition coverage extends value coverage across time. A transition bin records ordered value movement across sampling events, including single changes, longer sequences, repeated values, and transitions across arrays or ranges. This allows a coverage model to measure dynamic data behavior rather than only static value hits. It is useful when functional correctness depends on the order in which values appear. Cross coverage measures relationships between coverage items. A cover cross creates bins for combinations of coverpoints or variables, making it possible to verify that important value combinations have occurred together. Automatic cross bins provide broad combination coverage, while explicit cross bins use binsof, intersect, and logical selection operators to focus on meaningful cross-product regions. Illegal and ignored cross bins refine the cross space by removing irrelevant combinations and flagging forbidden combinations. Covergroups can be used inside classes to bind coverage directly to object data and behavior. Class-based covergroups can access class properties, including protected and local members, and each class object can track coverage separately. Sampling can be event-based for active components or manual through sample() for data objects and transaction-style activity. Coverage options control calculation, reporting, sampling, bin creation, missing-bin reporting, overlap detection, and per-instance tracking. Type options affect all instances of a covergroup type, while instance options support more localized control. Covergroup methods such as sample(), get_coverage(), get_inst_coverage(), set_inst_name(), start(), and stop() provide procedural access to sampling, status, naming, and collection control. Together, these mechanisms make covergroups a precise and practical tool for building measurable functional coverage models. Catalogue: Structural vs Functional Coverage Functional Coverage Orientations Data-Oriented Functional Coverage Covergroup Model Basics Coverpoints and Automatic Bins Explicit Coverpoint Bins Explicit Scalar and Vector Bins Example: Explicit Scalar and Vector Bins Counting Covergroup Bins Cover Cross Basics Example: Automatic Cross Bins Explicit Cross Bins Illegal and Ignored Cross Bins Simplifying Cross Bins Covergroups in Classes Coverpoint Transition Bins Coverage Option Types Reference: Type-Specific type_option Fields Reference: Instance-Specific option Fields Reference: Covergroup Methods

You might also like

More offerings will load here.

Secure checkout via our payment partner.