Add FuseSoC support for building verilator model
Created by: olofk
This adds FuseSoC support for building and running the verilator model of Ariane (a.k.a. Saturn-V). Before this works, it needs FuseSoC support for the core dependencies (https://github.com/pulp-platform/axi_mem_if/pull/1 and https://github.com/pulp-platform/uvm-components/pull/1)
Once this is done, the FuseSoC support can be tested by first creating a workspace directory and register the libraries by running
fusesoc library add axi_mem_if https://github.com/pulp-platform/axi_mem_if
fusesoc library add uvm-components https://github.com/pulp-platform/uvm-components
fusesoc library add ariane https://github.com/pulp-platform/ariane
or, alternatively if the repos are already on disk and you want to use those instead, add
[library.axi_mem_if]
location = /path/to/repo
[library.uvm-components]
location = /path/to/repo
[library.ariane]
location = /path/to/repo
If all repos exist under a common directory it's enough to add
[library.pulp_cores]
location = /path/to/parent/directory
To list all targets supported by the ariane core, run fusesoc core-info ariane
. Currently the only supported target is verilator. To build and run a simulation in one step, use fusesoc run --target=verilator ariane -p /path/to/elf/file
. To only build, run fusesoc build --target=verilator ariane
. This model can then be run without rebuilding with fusesoc run --run --target=verilator ariane -p /path/to/elf/file