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
  • 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
On this page

    Start hereAll levels

    How to Read the Diagrams

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

    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 lessonPrevious 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.