Xilinx / Vitis_Embedded_Platform_Source

115 stars 67 forks source link

Vitis base platform for ZCU106 board #4

Open zohourih opened 4 years ago

zohourih commented 4 years ago

Does Xilinx have any plans to provide a base platform for the ZCU106 board, hopefully one that also supports the PL-side memory bank?

endrix commented 4 years ago

Hi zohourih, on my forked repository you can find a base design and a dfx one for the ZCU106 board. The supported Vitis edition is 2020.1, in the sb-2019.2 branch of my repository you can find also a base design. The petalinux is configured with packages for my purposes, but its pretty easy to change it to your liking. There is no support for the VCU and the PL-side memory. Both platforms have been tested and working in all designs that I have tested.

zohourih commented 4 years ago

@endrix That is great, thank you. I will have a look. By the way, am I correct to assume that the dfx platform supports run-time reconfiguration and does not suffer from this issue?

endrix commented 4 years ago

@zohourih Yes the dfx support run-time configuration, you can test different xclbin without rebooting the board. I do not have the issue that you mentioned. I have tested the Vitis examples and they work as they should. If you have application that uses SDL there is support for it in petalinux, I am not using matchbox and X but wayland with weston. If you have any issue with it open an issue at my repo.

zohourih commented 4 years ago

I see. That issue is related to Xilinx's official base platform for the ZCU104 board which, as it seems, does not support dfx even though the assumption was/is that all Vitis platforms should support it.

endrix commented 4 years ago

True, official only the base ZCU104 not the dfx one is supported. I based my ZCU106 dfx on the ZCU102 dfx design.

zohourih commented 4 years ago

@endrix Are there any guides or instructions for creating or porting a dfx platform? I would be interested in porting the ZCU102 dfx platform for ZCU104.

endrix commented 4 years ago

@zohourih The only documentation i found was looking at the examples the Xilinx provides in this repository. I would suggest you to start like that:

1) Copy the zcu102_base_dfx on 2020.1 branch and rename it to zcu104_base_dfx

2) replace everything from zcu102 to zcu104 on the file names and in tcl files. On the TCL scripts find and replace everything related to fpga part and board part from zcu102 to zcu104.

3) From the file copy into a file the lines from 396 to 977. On your copied folder from step 1 you will have a file vivado/source/bd/static.tcl, replace the lines that you copied from line 628 up to 1361. You should to do the same to the file vivado/sources/emulation_sources/scripts/static.tcl

4) As the zcu106 and zcu104 shares the same MPSoC, You can use my constraint file. Copy the contents of this file to your copied directory vivado/sources/constraints/static_impl_early.xdc

5) Test it with make xsa

If you have renamed everything (files and content) to zcu102 to zcu104, replace the fpga part and the board part with the one of the ZCU104 and the constraint file you should probably have it working. I think that most difficult part for my was to create the constraint file at step 4.

Good luck :)

zohourih commented 4 years ago

@endrix Thank you for the instructions! I will see if I can get it to work.

rania8949 commented 3 years ago

Hi, I am new in this field, I have a c++ program and I want to emulate it with Vitis emulator, can you guide me please.

AnisHamadouche commented 1 year ago

Hi, I am new in this field, I have a c++ program and I want to emulate it with Vitis emulator, can you guide me please.

@rania8949 You can still perform software/hardware emulation on any official image not necessarily ZCU106