Digital Signal Processing Reference
In-Depth Information
PROCESS
BEGIN
WAIT
UNTIL
( clock_25MHz
'EVENT
)
AND
( clock_25MHz = '1' );
--Generate Horizontal and Vertical Timing Signals for Video Signal
-- H_count counts pixels (640 + extra time for sync signals)
-- Horiz_sync -------------------------------------------________--------
-- H_count 0 640
659 755 799
- -
IF
( h_count = 799 )
THEN
h_count <= "0000000000";
ELSE
h_count <= h_count + 1;
END
IF
;
--Generate Horizontal Sync Signal using H_count
IF
( h_count <= 755 )
AND
(h_count => 659 )
THEN
horiz_sync <= '0';
ELSE
horiz_sync <= '1';
END
IF
;
--V_count counts rows of pixels (480 + extra time for sync signals)
--
-- Vert_sync ----------------------------------------_______------------
-- V_count 0 480 493-494 524
- -
IF
( v_count >= 524 )
AND
( h_count => 699 )
THEN
v_count <= "0000000000";
ELSIF
( h_count = 699 )
THEN
v_count <= v_count + 1;
END
IF
;
-- Generate Vertical Sync Signal using V_count
IF
( v_count <= 494 )
AND
( v_count = >493 )
THEN
vert_sync <= '0';
ELSE
vert_sync <= '1';
END
IF
;
-- Generate Video on Screen Signals for Pixel Data
IF
( h_count <= 639 )
THEN
video_on_h <= '1';
pixel_column <= h_count;
ELSE
video_on_h <= '0';
END
IF
;
IF
( v_count <= 479 )
THEN
video_on_v <= '1';
pixel_row <= v_count;
ELSE
video_on_v <= '0';