diff --git a/src/finn/custom_op/fpgadataflow/__init__.py b/src/finn/custom_op/fpgadataflow/__init__.py index d47b687b65d93ec45d936afd91c08c117cf8dbc8..51a3bc0c2bfc3398c0cde67d587e15c26d123a49 100644 --- a/src/finn/custom_op/fpgadataflow/__init__.py +++ b/src/finn/custom_op/fpgadataflow/__init__.py @@ -122,18 +122,23 @@ class HLSCustomOp(CustomOp): code_gen_dir != "" ), """Node attribute "code_gen_dir_ipgen" is not set. Please run HLSSynthIP first.""" - verilog_file = self.get_verilog_top_filename() - assert os.path.isfile(verilog_file), "Cannot find top-level Verilog file." + + verilog_path = "{}/project_{}/sol1/impl/verilog/".format( + code_gen_dir, self.onnx_node.name + ) + + verilog_files = [] + for f in os.listdir(verilog_path): + if f.endswith(".v"): + verilog_files += [f] + # build the Verilator emu library sim = PyVerilator.build( - verilog_file, + verilog_files, build_dir=make_build_dir("pyverilator_" + self.onnx_node.name + "_"), - verilog_path=[ - "{}/project_{}/sol1/impl/verilog/".format( - code_gen_dir, self.onnx_node.name - ) - ], + verilog_path=[verilog_path], trace_depth=get_rtlsim_trace_depth(), + top_module_name=self.get_verilog_top_module_name(), ) # save generated lib filename in attribute self.set_nodeattr("rtlsim_so", sim.lib._name)