github action wip
diff --git a/.github/workflows/tinytapeout.yaml b/.github/workflows/tinytapeout.yaml
new file mode 100644
index 0000000..510af36
--- /dev/null
+++ b/.github/workflows/tinytapeout.yaml
@@ -0,0 +1,82 @@
+name: tinytapeout
+# either manually started, or on a schedule
+on: [ push, workflow_dispatch, pull_request ]
+jobs:
+  multi_tool:
+    env:
+        OPENLANE_ROOT:  /home/runner/openlane
+        PDK_ROOT:       /home/runner/pdk
+        PDK:            sky130B
+    # ubuntu
+    runs-on: ubuntu-latest
+    steps:
+    # need the repo checked out
+    - name: checkout repo
+      uses: actions/checkout@v2
+
+    # build pdk
+    - name: pdk & openlane & precheck
+      run: |
+        make setup
+        make precheck
+
+    # need python
+    - name: setup python
+      uses: actions/setup-python@v2
+      with:
+        python-version: '3.7.7'
+        cache: 'pip'
+    - run: pip install -r requirements.txt
+
+    # install riscv gcc
+#    - name: riscv gcc
+#      run: |
+#        cd $HOME
+#        wget https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2020.04.1-x86_64-linux-ubuntu14.tar.gz
+#        tar -xzf riscv64-unknown-elf-gcc-8.3.0-2020.04.1-x86_64-linux-ubuntu14.tar.gz
+
+    # pwd
+    - name: pwd
+      run: |
+        pwd # /home/runner/work/zero_to_asic_mpw6/zero_to_asic_mpw6
+
+    # uncompress
+    - name: uncompress gds
+      run: | 
+        make uncompress
+
+    # install oss fpga tools
+#    - name: install oss-cad-suite
+#      uses: YosysHQ/setup-oss-cad-suite@v1
+#      with:
+#          python-override: true # don't want to use that python
+#    - run: | 
+#        yosys --version
+#        iverilog -V
+
+    # fetch the repos
+    - name: fetch all
+      run: python ./configure.py --update-projects
+
+    # install projects
+    - name: configure
+      run: python ./configure.py --update-caravel
+
+    - name: user project wrapper GDS
+      run: make user_project_wrapper
+
+    - name: precheck
+      run: make run-precheck
+
+    # archive the gds and final report for the user project wrapper
+    - name: Archive Wrapper GDS
+      uses: actions/upload-artifact@v2
+      with:
+          name: Wrapper GDS
+          path: gds/user_project_wrapper.gds
+
+    - name: Archive Wrapper Signoff
+      uses: actions/upload-artifact@v2
+      with:
+          name: Wrapper Report
+          path: openlane/user_project_wrapper/runs/user_project_wrapper/reports/final_summary_report.csv
diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml
deleted file mode 100644
index fd56dd9..0000000
--- a/.github/workflows/user_project_ci.yml
+++ /dev/null
@@ -1,224 +0,0 @@
-name: CI
-
-on:
-  # Runs on Every Push
-  push:
-  # Runs on Pull Requests
-  pull_request:
-  workflow_dispatch:
-
-jobs:
-  pdk:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-
-      - name: Set up QEMU
-        uses: docker/setup-qemu-action@v1
-
-      - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@v1
-
-      - name: Export PDK ROOT
-        run: echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV
-      
-      - name: Export OPENLANE ROOT
-        run: echo "OPENLANE_ROOT=/home/runner/work/caravel_user_project/openlane" >> $GITHUB_ENV
-
-      - name: Install dependencies
-        run: |
-          sudo mkdir -p ${{ env.PDK_ROOT }}
-          sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
-          make install
-          make openlane
-          make pdk-with-volare
-
-      - name: Tarball PDK
-        run: |
-          tar -cf /tmp/pdk.tar -C $PDK_ROOT .
-
-      - name: Upload PDK Tarball
-        uses: actions/upload-artifact@v2
-        with:
-          name: pdk-tarball
-          path: /tmp/pdk.tar
-
-
-  mpw_precheck:
-    timeout-minutes: 720
-    runs-on: ubuntu-latest
-    needs: [pdk]
-    steps:
-      - uses: actions/checkout@v2
-
-      - name: Set up QEMU
-        uses: docker/setup-qemu-action@v1
-
-      - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@v1
-
-      - name: Export PDK ROOT
-        run: |
-          echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV
-      
-      - name: Export PDKPATH
-        run: echo "PDKPATH=/home/runner/work/pdk/sky130A" >> $GITHUB_ENV
-
-      - name: Download PDK Tarball
-        uses: actions/download-artifact@v2
-        with:
-          name: pdk-tarball
-          path: /tmp
-
-      - name: Unpack PDK Tarball
-        run: |
-          sudo mkdir -p ${{ env.PDK_ROOT }}
-          sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
-          tar -xf /tmp/pdk.tar -C $PDK_ROOT .
-      - name: Run MPW-Precheck
-        run: |
-          export INPUT_DIRECTORY=$(pwd)
-          export PRECHECK_ROOT=$INPUT_DIRECTORY/mpw_precheck
-          export OUTPUT_DIRECTORY=$INPUT_DIRECTORY/mpw_precheck_result
-          export OUTPUT=$OUTPUT_DIRECTORY/logs/precheck.log
-          export PDKPATH=$PDK_ROOT/sky130A
-
-          git clone --depth=1 -b mpw-7a https://github.com/efabless/mpw_precheck.git
-
-          docker run -v "$PRECHECK_ROOT":"$PRECHECK_ROOT" -v "$INPUT_DIRECTORY":"$INPUT_DIRECTORY" -v "${{ env.PDK_ROOT }}":"${{ env.PDK_ROOT }}" -e INPUT_DIRECTORY="$INPUT_DIRECTORY" -e PDK_ROOT="${{ env.PDK_ROOT }}" -e PDKPATH="${{ env.PDKPATH }}" -u $(id -u "$USER"):$(id -g "$USER") efabless/mpw_precheck:latest bash -c "cd $PRECHECK_ROOT; python3 mpw_precheck.py --input_directory $INPUT_DIRECTORY --pdk_path ${{ env.PDKPATH }} --output_directory $OUTPUT_DIRECTORY license makefile consistency xor magic_drc klayout_beol klayout_feol klayout_met_min_ca_density klayout_offgrid klayout_pin_label_purposes_overlapping_drawing klayout_zeroarea"
-
-          cnt=$(grep -c "All Checks Passed" "$OUTPUT")
-          if ! [[ $cnt ]]; then cnt=0; fi
-          if [[ $cnt -eq 1 ]]; then exit 0; fi
-          exit 2
-      - name: upload failure logs
-        if: failure()
-        uses: actions/upload-artifact@v2
-        with:
-          name: error
-          path: |
-            /home/runner/work/caravel_user_project/caravel_user_project/mpw_precheck_result/logs/*
-
-  user_project_flow_sky130A:
-    timeout-minutes: 720
-    runs-on: ubuntu-latest
-    needs: [pdk]
-    steps:
-      - uses: actions/checkout@v2
-
-      - name: Set up QEMU
-        uses: docker/setup-qemu-action@v1
-
-      - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@v1
-
-      - name: Export PDK ROOT
-        run: echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV
-
-      - name: Export PDK
-        run: echo "PDK=sky130A" >> $GITHUB_ENV
-
-      - name: Export OPENLANE ROOT
-        run: echo "OPENLANE_ROOT=/home/runner/work/caravel_user_project/openlane" >> $GITHUB_ENV
-
-      - name: Download PDK Tarball
-        uses: actions/download-artifact@v2
-        with:
-          name: pdk-tarball
-          path: /tmp
-
-      - name: Unpack PDK Tarball
-        run: |
-          sudo mkdir -p ${{ env.PDK_ROOT }}
-          sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
-          tar -xf /tmp/pdk.tar -C $PDK_ROOT .
-
-      - name: Install dependencies
-        run: |
-          make install
-          make install_mcw
-          make openlane
-          make simenv
-
-      - name: Harden using Openlane
-        run: |
-          make user_proj_example
-          make user_project_wrapper
-
-      - name: Run DV RTL tests
-        run: |
-          make verify-io_ports-rtl 
-          make verify-la_test1-rtl 
-          make verify-la_test2-rtl 
-          make verify-mprj_stimulus-rtl 
-          make verify-wb_port-rtl
-
-      - name: Run DV GL tests
-        run: |
-          make verify-io_ports-gl 
-          make verify-la_test1-gl 
-          make verify-la_test2-gl 
-          make verify-mprj_stimulus-gl 
-          make verify-wb_port-gl
-
-  user_project_flow_sky130B:
-    timeout-minutes: 720
-    runs-on: ubuntu-latest
-    needs: [pdk]
-    steps:
-      - uses: actions/checkout@v2
-
-      - name: Set up QEMU
-        uses: docker/setup-qemu-action@v1
-
-      - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@v1
-
-      - name: Export PDK ROOT
-        run: echo "PDK_ROOT=/home/runner/work/pdk" >> $GITHUB_ENV
-
-      - name: Export PDK
-        run: echo "PDK=sky130B" >> $GITHUB_ENV
-
-      - name: Export OPENLANE ROOT
-        run: echo "OPENLANE_ROOT=/home/runner/work/caravel_user_project/openlane" >> $GITHUB_ENV
-
-      - name: Download PDK Tarball
-        uses: actions/download-artifact@v2
-        with:
-          name: pdk-tarball
-          path: /tmp
-
-      - name: Unpack PDK Tarball
-        run: |
-          sudo mkdir -p ${{ env.PDK_ROOT }}
-          sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
-          tar -xf /tmp/pdk.tar -C $PDK_ROOT .
-
-      - name: Install dependencies
-        run: |
-          make install
-          make install_mcw
-          make openlane
-          make simenv
-
-      - name: Harden using Openlane
-        run: |
-          make user_proj_example
-          make user_project_wrapper
-
-      - name: Run DV RTL tests
-        run: |
-          make verify-io_ports-rtl 
-          make verify-la_test1-rtl 
-          make verify-la_test2-rtl 
-          make verify-mprj_stimulus-rtl 
-          make verify-wb_port-rtl
-
-      - name: Run DV GL tests
-        run: |
-          make verify-io_ports-gl 
-          make verify-la_test1-gl 
-          make verify-la_test2-gl 
-          make verify-mprj_stimulus-gl 
-          make verify-wb_port-gl
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/requirements.txt