User`s manual

571 assign reset_slow = reset_count != 0;
572
573 //
574 // I2C driver
575 //
576
577 reg load;
578 reg [7:0] data;
579 wire ack, idle;
580
581 i2c i2c(.reset(reset_slow), .clock4x(clock_slow), .data(data), .load(load),
582 .ack(ack), .idle(idle), .scl(tv_in_i2c_clock),
583 .sda(tv_in_i2c_data));
584
585 //
586 // State machine
587 //
588
589 reg [7:0] state;
590 reg tv_in_reset_b;
591 reg old_source;
592
593 always @(posedge clock_slow)
594 if (reset_slow)
595 begin
596 state <= 0;
597 load <= 0;
598 tv_in_reset_b <= 0;
599 old_source <= 0;
600 end
601 else
602 case (state)
603 8’h00:
604 begin
605 // Assert reset
606 load <= 1’b0;
607 tv_in_reset_b <= 1’b0;
608 if (!ack)
609 state <= state+1;
610 end
611 8’h01:
612 state <= state+1;
613 8’h02:
614 begin
615 // Release reset
616 tv_in_reset_b <= 1’b1;
56