Jump to content
  • 1

VGA Pmod Colour Pinout Change


Flux

Question

I've recently started working with the VGA Pmod, but was having the oddest issue. Output looked correct, but colours were interchanged. I assumed I was doing something stupid in my Verilog or constraints file, but after further testing came to the conclusion that the spec sheet was wrong about the colour pins! 

This seemed extremely unlikely, a programmer who blames the hardware is almost always mistaken, but then I inspected my board, which is labelled rev C. The labelling of pins on my Pmod didn't match the spec sheet or images on the Digilent web site: my green and blue pin labels are interchanged (see photos below). So I tried updating my constraints to match my board labelling, but the results were still wrong! I actually get the correct output if I do the following:

  • Where the spec says green I use red
  • Where the spec says red I use blue
  • Where the spec says blue I use green

You can see an example of a constraints file at the end of this post which works on my board. I have also got a friend to test this on his recently acquired VGA Pmod and he gets the same behaviour as me. 

Can someone from Digilent comment on this and update the spec on the web site to save other users confusion?

Digilent Web Site: rev B

pmodvga-1.png.fa1daac7829c87fa37b8d4b502b865a7.png

My VGA Pmod: rev C

pmod_vga_rev_c.jpg.280891c6922961849ca17d8cd117d67d.jpg

pmod_vga_rev_c_back.jpg.e69e32ce77a549fe59e1f108a61df3d9.jpg

    ## VGA Pmod rev C

    ## VGA Pmod Header JB
    set_property -dict { PACKAGE_PIN E15 IOSTANDARD LVCMOS33 } [get_ports { VGA_R[0] }];
    set_property -dict { PACKAGE_PIN E16 IOSTANDARD LVCMOS33 } [get_ports { VGA_R[1] }];
    set_property -dict { PACKAGE_PIN D15 IOSTANDARD LVCMOS33 } [get_ports { VGA_R[2] }];
    set_property -dict { PACKAGE_PIN C15 IOSTANDARD LVCMOS33 } [get_ports { VGA_R[3] }];
    set_property -dict { PACKAGE_PIN J17 IOSTANDARD LVCMOS33 } [get_ports { VGA_B[0] }];
    set_property -dict { PACKAGE_PIN J18 IOSTANDARD LVCMOS33 } [get_ports { VGA_B[1] }];
    set_property -dict { PACKAGE_PIN K15 IOSTANDARD LVCMOS33 } [get_ports { VGA_B[2] }];
    set_property -dict { PACKAGE_PIN J15 IOSTANDARD LVCMOS33 } [get_ports { VGA_B[3] }];

    ## VGA Pmod Header JC
    set_property -dict { PACKAGE_PIN U12 IOSTANDARD LVCMOS33 } [get_ports { VGA_G[0] }];
    set_property -dict { PACKAGE_PIN V12 IOSTANDARD LVCMOS33 } [get_ports { VGA_G[1] }];
    set_property -dict { PACKAGE_PIN V10 IOSTANDARD LVCMOS33 } [get_ports { VGA_G[2] }];
    set_property -dict { PACKAGE_PIN V11 IOSTANDARD LVCMOS33 } [get_ports { VGA_G[3] }];
    set_property -dict { PACKAGE_PIN U14 IOSTANDARD LVCMOS33 } [get_ports { VGA_HS_O }];
    set_property -dict { PACKAGE_PIN V14 IOSTANDARD LVCMOS33 } [get_ports { VGA_VS_O }];

 

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

Hi @Flux,

Your new XDC file seems to be correct (as you have verified with your own testing) for getting the correct colors. It appears that the reference material for the Pmod VGA was developed for a Rev B edition, whereas the Rev C experienced a number of pin changes. We are working to get the documentation updated as appropriate.

Thank you for taking the time to point this out to us! We appreciate it.

Thank you,
JColvin

Link to comment
Share on other sites

Any chance of making a board version where the hardwired color signals are replaced for say a 24-bit SPI (or 8-bit words on three separate SPI channels) word that would allow 8-bit color channel depth?  The colors signals on these boards only allow 12-bit color which is less than the original Zybo's built-in VGA port.  The onboard logic could just latch the previous color word until the SPI slave shifts in the next world completely.  Of course when one starts using serial color signals it wouldn't be much of a stretch to just change to TMDS serial signalling and use the HDMI port instead (though the TMDS has lots of lookup tables and stuff that complicates the basic protocol).

 

Edit: I'd cobble something up myself but fully QA-matched R,2R sets for 8-bit DACs are hard to come by (and three matching 0V-0.7V sets are needed).

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...