[翻译].Avalon接口规范——Ch 3 Avalon-MM接口.[Avalon]
0赞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位 |
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)
待续