verilog想要实现一个轮寻的优先级仲裁器
有四路输入 a,b,c,d, 信号如下inputreq_a;
inputreq_b;
inputreq_c;
inputreq_d;//仲裁请求四路request信号
output grt_a,grt_b,grt_c,grt_d;//仲裁授予思路grant信号
inputdata_a,data_b,data_c,data_d;//四路数据信号
output data_out;
要求是根据一个select信号,依次的按照轮寻优先级授予四路仲裁请求,使得
data_out = (select==0) ? data_a : (select==1)
? data_b : (select==2)
? data_c: data_d;
四路信号的优先级相同,因此最先想到的就是轮寻优先级,但是不知道怎么实现 等待高手来帮你实现 本帖最后由 fpgaw 于 2010-7-31 09:21 编辑
<br>
"哈哈,终于有人顶帖子,这个是我故意留下的bug,下面我来解释一下:<br>
“如果同时有多个信号请求,考虑上一个请求信号”的说法其实不完全,我的意思是如果有多个信号请求,考虑上一次grant的信号。"<br>
<br>
s_ab:<br>
case(ls)// feedback MUX configured<br>
s_a: begin grant_o <= 2'b01; ls <= s_b; end<br>
s_b: begin grant_o <= 2'b00; ls <= s_a; end<br>
s_c: begin grant_o <= 2'b00; ls <= s_a; end<br>
endcase<br>
<br>
红色部分应该换成上一次的grant信号?..><br>
页:
[1]