o said:
Your board documentation will probably give you some hints on how to get
started. Essentially, you have to generate 5 signals hsync, vsync an RGB
signals.
For the basic 640 x 480 mode you may be ok with a 25 MHz clock. An
horizontal counter counting 0 to 799 and a vertical counter counting 0
to 525 give the basic coordinates.
You output hsync when hcounter is between 0 an 95, and output vsync when
vcounter is between 0 and 1. You provide your information on the R, G
and B lines when the horizontal counter is between 96+16 and 96+16+640
and the vertical counter between 2+10 and 2+10+480. Have a look at basic
timing diagrams available on the web.
Pere
Pere has talked about generating the video scan, but usually a harder
issue is managing a frame buffer. For simple line drawing it is also
possible to work without a frame buffer by using logic to determine
whether a given pixel falls on a line. Very early video games like
Pong had no frame buffer. For general drawing, however the frame
buffer actually makes life easier as it allows unlimited numbers of
drawing objects.
Video display requires reading the frame buffer in advance of the
output raster, incorporating a FIFO to avoid requiring the external
RAM buffer to be read synchronously to the frame.
Typically the frame buffer is structured as having a separate read/write
port for "processor" or "graphics enginge" access for drawing. Strictly
speaking a graphics engine does not need to read the frame buffer for
creating new objects, but most graphics engines incorporate the ability
to copy regions of the screen to another area (Google for "bitblt").
All in all the difficulty of this project probably hinges on the ease
of use of any available external memory controller.
-- Gabor