lint and update readme
diff --git a/README.md b/README.md
index 2714b35..7fa9a25 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,48 @@
 
 ![tiny tapeout](tinytapeout.png)
 
+# Instructions to build
+
+## Fetch all the projects
+
+    ./configure --update-projects
+
+## Configure Caravel
+
+    ./configure --update-caravel
+
+## Build the GDS
+
+    make user_project_wrapper
+
+## Fix PDN
+
+See progress notes below.
+
+Start klayout in edit mode:
+
+    klayout -e -l ~/work/asic-workshop/openlane_summary/klayout_gds.xml gds/user_project_wrapper.gds missing_power_rings.gds
+
+* copy met4, via4, met5 from missing_power_rings.gsd into gds/user_project_wrapper.gds. Save it.
+
+Edit verilog/gl/user_project_wrapper.v and add the missing power ports:
+
+    vdda1,
+    vdda2,
+    vssa1,
+    vssa2,
+    vssd1,
+    vssd2,
+    
+    ...
+    
+    input vdda1;
+    input vdda2;
+    input vssa1;
+    input vssa2;
+    input vssd1;
+    input vssd2;
+
 # Progress notes
 
 * PDN hang issues https://github.com/The-OpenROAD-Project/OpenLane/issues/1173
diff --git a/configure.py b/configure.py
index ac0aeeb..937316b 100755
--- a/configure.py
+++ b/configure.py
@@ -196,7 +196,7 @@
             lefs.append(self.projects.get_macro_lef_name(i))
             gdss.append(self.projects.get_macro_gds_name(i))
 
-        # can't have duplicates or OpenLane crashes at PDN 
+        # can't have duplicates or OpenLane crashes at PDN
         lefs = CaravelConfig.unique(lefs)
         gdss = CaravelConfig.unique(gdss)
 
@@ -278,7 +278,7 @@
             fh.write(post)
 
         # build the user_project_includes.v file - used for blackboxing when building the GDS
-        verilogs = [] 
+        verilogs = []
         for i in range(NUM_PROJECTS):
             verilogs.append(self.projects.get_verilog_include(i))
         verilogs = CaravelConfig.unique(verilogs)