anchor.diff:              // unknown packet type -- just discard it
               tlp_in_fifo.deq();
            end
  -         // indicate activity type
  -         //if (is_config_read)                     is_read.send();
  -         //if (is_config_write)                    is_write.send();
         end
         else if (routeToPort matches tagged Valid .port) begin
            if (tlp_out_fifo[port].notFull()) begin
  
positive.code:    Vector#(PortMax, FIFOF#(TLPData#(16))) tlp_in_fifo <- replicateM(mkGFIFOF(False,True)); // unguarded deq
     Reg#(Maybe#(Bit#(TLog#(PortMax)))) routeFrom <- mkReg(tagged Invalid);
  
     PulseWire is_read       <- mkPulseWire();
     PulseWire is_write      <- mkPulseWire();
     PulseWire is_completion <- mkPulseWire();
  
     (* fire_when_enabled *)
     rule arbitrate_outgoing_TLP;
        if (routeFrom matches tagged Valid .port) begin
  
negative.code: 	 Bool matched = False;
           // route the packet based on this header
  	 for (Integer port = 0; port < valueOf(PortMax); port = port+1)
              if (!matched && matchFunctions[port](tlp, hdr_3dw)) begin
  	       matched = True;
                 if (tlp_out_fifo[port].notFull()) begin
  		  tlp_in_fifo.deq();
  