集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2009|回复: 2

verilog想要实现一个轮寻的优先级仲裁器

[复制链接]
ngtim 发表于 2010-6-28 00:53:50 | 显示全部楼层 |阅读模式
有四路输入 a,b,c,d, 信号如下
input  req_a;
input  req_b;
input  req_c;
input  req_d;//仲裁请求四路request信号

output grt_a,grt_b,grt_c,grt_d;  //仲裁授予思路grant信号

input  data_a,data_b,data_c,data_d;//四路数据信号

output data_out;

要求是根据一个select[1:0]信号,依次的按照轮寻优先级授予四路仲裁请求,使得
data_out = (select==0) ? data_a : (select==1)
            ? data_b : (select==2)
            ? data_c: data_d;
四路信号的优先级相同,因此最先想到的就是轮寻优先级,但是不知道怎么实现
CHAN 发表于 2010-6-28 02:27:53 | 显示全部楼层
等待高手来帮你实现
VVIC 发表于 2010-6-28 04:16:44 | 显示全部楼层
本帖最后由 fpgaw 于 2010-7-31 09:21 编辑

<br>
"哈哈,终于有人顶帖子,这个是我故意留下的bug,下面我来解释一下:<br>
&ldquo;如果同时有多个信号请求,考虑上一个请求信号&rdquo;的说法其实不完全,我的意思是如果有多个信号请求,考虑上一次grant的信号。"<br>
<br>
s_ab:<br>
&nbsp; &nbsp;&nbsp; &nbsp;case(ls)// feedback MUX configured<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;s_a: begin grant_o &lt;= 2'b01; ls &lt;= s_b; end<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;s_b: begin grant_o &lt;= 2'b00; ls &lt;= s_a; end<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;s_c: begin grant_o &lt;= 2'b00; ls &lt;= s_a; end<br>
&nbsp; &nbsp;&nbsp; &nbsp;endcase<br>
<br>
红色部分应该换成上一次的grant信号?..><br>
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 09:34 , Processed in 0.057036 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表