Avalon® 接口规范

ID 683091
日期 5/27/2021
Public
文档目录

3.5.5.2. 读突发(Read Bursts)

读突发类似于具有可变延迟的流水线读传输。读突发有不同的地址和数据阶段。readdatavalid会指示agent出现有效readdata。与流水线读传输不同,单个读突发地址会导致多个数据传输。

读突发规则应用如下:

  • 当一个host直接连接到一个agent时,值为<n>burstcount意味着此agent必须返回<n>个字的readdata才能完成突发。在互连链接到host和agent对的情况下,互连可以抑制从host发送到agent的读命令。例如,如果host发送一个读命令,其中byteenable的值为0,那么互连可能会抑制此读操作。因此,agent不会响应读命令。
  • Agent通过提供readdata和置位readdatavalid一个周期来呈现每个字。readdatavalidjiechureaddata和置位readdatavalid一个周期来呈现每个字。解除置位readdatavalid会延迟突发数据阶段,但不会终止突发数据阶段。
  • 对于burstcount > 1的读操作,Intel建议置位所有byteenables
注: Intel® 建议具有可突发的agent无读取副作用。(此规范不保证host从agent读取多少个字节才满足一个请求。)
图 15. 读突发(Read Burst)下图显示了一个系统,其中两个突发host访问一个agent。注意:在数据返回给Host A之前,Host B能够驱动一个读请求。

此时序图中的编号标识了以下跳变:

  1. Host A在clk的上升沿之后置位address (A0),burstcountread。agent置位waitrequest,导致除了beginbursttransfer之外的所有输入在另一个时钟周期内保持不变。
  2. agent在clk的上升沿捕获A0burstcount。一个新的传输可能在下个周期开始。
  3. Host B驱动address (A1),burstcountread。agent置位waitrequest,导致beginbursttransfer以外的所有输入保持不变。agent最早可以在此时从第一个读请求中返回读数据。
  4. agent呈现有效的readdata并置位readdatavalid,传输host A的数据的第一个字。
  5. 传输host A的第二个字。agent解除置位readdatavalid,暂停读突发。agent端口能够保持readdatavalid解除置位任意数量的时钟周期。
  6. 返回host B的第一个字。