AXI-stream学习笔记(二)

文章详细阐述了AXI-Stream接口中默认信号的需求,如TREADY、TKEEP、TLAST等的默认值和使用建议,并讨论了接口的兼容性问题,包括直连和互联兼容性,强调了数据宽度匹配和传输不间断的重要性。同时,介绍了连续包的概念及其规则,以及交织和顺序传输的应用场景和限制。
摘要由CSDN通过智能技术生成

三.默认信号需求

3.1默认信号值

3.1.1可选的TREADY

TREADY默认值为1,在确定的环境中是可以被省略,但始终推荐使用。

3.1.2可选的TKEEP和TSTRB

对于所有的数据流而言TKEEP和TSTRB并不是始终需要的

默认的规则:

①如果TKEEP省略,那么默认TKEEP均为高;

②如果TSTRB省略,TSTRB=TKEEP;

③如果TSTRB和TKEEP均省略,TSTRB和TKEEP均为高。

3.1.3可选的TLAST

对于不具有包和帧概念的数据流,TLAST 的默认值是未知的。下列选项可供选择:

①设置 TLAST 为低。这表示所有传输都在同一个包中。该选项为合并和扩展提供了最大的可能,但这意味着传输有可能在流中被间歇突发延迟。一个恒定为低的 TLAST 信号可能也会影响在共享通道中的流的交错,因为互联可以使用 TLAST 信号来影响仲裁过程。

②设置 TLAST 为高。这表示所有传输都是单个的包。该选项可以保证传输不会在基础组件中延迟。该选项也可以保证流不会 通过影响仲裁过程而不必要地阻止一个共享通道的使用。该选项会阻止流合并,这些流来自于具有该设置的主机。该选项也会阻止有效的扩展。

③自动产生一个脉冲的 TLAST 值。该选项在一个固定数量的传输之后断言 TLAST ,例如,经过 2 个或 16 个传输。该选项可能证明是一个很好的妥协,允许有效地操作而不会过度地阻塞共享的通道。

推荐的方法是:

任何具有包边界概念的组件都必须包含一个 TLAST 信号。当被包含到一个组件的接口中时, TLAST 信号通过互联必须被保留。

当一个组件不支持 TLAST 信号,并且互联中的拓扑和功能是未知的,则 TLAST 信号必须默认为高。这将保证传输不会在互联中被使用 TLAST 信号来强制一个缓存 draining 操作的组件不确定地延迟。

当一个组件不支持 TLAST 信号,并且由于互联的构建 没有互联组件要求使用 TLAST 信号来阻止互联中传输的延迟 而可以被保证。这种情况下 TLAST 信号可以被固定为低。

3.1.4可选的TID,TDEST,TUSER信号

一个主机不要求支持这三个输出信号
一个具有多余 TID TDEST ,及 TUSER 输入信号的从机必须将这 3 个信号的所有 bits 固定为低。

3.1.5可选的TDATA

如果TDATA是不被需要的,那么TSTRB也是不被需要的

 3.2兼容性考虑

关于兼容性有两方面考虑:

直连兼容性。该考虑主要关于一个主机直接连接一个从机。

互联兼容性。该考虑关于一个互联的实现具有兼容两个组件的效果。

3.2.1主机兼容性

一个主机和一个从机 接口如果要相兼容,则接口的数据宽度必须相同。 如果不是这种情况, 则要求互联组件提供数据宽度转换来匹配数据宽度。

3.2.2从机兼容性

数据宽度:数据宽度需要匹配,如果不匹配需要互联组件提高数据宽度转换

源和目的信号:要求从机能够分别来此不同源的信号从机将具有一个交错上限,这个上限必须不能 被超出。 参见传输交错 。

空和位置字节:不要求从机支持空字节和位置字节。

3.2.3互联兼容性

一个互联组件被用来从主机到从机传送数据流。要求互联要能够可靠地从主机到从机传输所有数据 字节和位置字节。随意的扩大和缩小操作可能会引入空字节。

3.3持续的包

某些应用程序使用 AXI-Stream 接口的子集作为连续传输消息的方式方式。这意味着每个数据包只能包含数据字节,绝不会与其他数据包交错。当针对该子集设计时,发射器、接收器和互连可以更简单、更高效。

Continuous_Packets 属性用于描述只支持连续数据包的接口:

True 仅支持连续数据包。如果未声明 Continuous_Packets,则认为是假的。

当 Continuous_Packets 为 True 时,以下规则适用:

• 不得发生不同数据包的传输交织。这意味着当 TLAST 为低时,TID 和TDEST 不能在下一次传输中改变。
• TSTRB 不存在。不支持位置字节。
• 数据包中不能有空字节。这意味着:

— 如果 TLAST 为低电平,则 TKEEP 的所有位都必须为高电平。
— 如果 TLAST 为高电平,则仅在所有数据字节之上的字节中允许空字节。

支持连续数据包的互连必须仅在 TLAST 为高电平时进行仲裁。这意味着 TLAST不能被绑在 LOW 上,并且如果一个区域内的传输之间存在显着差距,则利用率可能会很低包。

四.顺序和交织传输

4.1交织传输

传输交织是在逐个传输的基础上交织来自不同流的传输的过程。发送器可以在源处交错流,互连可以交错来自多个源的流汇聚点的发射机。

接收器可以设计为接受任意数量的交错流或有限数量的交错流。Continuous_Packets 属性设置为 True 的接收器不能接受交错流。

如果接收器的交织能力有限,则必须使用以下技术之一来确保接收器不超过能力:接收器只能由一个发射器访问,不能超过交织能力收件人。

• 接收器被多个发送器访问,每个发送器不交织数据包。系统设计,或一些更高级别的控制机制,确保访问的发射器的数量Receiver 一次不超过 Receiver 的交织能力。

• Receiver 被多个 Transmitter 访问,更高级别的控制机制确保不超过接收器的整体交织能力。
在某些系统中,限制交错流的数量以提高效率可能是有益的接收器或互连功能,例如升迁。

4.2顺序传输

AXI-Stream 协议要求所有传输保持有序。不允许对传输进行重新排序。

不允许重新排序的优点是:

• 接收器观察到的流交织不会因重新排序而增加。
• 提高了系统的整体可预测性。
• 可以确定给定的传输,独立于传输的 TID,以通过以下方式到达目的地观察来自同一发送器的稍后传输已到达同一目的地。
• 降低了系统的复杂性。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: axi-streamaxi-lite是两种不同的传输协议,它们在数据传输的方式和控制信号上有所不同。在将axi-stream转换为axi-lite时,需要进行一些改变和调整。 首先,axi-stream是一种流式传输协议,它主要用于高速数据传输,没有固定的地址和控制信号。而axi-lite是一种基于地址和控制信号的传输协议,适用于低速数据传输和对外部设备的读写控制。 要将axi-stream转换为axi-lite,需要定义一个寄存器(或寄存器组),用于接收从axi-stream传输过来的数据。通过定义该寄存器的地址和控制信号,可以对其进行读写操作,并将数据传输到外部设备。 其次,需要根据具体的应用场景,对数据的格式和处理进行调整。axi-stream一般通过数据流的方式传输,而axi-lite传输的数据需要按照特定的格式进行打包和解包。因此,在进行转换时,需要对数据进行格式转换和处理,以满足axi-lite的传输要求。 最后,需要修改相应的控制逻辑和状态机来适应axi-lite的读写操作。axi-stream主要通过数据流传输,而axi-lite需要定义读写控制信号和状态机来实现读写操作。因此,在进行转换时,需要对控制逻辑和状态机进行修改,以实现axi-lite的读写功能。 总结起来,将axi-stream转换为axi-lite需要进行以下几个步骤:定义一个寄存器用于接收数据、调整数据的格式和处理、修改控制逻辑和状态机来适应axi-lite的读写操作。通过这些步骤,我们可以完成axi-streamaxi-lite的转换。 ### 回答2: 要将Axi-Stream转换为Axi-Lite,需要进行一系列的处理和转换。 首先,需要了解Axi-StreamAxi-Lite之间的区别。Axi-Stream是一种高速数据传输协议,用于在数据流传输应用中实现高速数据传输。相比之下,Axi-Lite则是一种更简化、精简的协议,适用于低速、延迟敏感的访问要求。 要将Axi-Stream转换为Axi-Lite,需要将数据流转变为离散的数据包。可以通过添加一些额外的逻辑和寄存器来实现数据的提取和转换。 首先,需要添加一个接收缓冲区,用于接收Axi-Stream传输的数据。可以使用一个FIFO(First-In, First-Out)缓冲区来实现。将Axi-Stream输入端口连接到该缓冲区,并配置缓冲区的大小以适应数据传输的需求。 然后,可以使用状态机和控制逻辑从接收缓冲区中提取数据。根据Axi-Lite协议的要求,需要提取合适的数据字段,并将其放入适当的寄存器中。可以使用状态机来控制数据的提取和转换过程。 最后,在提取和转换数据后,可以使用Axi-Lite的地址端口和数据端口,将数据传输到Axi-Lite总线上。根据Axi-Lite协议的要求,需要设置地址、数据和控制信号,以完成对寄存器的读写操作。 总体而言,将Axi-Stream转换为Axi-Lite需要添加接收缓冲区、状态机和控制逻辑,并通过Axi-Lite协议完成数据的提取和转换。这样可以实现从高速数据传输到低速数据访问的转换。 ### 回答3: Axi-streamAxi-lite是两种不同的通信协议,将Axi-stream转换为Axi-lite可以通过添加适当的逻辑和转换器来实现。下面是一种将Axi-stream转换为Axi-lite的方法: 1. 首先,需要添加一个转换器模块,该模块将负责将Axi-stream信号转换为Axi-lite信号。该转换器模块可以使用FIFO(First-In-First-Out)缓冲区来处理数据流,并将其转换为连续的数据列。 2. 转换器模块接收来自Axi-stream的有效数据包,并根据Axi-lite协议的要求生成对应的Axi-lite数据包。转换过程包括将Axi-stream的数据包拆分为Axi-lite的数据包,并提取有效数据和其他控制信息。 3. 转换器模块还需要处理Axi-stream信号的流速。由于Axi-stream的数据是连续流动的,而Axi-lite的数据包需要在时钟边沿进行传输,因此需要添加适当的时序逻辑来处理数据流速的差异。 4. 转换器模块还应该能够处理Axi-lite协议中的写入和读取操作。写入操作将由Axi-stream转换成Axi-lite写入操作,读取操作将由Axi-stream转换成Axi-lite读取操作。 5. 最后,通过适当的连接操作将转换器模块与Axi-lite总线连接起来,以实现从Axi-streamAxi-lite的转换。 总结来说,将Axi-stream转换为Axi-lite需要添加一个转换器模块,该模块负责处理Axi-stream数据流的数据包和流速,并将其转换为符合Axi-lite协议的信号。这样可以实现从Axi-streamAxi-lite的数据通信转换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值