仲裁器(固定优先级/轮询)

AMBA中AHB上可能有多个master,而总线上在同一时间仅能由一个master占用,因而便有了arbiter,授予对应的master使用总线的权利。最简单的便是固定优先级,比如在芯片中cpu的优先级总是最高的,因而尽量让cpu获得总线。闲言少叙,举个栗子:

abcd 四个master,优先级依次为0123(数字小的优先级高),req={d,c,b,a} 

此时的grant为one hot编码,表示为1的比特对应的master获得授权,总是req的低位先执行,缺点便是case的语句代码量太大,比较繁杂,因而我们看看plan b

设置一个变量,该变量为在req中1的最低位的高一位及以上为1,其余为0,比如1010对应的便是1110。而grant则为req与该变量取反后相与,再举个栗子:

其中只要req某一位为1,比如req[0]=1,req_temp[0] =0 - > req_temp[1]= req[0]=1 -> req_temp[2] =req_temp[1] &#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值