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
  • 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
    • Functional Safety Verification
    • Security Verification
    • Low-Power Verification Strategy
    • CDC and RDC in the Plan
    • Verifying Processors
    • Verifying AI Accelerators
    • Verifying Configurable IP
    • Drills: Verification in Context
  • Part 16: Case Studies5
  • Part 17: Capstones5
  • Part 18: Interview Preparation6
Loading lesson

‹Part 15: Verification in Context
  1. Topics
  2. First Principles of Verification Strategy
  3. Part 15: Verification in Context
  4. Security Verification

Part 15 · Verification in Context · Principal (P)

Security Verification

Functional verification checks that the design does what it should; security verification checks that it does nothing it must not, even under an adversary who chooses inputs, timing and faults. Security properties are about information flow and absence of behaviour, which ordinary scoreboards rarely express. What security properties look like, how they are verified, and DCRouter's port isolation as an example.

On this page

    Note

    Level: Principal (P) · Answers: What changes for safety, security, processors and AI hardware?

    Before this: Functional Safety Verification

    Suppose DCRouter's ports belong to different tenants, and a disabled port must keep one tenant's traffic out. BUG_23 (a disabled port still accepts traffic) was, in Part 1, a configuration bug. In a security setting it is an isolation breach that an attacker would look for deliberately. And even a correct DCRouter might leak something subtler: whether another tenant is sending, visible as the delay its own packets see at a shared output.

    How do you verify a security property?

    The obvious answer, and why it breaks

    The obvious approach is to add security tests to the functional plan. Functional tests check expected behaviour on expected inputs; an attacker chooses the unexpected ones, including timing and induced faults, and security failures are often about what the design reveals rather than what it computes. In Spectre and Meltdown every architectural result was correct and data still leaked (fact C3).

    The idea: properties about what must not happen

    Kind of property

    Example

    How verified

    Access control

    A disabled port never accepts traffic; a register is writable only in secure mode

    Assertions and formal (DCRouter's R1 assertion)

    Information flow (confidentiality)

    Data from tenant A never reaches tenant B's outputs or registers

    Information-flow tracking (taint) in simulation or formal

    Integrity

    Untrusted inputs never change trusted state

    Formal and taint analysis

    Timing side channels

    Observable timing does not depend on secret data

    Timing analysis, formal non-interference checks, measurement

    Fault attacks

    Glitches or flipped bits cannot bypass a check

    Fault injection (lesson 15.1) aimed at security decisions

    Debug and test access

    Scan and debug ports locked in the field

    Directed tests and formal on lock logic

    DCRouter's isolation, as a security property

    • Access: a disabled port's in_rdy is never high (R1); formal can prove it for every input sequence, not just tested ones.

    • Flow: a packet from input A appears only at its destination output, never in another tenant's registers; a taint check would tag A's data and assert it never reaches B's outputs.

    • Timing: input B's packets wait longer when input A is busy at the same output; that delay reveals A's activity. Whether it matters is a threat-model decision, and removing it needs a different arbitration policy (time slots), not a bug fix.

    Verifying security in practice

    • Start from a threat model: assets, attackers, what they control.

    • Write security properties as negatives, then prove them where possible: absence of behaviour is what formal does best.

    • Track information flow: taint propagation shows where secrets can travel.

    • Attack the design: fault injection and fuzzing at security decision points.

    • Review debug, test and reset paths: classic ways around protections.

    How real teams verify security

    Practice

    Purpose

    Threat models and security requirements in the plan

    Security features verified like any other, with negative properties

    Formal and information-flow tools on security blocks

    Absence of leaks and bypasses proved

    Red-team reviews and fault-injection campaigns

    Attacker thinking applied before silicon

    What breaks

    Spectre and Meltdown are the canonical example (lesson 16.4): processors that passed every functional check, because every architectural result was right, leaked data through cache timing after speculative execution. No functional scoreboard could have flagged it; only properties about what must not be observable could.

    Why this matters

    Principal lens. Treat security as properties about absence (no access, no flow, no observable dependence) under an attacker who controls inputs, timing and faults. Start from a threat model, prove the negative properties where possible, track information flow, and attack the design with faults and fuzzing. Correct results are not evidence of no leaks.

    Interview

    Asked: "How do you verify a security property?"

    Weak answer: Write tests that try to break it.

    Strong answer: Start from a threat model, then write the property as something that must not happen: no access without permission, no flow of secret data to untrusted outputs, no timing that depends on secrets, no fault that bypasses a check. Negative properties suit formal, which can prove absence over all inputs; information-flow or taint tracking shows where secrets travel; fault injection and fuzzing attack the decision points. Functional correctness isn't enough: Spectre and Meltdown leaked data while every architectural result was correct.

    Follow-ups: (1) What is information-flow tracking? (2) How is a timing channel verified?

    Check yourself Why is BUG_23 more serious in a multi-tenant setting than in Part 1's classification?

    It becomes an isolation breach that an attacker can seek out deliberately, not just a configuration mistake.

    Check yourself Why can't a functional scoreboard detect a timing side channel?

    Every output is correct; the leak is in when outputs appear, which depends on secret activity, and the scoreboard does not check timing as information.

    Key takeaways

    • Security verification checks what must not happen, under an adversary.

    • Write negative properties (access, flow, timing, faults) and prove them where possible.

    • Correct results are not evidence of no leaks.

    Keep going

    Next: Lesson 15.3, Low-Power Verification Strategy. Power intent in the verification plan.

    Related topics

    • Part 15 overview: Verification in Context

    Previous

    138 / 160

    Next: Low-Power Verification Strategy

    Up next

    Up nextLow-Power Verification Strategy

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • CDC and RDC in the Plan
    • Verifying Processors
    • Verifying AI Accelerators