Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
191 commits
Select commit Hold shift + click to select a range
dca9bb8
updated OR to secure-bufrem-fix
precisionmoon Jan 24, 2026
0f9221f
update OR
gudeh Jan 24, 2026
bab0134
maintain default behavior after gpl modifcation to default initial po…
gudeh Jan 24, 2026
d3f93bb
update OR
gudeh Jan 24, 2026
2e289d2
update OR
gudeh Jan 24, 2026
47acf72
support different output from make
jeffng-or Jan 25, 2026
7ec78c1
Merge remote-tracking branch 'origin/master' into secure-bufrem-test
precisionmoon Jan 26, 2026
2d8d610
updated OR
precisionmoon Jan 26, 2026
e0f7ec2
rapidus design tuning for PDK 0.3
jeffng-or Jan 26, 2026
b628174
updated OR
precisionmoon Jan 26, 2026
95e410e
updated OR
precisionmoon Jan 26, 2026
a81382d
update OR
gudeh Jan 26, 2026
3789c6f
Merge remote-tracking branch 'private/master' into secure-gpl-odb-ini…
gudeh Jan 26, 2026
166cc7f
master version
gudeh Jan 26, 2026
4af5bc3
master version
gudeh Jan 26, 2026
f8f448c
Merge pull request #3833 from The-OpenROAD-Project-staging/support-di…
maliberty Jan 26, 2026
eae7fd9
update OR
gudeh Jan 26, 2026
29fa1c9
Merge pull request #3835 from The-OpenROAD-Project-staging/rapidus-de…
maliberty Jan 26, 2026
ef67553
enable custom sdc/fr files for sweep mode
luarss Jan 26, 2026
87d3bdb
build: kepler
vvbandeira Jan 26, 2026
b6b635a
set visible true to all physical instances other than filler cells
gudeh Jan 26, 2026
d6bd222
Merge pull request #3839 from vvbandeira/kepler-fix
vvbandeira Jan 26, 2026
97071ff
Merge pull request #3837 from luarss/topic/at-custom-sdc-fr
vvbandeira Jan 26, 2026
682b84a
rapidus param test re-factoring
jeffng-or Jan 26, 2026
d7d897b
Merge pull request #3840 from gudeh/final-image-show-physical
maliberty Jan 26, 2026
3d9a5e5
Merge pull request #3841 from The-OpenROAD-Project-staging/unit-test-…
maliberty Jan 26, 2026
94344d7
updated metrics for public and private PDK designs
precisionmoon Jan 27, 2026
ae23d64
update OR
gudeh Jan 27, 2026
ce155dd
Merge remote-tracking branch 'private/master' into secure-gpl-odb-ini…
gudeh Jan 27, 2026
a5c2be1
Metrics update for PDK 0.3 corner cell change
jeffng-or Jan 27, 2026
897a521
update or
maliberty Jan 27, 2026
2478d61
Merge pull request #3844 from The-OpenROAD-Project-staging/rapidus-co…
vvbandeira Jan 27, 2026
5dcd585
Merge pull request #3843 from The-OpenROAD-Project-staging/or-update
maliberty Jan 27, 2026
237bf74
Tuning designs for PDK 0.3 using 6T library
jeffng-or Jan 28, 2026
0a21697
Merge branch 'master' into secure-bufrem-test
maliberty Jan 28, 2026
c5b07be
Merge pull request #3847 from The-OpenROAD-Project-staging/pdk-0.3-6T…
maliberty Jan 29, 2026
0496486
update or post-merge
maliberty Jan 30, 2026
05420e9
Merge branch 'master' into secure-gpl-odb-initial-pos
maliberty Jan 30, 2026
1a2a952
Merge pull request #3838 from The-OpenROAD-Project-staging/secure-gpl…
maliberty Jan 30, 2026
ba8b787
Merge branch 'master' into secure-bufrem-test
maliberty Jan 30, 2026
9b4655a
designs/rapidus2hp/cva6/rules-base.json updates:
maliberty Jan 30, 2026
52671e6
Merge pull request #3834 from The-OpenROAD-Project-staging/secure-buf…
maliberty Jan 30, 2026
8bb1fd1
make: print-FOO temp file gaffe for parallel builds within the same p…
oharboe Jan 31, 2026
7954c9e
update OR submodule
maliberty Jan 31, 2026
0766ef9
designs/rapidus2hp/cva6/rules-base.json updates:
maliberty Jan 31, 2026
722306c
designs/gf12/swerv_wrapper/rules-base.json updates:
maliberty Jan 31, 2026
e572337
flow: update rules
github-actions[bot] Jan 31, 2026
06d11b0
Merge pull request #3853 from The-OpenROAD-Project-staging/update-or
maliberty Feb 1, 2026
ef1fa04
enable module swap for 7 private PDK designs and add incremental GP
precisionmoon Feb 1, 2026
be0dbf3
Merge remote-tracking branch 'origin/master' into HEAD
oharboe Feb 1, 2026
3ef8cb7
Merge pull request #3852 from Pinata-Consulting/make-print-parallel-g…
maliberty Feb 1, 2026
6fed214
Merge remote-tracking branch 'origin/master' into secure-enable-mod-s…
precisionmoon Feb 2, 2026
987eed6
mem_dump: add summary of inferred memory usage
NishDs-06 Feb 2, 2026
84fc8e5
Update gf12 bp_* metrics
maliberty Feb 2, 2026
3666173
Merge pull request #3859 from The-OpenROAD-Project-staging/priv-metrics
maliberty Feb 2, 2026
419cd9b
Merge pull request #3855 from NishDs-06/mem-dump-summary
maliberty Feb 2, 2026
8a4f756
flow: change RTLMP_NOTCH_WT default value
joaomai Feb 2, 2026
523f19a
mpl: improve notches
joaomai Feb 2, 2026
e521d02
mpl: improve notches
joaomai Feb 2, 2026
94884f6
rebased 7 private PDK designs after module swap
precisionmoon Feb 3, 2026
8bebb78
resolved merge conflict
precisionmoon Feb 3, 2026
db99cd9
ihp-sg13g2: update SRAM variations and fix broken DRC download links
trabdelbasset Feb 3, 2026
91fc47c
updated gf12/bp_single rules-base.json
precisionmoon Feb 3, 2026
a1aec08
disabled module swap on nangate45/swerv_wrapper and sky130hd/riscv32i
precisionmoon Feb 3, 2026
f475260
Updated cva6, ibex, and jpeg for PDK 0.15
jeffng-or Feb 3, 2026
ac2933e
working for tune/sweep mode
luarss Feb 3, 2026
43b3274
update gf12/bp_single rules
joaomai Feb 3, 2026
7b80f8b
update gf12/ca53 rules
joaomai Feb 3, 2026
7c9412f
mpl: improve notches
joaomai Feb 3, 2026
7c614f3
Merge pull request #3861 from The-OpenROAD-Project-staging/pdk-0.15-t…
maliberty Feb 3, 2026
a3f3578
Merge pull request #3860 from trabdelbasset/patch-1
maliberty Feb 3, 2026
ea0fd7b
mpl: improve notches
joaomai Feb 4, 2026
b5f5852
flow: update rules
github-actions[bot] Feb 4, 2026
3d866e6
Merge pull request #3863 from The-OpenROAD-Project-staging/secure-mpl…
maliberty Feb 4, 2026
4fb01a0
retire RTLMP_DATA_FLOW_DRIVEN
AcKoucher Jan 23, 2026
647a721
update OR
AcKoucher Feb 4, 2026
25a8a4c
hercules_idecode tuning for PDK 0.15
jeffng-or Feb 4, 2026
b98db52
Merge pull request #3864 from The-OpenROAD-Project-staging/hercules-d…
maliberty Feb 4, 2026
904780f
Merge pull request #3836 from The-OpenROAD-Project-staging/secure-mpl…
eder-matheus Feb 5, 2026
bdb2c5a
Updated to is_int config for PDK 0.3 6T
jeffng-or Feb 5, 2026
e626d70
Updated size and SDC for owned designs
jeffng-or Feb 5, 2026
fb363f2
turn on LEC on asap7_jpeg asap7_uart sky130hd_gcd sky130hs_gcd
Feb 5, 2026
d345f28
update kf
Feb 5, 2026
57ec520
Merge pull request #3866 from The-OpenROAD-Project-staging/is_int-6t-…
maliberty Feb 5, 2026
9295036
Merge pull request #3869 from The-OpenROAD-Project-staging/feb26-owne…
maliberty Feb 6, 2026
1c99c36
Switched asap7 riscv32i to utilization + bumped util for sky130hs gcd
jeffng-or Feb 6, 2026
bacc46c
use latest openroad
eder-matheus Feb 6, 2026
b7fdf67
use Yosys 0.62
eder-matheus Feb 6, 2026
024c568
fix: automate issue tarball path replacement and thread count
jferreiraOpenRoad Feb 6, 2026
97aecfe
Merge pull request #3871 from The-OpenROAD-Project-staging/feb-2006-o…
maliberty Feb 6, 2026
90f49c1
Merge pull request #3870 from The-OpenROAD-Project-staging/test-fix-i…
maliberty Feb 6, 2026
4f5f6be
Updates to hercules_is_int config to enable PDK 0.15 runs
jeffng-or Feb 6, 2026
4810cd9
Merge pull request #3872 from The-OpenROAD-Project-staging/is_int-pdk…
maliberty Feb 7, 2026
d8d1493
flow: platform: ihp-sg13g2: pdn: Remove add_global_connections
dnltz Feb 7, 2026
2e59c8d
flow: designs: ihp-sg13g2: i2c-gpio-expander: Move padring add_global…
dnltz Feb 7, 2026
4fe6df5
base (4f93607)
jhkim-pii Feb 8, 2026
aa4ded7
fix (768211d4)
jhkim-pii Feb 8, 2026
8c4a425
Merge branch 'master' of https://github.com/The-OpenROAD-Project-priv…
jhkim-pii Feb 9, 2026
6074d2c
fix2 (resolved crash by nullptr)
jhkim-pii Feb 9, 2026
718af0c
swap, fix2
jhkim-pii Feb 9, 2026
2149b02
fix2 - 2nd (to launch secure-CI)
jhkim-pii Feb 9, 2026
6bf04ca
Merge branch 'master' of https://github.com/The-OpenROAD-Project-priv…
eder-matheus Feb 9, 2026
8588bcf
bump openroad
eder-matheus Feb 9, 2026
35771f7
Fix unconnected inputs of ram modules for gf12/swerv_wrapper
jhkim-pii Feb 9, 2026
7994e59
update public metrics
eder-matheus Feb 9, 2026
a3e46cf
update private metrics
eder-matheus Feb 9, 2026
8b98a3f
Merge branch 'The-OpenROAD-Project:master' into signoff-single-commit
nanocoh Feb 9, 2026
538b6e6
Add KEPLER_FORMAL_EXE env
Feb 9, 2026
41fff97
rebased 2 designs
precisionmoon Feb 10, 2026
28af78c
resolved merge conflict
precisionmoon Feb 10, 2026
37a2cce
Merge pull request #3876 from The-OpenROAD-Project-staging/secure-yos…
maliberty Feb 10, 2026
9515c60
Update rules-base.json
jhkim-pii Feb 10, 2026
5fb03a5
Merge branch 'master' of https://github.com/The-OpenROAD-Project-priv…
jhkim-pii Feb 10, 2026
4ae6028
Use the latest OR
jhkim-pii Feb 10, 2026
778f67d
Update rules-base.json after master merge
jhkim-pii Feb 10, 2026
10a8f7b
update sky130hs/riscv32i
eder-matheus Feb 10, 2026
1426c05
Merge pull request #3877 from The-OpenROAD-Project-staging/secure-fix…
maliberty Feb 10, 2026
baa4457
Merge pull request #3868 from keplertech/signoff-single-commit
maliberty Feb 10, 2026
93914ce
update sky130hd/aes
eder-matheus Feb 10, 2026
fc6d2a3
merged with master
precisionmoon Feb 10, 2026
5ba6a6e
Transitioned away from PLACE_DENSITY - metrics update
jeffng-or Feb 10, 2026
5b1cb3f
Merge branch 'master' into place-density-transition
jeffng-or Feb 10, 2026
2412bb5
update gf12/jpeg
eder-matheus Feb 10, 2026
5ddc5f3
bump openroad submodule
eder-matheus Feb 10, 2026
e2f929a
Merge branch 'master' of https://github.com/The-OpenROAD-Project-priv…
eder-matheus Feb 10, 2026
fd98cd0
enable lec check
Feb 10, 2026
9a02810
rebased tests after merging with master
precisionmoon Feb 11, 2026
a06423b
Add missing ASAP7 OA Verilog cell models
taktoa Feb 7, 2026
7b3868b
add remove cells commands for lec check
Feb 11, 2026
3bb5ba4
flow: update rules
github-actions[bot] Feb 11, 2026
1438c8c
Merge pull request #3879 from The-OpenROAD-Project-staging/update_des…
maliberty Feb 11, 2026
b3f8033
Merge pull request #3873 from taktoa/taktoa-asap7
maliberty Feb 11, 2026
3bff7a9
add remove cells commands for lec check
Feb 11, 2026
f4d83c7
update metrics for gf12/jpeg
eder-matheus Feb 11, 2026
c207fdf
bump or
eder-matheus Feb 11, 2026
7a40b1e
Merge pull request #3878 from The-OpenROAD-Project-staging/place-dens…
maliberty Feb 11, 2026
2fd880a
add remove cells commands for lec check
Feb 11, 2026
ec44ed3
yet another rebasing
precisionmoon Feb 11, 2026
d41a19e
Merge remote-tracking branch 'origin/master' into secure-enable-mod-s…
precisionmoon Feb 11, 2026
e05a2d1
Merge pull request #3883 from The-OpenROAD-Project-staging/fix_metrics
maliberty Feb 12, 2026
6d9fcdd
util/docker_shell: Don't hard-code DISPLAY for fetching auth info
frej Feb 12, 2026
9245542
Merge pull request #3886 from frej/frej/dont-hardcode-display
maliberty Feb 12, 2026
36c0e65
Merge remote-tracking branch 'origin/master' into secure-enable-mod-s…
precisionmoon Feb 12, 2026
ef2cb37
2026/02/12 rebase
precisionmoon Feb 12, 2026
897a095
getPath with IDs + disable pending fix + update config
Feb 12, 2026
9e4621a
reset yosys & kf versions
maliberty Feb 12, 2026
e772caf
reset build_openroad.sh
maliberty Feb 12, 2026
662024b
Merge pull request #3874 from dnltz/WIP/dnltz/ihp-sg13g2-fix-padring
maliberty Feb 13, 2026
e05803b
flow: update rules
github-actions[bot] Feb 13, 2026
a029493
Regenerate MBFF lib files in ASAP7
LeeJaKang Feb 13, 2026
2dfa2b6
Added Header and Modified library name
LeeJaKang Feb 13, 2026
1d0b509
Merge pull request #3856 from The-OpenROAD-Project-staging/secure-ena…
maliberty Feb 13, 2026
b3a47a9
fix config + truth table for assign
Feb 13, 2026
1d3c987
Merge branch 'master' into signoff-single-commit
nanocoh Feb 13, 2026
0a6f73f
flow: platforn: ihp-sg13g2: Ignore Empty GDS for Multi-port SRAM
dnltz Feb 14, 2026
76c2791
Merge pull request #3889 from dnltz/WIP/dnltz/fix-2p-sram
maliberty Feb 14, 2026
061d5c3
Update private metrics
maliberty Feb 16, 2026
8b8d340
Merge pull request #3891 from The-OpenROAD-Project-staging/priv-metri…
maliberty Feb 16, 2026
998035d
kf update + config
Feb 16, 2026
87f1958
Merge branch 'The-OpenROAD-Project:master' into signoff-single-commit
nanocoh Feb 16, 2026
6b4ae41
update kf with kissat
Feb 16, 2026
ef3e233
Merge branch 'signoff-single-commit' of https://github.com/keplertech…
nanocoh Feb 16, 2026
a39ae70
LEC env in variables.yaml + enable instead of disable lec + remove ce…
Feb 17, 2026
e12a7de
Update FlowVariables.md after adding REMOVE_CELLS_FOR_LEC and LEC_CHECK
Feb 17, 2026
e59f50e
tclmft
Feb 17, 2026
f02ce74
config fix
Feb 17, 2026
01bc23c
Merge pull request #3880 from keplertech/signoff-single-commit
maliberty Feb 17, 2026
b9eee30
Merge pull request #3888 from LeeJaKang/fix_asap7_mbff_lib_files
maliberty Feb 18, 2026
0b1fde3
etc: eqy/sby match orfs yosys version
vvbandeira Feb 18, 2026
fbd9bed
Temporarily disable LEC_CHECK for rapidus/cva6
maliberty Feb 19, 2026
b16adb7
Merge pull request #3897 from The-OpenROAD-Project-staging/no-lec-rap…
maliberty Feb 19, 2026
333fee3
Merge pull request #3895 from vvbandeira/yosys-ver
vvbandeira Feb 19, 2026
195e64c
Merge pull request #3862 from luarss/topic/at-work-writable
vvbandeira Feb 19, 2026
4dc8ffe
fix logging + liberty parsing
Feb 19, 2026
0df9714
Pull OR built with multi-mode STA
povik Jan 28, 2026
4f343e2
fixed typo in plot label
jeffng-or Feb 20, 2026
8066d76
flow: update rules
github-actions[bot] Feb 20, 2026
14f0909
Update private metrics for switch to STA w/ MM
povik Feb 21, 2026
948d8cb
Pull OR update with fixes
povik Feb 21, 2026
24e01b0
Merge pull request #3902 from The-OpenROAD-Project-staging/correlate-…
maliberty Feb 22, 2026
a4e0906
Merge pull request #3899 from keplertech/signoff-single-commit
maliberty Feb 22, 2026
2b672f1
make: print-FOO race condition global env var fix
oharboe Feb 22, 2026
9ad0956
Merge pull request #3905 from Pinata-Consulting/print-foo-race-condition
maliberty Feb 22, 2026
1face85
Merge pull request #3898 from The-OpenROAD-Project-staging/secure-sta…
maliberty Feb 22, 2026
e87dcf2
Increase core utilization, tighten clock period, and adjust timing ru…
jhkim-pii Feb 23, 2026
c35fd31
Merge pull request #3912 from The-OpenROAD-Project-staging/secure-tig…
maliberty Feb 23, 2026
27b541b
Add ms-openroad cloud runner image
AmurG Feb 23, 2026
a25e197
Fix parallel build for 1_2_yosys outputs
AmurG Feb 23, 2026
3b0048d
Reduce Docker context for ms-openroad image
AmurG Feb 23, 2026
c0c5bc6
ms-openroad: GitHub Actions Azure build+run
AmurG Feb 23, 2026
4a3a07b
[BOT] Update yosys submodule
PrecisEDAnon Feb 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,27 @@ flow/vars*.gdb
# Common temp files
flow/*.log

# Git metadata (can be huge; not needed in image)
.git

# Platforms
# Reduce Docker build context for ms-openroad
flow/platforms/*
!flow/platforms/common/
!flow/platforms/common/**
!flow/platforms/nangate45/
!flow/platforms/nangate45/**

# Designs
# Reduce Docker build context for ms-openroad (only need nangate45/gcd).
flow/designs/*
!flow/designs/src/
!flow/designs/src/gcd/
!flow/designs/src/gcd/**
!flow/designs/nangate45/
!flow/designs/nangate45/gcd/
!flow/designs/nangate45/gcd/**


# network
.nfs*
Expand Down
175 changes: 175 additions & 0 deletions .github/workflows/ms-openroad-azure-gcd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
name: ms-openroad (Azure gcd)

on:
push:
branches:
- microsoft-openroad
paths:
- ".dockerignore"
- ".github/workflows/ms-openroad-azure-gcd.yml"
- "env.sh"
- "flow/Makefile"
- "flow/scripts/**"
- "flow/util/**"
- "flow/designs/nangate45/gcd/**"
- "flow/designs/src/gcd/**"
- "flow/platforms/common/**"
- "flow/platforms/nangate45/**"
- "ms-openroad/**"
workflow_dispatch: {}

permissions:
contents: read
id-token: write

concurrency:
group: ms-openroad-azure-gcd-${{ github.ref }}
cancel-in-progress: true

env:
# Azure environment (ms-openroad subscription)
AZ_RG: orfs-rg-42d38e
AZ_ACR_NAME: orfs42d38e
AZ_STORAGE_ACCOUNT: orfs42d38esa
AZ_FILE_SHARE: orfs-share
AZ_IDENTITY_ID: /subscriptions/ea2e8ed3-281b-4422-a24d-41d87cd070c3/resourcegroups/orfs-rg-42d38e/providers/Microsoft.ManagedIdentity/userAssignedIdentities/orfs-aci-mi-42d38e

# GitHub OIDC → Azure federated credential (no secrets)
AZURE_TENANT_ID: 8a198873-4fec-4e76-8182-ca479edbbd60
AZURE_SUBSCRIPTION_ID: ea2e8ed3-281b-4422-a24d-41d87cd070c3
AZURE_CLIENT_ID: b6b68521-9572-49e8-8dd7-0cacad242f24

# Flow defaults
IMAGE_REPO: orfs-flow
DESIGN: gcd
PLATFORM: nangate45
FLOW_VARIANT: base
CPU: "4"
MEMORY_GB: "16"
SKIP_CTS_REPAIR_TIMING: "1"

jobs:
build-and-run:
runs-on: ubuntu-latest
timeout-minutes: 180
steps:
- name: Azure login (OIDC)
uses: azure/login@v2
with:
client-id: ${{ env.AZURE_CLIENT_ID }}
tenant-id: ${{ env.AZURE_TENANT_ID }}
subscription-id: ${{ env.AZURE_SUBSCRIPTION_ID }}

- name: Build image in ACR from this branch
shell: bash
run: |
set -euo pipefail
short_sha="${GITHUB_SHA::12}"
image_tag="sha-${short_sha}"
context_url="https://github.com/${GITHUB_REPOSITORY}.git#${GITHUB_REF_NAME}"

echo "ACR build:"
echo " registry=${AZ_ACR_NAME}"
echo " context=${context_url}"
echo " dockerfile=ms-openroad/Dockerfile"
echo " tags=${IMAGE_REPO}:microsoft-openroad, ${IMAGE_REPO}:${image_tag}"

az acr build \
--resource-group "${AZ_RG}" \
--registry "${AZ_ACR_NAME}" \
--file ms-openroad/Dockerfile \
--image "${IMAGE_REPO}:microsoft-openroad" \
--image "${IMAGE_REPO}:${image_tag}" \
--build-arg "VCS_REF=${GITHUB_SHA}" \
--build-arg "BASE_IMAGE=openroad/orfs:latest" \
"${context_url}"

- name: Run nangate45/gcd on Azure Container Instances
shell: bash
run: |
set -euo pipefail

short_sha="${GITHUB_SHA::12}"
image_tag="sha-${short_sha}"
acr_login_server="$(az acr show -n "${AZ_ACR_NAME}" --query loginServer -o tsv)"
image_fqn="${acr_login_server}/${IMAGE_REPO}:${image_tag}"

run_id="${DESIGN}-${short_sha}-${GITHUB_RUN_ID}"
work_home="/work/${run_id}"

aci_name_raw="orfs-${run_id}"
aci_name="$(echo "${aci_name_raw}" | tr '[:upper:]' '[:lower:]' | tr -cs 'a-z0-9-' '-' | cut -c1-63 | sed 's/^-//; s/-$//')"

storage_key="$(az storage account keys list \
--account-name "${AZ_STORAGE_ACCOUNT}" \
--resource-group "${AZ_RG}" \
--query '[0].value' -o tsv)"

echo "ACI run:"
echo " rg=${AZ_RG}"
echo " name=${aci_name}"
echo " image=${image_fqn}"
echo " cpu=${CPU} memory_gb=${MEMORY_GB}"
echo " work_home=${work_home}"

az container create \
--resource-group "${AZ_RG}" \
--name "${aci_name}" \
--image "${image_fqn}" \
--os-type Linux \
--restart-policy Never \
--cpu "${CPU}" \
--memory "${MEMORY_GB}" \
--assign-identity "${AZ_IDENTITY_ID}" \
--acr-identity "${AZ_IDENTITY_ID}" \
--azure-file-volume-account-name "${AZ_STORAGE_ACCOUNT}" \
--azure-file-volume-account-key "${storage_key}" \
--azure-file-volume-share-name "${AZ_FILE_SHARE}" \
--azure-file-volume-mount-path /work \
--command-line "/usr/local/bin/run-orfs.sh" \
--environment-variables \
DESIGN="${DESIGN}" \
PLATFORM="${PLATFORM}" \
FLOW_VARIANT="${FLOW_VARIANT}" \
WORK_HOME="${work_home}" \
NPROC="${CPU}" \
SKIP_CTS_REPAIR_TIMING="${SKIP_CTS_REPAIR_TIMING}" \
1>/dev/null

echo "Waiting for completion..."
exit_code=""
while true; do
read -r group_state container_state exit_code < <(az container show \
--resource-group "${AZ_RG}" \
--name "${aci_name}" \
--query '{g:instanceView.state, c:containers[0].instanceView.currentState.state, e:containers[0].instanceView.currentState.exitCode}' \
-o tsv)

if [[ "${exit_code:-}" == "None" ]]; then
exit_code=""
fi

echo " group=${group_state} container=${container_state} exitCode=${exit_code:-}"

if [[ "${container_state}" == "Terminated" || "${group_state}" == "Failed" || "${group_state}" == "Succeeded" || "${group_state}" == "Terminated" || "${group_state}" == "Stopped" ]]; then
break
fi
sleep 20
done

echo ""
echo "Logs:"
az container logs --resource-group "${AZ_RG}" --name "${aci_name}" || true

if [[ -z "${exit_code:-}" ]]; then
exit_code="$(az container show --resource-group "${AZ_RG}" --name "${aci_name}" --query 'containers[0].instanceView.currentState.exitCode' -o tsv 2>/dev/null || true)"
fi
exit_code="${exit_code:-0}"

echo ""
echo "Artifacts are in Azure Files share '${AZ_FILE_SHARE}' under: ${run_id}/"

if [[ "${exit_code}" != "0" ]]; then
echo "ERROR: container exited with code ${exit_code}" >&2
exit "${exit_code}"
fi
31 changes: 10 additions & 21 deletions build_openroad.sh
Original file line number Diff line number Diff line change
Expand Up @@ -292,28 +292,17 @@ __local_build()
${NICE} make install -C tools/yosys-slang -j "${PROC}" YOSYS_PREFIX="${INSTALL_PATH}/yosys/bin/" CMAKE_FLAGS="-DYOSYS_SLANG_REVISION=unknown -DSLANG_REVISION=unknown"

echo "[INFO FLW-0031] Compiling kepler-formal"
cd tools/kepler-formal
git submodule update --init --recursive
${NICE} cmake -B tools/kepler-formal/build tools/kepler-formal \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS_RELEASE="-Ofast -march=native -ffast-math -flto" \
-DCMAKE_EXE_LINKER_FLAGS="-flto" \
-DCMAKE_BUILD_RPATH="${DIR}/tools/kepler-formal/build/thirdparty/naja/src/dnl:${DIR}/tools/kepler-formal/build/thirdparty/naja/src/nl/nl:${DIR}/tools/kepler-formal/build/thirdparty/naja/src/optimization" \
-DCMAKE_INSTALL_RPATH="${INSTALL_PATH}/kepler-formal/lib" \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF \
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \
-DCMAKE_INSTALL_PREFIX="${INSTALL_PATH}/kepler-formal"
${NICE} cmake --build tools/kepler-formal/build --target install -j "${PROC}"

# if build dir does not exist, create it
if [ ! -d build ]; then
mkdir build
fi
cd build

cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS_RELEASE="-Ofast -march=native -ffast-math -flto" \
-DCMAKE_EXE_LINKER_FLAGS="-flto" \
-DCMAKE_BUILD_RPATH="${DIR}/tools/kepler-formal/build/thirdparty/naja/src/dnl:${DIR}/tools/kepler-formal/build/thirdparty/naja/src/nl/nl:${DIR}/tools/kepler-formal/build/thirdparty/naja/src/optimization" \
-DCMAKE_INSTALL_RPATH="${INSTALL_PATH}/kepler-formal/lib" \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF \
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \
-DCMAKE_INSTALL_PREFIX="${INSTALL_PATH}/kepler-formal"

make -j"${PROC}" install

cd ../../../
if [ ${WITH_VERIFIC} -eq 1 ]; then
echo "[INFO FLW-0032] Cleaning up Verific components."
rm -rf verific
Expand Down
8 changes: 5 additions & 3 deletions docs/user/FlowVariables.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ configuration file.
| <a name="KLAYOUT_TECH_FILE"></a>KLAYOUT_TECH_FILE| A mapping from LEF/DEF to GDS using the KLayout tool.| |
| <a name="LATCH_MAP_FILE"></a>LATCH_MAP_FILE| Optional mapping file supplied to Yosys to map latches| |
| <a name="LAYER_PARASITICS_FILE"></a>LAYER_PARASITICS_FILE| Path to per layer parasitics file. Defaults to $(PLATFORM_DIR)/setRC.tcl.| |
| <a name="LEC_CHECK"></a>LEC_CHECK| Perform a formal equivalence check between before and after netlists.| 1|
| <a name="LIB_FILES"></a>LIB_FILES| A Liberty file of the standard cell library with PVT characterization, input and output characteristics, timing and power definitions for each cell.| |
| <a name="MACRO_BLOCKAGE_HALO"></a>MACRO_BLOCKAGE_HALO| Distance beyond the edges of a macro that will also be covered by the blockage generated for that macro. Note that the default macro blockage halo comes from the largest of the specified MACRO_PLACE_HALO x or y values. This variable overrides that calculation.| |
| <a name="MACRO_EXTENSION"></a>MACRO_EXTENSION| Sets the number of GCells added to the blockages boundaries from macros.| |
Expand Down Expand Up @@ -196,13 +197,13 @@ configuration file.
| <a name="RECOVER_POWER"></a>RECOVER_POWER| Specifies how many percent of paths with positive slacks can be slowed for power savings [0-100].| 0|
| <a name="REMOVE_ABC_BUFFERS"></a>REMOVE_ABC_BUFFERS (deprecated)| Remove abc buffers from the netlist. If timing repair in floorplanning is taking too long, use a SETUP/HOLD_SLACK_MARGIN to terminate timing repair early instead of using REMOVE_ABC_BUFFERS or set SKIP_LAST_GASP=1.| 0|
| <a name="REMOVE_CELLS_FOR_EQY"></a>REMOVE_CELLS_FOR_EQY| String patterns directly passed to write_verilog -remove_cells <> for equivalence checks.| |
| <a name="REMOVE_CELLS_FOR_LEC"></a>REMOVE_CELLS_FOR_LEC| String patterns directly passed to write_verilog -remove_cells <> for lec checks.| |
| <a name="REPAIR_PDN_VIA_LAYER"></a>REPAIR_PDN_VIA_LAYER| Remove power grid vias which generate DRC violations after detailed routing.| |
| <a name="REPORT_CLOCK_SKEW"></a>REPORT_CLOCK_SKEW| Report clock skew as part of reporting metrics, starting at CTS, before which there is no clock skew. This metric can be quite time-consuming, so it can be useful to disable.| 1|
| <a name="ROUTING_LAYER_ADJUSTMENT"></a>ROUTING_LAYER_ADJUSTMENT| Adjusts routing layer capacities to manage congestion and improve detailed routing. High values ease detailed routing but risk excessive detours and long global routing times, while low values reduce global routing failure but can complicate detailed routing. The global routing running time normally reduces dramatically (entirely design specific, but going from hours to minutes has been observed) when the value is low (such as 0.10). Sometimes, global routing will succeed with lower values and fail with higher values. Exploring results with different values can help shed light on the problem. Start with a too low value, such as 0.10, and bisect to value that works by doing multiple global routing runs. As a last resort, `make global_route_issue` and using the tools/OpenROAD/etc/deltaDebug.py can be useful to debug global routing errors. If there is something specific that is impossible to route, such as a clock line over a macro, global routing will terminate with DRC errors routes that could have been routed were it not for the specific impossible routes. deltaDebug.py should weed out the possible routes and leave a minimal failing case that pinpoints the problem.| 0.5|
| <a name="RTLMP_AREA_WT"></a>RTLMP_AREA_WT| Weight for the area of the current floorplan.| 0.1|
| <a name="RTLMP_ARGS"></a>RTLMP_ARGS| Overrides all other RTL macro placer arguments.| |
| <a name="RTLMP_BOUNDARY_WT"></a>RTLMP_BOUNDARY_WT| Weight for the boundary or how far the hard macro clusters are from boundaries.| 50.0|
| <a name="RTLMP_DATA_FLOW_DRIVEN"></a>RTLMP_DATA_FLOW_DRIVEN| Specifies whether the macro placer should use data-flow driven macro placement. Data-flow driven works by adding a wire length component that takes into account the data paths of the design. This optional can increase run time significantly for large designs.| 1|
| <a name="RTLMP_FENCE_LX"></a>RTLMP_FENCE_LX| Defines the lower left X coordinate for the global fence bounding box in microns.| 0.0|
| <a name="RTLMP_FENCE_LY"></a>RTLMP_FENCE_LY| Defines the lower left Y coordinate for the global fence bounding box in microns.| 0.0|
| <a name="RTLMP_FENCE_UX"></a>RTLMP_FENCE_UX| Defines the upper right X coordinate for the global fence bounding box in microns.| 0.0|
Expand All @@ -213,7 +214,7 @@ configuration file.
| <a name="RTLMP_MIN_AR"></a>RTLMP_MIN_AR| Specifies the minimum aspect ratio (height/width).| 0.33|
| <a name="RTLMP_MIN_INST"></a>RTLMP_MIN_INST| Minimum number of standard cells in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.| |
| <a name="RTLMP_MIN_MACRO"></a>RTLMP_MIN_MACRO| Minimum number of macros in a cluster. If unset, rtl_macro_placer will calculate a value based on the design attributes.| |
| <a name="RTLMP_NOTCH_WT"></a>RTLMP_NOTCH_WT| Weight for the notch, or the existence of dead space that cannot be used for placement and routing.| 10.0|
| <a name="RTLMP_NOTCH_WT"></a>RTLMP_NOTCH_WT| Weight for the notch, or the existence of dead space that cannot be used for placement and routing.| 50.0|
| <a name="RTLMP_OUTLINE_WT"></a>RTLMP_OUTLINE_WT| Weight for violating the fixed outline constraint, meaning that all clusters should be placed within the shape of their parent cluster.| 100.0|
| <a name="RTLMP_RPT_DIR"></a>RTLMP_RPT_DIR| Path to the directory where reports are saved.| |
| <a name="RTLMP_WIRELENGTH_WT"></a>RTLMP_WIRELENGTH_WT| Weight for half-perimiter wirelength.| 100.0|
Expand Down Expand Up @@ -351,7 +352,6 @@ configuration file.
- [RTLMP_AREA_WT](#RTLMP_AREA_WT)
- [RTLMP_ARGS](#RTLMP_ARGS)
- [RTLMP_BOUNDARY_WT](#RTLMP_BOUNDARY_WT)
- [RTLMP_DATA_FLOW_DRIVEN](#RTLMP_DATA_FLOW_DRIVEN)
- [RTLMP_FENCE_LX](#RTLMP_FENCE_LX)
- [RTLMP_FENCE_LY](#RTLMP_FENCE_LY)
- [RTLMP_FENCE_UX](#RTLMP_FENCE_UX)
Expand Down Expand Up @@ -423,6 +423,7 @@ configuration file.
- [DETAILED_METRICS](#DETAILED_METRICS)
- [EQUIVALENCE_CHECK](#EQUIVALENCE_CHECK)
- [HOLD_SLACK_MARGIN](#HOLD_SLACK_MARGIN)
- [LEC_CHECK](#LEC_CHECK)
- [MATCH_CELL_FOOTPRINT](#MATCH_CELL_FOOTPRINT)
- [MAX_REPAIR_TIMING_ITER](#MAX_REPAIR_TIMING_ITER)
- [POST_CTS_TCL](#POST_CTS_TCL)
Expand Down Expand Up @@ -541,6 +542,7 @@ configuration file.
- [PROCESS](#PROCESS)
- [RCX_RULES](#RCX_RULES)
- [RECOVER_POWER](#RECOVER_POWER)
- [REMOVE_CELLS_FOR_LEC](#REMOVE_CELLS_FOR_LEC)
- [REPAIR_PDN_VIA_LAYER](#REPAIR_PDN_VIA_LAYER)
- [RUN_LOG_NAME_STEM](#RUN_LOG_NAME_STEM)
- [RUN_SCRIPT](#RUN_SCRIPT)
Expand Down
37 changes: 26 additions & 11 deletions docs/user/InstructionsForAutoTuner.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,27 +122,28 @@ The order of the parameters matter. Arguments `--design`, `--platform` and
The following commands should be run from `./tools/AutoTuner`.
```

#### Tune only

* AutoTuner: `openroad_autotuner tune -h`
#### Tune only

Example:

```shell
openroad_autotuner --design gcd --platform sky130hd \
--config ../../flow/designs/sky130hd/gcd/autotuner.json \
tune --samples 5
python3 -m autotuner.distributed \
--design gcd \
--platform sky130hd \
--config ../../flow/designs/sky130hd/gcd/autotuner.json \
tune --samples 5
```
#### Sweep only

* Parameter sweeping: `openroad_autotuner sweep -h`
#### Sweep only

Example:

```shell
openroad_autotuner --design gcd --platform sky130hd \
--config src/autotuner/distributed-sweep-example.json \
sweep
python3 -m autotuner.distributed \
--design gcd \
--platform sky130hd \
--config src/autotuner/distributed-sweep-example.json \
sweep
```

#### Plot images
Expand All @@ -159,6 +160,19 @@ The graph will show the progression of one metric (see list below) over the exec
python3 utils/plot.py --results_dir <your-autotuner-result-path>
```

#### Work Directory

Use `--work-dir` to specify a writable directory for outputs. This is passed to ORFS as `WORK_HOME`.

```shell
python3 -m autotuner.distributed \
--design gcd \
--platform sky130hd \
--config ../../flow/designs/sky130hd/gcd/autotuner.json \
--work-dir /tmp/autotuner123 \
tune --samples 5
```

### Google Cloud Platform (GCP) distribution with Ray

GCP Setup Tutorial coming soon.
Expand All @@ -171,6 +185,7 @@ GCP Setup Tutorial coming soon.
| `--platform` | Name of the platform for Autotuning. ||
| `--config` | Configuration file that sets which knobs to use for Autotuning. ||
| `--experiment` | Experiment name. This parameter is used to prefix the FLOW_VARIANT and to set the Ray log destination.| test |
| `--work-dir` | Work directory for outputs (passed to ORFS as WORK_HOME). | Installation directory |
| `--git_clean` | Clean binaries and build files. **WARNING**: may lose previous data. ||
| `--git_clone` | Force new git clone. **WARNING**: may lose previous data. ||
| `--git_clone_args` | Additional git clone arguments. ||
Expand Down
Loading