anchor.diff:              xsvi_video_data_wire <= v;
   	endmethod
   	method Action framestart(Bit#(1) v);
  +            framestart_wire <= v;
  +            framestart_reg <= v;
  +            framestart_delay_reg <= framestart_reg;
   	    Vector#(4, Bit#(1)) in = replicate(0);
   	    // zero'th element shifted out first
  -	    in[0] = v;
  +	    in[1] = framestart_delay_reg;
   	    syncGearbox.enq(in);
   	endmethod
   	method Action video_data(Bit#(40) v);
  
positive.code:     Gearbox#(4, 1, Bit#(10)) dataGearbox <- mkNto1Gearbox(slow_clock, slow_reset, defaultClock, defaultReset); 
      Gearbox#(4, 1, Bit#(1))  syncGearbox <- mkNto1Gearbox(slow_clock, slow_reset, defaultClock, defaultReset); 
  
      Reg#(Bit#(1)) vsync_reg <- mkReg(0);
      Reg#(Bit#(1)) hsync_reg <- mkReg(0);
      Reg#(Bit#(1)) active_video_reg <- mkReg(0);
      Wire#(Bit#(1))  xsvi_framestart_old_wire <- mkDWire(0);
      Wire#(Bit#(10)) xsvi_video_data_wire <- mkDWire(0);
  
      Reg#(Bit#(1))     framestart <- mkReg(0);
      Reg#(State)       hstate <- mkReg(Idle);
      Reg#(State)       vstate <- mkReg(Idle);
      Reg#(Bit#(16))    vsync_count <- mkReg(0);
      Reg#(Bit#(16))    hsync_count <- mkReg(0);
      Reg#(Bit#(32))    debugind_value <- mkReg(0);
      
      rule start_fsm if (xsvi_framestart_old_wire == 1);
          vsync_count <= 0;
  
negative.code: 
      interface ImageonSensorData in;
          method Action fsync(Bit#(1) v);
              xsvi_framestart_old_wire <= v;
          endmethod
          method Bit#(1) active_video();
              return active_video_reg;
          endmethod
  