Giter VIP home page Giter VIP logo

iadc's Introduction

Overview

This is the EE372 VLSI Design Project at Stanford University. The chip is an incremental Delta-Sigma ADC in Skywater 130nm CMOS technology.

Chip System-Level Block Diagram sys_blk

Specifications

Specification Value
ENOB 12 bits
SQNR 74 dB
Conversion Rate 10 KSPS
OSR 512
Sampling Rate 5.12 MHz
VDD 1.8 V
Input Range 90% FS
Input CM VDD/2

Setup

To run this flow, please install the following dependencies:

  1. skywater-pdk - This is the Skywater SKY130 PDK.

  2. open_pdks - This system helps install the Skywater foundry provided PDK for open-source EDA tools.

  3. skywater-130nm-adk - This repo has some scripts that convert the SkyWater PDK into the format that mflowgen expects. The files that are in skywater-130nm-adk/view-standard are the ones that mflowgen will use.

  4. mflowgen - This is a tool to create ASIC design flows in a modular fashion.

For FarmShare servers, the PDKs should be available under /farmshare/home/classes/ee/372/PDKs/, but mflowgen needs to be installed. Make sure to update the various paths in the setup.csh file after installing all required dependencies.

Running the Flow

The run procedure for analog and digital flows are different. For both flows, first enter the CentOS container and source the setup file.

source setup.csh

Analog

For schematic tests, enter the schematic testbench directory

cd ./verification/analog_modulator

Open a test using XSCHEM by running

xschem <testbench_name>.sch

Generate a netlist, run NGSPICE simulation, and view the waveforms by clicking the buttons on the top-right corner of the XSCHEM GUI.

For post-layout simulation, this was done using Cadence Virtuoso and Spectre simulator with the closed-source S130 PDK. To run these simulations, the LVS extracted SPICE netlist and layout GDS need to be imported into Cadence Virtuoso. There are several changes that need to be performed to the netlist and layout. See verification/post_layout_sim_readme.txt for details.

Digital

To run the digital flow, create a virtual environment (only needs to be done once)

python -m venv venv

and enter this virtual environment (to exit, use deactivate)

source venv/bin/activate.csh

Next, enter the build directory and run the following

mkdir -p design/digital_filter/build && cd design/digital_filter/build
mflowgen run --design ../design/

Now, if you run make status you will see the status of all the steps in the flow. Use the following make targets to run and debug each step. For example to run step number N do:

make N

Helpful make targets:

  • make list - list all the nodes in the graphs and their corresponding step number
  • make status - list the build status of all the steps
  • make graph - generates a PDF of the graph
  • make N - runs step N
  • make debug-N - pulls up GUI for the appropriate tool for debugging (at the output of step N)
  • make clean-N - removes the folder for step N, and sets the status of steps [N,) to build
  • make clean-all - removes folders for all the steps
  • make runtimes - lists the runtime for each step

Contact

Project Snapshots

Chip Top-Level Layout chip_top_layout

Chip ADC-Core Layout chip_adc_core

Silicon Bringup eng_sample

Silicon Testing: Modulator Output testchip_mod_output

Silicon Testing: Digital Output Parallel Interface testchip_parallel_out

Silicon Testing: Digital Output SPI testchip_spi1

Silicon Testing: Digital Output SPI (enlarged) testchip_spi2

iadc's People

Contributors

yaqingxia avatar

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.