Skip to content

Data driven execution #9

Open
Open
@rodrigomelo9

Description

@rodrigomelo9

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 the icestorm project are employed.
  • if --part 25k-CSFBGA285, nextpnr-ecp5 and tools from the prjtrellis 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions