anchor.diff:        l2n.start(strPointer, zeroExtend(dest), bram_start_idx, bram_finish_idx);
      endmethod
   
  -   method Action start();
  +   method Action start(int alg);
  +      case (alg) 
  +	 0: hirschA.start();
  +	 1: hirschB.start();
  +	 2: hirschC.start();
  +	 default:
  +      endcase
      endmethod
   
   endmodule
  
positive.code:       indication.fetchComplete();
     endrule
  
     mkAutoFSM(maxQuadratic);
     
     method Action setupA(Bit#(32) strPointer, Bit#(32) strLen);
        aLenReg <= truncate(strLen);
  
negative.code:   Reg#(Bit#(7)) jj <- mkReg(0);
     Reg#(Char) aData <- mkReg(0);
     Reg#(Char) bData <- mkReg(0);
     Reg#(Bit#(16)) k0j <- mkReg(0);
     Reg#(Bit#(16)) k1jm1 <- mkReg(0);
  
  
     BRAM2Port#(StringIdx, Char) strA  <- mkBRAM2Server(defaultValue);
     BRAM2Port#(StringIdx, Char) strB <- mkBRAM2Server(defaultValue);
     BRAM2Port#(LIdx, Bit#(16)) matL <- mkBRAM2Server(defaultValue);
  