I’ve recently been working with 1024x768 LCD panels, so decided to give my display timings post a little love. 📺 https://projectf.io/posts/video-timings-vga-720p-1080p/
Video Timings: VGA, 720p, 1080p

This guide includes the timings for many standard display modes using analogue VGA, DVI, HDMI, or DisplayPort: 640x480 (VGA), 800x600 (SVGA), 1024x768 (XGA), 1280x720, and 1920x1080 (30 Hz and 60 Hz).

Project F

VESA CVT is great for more sophisticated hardware using computer displays. But when designing your own hardware (#FPGA, ASIC, discrete logic), I recommend choosing older DMT and consumer electronics timings as they work with almost everything.

And you didn’t want to handle multiple pixel clocks in one design, did you? 😄

@WillFlux Of course I want multiple pixel clocks! Heck, I want a dynamically reclockable PLL real bad and I'm still shocked this is not standard in all FPGAs... Toolchains, just let me tell you the maximum clock I'll generate and let me do my thing! No?

So what? I'm supposed to have external PLLs clocking my CRTC? Am I supposed to use a SERDES to increase my clock then step it down using a fractional divider which feeds an internal PLL with a 1:1 ratio? Or am I just supposed to support modes that have pixel clocks that have an integer ratio between them? Play with phases to generate a higher frequency clock using combinatorial logic, feeding a PLL? All of the techniques above?

It could have been sooooooo simple... At least with Xilinx we can use partial reconfiguration primitives to dynamically change the PLLs' parameters. Can't wait for prjCombine to be good-enough that I would not haveto use Vivado anymore and thus make my NeTV2 more fun to play with.

@mupuf of course I'd **like** simple, dynamically reclockable PLLs! 😄

XC7 is much more capable than ECP5 in this regard. But I've tried not to tie my designs closely to any one architecture.

I've not looked into how Gowin and GateMate FPGAs handle this, but I'm guessing it won't be your dream scenario.

@WillFlux I don't know why (just me?), but when I was first working with displays, I found the 2D timing diagrams quite difficult to comprehend. Don't get me wrong, they make perfect sense... but I still wish there was a more "oh, I get it!" layout for them - improved clarity in some way I can't quite figure out...

Seeing signals (pixel - line - field) linearly on a scope was quite helpful.

@attie you’re right; seeing the signals on a scope is helpful. I should include that in my forthcoming graphics series. My ‘scope hasn’t had a lot of love recently.
@WillFlux ooh, this might just replace tinyvga.com as my go-to reference. Thanks!
@WillFlux This is great. I REALLY want to do Color Composite (NTSC or PAL, don't care) from an FPGA. I WILL figure it out. Eventually.
@mrdoornbos I might look at PAL timings in future, but my only 15 kHz monitor is my precious Commodore 1084S. I'd be a little nervous about hooking my own video output to it.

@WillFlux yeah, just put it into a cheap composite to modern adapter.

My goal is to make a VIC 6560/1 replacement. I've got one working with VGA, but I want to get as close to a "drop-in" solution as possible.