def METHOD_NAME(self, model):
    """Copy the nnet_utils, AP types headers and any custom source to the project output directory
    Args:
        model (ModelGraph): the hls4ml model.
    """
    # nnet_utils
    filedir = os.path.dirname(os.path.abspath(__file__))
    srcpath = os.path.join(filedir, '../templates/vivado/nnet_utils/')
    dstpath = f'{model.config.get_output_dir()}/firmware/nnet_utils/'
    if not os.path.exists(dstpath):
        os.mkdir(dstpath)
    headers = [os.path.basename(h) for h in glob.glob(srcpath + '*.h')]
    for h in headers:
        copyfile(srcpath + h, dstpath + h)
    # ap_types
    filedir = os.path.dirname(os.path.abspath(__file__))
    srcpath = model.config.get_config_value('HLSIncludePath')
    if not os.path.exists(srcpath):
        srcpath = os.path.join(filedir, '../templates/vivado/ap_types/')
    dstpath = f'{model.config.get_output_dir()}/firmware/ap_types/'
    if os.path.exists(dstpath):
        rmtree(dstpath)
    copytree(srcpath, dstpath)
    # custom source
    filedir = os.path.dirname(os.path.abspath(__file__))
    custom_source = get_backend('Vivado').get_custom_source()
    for dst, srcpath in custom_source.items():
        dstpath = f'{model.config.get_output_dir()}/firmware/{dst}'
        copyfile(srcpath, dstpath)