Jump to content

Arty Z7 HDMI Out Demo


uFedor

Recommended Posts

Trying to replicate the project (https://digilent.com/reference/learn/programmable-logic/tutorials/arty-z7-hdmi-demo/start) on Eclypse Z7 using propriate PMOD to expose HDMI signals.

Test patterns are correctly displayed only with resolutions up to "1280x720@60Hz" (higher ones are not accepted by the monitor).

Is a monitor capable to display test patterns when original Arty Z7-20 is configured to generate HDMI signals at "1920x1080@60Hz"???

Link to comment
Share on other sites

Hey uFedor,

The demo should be capable of 1920x1080@60Hz. Test patterns are scaled based on the selected resolution when printed, and the IP used to handle the output interface can do 1920x1080: https://github.com/Digilent/vivado-library/blob/master/ip/rgb2dvi/docs/rgb2dvi.pdf. Are you instead looking for a specific monitor model that is known to work?

As an aside, the HDMI input demo does require a selection to be made for the dvi2rgb target resolution - dvi2rgb can't cover both 720p and 1080p with the same MMCM settings.

Thanks,

Arthur

Link to comment
Share on other sites

7 hours ago, artvvb said:

The demo should be capable of 1920x1080@60Hz.

Thank you for the response.

Can anybody share a monitor screen photo corresponding to the Arty Z7-20 configured for "1920x1080@60Hz"?

Link to comment
Share on other sites

@uFedor

See attached. I downloaded and ran the 2022.1 release of the Z7-20 output demo (the latest sw.ide.zip here: Arty Z7 HDMI Output Demo - Digilent Reference) in Vitis 2024.1. After fixing the linker script path in the build settings, I built the project, plugged the board and monitor in, and programmed the board. It started up with 640x480@60 Hz settings, but the serial interface let me switch the resolution to 1920x1080 and resize the test pattern.

I don't have a specific link for the monitor used. It's a cheap portable 1080p monitor intended for use with Raspberry Pis purchased off Amazon some years ago.

Thanks,

Arthur

image.png

image.png

Link to comment
Share on other sites

6 hours ago, artvvb said:

@uFedor

the serial interface let me switch the resolution to 1920x1080 and resize the test pattern.

Thank you for your work.

Please provide photo of the Color Bar Test Pattern corresponding to the 1920x1080@60Hz.

Link to comment
Share on other sites

The attached images show the color bar test pattern at 1920x1080@60 Hz, before and after using the serial terminal to reprint the test pattern. The version where they appear smaller is the "before" picture, where the memory buffer is unmodified from when the demo was booted.

before-print-color-bar.jpg

after-print-color-bar.jpg

Link to comment
Share on other sites

3 hours ago, artvvb said:

The version where they appear smaller is the "before" picture, where the memory buffer is unmodified from when the demo was booted.

Thank you for the pictures.

1) According to my understanding the application initial state is 640x480.

2) The second photo is identical to what I see for 1280x720@60Hz.

Link to comment
Share on other sites

The application includes a framebuffer in DDR memory which holds pixel data. When the demo starts up, referring to the DemoInitialize (demo.c) and DisplayInitialize (display_ctrl.c), the resolution is set to 640x480 @ 60 Hz by default (VMODE_640x480). The demo then writes data to the framebuffer to generate the expected test pattern for the selected resolution; this done in the DemoPrintTest call in DemoInitialize. If the resolution is then later changed, the framebuffer contents are not modified at that time - as such, the black area around the test pattern in my first photo is zeroed-out (uninitialized) framebuffer, and the small test pattern in the corner represents a 640x480 block of pixels. When I then use the serial console's option 4 to re-print the test pattern into the framebuffer, the size of the fresh test pattern in memory is based on the currently-selected resolution (1920x1080 in the photos). This is all to say that a test pattern printed at whatever resolution should appear roughly the same to the eye at 640x480, 1280x720, or at 1920x1080 - the larger resolutions just have more pixels implementing the same gradients.

What is your question, or at least goal for this project, at this point?

Link to comment
Share on other sites

8 hours ago, artvvb said:

This is all to say that a test pattern printed at whatever resolution should appear roughly the same to the eye at 640x480, 1280x720, or at 1920x1080 - the larger resolutions just have more pixels implementing the same gradients.

Thank you very much!

This is exactly the answer which was needed - I did not refresh the framebuffer, so displayed patterns were different for different resolutions :(

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...