Skip to main content

AMBA Protocol Handshake: VALID and READY Explained

AMBA Protocol Series · Part 8 of 10

AMBA Protocol Handshake: VALID and READY Explained


The exact handshake rules, timing requirements, backpressure behavior, and the design mistakes that cause the majority of real-world AXI protocol violations.

AMBA Protocol Series: From APB & AHB to AXI — A Complete Guide for VLSI Engineers

We introduced VALID/READY on Day 5, but the handshake has a small set of precise rules that RTL designers violate surprisingly often — and that verification engineers are expected to check with protocol assertions (which we'll formalize on Day 18). This post is the definitive reference for those rules.

1.The Basic Handshake Rule

A transfer on any AXI channel occurs on the rising clock edge where both VALID (driven by the source) and READY (driven by the destination) are sampled high at the same time. Neither signal alone means anything — it's the AND of both that defines a completed beat.

2.Rule: VALID Must Not Wait for READY

The AXI specification explicitly forbids a source from waiting to see READY asserted before it asserts VALID. This rule exists to prevent a combinational deadlock: if the source waits for READY and the destination waits for VALID before responding, neither signal ever goes high and the bus locks up permanently.

🚫 Deadlock Pattern to Avoid
If your RTL combinationally derives VALID from READY (e.g., assign AWVALID = AWREADY;) or vice versa in a way that creates a dependency loop, you have a classic AXI deadlock bug. VALID must be generated independently of the current cycle's READY.

READY, in contrast, is allowed to depend on VALID — a destination can legally wait to see VALID before deciding to assert READY. The restriction is one-directional.

3.Rule: VALID Cannot Be Deasserted Before the Transfer

Once a source asserts VALID, it must hold it high — along with all associated data/control signals stable — until the cycle where READY is also sampled high and the transfer actually completes. VALID cannot be withdrawn "because it's taking too long," and the data behind it cannot change mid-wait.

READY has no equivalent restriction: a destination is free to assert and deassert READY on any cycle, whether or not VALID is currently high.

4.Backpressure: What READY Actually Controls

READY is how a slower consumer signals a faster producer to pause. In practice:

  • A FIFO-backed slave typically drives READY based on available buffer space — deasserting it when the FIFO is full.
  • A master reading from a slow memory might deassert ARREADY... wait, ARREADY is actually the slave's signal on the AR channel; the master would deassert RREADY if its own receive buffer is full.
  • Backpressure can propagate: a full downstream buffer causes an upstream block to deassert its own READY, which cascades further upstream — this is exactly how flow control works across a chain of AXI-Stream blocks too.
Legal Handshake Sequence — Slave Adds Wait States // Cycle 1: master asserts VALID, address/data stable, slave not ready yet AWVALID = 1, AWADDR = 0x2000, AWREADY = 0 // Cycle 2: still waiting — AWADDR MUST remain 0x2000, unchanged AWVALID = 1, AWADDR = 0x2000, AWREADY = 0 // Cycle 3: slave finally asserts ready — transfer completes this cycle AWVALID = 1, AWADDR = 0x2000, AWREADY = 1

5.Common Design Mistakes

  • Combinational VALID-READY loops — the deadlock pattern described above.
  • Changing data/control signals while VALID is asserted but READY hasn't arrived yet — a frequent RTL bug, especially when the data comes from a mux that's also being updated by unrelated logic.
  • Deasserting VALID after asserting it, before the transfer completes — often introduced accidentally when a state machine resets a "request pending" flag on the wrong condition.
  • Forgetting that WLAST/RLAST must align exactly with the final data beat — an off-by-one error here silently corrupts burst boundaries.

Recap: What We Covered Today

  • A transfer happens when VALID and READY are both sampled high on the same edge.
  • VALID must never wait for READY (prevents deadlock); READY may legally wait for VALID.
  • Once asserted, VALID and its accompanying signals must stay stable and high until the transfer completes.
  • READY implements backpressure and can be asserted/deasserted freely by the destination.
Coming Up — Day 9

AMBA Protocol Verification Using UVM

Tomorrow we shift from RTL to verification: building a UVM environment around an AMBA VIP — driver, monitor, scoreboard, assertions, functional coverage, and representative testcases.

◀ Day 7: AXI Burst Transactions Day 8 of 10 Day 9: AMBA Verification with UVM ▶

Comments

Popular posts from this blog

Module 1 — SystemVerilog Basics

VLSI Verification  •  SystemVerilog Series Module 1 — SystemVerilog Basics A complete, example-driven walkthrough of SystemVerilog fundamentals: data types, variables vs nets, arrays of every flavor, strings, enums, structs, unions, and typedef — the building blocks every verification engineer needs before UVM. 🧩 Beginner → Intermediate ⏱ ~25 min read 💻 Code Examples Included 📑 Table of Contents Introduction to SystemVerilog Verilog vs SystemVerilog Data Types: 2-State vs 4-State Logic Variables and Nets Arrays: Packed vs Unpacked Dynamic Arrays Queues Associative Arrays Strings Enumerations Structures Unions Typedef 1 Introduction to SystemVerilog SystemVerilog (IEEE 1800) is a unified hardware description and verification language (HDVL). It extends Verilog (IEEE 1364) with powerful constructs for design (interfaces, always_comb/always_ff, enhanced d...

GPU Memory System & Interconnect: How Data Travels Inside a Modern GPU

GPU Memory System & Interconnect: How Data Travels Inside a Modern GPU Modern GPUs deliver incredible computing power by processing thousands of operations simultaneously. While compute cores often receive the spotlight, the real performance of a GPU depends heavily on how efficiently data moves between memory and compute units. A GPU memory system is designed to provide extremely high bandwidth while keeping latency as low as possible. This is achieved through a collection of specialized hardware components working together, including the Memory Controller, HBM/GDDR memory, Crossbar, Network-on-Chip (NoC), DMA Engine, PCIe Interface, and NVLink. In this article, we'll explore each component in detail and understand how they collectively enable high-performance parallel computing. Why Does GPU Memory Matter? Every GPU application—from gaming and graphics rendering to AI model training and scientific simulations—requires continuous movement of enormous amounts of data. For examp...

Clock Domain Crossing (CDC): A Complete Beginner's Guide to Metastability, Synchronizers & Safe Data Transfer

Clock Domain Crossing (CDC): A Complete Beginner's Guide to Metastability, Synchronizers & Safe Data Transfer Modern System-on-Chip (SoC) designs rarely operate with a single clock. Instead, different modules such as CPUs, GPUs, memory controllers, communication interfaces, and peripherals often run at different clock frequencies or even use completely independent clock sources . When data moves from one clock domain to another, timing uncertainty can cause serious problems such as metastability , data corruption , and unpredictable system behaviour . This challenge is known as Clock Domain Crossing (CDC) . CDC is one of the most important topics in ASIC Design , RTL Design , ASIC Verification , FPGA Design , and SoC Architecture . Every modern chip—from smartphones to automotive processors—uses CDC techniques to ensure reliable communication between multiple clock domains. In this article, we'll explore CDC fundamentals, metastability, synchronization techniques, asynchro...

AXI Verification Interview Questions and Real-World Debugging

AMBA Protocol Series · Part 10 of 10 AXI Verification Interview Questions and Real-World Debugging Common protocol violations, how to read them off a waveform, and a curated set of interview questions with concise, correct answers — the capstone of the core 10-day series. AMBA Protocol Series: From APB & AHB to AXI — A Complete Guide for VLSI Engineers This wraps up the core 10-day series. Everything here draws directly on Days 1–9 — if any answer below feels unfamiliar, that's a good signal for which earlier post to revisit. (If you want to go further, see the 20-day extended list at the end of this post.) In This Article Common Protocol Violations Debugging From a Waveform Interview Questions and Answers Series Recap Extending the Series 1. Common Protocol Violations VALID deasserted before handshake — a source drops VALID before READY ever went high (violates the Day 8 stabi...

Cache Basics and Cache Mapping Techniques

  Cache Basics and Cache Mapping Techniques  Modern processors execute billions of instructions every second. However, processor speed has increased much faster than main memory (RAM) speed. This difference, known as the memory wall , creates a performance bottleneck because the CPU often has to wait for data from slower memory. To solve this problem, computer systems use cache memory —a small, high-speed memory located between the CPU and the main memory. In this article, we will understand the fundamentals of cache memory, the principle of locality, cache organization, and the three major cache mapping techniques. What is Cache Memory? Cache memory is a small, high-speed memory that stores copies of frequently accessed data from the main memory. Since accessing cache is much faster than accessing RAM, the CPU first checks whether the required data is available in the cache. If the data is found in the cache, it is called a cache hit . Otherwise, the CPU fetches the dat...

Timing Basics in Static Timing Analysis (STA): Delay Models, Sequential Timing, and Wire Delays

Timing Basics in Static Timing Analysis (STA) Static Timing Analysis (STA) is one of the most important verification techniques used in modern VLSI design. Before a chip is manufactured, engineers must verify that every signal reaches its destination within the required clock period. Even if a design passes functional simulation, it may still fail after fabrication because of timing violations. Unlike simulation, Static Timing Analysis mathematically analyzes every timing path without applying input test vectors. This makes STA significantly faster and capable of analyzing millions of timing paths efficiently. Table of Contents What is Static Timing Analysis? Why STA is Required Propagation Delay Contamination Delay Cell Delay Models Combinational Gate Delay Sequential Timing Setup Time Hold Time Wire Delay RC Delay Model PVT Corners Worked Examples Interview Questions Key Takeaways What is Static Timing Analysis? Static Ti...

Computer Architecture Interview Question Part 1

Skip to content Computer Architecture Interview Series Part 1 · CPU Basics · RISC vs CISC · ISA 50 Most Asked Computer Architecture Interview Questions (Part 1) The foundational round every VLSI, ASIC, and CPU design interview opens with: instruction set architecture, RISC vs CISC trade-offs, Von Neumann vs Harvard design, registers, endianness, and the fetch-decode-execute cycle — explained the way interviewers actually expect you to answer.  40 Questions (Q1–Q40) ⌛ 22 min read  VLSI & Computer Architecture Interviews On this page Foundations of Computer Architecture RISC vs CISC — Core Differences Von Neumann, Harvard & the Semantic Gap Architecture Styles, Endianness & Registers ILP, VLIW, Superscalar & Amdahl's Law Register Files, Microcontrollers & the Fetch Cycle Tip...