diff --git a/build/espcn/build.py b/build/espcn/build.py index 3aeb580e..e32d1dd7 100644 --- a/build/espcn/build.py +++ b/build/espcn/build.py @@ -26,30 +26,34 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -from custom_steps import * +from custom_steps import ( + custom_step_export_verification, + custom_step_qonnx_tidy_up, + custom_step_add_pre_proc, + custom_step_streamline, + custom_step_convert_to_hw, +) import finn.builder.build_dataflow as build import finn.builder.build_dataflow_config as build_cfg -from finn.builder.build_dataflow_steps import * - -model_name = "espcn-bsd300" - - +import argparse espcn_build_steps = [ + # custom_step_export_verification, custom_step_qonnx_tidy_up, custom_step_add_pre_proc, "step_qonnx_to_finn", "step_tidy_up", custom_step_streamline, - custom_step_convert_to_hls, + custom_step_convert_to_hw, "step_minimize_bit_width", "step_create_dataflow_partition", + "step_specialize_layers", "step_target_fps_parallelization", "step_apply_folding_config", "step_generate_estimate_reports", - "step_hls_codegen", - "step_hls_ipgen", + "step_hw_codegen", + "step_hw_ipgen", "step_set_fifo_depths", "step_create_stitched_ip", "step_measure_rtlsim_performance", @@ -59,36 +63,37 @@ "step_deployment_package", ] -model_file = "quant_espcn_x2_w4a4_base/qonnx_model.onnx" -cfg = build_cfg.DataflowBuildConfig( - steps=espcn_build_steps, - output_dir="output_%s_kriasom" % (model_name), - synth_clk_period_ns=5.0, - target_fps=10000, - fpga_part="xck26-sfvc784-2LV-c", - shell_flow_type = build_cfg.ShellFlowType.VIVADO_ZYNQ, - board = "KV260_SOM", - enable_build_pdb_debug=False, - verbose=False, - split_large_fifos = True, - folding_config_file = "folding_config_chrc_cap.json", - auto_fifo_depths = False, - rtlsim_batch_size = 100, - verify_input_npy = "quant_espcn_x2_w4a4_base/input.npy", - verify_expected_output_npy = "quant_espcn_x2_w4a4_base/output.npy", - verify_steps=[ - build_cfg.VerificationStepType.QONNX_TO_FINN_PYTHON, - build_cfg.VerificationStepType.TIDY_UP_PYTHON, - build_cfg.VerificationStepType.STREAMLINED_PYTHON, - build_cfg.VerificationStepType.FOLDED_HLS_CPPSIM, - ], - generate_outputs=[ - build_cfg.DataflowOutputType.ESTIMATE_REPORTS, - build_cfg.DataflowOutputType.STITCHED_IP, - build_cfg.DataflowOutputType.RTLSIM_PERFORMANCE, - build_cfg.DataflowOutputType.BITFILE, - ], -) -build.build_dataflow_cfg(model_file, cfg) +def main(model_file, output_dir, folding_config_file, board): + cfg = build_cfg.DataflowBuildConfig( + steps=espcn_build_steps, + output_dir=output_dir, + synth_clk_period_ns=5.0, + target_fps=42, + shell_flow_type=build_cfg.ShellFlowType.VIVADO_ZYNQ, + board=board, + split_large_fifos=True, + folding_config_file=folding_config_file, + auto_fifo_depths=False, + auto_fifo_strategy = build_cfg.AutoFIFOSizingMethod.CHARACTERIZE, + rtlsim_batch_size=100, + max_multithreshold_bit_width = 9, + generate_outputs=[ + build_cfg.DataflowOutputType.ESTIMATE_REPORTS, + # build_cfg.DataflowOutputType.STITCHED_IP, + # build_cfg.DataflowOutputType.RTLSIM_PERFORMANCE, + build_cfg.DataflowOutputType.BITFILE, + ], + ) + build.build_dataflow_cfg(model_file, cfg) + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument('-f', '--model_file', type=str, required=True) + parser.add_argument('-o', '--output_dir', type=str, required=True) + parser.add_argument('-c', '--folding_config_file', type=str, required=False) + parser.add_argument('-b', '--board', choices=['KV260_SOM', 'ZCU104'],type=str, required=True) + args = parser.parse_args() + main(args.model_file, args.output_dir, args.folding_config_file, args.board) + diff --git a/build/espcn/custom_steps.py b/build/espcn/custom_steps.py index 153a8d84..da66e251 100644 --- a/build/espcn/custom_steps.py +++ b/build/espcn/custom_steps.py @@ -42,26 +42,39 @@ from qonnx.transformation.infer_shapes import InferShapes from qonnx.transformation.merge_onnx_models import MergeONNXModels from qonnx.transformation.subpixel_to_deconv import SubPixelToDeconvolution +from qonnx.transformation.resize_conv_to_deconv import ResizeConvolutionToDeconvolution from qonnx.transformation.lower_convs_to_matmul import LowerConvsToMatMul from qonnx.transformation.infer_data_layouts import InferDataLayouts import finn.transformation.streamline.absorb as absorb -import finn.transformation.fpgadataflow.convert_to_hls_layers as to_hls +import finn.transformation.fpgadataflow.convert_to_hw_layers as to_hw from finn.transformation.streamline import Streamline from finn.transformation.streamline.round_thresholds import RoundAndClipThresholds -from finn.transformation.streamline.reorder import MoveScalarMulPastConvTranspose -from finn.transformation.move_reshape import RemoveCNVtoFCFlatten +from finn.transformation.streamline.reorder import ( + MoveScalarMulPastConvTranspose, + MakeScaleResizeNHWC, +) from finn.transformation.fpgadataflow.infer_pixel_padding_deconv import InferPixelPaddingDeconv from finn.builder.build_dataflow_config import DataflowBuildConfig, VerificationStepType from finn.builder.build_dataflow_steps import verify_step from finn.util.pytorch import ToTensor + +def custom_step_export_verification(model: ModelWrapper, cfg: DataflowBuildConfig): + model = model.transform(InferShapes()) + verify_step(model, cfg, "onnx_export", need_parent=False) + return model + + def custom_step_qonnx_tidy_up(model: ModelWrapper, cfg: DataflowBuildConfig): model = model.transform(InferShapes()) + model = model.transform(GiveUniqueParameterTensors()) # QONNX transformations - model = model.transform(SubPixelToDeconvolution()) + # model = model.transform(SubPixelToDeconvolution()) + # model = model.transform(ResizeConvolutionToDeconvolution(maintain_bit_width=False)) model = model.transform(InferShapes()) + #verify_step(model, cfg, "custom_tidy_up", need_parent=False) return model @@ -86,9 +99,11 @@ def custom_step_add_pre_proc(model: ModelWrapper, cfg: DataflowBuildConfig): model = model.transform(InferDataTypes()) model = model.transform(RemoveStaticGraphInputs()) model = model.transform(RemoveUnusedTensors()) + # verify_step(model, cfg, "pre_proc", need_parent=False) return model + def custom_step_streamline(model: ModelWrapper, cfg: DataflowBuildConfig): """Run streamlining on given model. Streamlining involves moving floating point scale/shift parameters around, collapsing adjacent ones into a single parameter, @@ -107,8 +122,10 @@ def custom_step_streamline(model: ModelWrapper, cfg: DataflowBuildConfig): model = model.transform(LowerConvsToMatMul()) model = model.transform(absorb.AbsorbConsecutiveTransposes()) model = model.transform(absorb.AbsorbTransposeIntoMultiThreshold()) - + model = model.transform(Streamline()) + model = model.transform(InferDataLayouts()) + model = model.transform(MakeScaleResizeNHWC()) model = model.transform(absorb.AbsorbConsecutiveTransposes()) model = model.transform(InferDataLayouts()) model = model.transform(RemoveUnusedTensors()) @@ -119,32 +136,30 @@ def custom_step_streamline(model: ModelWrapper, cfg: DataflowBuildConfig): return model -def custom_step_convert_to_hls(model: ModelWrapper, cfg: DataflowBuildConfig): +def custom_step_convert_to_hw(model: ModelWrapper, cfg: DataflowBuildConfig): """Convert eligible nodes to `HLSCustomOp` subclasses that represent HLS layers. Which nodes and particular configurations can be converted to HLS - is limited, see the source code of the `convert_to_hls` module for more.""" - + is limited, see the source code of the `convert_to_hw` module for more.""" - mem_mode = cfg.default_mem_mode.value if cfg.standalone_thresholds: # doing this first causes all threshold layers to be standalone - model = model.transform(to_hls.InferThresholdingLayer()) + model = model.transform(to_hw.InferThresholdingLayer()) need_convtranspose = len(model.get_nodes_by_op_type("ConvTranspose")) > 0 if need_convtranspose: model = model.transform(InferPixelPaddingDeconv()) model = model.transform(absorb.AbsorbTransposeIntoMultiThreshold()) model = model.transform(RoundAndClipThresholds()) + need_upsample = len(model.get_nodes_by_op_type("Resize")) > 0 + if need_upsample: + model = model.transform(to_hw.InferUpsample()) # needed for non-bipolar MatMul layers - model = model.transform(to_hls.InferQuantizedMatrixVectorActivation(mem_mode)) + model = model.transform(to_hw.InferQuantizedMatrixVectorActivation()) # input quantization (if any) as standalone threshold - model = model.transform(to_hls.InferThresholdingLayer()) + model = model.transform(to_hw.InferThresholdingLayer()) # needed for convolutions -- TODO always exec? need_conv = len(model.get_nodes_by_op_type("Im2Col")) > 0 if need_conv: - if cfg.force_rtl_conv_inp_gen: - model = model.transform(to_hls.InferConvInpGen(use_rtl_variant=True)) - else: - model = model.transform(to_hls.InferConvInpGen()) + model = model.transform(to_hw.InferConvInpGen()) # get rid of Tranpose -> Tranpose identity seq model = model.transform(absorb.AbsorbConsecutiveTransposes()) model = model.transform(absorb.AbsorbTransposeIntoMultiThreshold()) diff --git a/build/espcn/folding_configs/espcn_x2_w3a3_d-nn_kriasom.json b/build/espcn/folding_configs/espcn_x2_w3a3_d-nn_kriasom.json new file mode 100644 index 00000000..29009f6d --- /dev/null +++ b/build/espcn/folding_configs/espcn_x2_w3a3_d-nn_kriasom.json @@ -0,0 +1,495 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 4, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "distributed", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 8, + "SIMD": 18, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_11": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_0": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 8, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_1": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_19": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_2": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 16, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 16, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 32, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_config_chrc_cap.json b/build/espcn/folding_configs/espcn_x2_w3a3_d-sp_kriasom.json similarity index 94% rename from build/espcn/folding_config_chrc_cap.json rename to build/espcn/folding_configs/espcn_x2_w3a3_d-sp_kriasom.json index cf9e630c..b7497f3a 100644 --- a/build/espcn/folding_config_chrc_cap.json +++ b/build/espcn/folding_configs/espcn_x2_w3a3_d-sp_kriasom.json @@ -75,13 +75,12 @@ 0 ] }, - "StreamingDataWidthConverter_Batch_0": { - "impl_style": "hls", + "StreamingDataWidthConverter_rtl_0": { "inFIFODepths": [ 2 ], "outFIFODepths": [ - 16384 + 2 ] }, "StreamingFIFO_4": { @@ -120,13 +119,12 @@ 0 ] }, - "StreamingDataWidthConverter_Batch_1": { - "impl_style": "hls", + "StreamingDataWidthConverter_rtl_1": { "inFIFODepths": [ 2 ], "outFIFODepths": [ - 16384 + 2 ] }, "StreamingFIFO_6": { @@ -160,13 +158,12 @@ 0 ] }, - "StreamingDataWidthConverter_Batch_2": { - "impl_style": "hls", + "StreamingDataWidthConverter_rtl_2": { "inFIFODepths": [ 2 ], "outFIFODepths": [ - 16384 + 2 ] }, "StreamingFIFO_8": { @@ -201,13 +198,12 @@ 0 ] }, - "StreamingDataWidthConverter_Batch_3": { - "impl_style": "hls", + "StreamingDataWidthConverter_rtl_3": { "inFIFODepths": [ 2 ], "outFIFODepths": [ - 16384 + 2 ] }, "StreamingFIFO_10": { @@ -246,13 +242,12 @@ 0 ] }, - "StreamingDataWidthConverter_Batch_4": { - "impl_style": "hls", + "StreamingDataWidthConverter_rtl_4": { "inFIFODepths": [ 2 ], "outFIFODepths": [ - 16384 + 2 ] }, "StreamingFIFO_12": { @@ -286,13 +281,12 @@ 0 ] }, - "StreamingDataWidthConverter_Batch_5": { - "impl_style": "hls", + "StreamingDataWidthConverter_rtl_5": { "inFIFODepths": [ 2 ], "outFIFODepths": [ - 16384 + 2 ] }, "StreamingFIFO_14": { @@ -327,7 +321,7 @@ 0 ] }, - "StreamingDataWidthConverter_Batch_6": { + "StreamingDataWidthConverter_Batch_0": { "impl_style": "hls", "inFIFODepths": [ 2 @@ -372,7 +366,7 @@ 0 ] }, - "StreamingDataWidthConverter_Batch_7": { + "StreamingDataWidthConverter_Batch_1": { "impl_style": "hls", "inFIFODepths": [ 2 @@ -432,7 +426,7 @@ 0 ] }, - "StreamingDataWidthConverter_Batch_8": { + "StreamingDataWidthConverter_Batch_2": { "impl_style": "hls", "inFIFODepths": [ 2 @@ -473,7 +467,7 @@ 0 ] }, - "StreamingDataWidthConverter_Batch_9": { + "StreamingDataWidthConverter_Batch_3": { "impl_style": "hls", "inFIFODepths": [ 2 diff --git a/build/espcn/folding_configs/espcn_x2_w3a3_deconv_kriasom.json b/build/espcn/folding_configs/espcn_x2_w3a3_deconv_kriasom.json new file mode 100644 index 00000000..b7497f3a --- /dev/null +++ b/build/espcn/folding_configs/espcn_x2_w3a3_deconv_kriasom.json @@ -0,0 +1,515 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 4, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "distributed", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 8, + "SIMD": 18, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_11": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_0": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 8, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_1": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_19": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_2": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 16, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_3": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 18, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x2_w3a3_nnrc_kriasom.json b/build/espcn/folding_configs/espcn_x2_w3a3_nnrc_kriasom.json new file mode 100644 index 00000000..7f1018c5 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x2_w3a3_nnrc_kriasom.json @@ -0,0 +1,517 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 174, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 15818, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 174 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 8, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 409600 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 15818 + ], + "outFIFODepths": [ + 52272 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 767705 + ], + "outFIFODepths": [ + 409600 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 254, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_0": { + "impl_style": "hls", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 40 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 8000, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 16, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 40 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_1": { + "impl_style": "hls", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 40, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_2": { + "impl_style": "hls", + "inFIFODepths": [ + 252 + ], + "outFIFODepths": [ + 7330 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 252, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_3": { + "impl_style": "hls", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 40 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 7330, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 8, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 40 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_4": { + "impl_style": "hls", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 40, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "UpsampleNearestNeighbour_Batch_0": { + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_5": { + "impl_style": "hls", + "inFIFODepths": [ + 790 + ], + "outFIFODepths": [ + 6416 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_6": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 790, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 4, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 6416, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 4, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x2_w4a4_d-nn_kriasom.json b/build/espcn/folding_configs/espcn_x2_w4a4_d-nn_kriasom.json new file mode 100644 index 00000000..a1d1e502 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x2_w4a4_d-nn_kriasom.json @@ -0,0 +1,495 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 4, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "distributed", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 8, + "SIMD": 18, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_11": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_0": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 8, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_1": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_19": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_2": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 16, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 16, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 32, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x2_w4a4_d-sp_kriasom.json b/build/espcn/folding_configs/espcn_x2_w4a4_d-sp_kriasom.json new file mode 100644 index 00000000..b7497f3a --- /dev/null +++ b/build/espcn/folding_configs/espcn_x2_w4a4_d-sp_kriasom.json @@ -0,0 +1,515 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 4, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "distributed", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 8, + "SIMD": 18, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_11": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_0": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 8, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_1": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_19": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_2": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 16, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_3": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 18, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x2_w4a4_deconv_kriasom.json b/build/espcn/folding_configs/espcn_x2_w4a4_deconv_kriasom.json new file mode 100644 index 00000000..b7497f3a --- /dev/null +++ b/build/espcn/folding_configs/espcn_x2_w4a4_deconv_kriasom.json @@ -0,0 +1,515 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 4, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "distributed", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 8, + "SIMD": 18, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_11": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_0": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 8, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_1": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_19": { + "ram_style": "ultra", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_2": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 16, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_3": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 18, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x2_w4a4_nnrc_kriasom.json b/build/espcn/folding_configs/espcn_x2_w4a4_nnrc_kriasom.json new file mode 100644 index 00000000..2f389648 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x2_w4a4_nnrc_kriasom.json @@ -0,0 +1,517 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 174, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 15818, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 174 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 8, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 409600 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 15818 + ], + "outFIFODepths": [ + 52272 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 767705 + ], + "outFIFODepths": [ + 409600 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 254, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_0": { + "impl_style": "hls", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 40 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 8000, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 16, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 40 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_1": { + "impl_style": "hls", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 40, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_2": { + "impl_style": "hls", + "inFIFODepths": [ + 252 + ], + "outFIFODepths": [ + 7330 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 252, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_3": { + "impl_style": "hls", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 40 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 7330, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 8, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 40 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_4": { + "impl_style": "hls", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 40, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "UpsampleNearestNeighbour_Batch_0": { + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_5": { + "impl_style": "hls", + "inFIFODepths": [ + 790 + ], + "outFIFODepths": [ + 6416 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_6": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 790, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 4, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 6416, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 4, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x4-n1_w4a4_d-nn_zcu104.json b/build/espcn/folding_configs/espcn_x4-n1_w4a4_d-nn_zcu104.json new file mode 100644 index 00000000..e5a9f7f9 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x4-n1_w4a4_d-nn_zcu104.json @@ -0,0 +1,435 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 4, + "SIMD": 4, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 16, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 16, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x4-n2_w4a4_d-nn_zcu104.json b/build/espcn/folding_configs/espcn_x4-n2_w4a4_d-nn_zcu104.json new file mode 100644 index 00000000..fbc34871 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x4-n2_w4a4_d-nn_zcu104.json @@ -0,0 +1,559 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_6": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 1, + "SIMD": 8, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_4": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_4": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_7": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_25": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_4": { + "PE": 1, + "SIMD": 2, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_26": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x4_n1_w4a4_d-sp_zcu104.json b/build/espcn/folding_configs/espcn_x4_n1_w4a4_d-sp_zcu104.json new file mode 100644 index 00000000..264ebf51 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x4_n1_w4a4_d-sp_zcu104.json @@ -0,0 +1,435 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 2, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 4, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 32, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 32, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x4_n1_w4a4_deconv_zcu104.json b/build/espcn/folding_configs/espcn_x4_n1_w4a4_deconv_zcu104.json new file mode 100644 index 00000000..db84e5fd --- /dev/null +++ b/build/espcn/folding_configs/espcn_x4_n1_w4a4_deconv_zcu104.json @@ -0,0 +1,435 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 2, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 4, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 32, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 32, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x4_n1_w4a4_nnrc_zcu104.json b/build/espcn/folding_configs/espcn_x4_n1_w4a4_nnrc_zcu104.json new file mode 100644 index 00000000..606e1994 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x4_n1_w4a4_nnrc_zcu104.json @@ -0,0 +1,453 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "UpsampleNearestNeighbour_Batch_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_6": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 4, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 4, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x4_n2_w4a4_d-sp_zcu104.json b/build/espcn/folding_configs/espcn_x4_n2_w4a4_d-sp_zcu104.json new file mode 100644 index 00000000..30a18687 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x4_n2_w4a4_d-sp_zcu104.json @@ -0,0 +1,578 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "distributed", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 4, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_6": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 1, + "SIMD": 12, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_4": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_7": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_4": { + "SIMD": 3, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_25": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_8": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_26": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_4": { + "PE": 1, + "SIMD": 6, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_27": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x4_n2_w4a4_deconv_zcu104.json b/build/espcn/folding_configs/espcn_x4_n2_w4a4_deconv_zcu104.json new file mode 100644 index 00000000..30a18687 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x4_n2_w4a4_deconv_zcu104.json @@ -0,0 +1,578 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 32 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "distributed", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 4, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_6": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 1, + "SIMD": 12, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_4": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_7": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_4": { + "SIMD": 3, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_25": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_8": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_26": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_4": { + "PE": 1, + "SIMD": 6, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_27": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x4_n2_w4a4_nnrc_zcu104.json b/build/espcn/folding_configs/espcn_x4_n2_w4a4_nnrc_zcu104.json new file mode 100644 index 00000000..cf7fde82 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x4_n2_w4a4_nnrc_zcu104.json @@ -0,0 +1,595 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "UpsampleNearestNeighbour_Batch_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_6": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 1, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_7": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "UpsampleNearestNeighbour_Batch_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_8": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_4": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_25": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_4": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_26": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_9": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_27": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_4": { + "PE": 1, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_28": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x8-n1_w4a4_d-nn_zcu104.json b/build/espcn/folding_configs/espcn_x8-n1_w4a4_d-nn_zcu104.json new file mode 100644 index 00000000..abadcdae --- /dev/null +++ b/build/espcn/folding_configs/espcn_x8-n1_w4a4_d-nn_zcu104.json @@ -0,0 +1,416 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 1, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 2, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 4, + "SIMD": 4, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 32, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 32, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x8-n3_w4a4_d-nn_zcu104.json b/build/espcn/folding_configs/espcn_x8-n3_w4a4_d-nn_zcu104.json new file mode 100644 index 00000000..1cdfaab1 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x8-n3_w4a4_d-nn_zcu104.json @@ -0,0 +1,664 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 2, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_6": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 1, + "SIMD": 8, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_4": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_4": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_7": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_25": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_4": { + "PE": 1, + "SIMD": 2, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_26": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_27": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_5": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_28": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_8": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_29": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_5": { + "SIMD": 3, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_30": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_5": { + "PE": 3, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_31": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x8_n1_w4a4_d-sp_zcu104.json b/build/espcn/folding_configs/espcn_x8_n1_w4a4_d-sp_zcu104.json new file mode 100644 index 00000000..35bf34fe --- /dev/null +++ b/build/espcn/folding_configs/espcn_x8_n1_w4a4_d-sp_zcu104.json @@ -0,0 +1,416 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 1, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 4, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 32, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 32, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x8_n1_w4a4_deconv_zcu104.json b/build/espcn/folding_configs/espcn_x8_n1_w4a4_deconv_zcu104.json new file mode 100644 index 00000000..35bf34fe --- /dev/null +++ b/build/espcn/folding_configs/espcn_x8_n1_w4a4_deconv_zcu104.json @@ -0,0 +1,416 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2259 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 1, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 4, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 32, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 32, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x8_n1_w4a4_nnrc_zcu104.json b/build/espcn/folding_configs/espcn_x8_n1_w4a4_nnrc_zcu104.json new file mode 100644 index 00000000..259a97de --- /dev/null +++ b/build/espcn/folding_configs/espcn_x8_n1_w4a4_nnrc_zcu104.json @@ -0,0 +1,453 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 4, + "SIMD": 6, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "UpsampleNearestNeighbour_Batch_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 2, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_6": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 16, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 16, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x8_n3_w4a4_d-sp_zcu104.json b/build/espcn/folding_configs/espcn_x8_n3_w4a4_d-sp_zcu104.json new file mode 100644 index 00000000..35e68274 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x8_n3_w4a4_d-sp_zcu104.json @@ -0,0 +1,746 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 2, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 8, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_6": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 4, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_0": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 6, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_1": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_4": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_25": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_2": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_26": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_4": { + "SIMD": 3, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_27": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_4": { + "PE": 3, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_28": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_3": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_29": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_30": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_5": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_31": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_4": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_32": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_5": { + "SIMD": 3, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_33": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_5": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_34": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_5": { + "PE": 3, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_35": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x8_n3_w4a4_deconv_zcu104.json b/build/espcn/folding_configs/espcn_x8_n3_w4a4_deconv_zcu104.json new file mode 100644 index 00000000..35e68274 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x8_n3_w4a4_deconv_zcu104.json @@ -0,0 +1,746 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 2, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 8, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_6": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 4, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_0": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 3, + "SIMD": 6, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_1": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_4": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_25": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_2": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_26": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_4": { + "SIMD": 3, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_27": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_4": { + "PE": 3, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_28": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_3": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_29": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Pixel_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_30": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_5": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_31": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_4": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_32": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_5": { + "SIMD": 3, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_33": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_Batch_5": { + "impl_style": "hls", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_34": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_5": { + "PE": 3, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 32 + ] + }, + "StreamingFIFO_35": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/folding_configs/espcn_x8_n3_w4a4_nnrc_zcu104.json b/build/espcn/folding_configs/espcn_x8_n3_w4a4_nnrc_zcu104.json new file mode 100644 index 00000000..832a4312 --- /dev/null +++ b/build/espcn/folding_configs/espcn_x8_n3_w4a4_nnrc_zcu104.json @@ -0,0 +1,756 @@ +{ + "Defaults": {}, + "StreamingFIFO_0": { + "ram_style": "auto", + "depth": 32, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "Thresholding_Batch_0": { + "PE": 1, + "ram_style": "distributed", + "mem_mode": "const", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_1": { + "ram_style": "auto", + "depth": 2259, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_0": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_2": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_0": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_3": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_4": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_0": { + "PE": 1, + "SIMD": 5, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_5": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_1": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_6": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_1": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_7": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_8": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_1": { + "PE": 4, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_9": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_10": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_2": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_11": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_2": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_12": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_3": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_13": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_2": { + "PE": 2, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_14": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_4": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_15": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "UpsampleNearestNeighbour_Batch_0": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_16": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_5": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_17": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_3": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_18": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_3": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_19": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_6": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_20": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_3": { + "PE": 1, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_21": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_7": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_22": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "UpsampleNearestNeighbour_Batch_1": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_23": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_8": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_24": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_4": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_25": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_4": { + "SIMD": 1, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_26": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_9": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_27": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_4": { + "PE": 1, + "SIMD": 3, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_28": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_10": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_29": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "UpsampleNearestNeighbour_Batch_2": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_30": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_11": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_31": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "FMPadding_Batch_5": { + "SIMD": 1, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_32": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_12": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_33": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "ConvolutionInputGenerator_5": { + "SIMD": 3, + "ram_style": "distributed", + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_34": { + "ram_style": "auto", + "depth": 2, + "impl_style": "rtl", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "StreamingDataWidthConverter_rtl_13": { + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 2 + ] + }, + "StreamingFIFO_35": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + }, + "MatrixVectorActivation_5": { + "PE": 1, + "SIMD": 9, + "ram_style": "auto", + "resType": "lut", + "mem_mode": "decoupled", + "runtime_writeable_weights": 0, + "inFIFODepths": [ + 2 + ], + "outFIFODepths": [ + 16384 + ] + }, + "StreamingFIFO_36": { + "ram_style": "auto", + "depth": 16384, + "impl_style": "vivado", + "inFIFODepths": [ + 0 + ], + "outFIFODepths": [ + 0 + ] + } +} \ No newline at end of file diff --git a/build/espcn/models/get_model.py b/build/espcn/models/get_model.py index bd70f4e5..4fac156f 100644 --- a/build/espcn/models/get_model.py +++ b/build/espcn/models/get_model.py @@ -1,35 +1,91 @@ +# Copyright (C) 2023, Advanced Micro Devices, Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# * Neither the name of FINN nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + import brevitas_examples.super_resolution.models as models import brevitas_examples.super_resolution.utils as utils import os import torch import numpy as np from brevitas.export import export_qonnx +import argparse -model = models.get_model_by_name('quant_espcn_x2_w4a4_base', True) -device = 'cuda' if torch.cuda.is_available() else 'cpu' -model = model.to(device) -_, testloader = utils.get_bsd300_dataloaders( - "../data", - num_workers=0, - batch_size=1, - upscale_factor=model.upscale_factor, - crop_size=256, - download=True) -os.makedirs("../quant_espcn_x2_w4a4_base", exist_ok=True) +def main(model_type, output_dir=None, upscale_factor=2, weight_bit_width=4, act_bit_width=4): + if model_type == "base": + model = models.quant_espcn_base(upscale_factor=upscale_factor, weight_bit_width=weight_bit_width, act_bit_width=act_bit_width) + elif model_type == "nnrc": + model = models.quant_espcn_nnrc(upscale_factor=upscale_factor, weight_bit_width=weight_bit_width, act_bit_width=act_bit_width) + elif model_type == "deconv": + model = models.quant_espcn_deconv(upscale_factor=upscale_factor, weight_bit_width=weight_bit_width, act_bit_width=act_bit_width) + else: + raise ValueError("Invalid model type") + device = "cpu" + model = model.to(device) + _, testloader = utils.get_bsd300_dataloaders( + "../data", + num_workers=0, + batch_size=1, + upscale_factor=model.upscale_factor, + crop_size=256, + download=True, + ) + if output_dir is not None: + path = os.path.realpath(output_dir) + os.makedirs(path, exist_ok=True) + else: + FINN_ROOT = os.getenv("FINN_ROOT") + path = os.path.realpath(f"{FINN_ROOT}/../espcn/quant_espcn_x{upscale_factor}_w{weight_bit_width}a{act_bit_width}_{model_type}/") + os.makedirs(path, exist_ok=True) -inp = testloader.dataset[0][0].unsqueeze(0) # NCHW -inp = torch.round(inp.to(device)*255) -model = model.to(device) -with open(f"../quant_espcn_x2_w4a4_base/input.npy", "wb") as f: - np.save(f, inp.cpu().numpy()) -with open(f"../quant_espcn_x2_w4a4_base/output.npy", "wb") as f: + inp = testloader.dataset[0][0].unsqueeze(0).to(device) # NCHW + model = model.to(device) + with open(path + "/input.npy", "wb") as f: + np.save(f, torch.round(inp * 255).cpu().numpy()) + with open(path + "/output.npy", "wb") as f: np.save(f, model(inp).detach().cpu().numpy()) -print(f"Saved I/O to ../quant_espcn_x2_w4a4_base as numpy arrays") + print("Saved I/O to " + path + " as numpy arrays") + export_qonnx( + model.cpu(), input_t=inp.cpu(), export_path=path + "/qonnx_model.onnx", opset_version=13 + ) + print("Saved QONNX model to" + path) -export_qonnx( - model.cpu(), - input_t=inp.cpu(), - export_path=f"../quant_espcn_x2_w4a4_base/qonnx_model.onnx", - opset_version=13) -print(f"Saved QONNX model to ../quant_espcn_x2_w4a4_base/qonnx_model.onnx") +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument('-m', '--model', type=str, choices=['base', 'nnrc', 'deconv'], required=True) + parser.add_argument('-o', '--output_dir', type=str, required=False) + parser.add_argument('-u', '--upscale_factor', type=int, required=False, default=2) + parser.add_argument('-w', '--weight_bit_width', type=int, required=False, default=4) + parser.add_argument('-a', '--act_bit_width', type=int, required=False, default=4) + args = parser.parse_args() + main( + args.model, + args.output_dir, + args.upscale_factor, + args.weight_bit_width, + args.act_bit_width + ) \ No newline at end of file diff --git a/build/get-finn.sh b/build/get-finn.sh index b89d1591..f7074021 100755 --- a/build/get-finn.sh +++ b/build/get-finn.sh @@ -28,9 +28,12 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # URL for git repo to be cloned -REPO_URL=https://github.com/Xilinx/finn +# REPO_URL=https://github.com/Xilinx/finn +REPO_URL="https://github.com/hleblevec/finn-fork.git" # commit hash for repo -REPO_COMMIT=e9985e66bbfefd4beca3e6bc6da6c9136e9a15b6 +# REPO_COMMIT=e9985e66bbfefd4beca3e6bc6da6c9136e9a15b6 +# REPO_COMMIT="24615067e47d987bd6ea4254932324cab3c04f28" +REPO_COMMIT="7deb2969112f5f0e9c19c35db55e5a8cbb3f38e9" # directory (under the same folder as this script) to clone to REPO_DIR=finn