cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
lt23yuan_lm
Observer
Observer
1,774 Views
Registered: ‎07-11-2018

sdsoc error: no function body

Jump to solution

Hi, all,

 

Has anyone tried to implement a relatively complex function with hardware in SDSoC? For example, if I toggle a top function (in C++, e.g.) as HW function, and this C++ function is composed of several other sub-functions, can SDSoC synthesize the top function successfully? In my example project, the SDSoC reports that no function body is found for the sub-functions.

 

I also attached my example project below. Could someone give me the help with this problem? Thanks!

 

0 Kudos
1 Solution

Accepted Solutions
sgrace
Xilinx Employee
Xilinx Employee
1,737 Views
Registered: ‎10-28-2013

Hi @lt23yuan_lm,

 

You should be able to do what you're wanting. Could you provide the log files of your failed build? There might be something else that is blocking you. Also, what version of SDSoC are you using?

 

Thanks

Steve

View solution in original post

0 Kudos
5 Replies
sgrace
Xilinx Employee
Xilinx Employee
1,738 Views
Registered: ‎10-28-2013

Hi @lt23yuan_lm,

 

You should be able to do what you're wanting. Could you provide the log files of your failed build? There might be something else that is blocking you. Also, what version of SDSoC are you using?

 

Thanks

Steve

View solution in original post

0 Kudos
lt23yuan_lm
Observer
Observer
1,723 Views
Registered: ‎07-11-2018

Hi, Steve,

 

Thanks a lot for your kind reply. Below is the reported error information, and I also attache the complete log file in the message. I added one function named as minc(float (&A)[N][N]) into the example.

 

I also took another trial. It is strange to find that if I toggle the funciton mmult as SW, then I can build the project successfully. Any idea? 

-----------------------------------------------------------------------------------

INFO: [Common 17-206] Exiting vivado_hls at Thu Sep  6 19:20:36 2018...
ERROR: [SdsCompiler 83-5031] Problem detected in Vivado HLS run - unable to find solution implementation directory for mmult C:/Users/lyuan/workspace_2018/sub_func_use_test/Debug/_sds/vhls/mmult/solution/impl/ip. For possible causes, review C:/Users/lyuan/workspace_2018/sub_func_use_test/Debug/_sds/vhls/mmult/solution/solution.log or C:/Users/lyuan/workspace_2018/sub_func_use_test/Debug/_sds/vhls/mmult_vivado_hls.log.
C:/Users/lyuan/workspace_2018/sub_func_use_test/Debug/_sds/vhls/mmult_vivado_hls.log (last 20 lines):
INFO: [HLS 200-111] Finished Linking Time (s): cpu = 00:00:00 ; elapsed = 00:00:35 . Memory (MB): peak = 103.305 ; gain = 46.055
INFO: [HLS 200-111] Finished Checking Pragmas Time (s): cpu = 00:00:00 ; elapsed = 00:00:35 . Memory (MB): peak = 103.305 ; gain = 46.055
INFO: [HLS 200-10] Starting code transformations ...
INFO: [HLS 200-111] Finished Standard Transforms Time (s): cpu = 00:00:00 ; elapsed = 00:00:35 . Memory (MB): peak = 104.742 ; gain = 47.492
INFO: [HLS 200-10] Checking synthesizability ...
ERROR: [SYNCHK 200-71] C:/Users/lyuan/workspace_2018/sub_func_use_test/src/mmult.cpp:67: function 'minc(float (&) [16][16])' has no function body.
INFO: [SYNCHK 200-10] 1 error(s), 0 warning(s).
ERROR: [HLS 200-70] Synthesizability check failed.
command 'ap_source' returned error code
    while executing
"source C:/Users/lyuan/workspace_2018/sub_func_use_test/Debug/_sds/vhls/mmult_run.tcl"
    invoked from within

---------------------------------------------------------------------------------

 

0 Kudos
lt23yuan_lm
Observer
Observer
1,717 Views
Registered: ‎07-11-2018

And, I am using SDx 2018.2 right now.

0 Kudos
lt23yuan_lm
Observer
Observer
1,676 Views
Registered: ‎07-11-2018

Hi, @sgrace,

 

Do you have any idea about my modified project that reports the error?

 

Regards,

Longtao

0 Kudos
sgrace
Xilinx Employee
Xilinx Employee
1,662 Views
Registered: ‎10-28-2013
Currently I don't. I grabbed your source code and it compiled for me. So it could be related to how your project setting is done. As of right now, that error message is telling me you only have a function definition, which I know is not true.
0 Kudos