hlsfactory.framework

Module Contents

Classes

Functions

Data

API

hlsfactory.framework.EXTENSIONS_CPP = ['.cpp', '.cc', '.c', '.hpp', '.h']
hlsfactory.framework.EXTENTIONS_TCL = ['.tcl']
hlsfactory.framework.EXTENSIONS_PYTHON = ['.py']
hlsfactory.framework.NAMES_MAKEFILE = ['Makefile', 'makefile']
hlsfactory.framework.EXTENTIONS_MAKEFILE = ['.mk']
hlsfactory.framework.all_files_in_dir(dir_path: pathlib.Path) → list[pathlib.Path][source]
hlsfactory.framework.filter_files_by_ext(files: list[pathlib.Path], ext: str) → list[pathlib.Path][source]
class hlsfactory.framework.DesignStage(*args, **kwds)[source]

Bases: enum.Enum

ABSTRACT = 'auto(...)'
CONCRETE = 'auto(...)'
class hlsfactory.framework.Design(name: str, dir_path: pathlib.Path, config: hlsfactory.design_config.DesignConfig | None = None)[source]

Initialization

__repr__() → str[source]
property config: hlsfactory.design_config.DesignConfig | None

Return the design config if loaded, else None.

require_config() → hlsfactory.design_config.DesignConfig[source]

Return the design config, raising if not loaded.

classmethod from_dir_with_config(dir_path: pathlib.Path) → hlsfactory.framework.Design[source]

Create a Design from a directory, loading config from hlsfactory.toml.

property all_files: list[pathlib.Path]
property tcl_files: list[pathlib.Path]
property cpp_source_files: list[pathlib.Path]
rename(new_name: str) → hlsfactory.framework.Design[source]
move_to_new_parent_dir(new_parent_dir: pathlib.Path) → hlsfactory.framework.Design[source]
copy_to_new_parent_dir(new_parent_dir: pathlib.Path) → hlsfactory.framework.Design[source]
copy_and_rename_to_new_parent_dir(new_name: str, new_parent_dir: pathlib.Path) → hlsfactory.framework.Design[source]
class hlsfactory.framework.DesignDataset(name: str, dataset_dir: pathlib.Path, designs: list[hlsfactory.framework.Design])[source]

Initialization

__repr__() → str[source]
classmethod from_dir(name: str, dir_path: pathlib.Path, exclude_dir_filter: None | collections.abc.Callable[[pathlib.Path], bool] = None, require_config: bool = True) → hlsfactory.framework.DesignDataset[source]

Create a DesignDataset from a directory containing design subdirectories.

Args:

name: Name for the dataset. dir_path: Path to the directory containing design subdirectories. exclude_dir_filter: Optional callable that returns True for directories to exclude. require_config: If True (default), each design must have an hlsfactory.toml file.

If False, designs are created without loading configs.

classmethod from_empty_dir(name: str, work_dir: pathlib.Path) → hlsfactory.framework.DesignDataset[source]
add_design(design: hlsfactory.framework.Design) → hlsfactory.framework.DesignDataset[source]
add_designs(designs: list[hlsfactory.framework.Design]) → hlsfactory.framework.DesignDataset[source]
add_design_copy(design: hlsfactory.framework.Design) → hlsfactory.framework.DesignDataset[source]
add_designs_copy(designs: list[hlsfactory.framework.Design]) → hlsfactory.framework.DesignDataset[source]
copy_dataset(work_dir: pathlib.Path) → hlsfactory.framework.DesignDataset[source]
copy_and_rename(new_name: str, work_dir: pathlib.Path) → hlsfactory.framework.DesignDataset[source]
hlsfactory.framework.check_n_jobs_cpu_affinity(n_jobs: int, cpu_affinity: list[int] | None) → None[source]
hlsfactory.framework.DesignDatasetCollection = None
hlsfactory.framework.count_designs_in_dataset_collection(design_datasets: hlsfactory.framework.DesignDatasetCollection) → dict[str, int][source]
hlsfactory.framework.count_total_designs_in_dataset_collection(design_datasets: hlsfactory.framework.DesignDatasetCollection) → int[source]
hlsfactory.framework.worker_init(core_queue: multiprocessing.Queue) → None[source]
class hlsfactory.framework.Flow(work_dir: pathlib.Path)[source]

Bases: abc.ABC

name: str = None
abstractmethod execute(design: hlsfactory.framework.Design, timeout: float | None = None) → list[hlsfactory.framework.Design][source]
execute_multiple_designs(designs: list[hlsfactory.framework.Design], n_jobs: int = 1, cpu_affinity: list[int] | None = None, timeout: float | None = None) → list[hlsfactory.framework.Design][source]
default_new_dataset_name_fn() → collections.abc.Callable[[str], str][source]
execute_multiple_design_datasets_naive_parallel(design_datasets: hlsfactory.framework.DesignDatasetCollection, copy_dataset: bool, new_dataset_name_fn: collections.abc.Callable[[str], str] | None = None, n_jobs: int = 1, cpu_affinity: list[int] | None = None, timeout: float | None = None) → hlsfactory.framework.DesignDatasetCollection[source]
execute_multiple_design_datasets_fine_grained_parallel(design_datasets: hlsfactory.framework.DesignDatasetCollection, copy_dataset: bool, new_dataset_name_fn: collections.abc.Callable[[str], str] | None = None, n_jobs: int = 1, cpu_affinity: list[int] | None = None, par_chunksize: int | None = 1, timeout: float | None = None) → hlsfactory.framework.DesignDatasetCollection[source]
class hlsfactory.framework.Frontend(work_dir: pathlib.Path)[source]

Bases: hlsfactory.framework.Flow

class hlsfactory.framework.ToolFlow(work_dir: pathlib.Path)[source]

Bases: hlsfactory.framework.Flow