anchor.diff:        interface Get writeReq;
   	 method ActionValue#(ObjectRequest) get();
   	    match {.idx, .cmd} <- toGet(loadf_c).get;
  -	    Bit#(8) bl = cmd.burstLen;
  +	    Bit#(BurstLenSize) bl = cmd.burstLen;
   	    Bool last = False;
   	    if (cmd.len <= extend(bl)) begin
   	       last = True;
  
positive.code:    UGBramFifos#(4,16,Tuple2#(Bit#(w),Bool)) complBuff <- mkUGBramFifos;
     Vector#(4, ConfigCounter#(16)) compCnts <- replicateM(mkConfigCounter(0));
     Vector#(k,FIFOF#(Tuple3#(Bit#(2), Bit#(w), Bool))) data_in <- replicateM(mkFIFOF);
     Vector#(k,Reg#(Bit#(8))) burst_len <- replicateM(mkReg(0));
     Vector#(k,Reg#(Bit#(8))) drain_cnt <- replicateM(mkReg(0));
     Reg#(Bit#(8)) inj_ctrl <- mkReg(0);
     FIFO#(Tuple2#(Bit#(TAdd#(1,logk)),Bit#(2))) loadIdxs <- mkSizedFIFO(32);
     FIFO#(Tuple2#(Bit#(TAdd#(1,logk)),Bit#(2))) inFlight <- mkSizedFIFO(4);
     FunnelPipe#(1, k, Tuple3#(Bit#(2),Bit#(w),Bool),bpc) data_in_funnel <- mkFunnelPipesPipelined(map(toPipeOut,data_in));
     Reg#(Bit#(8)) drainCnt <- mkReg(0);
     FIFOF#(Tuple2#(Bit#(TLog#(k)),Bit#(w))) exit_data <- mkFIFOF;
     FIFO#(Bit#(logk)) drainRename <- mkFIFO;
     
  
negative.code:        endinterface);
     Vector#(k, PipeIn#(Bit#(w))) data_in_pipes = zipWith(enter_data, data_in, genVector);
  
     function Reg#(Bit#(BurstLenSize)) check(Reg#(Bit#(BurstLenSize)) r) =
        (interface Reg;
  	  method Action _write(Bit#(BurstLenSize) v);
  	     if(v > 16) begin
  		$display("ERROR mkBurstFunnel: burstLen too large");
  		$finish;
  	     end
  	     r <= v;
  	  endmethod
  	  method Bit#(BurstLenSize) _read = r._read;
         endinterface);
  
     rule drain_funnel;
  