Note
We recommend you to watch a tutorial video about how-to-compile before getting started
html
F9sMRmDewM0
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 tutorial_compile_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
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
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