Skip to content

idea-fasoc/OpenFASOC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

595bb87 · Feb 19, 2025
Oct 4, 2024
Jun 6, 2024
Aug 22, 2024
Jan 18, 2025
Sep 19, 2022
Nov 9, 2023
Apr 21, 2022
May 25, 2024
Sep 19, 2022
Apr 21, 2022
Apr 28, 2022
Jun 8, 2024
Mar 24, 2021
Aug 12, 2024
Jun 7, 2024
Nov 15, 2023
Apr 27, 2022
Apr 23, 2022
Apr 6, 2024
Jun 8, 2024
Apr 21, 2022
Apr 6, 2024
Sep 1, 2022
Jun 7, 2024

Repository files navigation

OpenFASoC

OpenFASoC: Fully Open-Source Autonomous SoC Synthesis using Customizable Cell-Based Synthesizable Analog Circuits

https://readthedocs.org/projects/openfasoc/badge/?version=latest

OpenFASOC is focused on open-source automated analog generation from user specification to GDSII with fully open-sourced tools. This project is led by a team of researchers at the University of Michigan and is inspired by FASoC, that sits on proprietary tools. (See more about FaSoC at website)

Contact: mehdi@umich.edu

Getting Started

There are two methods to install the prerequisites to use OpenFASOC generators:

  1. Express Installation

Install all the prerequisites using the dependencies.sh script provided in the home location of this project (where this README.rst file is found). Supports CentOS7, Ubuntu 20.04 LTS and Ubuntu 22.04 LTS.

$ sudo ./dependencies.sh

For more info on getting-started, please refer to "Getting Started" section's express install section

  1. Containerized Installation

This method uses Docker to build a custom image, on top of which a container is created, in which the generators can be run. This allows the user to create a persistent snapshot of an environment where are tools are installed. Note: If you do not have Docker Installed, refer to the instructions here

$ cd docker/conda
$ sudo docker build -t <image_name> .
$ cd ../..
$ sudo docker run -v $(pwd):$(pwd) -w $(pwd) --name <container_name> -it <image_name>
$ pip install -r requirements.txt

Where <image_name> is the name that you want to tag the built image with and <container_name> is the name of the container that will be run. This container will use the OpenFASOC directory as the working directory and bind mount it to the container's present working directory.

  1. Manual Install

Below are the tool requirements along with their currently support versions that are updated regularly upon testing againsts the generators.

  1. Magic (version:8.3.464)

  2. Netgen (version:1.5.272)

  3. Klayout (version:0.28.17-1)

    • Please use this command to build preferably: ./build.sh -option '-j8' -noruby -without-qt-multimedia -without-qt-xml -without-qt-svg
  4. Yosys (version:0.38+92)

  5. OpenROAD (version:2.0_12381)

  6. Open_pdks (version:1.0.471)

  • open_pdks is required to run drc/lvs check and the simulations
  • After open_pdks is installed, please update the open_pdks key in common/platform_config.json with the installed path, down to the sky130A folder
  1. Xyce (version: 7.6)
  • Once the Xyce installation is complete, please make sure to add Xyce binary to $PATH environment variable.

Other notice:

  • Python 3.10 is used in this generator.
  • All the required tools need to be loaded into the environment before running this generator.
  • Glayout is now available as a python package and can be installed using pip install glayout

Generators

Generator Technology nodes Supported Documentation
Temperature Sensor sky130hd Yes Temperature Sensor Docs
Low dropout Voltage Regulator (LDO) sky130hvl Yes LDO Voltage Regulator Docs
Cryogenic sky130hs, sky130hd, sky130hvl No (In-progress) Cryogenic Docs
Glayout sky130, gf180 Yes Glayout Docs

Tapeouts and testing setup

Please refer to our testing setup in our tapeouts and testing setup section.

Citation

If you find this tool useful in your research, we kindly request to cite our papers: