From f51457cf398aada7f77154fc79e85feb1e77ea2b Mon Sep 17 00:00:00 2001 From: abejgonzalez Date: Sun, 5 Feb 2023 14:51:28 -0800 Subject: [PATCH] More robust splitting of BB filelists | Missed pre-commit | Removed old conda.yaml --- common.mk | 9 +- conda-reqs/chipyard.yaml | 1 + ...irements-esp-tools-linux-64.conda-lock.yml | 157 +++++++++++++----- ...ements-riscv-tools-linux-64.conda-lock.yml | 157 +++++++++++++----- conda-requirements-riscv-tools.yaml | 134 --------------- scripts/split-bb-files.py | 140 +++++----------- variables.mk | 2 + 7 files changed, 285 insertions(+), 315 deletions(-) delete mode 100644 conda-requirements-riscv-tools.yaml diff --git a/common.mk b/common.mk index 5d3ab805..96767e0d 100644 --- a/common.mk +++ b/common.mk @@ -219,12 +219,11 @@ $(TOP_MODS_FILELIST) $(MODEL_MODS_FILELIST) $(ALL_MODS_FILELIST) $(BB_MODS_FILEL $(SED) -i 's/\.\///' $(BB_MODS_FILELIST) sort -u $(TOP_MODS_FILELIST) $(MODEL_MODS_FILELIST) $(BB_MODS_FILELIST) > $(ALL_MODS_FILELIST) -$(TOP_BB_MODS_FILELIST) $(MODEL_BB_MODS_FILELIST) &: $(BB_MODS_FILELIST) $(MFC_MODEL_HRCHY_JSON) $(TOP_MODS_FILELIST) $(MODEL_MODS_FILELIST) +$(TOP_BB_MODS_FILELIST) $(MODEL_BB_MODS_FILELIST) &: $(BB_MODS_FILELIST) $(MFC_TOP_HRCHY_JSON) $(FINAL_ANNO_FILE) $(base_dir)/scripts/split-bb-files.py \ - --in-top-f $(TOP_MODS_FILELIST) \ - --in-model-f $(MODEL_MODS_FILELIST) \ - --in-top-hrchy-json $(MFC_MODEL_HRCHY_JSON) \ --in-bb-f $(BB_MODS_FILELIST) \ + --in-top-hrchy-json $(MFC_TOP_HRCHY_JSON) \ + --in-anno-json $(FINAL_ANNO_FILE) \ --out-top-bb-f $(TOP_BB_MODS_FILELIST) \ --out-model-bb-f $(MODEL_BB_MODS_FILELIST) @@ -248,6 +247,8 @@ $(MODEL_SMEMS_FILE) $(MODEL_SMEMS_FIR) &: $(MODEL_SMEMS_CONF) | $(TOP_SMEMS_FILE ######################################################################################## # remove duplicate files and headers in list of simulation file inputs +# note: {MODEL,TOP}_BB_MODS_FILELIST is added as a req. so that the files get generated, +# however it is really unneeded since ALL_MODS_FILELIST includes all BB files ######################################################################################## $(sim_common_files): $(sim_files) $(ALL_MODS_FILELIST) $(TOP_SMEMS_FILE) $(MODEL_SMEMS_FILE) $(TOP_BB_MODS_FILELIST) $(MODEL_BB_MODS_FILELIST) sort -u $(sim_files) $(ALL_MODS_FILELIST) | grep -v '.*\.\(svh\|h\)$$' > $@ diff --git a/conda-reqs/chipyard.yaml b/conda-reqs/chipyard.yaml index 32347f33..1d6931eb 100644 --- a/conda-reqs/chipyard.yaml +++ b/conda-reqs/chipyard.yaml @@ -91,6 +91,7 @@ dependencies: - wget - sed - autoconf + - pre-commit # clang-format for driver coding style enforcement. - clang-format diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml index b45d3b8f..f43ca0d4 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-esp-tools-linux-64.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml +# conda-lock -f /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/esp-tools.yaml -f /scratch/abejgonza/chipyard/conda-reqs/chipyard.yaml -f /scratch/abejgonza/chipyard/conda-reqs/esp-tools.yaml --lockfile conda-requirements-esp-tools-linux-64.conda-lock.yml metadata: channels: - url: ucb-bar @@ -19,12 +19,14 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: 5355d154355d9639a93294ab6bb4385fea9c6e942dbce5c6bd7b8940004c5ee3 + linux-64: 10c97fbff3e98c5a8d68013bc08fdb0615cef44fab34016106915cd904fa5329 platforms: - linux-64 sources: - /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml - /scratch/abejgonza/cy-circt/conda-reqs/esp-tools.yaml + - /scratch/abejgonza/chipyard/conda-reqs/chipyard.yaml + - /scratch/abejgonza/chipyard/conda-reqs/esp-tools.yaml package: - category: main dependencies: {} @@ -1548,18 +1550,18 @@ package: version: 1.5.2 - category: main dependencies: - libgcc-ng: '>=9.4.0' + libgcc-ng: '>=12' m4: '' perl: 5.* hash: - md5: 47f6f07d64d6ea9d2c806ff42023e7e3 - sha256: 57b977849da4ff3a9c62ff632dcb62f48697c7d3698804230f4b9a43b2ce1a39 + md5: 50cabb1aee157a18082c7c92cc4b3143 + sha256: 04868bf7a2737af8c8a828b2c4b59653180a91da9c3ece77bae4e429a1b84cc1 manager: conda name: autoconf optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/autoconf-2.69-pl5321hd708f79_11.tar.bz2 - version: '2.69' + url: https://conda.anaconda.org/conda-forge/linux-64/autoconf-2.71-pl5321h2b4cb7a_1.conda + version: '2.71' - category: main dependencies: libgcc-ng: '>=10.3.0' @@ -1846,14 +1848,14 @@ package: tzdata: '' xz: '>=5.2.6,<6.0a0' hash: - md5: 7b9485fce17fac2dd4aca6117a9936c2 - sha256: 159a1ba8789317fa0b6649b88c5f302a7022be86e69d2edf652065177c88c209 + md5: 95c9b7c96a7fd7342e0c9d0a917b8f78 + sha256: 00bcb28a294aa78bf9d2a2ecaae8cb887188eae710f9197d823d36fb8a5d9767 manager: conda name: python optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.15-hba424b6_0_cpython.conda - version: 3.9.15 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.16-h2782a2a_0_cpython.conda + version: 3.9.16 - category: main dependencies: libgcc-ng: '>=12' @@ -2006,6 +2008,18 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/certifi-2022.12.7-pyhd8ed1ab_0.conda version: 2022.12.7 +- category: main + dependencies: + python: '>=3.6.1' + hash: + md5: ebb5f5f7dc4f1a3780ef7ea7738db08c + sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c + manager: conda + name: cfgv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 + version: 3.3.1 - category: main dependencies: python: '>=3.6' @@ -2020,16 +2034,16 @@ package: version: 2.1.1 - category: main dependencies: - __unix: '' - python: '>=3.8' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 20e4087407c7cb04a40817114b333dbf - sha256: 23676470b591b100393bb0f6c46fe10624dcbefc696a6a9f42932ed8816ef0ea + md5: 3613ff4128b3e565d048106196206929 + sha256: 21c425ecc4e6f4ec97aab1285b22ad629c75d2efb62f89cd6d9618ab6a2e606c manager: conda name: click optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.3-unix_pyhd8ed1ab_2.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/click-8.1.3-py39hf3d152e_1.tar.bz2 version: 8.1.3 - category: main dependencies: @@ -2523,14 +2537,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: a49da0929650af17fc943a90465e6ffc - sha256: ab5bad66e70a9ea1f434da0d5c191d3e31790308e1de6b1235cfc599ec90a374 + md5: 73f58b7725491858c60b748f90e4ded9 + sha256: a9bc30196c12e9ef68ab69129b71118c1e7a45c52eb279cbe2e4938b781d93ce manager: conda name: mypy_extensions optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/mypy_extensions-0.4.3-py39hf3d152e_6.tar.bz2 - version: 0.4.3 + url: https://conda.anaconda.org/conda-forge/linux-64/mypy_extensions-0.4.4-py39hf3d152e_0.conda + version: 0.4.4 - category: main dependencies: python: '>=3.8' @@ -2614,15 +2628,16 @@ package: version: 1.9.6 - category: main dependencies: - python: '>=3.8' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 7d301a0d25f424d96175f810935f0da9 - sha256: c25e1757e4e90638bb1e778aba3ee5f3c01fae9752e3c3929f9be7d367f6c7f3 + md5: d86903c57fe229d9dd8878a6dd9d149f + sha256: abf2d34464c6255d35703e3c9477475e3e6e353ca8675990596d2477cdbc5b52 manager: conda name: pluggy optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.0.0-pyhd8ed1ab_5.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/pluggy-1.0.0-py39hf3d152e_4.tar.bz2 version: 1.0.0 - category: main dependencies: @@ -2766,16 +2781,16 @@ package: version: 0.19.3 - category: main dependencies: - __unix: '' - python: '>=3.8' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 2a7de29fb590ca14b5243c4c812c8025 - sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + md5: d34b97a2386932b97c7cb80916a673e7 + sha256: 42d46baeab725d3c70d22a4258549e9f0f1a72b740166cd9c3b394c4369cb306 manager: conda name: pysocks optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py39hf3d152e_5.tar.bz2 version: 1.7.1 - category: main dependencies: @@ -3134,14 +3149,14 @@ package: dependencies: python: '>=3.7' hash: - md5: 6df990e93f39e91a3f45d4d885404d56 - sha256: 2762ff6c126ab17219933500cdbb0e6d0e73aa26545c87c8f54346f1391f408b + md5: 2a914654b9ade742049dab13e29571c6 + sha256: 7a2c359d12a13e505b74cd82686f98379113c9b4be01f6685167ba137b286127 manager: conda name: websocket-client optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.5.0-pyhd8ed1ab_0.conda - version: 1.5.0 + url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.5.1-pyhd8ed1ab_0.conda + version: 1.5.1 - category: main dependencies: python: '>=3.7' @@ -3226,14 +3241,14 @@ package: dependencies: python: '>=3.7' hash: - md5: edc3568566cc48335f0b5d86d40fdbb9 - sha256: f07ac97de32d5954f5ae0aaf4dd5fdae85b70f139d02d5e0c296f1c2caf0c8ed + md5: 7cc265528c9db5e40a771438108f6810 + sha256: b0b7af936586069051cb43a120ac4dd04a795fdb93a21479e7dea78c8780bd0d manager: conda name: zipp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.12.0-pyhd8ed1ab_0.conda - version: 3.12.0 + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.12.1-pyhd8ed1ab_0.conda + version: 3.12.1 - category: main dependencies: python: '>=3.6' @@ -3656,6 +3671,19 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/mypy-0.931-py39h3811e60_2.tar.bz2 version: '0.931' +- category: main + dependencies: + python: 2.7|>=3.7 + setuptools: '' + hash: + md5: fbe1182f650c04513046d6894046cd6c + sha256: 8f5afb243a9dd4ba6961eacc7d3c3da104cdc30162de863164b09f8920493d46 + manager: conda + name: nodeenv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.7.0-pyhd8ed1ab_0.tar.bz2 + version: 1.7.0 - category: main dependencies: ptyprocess: '>=0.5' @@ -3672,9 +3700,9 @@ package: - category: main dependencies: freetype: '>=2.12.1,<3.0a0' + jpeg: '>=9e,<10a' lcms2: '>=2.14,<3.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.4,<3.0a0' libtiff: '>=4.5.0,<4.6.0a0' libwebp-base: '>=1.2.4,<2.0a0' libxcb: '>=1.13,<1.14.0a0' @@ -3684,13 +3712,13 @@ package: python_abi: 3.9.* *_cp39 tk: '>=8.6.12,<8.7.0a0' hash: - md5: d62ba9d1a981544c809813afaf0be5c0 - sha256: 3b40338a25a498bb31c37c79814a4c5d74962d7c8e0c82071f7a0fb814daf080 + md5: d2f79132b9c8e416058a4cd84ef27b3d + sha256: 77348588ae7cc8034b63e8a71b6695ba22761e1c531678e724cf06a12be3d1e2 manager: conda name: pillow optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pillow-9.4.0-py39ha08a7e4_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-9.4.0-py39h2320bf1_1.conda version: 9.4.0 - category: main dependencies: @@ -4184,6 +4212,22 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.7.0-pyhd8ed1ab_1.tar.bz2 version: 3.7.0 +- category: main + dependencies: + cffi: '' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 + hash: + md5: 0f11bcdf9669a5ae0f39efd8c830209a + sha256: c0cfb2935d12f6300c65e8503eacdabe34d4b125ce0c3c87a0818e2d72c0c056 + manager: conda + name: ukkonen + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py39hf939315_3.tar.bz2 + version: 1.0.1 - category: main dependencies: libgcc-ng: '>=9.3.0' @@ -4275,6 +4319,19 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/flask_cors-3.0.10-pyhd3deb0d_0.tar.bz2 version: 3.0.10 +- category: main + dependencies: + python: '>=3.6' + ukkonen: '' + hash: + md5: a26b5ead210b1c8938c8a6a0c0fb2bed + sha256: 0f904ff1af465077491ac6d1bc1207779ac74d926a187ea3cd1b5e2febfe311b + manager: conda + name: identify + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.17-pyhd8ed1ab_0.conda + version: 2.5.17 - category: main dependencies: importlib_metadata: '' @@ -4536,6 +4593,24 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.54.4-h7abd40a_0.tar.bz2 version: 2.54.4 +- category: main + dependencies: + cfgv: '>=2.0.0' + identify: '>=1.0.0' + nodeenv: '>=0.11.1' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 + pyyaml: '>=5.1' + virtualenv: '>=20.0.8' + hash: + md5: 9800c173ab73153bbed00e51a0f86c83 + sha256: b93e2f0ef4639347373bba685dec1892a21de923ea9d51cabafe75c189f82c2d + manager: conda + name: pre-commit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pre-commit-3.0.3-py39hf3d152e_0.conda + version: 3.0.3 - category: main dependencies: __unix: '' diff --git a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml index 1e7933e3..0f31485d 100644 --- a/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml +++ b/conda-reqs/conda-lock-reqs/conda-requirements-riscv-tools-linux-64.conda-lock.yml @@ -9,7 +9,7 @@ # To update a single package to the latest version compatible with the version constraints in the source: # conda-lock lock --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml --update PACKAGE # To re-solve the entire environment, e.g. after changing a version constraint in the source file: -# conda-lock -f /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml +# conda-lock -f /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml -f /scratch/abejgonza/cy-circt/conda-reqs/riscv-tools.yaml -f /scratch/abejgonza/chipyard/conda-reqs/chipyard.yaml -f /scratch/abejgonza/chipyard/conda-reqs/riscv-tools.yaml --lockfile conda-requirements-riscv-tools-linux-64.conda-lock.yml metadata: channels: - url: ucb-bar @@ -19,12 +19,14 @@ metadata: - url: nodefaults used_env_vars: [] content_hash: - linux-64: 018e415637315593469f01c8f9b46d7006c95d919144866a9460ea34395ea604 + linux-64: 1fcefa1e4e6d9794ea47d5d139b0d4b9d4381ae536f9519c8a1efa82644a9f83 platforms: - linux-64 sources: - /scratch/abejgonza/cy-circt/conda-reqs/chipyard.yaml - /scratch/abejgonza/cy-circt/conda-reqs/riscv-tools.yaml + - /scratch/abejgonza/chipyard/conda-reqs/chipyard.yaml + - /scratch/abejgonza/chipyard/conda-reqs/riscv-tools.yaml package: - category: main dependencies: {} @@ -1548,18 +1550,18 @@ package: version: 1.5.2 - category: main dependencies: - libgcc-ng: '>=9.4.0' + libgcc-ng: '>=12' m4: '' perl: 5.* hash: - md5: 47f6f07d64d6ea9d2c806ff42023e7e3 - sha256: 57b977849da4ff3a9c62ff632dcb62f48697c7d3698804230f4b9a43b2ce1a39 + md5: 50cabb1aee157a18082c7c92cc4b3143 + sha256: 04868bf7a2737af8c8a828b2c4b59653180a91da9c3ece77bae4e429a1b84cc1 manager: conda name: autoconf optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/autoconf-2.69-pl5321hd708f79_11.tar.bz2 - version: '2.69' + url: https://conda.anaconda.org/conda-forge/linux-64/autoconf-2.71-pl5321h2b4cb7a_1.conda + version: '2.71' - category: main dependencies: libgcc-ng: '>=10.3.0' @@ -1846,14 +1848,14 @@ package: tzdata: '' xz: '>=5.2.6,<6.0a0' hash: - md5: 7b9485fce17fac2dd4aca6117a9936c2 - sha256: 159a1ba8789317fa0b6649b88c5f302a7022be86e69d2edf652065177c88c209 + md5: 95c9b7c96a7fd7342e0c9d0a917b8f78 + sha256: 00bcb28a294aa78bf9d2a2ecaae8cb887188eae710f9197d823d36fb8a5d9767 manager: conda name: python optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.15-hba424b6_0_cpython.conda - version: 3.9.15 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.9.16-h2782a2a_0_cpython.conda + version: 3.9.16 - category: main dependencies: libgcc-ng: '>=12' @@ -2006,6 +2008,18 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/certifi-2022.12.7-pyhd8ed1ab_0.conda version: 2022.12.7 +- category: main + dependencies: + python: '>=3.6.1' + hash: + md5: ebb5f5f7dc4f1a3780ef7ea7738db08c + sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c + manager: conda + name: cfgv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 + version: 3.3.1 - category: main dependencies: python: '>=3.6' @@ -2020,16 +2034,16 @@ package: version: 2.1.1 - category: main dependencies: - __unix: '' - python: '>=3.8' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 20e4087407c7cb04a40817114b333dbf - sha256: 23676470b591b100393bb0f6c46fe10624dcbefc696a6a9f42932ed8816ef0ea + md5: 3613ff4128b3e565d048106196206929 + sha256: 21c425ecc4e6f4ec97aab1285b22ad629c75d2efb62f89cd6d9618ab6a2e606c manager: conda name: click optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.3-unix_pyhd8ed1ab_2.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/click-8.1.3-py39hf3d152e_1.tar.bz2 version: 8.1.3 - category: main dependencies: @@ -2506,14 +2520,14 @@ package: python: '>=3.9,<3.10.0a0' python_abi: 3.9.* *_cp39 hash: - md5: a49da0929650af17fc943a90465e6ffc - sha256: ab5bad66e70a9ea1f434da0d5c191d3e31790308e1de6b1235cfc599ec90a374 + md5: 73f58b7725491858c60b748f90e4ded9 + sha256: a9bc30196c12e9ef68ab69129b71118c1e7a45c52eb279cbe2e4938b781d93ce manager: conda name: mypy_extensions optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/mypy_extensions-0.4.3-py39hf3d152e_6.tar.bz2 - version: 0.4.3 + url: https://conda.anaconda.org/conda-forge/linux-64/mypy_extensions-0.4.4-py39hf3d152e_0.conda + version: 0.4.4 - category: main dependencies: python: '>=3.8' @@ -2597,15 +2611,16 @@ package: version: 1.9.6 - category: main dependencies: - python: '>=3.8' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 7d301a0d25f424d96175f810935f0da9 - sha256: c25e1757e4e90638bb1e778aba3ee5f3c01fae9752e3c3929f9be7d367f6c7f3 + md5: d86903c57fe229d9dd8878a6dd9d149f + sha256: abf2d34464c6255d35703e3c9477475e3e6e353ca8675990596d2477cdbc5b52 manager: conda name: pluggy optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.0.0-pyhd8ed1ab_5.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/pluggy-1.0.0-py39hf3d152e_4.tar.bz2 version: 1.0.0 - category: main dependencies: @@ -2749,16 +2764,16 @@ package: version: 0.19.3 - category: main dependencies: - __unix: '' - python: '>=3.8' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 hash: - md5: 2a7de29fb590ca14b5243c4c812c8025 - sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + md5: d34b97a2386932b97c7cb80916a673e7 + sha256: 42d46baeab725d3c70d22a4258549e9f0f1a72b740166cd9c3b394c4369cb306 manager: conda name: pysocks optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py39hf3d152e_5.tar.bz2 version: 1.7.1 - category: main dependencies: @@ -3134,14 +3149,14 @@ package: dependencies: python: '>=3.7' hash: - md5: 6df990e93f39e91a3f45d4d885404d56 - sha256: 2762ff6c126ab17219933500cdbb0e6d0e73aa26545c87c8f54346f1391f408b + md5: 2a914654b9ade742049dab13e29571c6 + sha256: 7a2c359d12a13e505b74cd82686f98379113c9b4be01f6685167ba137b286127 manager: conda name: websocket-client optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.5.0-pyhd8ed1ab_0.conda - version: 1.5.0 + url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.5.1-pyhd8ed1ab_0.conda + version: 1.5.1 - category: main dependencies: python: '>=3.7' @@ -3226,14 +3241,14 @@ package: dependencies: python: '>=3.7' hash: - md5: edc3568566cc48335f0b5d86d40fdbb9 - sha256: f07ac97de32d5954f5ae0aaf4dd5fdae85b70f139d02d5e0c296f1c2caf0c8ed + md5: 7cc265528c9db5e40a771438108f6810 + sha256: b0b7af936586069051cb43a120ac4dd04a795fdb93a21479e7dea78c8780bd0d manager: conda name: zipp optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.12.0-pyhd8ed1ab_0.conda - version: 3.12.0 + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.12.1-pyhd8ed1ab_0.conda + version: 3.12.1 - category: main dependencies: python: '>=3.6' @@ -3656,6 +3671,19 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/mypy-0.931-py39h3811e60_2.tar.bz2 version: '0.931' +- category: main + dependencies: + python: 2.7|>=3.7 + setuptools: '' + hash: + md5: fbe1182f650c04513046d6894046cd6c + sha256: 8f5afb243a9dd4ba6961eacc7d3c3da104cdc30162de863164b09f8920493d46 + manager: conda + name: nodeenv + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.7.0-pyhd8ed1ab_0.tar.bz2 + version: 1.7.0 - category: main dependencies: ptyprocess: '>=0.5' @@ -3672,9 +3700,9 @@ package: - category: main dependencies: freetype: '>=2.12.1,<3.0a0' + jpeg: '>=9e,<10a' lcms2: '>=2.14,<3.0a0' libgcc-ng: '>=12' - libjpeg-turbo: '>=2.1.4,<3.0a0' libtiff: '>=4.5.0,<4.6.0a0' libwebp-base: '>=1.2.4,<2.0a0' libxcb: '>=1.13,<1.14.0a0' @@ -3684,13 +3712,13 @@ package: python_abi: 3.9.* *_cp39 tk: '>=8.6.12,<8.7.0a0' hash: - md5: d62ba9d1a981544c809813afaf0be5c0 - sha256: 3b40338a25a498bb31c37c79814a4c5d74962d7c8e0c82071f7a0fb814daf080 + md5: d2f79132b9c8e416058a4cd84ef27b3d + sha256: 77348588ae7cc8034b63e8a71b6695ba22761e1c531678e724cf06a12be3d1e2 manager: conda name: pillow optional: false platform: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pillow-9.4.0-py39ha08a7e4_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-9.4.0-py39h2320bf1_1.conda version: 9.4.0 - category: main dependencies: @@ -4184,6 +4212,22 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.7.0-pyhd8ed1ab_1.tar.bz2 version: 3.7.0 +- category: main + dependencies: + cffi: '' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 + hash: + md5: 0f11bcdf9669a5ae0f39efd8c830209a + sha256: c0cfb2935d12f6300c65e8503eacdabe34d4b125ce0c3c87a0818e2d72c0c056 + manager: conda + name: ukkonen + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py39hf939315_3.tar.bz2 + version: 1.0.1 - category: main dependencies: libgcc-ng: '>=9.3.0' @@ -4275,6 +4319,19 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/noarch/flask_cors-3.0.10-pyhd3deb0d_0.tar.bz2 version: 3.0.10 +- category: main + dependencies: + python: '>=3.6' + ukkonen: '' + hash: + md5: a26b5ead210b1c8938c8a6a0c0fb2bed + sha256: 0f904ff1af465077491ac6d1bc1207779ac74d926a187ea3cd1b5e2febfe311b + manager: conda + name: identify + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.17-pyhd8ed1ab_0.conda + version: 2.5.17 - category: main dependencies: importlib_metadata: '' @@ -4536,6 +4593,24 @@ package: platform: linux-64 url: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.54.4-h7abd40a_0.tar.bz2 version: 2.54.4 +- category: main + dependencies: + cfgv: '>=2.0.0' + identify: '>=1.0.0' + nodeenv: '>=0.11.1' + python: '>=3.9,<3.10.0a0' + python_abi: 3.9.* *_cp39 + pyyaml: '>=5.1' + virtualenv: '>=20.0.8' + hash: + md5: 9800c173ab73153bbed00e51a0f86c83 + sha256: b93e2f0ef4639347373bba685dec1892a21de923ea9d51cabafe75c189f82c2d + manager: conda + name: pre-commit + optional: false + platform: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pre-commit-3.0.3-py39hf3d152e_0.conda + version: 3.0.3 - category: main dependencies: __unix: '' diff --git a/conda-requirements-riscv-tools.yaml b/conda-requirements-riscv-tools.yaml deleted file mode 100644 index bbc06729..00000000 --- a/conda-requirements-riscv-tools.yaml +++ /dev/null @@ -1,134 +0,0 @@ -channels: - - ucb-bar - - conda-forge - - nodefaults - -dependencies: - # https://conda-forge.org/feedstock-outputs/ - # filterable list of all conda-forge packages - # https://conda-forge.org/#contribute - # instructions on adding a recipe - # https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/pkg-specs.html#package-match-specifications - # documentation on package_spec syntax for constraining versions - - - # handy tool for introspecting package relationships and file ownership - # see https://github.com/rvalieris/conda-tree - - conda-tree - - # bundle FireSim driver with deps into installer shell-script - - constructor - - - gcc - - gxx - - sysroot_linux-64>=2.17 # needed to match pre-built CI XRT glibc version - - conda-gcc-specs - - binutils - - - dromajo # from ucb-bar channel - https://github.com/riscv-boom/dromajo - - riscv-tools # from ucb-bar channel - https://github.com/ucb-bar/riscv-tools-feedstock - - firtool # from ucb-bar channel - https://github.com/ucb-bar/firtool-feedstock - - # firemarshal deps - - python>=3.8 - - bc - - patch - - which - - diffutils - - bash - - gzip - - bzip2 - - perl - - tar - - file - - findutils - - rsync - - psutil - - doit=0.35.0 - - gitpython - - humanfriendly - - e2fsprogs - - ctags - - bison - - flex - - expat - - make - - pyyaml - - unzip - - readline - - coreutils - - lzop - - qemu # from ucb-bar channel - https://github.com/ucb-bar/qemu-feedstock - - - jq - - bash-completion - - sbt - - ca-certificates - - mosh - - gmp - - mpfr - - mpc - - zlib - - vim - - git - - openjdk - - gengetopt - - libffi - - expat - - libusb1 - - ncurses - - cmake - - graphviz - - expect - - dtc - - verilator==4.226 - - screen - - elfutils - - libdwarf-dev==0.0.0.20190110_28_ga81397fc4 # from ucb-bar channel - using mainline libdwarf-feedstock - - conda-lock>=1 - - wget - - sed - - autoconf - - # clang-format for driver coding style enforcement. - - clang-format - - clang-tools - - # python packages - # While it is possible to install using pip after creating the - # conda environment, pip's dependency resolution can conflict with - # conda and create broken environments. It's best to use the conda - # packages so that the environment is consistent - - boto3==1.20.21 - - colorama==0.4.3 - - argcomplete==1.12.3 - - python-graphviz==0.19 - - pyparsing==3.0.6 - - numpy==1.19.5 - - kiwisolver==1.3.1 - - matplotlib-base==3.3.4 - - pandas==1.1.5 - - awscli==1.22.21 - - pytest==6.2.5 - - pytest-dependency==0.5.1 - - pytest-mock==3.7.0 - - moto==3.1.0 - - pyyaml==5.4.1 - - mypy==0.931 - - types-pyyaml==6.0.4 - - boto3-stubs==1.21.6 - - botocore-stubs==1.24.7 - - mypy-boto3-s3==1.21.0 - - pip - - pip: - - fab-classic==1.19.1 - - mypy-boto3-ec2==1.21.9 - - sure==2.0.0 - - pylddwrap==1.2.1 - - # doc requirements - - sphinx - - pygments - - sphinx-autobuild - - sphinx_rtd_theme - - docutils diff --git a/scripts/split-bb-files.py b/scripts/split-bb-files.py index 62768a6d..959a10a2 100755 --- a/scripts/split-bb-files.py +++ b/scripts/split-bb-files.py @@ -1,22 +1,19 @@ #!/usr/bin/env python3 -import os import json import argparse -import sys -from pathlib import Path -from typing import List, Optional +from collections import defaultdict # Schema of *.f emitted by circt """ -/scratch/joonho.whangbo/coding/chipyard/vlsi/generated-src/chipyard.TestHarness.RocketConfig/gen-collateral/SimUART.cc -/scratch/joonho.whangbo/coding/chipyard/vlsi/generated-src/chipyard.TestHarness.RocketConfig/gen-collateral/AsyncQueueSource.sv -/scratch/joonho.whangbo/coding/chipyard/vlsi/generated-src/chipyard.TestHarness.RocketConfig/gen-collateral/AsyncQueueSink.sv -/scratch/joonho.whangbo/coding/chipyard/vlsi/generated-src/chipyard.TestHarness.RocketConfig/gen-collateral/AsyncQueueSource_1.sv -/scratch/joonho.whangbo/coding/chipyard/vlsi/generated-src/chipyard.TestHarness.RocketConfig/gen-collateral/AsyncQueueSink_1.sv -/scratch/joonho.whangbo/coding/chipyard/vlsi/generated-src/chipyard.TestHarness.RocketConfig/gen-collateral/AsyncQueueSource_2.sv -/scratch/joonho.whangbo/coding/chipyard/vlsi/generated-src/chipyard.TestHarness.RocketConfig/gen-collateral/AsyncQueueSink_2.sv -/scratch/joonho.whangbo/coding/chipyard/vlsi/generated-src/chipyard.TestHarness.RocketConfig/gen-collateral/AsyncResetSynchronizerShiftReg_w4_d3_i0.sv +//gen-collateral/SimUART.cc +//gen-collateral/AsyncQueueSource.sv +//gen-collateral/AsyncQueueSink.sv +//gen-collateral/AsyncQueueSource_1.sv +//gen-collateral/AsyncQueueSink_1.sv +//gen-collateral/AsyncQueueSource_2.sv +//gen-collateral/AsyncQueueSink_2.sv +//gen-collateral/AsyncResetSynchronizerShiftReg_w4_d3_i0.sv """ def bfs_collect_submodules(tree): @@ -33,100 +30,53 @@ def bfs_collect_submodules(tree): q.append((c['instance_name'], c['module_name'], c['instances'])) return output -def get_modules(f): - lines = f.readlines() - module_list = list() - for line in lines: - try: - module_list.append(os.path.basename(line)) - except: - print("Excepted a linux path, got something else") - return module_list - -def get_inner_modules(f): - lines = f.readlines() - inner_module_list = list() - for line in lines: - words = line.split() - if len(words) >= 2 and "module" == words[0]: - inner_module_list.append(words[1].replace("(", "")) - return inner_module_list - def write_lines_to_file(lines, file_path): with open(file_path, "w") as fp: for line in lines: - fp.write("%s" % line) - + fp.write("%s\n" % line) if __name__ == "__main__": - parser = argparse.ArgumentParser(description='Use *.model.f and *.top.f to restore the MODEL/TOP blackbox separation') - parser.add_argument('--in-top-f', type=str, required=True, help='List of generated files specific for TOP(DUT)') - parser.add_argument('--in-model-f', type=str, required=True, help='List of generated files specific for MODEL') - parser.add_argument('--in-bb-f', type=str, required=True, help='List of generated files specific for MODEL') + parser = argparse.ArgumentParser(description='Create *.model.bb.f and *.top.bb.f blackbox filelists') + parser.add_argument('--in-bb-f', type=str, required=True, help='All blackbox files filelist (includes both MODEL/TOP files)') parser.add_argument('--in-top-hrchy-json', type=str, required=True, help='List containing hierarchy of top modules (top-module-hierarchy.json)') - parser.add_argument('--out-top-bb-f', type=str, required=True, help='List of blackbox modules for TOP') - parser.add_argument('--out-model-bb-f', type=str, required=True, help='List of blackbox modules for MODEL') + parser.add_argument('--in-anno-json', type=str, required=True, help='Anno. file with blackbox annotations') + parser.add_argument('--out-top-bb-f', type=str, required=True, help='List of blackbox files for TOP') + parser.add_argument('--out-model-bb-f', type=str, required=True, help='List of blackbox files for MODEL') args = parser.parse_args() - itf = open(args.in_top_f) - top_modules = set(get_modules(itf)) - itf.close() + # module_path -> list of bb paths (not fully resolved paths) + mod_bb_dict = defaultdict(list) + with open(args.in_anno_json, "r") as f: + anno_data = json.load(f) + for anno in anno_data: + if 'BlackBoxInlineAnno' in anno['class']: + mod_bb_dict[anno['target']].append(anno['name']) + if 'BlackBoxPathAnno' in anno['class']: + mod_bb_dict[anno['target']].append(anno['path']) - imf = open(args.in_model_f) - model_modules = set(get_modules(imf)) - imf.close() + with open(args.in_top_hrchy_json) as ihj: + ihj_data = json.load(ihj) + top_inner_modules = bfs_collect_submodules(ihj_data) - ihj = open(args.in_top_hrchy_json) - ihj_data = json.load(ihj) - top_inner_modules = bfs_collect_submodules(ihj_data) - ihj.close() + with open(args.in_bb_f) as ibf: + lines = ibf.read().splitlines() - ibf = open(args.in_bb_f) - lines = ibf.readlines() + tbfs = set() + for mod_path, bb_files in mod_bb_dict.items(): + leaf_mod = mod_path.split('.')[-1] - """ - " model top - " o o -> model - " x o -> top - " x x -> model - " - check inner module - " - currently, there is no way of knowing if certain inner modules(actual verilog - " modules inside the files) are all included in TOP or MODEL - " - for now, assume that if a inner module is included in TOP, the file itself - " is also for TOP - """ - tbf = list() - mbf = list() - unknown = list() - for line in lines: - module = os.path.basename(line) - extension = os.path.splitext(module)[1] - if module in model_modules: - mbf.append(line) - elif module in top_modules: - tbf.append(line) - elif ".v" not in extension and ".sv" not in extension: - mbf.append(line) - else: - unknown.append(line) + # if matched, add the fully resolved path to the top bb filelist + if leaf_mod in top_inner_modules: + for line in lines: + for bb_file in bb_files: + if bb_file in line: + tbfs.add(line) + # now tbfs should be complete (need to remove tbf files from original bb file for model bb) + mbfs = set() + for line in lines: + if not line in tbfs: + mbfs.add(line) - for line in unknown: - f = open(Path(line.replace("\n", ""))) - inner_modules = get_inner_modules(f) - f.close() - - inner_module_in_top = False - for im in inner_modules: - if im in top_inner_modules: - inner_module_in_top = True - break - if inner_module_in_top: - tbf.append(line) - else: - mbf.append(line) - - write_lines_to_file(tbf, args.out_top_bb_f) - write_lines_to_file(mbf, args.out_model_bb_f) - - ibf.close() + write_lines_to_file(tbfs, args.out_top_bb_f) + write_lines_to_file(mbfs, args.out_model_bb_f) diff --git a/variables.mk b/variables.mk index c0655fab..ceddf657 100644 --- a/variables.mk +++ b/variables.mk @@ -182,7 +182,9 @@ MODEL_MODS_FILELIST ?= $(build_dir)/$(long_name).model.f # list of all blackbox files (may be included in the top/model.f files) # this has the build_dir appended BB_MODS_FILELIST ?= $(build_dir)/$(long_name).bb.f +# top blackbox module files to include TOP_BB_MODS_FILELIST ?= $(build_dir)/$(long_name).top.bb.f +# model blackbox module files to include (not including top blackbox modules) MODEL_BB_MODS_FILELIST ?= $(build_dir)/$(long_name).model.bb.f # all module files to include (top, model, bb included) ALL_MODS_FILELIST ?= $(build_dir)/$(long_name).all.f