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
  • Part 17: Capstones5
  • Part 18: Interview Preparation6
Loading lesson

‹First Principles of Hardware Protocols
  1. Topics
  2. First Principles of Hardware Protocols
  3. How to Read the Diagrams

Start here · All levels

How to Read the Diagrams

The course's waveform, block-diagram, sequence-diagram and formula conventions.

On this page

    The course uses four kinds of picture and a small set of symbols. Five minutes here saves confusion in every lesson.

    Waveforms

    • One slot is one clock cycle, sampled just after the rising edge. Slot 0 is the leftmost column.

    • A single-bit lane is high or low. A bus lane shows its value in a box, and a new box starts only when the value changes.

    • A bus value means something only while its valid signal is high. In the waveform above, the data lane still shows 2 in slots 6 and 7, but vld is low, so nothing is offered.

    • Every lesson follows its waveform with a How to read it list naming slots and values. Read the two side by side.

    Block diagrams: the canonical figure

    The figure most lessons build on. Its parts mean the same thing everywhere in the course.
    • Boxes are agents (sender, receiver, arbiter). Their title says which.

    • Arrows are channels; the label names what travels on them. The forward channel is on top, the return path below.

    • Small boxes with a notch on a channel are pipeline registers: each adds one cycle of delay.

    • Counters show a number the agent keeps (credits, an expected sequence number). Slots show a buffer; shaded slots are occupied.

    • Coloured lines highlight the channel a lesson is about. Colour never carries meaning on its own: the labels always say the same thing.

    Sequence diagrams

    Message exchanges between two or more agents use sequence diagrams. Time runs downwards; each arrow is one message. A solid arrow is a request or data; a dashed arrow is a reply. An arrow ending in a cross is a message lost or corrupted on the way.

    Formulas and symbols

    Symbol

    Meaning

    L

    Pipeline stages on a channel, each way

    B

    Receiver buffer depth, in flits or bytes as stated

    RTT

    Round-trip time of whatever must come back (a credit, an acknowledgement), in cycles or nanoseconds as stated

    n

    Width of a sequence-number or tag field, in bits

    r

    A rate as a fraction of one item per cycle

    The relation you will meet most often:

    buffer≥bandwidth×round-trip time

    Code markers

    • No marker: a complete program that runs and prints PASS.

    • // snippet: a fragment that shows one idea.

    • // bad-example: code shown as a mistake. Never copy it.

    Numbers taken from a published specification name it. Every other number is marked illustrative and is arithmetically consistent.

    Related topics

    • Course hub

    • How to use this course

    Previous

    4 / 234

    Next: Part 0: What Is a Protocol?

    Up next

    Up nextPart 0: What Is a Protocol?

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • How to Use This Course
    • Reading Paths
    • Part 1: Timing and Clocking
    clkvldrdydata012345xfer
    A waveform from lesson 3.3. Every waveform in the course is the output of a real simulation of the code on the same page.