Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor and clean up the build system #125

Open
acomodi opened this issue May 26, 2020 · 4 comments
Open

Refactor and clean up the build system #125

acomodi opened this issue May 26, 2020 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@acomodi
Copy link
Contributor

acomodi commented May 26, 2020

Currently, there are two things that could be made better, to have a cleaner build system for the tests:

  1. Restructure the ways in which the constraints files are selected to run the exhaust script. This would avoid files duplication.
  2. Allow picking to have a dependency structure, so that a test is performed using another one's results: this comes in hand when running, for instance, the fasm2bels flow, in which data generated from the vpr flow could be re-used, allowing us to have separate fasm2bels tool, which is not incorporated within the VPR flow.
@acomodi acomodi added this to Flow related in FPGA tool perf project May 26, 2020
@acomodi acomodi self-assigned this May 26, 2020
@acomodi
Copy link
Contributor Author

acomodi commented May 26, 2020

To solve 1 the possible way forward is:

  • have the projects jsons define which toolchains are supported, and, for each toolchain, a board-related set of constraints file.

E.g.:

{
    "srcs": [
        "src/blinky/blinky.v"
        ],
    "top": "top",
    "name": "blinky",
    "clocks": {
        "clk_i": 10.0
    },
   "toolchains": {
       "vpr": ["src/blinky/constr/arty.pcf", "src/blinky/constr/basys3.pcf"],
       "vpr-fasm2bels": ["src/blinky/constr/arty.pcf", "src/blinky/constr/basys3.pcf"],
       "nextpnr-xilinx": ["src/blinky/constr/arty.xdc", "src/blinky/constr/basys3.xdc"],
       "vivado": ["src/blinky/constr/arty.xdc", "src/blinky/constr/basys3.xdc"]
   }
}
  • This also requires a new file (probably json) that holds boards specific definition, so that information on family, device and package can be queried:

E.g.:

{
    "arty": {
         "family": "xc7",
         "device": "a35t",
         "package": "csg324-1"
    },
    "...": {}
}
  • Refactor how the task is created based on the above information

@acomodi acomodi mentioned this issue May 26, 2020
@mithro
Copy link
Collaborator

mithro commented Jun 25, 2020

@acomodi - What is the status here?

@mithro mithro added the enhancement New feature or request label Jun 25, 2020
@acomodi
Copy link
Contributor Author

acomodi commented Jun 25, 2020

@mithro the first issue is solved.

The lower priority one, but non-trivial with the current test run system, is to be able to get existing build outputs to use for other build runs (e.g. fasm2bels using vpr outputs, so that P&R step do not need to be performed once again).

@mithro
Copy link
Collaborator

mithro commented Jun 25, 2020

Maybe that should be split into a new github issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
FPGA tool perf project
  
Flow related
Development

No branches or pull requests

2 participants