code: def transform(self, model, node):
      if model.config.get_config_value("IOType") != "io_stream":
          return False
  
      # Get the padding parameters from Conv1D layer
      pad_left = node.get_attr("pad_left")
      pad_right = node.get_attr("pad_right")
  
      # Check if no padding needs to be done
      if pad_left == pad_right == 0:
          return False
  
      out_width = pad_left + node.get_attr("in_width") + pad_right
  
      attrs = {
          "pad_left": pad_left,
          "pad_right": pad_right,
          "in_width": node.get_attr("in_width"),
          "out_width": out_width,
          "n_chan": node.get_attr("n_chan"),
          "data_format": node.get_attr("data_format", "channels_last"),
      }
  
      # Switch Conv1D layer padding to 'valid'
      node.set_attr("padding", "valid")
      node.set_attr("pad_left", 0)
      node.set_attr("pad_right", 0)
      node.set_attr("in_width", out_width)
  
      # Insert new ZeroPadding1D node above Conv1D
      padding_layer = model.make_node(
          "ZeroPadding1D",
          "zp1d_" + node.name,
          attrs,
          node.inputs.copy(),
      )
      padding_layer.get_output_variable().type.precision = (
          node.get_input_variable().type.precision
      )
      model.insert_node(padding_layer)
  
      return True
  
file_path: hls4ml/hls4ml/backends/vivado/passes/conv_same_pad.py
imports: from hls4ml.model.layers import Conv1D, Conv2D, SeparableConv1D, SeparableConv2D
  from hls4ml.model.optimizer import OptimizerPass
label_desc: Use image node_id 2 for calling the InsertZeroPaddingBeforeConv1D obj's underlying member method code with example usage: obj.transform(model, node) and returns: True, False, False