Hi David,
I'm trying to synthesize your code for a zc706 platform. I'm able to generate sd-card image for CPU-only, but when I try to do the same accelerating fpga_top.cpp, Vivado HLS 2017.4 gives me the following error:
INFO: [HLS 200-10] Checking synthesizability ... ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:59: function 'MemoryController::setup(float*, unsigned int, unsigned int)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:71: function 'ImageCache::setLayerConfig(layer_t&)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:72: function 'WeightsCache::setLayerConfig(layer_t const&, ap_uint<19>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:73: function 'MemoryController::setLayerConfig(layer_t&)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:74: function 'ProcessingElement::setLayerConfig(layer_t)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:79: function 'WeightsCache::loadFromDRAM(float*)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:82: function 'MemoryController::setPixelLoadRow(ap_int<11>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:83: function 'ImageCache::preloadRowFromDRAM(float*)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:85: function 'ImageCache::preloadPixelFromDRAM(float*)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:131: function 'ProcessingElement::processInputChannel(ap_int<11>, ap_int<11>, ap_uint<10>, ap_uint<10>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:146: function 'MemoryController::setupPixelWriteback(ap_int<11>, ap_int<11>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:152: function 'WeightsCache::precalcInputOffset(ap_uint<10>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:161: function 'ProcessingElement::postprocess(ap_uint<10>, ap_uint<19>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:164: function 'MemoryController::writeBackOutputChannel(float*, ap_uint<10>, float)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:170: function 'GPoolCache::setChannel(ap_uint<10>, float)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:172: function 'GPoolCache::accumulateChannel(ap_uint<10>, float)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:187: function 'MemoryController::writeBackResult(float*)' has no function body. WARNING: [SYNCHK 200-77] The top function 'fpga_top' (/xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:26) has no outputs. Possible cause(s) are: (1) Output parameters are passed by value; (2) intended outputs (parameters or global variables) are never written; (3) there are infinite loops. INFO: [SYNCHK 200-10] 17 error(s), 1 warning(s). ERROR: [HLS 200-70] Synthesizability check failed.
I checked that all needed .cpp files are inside the project.
In your opinion, is this error related to something missing (includes, synthesis options, ...)? Thank you
Hi David, I'm trying to synthesize your code for a zc706 platform. I'm able to generate sd-card image for CPU-only, but when I try to do the same accelerating fpga_top.cpp, Vivado HLS 2017.4 gives me the following error:
INFO: [HLS 200-10] Checking synthesizability ... ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:59: function 'MemoryController::setup(float*, unsigned int, unsigned int)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:71: function 'ImageCache::setLayerConfig(layer_t&)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:72: function 'WeightsCache::setLayerConfig(layer_t const&, ap_uint<19>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:73: function 'MemoryController::setLayerConfig(layer_t&)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:74: function 'ProcessingElement::setLayerConfig(layer_t)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:79: function 'WeightsCache::loadFromDRAM(float*)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:82: function 'MemoryController::setPixelLoadRow(ap_int<11>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:83: function 'ImageCache::preloadRowFromDRAM(float*)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:85: function 'ImageCache::preloadPixelFromDRAM(float*)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:131: function 'ProcessingElement::processInputChannel(ap_int<11>, ap_int<11>, ap_uint<10>, ap_uint<10>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:146: function 'MemoryController::setupPixelWriteback(ap_int<11>, ap_int<11>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:152: function 'WeightsCache::precalcInputOffset(ap_uint<10>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:161: function 'ProcessingElement::postprocess(ap_uint<10>, ap_uint<19>)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:164: function 'MemoryController::writeBackOutputChannel(float*, ap_uint<10>, float)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:170: function 'GPoolCache::setChannel(ap_uint<10>, float)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:172: function 'GPoolCache::accumulateChannel(ap_uint<10>, float)' has no function body. ERROR: [SYNCHK 200-71] /xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:187: function 'MemoryController::writeBackResult(float*)' has no function body. WARNING: [SYNCHK 200-77] The top function 'fpga_top' (/xilinx/workspace/zynqnet_zc706/src/fpga_top.cpp:26) has no outputs. Possible cause(s) are: (1) Output parameters are passed by value; (2) intended outputs (parameters or global variables) are never written; (3) there are infinite loops. INFO: [SYNCHK 200-10] 17 error(s), 1 warning(s). ERROR: [HLS 200-70] Synthesizability check failed.
I checked that all needed .cpp files are inside the project. In your opinion, is this error related to something missing (includes, synthesis options, ...)? Thank you