Code: Alles auswählen
module mkFifo();
Reg#(int) bubbles <- mkReg(0);
FIFO#(int) outfifo <- mkSizedFIFO(10); // to buffer incoming requests
FIFO#(int) infifo <- mkFIFO;
Reg#(int) state <- mkReg(0);
Foo foo <- mkFifoModule;
Reg#(int) max_bubble <- mkReg(4);
// Connect flow of requests from stimulus generator to DUT
rule infifoin;
$display("infifoin(%d)",$time);
infifo.enq(10);
endrule
//(* descending_urgency = "enq_item, enq_bubble" *)
rule enq_item;
$display("enq_item (%d)", $time);
outfifo.enq(infifo.first);infifo.deq;
bubbles <= 0;
endrule
rule enq_bubble;
$display("enq_bubble (%d)", $time);
outfifo.enq(5);
max_bubble <= max(max_bubble,bubbles);
endrule
rule finisher;
if(state == 5)$finish;
state <= state +1;
endrule
rule inc_bubbles;
$display("inc_bubble (%d)", $time);
bubbles <= bubbles + 1;
endrule
endmodule