cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Newbie
Newbie
89 Views
Registered: ‎03-03-2020

SDx 2018.3 hardware functions with Armv8 GNU/Linux toolchain

Hi,

I have been having some trouble trying to build an SDx application project for Ultra96 v2 / PetaLinux with a hardware function in SDx 2018.3. It builds successfully, but too fast, and doesn't include any of the expected reports (e.g. Data Motion) or even an _sdx folder. The console clearly doesn't show synthesis happening. And I gather it's because I've selected the ARM v8 GNU/Linux Toolchain instead of the SDS toolchain.

I would like to just use SDS; however, I need to use GSL and have the gsl library cross-compiled for host aarch64-linux-gnu. If I link with sd++, the compiled gsl .so's are not recognized. (I have tried unsuccessfully to import the gsl source and build an SDx Library Project, but I guess the cross-compiler configuration doesn't quite work for SD++; the builds fail with compiler errors)

With the ARM v8 GNU/Linux Toolchain, things like sds_lib.h and Vivado headers are not recognized. To compile successfully, I included in Build Options the following directories for the compiler (-I):

/tools/Xilinx/SDx/2018.3/target/aarch64-linux/include

/tools/Xilinx/Vivado/2018.3/include

and added to the library search path (-L):

/tools/Xilinx/SDx/2018.3/target/aarch64-linux/lib

I also added -lsds_lib and found that -lpthread was necessary as well.

The trouble is that moving a function onto hardware afterward doesn't seem to have any effect. As noted initially, it builds very fast and clearly without actually involving HLS. On the other hand, I can synthesize the function in HLS. And I have done this successfully before for a project that did not require GSL, but using the SDS toolchain.

I have been sort of guessing at the things to try, so would appreciate any pointers if I am going about this all wrong. Thanks!

 

 

 

 

0 Kudos