This document discusses coverage in the context of SystemVerilog verification, detailing two primary types: code coverage and functional coverage. Code coverage measures the execution of lines of code, paths, states, and variable transitions, but does not guarantee design correctness, while functional coverage evaluates how well the design is exercised across different scenarios. The document also introduces covergroups for defining coverage models and emphasizes the importance of achieving 100% coverage through various strategies and tests.