dgschwend / zynqnet

Master Thesis "ZynqNet: An FPGA-Accelerated Embedded Convolutional Neural Network"
GNU General Public License v3.0
743 stars 297 forks source link

Synthesizability check failed #55

Open mpFPGA opened 6 years ago

mpFPGA commented 6 years ago

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