AXI4- Stream Switch ip常见使用场景及常见问题

如果本文对你有所帮助,欢迎点赞、转发、收藏、评论让更多人看到,赞赏支持就更好了

如果对文章内容有疑问,请务必清楚描述问题,留言评论或私信告知我,我看到会回复。

前言

AXI4- Stream Switch IP是VIVADO中提供的一种用于AXI4- Stream总线信号之间相互转换的IP,但若不知道其中的注意点可能根本用不起来,个人这边常用的场景为:

  • 1)多选1输出;

  • 2)1主多从分时输出;

多选1输出场景使用与常见问题

以2选1为例讲解多选1输出模式时的注意事项,上图为2选1的IP外型图,但想这样使用的话,需要避过以下坑:

  • 1)你的设置为啥是S00与S01循环输出?

假如按IP默认配置,s_req_suppress信号设置为0,S00与S01都同时有数据,那么M00_AXIS输出的是S00与S01按时钟交替循环的信号;

  • 2)你明明满时钟速率给S00与S01数据,为啥S的速率就是比M的速率更慢,且效率很低?

你会发现,S00与S01的速率很慢,最高也只有M00的1/2,这是怎么回事勒?这是因为这个IP的输入与输出是同一个时钟域,IP为了保证总速率一致,不超速,所以对输入的最高速率进行了限制,且每个通道的最高速率保持一致,即SUM(VS)=SUM(VM),且每个通道速率平均分配;

  • 3)假如这个IP是用来做多选1输出使用,如何才能提高S00的效率?

这个时候需要做的是设置s_req_suppress的值,这个信号的含义是屏蔽,每一个bit代表一个通道(比如s_req_suppress[0]代表通道S00),将对应的位设置为1,则关闭这个通道的输入,这个时候剩余通道的速率就能提高。在多选1的情况下,只需要将不用的通道全部屏蔽即可。

1主多从分时输出场景使用与与常见问题

1主多从的情况比较简单,就是从S00送入数据,从M00或者M01输出数据。

那么问题来了,你的数据是否只能从M00输出?

其实需要从M01输出数据需要一个通道ID(即目的ID)的选择,将其设置为1即可从M01输出。而这个IP的通道ID即*tdest信号,如下图中红框所示:

在这里插入图片描述

欢迎FPGA同行者关注微信公众号FPGA加速者,获取更多精彩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风中月隐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值