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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: rosshardware

[原创] 数字典型电路知识结构地图,请大家参考,也希望积极补充!

[复制链接]
 楼主| 发表于 2019-6-6 14:21:41 | 显示全部楼层
有人需要RR ARBITOR的代码,我就简单讲讲思路,给一份参考代码:
rr_arb.gif
RR 调度,主要思想就是如果有N路申请调度的Request,那么如果第i路被调度成功,那么第i+1路在下一次就是最高优先级,i路就成为最低优先级,以4路为例,比如req[2]被调度成功,那么下次优先级顺序由高到低就是req[3],req[0],req[1],req[2], 所以实现上面,把所有可能的N种优先级顺序做成一个Map,通过一个branch指示记录,当前调度应该用到Map的那个分支,并对该分支作Leading One的计算,得到的结果在根据Branch指示,左移得到最终调度结果,通过更新Branch为gnt的左移一位
 楼主| 发表于 2019-6-6 14:39:47 | 显示全部楼层


 楼主| 发表于 2019-6-6 14:42:42 | 显示全部楼层
说明一下代码,作了把这个IP做的尽量参数化,因此在进行分支选择时,采用branch  采用one-hot的表示方式,而并非通常的二进制,以4轮询为例,即branch 默认值为0001 代表第一轮就是req[0] 优先级最高,后续如果req[0]被调度成功,则branch更新为0010 代表下一轮,req[1]优先级最高,也就对应bit位 为高,就代表第几轮。
 楼主| 发表于 2019-6-6 14:43:01 | 显示全部楼层
arb_rr1.gif arb_rr3.gif arb_rr2.gif

arb_rr4.gif
 楼主| 发表于 2019-6-6 14:44:47 | 显示全部楼层
另外对于Leading One的做法,也很多,DW也提供现成的IP,但是我们代码做法,是基于时序考虑,可能面积不是最优,但是对于高速设计来讲,时序是最优的。
 楼主| 发表于 2019-6-6 15:17:39 | 显示全部楼层


请参考上面代码和思路,有疑问,欢迎交流

发表于 2019-6-10 17:52:26 | 显示全部楼层
古德古德·感谢楼主经验分享!!!!!!!!!!!
 楼主| 发表于 2019-6-27 14:41:29 | 显示全部楼层


zchdsp 发表于 2018-11-7 11:33
回复 29# rosshardware


我后面做过说明哈,如果a和b的符号已经定义好了,是可以直接用>的哈。
 楼主| 发表于 2019-6-27 14:42:40 | 显示全部楼层


cwfXcwfx 发表于 2019-2-16 09:08
关于异步握手问题,可不可以,数据不care,数据的标志去跨始终


通常作异步握手,就是握手控制信号,数据信号通多d-mux方式完成采集
发表于 2019-7-10 15:24:44 | 显示全部楼层
很好地帖子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 19:28 , Processed in 0.035309 second(s), 7 queries , Gzip On, Redis On.

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