Skip to content
Snippets Groups Projects
Commit d6ca2e2e authored by Yaman Umuroglu's avatar Yaman Umuroglu
Browse files

[Build] better resolution for unspec'd Vitis platform for Alveo

parent cc648647
No related branches found
No related tags found
No related merge requests found
......@@ -34,7 +34,7 @@ from enum import Enum
from typing import Any, List, Optional
from finn.transformation.fpgadataflow.vitis_build import VitisOptStrategy
from finn.util.basic import alveo_part_map, pynq_part_map
from finn.util.basic import alveo_default_platform, alveo_part_map, pynq_part_map
class ShellFlowType(str, Enum):
......@@ -257,6 +257,8 @@ class DataflowBuildConfig:
#: Which Vitis platform will be used.
#: Only relevant when `shell_flow_type = ShellFlowType.VITIS_ALVEO`
#: e.g. "xilinx_u250_xdma_201830_2"
#: If not specified but "board" is specified, will use the FINN
#: default (if any) for that Alveo board
vitis_platform: Optional[str] = None
#: Path to JSON config file assigning each layer to an SLR.
......@@ -356,6 +358,17 @@ class DataflowBuildConfig:
}
return name_to_strategy[self.vitis_opt_strategy]
def _resolve_vitis_platform(self):
if self.vitis_platform is not None:
return self.vitis_platform
elif (self.vitis_platform is None) and (self.board is not None):
return alveo_default_platform[self.board]
else:
raise Exception(
"Could not resolve Vitis platform:"
" need either board or vitis_platform specified"
)
def _resolve_verification_steps(self):
if self.verify_steps is None:
return []
......
......@@ -644,7 +644,7 @@ def step_synthesize_bitfile(model: ModelWrapper, cfg: DataflowBuildConfig):
VitisBuild(
cfg._resolve_fpga_part(),
cfg.synth_clk_period_ns,
cfg.vitis_platform,
cfg._resolve_vitis_platform(),
strategy=cfg._resolve_vitis_opt_strategy(),
enable_debug=cfg.enable_hw_debug,
floorplan_file=cfg.vitis_floorplan_file,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment