How to Compile¶
Note
We recommend you to watch a tutorial video about how-to-compile before getting started
General Guidelines¶
OpenFPGA uses CMake to generate the Makefile scripts. In general, please follow the steps to compile
git clone https://github.com/LNIS-Projects/OpenFPGA.git
cd OpenFPGA
make all
Note
OpenFPGA requires gcc/g++ version >5
Note
cmake3.12+ is recommended to compile OpenFPGA with GUI
Note
Recommend using make -j<int>
to accelerate the compilation, where <int>
denotes the number of cores to be used in compilation.
Note
VPR’s GUI requires gtk-3, and can be enabled with cmake .. -DVPR_USE_EZGL=on
Quick Compilation Verification
Note
Ensure that you install python dependences in Dependencies.
To quickly verify the tool is well compiled, users can run the following command from OpenFPGA root repository
python3 openfpga_flow/scripts/run_fpga_task.py compilation_verification --debug --show_thread_logs
Dependencies¶
Full list of dependencies can be found at install_dependencies_build. In particular, OpenFPGA requires specific versions for the following dependencies:
- cmake
version >3.12 for graphical interface
- iverilog
version 10.1+ is required to run Verilog-to-Verification flow
- python dependencies
python packages are also required:
python3 -m pip install -r requirements.txt
Running with the docker image¶
Users can skip the traditional installation process by using the Dockerized version of the OpenFPGA tool. The OpenFPGA project maintains the docker image/Github package of the latest stable version of OpenFPGA in the following repository openfpga-master. This image contains precompiled OpenFPGA binaries with all prerequisites installed.
# To get the docker image from the repository,
docker pull ghcr.io/lnis-uofu/openfpga-master:latest
# To invoke openfpga_shell
docker run -it ghcr.io/lnis-uofu/openfpga-master:latest openfpga/openfpga bash
# To run the task that already exists in the repository.
docker run -it ghcr.io/lnis-uofu/openfpga-master:latest bash -c "source openfpga.sh && run-task compilation_verification"
# To link the local directory wihth docker
mkdir work
docker run -it -v work:/opt/openfpga/ ghcr.io/lnis-uofu/openfpga-master:latest bash
# Inside container
source openfpga.sh
cd work
create_task _my_task yosys_vpr