From 74459999e047cbfebdd0a9b6b7bdec1013cf5c14 Mon Sep 17 00:00:00 2001
From: Priyanka Raina <praina@stanford.edu>
Date: Tue, 1 Dec 2020 11:14:39 -0800
Subject: [PATCH] Add readme.

---
 README.md | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 README.md

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..2edd8fa
--- /dev/null
+++ b/README.md
@@ -0,0 +1,45 @@
+# Overview
+This repository runs the following pipecleaner designs through a digital physical design flow using Design Compiler and Innovus with the SkyWater open source 130nm PDK.
+*  GcdUnit - computes the greatest common divisor function, consists of 100-200 gates
+*  SramWrapper - uses an OpenRAM generated SRAM (to be added soon)
+
+# Setup
+To run this flow, please install the following dependencies first:
+
+* `skywater-pdk` 
+
+Get SkyWater PDK:
+```
+git clone https://github.com/google/skywater-pdk.git
+cd skywater-pdk
+```
+The cell libraries are in submodules that need to be checked out independently:
+```
+git submodule update --init libraries/sky130_fd_sc_hd/latest
+```
+To create liberty files, go into top-level and do:
+```
+make timing
+```
+
+* `mflowgen` - This is a tool to create ASIC design flows in a modular fashion.
+Follow the setup steps at https://github.com/mflowgen/mflowgen.
+
+* `skywater-130nm-adk` - This repo has some scripts that convert the SkyWater PDK into the format that mflowgen expects.
+
+# Using the Pipecleaners
+
+First, make sure you update various install paths the `setup.bashrc` file. Then source it.
+
+Next, enter into the build directory of the pipecleaner you want to run, and run the following:
+
+`$MFLOWGEN_HOME/configure --design ../design/`
+
+# 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 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
-- 
GitLab