Best practice dev tools

Hello,
I’m interested in the best practice of the use of the Xilinx Zynq dev tools. I’m about to transfer my existing C++ code from embedded pc to the snickerdoodle.

During your daily work are you using the HLS and SDK GUI tools or only command line tools (TCL, ARM-Toolchain)?
The benefits of TCL is sufficiently described in the Xilinx knowledge base, but what about the PS side?

Do you recommend using ARM-Toolchain + CMAKE?
CMake is my tool of choice for enterprise software, but is it best for FPGA/Embedded-Development as well?

Thanks

Hi iapt,

I’m not totally clear on your question but I can share which tools I use day to day:

I use the Vivado HLS Windows IDE when I want to develop FPGA HDL blocks for Vivado IP integrator for hardware accelerator algorithms that are more convenient to describe in C/C++.

I use the HDL synthesis tools in the Vivado IDE under Windows when developing/simulating/testbenching HDL that involves I/O or instantiating FPGA intrinsics or other logic where it is more appropriate to write RTL code directly. I also use Vivado under Windows with the Xilinx Platform USB II JTAG adapter for bare metal ARM debug and FPGA debug.

I use the XSDK Eclipse IDE in Windows for simple bare metal/FreeRTOS ARM programs since Vivado will generate a convenient set of Xilinx peripheral/startup software libraries based on the hardware setup in the associated Vivado project.

When developing code for the ARM to run in Linux userspace, I tend to use the gcc compiler and make directly at the command line on a running snickerdoodle with Linux booted via SSH from Laptop. Generally those bits of code for me are pretty small files and that is a reasonable/convenient thing to do. It’s also possible to mount the file system via sshfs using FUSE where I can use a nice editor like Atom on my laptop but run the compilation on the snickerdoodle in a terminal with all the source and object files hosted on the snickerdoodle.

XSDK can also be used for Linux cross-compiled development under Windows/Desktop Linux with the proper setup.

One more followup regarding your comment about tcl. For Vivado and Vivado HLS specifically, tcl is just embedded so that anything you can do in the IDE can be scripted in tcl. That’s useful if you want to build automation with the Xilinx tools or store just the source files for everything along with tcl scripts that build the binaries in a version control system.

Hi Weatherbee,
How do you development of kernel code for Linux (device drivers in particular)? I would prefer to compile them on the snickerdoodle because I don’t have a Linux machine but I don’t know how to configure it to be able to do that…
Any insights?
Thanks,
Patrick

Hi Weatherbee,

sorry for the late reply.
Thank you for the insight. It’s very interesting that you’re mostly working on Windows OS.
With the use of FUSE and your prefered editor an additional VM is indeed unnecessary. As long as the build time isn’t too big.
I’ll try the onboard build next week.