Avalon® 接口规范

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

3.5.1. 典型的读传输和写传输

本节介绍了一个典型的 Avalon® -MM接口,通过agent控制的waitrequest来支持读写传输。通过置位waitrequest信号,agent能够将互连暂停所需的周期。如果一个agent将waitrequest用于读传输或者写传输,那么该agent必须对两者都使用waitrequest

agent通常在时钟的上升沿之后接收addressbyteenableread或者writewritedata。在上升时钟沿之前,agent置位waitrequest来暂停传输。当agent置位waitrequest时,传输延迟。waitrequest置位期间,地址和其他控制信号保持不变。agent接口解除置位waitrequest之后,第一个clk上升沿上的传输完成。

对agent接口暂停的时间长短没有限制。因此,您必须确保agent接口不要无限期置位waitrequest。下图显示了使用waitrequestreadwrite传输。

注:

waitrequest能够从readwrite请求信号中解耦。可在空闲周期置位waitrequest。当waitrequest置位时, Avalon® -MM host可以启动一个事务,并等待此信号解除置位。将waitrequestreadwrite请求进行解耦可以提高系统时序。解耦消除了包含readwritewaitrequest信号的组合环路(combinational loop)。如果要求更多的解耦,那么使用waitrequestAllowance属 性。从 Quartus® Prime Pro v17.1 Stratix® 10 ES版本发布起包含waitrequestAllowance属性。

图 7. 包括Waitrequest的读和写传输

此时序图中的数字标记以下转换:

  1. addressbyteenablereadclk的上升沿后置位。agent置位waitrequest,暂停传输。
  2. waitrequest被采样。由于waitrequest置位,因此周期变成一个等待状态(wait-state)。addressreadwritebyteenable保持不变。
  3. agent在clk的上升沿之后解除置位waitrequest。agent置位readdataresponse
  4. host对readdataresponse和解除置位的waitrequest(完成传输)进行采样。
  5. addresswritedatabyteenablewrite信号在clk的上升沿之后置位。agent置位waitrequest,暂停传输。
  6. agent在clk的上升沿之后解除置位waitrequest
  7. agent采样写数据结束传输。