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

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Reading Paths
  • Concept Map
  • Meet DCRouter
  • Glossary
  • Part 0: What Verification Is8
  • Part 1: What Can Go Wrong11
  • Part 2: Specifications as Checkable Rules8
    • Intent and the Oracle
    • From Prose to Rules
    • Reference Models
    • Tables and Executable Specifications
    • Specification Review and Ambiguity
    • Requirements Traceability
    • What Not to Check
    • Drills: Specifications as Checkable Rules
  • Part 3: Observability and Controllability7
  • Part 4: Stimulus11
  • Part 5: Checking11
  • Part 6: Coverage10
  • Part 7: Formal and Simulation10
  • Part 8: Verification Levels and Reuse8
  • Part 9: Planning and Risk9
  • Part 10: Emulation and Prototyping8
  • Part 11: Post-Silicon Validation8
  • Part 12: Bug Economics8
  • Part 13: Debug7
  • Part 14: Sign-Off7
  • Part 15: Verification in Context8
  • Part 16: Case Studies5
  • Part 17: Capstones5
  • Part 18: Interview Preparation6
Loading lesson

‹Part 2: Specifications as Checkable Rules
  1. Topics
  2. First Principles of Verification Strategy
  3. Part 2: Specifications as Checkable Rules
  4. Requirements Traceability

Part 2 · Specifications as Checkable Rules · Principal (P)

Requirements Traceability

Traceability links every requirement to the checks that enforce it, the coverage that shows it was exercised, and the results that show it passed, so gaps are visible and a sign-off board can see the evidence for each rule. DCRouter's rules traced, with the gaps a smoke test leaves.

On this page

    Note

    Level: Principal (P) · Answers: What exactly are we checking against?

    Before this: From Prose to Rules

    At a tape-out review, an auditor from the customer's safety team points at requirement 4.7.3 and asks three questions: which check enforces it, how do you know that check was exercised, and where is the result? The team has thousands of passing tests and 95% coverage, and cannot answer for that one requirement without a day of digging. Evidence that cannot be found for a specific rule is, for a reviewer, not evidence.

    How do you show, for every requirement, that it was verified?

    The obvious answer, and why it breaks

    The obvious answer points at aggregate numbers: all tests pass, coverage is high. Aggregates hide gaps. A requirement can have no check at all while coverage is high (coverage measured something else); a check can exist but never fire (vacuous); a test can pass without exercising the requirement. Only a per-requirement link from rule to check to coverage to result shows each one is really verified.

    The idea: one chain per requirement

    A requirement is verified only when the whole chain exists: a check that enforces it, coverage showing the check was exercised in the relevant situations, and passing results.

    A broken link anywhere is a gap: no check (nothing could fail), no coverage (the check may never have run in the situation that matters), no result (nobody knows).

    DCRouter's rules after Part 2

    A traceability table for DCRouter, filled in with what exists so far: the smoke test (step 1) and the reference model (step 3). The gaps are the point.

    Rule

    Check

    Coverage

    Result so far

    R1 FIFO admission

    None yet

    None

    Smoke test only: FIFO never full

    R2 Exact occupancy

    None yet

    None

    Not exercised

    R3 Whole packets, per-flow order

    Smoke-test comparison; reference model (2.3)

    None

    Passes 4 packets

    R4 Lengths 1-15 honoured

    Reference model predicts flit counts

    None

    Lengths 2 only

    R5 Length 0 flagged

    Reference model predicts it

    None

    Not exercised

    R6 Arbitration and priority

    None

    None

    Not exercised

    R7 Credits

    None

    None

    Not exercised

    R8 CRC check

    Reference model predicts out_err

    None

    Not exercised

    R9, R10 Counters

    Register table (2.4); model predicts values

    None

    Not exercised

    R11 Reset values

    Register table (2.4)

    None

    CTRL read once

    R12 pslverr

    Register table (2.4)

    None

    Not exercised

    R13 Sleep and wake

    Rules written (2.2)

    None

    Not exercised

    Every "none" is a cell a later part fills: stimulus in Part 4, checks in Part 5, coverage in Part 6, proofs in Part 7. By Part 14 the table is DCRouter's evidence ledger.

    Keeping traceability useful, not bureaucratic

    • Link from the artefacts: assertion and coverage names carry rule numbers, so the table is generated, not maintained by hand.

    • Trace at the level of rules, not sentences or features: fine enough to show gaps, coarse enough to keep current.

    • Report gaps first: the useful output is the list of rules with a broken chain.

    How real teams use traceability

    Practice

    Purpose

    Requirement IDs in assertion, coverage and test names

    Automatic links from results back to rules

    Traceability reports at milestones

    Gaps are visible long before sign-off

    Mandatory in safety-critical projects

    Functional-safety standards expect evidence per requirement (Part 15)

    What breaks

    A project (illustrative) traced requirements to tests but not to coverage. Every requirement had a test; one requirement's test configured a mode that a later regression change silently overrode, so the test kept passing without ever exercising the requirement. A link from the requirement to a coverage point for that mode would have shown the point drop to zero hits the day it happened.

    Why this matters

    Principal lens. Ask for traceability by rule at every review, and look first at the broken chains. Aggregate numbers tell you how much work was done; the per-rule chain tells you whether the work verified what was promised. Build it from names in the checks and coverage so it stays true without effort.

    Interview

    Asked: "How do you show that every requirement is verified?"

    Weak answer: All tests pass and coverage is 100%.

    Strong answer: With a per-requirement chain: each numbered requirement links to the checks that enforce it, coverage points showing those checks were exercised in the situations that matter, and the results, including any waivers. Aggregates hide gaps: a requirement can have no check while coverage is high, or a check that never fires. I generate the table from rule IDs embedded in assertion, coverage and test names, and review the broken chains first.

    Follow-ups: (1) Why trace to coverage, not just to tests? (2) How do you keep it from becoming paperwork?

    Check yourself A requirement has a check and a passing test but no coverage point. What could be wrong?

    The test may never exercise the situation the check guards, so the check passes without ever being able to fail.

    Check yourself In DCRouter's table after Part 2, which rule has a check but no stimulus yet?

    R5 or R8 (and the counters): the reference model predicts their outcomes, but no test has sent a length-0 header or a bad CRC.

    Key takeaways

    • Traceability links each requirement to its checks, its coverage and its results.

    • A broken link anywhere is a gap that aggregate numbers hide.

    • Generate the table from rule IDs in checks and coverage, and review broken chains first.

    Keep going

    Next: Lesson 2.7, What Not to Check. Checks that forbid legal behaviour, and why over-checking is a bug too.

    Related topics

    • Part 2 overview: Specifications as Checkable Rules

    Previous

    30 / 160

    Next: What Not to Check

    Up next

    Up nextWhat Not to Check

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Intent and the Oracle
    • From Prose to Rules
    • Reference Models