Sometimes we all wish for "only one more LED". Now how about 307200 LEDs, all RGB, perfectly arranged in a square? (And I bet also your monitor has an unused analog input...)
Seriously, an RGB monitor can be a useful debugging tool, a poor man's logic analyzer.
The hardest step is probably the first, and that is to get some picture at all.
That's why I'm posting this VGA timing generator. It's rather compact (less than 200 lines, many of them comments), but it takes no shortcuts with the sync generation.
The use of an inferred DSP48 for the test picture (via "*") is heavy-handed - but hey, we already paid for it, so let's use it.
This is the planAhead project:
The interesting file is RGB.srcs/sources_1/imports/src/top.v
Further, there is a generated 32-to-25.175M PLL (approximate frequency) and the constraints file.
The latter is for a Xess RGB wing in Papilio Pro port "C". Pins may need to be re-mapped, depending on connections.
Now, how to use it for more than a test picture:
The generator provides X and Y as numbers, "blank" (here RGB must be zero), besides HSYNC and VSYNC signals to the monitor.
A typical implementation would need some processing delay on X and Y, simply delay HSYNC and VSYNC by the same amount.
Download Source Code