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
    • Why Flow Control
    • On/Off Flow Control
    • Credit-Based Flow Control
    • Credit Initialisation
    • The Credit Loop and Buffer Sizing
    • Credit Classes and Pools
    • Credit Return Latency and Batching
    • Credit Bugs
    • Window Flow Control
    • Rate-Based Shaping
    • Hop-by-Hop or End-to-End
    • Lossless or Lossy
    • Switching Modes
    • Head-of-Line Blocking
    • Choosing Flow Control
    • Protocols Compared: Flow Control
    • Drills: Flow Control
  • 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. Part 4: Flow Control

Part 4 · Flow Control · All levels

Part 4: Flow Control

How much may I send before I hear back? Explain credit-based flow control and its conservation invariant.

  • 17topics
  • 17lessons
On this page

    Part 4 answers: How much may I send before I hear back?

    Where Part 4 sits among the fifteen questions of the course.

    A handshake works when the receiver can answer within a cycle. Over a long, pipelined path the answer arrives late, and everything sent in the meantime needs somewhere to land. Flow control decides how much the sender may send before it hears back.

    This part covers stop/go, credits, windows and rate limits; how to size buffers from the round trip; credit classes and their bugs; hop-by-hop versus end-to-end control; lossless versus lossy networks; switching modes; head-of-line blocking; and a decision guide.

    After this part you can

    • Explain credit-based flow control and its conservation invariant.

    • Size a receiver buffer from bandwidth and round-trip time.

    • Choose between valid/ready, on/off and credits for a given link.

    Warm-up: three questions from Part 3

    Answer each in your head before opening it. If two or more feel shaky, revisit Part 3: Handshakes first.

    Check yourself When does a valid/ready transfer happen?

    On a rising clock edge where valid and ready are both high. Both sides see the same two signals, so they always agree on whether the data moved.

    Check yourself Why must valid not wait for ready?

    If the sender waited for ready while the receiver waited for valid, neither would ever assert its signal: a deadlock.

    Check yourself Why does a registered ready need a two-entry skid buffer?

    The sender learns about a stall one cycle late, so one more word can arrive after ready falls. The second entry catches it without dropping it.

    Lessons

    #

    Lesson

    Level

    Status

    4.1

    Why Flow Control

    F · Foundation

    Ready

    4.2

    On/Off Flow Control

    W · Working

    Ready

    4.3

    Credit-Based Flow Control

    F · Foundation

    Ready

    4.4

    Credit Initialisation

    W · Working

    Ready

    4.5

    The Credit Loop and Buffer Sizing

    S · Senior

    Ready

    4.6

    Credit Classes and Pools

    S · Senior

    Ready

    4.7

    Credit Return Latency and Batching

    S · Senior

    Ready

    4.8

    Credit Bugs

    S · Senior

    Ready

    4.9

    Window Flow Control

    W · Working

    Ready

    4.10

    Rate-Based Shaping

    S · Senior

    Ready

    4.11

    Hop-by-Hop or End-to-End

    S · Senior

    Ready

    4.12

    Lossless or Lossy

    W · Working

    Ready

    4.13

    Switching Modes

    S · Senior

    Ready

    4.14

    Head-of-Line Blocking

    W · Working

    Ready

    4.15

    Choosing Flow Control

    P · Principal

    Ready

    —

    Protocols compared

    all levels

    Ready

    —

    Drills and checkpoint

    all levels

    Ready

    Every lesson in this part is ready. Work through them in order: each one sets up the problem the next one solves.

    Tip

    DCLink in this part. Step 3: credit flow control over a pipelined wire. DCLink is the small protocol you build across the course; see How to use this course.

    Where other courses go deeper

    This course teaches why protocols are designed the way they are. These lessons show how to build or sign off the same ideas, so this part links to them instead of repeating them.

    • Architecture: Credit Flow Control and Buffers

    • RTL: Synchronous FIFO

    Related topics

    • Course hub

    • Previous: Part 3 · Handshakes

    • Next: Part 5 · Transactions

    PreviousNext: Why Flow Control

    Up next

    Up nextWhy Flow Control

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • How to Use This Course
    • Reading Paths
    • Concept Map