anchor.diff:        l2n.start(strPointer, zeroExtend(dest), bram_start_idx, bram_finish_idx);
      endmethod
   
  -   method Action start(Bit#(32) alg);
  +   method Action start(Bit#(32) alg, Bit#(32) dir);
         $display ("start %d", alg);
         case (alg) 
   	 0: begin
  
positive.code: 	       hirschARunning <= True;
  	       end
  	 1: begin
  	       hirschB.setupA(0, aLenReg);
  	       hirschB.setupB(0, bLenReg);
  	       hirschB.fsm.start();
  	       hirschB.setupL(0);
  	       hirschBRunning <= True;
  	       end
  //	 2: hirschC.start();
        endcase
     endmethod
  
  
negative.code:    FIFOF#(void) mReady <- mkFIFOF;
  
     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);
     
     // create BRAM Write client for matL
  
  