关于旗语间优先级问题
时间:10-02
整理:3721RD
点击:
sem = new(1);
fork
begin
while(1) begin
@rp_if.cb;
sem.get(1);
rp_if.cb.pop <= 1'b1;
sem.put(1);
end
end
begin
while(1) begin
@rp_if.cb;
sem.get(1);
rp_if.cb.req<= 1'b1;
sem.put(1);
end
end
join
比如以上代码,想实现破pop和req可以独立发,但某一周期pop的时候不能发req,用了旗语,但总感觉哪里有问题。真心求教。
fork
begin
while(1) begin
@rp_if.cb;
sem.get(1);
rp_if.cb.pop <= 1'b1;
sem.put(1);
end
end
begin
while(1) begin
@rp_if.cb;
sem.get(1);
rp_if.cb.req<= 1'b1;
sem.put(1);
end
end
join
比如以上代码,想实现破pop和req可以独立发,但某一周期pop的时候不能发req,用了旗语,但总感觉哪里有问题。真心求教。
这样写好像不能实现你的需求吧,pop和req同时有效
对呀 应该是有问题。但又不知如何写。
需求不是很了解,你是要构造异常还是时序本身就这样
就是说驱动pop和req两个信号,同一周期内如果驱动了req就不能驱动pop,但是如果没有req要驱动,就可以任意驱动pop。是不是似乎写在同一个while块里面比较合理?不应该fork出来?
我猜你是想实现一个req与pop的随机时序,可以使用一个标志来实现。比如随机这个标志为1,标识req有,pop则没有,反之,则req没有,pop任意
对,不改用旗鱼。似乎写在一个进程里就行了,,谢谢