• Content Count

  • Joined

  • Last visited

  • Days Won


Flux last won the day on November 7 2018

Flux had the most liked content!

About Flux

  • Rank

Contact Methods

  • Website URL

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. The VGA tutorials have been updated with support for the Basys 3 and Nexys Video as well as Arty: https://timetoexplore.net/blog/arty-fpga-vga-verilog-01 I'm currently adding SVGA (800x600) support as well as working on more advanced effects. All the Verilog is available under the MIT license on GitHub: github.com/WillGreen/timetoexplore I look forward to sharing more projects with the community soon. Will
  2. I've added the project source to GitHub: github.com/WillGreen/timetoexplore.
  3. I've committed the Verilog source for this project to GitHub: github.com/WillGreen/timetoexplore The tutorial page has also been updated to reference the source. I hope you find it useful, Will
  4. Hello, I've posted the next part in my FPGA graphics series using the Arty + VGA Pmod or Basys 3. It shows you how to make use of double buffering to animate sprites using simple Verilog. https://timetoexplore.net/blog/arty-fpga-vga-verilog-03 Feedback very welcome, Will PS. I'll add the source to GitHub shortly.
  5. Thanks for the feedback. I am planning to add my source code to GitHub soon. However, these two posts aren't really projects per se, but introductory guides. When I have some more substantial projects to share I'll post them.
  6. Hello, I've been having a lot of fun with the VGA Pmod. I thought other forum members might appreciate a couple of tutorials I've produced with it. Part 1: Intro to VGA and basic animation: https://timetoexplore.net/blog/arty-fpga-vga-verilog-01 Part 2: Bitmap display using your own image: https://timetoexplore.net/blog/arty-fpga-vga-verilog-02 Both are written in pure Verilog, so it's (hopefully) easy to understand what's going on and adapt for your own projects. Feedback welcome, Will
  7. Thanks. Now that's confirmed I've gone ahead and posted my introductory article on using the VGA Pmod: https://timetoexplore.net/blog/arty-fpga-vga-verilog-01 I hope it'll encourage some other people to give it a go.
  8. Thanks for sorting that @JColvin. It might be worth mentioning that previous revisions had a different pinout.
  9. 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 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 }];
  10. Flux

    Nexys Video HDMI Capabilities

    @[email protected] like reasonable maths to me. I'd agree that if you're doing 1080p60 input and output then memory bandwidth is going to be a challenge.
  11. Flux

    Nexys Video HDMI Capabilities

    @[email protected] thanks for the confirmation that 1080p60 HDMI is possible on input and output. I'm intrigued to know how the board managing 3.2 Gbit/second for 1080p60 HDMI without using the GTPs. If I'm reading the memory spec correctly, then theoretical bandwidth is 12.8 Gbit/second. Is that not enough for 1080p60 with capacity to spare for processing?
  12. Hello, I'm trying to understand the HDMI capabilities of the Nexys Video Artix-7. I don't own a board yet, so these queries are based on reading spec sheets; please excuse any errors or omissions on my part. The FPGA on the Nexys Video is XC7A200T-1SBG484C, which supports 4 GTP transceivers at 3.75 Gbit/s [1]. However, based on my best interpretation of the Nexys Video data sheet [2] the HDMI ports aren't using the GTP transceivers. The GTPs are used for DisplayPort and FMC connector. Given the HDMI ports aren't using the GTPs, what is the maximum data rate the FPGA can support for them? The HDMI input has an Analog AD8195 buffer, which supports 2.25 Gbps data rate [3]. The HDMI output has a TI TMDS141 buffer, which also supports a 2.25 Gbps data rate [4]. This seems to limit the Nexys to 720p60 or 1080p30, whatever the FPGA may be capable of. Though if these rates are per TDMS channel then that's plenty for 1080p60. However, in the Digilent HDMI demo a video format of 1080p60 is shown [5]. In summary, can someone clarify what video formats and data rates the Nexys Video is capable of on HDMI input and output? Thanks in advance, Will For reference the data rate of some common HDMI formats: 720p60 - 1.45 Gbit/s (HDMI 1.0+) 1080p30 - 1.58 Gbit/s (HDMI 1.0+) 1080p60 - 3.20 Gbit/s (HDMI 1.0+) 2160p30 - 6.18 Gbit/s (HDMI 1.4+) 2160p60 - 12.54 Gbit/s (HDMI 2.0+) [1] https://www.xilinx.com/support/documentation/data_sheets/ds181_Artix_7_Data_Sheet.pdf (page 50) [2] https://reference.digilentinc.com/_media/reference/programmable-logic/nexys-video/nexysvideo_rm.pdf [3] http://www.analog.com/en/products/audio-video/hdmidvi-transmitters/ad8195.html [4] http://www.ti.com/product/tmds141 [5] https://reference.digilentinc.com/learn/programmable-logic/tutorials/nexys-video-hdmi-demo/start