Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutRoadmapCareersInternshipsFAQContactPrivacyTerms
Skip to lesson

Course contents

  • Start Here5
  • SystemVerilog Language Foundations28
  • Object-Oriented SystemVerilog for Verification30
  • Constraint Randomization — Interview-Critical Deep Dive39
  • SystemVerilog Assertions — Interview-Critical Deep Dive41
  • Functional Coverage in SystemVerilog25
    • Covergroups & Coverpoints
      • Covergroup Anatomy
      • Sampling: Clocked, Event & sample()
      • Coverpoint Expressions & Types
      • Your First Coverage Model: Three Bins and a Report
      • An ALU Coverage Plan as a Covergroup
      • Sign-Off Needs Both: Code and Functional Coverage
      • The Bins Model: Counting Covergroups on Open Tools
    • Bins: Explicit, Auto, Illegal & Ignore
    • Cross Coverage
    • Coverage Options & Methods
    • Coverage Closure & Sign-Off
  • Testbench Architecture in SystemVerilog24
  • Advanced Language & Integration26
  • Senior & Interview Preparation23
  • Principal-Level Verification34
Loading lesson

←Functional Coverage in SystemVerilog
  1. Topics
  2. SystemVerilog
  3. Functional Coverage in SystemVerilog
  4. Covergroups & Coverpoints

Part 5 of 9Part 5 of 9/Functional CoverageIntermediate

Covergroups & Coverpoints

Covergroups bundle coverpoints and bins; lessons cover structure, sampling, expressions and a first model.

  • 7topics
  • 7lessons

Functional coverage proves that planned scenarios happened. A covergroup bundles the measurement points, samples the design at chosen moments, and sorts each sample into bins.

design.sv
1
2
3
4
5
6
7
8
9
10
11
// snippet
covergroup cg_alu @(posedge clk);          // the container, with its sampling event
  option.per_instance = 1;                 // options configure it
  cp_op : coverpoint opcode {              // a coverpoint watches one value
    bins add = {OP_ADD};                   // a bin is a named bucket
    bins sub = {OP_SUB};
    bins shifts[] = {OP_SHL, OP_SHR};      // a bin array: one bin per value
  }
  cp_zero : coverpoint (result == 0);      // an expression coverpoint
  x_op_zero : cross cp_op, cp_zero;        // a cross counts combinations
endgroup

Lesson

Path

It builds

Covergroup Anatomy

Required

Group, point and bins; class and module homes; the forgotten new().

Sampling: Clocked, Event & sample()

Required

Clocked versus explicit sampling, sample arguments and iff guards.

Coverpoint Expressions & Types

Recommended

Expressions, enums, boolean idioms and the auto-bin cap.

Your First Coverage Model: Three Bins and a Report

Required

Three bins, five samples, a report that names the hole, and the first PacketFIFO step.

An ALU Coverage Plan as a Covergroup

Recommended

A six-row plan turned into a covergroup, a wrapper class and a report with holes.

Sign-Off Needs Both: Code and Functional Coverage

Recommended

Full line coverage beside a 0% corner, measured on one FIFO.

The Bins Model: Counting Covergroups on Open Tools

Recommended

The plain-class model every bench in this part counts with, and how it maps to covergroup syntax.

Required is the core first pass. Recommended is for most learners. Optional is reference, a specialist topic or revision.

Check yourself A covergroup reports 0 percent while the stimulus is known good. What is the first thing to check?

Whether the covergroup was ever constructed. A declared but never constructed covergroup never samples, and most flows report that silence as zero coverage.

“What is the difference between code coverage and functional coverage” is the standard opener. Code coverage is tool-measured structure execution. Functional coverage is engineer-written scenario occurrence. Sign-off needs both, and the last lesson shows why.

PreviousNext: Covergroup Anatomy

Up next

Up nextCovergroup Anatomy

Sign in to save progress

Practice this lessonPrevious lessonReport an error

See also

  • Bins: Explicit, Auto, Illegal & Ignore
  • Cross Coverage
  • Coverage Options & Methods