06-03-2019 12:13 AM
I have a problem with saving the picture to the memory or reading the memory, I'm not pretty sure. I copied a block diagram from this link: https://www.hackster.io/adam-taylor/creating-a-zynq-or-fpga-based-image-processing-platform-e79394
Except that I'm not using the HDMI out, I'm sending the grayscale image over the UART, but I'm not getting the image as I wanted. There are some errors or outliers, I don't know how to name it, look at the picture below. What is the cause of it?
There is also a critical warning about meeting the timing requirements and the timing summary is attached too.
The question is how can it be fixed?
06-03-2019 12:21 AM
Did you encounter screen tearing ?
If yes, I suggest you to use multifram function and other transfer method insted of UART.
BTW, it seems that your design has a lot of negative stacks. I suggest you to fix these problem, too.
06-03-2019 01:08 AM - edited 06-03-2019 01:12 AM
can you check my function for sending frames to see if there is a chance of screen tearing? I'm stopping the VDMA while sending the data. I need to mention that it is not required to operate in real time, e.g. ZYBO sends an image every hour.
All my negative stacks are related to inputs and outputs, which you can see on the picture below. Can you suggest me how can I fix it? I've never done it before. :)
06-03-2019 06:19 PM - edited 06-03-2019 07:39 PM
The route cause is as below.
1. Very slow speed to transfer data via UART.
2. Don't use gen_lock function in VDMA and multiple buffer.
# About 1
I strongly recommend to use other way to transfer data to host instead of UART. ex. USB 2.0 or 3.0.
If using UART, I suggest you to turn off to wrtie streaming data via VDMA.
# About 2
Even if you transfer data via USB 2.0 or 3.0, transaction time is over one frame (16ms). You encounter same isssue.
I suggest you to use genlock function and multiple buffer in VDMA.
06-04-2019 09:09 AM
There are unconstraint I/Os so the negative timing slack may not be problem with I/Os. I would definitely resolve them.
To isolate the source of the problem, you can load a static image (checker board) to the frame buffer memory and then sent it over the UART.