anchor.diff:      endinterface
   endmodule : mkDmaMatrixMultiply
   
  -interface DramMatrixMultiply#(numeric type n, numeric type dmasz, numeric type nm);
  -   interface Vector#(nm, ObjectReadClient#(dmasz)) readClients;
  -   interface Vector#(nm, ObjectWriteClient#(dmasz)) writeClients;
  +interface DramMatrixMultiply#(numeric type n, numeric type dmasz);
  +   interface Vector#(2, ObjectReadClient#(dmasz)) readClients;
  +   interface Vector#(2, ObjectWriteClient#(dmasz)) writeClients;
      method Action start(ObjectPointer pointerA, UInt#(MMSize) numRowsA, UInt#(MMSize) numColumnsA,
   		       ObjectPointer pointerB, UInt#(MMSize) numRowsB, UInt#(MMSize) numColumnsB,
   		       ObjectPointer pointerC,
  
positive.code:    interface MmRequestTN mmRequest;
     interface MmDebugRequest mmDebug;
     interface TimerRequest timerRequest;
     interface Vector#(NumberOfMasters, ObjectReadClient#(TMul#(32,n)))  readClients;
     interface Vector#(NumberOfMasters, ObjectWriteClient#(TMul#(32,n))) writeClients;
  endinterface
  
  module  mkMmTN#(MmIndication ind, TimerIndication timerInd, MmDebugIndication mmDebugIndication, HostType host)(MmTN#(N))
  
negative.code: 
     let n = valueOf(n);
  
     DramMatrixMultiply#(N, TMul#(N,32)) dmaMMF <- mkDramMatrixMultiply(host);
  
     Reg#(Bit#(64)) mmfCycles <- mkReg(0);
     rule countMmfCycles;
  