anchor.diff:  
   import SerialFIFO::*;
   import NocNode::*;
  +import LinkHost::*;
   import Connectable::*;
   import StmtFSM::*;
  +import Vector::*;
  +import FIFOF::*;
   
   interface NocIndication;
      method Action ack(Bit#(4) recvnode, Bit#(4) to, Bit#(32) message);
  
positive.code:   
    // fsm to read from host ports and generate indications
  
    Bit#(4) id <- mkReg(0);
  
    Stmt readindications =
      seq
      while(True) seq
        for(id <= 0; id < 4; id <= id + 1)
            if (node[i].host.tohost.notEmpty())
  	      par
  	      indication.ack(id, hode[i].host.tohost.first.address,
  	          node[i].host.tohost.first.payload);
  		  node[i].host.tohost.deq();
                endpar
        endseq
      endseq;
  
  
negative.code: 
  module mkNocRequest#(NocIndication indication)(NocRequest);
     
     SerialFIFO#(DataMessage) xxx <- mkSerialFIFO();
     Vector#(5, SerialFIFO#(DataMessage)) we <- replicateM( mkSerialFIFO );
     Vector#(5, SerialFIFO#(DataMessage)) ew <- replicateM( mkSerialFIFO );
  
     // discard traffic from loose ends
     rule discardeast;
        we[4].out.deq();
        endrule
  
     rule discardwest;
        ew[0].out.deq();
        endrule
  
     Vector#(4, NocNode) node;
  
      for (Bit#(4) i = 0; i < 4; i = i + 1)
      begin
          node[i] <- mkNocNode(unpack(i), 
  	    SerialFIFO {in: ew[0].in, out: we[0].out},
  