anchor.diff:     method Action fetchComplete(); 
   endinterface
   
  +typedef Bit#(8) Char;
  +typedef Bit#(64) DWord;
  +typedef Bit#(32) Word;
   
   typedef 128 MaxStringLen;
  +typedef 16384 MaxFetchLen;
   typedef Bit#(TLog#(MaxStringLen)) StringIdx;
  -typedef Bit#TLog#(MaxStringLen*MaxStringLen)) LIdx;
  +typedef Bit#(TLog#(MaxFetchLen)) LIdx;
   
   module mkMaxcommonsubseqRequest#(MaxcommonsubseqIndication indication,
   			DmaReadServer#(busWidth)   setupA_read_server,
  
positive.code: 	    Add#(1, b__, nc),
  	    Add#(c__, 32, busWidth),
  	    Add#(1, d__, TDiv#(busWidth, 32)),
  	    Mul#(TDiv#(busWidth, 32), 32, busWidth),
  	    Log#(p,lp));
     
    Reg#(Bit#(32)) aLenReg <- mkreg(0);
    Reg#(Bit#(32)) bLenReg <- mkreg(0);
    Reg#(Bit#(32)) rLenReg <- mkreg(0);
    
     BRAM2Port#(StringIdx, Char) strA  <- mkBRAM2Server(defaultValue);
     BRAM2Port#(StringIdx, Char) strB <- mkBRAM2Server(defaultValue);
  
     BRAM2Port#(LIdx, Bit#(StringIdx)) matL <- mkBRAM2Server(defaultValue);
  
     BRAMReadClient#(StringIdx,busWidth) n2a <- mkBRAMReadClient(strA.portB);
     mkConnection(n2a.dmaClient, setupA_read_server);
     BRAMReadClient#(StringIdx,busWidth) n2b <- mkBRAMReadClient(strB.portB);
     mkConnection(n2b.dmaClient, setupB_read_server);
     BRAMWriteClient#(LIdx, Bit#(StringIdx)) l2n <- mkBRAMWrieClient(matL.portB);
  
     // create BRAM Write client for matL
  
  
negative.code: import FIFOF::*;
  import SpecialFIFOs::*;
  import GetPutF::*;
  //import Vector::*;
  import BRAM::*;
  //import Gearbox::*;
  import Connectable::*;
  
  //import AxiMasterSlave::*;
  import Dma::*;
  import DmaUtils::*;
  import Dma2BRAM::*;
  
  /* This module solves the maximum common subsequence problem.
   * It finds the longest subsequence of characters present in both input strings
  