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. How to Dissect a Protocol

Part 16 · Protocols Dissected · Working (W)

How to Dissect a Protocol

A twenty-question checklist for reading any protocol: five questions about its constraints, then its answer to each of the course's fifteen questions. Used by every page in this part, and by the capstones, to see why a protocol is the way it is.

On this page

    Note

    Level: Working (W) · Answers: How do real protocols answer the fifteen questions?

    Before this: A Protocol Is a Contract

    An engineer opens a 1,200-page protocol specification on their first day on a new project. Read front to back, it is a wall of signal tables, state machines and exceptions. Read with a list of questions in hand (when is data valid? who may send? what happens to an error?), it becomes a set of answers, each one a choice the designers made for a reason. The rest of this part reads fourteen real protocols that way.

    How do you read an unfamiliar protocol quickly and understand why it is the way it is?

    The obvious answer, and why it breaks

    The obvious approach is to read the specification in order and memorise the details. Specifications are organised for implementers, by layer and signal, not by the questions you have. Details memorised without their reasons do not transfer: the next protocol has different signal names and you start again. What transfers is the set of questions every protocol must answer, and the trade-offs between the possible answers.

    The idea: constraints first, then fifteen answers

    Every protocol is a set of answers to the same questions, shaped by its constraints. Start with the constraints, because they explain most of the answers:

    #

    Constraint question

    Why it matters

    C1

    What distance and medium? (on-chip wires, a board, a cable, a package)

    Sets clocking, encoding and error rates

    C2

    What bandwidth and latency targets?

    Sets width, pipelining, concurrency and buffering

    C3

    How many wires or pins?

    Serial or parallel; shared or dedicated signals

    C4

    What topology, and how many agents?

    Point-to-point, bus, switched; arbitration and addressing

    C5

    Who builds each side, and must they interoperate?

    Negotiation, compliance, how strict the rules must be

    Then the fifteen questions of this course, one per part:

    #

    Question

    Explained in

    1

    When is the data valid?

    Part 1

    2

    Where does a message start and end?

    Part 2

    3

    Is the receiver ready?

    Part 3

    4

    How much may I send before I hear back?

    Part 4

    5

    What exactly is being asked?

    Part 5

    6

    How many requests can be in flight?

    Part 6

    7

    In what order do results become visible?

    Part 7

    8

    Who gets the wire?

    Part 8

    9

    Why can it hang?

    Part 9

    10

    What if bits go wrong?

    Part 10

    11

    How do the two sides agree at start-up?

    Part 11

    12

    How do we save power without losing data?

    Part 12

    13

    What if there are several copies of one value?

    Part 13

    14

    Who is allowed to ask?

    Part 14

    15

    How do we know it is correct?

    Part 15

    The method

    Flowchart: answer the five constraint questions; for each of the fifteen questions find the mechanism in the specification; name the alternative it did not choose; explain the choice from the constraints; note what it leaves to other layers or the system; compare with a protocol that chose differently.
    Constraints first; then, for each question, the mechanism, the road not taken, the reason, and what the protocol leaves to others.
    • "Not addressed" is an answer. AXI has no retransmission; UART has no flow control in its frame. Knowing what a protocol leaves to the system is as useful as knowing what it does.

    • Look for the alternative. Every mechanism rejects another: credits instead of ready, invalidate instead of update. Naming it shows you understand the trade.

    • Explain from the constraints. If an answer does not follow from C1 to C5, either the protocol made a mistake or you missed a constraint, often history and compatibility.

    A worked example: DCLink, the course's own protocol

    Question

    DCLink's answer

    C1 to C5

    On-chip or package; moderate bandwidth; few wires; point-to-point hops; one team builds both sides

    Handshake (3)

    Valid/ready on each hop (step 2)

    Flow control (4)

    Credits per hop (step 3)

    Concurrency (6)

    Four tags, out-of-order completion (step 5)

    Deadlock (9)

    Separate request and completion credit pools (step 8)

    Reliability (10)

    CRC-8, sequence numbers, go-back-N replay (step 9)

    Bring-up (11)

    Capability exchange, minimum of both sides (step 10)

    Verification (15)

    Checker, monitor, per-tag scoreboard (step 12)

    Each line names a mechanism and points at the lesson that justifies it. The pages that follow do the same for real protocols, all fifteen questions each.

    How to use this part

    If you want

    Read

    Foundations

    UART, SPI, I2C and APB: simple protocols where every answer is visible

    On-chip buses

    AHB, AXI4, AXI-Stream, then CHI

    High-speed links

    PCI Express, Ethernet, USB, then UCIe and CXL

    Memory

    DDR

    What breaks

    A team (illustrative) integrating a new interface read its specification for signal names and timing only, and assumed errors would be retried as on their previous protocol. This one reported errors and left recovery to the requester; their requester ignored error responses, and corrupted data reached software. Asking question 10 ("what if bits go wrong?") on day one would have found it.

    Why this matters

    Senior lens. When you meet a new protocol, write its twenty answers on one page before reading any detail, then fill in the detail where your project depends on it. The page becomes the team's shared model, shows at a glance what the protocol leaves to the system, and makes comparisons with the protocols you already know immediate.

    Interview

    Asked: "How would you get up to speed on an unfamiliar protocol quickly?"

    Weak answer: Read the spec from start to finish.

    Strong answer: Read it with a checklist. First the constraints: distance and medium, bandwidth and latency, pin budget, topology and number of agents, and who builds each side. Then its answer to each core question: when data is valid, framing, handshake, flow control, transaction types, concurrency, ordering, arbitration, deadlock avoidance, error handling, bring-up, power, coherence, security and verification. For each, I'd note the mechanism, the alternative it rejected, why the constraints led there, and what it leaves to the system. Then compare with a protocol I know.

    Follow-ups: (1) Why start with constraints? (2) Why record what a protocol does not address?

    Check yourself Why is "not addressed" a useful answer?

    It tells you what the system around the protocol must provide, such as retries or flow control, which is where integration bugs hide.

    Check yourself A protocol uses a single shared clock for all agents. Which constraint most likely explains it?

    Short distance (C1): on a chip or a small board, a shared clock is practical.

    Key takeaways

    • Read any protocol with twenty questions: five constraints, then its answer to each of the fifteen.

    • For each answer, name the mechanism, the alternative it rejected, and the constraint behind the choice.

    • "Not addressed" is an answer: it shows what the system must supply.

    Keep going

    Next: Lesson 16.2, UART. The simplest serial protocol, with almost every question answered by "nothing".

    Related topics

    • Part 16 overview: Protocols Dissected

    Previous

    207 / 234

    Next: UART

    Up next

    Up nextUART

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • SPI
    • I2C
    • APB