code: def _register_flows(self):
      validation_passes = [
          "vitis:validate_conv_implementation",
          "vitis:validate_strategy",
      ]
      validation_flow = register_flow(
          "validation",
          validation_passes,
          requires=["vivado:init_layers"],
          backend=self.name,
      )
  
      # Any potential templates registered specifically for Vitis backend
      template_flow = register_flow(
          "apply_templates",
          self._get_layer_templates,
          requires=["vivado:init_layers"],
          backend=self.name,
      )
  
      writer_passes = ["make_stamp", "vitis:write_hls"]
      self._writer_flow = register_flow(
          "write",
          writer_passes,
          requires=["vitis:ip"],
          backend=self.name,
      )
  
      ip_flow_requirements = get_flow("vivado:ip").requires.copy()
      ip_flow_requirements.insert(
          ip_flow_requirements.index("vivado:init_layers"),
          validation_flow,
      )
      ip_flow_requirements.insert(
          ip_flow_requirements.index("vivado:apply_templates"),
          template_flow,
      )
  
      self._default_flow = register_flow(
          "ip", None, requires=ip_flow_requirements, backend=self.name
      )
  
file_path: hls4ml/hls4ml/backends/vitis/vitis_backend.py
imports: import os
  import sys
  from hls4ml.backends import VivadoBackend
  from hls4ml.model.flow import get_flow, register_flow
  from hls4ml.report import parse_vivado_report
label_desc: Use image node_id 2 for calling the VitisBackend obj's underlying member method code with example usage: obj._register_flows() without return types