Open
Description
The current approach of symbiflow_cli is to select which tools will be used in the backend based on the part name:
- if
--part hx1k-tq144
,nextpnr-ice40
and tools from theicestorm
project are employed. - if
--part 25k-CSFBGA285
,nextpnr-ecp5
and tools from theprjtrellis
are employed.
In f4pga/f4pga-arch-defs#2225, another approach is suggested, based on specifying a board name and provide a JSON file whit needed options.
My thoughts:
- Specify the board name can be an option, but the decision must be made based on the FPGA part because we will support more boards with less code (or there is something related to the board per se?)
- For devices from Xilinx and VPR, probably we will need more info than for ice40 and nextpnr, but it must be internally used, not to be mandatorily provided by the user (it can be an advanced feature for developers).
Currently, for ice40 and ecp5 devices and nextpnr, which are probably easier than Xilinx devices and VPR, the "magic" is programmatically performed at https://github.com/PyFPGA/symbiflow_cli/blob/main/symbiflow/fpgadb.py I chose this approach because I consider that it provides support for more devices by default. It doesn't depend on options for a particular device, instead, it supports the whole family.
@mithro @mkurc-ant can we work together on it? Feel free to add others.
Metadata
Metadata
Assignees
Labels
No labels