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
    • Bins: Explicit, Auto, Illegal & Ignore
      • Auto Bins vs Explicit Bins
      • Transition Bins
      • Exclusions, Patterns & Filters
      • Bin Design Strategy
    • 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. Bins: Explicit, Auto, Illegal & Ignore

Part 5 of 9Part 5 of 9/Functional CoverageIntermediate

Bins: Explicit, Auto, Illegal & Ignore

Bins turn sampled values into named scenarios, violations and exclusions.

  • 4topics
  • 4lessons

A coverpoint names what is watched. Its bins decide which sampled values count as which scenario, which values are violations, and which values are out of scope.

Bin kind

It says

Coverage goal

bins name = {values}

This scenario must happen

In

bins name[] = {...}

Each of these must happen

In, one bin per value

bins name = (A => B)

This sequence must happen

In

bins other = default

Anything else, for bookkeeping

Out

ignore_bins

Out of scope, do not count

Removed

illegal_bins

Must never happen

Removed; a hit is a run-time error

wildcard bins = {pattern}

Values matching the pattern

In

bins ... with (expr)

Values where the expression holds

In

Coverage is hit goal bins divided by total goal bins.

Lesson

Path

What it covers

Auto Bins vs Explicit Bins

Required

The 64-bucket trap, named value bins, and one bin versus many.

Transition Bins

Recommended

Sequences, repetition operators, and the FSM arc recipe.

Exclusions, Patterns & Filters

Required

Illegal and ignore bins, wildcard patterns, and with filters.

Bin Design Strategy

Recommended

Intent-driven bins, explosion control, and a worked redesign.

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

Check yourself A coverpoint declares 8 single-value bins m[] = {[0:7]}, with ignore_bins {6} and illegal_bins {7}. Four goal bins are hit. What is the coverage?

Four of six, 66.7%. Each excluded value was the only value of its bin, so both bins empty out and leave the goal: the denominator is 6, not 8. An exclusion removes a bin only when it empties it.

Interviewers ask what a coverage percentage actually divides. The answer is hit goal bins over total goal bins. Default bins, ignore_bins and illegal_bins sit outside that fraction.

PreviousNext: Auto Bins vs Explicit Bins

Up next

Up nextAuto Bins vs Explicit Bins

Sign in to save progress

Practice this lessonPrevious lessonReport an error

See also

  • Covergroups & Coverpoints
  • Cross Coverage
  • Coverage Options & Methods