byuccl / bfasst

Tools for FPGA Assurance Flows
Apache License 2.0
12 stars 4 forks source link

cli flow names #388

Closed KeenanRileyFaulkner closed 7 months ago

KeenanRileyFaulkner commented 7 months ago

Fixes #382, Fixes #362 - fixed cli flow conventions and help message

jgoeders commented 7 months ago

@KeenanRileyFaulkner Sorry, for the tools list, I wasn't very clear. I was thinking more a list of external tools that it requires, not our Tool instances.

For example, something like this:

external_tools: rapidwright fasm2bels vivado

We could then use this to run installers in CI

KeenanRileyFaulkner commented 7 months ago

Only the ones that are submodules, right?

jgoeders commented 7 months ago

Only the ones that are submodules, right?

Yes, that's the minimum we need to make the CI work.

But having something like vivado listed might not be a bad idea. While we need a way to install third party tools from CI, it might be nice to later on have some functionality that verifies installation of required tools.

Supposing we use makefile targets, then it might look like this:

install_fasm2bels:
    ...

check_install_fasm2bels:
    ...

check_install_vivado:
    ...

For this reason it might be worthwhile to list tools like vivado that aren't submodules.

KeenanRileyFaulkner commented 7 months ago

@jgoeders @dallinjdahl @reillymck Of note, but not a huge deal... this f2b error has reared its ugly head again.

python scripts/run.py VivadoPhysNetlistCmp byu/alu
[7/10] convert /home/keenanrf/research/bfasst/build/byu/alu/xray/alu.fasm to netlist
FAILED: /home/keenanrf/research/bfasst/build/byu/alu/xray/alu_reversed.v /home/keenanrf/research/bfasst/build/byu/alu/xray/alu_reversed.xdc 
cd /home/keenanrf/research/bfasst/third_party/fasm2bels; /home/keenanrf/research/bfasst/third_party/fasm2bels/env/conda/envs/f4pga_xc_fasm2bels/bin/python3 -mfasm2bels --connection_database xc7a200tsbg484-1_db --db_root /home/keenanrf/research/bfasst/third_party/fasm2bels/third_party/prjxray-db/artix7 --part xc7a200tsbg484-1 --fasm_file /home/keenanrf/research/bfasst/build/byu/alu/xray/alu.fasm --verilog_file /home/keenanrf/research/bfasst/build/byu/alu/xray/alu_reversed.v --xdc_file /home/keenanrf/research/bfasst/build/byu/alu/xray/alu_reversed.xdc --input_xdc /home/keenanrf/research/bfasst/build/byu/alu/synth/alu.xdc
Traceback (most recent call last):
  File "/home/keenanrf/research/bfasst/third_party/fasm2bels/env/conda/envs/f4pga_xc_fasm2bels/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/keenanrf/research/bfasst/third_party/fasm2bels/env/conda/envs/f4pga_xc_fasm2bels/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/keenanrf/research/bfasst/third_party/fasm2bels/fasm2bels/__main__.py", line 23, in <module>
    main()
  File "/home/keenanrf/research/bfasst/third_party/fasm2bels/fasm2bels/fasm2bels.py", line 480, in main
    top.maybe_add_pip(set_feature.feature)
  File "/home/keenanrf/research/bfasst/third_party/fasm2bels/fasm2bels/models/verilog_modeling.py", line 1926, in maybe_add_pip
    sink_wire = self.maybe_get_wire(parts[0], parts[2])
  File "/home/keenanrf/research/bfasst/third_party/fasm2bels/fasm2bels/database/connection_db_utils.py", line 34, in maybe_get_wire
    phy_tile_pkey, tile_type_pkey = get_tile_type_pkey(tile)
  File "/home/keenanrf/research/bfasst/third_party/fasm2bels/fasm2bels/database/connection_db_utils.py", line 28, in get_tile_type_pkey
    c.execute('SELECT pkey, tile_type_pkey FROM phy_tile WHERE name = ?',
sqlite3.OperationalError: no such table: phy_tile
[8/10] vivado /home/keenanrf/research/bfasst/build/byu/alu/vivado_phys_netlist/checkpoint_to_v.tcl
ninja: build stopped: subcommand failed.
ERROR: Ninja failed with return code 1 

After a lot of testing and trying to figure out why it was happening, I tested it on my work machine (I'd been working from home). The ninja file was the same on both machines, but the work one wasn't failing. So I removed and reinstalled the f2b submodule on my machine at home and this error went away.