Go to file
tangxifan ce77c25e94
Merge branch 'master' into arch_exploration
2021-04-06 16:34:41 -06:00
.github [Cleanup] Dropped old build.yml 2021-04-05 21:43:23 -06:00
ARCH updated to use timing annotation file 2021-04-06 08:12:34 -06:00
BENCHMARK added Vexriscv task files 2021-04-03 11:04:14 -06:00
DOC Update conf.py 2021-04-05 20:27:07 -06:00
FPGA1212_QLSOFA_HD_PNR [Flow] QLSOFA Updated flow and ARCH 2021-04-05 23:59:21 -06:00
FPGA1212_SOFA_CHD_PNR [Repo] Adding skywater PDK as submodule 2021-04-06 08:58:07 -06:00
FPGA1212_SOFA_HD_PNR [SOFA1212] Updated SOFA Project 2021-04-05 23:29:01 -06:00
HDL correct to sky130_fd_sc_hd__sdfrtp_1 2021-01-26 15:36:33 -08:00
LIB [SRC] Adding custom cell lib 2021-04-03 16:30:31 -06:00
MSIM [MSIM] Bug fix 2020-12-08 10:15:39 -07:00
PDK [HDL] Move verilog wrapper to HDL directory 2020-11-03 09:19:43 -07:00
SCRIPT updated to use timing annotation file 2021-04-06 08:12:34 -06:00
SDC [Doc] Add README to SDC and Testbench directories 2020-11-03 09:27:06 -07:00
SDF [Doc] Add readme to SDF dir 2020-11-08 16:35:10 -07:00
SNPS_DC [DC] Add scripts to automate the synthesis for local encoders 2020-12-08 10:12:57 -07:00
SNPS_PT [Script] Update report timing script for SOFA CHD 2021-04-03 17:15:09 -06:00
SynRepoConfig Added files to sync 2021-01-15 00:10:53 -07:00
TESTBENCH [Testbench] Critical bug fix on Caravel Testbench: Add a sufficient long waiting time for Caravel to finish its I/O configuration 2020-12-18 20:18:02 -07:00
skywater-pdk@3b0f27509e [Repo] Adding skywater PDK as submodule 2021-04-06 08:58:07 -06:00
.gitattributes [Git] Bug fix in lfs file tracking 2020-12-14 13:11:20 -07:00
.gitignore [SOFA1212] Updated SOFA Project 2021-04-05 23:29:01 -06:00
.gitmodules [Repo] Adding skywater PDK as submodule 2021-04-06 08:58:07 -06:00
.readthedocs.yml [Doc] Bug fix in readthedoc setting 2020-11-12 19:41:00 -07:00
LICENSE Initial commit 2020-10-09 14:16:36 -06:00
README.md Update README.md 2021-04-05 16:32:30 -06:00
requirements.txt [CI] Update dependency to sync with OpenFPGA 2020-12-08 16:36:02 -07:00

README.md

SOFA

linux_build Documentation Status

Introduction

SOFA (Skywater Opensource FPGAs) are a series of open-source FPGA IPs using the open-source Skywater 130nm PDK and OpenFPGA framework.

This repository provide the following support for the eFPGA IPs

  • Architecture description file : Users can inspect architecture details and try architecture evalution using the VTR project and the OpenFPGA project.
  • Fabrication-ready GDSII layouts: Users can integrate to their chip designs.
  • Post-layout Verilog Netlists: Users can run HDL simulations on the eFPGA IPs to validate their applications
  • Benchmark suites: An example benchmarking suite with which users can run quick examples on the eFPGA IPs
  • Documentation: Datasheets for each eFPGA IPs downto circuit-level details

Quick Start

To run the user flow using SOFA repository you need to have OpenFPGA installed. Please visit https://github.com/lnis-uofu/OpenFPGA#compilation for OpenFPGA installaton.

export OPENFPGA_PATH=<path_to_openfpga_root>

# Clone the SOFA repository
git clone https://github.com/lnis-uofu/SOFA.git

# ======== Goto specific design ========
# FPGA1212_SOFA_CHD_PNR
# FPGA1212_QLSOFA_HD_PNR
# FPGA1212_SOFA_HD_PNR
cd FPGA1212_QLSOFA_HD_PNR

# ======== Run example OpenFPGA Task ========
make runOpenFPGA

# ======== To view the results ========
cat FPGA1212_QLSOFA_HD_task/latest/task_result.csv

# ======== To view detailed log ========
cat codeopen FPGA1212_QLSOFA_HD_task/latest/vpr_arch/top/MIN_ROUTE_CHAN_WIDTH/**/openfpgashell.log

To bechmark your own design

Copy your verilog file FPGA1212_QLSOFA_HD_task/micro_benchmark directory and modify FPGA1212_QLSOFA_HD_task/config/task_simulation.conf file.

Details of different paramters can be found Configure run_fpga_task

cd FPGA1212_QLSOFA_HD_PNR
vi FPGA1212_QLSOFA_HD_task/config/task_simulation.conf

Documentation

You can find a chip gallery as well as datasheets in the online documentation

Directory Organization

  • Keep this folder clean and organized as follows
    • DOC: documentation of the project
    • ARCH: Architecture XML and other input files which OpenFPGA requires to generate Verilog netlists
    • BENCHMARK: Benchmarks to be tested on the FPGA fabric
    • HDL: Hardware description netlists for the FPGA fabrics
    • SDC: design constraints
    • SCRIPT: Scripts to setup, run OpenFPGA etc.
    • TESTBENCH: Verilog testbenches generated by OpenFPGA
    • PDK: Technology files linked from skywater opensource pdk
    • SNPS_ICC2: workspace of Synopsys IC Compiler 2 Keep a README inside the folder about the ICC2 version and how-to-use.
    • MSIM: workspace of verification using Mentor ModelSim

  • Note:
    • Please ONLY place folders under this directory. README should be the ONLY file under this directory
    • Each EDA tool should have independent workspace in separated directories