anchor.diff:             master_data.q7(), master_data.q6(), master_data.q5(),
              master_data.q4(), master_data.q3(), master_data.q2(), master_data.q1()};
           ctrl_data_temp <= dout;
  -        for (Integer i = 0; i < 10; i = i + 1)
  -            iserdes_data[i].send(dout[i]);
  +        iserdes_data.send(dout);
       endrule
   
       rule datain_rule;
           Bit#(10) dout = 0;
  -        for (Integer i = 0; i < 10; i = i + 1)
  -            dout[i] = iserdes_data[i].read();
  +        dout = iserdes_data.read();
           if (fifo_wren_sync.read() == 1)
               begin
               dfifo.di({6'b0,dout});
  
positive.code:     Reg#(Bit#(3)) dcounter <- mkReg(0, clocked_by serdes_clock, reset_by serdes_reset);
      Reg#(Bit#(1)) serdes_running <- mkReg(0, clocked_by serdes_clock, reset_by serdes_reset);
      Reg#(Bit#(1)) fifo_reset <- mkReg(1, clocked_by serdes_clock, reset_by serdes_reset);
      SyncBitIfc#(Bit#(1)) dfifo_reset_r <- mkSyncBit(defaultClock, defaultReset, serdes_clock);
      Reg#(Bit#(1)) sync_bitslip <- mkReg(0, clocked_by serdes_clock, reset_by serdes_reset);
      Reg#(Bit#(3)) sync_reset_inc_ce <- mkReg(0, clocked_by serdes_clock, reset_by serdes_reset);
      Reg#(Bit#(3)) ctrl_sample <- mkReg(0);
      SyncBitIfc#(Bit#(1)) samplein_reset_null <- mkSyncBit(defaultClock, defaultReset, serdes_clock);
  
      SyncBitIfc#(Bit#(1)) fifo_wren_sync <- mkSyncBit(serdes_clock, serdes_reset, defaultClock);
      Vector#(10, SyncBitIfc#(Bit#(1))) iserdes_data <-  replicateM(mkSyncBit(serdes_clock, serdes_reset, defaultClock));
      SyncFIFOIfc#(Bit#(1)) serdes_end <- mkSyncFIFO(2, serdes_clock, serdes_reset, defaultClock);
  
      Reg#(Bit#(10)) ctrl_data <- mkSyncReg(0, serdes_clock, serdes_reset, defaultClock);
  
negative.code:     Reg#(Bit#(16)) gencounter <- mkReg(0);
      FIFO#(Bit#(1)) start_alignment_fsm <- mkFIFO();
      Reg#(Bit#(3)) ctrl_reset_inc_ce <- mkReg(0);
      SyncBitIfc#(Bit#(3)) serdes_reset_inc_ce <- mkSyncBits(defaultClock, defaultReset, serdes_clock);
      SyncBitIfc#(Bit#(1)) serdes_bitslip <- mkSyncBit(defaultClock, defaultReset, serdes_clock);
  
      //*************************** top align FSM *****************
  