anchor.diff:          ibufds_v[i] <- mkIBUFDS(vita_data_p[i], vita_data_n[i]);
       Vector#(5, IserdesDatadeser) serdes_v <- replicateM(mkIserdesDatadeser(serdes_clock, serdest_clk.gen_clk));
   
  -    Reg#(Bit#(1)) vita_reset_n_o <- mkReg(0);
       Wire#(Bit#(1)) zero_wire <- mkDWire(0);
       Wire#(Bit#(1)) one_wire <- mkDWire(1);
  -    Wire#(Bit#(1)) trigger_wire <- mkDWire(0);
  +    Wire#(Bit#(1)) trigger_wire <- mkDWire(pack(tstate != TSend));
       Vector#(3, ReadOnly#(Bit#(1))) vita_trigger_wire;
       vita_trigger_wire[2] <- mkOBUFT(zero_wire, imageon_oe);
       vita_trigger_wire[1] <- mkOBUFT(one_wire, imageon_oe);
       vita_trigger_wire[0] <- mkOBUFT(trigger_wire, imageon_oe);
  -    ReadOnly#(Bit#(1)) vita_reset_n_wire <- mkOBUFT(vita_reset_n_o, imageon_oe);
  +    ReadOnly#(Bit#(1)) vita_reset_n_wire <- mkOBUFT(serdes_reset_reg, imageon_oe);
   
       Reg#(Bit#(1)) serdes_align_busy_temp <- mkReg(0);
       Reg#(Bit#(1)) serdes_align_busy_reg <- mkSyncReg(0, defaultClock, defaultReset, axi_clock);
  
positive.code:         pll_t.d1(imageon_oe);
          pll_t.d2(imageon_oe);
          pll_t.ce(True);
      endrule
  
      rule trigger_rule;
          trigger_wire <= pack(tstate != TSend);
      endrule
  
      rule vr_rule;
          vita_reset_n_o <= ~serdes_reset_reg;
      endrule
  
      rule sendup_imageon_clock;
  
negative.code: 	    serdes_training_reg <= v;
  	endmethod
  	method Action set_iserdes_control(Bit#(32) v);
  	    serdes_reset_reg <= ~v[0];
  	    serdes_auto_align_reg <= v[1];
  	    serdes_align_start_reg <= v[2];
  	    serdes_fifo_enable_reg <= v[3];
  