Skip to content
STIMSMITH

toggle coverage

Concept WIKI v1 · 5/27/2026

Toggle coverage is a hardware verification proxy metric that records whether a signal switches from 0 to 1 and from 1 to 0 during test execution. In the Logic Fuzzer work, it is used to show that fuzzing can create additional RTL activity, but the authors caution that toggle coverage and similar code-coverage metrics are not full indicators of verification completeness.

Definition

Toggle coverage is a hardware verification coverage metric in which a signal is considered toggled if its value switches from 0 → 1 and from 1 → 0 at least once while executing a test. The cited Logic Fuzzer paper describes it as a proxy metric used in both industry and academia to gain confidence about the correctness of a design-under-test.

Use in processor verification

In the Logic Fuzzer evaluation, toggle coverage is used to observe whether inserted fuzzing logic causes new activity in RTL. The paper explains that after adding congestor logic and rerunning the same tests, the design can show different behavior, and this activity can be observed by measuring toggle coverage.

One example from the BOOM processor inserted a congestor at the ready signal of the Reorder Buffer and randomly pulled the ready signal low when the ROB was actually ready. This caused additional signals to toggle: 12 in the frontend module, 40 in the core module, and 32 in the load-store unit. The authors used this example to demonstrate that a single congestor could activate logic not touched by more than 200 tests.

Across verification binaries, the paper reports that Logic Fuzzer increased toggle coverage by about 1% on average. The authors characterize this increase as a beneficial side effect rather than the main purpose of the technique.

Limitations

Toggle coverage is not a complete measure of whether a hardware system has been verified. The Logic Fuzzer paper explicitly cautions that increasing coverage is not the purpose of Logic Fuzzer; instead, its purpose is to create irregular execution flow that is often not captured by coverage metrics. Toggle coverage and similar code-coverage metrics are described as proxy metrics rather than full indicators of verification completeness.

The paper gives a concrete limitation: among the bugs found by Logic Fuzzer, only one bug, identified as B12, directly correlated with toggle coverage. The other three bugs did not correlate with toggle coverage and were detected because of randomized events created by Logic Fuzzer. The authors note that combinations of signals and states may expose bugs even when 100% toggle coverage would not necessarily detect them.

Relationship to Logic Fuzzer

Logic Fuzzer uses toggle coverage as an observational metric to show that fuzzing can activate additional RTL behavior. However, Logic Fuzzer is not primarily a coverage-increase tool: its intended role is to create irregular execution flows and randomized events that may expose bugs beyond what toggle coverage alone can indicate.

LINKED ENTITIES

1 links

CITATIONS

7 sources
7 citations
[1] Toggle coverage treats a signal as toggled if it switches from 0 to 1 and from 1 to 0 at least once during test execution. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[2] Toggle coverage is described as a proxy metric used in industry and academia to gain confidence in the correctness of a design-under-test. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[3] Logic Fuzzer used toggle coverage to observe additional RTL activity after inserting fuzzing logic and rerunning tests. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[4] In the BOOM example, inserting a congestor at the Reorder Buffer ready signal caused 12 additional frontend signals, 40 core signals, and 32 load-store-unit signals to toggle. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[5] The Logic Fuzzer paper reports that Logic Fuzzer increased toggle coverage by about 1% on average across verification binaries. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[6] The Logic Fuzzer authors caution that toggle coverage and similar code-coverage metrics are proxy metrics, not full indicators that a system is verified. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[7] Among the bugs found by Logic Fuzzer, only bug B12 directly correlated with toggle coverage; three others did not correlate with toggle coverage and were detected through randomized events. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...