From f65a4a66443b28b5e2707691447aaeb14eb1fd3e Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Mon, 4 May 2026 22:24:40 -0700 Subject: [PATCH 01/20] Update lvs_config.json settings. Signed-off-by: D. Mitch Bailey --- lvs/user_project_wrapper/lvs_config.json | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lvs/user_project_wrapper/lvs_config.json b/lvs/user_project_wrapper/lvs_config.json index 8a01b45..714cf29 100644 --- a/lvs/user_project_wrapper/lvs_config.json +++ b/lvs/user_project_wrapper/lvs_config.json @@ -1,13 +1,18 @@ { + "STD_CELL_LIBRARY": "sky130_fd_sc_hd", + "INCLUDE_CONFIGS": [ + "$LVS_ROOT/tech/$PDK/lvs_config.base.json" + ], "TOP_SOURCE": "user_project_wrapper", "TOP_LAYOUT": "$TOP_SOURCE", "EXTRACT_FLATGLOB": [ "" ], "EXTRACT_ABSTRACT": [ - "*__fill_*", - "*__fakediode_*", - "*__tapvpwrvgnd_*" + "" + ], + "EXTRACT_CREATE_SUBCUT": [ + "" ], "EXTRACT_CREATE_SUBCUT": [ "" @@ -22,8 +27,7 @@ "" ], "LVS_SPICE_FILES": [ - "$PDK_ROOT/$PDK/libs.ref/sky130_fd_sc_hd/spice/sky130_ef_sc_hd__decap*.spice", - "$PDK_ROOT/$PDK/libs.ref/sky130_fd_sc_hd/spice/sky130_fd_sc_hd.spice" + "" ], "LVS_VERILOG_FILES": [ "$UPRJ_ROOT/verilog/gl/user_proj_example.v", From a797d98f2aa6e8f1d4bb6a6634c1e5c8636255c4 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Wed, 6 May 2026 01:36:18 -0700 Subject: [PATCH 02/20] Save failed harden runs for download. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index 175e9a2..da5401c 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -62,7 +62,7 @@ jobs: set -e python3 .github/scripts/get_designs.py --design ${{ github.workspace }} for design in $(cat harden_sequence.txt); do - cf harden $design || exit 1 + cf harden --tag ci $design done - name: Upload Hardened Design @@ -72,6 +72,7 @@ jobs: path: | ${{ github.workspace }}/gds ${{ github.workspace }}/signoff + ${{ github.workspace }}/openlane/*/runs/ci ${{ github.workspace }}/.cf/project.json retention-days: 1 From 3e18620fb680bf513fc64eec5894aa8c30d0549e Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Wed, 6 May 2026 01:50:47 -0700 Subject: [PATCH 03/20] Another attempt to save logs of failed runs. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index da5401c..edb8cae 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -58,11 +58,12 @@ jobs: cf setup --pdk ${{ matrix.pdk }} --only-openlane --only-pdk - name: Harden Designs + continue-on-error: true run: | set -e python3 .github/scripts/get_designs.py --design ${{ github.workspace }} for design in $(cat harden_sequence.txt); do - cf harden --tag ci $design + cf harden --tag ci $design done - name: Upload Hardened Design @@ -76,6 +77,10 @@ jobs: ${{ github.workspace }}/.cf/project.json retention-days: 1 + - name: Fail if harden failed + if: steps.harden.outcome == 'failure' + run: exit 1 + rtl-verification: timeout-minutes: 720 runs-on: ubuntu-latest From 55250029e3260576946f572c09ceaff8f6412e63 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Wed, 6 May 2026 02:04:05 -0700 Subject: [PATCH 04/20] Another attempt to save logs of failed runs. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index edb8cae..a81b8c5 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -73,7 +73,7 @@ jobs: path: | ${{ github.workspace }}/gds ${{ github.workspace }}/signoff - ${{ github.workspace }}/openlane/*/runs/ci + ${{ github.workspace }}/runs ${{ github.workspace }}/.cf/project.json retention-days: 1 From 6dd595152d3a0b12576e25abd9ca55c8ea26a596 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Wed, 6 May 2026 02:21:01 -0700 Subject: [PATCH 05/20] Patch the user_defines.v file. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index a81b8c5..0b68a1c 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -236,6 +236,7 @@ jobs: with open(project_json, 'w') as f: json.dump(data, f, indent=2) EOF + sed -i '/USER_CONFIG/s/INVALID/USER_STD_INPUT_NOPULL/' verilog/rtl/user_defines.v - name: Run Precheck run: | From ff6ec77012ee22ad773804f97ed95d752b9165ce Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Thu, 7 May 2026 01:58:29 -0700 Subject: [PATCH 06/20] Save failed precheck results in ci. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index 0b68a1c..376b351 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -241,3 +241,12 @@ jobs: - name: Run Precheck run: | cf precheck + + - name: Upload failed precheck artifacts + uses: actions/upload-artifact@v4 + with: + name: design-${{ matrix.pdk }} + path: | + ${{ github.workspace }}/precheck_results + retention-days: 1 + From 86fe1bae936f55243126bf4573d491abcb8bad86 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Thu, 7 May 2026 05:02:09 -0700 Subject: [PATCH 07/20] Don't quit on failed precheck. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index 376b351..ac73fd0 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -239,6 +239,7 @@ jobs: sed -i '/USER_CONFIG/s/INVALID/USER_STD_INPUT_NOPULL/' verilog/rtl/user_defines.v - name: Run Precheck + continue-on-error: true run: | cf precheck From b16cfc25a7af468fd621b0605076b31486ed1797 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Thu, 7 May 2026 17:45:01 -0700 Subject: [PATCH 08/20] Set gpio configs to match sample in ci. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index ac73fd0..d011153 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -236,7 +236,9 @@ jobs: with open(project_json, 'w') as f: json.dump(data, f, indent=2) EOF - sed -i '/USER_CONFIG/s/INVALID/USER_STD_INPUT_NOPULL/' verilog/rtl/user_defines.v + # Set gpio 5, 6, 7, 30-37 to USER_STD_OUTPUT + sed -i -e '/USER_CONFIG_GPIO_[3567]/s/INVALID/USER_STD_OUTPUT/' \ + -e '/USER_CONFIG/s/INVALID/MGMT_STD_ANALOG/' verilog/rtl/user_defines.v - name: Run Precheck continue-on-error: true From 3ee1b604abd590345b072d006f28d34c9a1054f3 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Thu, 7 May 2026 20:40:26 -0700 Subject: [PATCH 09/20] Only update gpio config in ci for default project. Always save precheck results. Fail ci on precheck fail. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 57 +++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 4 deletions(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index d011153..a4c5e18 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -216,8 +216,37 @@ jobs: name: design-${{ matrix.pdk }} path: ${{ github.workspace }} - - name: Configure GPIO (non-interactive) + - name: Detect default design + id: default_design + run: | + set -e + + UPW="verilog/rtl/user_project_wrapper.v" + UPE="verilog/rtl/user_proj_example.v" + UD="verilog/rtl/user_defines.v" + + # Replace these with the known-good checksums for the default design + DEFAULT_UPW_SHA256="db2d0bd579f1a7db73f46d838ed2af1e88aa3d73585a7c23db6e4203762081ca" + DEFAULT_UPE_SHA256="af1666e007dca72d851932f0a88370897302287088fa03d8687d10c607fa5e9d" + DEFAULT_UD_SHA256="8c1ee6abdc09b6b4e9cf6204e7a6275ef5ba8df850f312b7e78cee779349e2eb" + + upw_sha=$(sha256sum "$UPW" | awk '{print $1}') + upe_sha=$(sha256sum "$UPE" | awk '{print $1}') + ud_sha=$(sha256sum "$UD" | awk '{print $1}') + + if [[ "$upw_sha" == "$DEFAULT_UPW_SHA256" && \ + "$upe_sha" == "$DEFAULT_UPE_SHA256" && \ + "$ud_sha" == "$DEFAULT_UD_SHA256" ]]; then + echo "is_default=true" >> "$GITHUB_OUTPUT" + else + echo "is_default=false" >> "$GITHUB_OUTPUT" + fi + + - name: Override INVALID GPIO definitions for default design only + if: steps.default_design.outputs.is_default == 'true' run: | + echo "Default design detected. Applying INVALID GPIO overrides." + python3 < Date: Thu, 7 May 2026 22:09:16 -0700 Subject: [PATCH 10/20] Corrected user_defines.v shasum Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index a4c5e18..4332913 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -228,7 +228,7 @@ jobs: # Replace these with the known-good checksums for the default design DEFAULT_UPW_SHA256="db2d0bd579f1a7db73f46d838ed2af1e88aa3d73585a7c23db6e4203762081ca" DEFAULT_UPE_SHA256="af1666e007dca72d851932f0a88370897302287088fa03d8687d10c607fa5e9d" - DEFAULT_UD_SHA256="8c1ee6abdc09b6b4e9cf6204e7a6275ef5ba8df850f312b7e78cee779349e2eb" + DEFAULT_UD_SHA256="ab6e82ca9b069050b77ac0f74c5c9574f6a0eb4a09f96245490e89bd0f6ce6f7" upw_sha=$(sha256sum "$UPW" | awk '{print $1}') upe_sha=$(sha256sum "$UPE" | awk '{print $1}') From 90ce32fd275937d7182a04050153d22b1437c4de Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Thu, 7 May 2026 23:12:17 -0700 Subject: [PATCH 11/20] Changed precheck fail condition. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index 4332913..ccbc759 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -283,8 +283,8 @@ jobs: exit $precheck_status fi - cnt=$(grep -c "All Checks Passed" precheck_results/*/logs/precheck.log || true) - if [[ $cnt -eq 1 ]]; then + error_count=$(grep -c "ERROR" precheck_results/*/logs/precheck.log || true) + if [[ $error_count -eq 0 ]]; then exit 0 fi From 00e869b375f8a02a8b553e89a3b9b6637a30c249 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Fri, 8 May 2026 00:35:32 -0700 Subject: [PATCH 12/20] Final gpio update for default chip. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index ccbc759..c555b4d 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -267,7 +267,7 @@ jobs: EOF # Set gpio 5, 6, 7, 30-37 to USER_STD_OUTPUT for default user defines - sed -i -e '/USER_CONFIG_GPIO_[567]/s/INVALID/USER_STD_OUTPUT/' \ + sed -i -e '/USER_CONFIG_GPIO_[3567]/s/INVALID/USER_STD_OUTPUT/' \ -e '/USER_CONFIG/s/INVALID/MGMT_STD_ANALOG/' verilog/rtl/user_defines.v - name: Run Precheck From 43efb6166cdc4b006cc24a9095995996d60b6273 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Mon, 11 May 2026 02:20:23 -0700 Subject: [PATCH 13/20] Added id to detect harden failures. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index c555b4d..111a85a 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -58,6 +58,7 @@ jobs: cf setup --pdk ${{ matrix.pdk }} --only-openlane --only-pdk - name: Harden Designs + id: harden continue-on-error: true run: | set -e From 90c30d62218130fbf7e7b6d5876ee93a78466672 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Mon, 11 May 2026 02:59:27 -0700 Subject: [PATCH 14/20] More changes to git run logs. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index 111a85a..cf2538d 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -64,7 +64,8 @@ jobs: set -e python3 .github/scripts/get_designs.py --design ${{ github.workspace }} for design in $(cat harden_sequence.txt); do - cf harden --tag ci $design + mkdir -p openlane/$design/runs/ci + cf harden --tag ci $design | tee openlane/$design/runs/ci/ci.log done - name: Upload Hardened Design @@ -74,7 +75,7 @@ jobs: path: | ${{ github.workspace }}/gds ${{ github.workspace }}/signoff - ${{ github.workspace }}/runs + ${{ github.workspace }}/*lane/*/runs/ci ${{ github.workspace }}/.cf/project.json retention-days: 1 From 36dec08bbf39250ce8de0039f1f9b204dd51dab5 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Mon, 11 May 2026 17:37:02 -0700 Subject: [PATCH 15/20] Added pipefile and combined syserr with sysout to harden step. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index cf2538d..5187ba5 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -61,11 +61,11 @@ jobs: id: harden continue-on-error: true run: | - set -e + set -euo pipefail python3 .github/scripts/get_designs.py --design ${{ github.workspace }} for design in $(cat harden_sequence.txt); do mkdir -p openlane/$design/runs/ci - cf harden --tag ci $design | tee openlane/$design/runs/ci/ci.log + cf harden --tag ci --pdk ${{ matrix.pdk }} $design 2>&1 | tee openlane/$design/runs/ci/ci.log done - name: Upload Hardened Design From 5e44d35b2aa890c8e4f73d8569eab78b8338ea1f Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Tue, 12 May 2026 11:40:03 -0700 Subject: [PATCH 16/20] Removed debugging code in ci. Removed duplicate entry in lvs_config.json. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 3 +-- lvs/user_project_wrapper/lvs_config.json | 3 --- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index 5187ba5..a0597cd 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -64,8 +64,7 @@ jobs: set -euo pipefail python3 .github/scripts/get_designs.py --design ${{ github.workspace }} for design in $(cat harden_sequence.txt); do - mkdir -p openlane/$design/runs/ci - cf harden --tag ci --pdk ${{ matrix.pdk }} $design 2>&1 | tee openlane/$design/runs/ci/ci.log + cf harden --tag ci --pdk ${{ matrix.pdk }} $design done - name: Upload Hardened Design diff --git a/lvs/user_project_wrapper/lvs_config.json b/lvs/user_project_wrapper/lvs_config.json index 714cf29..bd946d7 100644 --- a/lvs/user_project_wrapper/lvs_config.json +++ b/lvs/user_project_wrapper/lvs_config.json @@ -14,9 +14,6 @@ "EXTRACT_CREATE_SUBCUT": [ "" ], - "EXTRACT_CREATE_SUBCUT": [ - "" - ], "LVS_FLATTEN": [ "" ], From b6e32d37e22f347b2b5a71a816596ef2adebe7d7 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Wed, 13 May 2026 05:38:21 -0700 Subject: [PATCH 17/20] Use different artifact names for different stages. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index a0597cd..7c60399 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -70,7 +70,7 @@ jobs: - name: Upload Hardened Design uses: actions/upload-artifact@v4 with: - name: design-${{ matrix.pdk }} + name: harden-${{ matrix.pdk }} path: | ${{ github.workspace }}/gds ${{ github.workspace }}/signoff @@ -295,7 +295,7 @@ jobs: - name: Upload precheck artifacts uses: actions/upload-artifact@v4 with: - name: design-${{ matrix.pdk }} + name: precheck-${{ matrix.pdk }} path: | ${{ github.workspace }}/precheck_results retention-days: 1 From 2de69d5802254d8055abc94a608561ec5dc7f8ce Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Wed, 13 May 2026 07:55:55 -0700 Subject: [PATCH 18/20] Revert initial upload name (harden-pdk -> design-pdk) because it's used in precheck. Signed-off-by: D. Mitch Bailey --- .github/workflows/user_project_ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml index 7c60399..7e71752 100644 --- a/.github/workflows/user_project_ci.yml +++ b/.github/workflows/user_project_ci.yml @@ -70,7 +70,7 @@ jobs: - name: Upload Hardened Design uses: actions/upload-artifact@v4 with: - name: harden-${{ matrix.pdk }} + name: design-${{ matrix.pdk }} path: | ${{ github.workspace }}/gds ${{ github.workspace }}/signoff From d0de0973e6e7bf661f97c1997ba40e50da275403 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Thu, 14 May 2026 18:43:53 -0700 Subject: [PATCH 19/20] Trigger CI From 2e8c7f9dc643406627ffb83f8fa437e499141be7 Mon Sep 17 00:00:00 2001 From: "D. Mitch Bailey" Date: Sun, 17 May 2026 19:35:34 -0700 Subject: [PATCH 20/20] Trigger CI2