anchor.diff:      Reg#(Bit#(1))     framestart_reg <- mkReg(0, clocked_by slow_clock, reset_by slow_reset);
       Reg#(Bit#(1))     framestart_delay_reg <- mkReg(0, clocked_by slow_clock, reset_by slow_reset);
       Reg#(Bit#(1))     framestart_new <- mkReg(0);
  +    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); 
       
       rule start_fsm if (framestart_new == 1);
           vsync_count <= 0;
  
positive.code: 	    in[1] = framestart_delay_reg;
  	    syncGearbox.enq(in);
  	endmethod
  	method Action video_data(Bit#(40) v);
  	    // least signifcant 10 bits shifted out first
  	    Vector#(4, Bit#(10)) in = unpack(v);
  	    dataGearbox.enq(in);
  
negative.code: 		vsync: pack(vstate == Sync),
  		hsync: pack(hstate == Sync),
  		active_video: active_video_reg,
  		video_data: videodata
  	    };
  	endmethod
      endinterface: out
  