anchor.diff:              Add#(TDiv#(busWidth, 16), g__, TMul#(2, TDiv#(busWidth, 16))));
   
      
  -  Reg#(Bit#(32)) aLenReg <- mkReg(0);
  -  Reg#(Bit#(32)) bLenReg <- mkReg(0);
  -  Reg#(Bit#(32)) rLenReg <- mkReg(0);
  -  Reg#(Bit#(32)) ii <- mkReg(0);
  +  Reg#(Bit#(7)) aLenReg <- mkReg(0);
  +  Reg#(Bit#(7)) bLenReg <- mkReg(0);
  +  Reg#(Bit#(14)) rLenReg <- mkReg(0);
  +  Reg#(Bit#(7)) ii <- mkReg(0);
  +  Reg#(Bit#(7)) jj <- mkReg(0);
      Reg#(Char) aData <- mkReg(0);
      Reg#(Char) bData <- mkReg(0);
  +   Reg#(Bit#(16)) lim1jm1 <- mkReg(0);
  +   Reg#(Bit#(16)) lim1j <- mkReg(0);
  +   Reg#(Bit#(16)) lijm1 <- mkReg(0);
      BRAM2Port#(StringIdx, Char) strA  <- mkBRAM2Server(defaultValue);
      BRAM2Port#(StringIdx, Char) strB <- mkBRAM2Server(defaultValue);
      BRAM2Port#(LIdx, Bit#(16)) matL <- mkBRAM2Server(defaultValue);
  
positive.code:       indication.fetchComplete();
     endrule
  
     mkAutoFSM(splice);
     
     method Action setupA(Bit#(32) strPointer, Bit#(32) strLen);
        aLenReg <= strLen;
        $display("setupA %h %d", strPointer, strLen);
        n2a.start(strPointer, 0, pack(truncate(strLen)), 0);
     endmethod
  
     method Action setupB(Bit#(32) strPointer, Bit#(32) strLen);
        bLenReg <= strLen;
        $display("setupB %h %d", strPointer, strLen);
        n2b.start(strPointer, 0, pack(truncate(strLen)), 0);
     endmethod
     
     method Action fetch(Bit#(32) strPointer, Bit#(32) strLen);
        rLenReg <= strLen;
        $display("fetch %h %d", strPointer, strLen);
        l2n.start(strPointer, 0, pack(truncate(strLen)), 0);
     endmethod
  
     method Action start();
  
negative.code: interface MaxcommonsubseqRequest;
     method Action setupA(Bit#(32) strPointer, Bit#(32) strLen);
     method Action setupB(Bit#(32) strPointer, Bit#(32) strLen);
     method Action fetch(Bit#(32) strPointer, Bit#(32) dest, Bit#(32) src, Bit#(32) strLen);
     method Action start();
  endinterface
  
  