anchor.diff:  /* First pass implements Hirschberg Algorithm A and the fetch call returns the L matrix
    */
   interface MaxcommonsubseqRequest;
  -   method Action setupA(Bit#(32) strPointer, Bit#(32) strLen);
  -   method Action setupB(Bit#(32) strPointer, Bit#(32) strLen);
  +   method Action setupA(Bit#(32) strPointer, Bit#(32) strOffset, Bit#(32) strLen);
  +   method Action setupB(Bit#(32) strPointer, Bit#(32) strOffset, Bit#(32) strLen);
      method Action fetch(Bit#(32) strPointer, Bit#(32) dest, Bit#(32) src, Bit#(32) strLen);
      method Action start(Bit#(32) alg);
   endinterface
   
   interface MaxcommonsubseqIndication;
  -   method Action searchResult(Int#(32) v);
  +   method Action searchResult(Bit#(32) v);
      method Action setupAComplete(); 
      method Action setupBComplete(); 
      method Action fetchComplete(); 
  
positive.code:    Reg#(Bool) hirschARunning <- mkReg(False);
     Reg#(Bool) hirschB0Running <- mkReg(False);
     Reg#(Bool) hirschB1Running <- mkReg(False);
  
     MCSAlgorithm hirschA <- mkHirschA(strA.portA, strB.portA, matL.portA);
     MCSAlgorithm hirschB1 <- mkHirschB(strA.portA, strB.portA, matL.portA, 1);
     MCSAlgorithm hirschB0 <- mkHirschB(strA.portA, strB.portA, matL.portA, 0);
     MCSAlgorithm chirschB1 <- mkHirschB(strA.portA, strB.portA, matL0.portA, 1);
     MCSAlgorithm chirschB0 <- mkHirschB(strA.portA, strB.portA, matL1.portA, 0);
     MCSAlgorithm hirschC <- mkHirschC(strA.portA, strB.portA, matL, chirschB0, chirschB1, matL0.portB, matL1.portB);
     // create BRAM Write client for matL
  
     rule finish_setupA;
  
negative.code:       $display ("start %d", alg);
        case (alg) 
  	 0: begin
  	       hirschA.setupL(0);
  	       hirschA.fsm.start();
  	       hirschARunning <= True;
  	    end
  	 1: begin
  	       hirschB1.fsm.start();
  	       hirschB1.setupL(0);
  	       hirschB1Running <= True;
  	    end
  	 2: begin
  	       hirschB0.fsm.start();
  	       hirschB0.setupL(0);
  	       hirschB0Running <= True;
  	    end
  	 3: begin
  	       hirschC.setupL(0);
  	       hirschC.fsm.start();
  	       hirschCRunning <= True;
  	    end
        endcase
     endmethod
  