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:    FIFOF#(void) mReady <- mkFIFOF;
  
     Reg#(Bool) hirschARunning <- mkReg(False);
     Reg#(Bool) hirschBRunning <- mkReg(False);
  
     MCSAlgorithm hirschA <- mkHirschA(strA.portA, strB.portA, matL.portA);
     MCSAlgorithm hirschB <- mkHirschB(strA.portA, strB.portA, matL.portA, 1);
     
     // create BRAM Write client for matL
  
  
negative.code:       indication.searchResult(22);
        endrule
     
     rule hirschB0_completion (hirschB0Running && hirschB0.fsm.done);
        hirschBRunning <= False;
        indication.searchResult(23);
        endrule
     
     rule hirschB1_completion (hirschB1Running && hirschB1.fsm.done);
        hirschBRunning <= False;
        indication.searchResult(24);
        endrule
     
     
  