I have some Amaranth DVI-D and TMDS goodies here: - Timing gen: https://github.com/apfaudio/tiliqua/blob/main/gateware/src/tiliqua/dvi.py - TMDS: https://github.com/apfaudio/tiliqua/blob/main/gateware/src/tiliqua/tmds.py - Wishbone-backed framebuffer: https://github.com/apfaudio/tiliqua/blob/main/gateware/src/tiliqua/dma_framebuffer.py It's been battle tested on about 10 different screens and an agilent N5998A. I also have a branch that adds CSRs for DVFS (runtime dynamic resolution switching). Would be interested in upstreaming it at some point if there's interest.