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?
Question
Flux
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:
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
My VGA Pmod: rev C
## 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
Archived
This topic is now archived and is closed to further replies.