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
  • How to Read the Diagrams
  • Part 0: What Is a Protocol?10
  • Part 1: Timing and Clocking11
  • Part 2: Encoding and Framing12
  • Part 3: Handshakes13
  • Part 4: Flow Control17
  • Part 5: Transactions19
  • Part 6: Concurrency and Performance17
  • Part 7: Ordering13
  • Part 8: Sharing and Arbitration12
  • Part 9: Deadlock and Liveness13
  • Part 10: Reliability and Recovery20
  • Part 11: Bring-Up and Link Management10
  • Part 12: Power8
  • Part 13: Shared State and Coherence9
  • Part 14: Security and Isolation7
  • Part 15: Specifying and Verifying11
  • Part 16: Protocols Dissected17
    • How to Dissect a Protocol
    • UART
    • SPI
    • I2C
    • APB
    • AHB
    • AXI4
    • AXI-Stream
    • PCI Express
    • DDR
    • CHI
    • Ethernet
    • USB
    • UCIe
    • CXL
    • Protocols Compared: Protocols Dissected
    • Drills: Protocols Dissected
  • Part 17: Capstones5
  • Part 18: Interview Preparation6
Loading lesson

‹Part 16: Protocols Dissected
  1. Topics
  2. First Principles of Hardware Protocols
  3. Part 16: Protocols Dissected
  4. Protocols Compared: Protocols Dissected

Part 16 · Protocols Dissected · All levels

Protocols Compared: Protocols Dissected

Fourteen protocols side by side on the questions that separate them most: timing, handshake, flow control, concurrency, ordering, errors and bring-up.

On this page

    Each row is one protocol; each column one question. Read down a column to see the range of answers to one question, and across a row to see how one protocol's answers fit its constraints. Details and sources are on each protocol's page.

    Timing, handshake and flow control

    Protocol

    When is data valid?

    Is the receiver ready?

    How much may I send?

    UART

    No clock; start bit re-aligns

    No

    Nothing in the frame (RTS/CTS optional)

    SPI

    Master's clock

    No

    Master paces everything

    I2C

    Master's clock, stable while SCL high

    ACK per byte; clock stretching

    Per byte

    APB

    Common clock

    PREADY wait states

    One transfer

    AHB

    Common clock

    HREADY wait states

    One in the data phase

    AXI4

    Common clock

    VALID/READY per channel

    READY back-pressure

    AXI-Stream

    Common clock

    TVALID/TREADY

    TREADY back-pressure

    PCI Express

    Embedded clock, CDR

    Credits

    Six credit types

    DDR

    Strobes (DQS)

    No: fixed latency

    Controller owns timing

    CHI

    On-chip clocks

    Link credits

    Link and protocol credits

    Ethernet

    Embedded clock

    No per-frame handshake

    Lossy; PAUSE/PFC optional

    USB

    Recovered from transitions

    ACK/NAK/STALL to host tokens

    NAK

    UCIe

    Forwarded clock

    Inherited credits

    Inherited credits

    CXL

    Embedded clock (PCIe PHY)

    Credits

    Per protocol and class

    Concurrency, ordering, errors and start-up

    Protocol

    How many in flight?

    In what order?

    What if bits go wrong?

    Start-up

    UART

    One character

    As sent

    Parity, framing error

    Pre-configured

    SPI

    One transaction

    As shifted

    Nothing

    Pre-configured

    I2C

    One transaction

    Strict

    Missing ACK only

    Fixed addresses

    APB

    One

    Strict

    PSLVERR

    Fixed map

    AHB

    Pipeline of two

    Strict

    ERROR response

    Fixed map

    AXI4

    Many, by ID

    Per ID

    SLVERR/DECERR, no retry

    Reset rules

    AXI-Stream

    One beat per cycle

    Per stream

    Not addressed

    Reset rules

    PCI Express

    Many, by tag

    Ordering table

    LCRC + replay, ECRC, FEC (Gen6)

    LTSSM, enumeration

    DDR

    Many banks

    Controller reorders, same-address order kept

    ECC DIMMs

    Training

    CHI

    Many, by TxnID

    Home node per address

    Error responses, poison

    LinkActive

    Ethernet

    Many frames

    Per link; end to end above

    CRC-32 then drop; FEC

    Auto-negotiation

    USB

    One per bus (USB 2.0)

    Per endpoint

    CRC + retry, DATA0/1

    Enumeration

    UCIe

    Inherited

    Inherited

    CRC + retry in adapter

    Training + negotiation

    CXL

    Many, per protocol

    .io as PCIe; own rules for .cache/.mem

    CRC + retry

    Negotiated in PCIe training

    What the tables show

    • Distance decides clocking: shared clocks on chip, strobes on boards, embedded clocks over connectors and cables, forwarded clocks again inside packages.

    • Handshakes become credits as soon as round trips grow or links get long.

    • Concurrency arrives with latency: protocols facing DRAM or long links add IDs, tags and ordering rules.

    • Reliability follows the error rate: nothing on chip, detection on simple serial buses, replay and FEC on fast links.

    • Interoperability brings bring-up: negotiation, enumeration and compliance appear wherever unknown partners meet.

    Tip

    Pick any two protocols and explain each column difference from their constraints; that is the core skill this part trains.

    Keep going

    Next: Drills: Protocols Dissected. Interview questions, a whiteboard exercise and a ten-question checkpoint for Part 16.

    Related topics

    • Part 16 overview: Protocols Dissected

    • Course hub

    Previous

    222 / 234

    Next: Drills: Protocols Dissected

    Up next

    Up nextDrills: Protocols Dissected

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • How to Dissect a Protocol
    • UART
    • SPI