anchor.diff:  interface BurstFunnel#(numeric type k, numeric type w);
      method Action loadIdx(Bit#(TLog#(k)) i);
      interface Vector#(k, PipeIn#(Bit#(w))) dataIn;
  -   interface Vector#(k, Reg#(Bit#(8))) burstLen;
  +   interface Vector#(k, Reg#(Bit#(BurstLenSize))) burstLen;
      interface PipeOut#(Tuple2#(Bit#(TLog#(k)),Bit#(w))) dataOut;
   endinterface
   
  
positive.code:        endinterface);
     Vector#(k, PipeIn#(Bit#(w))) data_in_pipes = zipWith(enter_data, data_in, genVector);
  
     function Reg#(Bit#(8)) check(Reg#(Bit#(8)) r) =
        (interface Reg;
  	  method Action _write(Bit#(8) v);
  	     if(v > 16) begin
  		$display("ERROR mkBurstFunnel: burstLen too large");
  		$finish;
  	     end
  	     r <= v;
  	  endmethod
  	  method Bit#(8) _read = r._read;
         endinterface);
  
     rule drain_funnel;
  
negative.code:       interface Get writeReq;
  	 method ActionValue#(ObjectRequest) get();
  	    match {.idx, .cmd} <- toGet(loadf_c).get;
  	    Bit#(BurstLenSize) bl = cmd.burstLen;
  	    Bool last = False;
  	    if (cmd.len <= extend(bl)) begin
  	       last = True;
  