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

  • How to Use This Course
  • Protocol Metrics Reference
  • Protocols Glossary
  • Reading Path
  • Protocol Fundamentals25
    • Layering & Transaction Model
      • Layering & Transaction Model: Concepts
      • Layering & Transaction Model: Integration
      • Layering & Transaction Model: Debug
      • Layering & Transaction Model: Interview
      • Layering & Transaction Model: Deep Dive
      • Layering & Transaction Model: Worked Examples
    • Handshake & Backpressure
    • Ordering & Outstanding Rules
    • Bandwidth & Latency Budgeting
    • Protocol Fundamentals: Tricky Q&A
  • AMBA Family (APB / AHB / AXI)17
  • Coherence Fabrics (ACE / CHI)17
  • Memory Interfaces (DDR / LPDDR / HBM)17
  • PCIe & CXL17
  • Embedded Peripherals (I2C / SPI / UART)17
  • High-Speed I/O (USB / Ethernet / MIPI)17
  • Protocol Verification & Compliance17
  • Protocols Interview Prep5
  • Interface Protocols Cheatsheet
Loading lesson

←Layering & Transaction Model
  1. Topics
  2. Bus Protocols
  3. Protocol Fundamentals
  4. Layering & Transaction Model
  5. Layering & Transaction Model: Worked Examples
On this page

    Interface ProtocolsAll levels

    Layering & Transaction Model: Worked Examples

    Worked Examples for Layering & Transaction Model.

    Worked examples

    Stale DMA data after CPU write

    Setup: CPU writes config buffer, kicks DMA to read it. DMA reads zeros. CPU write waveform looks correct. DMA read waveform looks correct. Block VIP passes.

    Analysis

    1. Tag CPU write txn: id=2 addr=0x8000_1000. Tag DMA read txn: id=7 addr=0x8000_1000.

    2. Check CPU write cacheable/shareable attributes on AW channel.

    3. Trace path: CPU -> L2 -> interconnect -> DRAM. DMA path: DRAM direct.

    4. Under the stated non-coherent DMA model, discover that the bridge changes the attribute/domain so the CPU's dirty cache line is not observed by the DMA path.

    5. Apply the platform DMA API's direction-specific ownership/cache-maintenance contract, use a suitable non-cacheable allocation, or provide a correctly configured hardware-coherent path; do not prescribe a generic clean-plus-invalidate sequence.

    Outcome: For this defined model, the bridge changed the coherency contract. The repair must align allocation, DMA ownership/cache maintenance and hardware participation with the platform specification.

    Lesson: Locally legal handshakes do not establish that two agents observe the same data version; trace the attribute and ownership contract end to end.

    Intermittent wrong register value

    Setup: Firmware reads STATUS register, sometimes gets 0xDEADBEEF (reset value) instead of live status. 1 in 50 reads. No bus errors.

    Analysis

    1. Correlate failures with concurrent DMA on same peripheral.

    2. STATUS at 0x1000, NEXT_REG at 0x1004. Firmware uses 32-bit reads.

    3. Bridge to peripheral is 64-bit. Bridge merges adjacent register reads.

    4. When DMA interleaves, bridge issues 64-bit read spanning 0x1000-0x1007.

    5. Upper 32 bits from wrong cycle aliased into STATUS read.

    Outcome: Width conversion bridge served wrong 32-bit lane. Fix: peripheral supports byte strobes, bridge config for narrow access.

    Lesson: Transaction layer includes access width and byte enables — not just address.

    Previous

    10 / 154

    Next: Handshake & Backpressure

    Up next

    Up nextHandshake & Backpressure

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • Layering & Transaction Model: Concepts
    • Layering & Transaction Model: Integration
    • Layering & Transaction Model: Debug