anchor.diff:        burstLen  <= bl;
      endmethod
      endinterface
  -   interface MemReadClient dmaReadClient = cons(re.dmaClient, nil);
  -   interface MemWriteClient dmaWriteClient = cons(we.dmaClient, nil);
  +   interface MemReadClient dmaReadClient = vec(re.dmaClient);
  +   interface MemWriteClient dmaWriteClient = vec(we.dmaClient);
   endmodule
  
positive.code:    Reg#(Bit#(32))    rdBuffer <- mkReg(32);
     Reg#(Bit#(32))    wrBuffer <- mkReg(0); 
     
     rule start_read(rdIterCnt > 0 && rdBuffer >= burstLen);
        //$display("start_read %d", rdCnt);
        re.readServers[0].request.put(MemengineCmd{sglId:rdPointer, base:extend(rdCnt*4), len:(burstLen*4), burstLen:truncate(burstLen*4)});
        rdBuffer <= rdBuffer-burstLen;
        if(rdCnt+burstLen >= numWords) begin
  
negative.code:       let v <- toGet(re.dataPipes[0]).get;
        buffer.enq(v);
        wrBuffer <= wrBuffer+2;
        if (verbose) $display("fill_buffer %h", v);
     endrule
     
     rule drain_buffer;
  