Avalon® 接口规范

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

3.3. 接口属性

表 10.   Avalon® -MM接口属性
名称 默认值 合法值 描述
addressUnits Host - symbols

Agent -words

words, symbols

指定地址的单位。一个符号(symbol)通常是一个字节。

请参考 Avalon® Memory-Mapped Interface Signal Types表中address的定义来了解此属性的典型用法。

alwaysBurstMaxBurst false true, false 为“true”时,表明host始终发布最大长度的突发。最大突发长度为2 burstcount_width - 1 。此参数对 Avalon® -MM agent接口无效。
burstcountUnits words words, symbols 此属性指定burstcount信号的单位。对于符号(symbol),burstcount值代表突发中符号(字节)的数量。对于字(word),burstcount值代表突发中字传输的数量。
burstOnBurstBoundariesOnly false true, false 如果为“true”,则此接口上出现的突发传输的起始地址是最大突发(单位为字节)的倍数。
constantBurstBehavior Host-false

Agent-false

true, false Hosts:为“true”时,声明host在整个突发事务中保持地址和突发计数(burstcount)常量。如果为false (默认值),则声明host仅保持突发的第一个beat的地址和突发计数常量。

Agents:为true时,声明agent期望地址和burstcount在整个突发中保持不变。如果为false (默认值),那么声明agent仅在突发的第一个beat上对地址和突发计数进行采样。

holdTime(1) 0 0 – 1000 cycles 指定write解除置位与addressdata的解除置位之间的时间(timingUnits)。(仅应用于写事务)
linewrapBursts false true, false 某些存储器件实现封装突发(wrapping burst),而不是递增突发(incrementing burst)。当一个封装突发到达突发边界时,地址回装到之前的突发边界。地址计数只需要低阶比特(low-order bits)。例如,在32-bit接口上每隔32个字节的突发边界对地址0xC的一个封装突发写入以下地址:
  • 0xC
  • 0x10
  • 0x14
  • 0x18
  • 0x1C
  • 0x0
  • 0x4
  • 0x8
maximumPendingReadTransactions (1) 1(2) 1 – 64

Agents: 此参数是agent能够排序的最大数量待定读操作。对于任何具有readdatavalid信号的agent,此值必须非零。

请参考Pipelined Read Transfer with Variable Latency来了解显示此属性的时序图和关于使用waitrequestreaddatavalid及多个未完成的读操作附加信息。

Hosts:该属性是host能够生成的未完成读事务(outstanding read transactions)的最大数量。
注: 请勿将此参数设为0。(对于向后兼容性,软件支持参数设置为0。但是,不应该在新的设计中使用值为0的参数设置)。
maximumPendingWriteTransactions 0 1 – 64

agent能够接受或者host能够发布的待定non-posted写操作(pending non-posted writes)的最大数量。一旦互连(interconnect)达到此限制,agent置位waitrequest,并且host停止发布命令。

默认值为0,允许支持写响应host的无限次待写事务。而支持写响应的agent必须将其设为非零值。
minimumResponseLatency 1   对于支持readdatavalid或者writeresponsevalid的接口,在读或写命令与对命令的响应之间指定周期的最小数量。
readLatency(1) 0 0 – 63 固定延迟 Avalon® -MM agent的读延迟。对于使用固定延迟读取的时序图,请参考Pipelined Read Transfers with Fixed Latency

固定延迟的 Avalon® -MM agent必须对此接口属性提供一个值。可变延迟的 Avalon® -MM agent使用readdatavalid信号来指定有效数据。

readWaitTime(1) 1 0 – 1000 cycles 适用于不使用waitrequest信号的接口。readWaitTime在agent接受一个读命令前以timingUnits表示时序。此时序与agent对waitrequest置位了readWaitTime周期一样。
setupTime(1) 0 0 – 1000 cycles 指定addressdata的置位与readwrite的置位之间的时间(timingUnits)。
timingUnits(1) cycles

cycles,

nanoseconds

指定setupTimeholdTimewriteWaitTimereadWaitTime的单位。同步器件使用周期(cycles)为单位,异步器件使用纳秒(nanoseconds)为单位。几乎所有 Avalon® -MM agent器件都同步。从

桥接 Avalon® -MM agent接口桥接的 Avalon® -MM组件与片外器件可能为异步。此片外器件可能具有固定的总线周转(bus turnaround)设置时间。

waitrequestAllowance 0  

指定waitrequest置位后可发布或接受的传输数量。

waitrequestAllowance为0时,writereadwaitrequest信号保持其现有行为,如 Avalon® -MM Signal Roles表中所描述。

waitrequestAllowance大于0时,writeread置位的每个时钟周期都算作一个命令传输。一旦waitrequest置位,只有waitrequestAllowance更多命令传输是合法的,同时waitrequest保持置位。达到waitrequestAllowance后,只要waitrequest置位,writeread就必须保持解除置位。

一旦waitrequest解除置位,在无任何限制的情况下,传输可随时继续,直到waitrequest再次置位。此时,waitrequestAllowance更多的传输可能完成,而waitrequest仍保持置位。

writeWaitTime(1) 0 0 – 1000 Cycles 适用于不使用waitrequest信号的接口,writeWaitTime指定agent接受写操作前的时间(timingUnits)。此时序与agent对waitrequest置位writeWaitTime周期或者纳秒一样。

关于使用writeWaitTime的时序图,请参考Read and Write Transfers with Fixed Wait-States

接口关系属性
associatedClock N/A N/A 与此 Avalon® -MM接口同步的时钟接口的名称。
associatedReset N/A N/A 对此 Avalon® -MM接口上的逻辑进行复位的复位接口的名称。
bridgesToHost 0 同一组件上的 Avalon® -MM Host名称 一个 Avalon® -MM桥接由一个agent和一个host组成,并具有以下属性:访问需要1个或多个字节的agent会导致host请求相同的字节。Platform Designer组件库中的 Avalon® -MM Pipeline Bridge实现此功能。
注释
  1. 尽管此属性是agent器件的一个特征,但host也可以声明此属性来使能匹配host和agent接口之间的直接连接。
  2. 如果agent接口接受的读传输数量多于允许的数量,那么互连待读FIFO可能会上溢,并产生不可预测的结果。agent可能会失去readdata或者将readdata路由到错误的host接口。甚至,导致系统锁定。agent接口必须置位waitrequest来防止出现上溢。