在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 14515|回复: 25

[求助] verilog 实现Round robin 轮询算法

[复制链接]
发表于 2019-12-3 09:06:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 494693243 于 2019-12-5 18:35 编辑

假如有如下请求需要仲裁: req0, req1, req2, req3, req4, req5 ……,  其中req0, req1, req2位于高优先级组, req3, req4, req5 ……位于低优先级组,授权顺序:req0 -> req1 -> req2 -> req3 -> req0 -> req1 -> req2 -> req4 -> req0 -> req1 -> req2 -> req5
注:req0, req1 …… 每个请求高低优先级组可配置
楼主想到的方式:
1. 使用状态机,当请求过多时, 状态机的跳转逻辑复杂,时钟频率跑不上去
2. 使用桶形移位寄存器的方式,楼主只实现了req0 -> req1 -> req2 ->req3 ->req4 ->req5->req0->req1 ->req2 -> req3 -> req4 ->req5 的一组之间的轮询,涉及到两个组的没有实现

要实现上面的仲裁算法,大家有什么思路,请不吝赐教
微信截图_20191205183054.png
发表于 2019-12-3 16:05:12 | 显示全部楼层
对给出的授权顺序有些疑惑,不知道理解的对不对。
0/1/2是高优先级的,并且他们之间也有优先级顺序,可调。之后的3/4/5...是低优先级并且相互之间无优先级顺序。
如果是这样的话,用状态机,是不是可以3/4/5...使用round robin arbiter,如果0/1/2 available的时候,跳出round robin去执行高优先级的。
 楼主| 发表于 2019-12-5 18:39:03 | 显示全部楼层


vin3ent 发表于 2019-12-3 16:05
对给出的授权顺序有些疑惑,不知道理解的对不对。
0/1/2是高优先级的,并且他们之间也有优先级顺序,可调。 ...


优先级,如我添加的图片所示

实际上如果只有少数的几个请求,是可以使用状态机跳转的, 但是如果我有比较多的请求, 比如说有32 个请求, 使用状态机,状态就会非常多了,那么这样的设计实际频率很难跑快啊
发表于 2019-12-23 14:40:08 | 显示全部楼层
计数器, 每个request有一个 计数器, 服务时间到了。 切换到另外一个 request。整体roundbin。  这样配置不同计数器,实现 服务 平均优先级。
发表于 2019-12-24 10:35:48 | 显示全部楼层
过来学习学习
发表于 2019-12-25 19:37:03 | 显示全部楼层
了解一下
发表于 2019-12-26 10:04:49 | 显示全部楼层
本帖最后由 weila9 于 2019-12-26 11:10 编辑

Round-Robin的Arbiter可以用一个加法器+位运算实现,相关的问题Stack Overflow上有过讨论哦。

多组轮询,即组之间有优先级,组内公平轮询,那么这就是fixed priority arbiter和round-robin arbiter的结合,称为分组优先级或者混合式优先级;
可以分成三个模块写:
priority gen -> protect_check -> grant_gen ; grant_gen -> priority gen(反馈回去) 这样切分模块,
然后priority gen模块里用2个RRB分别从两组请求里鉴取一个请求, 再接一个固定优先级的选择电路,这样子。

发表于 2019-12-26 10:40:11 | 显示全部楼层
用状态机实现,肯定会有时隙浪费的情况。可以在req和ack上增加fifo,以提高仲裁器的带宽,当然加了fifo,逻辑资源肯定会用的更多。具体可参考附件的论文。

Weber - 2001 - Arbiters Design Ideas and Coding Styles.pdf

257.78 KB, 下载次数: 375 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 2019-12-28 23:13:04 | 显示全部楼层
kan kan !
发表于 2019-12-31 09:43:40 | 显示全部楼层
感谢楼主分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-25 16:13 , Processed in 0.022263 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表