hlsfactory.data_packaging¶
Module Contents¶
Classes¶
Shared base for aggregators. |
|
Aggregator that collects vendor artifacts by file-name pattern. |
|
Google XLS: IR at each stage, RTL, signature/schedule/metrics, options. |
|
Siemens Catapult: |
|
Cadence Stratus: generated RTL, the BDR report, and metrics/log files. |
|
Intel HLS Compiler ( |
|
Altera HLS IP Gen and Quartus: reports, interface spec, RTL, logs. |
|
Config-file Vitis HLS ( |
Functions¶
Data¶
API¶
- hlsfactory.data_packaging.InMemoryArchive = None¶
- class hlsfactory.data_packaging.CompleteHLSData[source]¶
- design: dict | None = None¶
- synthesis: dict | None = None¶
- implementation: dict | None = None¶
- execution: dict | None = None¶
- artifacts: hlsfactory.data_packaging.InMemoryArchive | None = None¶
- design_id: str = 'field(...)'¶
- class hlsfactory.data_packaging.DataAggregator[source]¶
Bases:
abc.ABC- VENDER = None¶
- abstractmethod gather_hls_design_data(design: hlsfactory.framework.Design) dict[source]¶
- abstractmethod gather_hls_synthesis_data(design: hlsfactory.framework.Design) dict[source]¶
- abstractmethod gather_implementation_data(design: hlsfactory.framework.Design) dict[source]¶
- abstractmethod gather_execution_data(design: hlsfactory.framework.Design) dict[source]¶
- abstractmethod gather_hls_synthesis_artifacts(design: hlsfactory.framework.Design) hlsfactory.data_packaging.InMemoryArchive[source]¶
- gather_all_data(design: hlsfactory.framework.Design, **kwargs) hlsfactory.data_packaging.CompleteHLSData[source]¶
- gather_multiple_designs(designs: list[hlsfactory.framework.Design], n_jobs: int = 1) list[hlsfactory.data_packaging.CompleteHLSData][source]¶
- aggregated_data_to_csv(data: list[hlsfactory.data_packaging.CompleteHLSData]) str[source]¶
- aggregated_data_to_csv_file(data: list[hlsfactory.data_packaging.CompleteHLSData], file_path: pathlib.Path) None[source]¶
- aggregated_data_to_json(data: list[hlsfactory.data_packaging.CompleteHLSData]) str[source]¶
- aggregated_data_to_json_file(data: list[hlsfactory.data_packaging.CompleteHLSData], file_path: pathlib.Path) None[source]¶
- aggregated_data_to_archive(data: list[hlsfactory.data_packaging.CompleteHLSData], file_path: pathlib.Path) None[source]¶
- hlsfactory.data_packaging.ArtifactCollection = None¶
- class hlsfactory.data_packaging.ArtifactsXilinx(*args, **kwds)[source]¶
Bases:
enum.Enum- IR = 'ir'¶
- ADB = 'adb'¶
- REPORT = 'report'¶
- HDL = 'hdl'¶
- IP = 'ip'¶
- class hlsfactory.data_packaging.JSONFileDataAggregator[source]¶
Bases:
hlsfactory.data_packaging.DataAggregatorShared base for aggregators.
Every flow writes its results as JSON files in the design directory (
data_design.json,data_hls.json,data_implementation.jsonandexecution_data.json), so reading them does not depend on the vendor. Subclasses add the vendor-specific part: collecting the artifacts a flow leaves on disk.- gather_hls_design_data(design: hlsfactory.framework.Design, **_kwargs) dict[source]¶
- gather_hls_synthesis_data(design: hlsfactory.framework.Design, **_kwargs) dict[source]¶
- gather_implementation_data(design: hlsfactory.framework.Design, **_kwargs) dict[source]¶
- gather_execution_data(design: hlsfactory.framework.Design, **_kwargs) dict[source]¶
- class hlsfactory.data_packaging.DataAggregatorXilinx[source]¶
Bases:
hlsfactory.data_packaging.JSONFileDataAggregator- VENDER = 'Xilinx'¶
- gather_hls_synthesis_artifacts_data(design: hlsfactory.framework.Design, artifacts_to_extract: set[hlsfactory.data_packaging.ArtifactsXilinx] = {ArtifactsXilinx.IR, ArtifactsXilinx.ADB, ArtifactsXilinx.REPORT, ArtifactsXilinx.HDL, ArtifactsXilinx.IP}, error_if_missing_data: bool = False) hlsfactory.data_packaging.ArtifactCollection[source]¶
- gather_hls_synthesis_artifacts(design: hlsfactory.framework.Design, artifacts_to_extract: set[hlsfactory.data_packaging.ArtifactsXilinx] = {ArtifactsXilinx.IR, ArtifactsXilinx.ADB, ArtifactsXilinx.REPORT, ArtifactsXilinx.HDL, ArtifactsXilinx.IP}, error_if_missing_data: bool = False) hlsfactory.data_packaging.InMemoryArchive[source]¶
- class hlsfactory.data_packaging.ArtifactAggregator[source]¶
Bases:
hlsfactory.data_packaging.JSONFileDataAggregatorAggregator that collects vendor artifacts by file-name pattern.
Subclasses declare:
ARTIFACTS: an enum of artifact kinds (what can be collected).ARTIFACT_PATTERNS: for each kind, glob patterns relative to the design directory. Only files are collected.SYNTH_FLOW_NAME: the flow whose recorded status inexecution_data.jsondecides whether synthesis completed.
Artifacts are returned as
{kind.value: [paths]}and archived asartifacts/<kind>/<path relative to the design directory>.- ARTIFACTS: ClassVar[type[enum.Enum]] = None¶
- ARTIFACT_PATTERNS: ClassVar[dict[enum.Enum, tuple[str, ...]]] = None¶
- SYNTH_FLOW_NAME: ClassVar[str] = None¶
- _synthesis_incomplete(design: hlsfactory.framework.Design) bool[source]¶
- gather_hls_synthesis_artifacts_data(design: hlsfactory.framework.Design, artifacts_to_extract: collections.abc.Iterable[enum.Enum] | None = None, error_if_missing_data: bool = False) hlsfactory.data_packaging.ArtifactCollection[source]¶
Find the requested artifact kinds on disk.
- Args:
design: Design whose directory is searched. artifacts_to_extract: Kinds to collect; defaults to every kind. error_if_missing_data: If True, raise
FileNotFoundErrorwhen arequested kind matches no files. By default (False) that kind maps to
[]and collection continues.
- gather_hls_synthesis_artifacts(design: hlsfactory.framework.Design, artifacts_to_extract: collections.abc.Iterable[enum.Enum] | None = None, error_if_missing_data: bool = False, **_kwargs) hlsfactory.data_packaging.InMemoryArchive[source]¶
- class hlsfactory.data_packaging.ArtifactsXLS(*args, **kwds)[source]¶
Bases:
enum.Enum- IR = 'ir'¶
- RTL = 'rtl'¶
- METRICS = 'metrics'¶
- INTERFACE = 'interface'¶
- OPTIONS = 'options'¶
- SOURCE_MAP = 'source_map'¶
- DEBUG = 'debug'¶
- class hlsfactory.data_packaging.DataAggregatorXLS[source]¶
Bases:
hlsfactory.data_packaging.ArtifactAggregatorGoogle XLS: IR at each stage, RTL, signature/schedule/metrics, options.
- VENDER = 'XLS'¶
- ARTIFACTS = None¶
- SYNTH_FLOW_NAME = 'XLSHLSSynthFlow'¶
- ARTIFACT_PATTERNS = None¶
- class hlsfactory.data_packaging.ArtifactsCatapult(*args, **kwds)[source]¶
Bases:
enum.Enum- REPORT = 'report'¶
- RTL = 'rtl'¶
- class hlsfactory.data_packaging.DataAggregatorCatapult[source]¶
Bases:
hlsfactory.data_packaging.ArtifactAggregatorSiemens Catapult:
*.rptreports and generated RTL.- VENDER = 'Catapult'¶
- ARTIFACTS = None¶
- SYNTH_FLOW_NAME = 'CatapultHLSSynthFlow'¶
- ARTIFACT_PATTERNS = None¶
- class hlsfactory.data_packaging.ArtifactsStratus(*args, **kwds)[source]¶
Bases:
enum.Enum- RTL = 'rtl'¶
- REPORT = 'report'¶
- LOG = 'log'¶
- class hlsfactory.data_packaging.DataAggregatorStratus[source]¶
Bases:
hlsfactory.data_packaging.ArtifactAggregatorCadence Stratus: generated RTL, the BDR report, and metrics/log files.
- VENDER = 'Stratus'¶
- ARTIFACTS = None¶
- SYNTH_FLOW_NAME = 'StratusHLSSynthFlow'¶
- ARTIFACT_PATTERNS = None¶
- class hlsfactory.data_packaging.ArtifactsIntel(*args, **kwds)[source]¶
Bases:
enum.Enum- REPORT = 'report'¶
- HDL = 'hdl'¶
- QUARTUS = 'quartus'¶
- class hlsfactory.data_packaging.DataAggregatorIntel[source]¶
Bases:
hlsfactory.data_packaging.ArtifactAggregatorIntel HLS Compiler (
i++) and Quartus: reports, HDL, Quartus reports.- VENDER = 'Intel'¶
- ARTIFACTS = None¶
- SYNTH_FLOW_NAME = 'IntelHLSSynthFlow'¶
- ARTIFACT_PATTERNS = None¶
- class hlsfactory.data_packaging.ArtifactsAltera(*args, **kwds)[source]¶
Bases:
enum.Enum- REPORT = 'report'¶
- INTERFACE = 'interface'¶
- HDL = 'hdl'¶
- LOG = 'log'¶
- class hlsfactory.data_packaging.DataAggregatorAltera[source]¶
Bases:
hlsfactory.data_packaging.ArtifactAggregatorAltera HLS IP Gen and Quartus: reports, interface spec, RTL, logs.
- VENDER = 'Altera'¶
- ARTIFACTS = None¶
- SYNTH_FLOW_NAME = 'AlteraHLSSynthFlow'¶
- ARTIFACT_PATTERNS = None¶