anchor.diff:  endfunction
   
   
  -module mkNocArbitrate#(Vector#(n, PipeOut#(a)) in, PipeIn#(a) out)(Empty);
  +module mkNocArbitrate#(int id, String name, 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);
  
positive.code:    rule move;
        if (out.notFull && in[arb.grant_id].notEmpty)
  	 action
  	    out.enq(in[arb.grant_id].first());
  	    in[arb.grant_id].deq();
  	 endaction
  
negative.code:       
    // interface wiring
  
     interface PipeIn in = toPipeIn(fifofromhost);
     interface PipeOut out = toPipeOut(fifotohost);
  
  endmodule
  
  