AvalonST总线规范要点文档格式.docx
《AvalonST总线规范要点文档格式.docx》由会员分享,可在线阅读,更多相关《AvalonST总线规范要点文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
当目标组件的FIFO已经是满状态或者它的输出口被阻塞时,目标端口通常使用反馈信号停止数据流。
总线对反馈的支持是可选的。
传输周期和准备周期——传输是从指数据和控制信号从源端口传到目标端口的操作。
对于数据接口来说,准备周期指目标端口等待的周期数,以保证可以接收传输。
通道一一通道指物理或者逻辑上的路径或者连接,信息由通道从一个端口到达另一个端
口。
数据包一一数据包指一起发送的数据和控制信号的集合。
一个数据包可能包括一个包
头,使得路由器或者其他的网络设备将数据包发送到正确的目标端。
本规范不定义数据
包的格式,而是由应用程序定义。
Aval。
n-ST的数据包的长度可变,可以在多个通道间
交错传输。
在Avalon-ST接口中,数据包的使用是可选的。
6.2Avalon-ST接口信号
在Avalon-ST总线的源端口和目标端口的每个接口信号对应一个Avalon-ST的信号类
型。
Avalon-ST的接口可能只包含一个实例模块的信号。
所有的Avalon-ST的信号类型在源
端口和目标端口的含义都是相同的。
表6.1列出了构成一个Avalon-ST的数据接口的信号类型。
表6.1Avalon-ST接口信号
信号类型
宽度
方向
必须
描述
基本信号
ready
1
目标-源
否
咼时,表明目标端口可以接收数据。
目标端口在
周期<n>拉高ready信号,表示周期
<n+readyLatency>为准备完成的周期。
在此期间,
源端口可以使valid有效并传输数据。
源端口在没有ready信号输入时不能被反馈。
同样的,目标端口在没有ready信号输出时不能发送反馈。
valid
源-目标
valid信号置高表示源端到目的端的信号是有效的。
在vaild刚被置高后的准备周期,目的端采集数据总线和其他源端到目的端的信号,而在其他周期时候这些信号将会被忽略。
data
1-256
数据信号从源端口发送到目标端口,一般的数据
包从通过data信号发送。
data信号的内容和格式将在后面的参数中定义。
channel
0-8
定义了本周期发送数据的通道数。
如果一个接口
支持channle信号,则必须疋义maxChannel参数。
error
1-255
一进制位组合的形式,用来标记本周期正在传输的数据中的的错误。
error中的单个位对应的错误由模块的errorDescriptor属性定义。
包传输信号
startofpacket
源端口置高表明数据包的开始
endofpacket
源端口置高表明数据包的结束
empty
数据包发送结束的周期指示本数据包中的空符号的数目。
在一次传输中如果只有一个符号,empty
信号是无用的。
如果endofpacket没有置咼,本信号无效。
6.2.1信号极性
表6.1所示的所有信号均为高电平有效。
622信号时序
本节介绍Avalon-ST信号时序等问题。
6.2.2.1同步接口
Avalon-ST连接的所有传输均在关联时钟的上升沿发生。
从源端口输出到目的
端口的所有信号必须在时钟的上升沿从寄存器输出,包括data,channel和error
信号。
输入到目的端口的信号不需要寄存器锁存。
在源端口寄存器输出信号保证了高频率的数据操作,同时消除了模块到模块的非反向逻辑寄存器。
6.2.2.2时钟使能
可以决定本组件是否正在被使能。
配合Aval。
n-ST总线的组件可能包括一个供内
部逻辑使用的时钟使能输入,但是必须小心设计,保证接口控制信号的时序仍然符合协议的要求。
6.3Avalon-ST接口属性
表6.2列出了构成Avalon-ST接口的特性。
表6.2Avalon-ST接口属性
属性名称
默认值
允许数值范围
dataBitsPerSymbol
8
1-512
定义了每一个符号包含的二进制位数。
例
女口,面向字节的接口有8位宽度的符号。
这个值不一定是2的整数幕。
readyLatency
疋义了ready信号的有效/无效与准备好数
据传输的时间关系,每个接口的设置都是
独立的。
maxChannel
0-255
本接口支持的数据传输的最大通道数。
errorDescriptor
字符串列表
一个字符列表描述了错误和error信号的比
特位的对应关系。
列表的长度必须和error
信号比特位的数目一致,列表的第一个字符串对应的是error中的最高位。
例如,一个信号表中的单词的错误的描述有点错误关联的每个。
该信号的长度是错误的列表必须相冋,因为在数位和第一个单词的列表中适用的最咼位。
例如,"
crcoverflow"
表明error信号的bit[1]表明的是CRC错误,bit[0]表明的是溢出错误。
6.4基本数据传输
在所有情况下,数据的源端口和目标
本节定义了从一个源端口到目标端口的数据传输。
端口都必须符合规范。
目标端口没有责任检测协议上的错误。
6.4.1信号的具体细节
本节介绍了数据传输必须遵守的基本Avalon-ST协议。
它突出了设计的灵活性,选择
Avalon-ST,可以满足用户特定的需求。
图6.1显示了基本的Avalon-ST接口的信号。
如图所示,基本的Avalon-ST接口信号包
括从valid,data,error和channel。
目标端口可以使用ready信号用于反馈。
图6.2标准的Avalon-ST接口信号
DataSourceDataSink
・
k
►
>
channel
<
maxchannels
以下的内容介绍了接口信号的更多细节。
ready当接口支持反馈时,目标端口将ready信号置高提示ready周期开始,实际传
输数据的周期可能发生变化。
支持反馈的数据接口必须定义readyLatency参数,以便确
定:
当ready信号在<n>周期置高时,那么<N+readyLatency>周期时端口做好准备。
valid――在数据正在从源端口向目标端口传输的任何周期,valid信号表明了本周期数
据有效。
在所有形式的ST接口,valid信号都是必须的。
在每个valid信号有效的周期,目标端口会采样数据信号和其他源端口到目标端口的信号。
一个或者更多的符号被传输出去。
dataBitsPerSymbol参数定义了数据被分成几个符号。
errorError信号的每一个比特位对应一个可能的错误状态。
error为0时表明本周期
的数据没有错误。
当出现错误时,本协议没有定义组件对这些错误的处理方法。
channel――channel是源端口发向目标端口的可选信号,表明本次数据属于哪个通道。
对于一个给定的端口,channel的意义取决于应用程序:
一些应用程序使用channel作为
端口号,而其他应用程序使用channel作为页编号或者时间码或时间编号。
源端口可能
在一个活动周期内改变channel的值。
接口如果使用channel信号,则必须定义maxChannel参数,以确定最大的通道数。
如
果组件在运行时接口改变了channel值,maxChannel是接口支持的channel信号的最大
值。
6.4.2数据结构
符号排列使用大端格式,即编号较大的符号排在最高位。
图6.3显示了一个64比特宽
度的信号,此时对应参数为symbolsPerBeat=4dataBitsPerSymbol=16。
图6.3数据符号(DataSymbols)
634B47323116150
symbol0
symboll1
symbol2
symbol3
时序图见下图6.4。
图中对应的参数为dataBitsPerSymbol=8symbolsPerBeat=4。
图中,
D0是编号最高的符号,data[31]是这个符号的最高位。
图6.4大端格式的数据结构
6.5无反馈信号的数据传输
无反馈信号的数据传输是Aval。
n-ST数据传输的基础。
在任何的时钟周期,源端口驱动
data信号以及可选的channelerror信号,并拉高valid信号。
当valid信号为高时,目的端口在时钟上升沿采样data、channel、error信号。
图6.5显示了一个无反馈信号的数据传输的例子。
图6.5无反馈信号的数据传输
6.6带反馈信号的数据传输
目的端口在有效传输时拉高ready信号一个时钟周期,以提示源端口自己已经准备完成。
目的端口准备好数据传输的时钟周期称为ready周期。
在ready周期,源端口可能拉高valid
信号并发送数据到目的端口。
如果没有数据发送,源端口一直保持valid信号为低,此时data
信号可以为任意值。
支持反馈的ST接口定义了readyLatency参数,表明从ready信号有效到源端口可以发
送有效数据的延时周期数。
如果一个
接口定义readyLatency为0,那么ready信号拉高的周期即为ready周期。
如果readyLatency不为0,当ready信号在<n>周期拉高,接口会认为<N+readyLatency>周期为ready周期。
任何包含ready信号并定义了readyLatency参数的ST接口模式都支持反馈传输。
当readyLatency为0时,数据只在ready信号和valid信号同时拉高时传输。
在这种操作模式下,在开始发送有效数据前,源端口不会接收到目标端口的ready信号。
目的端口可
以接收数据时拉高ready,源端口等待ready信号为高时,发送数据并拉高valid信号。
源端
口可以在任何时候改变发送的数据。
目的端口只能在ready信号和valid信号同时为高时捕
捉数据的data信号。
当readyLatency参数大于等于1时,目的端口在自身准备好接收数据前拉高ready信号。
源端口可以在合适的时钟周期拉高valid以做出响应。
源端口可能在ready信号不为高时拉
高valid。
图6.6显示了readyLatency为4时的Avalon-ST接口时序。
图6.6readyLatency为4时的Avalon-ST接口时序
观—LTLrLrLrLrLrLrLrLrLrLrLrLTLi
i&
ady
图6.7显示了一个readyLatency=0时带反馈信号的数据传输。
源端口在周期1拉高valid
信号并输出数据,虽然目的端口并没有准备好;
源端口等待到周期2时,目的端口拉高ready
信号,此时没有发送新的数据;
在周期3,源端口发送数据,此时目的端口已经准备好接收
数据,此时数据传输发生;
在周期4,目的端口拉高ready信号,但是源端口没有输出有效数据。
图6.7readyLatency为0时带反馈信号的数据传输
图6.8和6.9显示了readyLatency为1和2时,带反馈信号的数据传输。
在这两种情况
下,ready信号在ready周期前拉高,同时源端口在1个或2个时钟周期后输出数据并拉高
valid信号以响应目标端口。
当readyLatency为0时,如果没有ready信号,源端口必须置
valid信号无效。
目标端口将在valid信号为高时捕捉信号,无论ready信号为何值。
图6.8readyLatency为1时带反馈信号的数据传输
-TTTTTTTlJlTTJlTTTTTT-rLn
图6.9readyLatency为2时带反馈信号的数据传输
rLrLrLrLrLrLrLrLTLnj
6.7数据包传输
包传输属性增加了从源端口到目的端口传输数据包的支持。
增加定义的三个信号用于实
现包传输。
源端口和目的端口都必须增加这些信号。
当源端口和目的端口不同时支持包传输时,不能将两者直接相连。
图6.10Avalon-ST包传输信号
DataSink
DataSource
4
valkj
1
max_channel>
endofpacket
6.7.1信号的具体细节
本节介绍了这三个信号的具体细节。
startofpacketstartofpacket在所有的支持包传输接口中都是必须的,以确定包头
数据传输的时钟周期。
该信号的值仅在valid信号拉高时有意义。
endofpacketendofpacket在所有的支持包传输接口中都是必须的,以确定包尾数
据传输的时钟周期。
startofpacket和
endofpacket信号可能在同一时钟周期拉高。
当两次包传输之间没有空闲周期时,
startofpacket信号可以紧跟前一次包传输的endofpacket信号。
empty——empty为可选信号。
表明最后一个数据包发送的时,数据线上有效符号
的数目。
目的端口仅在endofpacket信号为高时检测empty信号值。
空符号总是数
据流的最后几个符号,即在低位数据线上传输。
当接口data信号宽度超过一个符
号的宽度时,有效的数据宽度是变化的,这样的接口是必须使用empty信号。
信号的数据范围是Iog2(<每个时钟周期发送的符号数>)。
6.7.2协议的细节
和“6.4节说明的基本数据传输”的通信协议相比,包传输遵循相同的协议,只是增加
了startofpacket,endofpacket禾口empty信号。
图6.11显示了一次源端口到目的端口的一次包传输,共传输17字节,且readyLatency参数为0。
数据传输发生在第1,2,4,5,6周期,此时ready信号和valid信号均为高。
在周期1,startofpacket信号为高,最开始的4个字节被发送。
在周期6,endofpacket信号为高,empty信号值为3,表明发送包尾数据的4个符号中有3个为空符号。
因为Avalon-ST遵守
大端格式,在周期6中,数据线的高位data[31:
24]上为有效信号。
图6.11包传输
1234567
咖-LrLTLrLrLrLrLrLi