anchor.diff:  
      // fixme
      let kernelHeight = 4;
  +   let kernelWidth = 4;
      let kernelColAddrBits = 2;
      Reg#(Bit#(16))           rowLenBytes <- mkReg(16);
      Reg#(Bit#(BurstLenSize)) burstLenBytes <- mkReg(16);
  
positive.code:       bramWriteFifo.enq(BRAMRequest{write: True, responseOnWrite: False, address: truncate(bramAddr), datain: unpack(v[0])});
        if (bramWriteRangePipe.isLast()) begin
  	 // now OK to start convolutions for rows up to here
  	 let rowNumber = bramAddr >> 4; // imageColAddrBits
  	 let enoughRowsCached = enoughRowsCachedReg;
  	 if (!enoughRowsCached) begin
  	    enoughRowsCached = rowNumber >= (kernelHeight-1);
  
negative.code: 	 $display("bramWriteRule: islast rowNumber=%d bramAddr=%d kernelHeight=%d enoughRowsCached=%d", rowNumber, bramAddr, kernelHeight, enoughRowsCached);
  	 if (enoughRowsCached) begin
  	    convRangePipe.start(XYRangeConfig {
  					       xbase: truncate(rowNumber-kernelHeight+1), xlimit: truncate(rowNumber-kernelHeight+2), xstep: 1,
  					       ybase: 0, ylimit: (truncate(rowLenBytes>>1)-kernelWidth), ystep: 1
  					       });
  	 end
        end
  