Avalon® Interface Specifications

ID 683091
Date 1/24/2022

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents Read Bursts

Read bursts are similar to pipelined read transfers with variable latency. A read burst has distinct address and data phases. readdatavalid indicates when the agent is presenting valid readdata. Unlike pipelined read transfers, a single read burst address results in multiple data transfers.

These rules apply to read bursts:

  • When a host connects directly to a agent, a burstcount of <n> means the agent must return <n> words of readdata to complete the burst. For cases where interconnect links the host and agent pair, the interconnect may suppress read commands sent from the host to the agent. For example, if the host sends a read command with a byteenable value of 0, the interconnect may suppress the read. As a result, the agent does not respond to the read command.
  • The agent presents each word by providing readdata and asserting readdatavalid for a cycle. Deassertion of readdatavalid delays but does not terminate the burst data phase.
  • For reads with a burstcount > 1, Intel recommends asserting all byteenables.
Note: Intel® recommends that burst capable agents not have read side effects. (This specification does not guarantee how many bytes a host reads from the agent in order to satisfy a request.)
Figure 15.  Read BurstThe following figure illustrates a system with two bursting hosts accessing a agent. Note that Host B can drive a read request before the data has returned for Host A.

The numbers in this timing diagram, mark the following transitions:

  1. Host A asserts address (A0), burstcount, and read after the rising edge of clk. The agent asserts waitrequest, causing all inputs except beginbursttransfer to be held constant through another clock cycle.
  2. The agent captures A0 and burstcount at this rising edge of clk. A new transfer could start on the next cycle.
  3. Host B drives address (A1), burstcount, and read. The agent asserts waitrequest, causing all inputs except beginbursttransfer to be held constant. The agent could have returned read data from the first read request at this time, at the earliest.
  4. The agent presents valid readdata and asserts readdatavalid, transferring the first word of data for host A.
  5. The second word for host A is transferred. The agent deasserts readdatavalid pausing the read burst. The agent port can keep readdatavalid deasserted for an arbitrary number of clock cycles.
  6. The first word for host B is returned.