Giter Site home page Giter Site logo

pll_auxcell's Introduction

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

OpenFASoC is a project focused on automated analog generation from user specification to GDSII with fully open-sourced tools.This whole flow is to automate the gigantic time taking process of designing Analog systems, which are often used in chips and SoCs. It is led by a team of researchers at the University of Michigan and is inspired from FASoC which sits on proprietary software.

More About FASoC: https://fasoc.engin.umich.edu/

More About OpenFASoC: https://openfasoc.readthedocs.io/en/latest/


PHASE LOCK LOOP (PLL) Generator

Phase Lock Loop (PLL) is a system that consists of three major parts; Phase Frequency Detector (PFD), Charge Pump and Loop Filter, and Voltage Controlled Oscillator (VCO). A PLL is highly preferred because it is a feedback system that compares the output frequency from the input frequency and can survive in a single chip. A PLL is normally used in well-timed clock generator, recovery of signal from noisy communication channel and high performance wireless with additional application in PLL’s parts

PLL

Charge Pump

The charge pump circuit is connected with loop filter and located within PFD and VCO. Charge pump is functioning as a converter for the logic states of the PFD into an analog signal in order to control the VCO. The frequency of the VCO is controlled by the output signal of the charge pump circuit. The output voltage of the charge pump circuit must be held at a constant voltage, when PLL locks in some frequency. The charge pump consists of two switched current source that pump charge in or out of the loop filter according to two logical inputs.

CP

Phase frequency detector

PFD

Frequency Divider

FDD

VCO

VCO

MY TASK: Generating AUX CELLS for OpenFASoC Flow

Aux Cells are part of big analog design which cannot be implemented with exisiting standerd cell in library. For different designs we have different aux cells. We have to manually create these.

AUX CELL GENERATION FOR - OpenFASoC(Fully Open-Source Autonomous SoC)

GENERATING .lef, .gds for Aux cells

Discription : In Open FASoC Flow to generate a automated Analog design, few auxilaury cells(.lef,.gds) are required to be created which cannot be implemented with existing library cells (like Header and SLC in temp_sence_gen). To generate these .lef and .gds files of AUX cells we use ALIGN.

Reduired inputs from previous step of flow:

  • SCHEMATIC and SPECIFICATION of AUX cell to be generated. (usually AUX cell contains 6 to 12 transistors)

First Step

  • Depending upon given SCHEMATIC and SPECIFICATION of AUX cell, a SPICE Netlist will be created with .sp file extension.

Using ALIGN: Analog Layout, Intelligently Generated from Netlists:

About:

ALIGN is an open source automatic layout generator for analog circuits jointly developed under the DARPA IDEA program by the University of Minnesota, Texas A&M University, and Intel Corporation.

The goal of ALIGN (Analog Layout, Intelligently Generated from Netlists) is to automatically translate an unannotated (or partially annotated) SPICE netlist of an analog circuit to a GDSII layout. The repository also releases a set of analog circuit designs.

The ALIGN flow includes the following steps:

Circuit annotation creates a multilevel hierarchical representation of the input netlist. This representation is used to implement the circuit layout in using a hierarchical manner. Design rule abstraction creates a compact JSON-format represetation of the design rules in a PDK. This repository provides a mock PDK based on a FinFET technology (where the parameters are based on published data). These design rules are used to guide the layout and ensure DRC-correctness. Primitive cell generation works with primitives, i.e., blocks at the lowest level of design hierarchy, and generates their layouts. Primitives typically contain a small number of transistor structures (each of which may be implemented using multiple fins and/or fingers). A parameterized instance of a primitive is automatically translated to a GDSII layout in this step. Placement and routing performs block assembly of the hierarchical blocks in the netlist and routes connections between these blocks, while obeying a set of analog layout constraints. At the end of this step, the translation of the input SPICE netlist to a GDSII layout is complete.

Installing ALIGN:

Prerequisites

  • gcc >= 6.1.0 (For C++14 support)
  • python >= 3.7

Use the following commands to install ALIGN tool.

export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
git clone https://github.com/ALIGN-analoglayout/ALIGN-public
cd ALIGN-public

#Create a Python virtualenv
python -m venv general
source general/bin/activate
python -m pip install pip --upgrade

# Install ALIGN as a USER
pip install -v .

# Install ALIGN as a DEVELOPER
pip install -e .

pip install setuptools wheel pybind11 scikit-build cmake ninja
pip install -v -e .[test] --no-build-isolation
pip install -v --no-build-isolation -e . --no-deps --install-option='-DBUILD_TESTING=ON'

Making ALIGN Portable to Sky130 tehnology

Clone the following Repository inside ALIGN-public directory

git clone https://github.com/ALIGN-analoglayout/ALIGN-pdk-sky130

move SKY130_PDK folder to /home/ritesh/Documents/GitHub/OpenFASoC/AUXCELL/ALIGN-public/pdks

Running ALIGN TOOL

Everytime we start running tool in new terminal run following commands.

python -m venv general
source general/bin/activate

Commands to run ALIGN (goto ALIGN-public directory)

mkdir work
cd work

General syntax to give inputs

schematic2layout.py <NETLIST_DIR> -p <PDK_DIR> -c

FLOW

Creating a Python virtualenv

PYTHON

Running design

ALIGN1

ALIGN2

Generated .lef and .gds

GDS

GDS

LEF

LEF

FUTURE WORK

  1. Pre-layout simulation is not matching with Post-layout simulation.
  2. ALIGN PDK are been used in the design, this encounters an issue at OpenFasoc.

Acknowledgement

  • Kunal Ghosh, Director, VSD Corp. Pvt. Ltd.
  • Madhav Rao, Professor, IIIT-Bangalore.
  • Nanditha Rao, Professor, IIIT-Bangalore.
  • Vasanthi D R, PhD Scholar, International Institute of Information Technology, Bangalore

Contact Information

REFERENCE

pll_auxcell's People

Contributors

riteshlalwani avatar

Watchers

 avatar

Forkers

sritam519

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.