CEA-LIST / N2D2

N2D2 is an open source CAD framework for Deep Neural Network simulation and full DNN-based applications building.
Other
146 stars 35 forks source link

How to use the Block Design generated by C_HLS export? #38

Closed gabrijob closed 5 years ago

gabrijob commented 5 years ago

Hello

After generating the HLS export and running vivado_hls on it, I'm trying to use the generated IP on Vivado, but the block design has a huge number of inputs (in_data_X_Y_q, in_data_X_Y_we, in_data_X_Y_ce, in_data_X_Y_address, in_data_X_Y_d and etc) and I'm not really sure how to connect them. What is the recommended way to do it?

Thank you

olivierbichler-cea commented 5 years ago

Hi, There is a TCL directive that allow you to tune the input interface. It is called set_directive_interface and you can find it in solutions.tcl. Right now, setting the input interface is up to you, and I recommend you refer to Vivado HLS documentation for further information. The input may also be partitioned to allow parallel input read, which is why you can get a large number of inputs. This can be changed in solutions.tcl with the directive like "set_directive_array_partition -dim 2 -type complete "$name" inputs". You may choose to not partition the input to have a single simple interface. However, not partitioning the input may reduce the performances if the first layer of the network is large.

gabrijob commented 5 years ago

Hmm I see, thank you!