mirror of https://github.com/lnis-uofu/SOFA.git
|
|
||
|---|---|---|
| .github | ||
| ARCH | ||
| BENCHMARK | ||
| DOC | ||
| FPGA1212_QLSOFA_HD_PNR | ||
| FPGA1212_SOFA_CHD_PNR | ||
| FPGA1212_SOFA_HD_PNR | ||
| FPGA1212_SOFA_PLUS_HD_PNR | ||
| HDL | ||
| LIB | ||
| MSIM | ||
| PDK | ||
| SCRIPT | ||
| SDC | ||
| SDF | ||
| SNPS_DC | ||
| SNPS_PT | ||
| SOFA_A | ||
| SynRepoConfig | ||
| TESTBENCH | ||
| openfpga-physical | ||
| skywater-pdk@3b0f27509e | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .readthedocs.yml | ||
| LICENSE | ||
| README.md | ||
| requirements.txt | ||
README.md
SOFA
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