Avalon流接口

Avalon-ST(Avalon流接口)

Avalon流接口_第1张图片

5.1  基本概念

  • Avalon Streaming System:Avalon流系统包含一个或多个Avalon-ST连接,以传输数据从source接口到sink接口,上面显示的系统组成Avalon-ST接口传输数据从系统输入到输出。Avalon-MM控制和状态寄存器接口提供软件控制。
  • Avalon Streaming Components:一个使用Avalon-ST接口的典型系统组合多个功能模块,这些功能模块称为部件components,系统设计者配置这些部件并将它们连接到一起实现一个系统。
  • Source and Sink Interfaces and Connections:两个部件连接到一起,数据从source接口流向sink接口,Avalon接口规范称source接口连接到sink接口的组合为一个连接(connection)
  • Backpressure:Backpressure是指允许sink向source发送一个信号以停止传送数据,对backpressure的支持是可选的,sink使用backpressure停止数据流是因为下面的原因:
    • 当sink FIFO满了的时候
    • 当在它的输出接口上出现阻塞时
  • Transfers and Ready Cycles:传输是指数据和控制从source传递到sink。对于数据接口,ready周期是指sink能接收一个传输的周期。
  • Symbol:一个符号是数据最小单位,对大部分包接口,一个符号就是一个字节。一个或多个符号组成一个周期里传输的单个数据单位。
  • Channel:一个通道,是物理的或逻辑的路径雄哟个连接,通过它,两个端口间可以传递信息。
  • Beat一个beat是一个单周期的传输。这个传输在source和sink接口之间,有一个或多个符号组成。
  • Packet:一个包,是一个源同时传输的数据和控制的集合体,一个包可能包含一个头以方便路由器和其它网络设备将包指引到正确的目的地。是应用而不是本协议来定义包的格式,Avalon-ST包能变长度,并能够交替通过一个连接,对Avalon-ST来说,包的使用是可选的。

 

 

5.2 Avalon ST接口signal Roles

表中,所有心慌慌起作用都是高有效

Signal Role

Width

Direction

Required

Describtion

基础信号

channel

1-128

sourec->sink

No

通道号为当前周期数据正在其上传输

如果一个接口支持通道信号,这个接口必须定义maxChannel参数

data

1-4096

source->sink

No

数据信号从source到sink,通常携带正在传输的大部分信息

更进一步定义数据信号的内容和格式

error

1-256

source->sink

No

 

ready

1

sink->source

No

 

valid

1

source->sink

No

 

包传输信号

empty

1-5

source->sink

No

表示符号数是空的,也就是说没有有效数据,空信号在那些每个beat一个符号的接口上不是必要的,

endofpacket

1

source->sink

No

Source来断言,表示一个包的结束

startofpacket

1

source->sink

No

Source来断言,表示一个包的开始

 

5.3 信号时序

5.3.1 同步接口

5.3.2 时钟使能

5.4 Avalon-ST接口属性

5.5 典型的数据传输

这一节定义数据传输:从source接口到sink接口,在任何时候,数据source和数据sink必须遵从这个规范,数据sink不负责检查source协议错误。

 

5.6 信号细节

         图21为典型的Avalon-ST接口信号

Avalon流接口_第2张图片

  1. ready:这个信号出现在支持backpressure接口上。Sink断言ready表示这个周期可以传输。如果ready断言在cycle ,cycle 被认为是ready cycle
  2. valid:表示在任何周期上的数据有效性。在每个有效的cycle,sink采集data信号和其它source到sink的信号
  3. data:dataBitsPerSymbol参数定义数据信号是如何划分成symbols的
  4. error:每一位对应一个可能的错误,0表示无错误数据。规范并没有定义出错的解决方式
  5. channel:源驱动可选的channel信号,表示数据属于哪个channel,对于某接口channel的意思取决于应用,在某些应用里,channel表示接口号,而在有些应用中,channel表示时间片的页号。当channnel信号被采用时,在每个有效周期的所有的数据传输属于同样的channel,在连续的有效周期上source可以改变到一个不同的channel。使用channel的接口必须定义maxChannel参数,以表示最大通道号,如果一个接口支持的通道数动态改变,maxChannel表示接口能支持的最大数。

5.7 数据层

         下图显示了一个64bit数据信号,dataBitsPerSymbol = 16,Symbol 0是最高symbol。

下面的图是32bit的例子,这里dataBitsPerSymbol = 8,symbolsPerBeat = 4, beatsPerCycle = 1

Avalon流接口_第3张图片

5.8 无Backpressure数据传输

无backpressure的数据传输是最基本的Avalon-ST数据传输,在任何时钟周期,source接口驱动data和可选的channnel和error信号,断言valid,如果valid被断言,sink接口在参考时钟的上升沿采样这些信号。

Avalon流接口_第4张图片

5.9 Backpressure数据传输

Sink在某个时钟周期断言ready表示它准备好了,如果sink准备好接收数据,这个周期叫准备好周期,在准备好周期,source可以断言valid,提供数据给sink。如果source无数据可送,source解除断言valid,可以驱动数据到任何值。

readyLatency参数表示从ready断言开始到有效数据能被驱动的周期数。如果readyLatency不是0,如果ready在cycle 断言,那么cycle < n + readyLatency >是准备好周期。

readyLatency = 0,ready和valid在同一个周期断言,数据传输发生。在这种模式下,source在送有效数据之前不接收sink的ready信号,每当source有有效数据,就会提供data和断言valid。Source可以在任何时候改变数据,当ready和valid都断言时候,sink才捕捉source的输入数据。

readyAllowance定义当ready解除断言时sink能捕捉的传输数。当readyAllowance = 0,sink在ready解除断言后不可能接收任何传输,如果readyAllowance = ,这里n>0,sink在ready解除断言后还能接收到次传输。

5.9.1使用readylatency和readyAllowance进行数据传输

Avalon流接口_第5张图片

Avalon流接口_第6张图片

5.9.2 使用readylatency进行数据传输

Avalon流接口_第7张图片

Avalon流接口_第8张图片

Avalon流接口_第9张图片

5.10 包数据传输

Avalon流接口_第10张图片

5.11 信号细节

  1. startofpacket:所有支持包传输的接口都要求startofpacket信号,startofpacket标记有效周期包含包的开始,信号仅在valid断言时才有意义
  2. endofpacket:所有支持包传输的接口都要求有endofpacket信号,endofpacket标记有效的周期包含的是一个包结束。这个信号仅在valid断言时才有效。Startofpacket和endofpacket可以在同一周期断言,在包与包之间不要求idle周期,startofpacket信号可以紧随前一个endofpacket信号。
  3. empty:这个信号可选,表示在endofpacket周期是空的符号数。

5.12 协议细节

  •  

 

你可能感兴趣的:(RapidIO)