安德鲁

[翻译].Avalon接口规范——Ch 3 Avalon-MM接口.[Avalon]

0
阅读(5709)

Ch 3 Avalon-MM接口

 

3.1 导言

Avalon存储映射(Avalon-MM)接口被用在属于存储映射系统的主端或从端组件的读写接口中。这些组件包括微处理器、存储器、URAT以及定时器等,并带有使用系统互连结构连接的主端和从端。Avaon-MM接口所能描述的组件种类非常之广,从支持简单的固定周期的读写传输的SRAM接口,到更加复杂的可突发传输的流水线接口。图3-1所示为一典型系统,并高亮显示了与系统互连机构连接的Avalon-MM从接口。

图3-1 聚焦于Avalon-MM从端传输之上

 

Avaon-MM接口包括以下特征:

  • 精确地定义组件与互联机构之间的点对点连接
  • Freedom ro implement only the required subset of signals
  • 可变的数据位宽:8、16、32、64、……、1024
  • 自动生成互联

典型的Avalon-MM组件只包括组件逻辑所需的信号。图3-2所示的16位通用IO外设,由于只响应读请求,因此只包括读传输所需的从端信号。

图3-2 从组件的例子

 

Avalon-MM从端的每个信号都准确地对应一种Avalon-MM信号类型。一个Avalon-MM端口,仅可使用一个带有各种信号类型的实体。

 

3.2 从端

表3-1是组成Avalon-MM从端的信号类型列表。本规范不要求所有信号都在一个Avalon-MM从端内存在。最低要求是,只读接口有readdata信号,只写接口有write和writedata信号。

表3-1 Avalon从端口信号(1)

 

信号类型

位宽

方向

必须

描述

基础信号

read
read_n
1 输入 被声明以指示read传输。若存在,则readdata必需。
write
write_n
1 输入 被声明以指示write传输。若存在,则writedata必需。
address 1-32 输入 指定从端寻址空间的偏移地址。从端地址选择从端数据。比如,address=0选定第一块<从端数据位宽>位的从端数据;address=1选定第二块<从端数据位宽>位的从端数据。
readdata 8、16、32、64、128、256、512、1024 输出 读取的数据由从端提供,以响应read传输。
writedata 8、16、32、64、128、256、512、1024 输入 来自系统互联机构的数据,用于写传输。如果readdata与其都存在的话,其位宽必须与readdata的一致
byteenable
byteenable_n
1、2、4、8、16、32、64、128 输入 使能指定字节的传输。
byteennable的位对应writedata和readdata的字节。写时,字节使能指定哪些字节被写入,其他字节则被从端忽视。读时,字节使能指示主端在读哪些字节。只需简单返回无副作用的readdata的从端,可自由地在读时忽略字节使能。
When more than one bit is asserted, all asserted lanes are adjaent。相邻的行数必须是2的次方,并且指定的字节必须对齐一个数据的地址边界。以下的值对于32位的从端是合法的:
1111   写完整的32位
0011   写低位的两个字节
1100   写高位的两个字节
0001   只写字节0
0010   只写字节1
0100   只写字节2
1000   只写字节3
begintransfer 1 输入 由系统互联机构声明,用于在每一次传输的第一个周期内忽略waitrequest及其他信号

等待状态信号

waitrequest
waitrequest_n
1 输出 当从端无法回应read和write请求时,由从端声明。声明后,从端的控制信号,除了begintransfer和beginbursttransfer以外,其他的都保持为常量,如页3-13图3-7所描述。Avalon-MM从端在空闲的周期可声明waitrequest。当waitrequest被声明后,Avalon-MM主端可初始化一次处理。Avalon-MM从端的设计必须考虑这三种情况。
arbiterlock
arbiterlock_n
1 输入 暂时省略。

流水线信号

readdatavalid
readdatavalid_n
1 输出 暂时省略。

突发信号

burstcount 1-11 输入 暂时省略。
beginbursttransfer       暂时省略。

流控制信号

readyfordata 1 输出 用于带有流控制的传输。指示组件已做好写传输的准备。
dataavailabe 1 输出 用于带有流控制的传输。指示组件已做好读传输的准备。

复位信号

resetrequest
resetrequest_n
1 输出 允许组件复位整个Avalon-MM系统。系统的复位信号与所有的复位信号保持逻辑或关系。

图3-1批注:

(1)所有的Avalon信号都是高电平有效。在信号类型一列,Avalon信号也可被声明为低电平有效的版本。

 

3.3 从端接口属性

表3-2所示为Avalon-MM从端接口的接口属性。

表3-2 Avalon-MM从端接口属性

 

名称

缺省值

合法值

描述

readLatency 0 0-63 读延迟在固定延迟的从端使用。不用于包括readdatavalid信号的接口。请参考页5-9图5-5的使用该属性的时序框图。
timingUnits cycles cycles,
nanoseconds
用于指定setupTime、holdTime、writeWaitTime和readWaitTime的单元。对于同步设备使用周期 (cycle);而对于异步设备, 则使用纳秒。几乎所有的Avalon-MM设备都是异步的。举例说,一个需要异步时序的设备是一个读写片外双向口的Avalon-MM接口。该片外设备也许有用于总线周转的固定设置时序。
writeWaitTime 0 0-1000
cycles
从端接口不用waitrequest信号。在从设备接受一次写操作之前,使用writeWaitTime来指示周期或纳秒的数目。时序好像是从设备声明了waitrequest来设置n个周期或纳秒的writeWaitTime。请参考页5-8图5-4的的使用该属性的时序框图。
readWaitTime 1 0-1000
cycles
从端接口不用waitrequest信号。在从设备响应一次读操作之前,使用readWaitTime来指示周期或纳秒的数目。时序好像是从设备声明了waitrequest来设置n个周期的readWaitTime。
holdTime 0 0-1000
cycles
指定介于解除声明write和解除声明chipselet、address及data之间的timingUnits的时间。(仅能应用于读处理。)
setupTime 0 0-1000
cycles
指定介于声明chipselect、address及data和声明read或读之间的timeUnits的时间。
maximumPendingReadTransactions 1(1) 1-64 待读取的可列从端的最大数目。请参考页3-10图3-5的的使用该属性的时序框图。
busrtOnBurstBoundariesOnly false ture, false 暂时省略。
linewrapBusrts false ture, false 暂时省略。
maxBuesrSize 1 64 暂时省略。
brigesToMasters null Avalon-MM master on the same component 暂时省略。
associatedClock - - 暂时省略。

表3-2批注

(1)如果某组件接受了比这里指示的值多的读传输,内部待读取的FIFO可能溢出,引起系统查找。

 

3.4 从端时序

本节描述Avalon-MM从端信号的相关时序和顺序的问题。

3.4.1 同步接口

Avalon-MM接口是一个同步协议。每一Avalon-MM端口都被同步到相关的时钟接口。若被时钟信号同步的寄存器的输出驱动,信号有可能被组合。Avalon-MM接口绝不可以对所参考时钟以外的任何信号敏感。本文档不讲述信号在时钟边沿如何或何时转变,同时时序框图也欠缺细致的时序信息。

3.4.2 性能

无法保证Avalon-MM接口的性能。最大性能依赖于组件的设计和系统的实现。

3.4.3 电气特性

Avalon-MM接口规范不指定任何电气特性。

 

3.5 从端传输

本节在介绍从端传输类型之前详细定义两种基本概念。

  • Transfer——传输是指在Avalon-MM从端和系统互连机构之间的字数据的读写操作。Avalon-MM传输的字数据介于8-1025比特。完成一次传输将花费一个或多个时钟周期。

主端和从端都是传输中的角色。若Avalon-MM主端初始化某传输,则Avalon-MM从端响应该传输。

  • Master-slave pair——该术语指的是主端端口和从端端口被卷入某传输中。在传输期间,主端端口控制数据通过系统互连机构与从端端口交互。
3.5.1 典型的读写传输

本节描述典型的支持带有从端控制waitrequest的读写传输的Avalon-MM从端。从端使系统互连机构停止许多周期,需要声明waitrequest信号。如果从端既要为读传输又要为写传输使用waiterequest,那么必须为两者都使用waitrequest。

在时钟上升沿后,从端接收到address、byteenable、read或write及writedata。为了拖延传输,从端必须在下一个上升沿之前声明waitrequest。当声明waitrequest时,传输被延迟,地址和控制信号将保持不变。当从端解除声明waitrequest之后,传输在第一个clk的上升沿结束。

从端可拖延多长时间并没有限制。因此,必须确保从端没有无限期地声明waitrequest。图3-3显示了使用waitrequest的读写传输。

图3-3 带有waitrequest的读写传输

图3-3的批注:

(1)

(2)

(3)

(4)

(5)

(6)

 

待续