From 17b8d39378b876967ce07e3f53fa4d498895127b Mon Sep 17 00:00:00 2001 From: Johan Euphrosine Date: Thu, 20 Jul 2023 17:30:26 +0900 Subject: [PATCH 1/3] build packages for python 3.10 - add py310 variant in workflow - openroad: use PYTHON_VERSION - klayout: use pin_compatible - github/workflows: restore symbiyosys skipped builds - pnr/openroad: add py_suffix - misc/netgen: remove python dep - misc/open_pdks: move python to build req --- .github/workflows/Build.yml | 138 +++++++++++++++++++++++++++-- misc/klayout/meta.yaml | 2 +- misc/netgen/meta.yaml | 3 - misc/open_pdks/gf180mcuc/meta.yaml | 2 +- misc/open_pdks/sky130a/meta.yaml | 4 +- pnr/openroad/meta.yaml | 9 +- 6 files changed, 143 insertions(+), 15 deletions(-) diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index d408a1d6..a658d3b0 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -132,8 +132,20 @@ jobs: - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} - uses: ./ci + yosys-linux-py310: + runs-on: [self-hosted, Linux, X64] + container: ubuntu:22.04 + env: + PACKAGE: "syn/yosys" + OS_NAME: "linux" + PYTHON_VERSION: "3.10" + steps: + - uses: actions/checkout@v3 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} + - uses: ./ci + yosys-plugins-symbiflow-linux: - needs: ["icarus-linux", "yosys-linux-py37", "yosys-linux-py38", "surelog-linux-py37", "surelog-linux-py38"] + needs: ["icarus-linux", "yosys-linux-py37", "yosys-linux-py38", "yosys-linux-py310", "surelog-linux-py37", "surelog-linux-py38", "surelog-linux-py310"] runs-on: [self-hosted, Linux, X64] container: ubuntu:20.04 env: @@ -157,7 +169,7 @@ jobs: - uses: ./ci symbiflow-yosys-plugins-linux: - needs: ["icarus-linux", "yosys-linux-py37", "yosys-linux-py38", "surelog-linux-py37", "surelog-linux-py38"] + needs: ["icarus-linux", "yosys-linux-py37", "yosys-linux-py38", "yosys-linux-py310", "surelog-linux-py37", "surelog-linux-py38", "surelog-linux-py310"] runs-on: [self-hosted, Linux, X64] container: ubuntu:20.04 env: @@ -319,6 +331,20 @@ jobs: - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} - uses: ./ci + symbiyosys-linux-py310: + needs: ["yosys-linux-py310"] + runs-on: [self-hosted, Linux, X64] + container: ubuntu:22.04 + env: + PACKAGE: "formal/symbiyosys" + OS_NAME: "linux" + PYTHON_VERSION: "3.10" + SKIP: "true" # See https://github.com/litex-hub/litex-conda-eda/issues/70 + steps: + - uses: actions/checkout@v3 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} + - uses: ./ci + xilinx-vivado-linux: runs-on: [self-hosted, Linux, X64] container: ubuntu:20.04 @@ -618,6 +644,19 @@ jobs: - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} - uses: ./ci + surelog-linux-py310: + needs: ["libunwind", "gperftools"] + runs-on: [self-hosted, Linux, X64] + container: ubuntu:22.04 + env: + PACKAGE: "sv-front/surelog" + OS_NAME: "linux" + PYTHON_VERSION: "3.10" + steps: + - uses: actions/checkout@v3 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} + - uses: ./ci + surelog-uhdm-linux-py37: needs: ["libunwind", "gperftools"] runs-on: [self-hosted, Linux, X64] @@ -646,6 +685,20 @@ jobs: - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} default-jre - uses: ./ci + surelog-uhdm-linux-py310: + needs: ["libunwind", "gperftools"] + runs-on: [self-hosted, Linux, X64] + container: ubuntu:22.04 + env: + PACKAGE: "sv-front/surelog-uhdm" + USE_SYSTEM_GCC_VERSION: "9" + OS_NAME: "linux" + PYTHON_VERSION: "3.10" + steps: + - uses: actions/checkout@v3 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} default-jre + - uses: ./ci + yosys-uhdm-linux-py37: needs: ["libunwind", "gperftools"] runs-on: [self-hosted, Linux, X64] @@ -672,6 +725,19 @@ jobs: - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} - uses: ./ci + yosys-uhdm-linux-py310: + needs: ["libunwind", "gperftools"] + runs-on: [self-hosted, Linux, X64] + container: ubuntu:22.04 + env: + PACKAGE: "syn/yosys-uhdm" + OS_NAME: "linux" + PYTHON_VERSION: "3.10" + steps: + - uses: actions/checkout@v3 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} + - uses: ./ci + libunwind: runs-on: [self-hosted, Linux, X64] container: ubuntu:20.04 @@ -721,6 +787,19 @@ jobs: - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} default-jre - uses: ./ci + verilator-uhdm-linux-py310: + needs: ["gperftools"] + runs-on: [self-hosted, Linux, X64] + container: ubuntu:22.04 + env: + PACKAGE: "sim/verilator-uhdm" + OS_NAME: "linux" + PYTHON_VERSION: "3.10" + steps: + - uses: actions/checkout@v3 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} default-jre + - uses: ./ci + netgen-linux: runs-on: [self-hosted, Linux, X64] container: ubuntu:20.04 @@ -764,15 +843,40 @@ jobs: OS_NAME: "linux" steps: - uses: actions/checkout@v3 - - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} libxrender1 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} libxrender1 + - uses: ./ci + + openroad-linux-py37: + runs-on: [self-hosted, Linux, X64] + container: ubuntu:20.04 + env: + PACKAGE: "pnr/openroad" + OS_NAME: "linux" + PYTHON_VERSION: "3.7" + steps: + - uses: actions/checkout@v3 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} - uses: ./ci - openroad-linux: + openroad-linux-py38: runs-on: [self-hosted, Linux, X64] container: ubuntu:20.04 env: PACKAGE: "pnr/openroad" OS_NAME: "linux" + PYTHON_VERSION: "3.8" + steps: + - uses: actions/checkout@v3 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} + - uses: ./ci + + openroad-linux-py310: + runs-on: [self-hosted, Linux, X64] + container: ubuntu:22.04 + env: + PACKAGE: "pnr/openroad" + OS_NAME: "linux" + PYTHON_VERSION: "3.10" steps: - uses: actions/checkout@v3 - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} @@ -792,7 +896,7 @@ jobs: - uses: ./ci openlane-linux: - needs: ["magic-linux", "netgen-linux", "openroad-linux", "yosys-linux-py37", "yosys-linux-py38"] + needs: ["magic-linux", "netgen-linux", "openroad-linux-py37", "openroad-linux-py38", "openroad-linux-py310", "yosys-linux-py37", "yosys-linux-py38", "yosys-linux-py310", "tcllib-linux"] runs-on: [self-hosted, Linux, X64] container: ubuntu:20.04 env: @@ -837,6 +941,30 @@ jobs: - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} - uses: ./ci + klayout-linux-py38: + runs-on: [self-hosted, Linux, X64] + container: ubuntu:20.04 + env: + PACKAGE: "misc/klayout" + OS_NAME: "linux" + PYTHON_VERSION: "3.8" + steps: + - uses: actions/checkout@v3 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} + - uses: ./ci + + klayout-linux-py310: + runs-on: [self-hosted, Linux, X64] + container: ubuntu:22.04 + env: + PACKAGE: "misc/klayout" + OS_NAME: "linux" + PYTHON_VERSION: "3.10" + steps: + - uses: actions/checkout@v3 + - run: apt -qqy update && apt -qqy install ${{ env.APT_REQUIREMENTS }} + - uses: ./ci + ngspice-linux: runs-on: [self-hosted, Linux, X64] container: ubuntu:20.04 diff --git a/misc/klayout/meta.yaml b/misc/klayout/meta.yaml index 80fc85c4..fef1436f 100644 --- a/misc/klayout/meta.yaml +++ b/misc/klayout/meta.yaml @@ -46,7 +46,7 @@ requirements: - qt >=5.0,<6.0 - zlib run: - - python {{ python_version }} + - {{ pin_compatible('python', min_pin='x.x', max_pin='x.x') }} - ruby - qt >=5.0,<6.0 - zlib diff --git a/misc/netgen/meta.yaml b/misc/netgen/meta.yaml index e2532dea..3450a8f9 100644 --- a/misc/netgen/meta.yaml +++ b/misc/netgen/meta.yaml @@ -28,10 +28,7 @@ requirements: - {{ cdt('libxau-devel') }} # [linux] - {{ cdt('libxcb') }} # [linux] host: - - python - tk - run: - - python test: commands: diff --git a/misc/open_pdks/gf180mcuc/meta.yaml b/misc/open_pdks/gf180mcuc/meta.yaml index f12eabe9..2799d1a1 100644 --- a/misc/open_pdks/gf180mcuc/meta.yaml +++ b/misc/open_pdks/gf180mcuc/meta.yaml @@ -55,8 +55,8 @@ requirements: - autoconf - automake - make - host: - python + host: - magic run_constrained: - {{ pin_compatible('magic', min_pin='x.x.x', max_pin='x.x.x') }} diff --git a/misc/open_pdks/sky130a/meta.yaml b/misc/open_pdks/sky130a/meta.yaml index 61411c45..ed798daf 100644 --- a/misc/open_pdks/sky130a/meta.yaml +++ b/misc/open_pdks/sky130a/meta.yaml @@ -38,9 +38,9 @@ requirements: - autoconf - automake - make - host: - - python 3.10 + - python - pip + host: - typing_inspect - marshmallow - marshmallow-enum diff --git a/pnr/openroad/meta.yaml b/pnr/openroad/meta.yaml index ee6eac0c..8efe1082 100644 --- a/pnr/openroad/meta.yaml +++ b/pnr/openroad/meta.yaml @@ -1,5 +1,8 @@ # Use `conda-build-prepare` before building for a better version string. {% set version = '%s_%04i_%s'|format(GIT_DESCRIBE_TAG|replace('v', '')|replace('-', '')|default('0.X'), GIT_DESCRIBE_NUMBER|int, GIT_DESCRIBE_HASH|default('gUNKNOWN')) %} + +{% set python_version = PYTHON_VERSION | default('3.7') %} +{% set py_suffix = 'py%s'|format(python_version|replace('.', '')) %} {% set lemon_version = '1.3.1' %} {% set lemon_md5 = 'e89f887559113b68657eca67cf3329b5' %} package: @@ -20,8 +23,8 @@ source: build: # number: 202202031935 number: {{ environ.get('DATE_NUM') }} - # string: 20220203_1935 - string: {{ environ.get('DATE_STR') }} + # string: 20220203_1935_py37 + string: {{ environ.get('DATE_STR') }}_{{ py_suffix }} script_env: - CI ignore_run_exports_from: @@ -47,7 +50,7 @@ requirements: - {{ cdt('mesa-dri-drivers') }} # [linux] - {{ cdt('libselinux-devel') }} # [linux] host: - - python 3.10 + - python {{ python_version }} - libboost 1.73 - eigen 3.3 - spdlog 1.9 From 2523f40b9203222ea639d8e7e9701cfda1ac7844 Mon Sep 17 00:00:00 2001 From: Johan Euphrosine Date: Thu, 20 Jul 2023 23:10:25 +0900 Subject: [PATCH 2/3] misc/open_pdks/sky130a: apply google/skywater-pdk#423 --- misc/open_pdks/sky130a/423.patch | 22 ++++++++++++++++++++++ misc/open_pdks/sky130a/meta.yaml | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 misc/open_pdks/sky130a/423.patch diff --git a/misc/open_pdks/sky130a/423.patch b/misc/open_pdks/sky130a/423.patch new file mode 100644 index 00000000..976b3b75 --- /dev/null +++ b/misc/open_pdks/sky130a/423.patch @@ -0,0 +1,22 @@ +diff --git a/scripts/python-skywater-pdk/skywater_pdk/liberty.py b/scripts/python-skywater-pdk/skywater_pdk/liberty.py +index 77f2bb58b..52da7d459 100755 +--- a/scripts/python-skywater-pdk/skywater_pdk/liberty.py ++++ b/scripts/python-skywater-pdk/skywater_pdk/liberty.py +@@ -83,7 +83,7 @@ class TimingType(enum.IntFlag): + + def names(self): + o = [] +- for t in TimingType: ++ for _, t in TimingType.__members__.items(): + if t in self: + o.append(t.name) + return ", ".join(o) +@@ -123,7 +123,7 @@ def singular(self): + + @property + def types(self): +- tt = set(t for t in TimingType if t in self) ++ tt = set(t for _, t in TimingType.__members__.items() if t in self) + if TimingType.ccsnoise in tt: + tt.remove(TimingType.basic) + return list(tt) diff --git a/misc/open_pdks/sky130a/meta.yaml b/misc/open_pdks/sky130a/meta.yaml index ed798daf..271451b8 100644 --- a/misc/open_pdks/sky130a/meta.yaml +++ b/misc/open_pdks/sky130a/meta.yaml @@ -11,6 +11,8 @@ source: # use url below to prevent submodules - url: https://github.com/google/skywater-pdk/archive/49d3c73c2cd8ea42cdae5056440baef0f72e7e42.zip folder: skywater-pdk + patches: + - 423.patch # drop when google/skywater-pdk#423 is merged - url: https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hd/archive/ac7fb61f06e6470b94e8afdf7c25268f62fbd7b1.zip folder: skywater-pdk/libraries/sky130_fd_sc_hd/latest - url: https://github.com/google/skywater-pdk-libs-sky130_fd_sc_hvl/archive/4fd4f858d16c558a6a488b200649e909bb4dd800.zip From da784733b4e7ee031f4aed903f5bad83c922c59c Mon Sep 17 00:00:00 2001 From: Johan Euphrosine Date: Thu, 20 Jul 2023 21:06:48 +0900 Subject: [PATCH 3/3] openlane: update test design --- misc/openlane/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/openlane/meta.yaml b/misc/openlane/meta.yaml index 81f6c6f0..85b0b5f0 100644 --- a/misc/openlane/meta.yaml +++ b/misc/openlane/meta.yaml @@ -38,7 +38,7 @@ test: requires: - open_pdks.sky130a commands: - - PDK=sky130A STD_CELL_LIBRARY=sky130_fd_sc_hd STD_CELL_LIBRARY_OPT=sky130_fd_sc_hd flow.tcl -design inverter + - PDK=sky130A STD_CELL_LIBRARY=sky130_fd_sc_hd STD_CELL_LIBRARY_OPT=sky130_fd_sc_hd flow.tcl -design spm about: home: https://github.com/The-OpenROAD-Project/OpenLane