Spartan3e starter kit vga mod

I have added some notes to

formatting link
describing how to modify the Spartan kit board to have 12 bit RGB output on the VGA port.

Also included is some test pattern code / bitfile to produce some output.

/MikeJ

Reply to
MikeJ
Loading thread data ...

Would it also be possible to use a solution as in XAPP154, "Virtex Synthesizable Delta-Sigma DAC"?

formatting link

The discrete part would be three caps, maybe lodged in between pins

1-6, 2-7 and 3-8? Are there readily available caps that would fit? What would be the best value to use with the 270 Ohm resistors on the board?

Brian

Reply to
deunhido

No, the frequency of the video output is *way* too high for such a DAC. e.g. For normal VGA output, you'd need to run the DAC at about 6.4GHz for 24-bit RGB.

Regards,

--
Mark McDougall, Engineer
Virtual Logic Pty Ltd, 
 Click to see the full signature
Reply to
Mark McDougall

There is another related approach, which I initially saw in some C&T display controllers. You can modulate pixel intensity across frames to generate a few more bits' worth of intensity. If you get too greedy doing this, it flickers badly. I think they called it temporal dithering. If I recall, one use was to get pseudo 24-bit color depth from LCD panels that had 18-bit digital inputs.

Eric

Reply to
Eric Crabill

After reading the app note fine print, I see it says the delta sigma DAC is too slow for a raster display. But the S3E Starter Kit manual quotes 25.6us horizontal display time at 640x480 resolution giving 40ns per pixel. At 200MHz, you would have 80 clocks each refresh. Not good enough for 24-bit color, but maybe 8-bit with the right low-pass filter and monitor?

Brian

Eric Crabill wrote:

Reply to
deunhido

Sigma-Delta converters want a larger frequency ratio than you want. A 5x clock isn't enough to do a half-decent job. These converters provide 0/1 binary output at fixed clocks. In video this won't give you what you want.

The suggestion on temporal filtering is good. I'd suggest looking at using a 200 MHz clock (or higher) and output the 40 MHz pixels centered in their window, altering between the n and n+1 level to dither your intensity. Rather than a 1-D Sigma-Delta converter that won't filter out well, you can rely on the eye's temporal averaging of lesser color differences to make out the minor shade differences and use some simpler analog filter on the video signal to keep from passing the "spikes" of high or low intensity colors through your cable.

There are ways to push the system further than it would normally want to go but it's more like sucking a watermelon through a hose.

Reply to
John_H

I think if I did this I would take a page from the audio DAC and use random dithering.

One would want all pixels to appear to be indepedently dithered as if they had their own dither function. In practice a PRNG much greater in bits than the extra fake analog bits would probably suffice. I would suggest a 32b PRNG and have it in the system for all sorts of other uses.

The digital value being output is either n or n+1 in proportion to the extra bits, .n[-1], .n[-2], .n[-3] etc. So for a 3b extra resolution simply compare those 3 lowest bits with the PRNG at any of 3b and if

PRNG and I would expect the flashing to be minimal.

If one paints the entire screen with the exact same enhanced color one should see a perfectly speckled pattern frame by frame whose weight matches the extra grey level and since it continuosly changes, should be temporally smooth. I'd sure like to see the OP do that and see the result. Ofcourse we would be seeing the temporal effect through the camera.

John Jakson

Reply to
JJ

Reply to
MikeJ

Here's an idea for 8-bit color, and some examples of how it can look if you dither.

formatting link

Regards, Keith

Reply to
Keith

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.