hlsfactory.flow_catapult¶
Siemens Catapult HLS synthesis flow.
Module Contents¶
Classes¶
Synthesis metrics extracted from a Catapult RTL report. |
|
Run a design’s Catapult synthesis Tcl script and collect its area report. |
Functions¶
Resolve the Catapult executable from an override, environment, or PATH. |
|
Find the Catapult |
|
Find the Catapult |
|
Data¶
API¶
- hlsfactory.flow_catapult.HLSFACTORY_CATAPULT_PATH_ENV_VAR = 'HLSFACTORY_CATAPULT_PATH'¶
- hlsfactory.flow_catapult._NUMBER_PATTERN = '(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?\\d+)?'¶
- hlsfactory.flow_catapult._TOTAL_AREA_PATTERNS = ()¶
- hlsfactory.flow_catapult._TOTAL_AREA_BREAKDOWN_PATTERN = 'compile(...)'¶
- hlsfactory.flow_catapult.get_catapult_bin(catapult_bin: str | pathlib.Path | None = None) str[source]¶
Resolve the Catapult executable from an override, environment, or PATH.
HLSFACTORY_CATAPULT_PATHmay name the executable directly or an installation directory containingbin/catapultorMgc_home/bin/catapult.
- hlsfactory.flow_catapult.auto_find_synth_report(dir_path: pathlib.Path) pathlib.Path[source]¶
Find the Catapult
rtl.rptgenerated belowdir_path.
- hlsfactory.flow_catapult.auto_find_cycle_report(dir_path: pathlib.Path) pathlib.Path[source]¶
Find the Catapult
cycle.rptgenerated belowdir_path.
- hlsfactory.flow_catapult._parse_post_assignment_area(report_text: str, label: str) float | None[source]¶
- class hlsfactory.flow_catapult.DesignHLSSynthData[source]¶
Synthesis metrics extracted from a Catapult RTL report.
- total_area: float = None¶
- tool_version: str | None = None¶
- clock_signal: str | None = None¶
- clock_edge: str | None = None¶
- clock_period: float | None = None¶
- clock_period_ns: float | None = None¶
- clock_uncertainty_ns: float | None = None¶
- clock_allocation_percent: float | None = None¶
- real_operation_count: int | None = None¶
- latency_cycles: int | None = None¶
- latency_seconds: float | None = None¶
- throughput_cycles: int | None = None¶
- throughput_seconds: float | None = None¶
- reset_length_cycles: int | None = None¶
- initiation_interval_cycles: int | None = None¶
- combinational_area: float | None = None¶
- raw_area: float | None = None¶
- sequential_area: float | None = None¶
- total_area_score: float | None = None¶
- total_register_area: float | None = None¶
- datapath_area: float | None = None¶
- mux_area: float | None = None¶
- functional_unit_area: float | None = None¶
- logic_area: float | None = None¶
- buffer_area: float | None = None¶
- memory_area: float | None = None¶
- rom_area: float | None = None¶
- register_area: float | None = None¶
- fsm_area: float | None = None¶
- fsm_register_area: float | None = None¶
- fsm_combinational_area: float | None = None¶
- critical_path_delay_ns: float | None = None¶
- critical_path_slack_ns: float | None = None¶
- classmethod parse_from_synth_report_file(report_file: pathlib.Path, cycle_report_file: pathlib.Path | None = None) hlsfactory.flow_catapult.DesignHLSSynthData[source]¶
Parse timing, latency, throughput, and area synthesis metrics.
- class hlsfactory.flow_catapult.CatapultHLSSynthFlow(catapult_bin: str | pathlib.Path | None = None, log_output: bool = False, log_execution_time: bool = True)[source]¶
Bases:
hlsfactory.framework.ToolFlowRun a design’s Catapult synthesis Tcl script and collect its area report.
Initialization
- name = 'CatapultHLSSynthFlow'¶
- execute(design: hlsfactory.framework.Design, timeout: float | None = None) list[hlsfactory.framework.Design][source]¶
- _log_execution_time(design_dir: pathlib.Path, start_time: float, status: hlsfactory.utils.ExecutionDataStatus = ExecutionDataStatus.SUCCESS, error_message: str | None = None) None[source]¶
- hlsfactory.flow_catapult.__all__ = ['CatapultHLSSynthFlow', 'DesignHLSSynthData', 'HLSFACTORY_CATAPULT_PATH_ENV_VAR', 'auto_find_cycle_...¶