Here are the results of my resarch so far:
This fellow did 20 rows by 20 columns of 8x12 characters
using a 16MHz AVR.:
http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm
Not bad, but like all things you do not see what the overhead of changing
the text is like as to what happens on scrolling the text as a new line is
added.
..and a simle colorbar generator:
http://www.serasidis.gr/circuits/colour_bar_gen/colour_bar_gen.htm
If a 16Mhz. AVR can do that, what can a 100mips Cignal C8051F120 do?
Firstly Mips means nothing when doing video circuits, continuous data
bandwidth is the major key, as you cannot miss anything or everything
slides or gets holes in.
Not very impressive, considering I have driven two LCDs with parallel
24 bit to EACH LCD from one PLD, having proper 8 colours in the colour bar
pattern, greyscale ramps (ALL codes) and many other patterns, no memory
required. Each LCD had switch selectable pattern, inverted, missing colours
and other test functions. Each LCD could display its own pattern.
That was with a 128 macrocell device. Not uncommon for me to drive 10 bit
video ADCs to generate the analog signals.
I class most we can do complete VGA in a micro as 'willy waving' excercises
to show what a processor can do, not whether it is a useful example or
exercise.
Have any of the above been used in anger?
Are they more than just interesting projects documented on web pages?
Probably closest to what you are looking for but analog not DVI output,
would need digitising and serialising to use the digital portion of the
DVI interface.
From about 1981, when I was working at DEC in Reading it would considered as
what was then the VT30H (quad and hex unibus card) graphics controller,
converted to VT30S. This had 8085A processor to control the colour graphics
controller and keyboard for remote mimic displays in factories/railways
and the like.
The ANSI command set makes it look like later VT30S or VT2xx colour
terminal on a chip actually at lower resolution.
The Parallax Propeller appears to have some sort of "video object":
http://www.parallax.com/propeller/index.asp
Not had time or resources to test the usefulness of this approach
but see it more as another interesting exercise and what can be done.
Whether it is useful or can provide the parallel digital output to drive
the LVDS/TMDS interface is to be seen as these interfaces run at 7 x main
clock rate by internal PLL.
The basis of that in a newer chip could easily provide the VGA timing
and control a dual port RAM, which favoured display cycles to host cycles
which in simplest forms can have WAIT states inserted. Interupts for H and V
blanking can get major updates done.
Xilinx and Altera have examples for NTSC timing generation so it would be
easy to implement.
Without knowing more of the application it is difficult to say as most of
theirs seem suited to CSTN/STN displays that operate differently to
TFT the major types of LCD on DVI interface monitors.
Their outputs are analog or stepped analog (crude R2R ladders for lower
res), which is not much use on a digital DVI interface.
Any thoughts on any of the above?
Important questions
Are you displaying symbols/text/moving text or just changing
complete display frames (aka bill board advertising)
What type of DVI interface are you going to do
Analog
Digital
Both at same time
How often does a display change (average and peak)
Is colour required?
What is the max update rate for say a screen full of text scrolling
to add another complete line of text or Direct Cursor Addressing
to change a partial of whole line of text.
The big killers in simple text displays is scrolling/inserting text in
the display and what happens to wrapped or cropped data. The other killer
is how they scroll the text i.e. jump or smooth for the character lines.
Do any of these blank displays during large updates, and what is a large
update for each controller?
I have seen many that assume a few characters of change occur a second
so stop displaying video to do the update. It is better to update as
low priority compared to displaying to avoid extra flicker and judder
on displays.