anchor.diff:     rule move;
         if (out.notFull && in[arb.grant_id].notEmpty)
   	 action
  +	    $display("%s id %d from %d", name, id, arb.grant_id);
   	    out.enq(in[arb.grant_id].first());
   	    in[arb.grant_id].deq();
   	 endaction
  
positive.code: endfunction
  
  
  module mkNocArbitrate#(Vector#(n, PipeOut#(a)) in, PipeIn#(a) out)(Empty);
     Arbiter_IFC#(n) arb <- mkArbiter(False);   
     for (Integer i = 0; i < valueOf(n); i = i + 1)
        rule send_request (out.notFull && in[i].notEmpty);
  
negative.code:       
    // interface wiring
  
     interface PipeIn in = toPipeIn(fifofromhost);
     interface PipeOut out = toPipeOut(fifotohost);
  
  endmodule
  
  