Skip to content

Merge new parallel simulation sizing#187

Draft
LinusJungemann wants to merge 113 commits intodevfrom
feature/parallel-sim
Draft

Merge new parallel simulation sizing#187
LinusJungemann wants to merge 113 commits intodevfrom
feature/parallel-sim

Conversation

@LinusJungemann
Copy link
Copy Markdown
Member

TODO

Currently just a PR to see how badly the tests fail.

bwintermann and others added 30 commits October 16, 2025 15:28
bwintermann and others added 25 commits February 18, 2026 17:06
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 14, 2026

📋 Docstring Check Report

Docstring check failed!

Missing Docstrings Details:

📄 finn_xsi/finn_xsi/adapter.py:

  • Line 1: module 'adapter.py'
  • Line 35: function 'compile_sim_obj'
  • Line 121: function 'get_simkernel_so'
  • Line 133: function 'load_sim_obj'
  • Line 145: function 'reset_rtlsim'
  • Line 152: function 'close_rtlsim'
  • Line 156: function 'rtlsim_multi_io'

📄 src/finn/custom_op/fpgadataflow/elementwise_binary.py:

  • Line 1: module 'elementwise_binary.py'
  • Line 45: class 'ElementwiseBinaryOperation'
  • Line 52: function 'ElementwiseBinaryOperation.npy_op'
  • Line 57: function 'ElementwiseBinaryOperation.cpp_op'
  • Line 62: function 'ElementwiseBinaryOperation.rtl_op'
  • Line 66: function 'ElementwiseBinaryOperation.init'
  • Line 71: function 'ElementwiseBinaryOperation.get_nodeattr_types'
  • Line 120: function 'ElementwiseBinaryOperation.lhs_dtype'
  • Line 126: function 'ElementwiseBinaryOperation.rhs_dtype'
  • Line 132: function 'ElementwiseBinaryOperation.out_dtype'
  • Line 138: function 'ElementwiseBinaryOperation.lhs_shape'
  • Line 143: function 'ElementwiseBinaryOperation.rhs_shape'
  • Line 148: function 'ElementwiseBinaryOperation.out_shape'
  • Line 153: function 'ElementwiseBinaryOperation.lhs_style'
  • Line 158: function 'ElementwiseBinaryOperation.rhs_style'
  • Line 163: function 'ElementwiseBinaryOperation.pe'
  • Line 168: function 'ElementwiseBinaryOperation.broadcast_last_axis'
  • Line 174: function 'ElementwiseBinaryOperation.make_shape_compatible_op'
  • Line 194: function 'ElementwiseBinaryOperation.infer_node_datatype'
  • Line 216: function 'ElementwiseBinaryOperation.execute_node'
  • Line 241: function 'ElementwiseBinaryOperation.get_input_datatype'
  • Line 246: function 'ElementwiseBinaryOperation.get_output_datatype'
  • Line 251: function 'ElementwiseBinaryOperation.get_normal_input_shape'
  • Line 256: function 'ElementwiseBinaryOperation.get_normal_output_shape'
  • Line 261: function 'ElementwiseBinaryOperation.get_folded_input_shape'
  • Line 275: function 'ElementwiseBinaryOperation.get_folded_output_shape'
  • Line 289: function 'ElementwiseBinaryOperation.get_instream_width'
  • Line 311: function 'ElementwiseBinaryOperation.get_outstream_width'
  • Line 322: function 'ElementwiseBinaryOperation.minimize_accumulator_width'
  • Line 345: function 'ElementwiseBinaryOperation._derive_out_dtype'
  • Line 354: function 'ElementwiseBinaryOperation.minimize_weight_bit_width'
  • Line 438: function 'ElementwiseBinaryOperation.get_exp_cycles'
  • Line 446: class 'ElementwiseAdd'
  • Line 452: function 'ElementwiseAdd._derive_out_dtype'
  • Line 486: class 'ElementwiseSub'
  • Line 492: function 'ElementwiseSub._derive_out_dtype'
  • Line 522: class 'ElementwiseMul'
  • Line 528: function 'ElementwiseMul._derive_out_dtype'
  • Line 543: class 'ElementwiseDiv'
  • Line 550: function 'ElementwiseDiv._derive_out_dtype'
  • Line 569: class 'ElementwiseAnd'
  • Line 575: function 'ElementwiseAnd._derive_out_dtype'
  • Line 583: class 'ElementwiseOr'
  • Line 589: function 'ElementwiseOr._derive_out_dtype'
  • Line 597: class 'ElementwiseXor'
  • Line 603: function 'ElementwiseXor._derive_out_dtype'
  • Line 611: class 'ElementwiseEqual'
  • Line 617: function 'ElementwiseEqual._derive_out_dtype'
  • Line 625: class 'ElementwiseLess'
  • Line 631: function 'ElementwiseLess._derive_out_dtype'
  • Line 639: class 'ElementwiseLessOrEqual'
  • Line 645: function 'ElementwiseLessOrEqual._derive_out_dtype'
  • Line 653: class 'ElementwiseGreater'
  • Line 659: function 'ElementwiseGreater._derive_out_dtype'
  • Line 668: class 'ElementwiseGreaterOrEqual'
  • Line 674: function 'ElementwiseGreaterOrEqual._derive_out_dtype'
  • Line 682: class 'ElementwiseBitwiseAnd'
  • Line 688: function 'ElementwiseBitwiseAnd._derive_out_dtype'
  • Line 704: class 'ElementwiseBitwiseOr'
  • Line 710: function 'ElementwiseBitwiseOr._derive_out_dtype'
  • Line 726: class 'ElementwiseBitwiseXor'
  • Line 732: function 'ElementwiseBitwiseXor._derive_out_dtype'
  • Line 748: class 'ElementwiseBitShift'
  • Line 750: function 'ElementwiseBitShift.get_nodeattr_types'
  • Line 764: function 'ElementwiseBitShift.npy_op'
  • Line 769: function 'ElementwiseBitShift.cpp_op'
  • Line 774: function 'ElementwiseBitShift.rtl_op'
  • Line 778: function 'ElementwiseBitShift._derive_out_dtype'
  • Line 795: class 'ElementwiseMax'
  • Line 797: function 'ElementwiseMax.npy_op'
  • Line 802: function 'ElementwiseMax.cpp_op'
  • Line 808: function 'ElementwiseMax.rtl_op'
  • Line 811: function 'ElementwiseMax._derive_out_dtype'

📄 src/finn/custom_op/fpgadataflow/hls/checksum_hls.py:

  • Line 1: module 'checksum_hls.py'
  • Line 41: function 'CheckSum_hls.init'
  • Line 44: function 'CheckSum_hls.get_nodeattr_types'
  • Line 59: function 'CheckSum_hls.infer_node_datatype'
  • Line 83: function 'CheckSum_hls.get_instream_width'
  • Line 89: function 'CheckSum_hls.get_outstream_width'
  • Line 92: function 'CheckSum_hls.get_folded_input_shape'
  • Line 95: function 'CheckSum_hls.get_folded_output_shape'
  • Line 98: function 'CheckSum_hls.get_normal_input_shape'
  • Line 121: function 'CheckSum_hls.get_ap_int_max_w'
  • Line 124: function 'CheckSum_hls.get_normal_output_shape'
  • Line 134: function 'CheckSum_hls.npy_to_dynamic_output'
  • Line 141: function 'CheckSum_hls.execute_node'
  • Line 144: function 'CheckSum_hls.global_includes'
  • Line 147: function 'CheckSum_hls.defines'
  • Line 157: function 'CheckSum_hls.read_npy_data'
  • Line 179: function 'CheckSum_hls.strm_decl'
  • Line 191: function 'CheckSum_hls.docompute'
  • Line 196: function 'CheckSum_hls.dataoutstrm'
  • Line 227: function 'CheckSum_hls.blackboxfunction'
  • Line 235: function 'CheckSum_hls.pragmas'
  • Line 248: function 'CheckSum_hls.get_verilog_top_module_intf_names'

📄 src/finn/custom_op/fpgadataflow/hls/iodma_hls.py:

  • Line 1: module 'iodma_hls.py'
  • Line 80: function 'IODMA_hls.init'
  • Line 83: function 'IODMA_hls.get_nodeattr_types'
  • Line 106: function 'IODMA_hls.get_normal_input_shape'
  • Line 112: function 'IODMA_hls.get_normal_output_shape'
  • Line 115: function 'IODMA_hls.get_folded_input_shape'
  • Line 130: function 'IODMA_hls.get_folded_output_shape'
  • Line 145: function 'IODMA_hls.infer_node_datatype'
  • Line 166: function 'IODMA_hls.get_instream_width'
  • Line 174: function 'IODMA_hls.get_outstream_width'
  • Line 182: function 'IODMA_hls.get_number_output_values'
  • Line 192: function 'IODMA_hls.global_includes'
  • Line 196: function 'IODMA_hls.defines'
  • Line 214: function 'IODMA_hls.docompute'
  • Line 322: function 'IODMA_hls.blackboxfunction'
  • Line 349: function 'IODMA_hls.pragmas'
  • Line 388: function 'IODMA_hls.execute_node'
  • Line 391: function 'IODMA_hls.get_verilog_top_module_intf_names'

📄 src/finn/custom_op/fpgadataflow/hls/tlastmarker_hls.py:

  • Line 1: module 'tlastmarker_hls.py'
  • Line 42: function 'TLastMarker_hls.init'
  • Line 45: function 'TLastMarker_hls.get_nodeattr_types'
  • Line 65: function 'TLastMarker_hls.execute_node'
  • Line 76: function 'TLastMarker_hls.make_shape_compatible_op'
  • Line 80: function 'TLastMarker_hls.infer_node_datatype'
  • Line 84: function 'TLastMarker_hls.global_includes'
  • Line 87: function 'TLastMarker_hls.defines'
  • Line 119: function 'TLastMarker_hls.read_npy_data'
  • Line 122: function 'TLastMarker_hls.docompute'
  • Line 177: function 'TLastMarker_hls.dataoutstrm'
  • Line 180: function 'TLastMarker_hls.blackboxfunction'
  • Line 196: function 'TLastMarker_hls.pragmas'
  • Line 208: function 'TLastMarker_hls.get_number_output_values'
  • Line 211: function 'TLastMarker_hls.get_input_datatype'
  • Line 215: function 'TLastMarker_hls.get_output_datatype'
  • Line 219: function 'TLastMarker_hls.get_normal_input_shape'
  • Line 223: function 'TLastMarker_hls.get_normal_output_shape'
  • Line 227: function 'TLastMarker_hls.get_folded_input_shape'
  • Line 234: function 'TLastMarker_hls.get_folded_output_shape'
  • Line 237: function 'TLastMarker_hls.get_instream_width'
  • Line 241: function 'TLastMarker_hls.get_outstream_width'
  • Line 245: function 'TLastMarker_hls.strm_decl'
  • Line 252: function 'TLastMarker_hls.get_verilog_top_module_intf_names'

📄 src/finn/transformation/fpgadataflow/hlssynth_ip.py:

  • Line 1: module 'hlssynth_ip.py'
  • Line 53: function 'HLSSynthIP.init'
  • Line 56: function 'HLSSynthIP.applyNodeLocal'

📄 src/finn/transformation/fpgadataflow/insert_fifo.py:

  • Line 1: module 'insert_fifo.py'
  • Line 39: function '_is_fifo_node'
  • Line 46: function '_suitable_node'
  • Line 59: function '_suitable_folded_shapes'
  • Line 88: function 'InsertFIFO.init'
  • Line 94: function 'InsertFIFO.apply'

📄 src/finn/transformation/fpgadataflow/prepare_ip.py:

  • Line 1: module 'prepare_ip.py'
  • Line 86: function 'PrepareIP.init'
  • Line 91: function 'PrepareIP.apply'

📄 src/finn/transformation/fpgadataflow/simulation.py:

  • Line 166: function 'Simulation.simulate'

📄 src/finn/transformation/fpgadataflow/simulation_build.py:

  • Line 342: function 'SimulationBuilder._format_descr_name'
  • Line 613: function 'SimulationBuilder._build'
  • Line 646: function 'SimulationBuilder._callback_progress'
  • Line 649: function 'SimulationBuilder._f'
  • Line 773: function 'BuildSimulation._compile'
  • Line 791: function 'BuildSimulation._progress_callback'
  • Line 794: function 'BuildSimulation._f'

📄 src/finn/transformation/fpgadataflow/simulation_connected.py:

  • Line 354: function 'NodeConnectedSimulationController._print'
  • Line 522: class 'NodeConnectedSimulation'
  • Line 523: function 'NodeConnectedSimulation.init'
  • Line 606: class 'RunLayerParallelSimulation'

📄 src/finn/transformation/fpgadataflow/simulation_isolated.py:

  • Line 98: function 'NodeIsolatedSimulationController._done_callback_generator'
  • Line 101: function 'NodeIsolatedSimulationController._f'
  • Line 151: function 'NodeIsolatedSimulationController.write_log'
  • Line 221: class 'IsolatedSimulation'
  • Line 222: function 'IsolatedSimulation.init'
  • Line 309: function 'RunLayerIsolatedSimulation._any_ready'
  • Line 571: function 'RunLayerIsolatedSimulation.get_index'

📄 src/finn/transformation/qonnx/infer_quant_avg_pool_2d.py:

  • Line 1: module 'infer_quant_avg_pool_2d.py'
  • Line 119: function 'AvgPoolAndTruncToQuantAvgPool.apply'
  • Line 146: function 'AvgPoolAndTruncv1ToQuantAvgPool.apply'
  • Line 174: function 'AvgPoolAndTruncv1ToQuantAvgPool.apply'
  • Line 347: function 'AvgPoolAndTruncv2ToQuantAvgPool.apply'

📄 src/finn/util/deprecated.py:

  • Line 19: function 'new_func'

📄 src/finn/util/logging.py:

  • Line 131: function 'ThreadsafeProgressDisplay.enter'
  • Line 134: function 'ThreadsafeProgressDisplay.exit'

Total missing docstrings: 183

How to Fix:

Please add docstrings to the missing functions, classes, and modules listed above.

Docstring Guidelines:

  • All modules should have a module-level docstring
  • All public functions and methods should have docstrings
  • All private functions should have docstrings
  • All classes should have docstrings
  • Use triple quotes (""") for docstrings
  • Follow PEP 257 conventions
Raw output from docstring checker
Checking 39 specified Python file(s) (excluding tests folder):
  - finn_xsi/finn_xsi/adapter.py
  - src/finn/benchmarking/bench.py
  - src/finn/builder/build_dataflow.py
  - src/finn/builder/build_dataflow_config.py
  - src/finn/builder/build_dataflow_steps.py
  - src/finn/builder/custom_step_library/resnet.py
  - src/finn/builder/custom_step_library/transformer_adhoc.py
  - src/finn/core/rtlsim_exec.py
  - src/finn/custom_op/fpgadataflow/elementwise_binary.py
  - src/finn/custom_op/fpgadataflow/hls/checksum_hls.py
  - src/finn/custom_op/fpgadataflow/hls/iodma_hls.py
  - src/finn/custom_op/fpgadataflow/hls/tlastmarker_hls.py
  - src/finn/custom_op/fpgadataflow/hlsbackend.py
  - src/finn/custom_op/fpgadataflow/hwcustomop.py
  - src/finn/custom_op/fpgadataflow/matrixvectoractivation.py
  - src/finn/custom_op/fpgadataflow/memstream.py
  - src/finn/custom_op/fpgadataflow/rtl/__init__.py
  - src/finn/custom_op/fpgadataflow/rtl/removedatapath_rtl.py
  - src/finn/custom_op/fpgadataflow/rtlbackend.py
  - src/finn/custom_op/fpgadataflow/thresholding.py
  - src/finn/custom_op/fpgadataflow/vectorvectoractivation.py
  - src/finn/interface/run_finn.py
  - src/finn/transformation/fpgadataflow/create_stitched_ip.py
  - src/finn/transformation/fpgadataflow/hlssynth_ip.py
  - src/finn/transformation/fpgadataflow/insert_fifo.py
  - src/finn/transformation/fpgadataflow/make_driver.py
  - src/finn/transformation/fpgadataflow/prepare_ip.py
  - src/finn/transformation/fpgadataflow/set_fifo_depths.py
  - src/finn/transformation/fpgadataflow/set_folding.py
  - src/finn/transformation/fpgadataflow/simulation.py
  - src/finn/transformation/fpgadataflow/simulation_build.py
  - src/finn/transformation/fpgadataflow/simulation_connected.py
  - src/finn/transformation/fpgadataflow/simulation_controller.py
  - src/finn/transformation/fpgadataflow/simulation_isolated.py
  - src/finn/transformation/qonnx/infer_quant_avg_pool_2d.py
  - src/finn/util/basic.py
  - src/finn/util/deprecated.py
  - src/finn/util/logging.py
  - src/finn/xsi/setup.py

❌ Missing docstrings found:

📄 finn_xsi/finn_xsi/adapter.py:
  - Line 1: module 'adapter.py'
  - Line 35: function 'compile_sim_obj'
  - Line 121: function 'get_simkernel_so'
  - Line 133: function 'load_sim_obj'
  - Line 145: function 'reset_rtlsim'
  - Line 152: function 'close_rtlsim'
  - Line 156: function 'rtlsim_multi_io'

📄 src/finn/custom_op/fpgadataflow/elementwise_binary.py:
  - Line 1: module 'elementwise_binary.py'
  - Line 45: class 'ElementwiseBinaryOperation'
  - Line 52: function 'ElementwiseBinaryOperation.npy_op'
  - Line 57: function 'ElementwiseBinaryOperation.cpp_op'
  - Line 62: function 'ElementwiseBinaryOperation.rtl_op'
  - Line 66: function 'ElementwiseBinaryOperation.__init__'
  - Line 71: function 'ElementwiseBinaryOperation.get_nodeattr_types'
  - Line 120: function 'ElementwiseBinaryOperation.lhs_dtype'
  - Line 126: function 'ElementwiseBinaryOperation.rhs_dtype'
  - Line 132: function 'ElementwiseBinaryOperation.out_dtype'
  - Line 138: function 'ElementwiseBinaryOperation.lhs_shape'
  - Line 143: function 'ElementwiseBinaryOperation.rhs_shape'
  - Line 148: function 'ElementwiseBinaryOperation.out_shape'
  - Line 153: function 'ElementwiseBinaryOperation.lhs_style'
  - Line 158: function 'ElementwiseBinaryOperation.rhs_style'
  - Line 163: function 'ElementwiseBinaryOperation.pe'
  - Line 168: function 'ElementwiseBinaryOperation.broadcast_last_axis'
  - Line 174: function 'ElementwiseBinaryOperation.make_shape_compatible_op'
  - Line 194: function 'ElementwiseBinaryOperation.infer_node_datatype'
  - Line 216: function 'ElementwiseBinaryOperation.execute_node'
  - Line 241: function 'ElementwiseBinaryOperation.get_input_datatype'
  - Line 246: function 'ElementwiseBinaryOperation.get_output_datatype'
  - Line 251: function 'ElementwiseBinaryOperation.get_normal_input_shape'
  - Line 256: function 'ElementwiseBinaryOperation.get_normal_output_shape'
  - Line 261: function 'ElementwiseBinaryOperation.get_folded_input_shape'
  - Line 275: function 'ElementwiseBinaryOperation.get_folded_output_shape'
  - Line 289: function 'ElementwiseBinaryOperation.get_instream_width'
  - Line 311: function 'ElementwiseBinaryOperation.get_outstream_width'
  - Line 322: function 'ElementwiseBinaryOperation.minimize_accumulator_width'
  - Line 345: function 'ElementwiseBinaryOperation._derive_out_dtype'
  - Line 354: function 'ElementwiseBinaryOperation.minimize_weight_bit_width'
  - Line 438: function 'ElementwiseBinaryOperation.get_exp_cycles'
  - Line 446: class 'ElementwiseAdd'
  - Line 452: function 'ElementwiseAdd._derive_out_dtype'
  - Line 486: class 'ElementwiseSub'
  - Line 492: function 'ElementwiseSub._derive_out_dtype'
  - Line 522: class 'ElementwiseMul'
  - Line 528: function 'ElementwiseMul._derive_out_dtype'
  - Line 543: class 'ElementwiseDiv'
  - Line 550: function 'ElementwiseDiv._derive_out_dtype'
  - Line 569: class 'ElementwiseAnd'
  - Line 575: function 'ElementwiseAnd._derive_out_dtype'
  - Line 583: class 'ElementwiseOr'
  - Line 589: function 'ElementwiseOr._derive_out_dtype'
  - Line 597: class 'ElementwiseXor'
  - Line 603: function 'ElementwiseXor._derive_out_dtype'
  - Line 611: class 'ElementwiseEqual'
  - Line 617: function 'ElementwiseEqual._derive_out_dtype'
  - Line 625: class 'ElementwiseLess'
  - Line 631: function 'ElementwiseLess._derive_out_dtype'
  - Line 639: class 'ElementwiseLessOrEqual'
  - Line 645: function 'ElementwiseLessOrEqual._derive_out_dtype'
  - Line 653: class 'ElementwiseGreater'
  - Line 659: function 'ElementwiseGreater._derive_out_dtype'
  - Line 668: class 'ElementwiseGreaterOrEqual'
  - Line 674: function 'ElementwiseGreaterOrEqual._derive_out_dtype'
  - Line 682: class 'ElementwiseBitwiseAnd'
  - Line 688: function 'ElementwiseBitwiseAnd._derive_out_dtype'
  - Line 704: class 'ElementwiseBitwiseOr'
  - Line 710: function 'ElementwiseBitwiseOr._derive_out_dtype'
  - Line 726: class 'ElementwiseBitwiseXor'
  - Line 732: function 'ElementwiseBitwiseXor._derive_out_dtype'
  - Line 748: class 'ElementwiseBitShift'
  - Line 750: function 'ElementwiseBitShift.get_nodeattr_types'
  - Line 764: function 'ElementwiseBitShift.npy_op'
  - Line 769: function 'ElementwiseBitShift.cpp_op'
  - Line 774: function 'ElementwiseBitShift.rtl_op'
  - Line 778: function 'ElementwiseBitShift._derive_out_dtype'
  - Line 795: class 'ElementwiseMax'
  - Line 797: function 'ElementwiseMax.npy_op'
  - Line 802: function 'ElementwiseMax.cpp_op'
  - Line 808: function 'ElementwiseMax.rtl_op'
  - Line 811: function 'ElementwiseMax._derive_out_dtype'

📄 src/finn/custom_op/fpgadataflow/hls/checksum_hls.py:
  - Line 1: module 'checksum_hls.py'
  - Line 41: function 'CheckSum_hls.__init__'
  - Line 44: function 'CheckSum_hls.get_nodeattr_types'
  - Line 59: function 'CheckSum_hls.infer_node_datatype'
  - Line 83: function 'CheckSum_hls.get_instream_width'
  - Line 89: function 'CheckSum_hls.get_outstream_width'
  - Line 92: function 'CheckSum_hls.get_folded_input_shape'
  - Line 95: function 'CheckSum_hls.get_folded_output_shape'
  - Line 98: function 'CheckSum_hls.get_normal_input_shape'
  - Line 121: function 'CheckSum_hls.get_ap_int_max_w'
  - Line 124: function 'CheckSum_hls.get_normal_output_shape'
  - Line 134: function 'CheckSum_hls.npy_to_dynamic_output'
  - Line 141: function 'CheckSum_hls.execute_node'
  - Line 144: function 'CheckSum_hls.global_includes'
  - Line 147: function 'CheckSum_hls.defines'
  - Line 157: function 'CheckSum_hls.read_npy_data'
  - Line 179: function 'CheckSum_hls.strm_decl'
  - Line 191: function 'CheckSum_hls.docompute'
  - Line 196: function 'CheckSum_hls.dataoutstrm'
  - Line 227: function 'CheckSum_hls.blackboxfunction'
  - Line 235: function 'CheckSum_hls.pragmas'
  - Line 248: function 'CheckSum_hls.get_verilog_top_module_intf_names'

📄 src/finn/custom_op/fpgadataflow/hls/iodma_hls.py:
  - Line 1: module 'iodma_hls.py'
  - Line 80: function 'IODMA_hls.__init__'
  - Line 83: function 'IODMA_hls.get_nodeattr_types'
  - Line 106: function 'IODMA_hls.get_normal_input_shape'
  - Line 112: function 'IODMA_hls.get_normal_output_shape'
  - Line 115: function 'IODMA_hls.get_folded_input_shape'
  - Line 130: function 'IODMA_hls.get_folded_output_shape'
  - Line 145: function 'IODMA_hls.infer_node_datatype'
  - Line 166: function 'IODMA_hls.get_instream_width'
  - Line 174: function 'IODMA_hls.get_outstream_width'
  - Line 182: function 'IODMA_hls.get_number_output_values'
  - Line 192: function 'IODMA_hls.global_includes'
  - Line 196: function 'IODMA_hls.defines'
  - Line 214: function 'IODMA_hls.docompute'
  - Line 322: function 'IODMA_hls.blackboxfunction'
  - Line 349: function 'IODMA_hls.pragmas'
  - Line 388: function 'IODMA_hls.execute_node'
  - Line 391: function 'IODMA_hls.get_verilog_top_module_intf_names'

📄 src/finn/custom_op/fpgadataflow/hls/tlastmarker_hls.py:
  - Line 1: module 'tlastmarker_hls.py'
  - Line 42: function 'TLastMarker_hls.__init__'
  - Line 45: function 'TLastMarker_hls.get_nodeattr_types'
  - Line 65: function 'TLastMarker_hls.execute_node'
  - Line 76: function 'TLastMarker_hls.make_shape_compatible_op'
  - Line 80: function 'TLastMarker_hls.infer_node_datatype'
  - Line 84: function 'TLastMarker_hls.global_includes'
  - Line 87: function 'TLastMarker_hls.defines'
  - Line 119: function 'TLastMarker_hls.read_npy_data'
  - Line 122: function 'TLastMarker_hls.docompute'
  - Line 177: function 'TLastMarker_hls.dataoutstrm'
  - Line 180: function 'TLastMarker_hls.blackboxfunction'
  - Line 196: function 'TLastMarker_hls.pragmas'
  - Line 208: function 'TLastMarker_hls.get_number_output_values'
  - Line 211: function 'TLastMarker_hls.get_input_datatype'
  - Line 215: function 'TLastMarker_hls.get_output_datatype'
  - Line 219: function 'TLastMarker_hls.get_normal_input_shape'
  - Line 223: function 'TLastMarker_hls.get_normal_output_shape'
  - Line 227: function 'TLastMarker_hls.get_folded_input_shape'
  - Line 234: function 'TLastMarker_hls.get_folded_output_shape'
  - Line 237: function 'TLastMarker_hls.get_instream_width'
  - Line 241: function 'TLastMarker_hls.get_outstream_width'
  - Line 245: function 'TLastMarker_hls.strm_decl'
  - Line 252: function 'TLastMarker_hls.get_verilog_top_module_intf_names'

📄 src/finn/transformation/fpgadataflow/hlssynth_ip.py:
  - Line 1: module 'hlssynth_ip.py'
  - Line 53: function 'HLSSynthIP.__init__'
  - Line 56: function 'HLSSynthIP.applyNodeLocal'

📄 src/finn/transformation/fpgadataflow/insert_fifo.py:
  - Line 1: module 'insert_fifo.py'
  - Line 39: function '_is_fifo_node'
  - Line 46: function '_suitable_node'
  - Line 59: function '_suitable_folded_shapes'
  - Line 88: function 'InsertFIFO.__init__'
  - Line 94: function 'InsertFIFO.apply'

📄 src/finn/transformation/fpgadataflow/prepare_ip.py:
  - Line 1: module 'prepare_ip.py'
  - Line 86: function 'PrepareIP.__init__'
  - Line 91: function 'PrepareIP.apply'

📄 src/finn/transformation/fpgadataflow/simulation.py:
  - Line 166: function 'Simulation.simulate'

📄 src/finn/transformation/fpgadataflow/simulation_build.py:
  - Line 342: function 'SimulationBuilder._format_descr_name'
  - Line 613: function 'SimulationBuilder._build'
  - Line 646: function 'SimulationBuilder._callback_progress'
  - Line 649: function 'SimulationBuilder._f'
  - Line 773: function 'BuildSimulation._compile'
  - Line 791: function 'BuildSimulation._progress_callback'
  - Line 794: function 'BuildSimulation._f'

📄 src/finn/transformation/fpgadataflow/simulation_connected.py:
  - Line 354: function 'NodeConnectedSimulationController._print'
  - Line 522: class 'NodeConnectedSimulation'
  - Line 523: function 'NodeConnectedSimulation.__init__'
  - Line 606: class 'RunLayerParallelSimulation'

📄 src/finn/transformation/fpgadataflow/simulation_isolated.py:
  - Line 98: function 'NodeIsolatedSimulationController._done_callback_generator'
  - Line 101: function 'NodeIsolatedSimulationController._f'
  - Line 151: function 'NodeIsolatedSimulationController.write_log'
  - Line 221: class 'IsolatedSimulation'
  - Line 222: function 'IsolatedSimulation.__init__'
  - Line 309: function 'RunLayerIsolatedSimulation._any_ready'
  - Line 571: function 'RunLayerIsolatedSimulation.get_index'

📄 src/finn/transformation/qonnx/infer_quant_avg_pool_2d.py:
  - Line 1: module 'infer_quant_avg_pool_2d.py'
  - Line 119: function 'AvgPoolAndTruncToQuantAvgPool.apply'
  - Line 146: function 'AvgPoolAndTruncv1ToQuantAvgPool.apply'
  - Line 174: function 'AvgPoolAndTruncv1ToQuantAvgPool.apply'
  - Line 347: function 'AvgPoolAndTruncv2ToQuantAvgPool.apply'

📄 src/finn/util/deprecated.py:
  - Line 19: function 'new_func'

📄 src/finn/util/logging.py:
  - Line 131: function 'ThreadsafeProgressDisplay.__enter__'
  - Line 134: function 'ThreadsafeProgressDisplay.__exit__'

Total missing docstrings: 183

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants