anchor.diff:  
      let n = valueOf(n);
   
  -   DramMatrixMultiply#(N, TMul#(N,32)) dmaMMF <- mkDramMatrixMultiply();
  -   //DramBramMatrixMultiply#(N, TMul#(N,32)) bramMMF <- mkDramBramMatrixMultiply();
  +   Mm#(N) mm <- mkMm(mmInd, timerInd, mmDebugInd);
   
      DmaSigmoidIfc#(TMul#(32,n)) dmaSigmoid <- mkDmaSigmoid();
      Vector#(2,ObjectReadClient#(TMul#(32,n))) sigmoidsources = dmaSigmoid.readClients;
  
positive.code: import Pipe::*;
  import Timer::*;
  import RbmTypes::*;
  
  function ObjectReadClient#(asz) getSourceReadClient(DmaVectorSource#(asz,a) s); return s.dmaClient; endfunction
  function ObjectWriteClient#(asz) getSinkWriteClient(DmaVectorSink#(asz,a) s); return s.dmaClient; endfunction
  
negative.code:       endmethod
     endinterface
  
     interface MmRequest mmRequest = mm.mmRequest;
     interface MmDebugRequest mmDebugRequest = mm.mmDebug;
     
     interface SigmoidRequest sigmoidRequest;
        method Action sigmoid(Bit#(32) readPointer, Bit#(32) readOffset,
  