Go to file
tangxifan 1f0f13ce0d
Merge pull request #931 from lnis-uofu/patch_update
Pulling refs/heads/master into master
2022-12-03 16:18:09 -08:00
.github [ci] deploy tcl test to ci 2022-12-02 11:46:14 -08:00
cmake [script] added missing paths to include for swig 2022-12-01 13:29:03 -08:00
dev [script] debugging check format script 2022-10-06 19:13:13 -07:00
docker [ci] debugging 2022-11-04 17:59:37 -07:00
docs [doc] update pin table file format for pin direction keywords 2022-10-17 15:32:00 -07:00
libs [engine] fixed syntax errors 2022-11-23 17:06:27 -08:00
openfpga [script] rename shared library name for tcl, so that it is straightforward to load in tcl 2022-12-01 15:59:52 -08:00
openfpga_flow [script] enable eval mode in tcl reg test 2022-12-02 12:07:27 -08:00
vtr-verilog-to-routing@b156bf4df4 Bump vtr-verilog-to-routing from `01e288c` to `b156bf4` 2022-11-22 07:37:16 +00:00
yosys@f109fa3d4c [yosys] update to v0.22 2022-10-21 16:57:00 -07:00
yosys-plugins@6f384227e7 Bump yosys-plugins from `85eee91` to `6f38422` 2022-11-29 07:04:28 +00:00
.clang-format [ci] add C/C++ code format style file 2022-10-06 16:44:05 -07:00
.dockerignore [CiFix] Docker image 2022-08-29 00:40:37 -06:00
.gitignore [script] enable shared library for openfpga 2022-12-01 11:42:25 -08:00
.gitmodules [yosys] update to v0.22 2022-10-21 16:57:00 -07:00
.readthedocs.yml Support SVG in Sphinx Latex building (#220) 2021-02-07 18:53:16 -07:00
CMakeLists.txt [script] enable swig flags when compiling vtr 2022-12-01 15:16:58 -08:00
Dockerfile Added binder temp files to ignore 2022-05-03 14:20:10 -06:00
LICENSE Create LICENSE 2018-06-26 21:52:08 -07:00
Makefile [script] add a shortcut ``make format-all`` 2022-11-21 14:44:27 -08:00
README.md Updated readme 2022-09-23 11:08:44 -06:00
VERSION.md Updated Patch Count 2022-12-04 00:02:55 +00:00
openfpga.sh [test] bug fix 2022-05-22 14:47:25 +08:00
requirements.txt [git] update python requirements to include the formatter 2022-11-21 14:02:16 -08:00

README.md

Getting Started with OpenFPGA

linux build Documentation Status Binder

Version: see VERSION.md

Introduction

The award-winning OpenFPGA framework is the first open-source FPGA IP generator supporting highly-customizable homogeneous FPGA architectures. OpenFPGA provides complete EDA support for customized FPGAs, including Verilog-to-bitstream generation and self-testing verification. OpenFPGA opens the door to democratizing FPGA technology and EDA techniques with agile prototyping approaches and constantly evolving EDA tools for chip designers and researchers.

If this is your first time working with OpenFPGA, we strongly recommend you watch the introduction video about OpenFPGA

A quick overview of OpenFPGA tools can be found here. We also recommend potential users check out the summary of technical capabilities before compiling.

Compilation

A tutorial video about how to compile can be found here

Before starting, we strongly recommend you read the required dependencies at compilation guidelines. It also includes detailed information about the docker image.


Compilation Steps:

# Clone the repository and go inside it
git clone https://github.com/LNIS-Projects/OpenFPGA.git && cd OpenFPGA
make all

Quick Compilation Verification

To quickly verify the tool is well compiled, the user can run the following command from the OpenFPGA root directory.

source openfpga.sh
run-task compilation_verification --debug --show_thread_logs

Python3 and iVerilog v10.1+ are required. GUI will pop up if enabled during compilation.


Supported Operating Systems

We currently target OpenFPGA for:

  1. Ubuntu 18.04
  2. Red Hat 7.5

The tool was tested with these operating systems. It might work with earlier versions and other distributions.

Running with pre-built docker image

# 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

Backward compatibility with OpenFPGA v1.1

OpenFPGA v1.2 is a major upgrade over v1.1, which upgrades the internal VPR engine. The (VPR) architecture files used with v1.1 may not be compatible with v1.2.

You can upgrade your architecture files with script

python3 openfpga_flow/scripts/arch_file_updater.py \
    --input_file ${v1.1_arch_file} \
    --output_file ${v1.2_compatible_arch_file}

Or, If you want to stay with v1.1, the final build was (tag: _OpenFPGA:v1.1.541)

https://github.com/lnis-uofu/OpenFPGA/tree/v1.1.541

or you can download the docker image

docker pull ghcr.io/lnis-uofu/openfpga-master:v1.1.541

Documentation

OpenFPGA's full documentation includes tutorials, descriptions of the design flow, and tool options.

Tutorials

You can find a set of tutorials, with which you get familiar with the tool and use OpenFPGA for various purposes.