I am relatively new to embedded systems, so please forgive my ignorance. I am attempting to build a hardware design in Vivado which supports console output on HDMI, using the Zynq ZC702 running PetaLinux, and based on the ADV7511 reference design. I have read the guide to HDMI output on Linux, but it does not provide enough information to construct the reference design from scratch, only how to utilize the pre-built reference design for programming applications. Attached is an image of my current block diagram in Vivado. From what I have read thus far, I believe all the neccisary IP is in place (PS, VDMA, clkgen, HDMI_tx, S/PDIF_tx, and AXI interconnect), and the configuration for each IP should also be correct, but the connections between them are very much incorrect.

How can I connect these IP in order to create a functioning replica of the reference design which I can further build upon?

Which ports must be made external and which can be ignored?

Let me know if there is any further information I can provide which would clarify my intentions or my current implementation.

The attached design passes validation and synthesis, but fails timing in the implementation, presumably because the clocks are hooked up wrong.

Thanks in advance.Current Vivado Design


Since this was originally posted I have ditched this ADI-based design for one based off the TRD. For anyone with a similar problem, I found a correct build of the ADI reference design here (same as Steven's link but his was broken for me), and it requires custom drivers found here. But it is worth noting that I switched my approach because the ADI design requires some additional custom configurations to the kernel which are not required by the approach used in the TRD, found here for those interested.

  • \$\begingroup\$ As you have mentioned ADI design requires custom configuration to the kernel. Can you please explain or provide references on how to build kernel with custom configurations? \$\endgroup\$ – Krunal Sonparate Jun 11 at 11:58
  • \$\begingroup\$ @KrunalSonparate Here is an up-to-date guide which covers PetaLinux kernel configuration for a ZC MPSoC at the beginning of the instructions. Since it uses the same PetaLinux toolkit the configuration process is almost identical to that of the ZC702. The ADI design requires the AD kernel be set as the external kernel source, as well as enabling the ADV7511 encoder (both via "petalinux-config -c kernel") and the libstdc++/usbutils libraries (via "petalinux-config -c rootfs"). After that you just build and generate the boot image (also in guide, but command may vary). \$\endgroup\$ – Sam Lucas Jun 12 at 21:19

Analog Devices provides the reference design files for the ZC702, so I suggest you start by rebuilding and running that. Then you can (a) compare your design against the reference, either visually or by using a diff tool on the .tcl files which create the design, or (b) just make the modifications you need directly to the reference design. If your goal is just to get something to work, it's usually much easier to start with something that works and modify it rather than building from scratch.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.