From fd3deff84aaec42975ebbf428815dd05e3d77a96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Est=C3=A9vez?= Date: Fri, 13 May 2022 17:13:06 +0200 Subject: [PATCH 001/250] fuzzers: fix typo in 011-clb-ffconfig README MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The FDSE and FDRE are the elements with synchronous resets. Signed-off-by: Daniel Estévez --- fuzzers/011-clb-ffconfig/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fuzzers/011-clb-ffconfig/README.md b/fuzzers/011-clb-ffconfig/README.md index b2a0178ef..faddb7e23 100644 --- a/fuzzers/011-clb-ffconfig/README.md +++ b/fuzzers/011-clb-ffconfig/README.md @@ -36,8 +36,8 @@ Scope: entire site (not individual FFs) | FFSYNC | Reset | Applicable prims | |--------|--------------|---------------------------| -|0 | Synchronous | FDPE, FDCE, LDCE, LDPE | -|1 | Asynchronous | FDSE, FDRE | +|0 | Asynchronous | FDPE, FDCE, LDCE, LDPE | +|1 | Synchronous | FDSE, FDRE | ### LATCH From e282f8b158b39c3756d2a15c7455916e9dad858b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Aug 2022 00:43:25 +0000 Subject: [PATCH 002/250] build(deps): bump third_party/googletest from `b1f84bf` to `c0e032e` (#1996) Bumps [third_party/googletest](https://github.com/google/googletest) from `b1f84bf` to `c0e032e`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/b1f84bf1763b1010597bff13c79b5388eebdf205...c0e032efe587efa99413dd9ac54c3953a7915588) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index b1f84bf17..c0e032efe 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit b1f84bf1763b1010597bff13c79b5388eebdf205 +Subproject commit c0e032efe587efa99413dd9ac54c3953a7915588 From 84df58c35b8804737643623107653ee7871d6daa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Aug 2022 00:44:33 +0000 Subject: [PATCH 003/250] build(deps): bump third_party/abseil-cpp from `02b0216` to `df638bf` (#1993) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `02b0216` to `df638bf`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/02b0216656ff68784b4864557cb15b9a554792a4...df638bf05a40994fab78a7af0d40c66436e6c6d6) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 02b021665..df638bf05 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 02b0216656ff68784b4864557cb15b9a554792a4 +Subproject commit df638bf05a40994fab78a7af0d40c66436e6c6d6 From 5a2504d3c3e324c64482628182e334caa564beef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Aug 2022 00:53:15 +0000 Subject: [PATCH 004/250] build(deps): bump third_party/yosys from `b15a46c` to `1c36f4c` (#1995) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `b15a46c` to `1c36f4c`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/b15a46c2c0bf79445d3f0ba0ec80303080d33cfe...1c36f4cc2cfe8832be19c9c6be5592c6ea55df19) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index b15a46c2c..1c36f4cc2 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit b15a46c2c0bf79445d3f0ba0ec80303080d33cfe +Subproject commit 1c36f4cc2cfe8832be19c9c6be5592c6ea55df19 From 7044d856492096204305ac2ca6c0a1f2e2f5e59d Mon Sep 17 00:00:00 2001 From: Adrien Prost-Boucle Date: Sat, 5 Mar 2022 17:27:27 +0100 Subject: [PATCH 005/250] utils/environment.h: Protect against unintentionally wrongly set env var XRAY_VIVADO Signed-off-by: Adrien Prost-Boucle --- utils/environment.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/environment.sh b/utils/environment.sh index fdb0b66ff..6e246cf89 100644 --- a/utils/environment.sh +++ b/utils/environment.sh @@ -49,7 +49,7 @@ export XRAY_VIVADO="${XRAY_UTILS_DIR}/vivado.sh" # Verify an approved version is in use export XRAY_VIVADO_SETTINGS="${XRAY_VIVADO_SETTINGS:-/opt/Xilinx/Vivado/2017.2/settings64.sh}" # Vivado v2017.2 (64-bit) -if [ $(${XRAY_VIVADO} -h |grep Vivado |cut -d\ -f 2) != "v2017.2" ] ; then +if [ "$(${XRAY_VIVADO} -h |grep Vivado |cut -d\ -f 2)" != "v2017.2" ] ; then echo "Requires Vivado 2017.2. See https://github.com/SymbiFlow/prjxray/issues/14" # Can't exit since sourced script # Trash a key environment variable to preclude use From 50d3133f65c648dad84d6f1c4d52b328c7bc1074 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Thu, 18 Aug 2022 04:34:05 +0200 Subject: [PATCH 006/250] ci: limit concurrency Signed-off-by: Unai Martinez-Corral --- .github/workflows/Automerge.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/Automerge.yml b/.github/workflows/Automerge.yml index cdb61b14b..c835ba6d8 100644 --- a/.github/workflows/Automerge.yml +++ b/.github/workflows/Automerge.yml @@ -1,5 +1,9 @@ name: Automerge +concurrency: + group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + on: pull_request: push: From d1651f02a4ec1ecc8035b325ec2d70341a02a6b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Aug 2022 06:16:02 +0000 Subject: [PATCH 007/250] build(deps): bump third_party/fasm from `052f629` to `ffafe82` (#1982) Bumps [third_party/fasm](https://github.com/SymbiFlow/fasm) from `052f629` to `ffafe82`. - [Release notes](https://github.com/SymbiFlow/fasm/releases) - [Commits](https://github.com/SymbiFlow/fasm/compare/052f629217119b699ea83e03c412bc6fafb2313a...ffafe821bae68637fe46e36bcfd2a01b97cdf6f2) --- updated-dependencies: - dependency-name: third_party/fasm dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/fasm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/fasm b/third_party/fasm index 052f62921..ffafe821b 160000 --- a/third_party/fasm +++ b/third_party/fasm @@ -1 +1 @@ -Subproject commit 052f629217119b699ea83e03c412bc6fafb2313a +Subproject commit ffafe821bae68637fe46e36bcfd2a01b97cdf6f2 From 48ad192f4e6a8928d004f702cad2d8fbc34433ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Aug 2022 06:20:35 +0000 Subject: [PATCH 008/250] build(deps): bump third_party/cctz from `5575351` to `022394a` (#1997) Bumps [third_party/cctz](https://github.com/google/cctz) from `5575351` to `022394a`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/5575351bec8585f475f2846efdac6ce847475f8f...022394a167ef93c7797266a199096cdefc223440) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index 5575351be..022394a16 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit 5575351bec8585f475f2846efdac6ce847475f8f +Subproject commit 022394a167ef93c7797266a199096cdefc223440 From 49a4b088d80c33beb37f34cb4ba9cb4447a1a946 Mon Sep 17 00:00:00 2001 From: Tim 'mithro' Ansell Date: Mon, 25 Apr 2022 10:05:17 -0700 Subject: [PATCH 009/250] Setup connection to Xilinx license server. Signed-off-by: Tim 'mithro' Ansell --- .github/workflows/Automerge.yml | 2 + .github/workflows/Pipeline.yml | 30 ++++++- .github/workflows/scripts/xilinx.sh | 117 ++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+), 2 deletions(-) create mode 100755 .github/workflows/scripts/xilinx.sh diff --git a/.github/workflows/Automerge.yml b/.github/workflows/Automerge.yml index c835ba6d8..7acc0e3b1 100644 --- a/.github/workflows/Automerge.yml +++ b/.github/workflows/Automerge.yml @@ -17,6 +17,8 @@ jobs: Pipeline: if: ${{ !(github.event_name != 'pull_request' && github.actor == 'dependabot[bot]') }} uses: ./.github/workflows/Pipeline.yml + secrets: + LICENSE_TUNNEL_KEY_DATA: ${{ secrets.LICENSE_TUNNEL_KEY_DATA }} Automerge: diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index d2aff1eb7..c4eef26ab 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -2,6 +2,9 @@ name: Pipeline on: workflow_call: + secrets: + LICENSE_TUNNEL_KEY_DATA: + required: false jobs: @@ -20,6 +23,7 @@ jobs: ALLOW_ROOT: true GHA_EXTERNAL_DISK: "tools" XILINX_LOCAL_USER_DATA: "no" + LICENSE_TUNNEL_KEY_DATA: ${{ secrets.LICENSE_TUNNEL_KEY_DATA }} steps: @@ -31,8 +35,30 @@ jobs: run: | DEBIAN_FRONTEND=noninteractive apt update -qq DEBIAN_FRONTEND=noninteractive apt install -qq -y \ - bash bison build-essential ca-certificates clang-format cmake psmisc \ - colordiff coreutils git flex python3 python3-dev python3-venv xsltproc libtinfo5 + bash \ + bison \ + build-essential \ + ca-certificates \ + clang-format \ + cmake \ + colordiff \ + coreutils \ + flex \ + git \ + iproute2 \ + iputils-ping \ + libtinfo5 \ + netcat-openbsd \ + psmisc \ + python3 \ + python3-dev \ + python3-venv \ + xsltproc + + - name: Xilinx Setup + env: + LICENSE_TUNNEL_KEY_DATA: ${{ secrets.LICENSE_TUNNEL_KEY_DATA }} + run: .github/workflows/scripts/xilinx.sh - name: Build run: make build --output-sync=target --warn-undefined-variables -j$(nproc) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh new file mode 100755 index 000000000..4cbe5d9b5 --- /dev/null +++ b/.github/workflows/scripts/xilinx.sh @@ -0,0 +1,117 @@ +#!/bin/bash +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC + +echo +echo "========================================" +echo "Xilinx proprietary toolchain setup." +echo "----------------------------------------" + +echo +echo "Fix up the Xilinx configuration directory" +echo "----------------------------------------" +mkdir -p ~/.Xilinx +ls -l ~/.Xilinx +#sudo chown -R $USER ~/.Xilinx + +export XILINX_LOCAL_USER_DATA=no +echo "----------------------------------------" + +echo +echo "Select Xilinx Vivado version" +echo "----------------------------------------" +( + set -e + cd /opt + if [ x"$XRAY_SETTINGS" = x"kintex7" ]; then + echo "Using Xilinx Vivado Design Edition for $XRAY_SETTINGS build." + echo + echo "Making /opt mount rw" + sudo mount -o remount,rw /opt + echo + echo "Replacing /opt/Xilinx link." + sudo rm -f Xilinx + sudo ln -s Xilinx-design Xilinx + ls -l Xilinx + echo + echo "Making /opt mount ro" + sudo mount -o remount,ro /opt + echo + else + echo "Using Xilinx Vivado WebPack Edition for $XRAY_SETTINGS build." + ls -l Xilinx + fi +) +echo "----------------------------------------" + + +echo +echo "List /opt directory" +echo "----------------------------------------" +ls -l /opt +echo "----------------------------------------" + +# Create a tunnel to the server which has the Xilinx licenses and port forward +# them. +echo +echo "Setting up license server tunnel" +echo "----------------------------------------" +if [ ! -z "$LICENSE_TUNNEL_KEY_DATA" ]; then + LICENSE_TUNNEL_KEY=~/.Xilinx/xilinx-tunnel-key + LICENSE_TUNNEL_HOST=10.138.0.2 + echo $LICENSE_TUNNEL_KEY_DATA | base64 --decode > $LICENSE_TUNNEL_KEY + + echo "SSH Key for license server tunnel should be found @ $LICENSE_TUNNEL_KEY" + ls -l $LICENSE_TUNNEL_KEY || true + + echo + echo "Xilinx license server ssh key found, setting up tunnel" + echo + + echo + echo "Checking $LICENSE_TUNNEL_HOST is up" + ip addr show + echo "ping: ---------" + ping -c 5 $LICENSE_TUNNEL_HOST + echo "port: ---------" + nc -zv $LICENSE_TUNNEL_HOST 22 + echo "---------" + echo + + chmod 600 $LICENSE_TUNNEL_KEY + cat < ssh_config +Host xilinx-license + HostName $LICENSE_TUNNEL_HOST + User kokoro + IdentityFile $LICENSE_TUNNEL_KEY + StrictHostKeyChecking no + ExitOnForwardFailure yes + # SessionType none + LocalForward localhost:2100 172.18.0.3:2100 + LocalForward localhost:2101 172.18.0.3:2101 +EOF + echo "127.0.0.1 xlic.int" | sudo tee -a /etc/hosts + + export GIT_SSH_COMMAND="ssh -F $(pwd)/ssh_config -f -N" + ${GIT_SSH_COMMAND} xilinx-license + + ( + source /opt/Xilinx/Vivado/2017.2/settings64.sh + export PATH=/opt/Xilinx/Vivado/2017.2/bin/unwrapped/lnx64.o:$PATH + echo "-----" + lmutil lmstat -a -c 2100@localhost -i || true + echo "-----" + ) + + export XILINXD_LICENSE_FILE=2100@localhost + +else + echo + echo "**No** Xilinx license server ssh key found." +fi +echo "----------------------------------------" From 2466432059129c10ec89d6c8cdf8b06480eeae70 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Tue, 26 Apr 2022 15:34:12 +0200 Subject: [PATCH 010/250] CI: xilinx: update license server IP Signed-off-by: Karol Gugala --- .github/workflows/scripts/xilinx.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index 4cbe5d9b5..8e2778984 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -63,7 +63,7 @@ echo "Setting up license server tunnel" echo "----------------------------------------" if [ ! -z "$LICENSE_TUNNEL_KEY_DATA" ]; then LICENSE_TUNNEL_KEY=~/.Xilinx/xilinx-tunnel-key - LICENSE_TUNNEL_HOST=10.138.0.2 + LICENSE_TUNNEL_HOST=10.138.0.3 echo $LICENSE_TUNNEL_KEY_DATA | base64 --decode > $LICENSE_TUNNEL_KEY echo "SSH Key for license server tunnel should be found @ $LICENSE_TUNNEL_KEY" From 49adf6f4479035415a48585b35e287f1f8b739bd Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Tue, 26 Apr 2022 15:38:04 +0200 Subject: [PATCH 011/250] CI: install sudo Signed-off-by: Karol Gugala --- .github/workflows/Pipeline.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index c4eef26ab..566b6de1f 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -53,7 +53,8 @@ jobs: python3 \ python3-dev \ python3-venv \ - xsltproc + xsltproc \ + sudo \ - name: Xilinx Setup env: From c2d27fe5ee582476be0403bd97f4e6c2c738a32f Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Tue, 26 Apr 2022 17:38:44 +0200 Subject: [PATCH 012/250] CI: xilinx: create .ssh dir Signed-off-by: Karol Gugala --- .github/workflows/scripts/xilinx.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index 8e2778984..8849532cc 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -17,6 +17,7 @@ echo "Fix up the Xilinx configuration directory" echo "----------------------------------------" mkdir -p ~/.Xilinx ls -l ~/.Xilinx +mkdir ~/.ssh #sudo chown -R $USER ~/.Xilinx export XILINX_LOCAL_USER_DATA=no From 98d29fd9bf37e2f591120cf92ae1ad571cb02dd8 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Tue, 26 Apr 2022 18:20:31 +0200 Subject: [PATCH 013/250] CI: xilinx: create symlink to vivado Signed-off-by: Karol Gugala --- .github/workflows/scripts/xilinx.sh | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index 8849532cc..762e0a0e7 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -32,18 +32,11 @@ echo "----------------------------------------" if [ x"$XRAY_SETTINGS" = x"kintex7" ]; then echo "Using Xilinx Vivado Design Edition for $XRAY_SETTINGS build." echo - echo "Making /opt mount rw" - sudo mount -o remount,rw /opt - echo - echo "Replacing /opt/Xilinx link." - sudo rm -f Xilinx - sudo ln -s Xilinx-design Xilinx + ln -s /mnt/aux/Xilinx-design /opt/Xilinx ls -l Xilinx echo - echo "Making /opt mount ro" - sudo mount -o remount,ro /opt - echo else + ln -s /mnt/aux/Xilinx /opt/Xilinx echo "Using Xilinx Vivado WebPack Edition for $XRAY_SETTINGS build." ls -l Xilinx fi From fc8db2b82120cca76251336a92a2b32d66a25916 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Tue, 26 Apr 2022 18:33:29 +0200 Subject: [PATCH 014/250] CI: xilinx: symlink elf loader Signed-off-by: Karol Gugala --- .github/workflows/scripts/xilinx.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index 762e0a0e7..22faf1006 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -19,6 +19,10 @@ mkdir -p ~/.Xilinx ls -l ~/.Xilinx mkdir ~/.ssh #sudo chown -R $USER ~/.Xilinx +echo +echo "Fixing loader to be able to run lmutils" +echo "----------------------------------------" +ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3 export XILINX_LOCAL_USER_DATA=no echo "----------------------------------------" From 5eab9c5d5a759e4006d025e422d248f47c79c6f5 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Tue, 26 Apr 2022 19:01:44 +0200 Subject: [PATCH 015/250] CI: xilinx: move ssh to background Signed-off-by: Karol Gugala --- .github/workflows/scripts/xilinx.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index 22faf1006..70dc71ec8 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -96,7 +96,7 @@ EOF echo "127.0.0.1 xlic.int" | sudo tee -a /etc/hosts export GIT_SSH_COMMAND="ssh -F $(pwd)/ssh_config -f -N" - ${GIT_SSH_COMMAND} xilinx-license + ${GIT_SSH_COMMAND} xilinx-license & ( source /opt/Xilinx/Vivado/2017.2/settings64.sh From 14a9f2aa45fbb3b7a638241c70676f48839478b3 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Tue, 26 Apr 2022 21:28:00 +0200 Subject: [PATCH 016/250] CI: xilinx: disown ssh Signed-off-by: Karol Gugala --- .github/workflows/scripts/xilinx.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index 70dc71ec8..e61532c56 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -97,6 +97,7 @@ EOF export GIT_SSH_COMMAND="ssh -F $(pwd)/ssh_config -f -N" ${GIT_SSH_COMMAND} xilinx-license & + disown $! ( source /opt/Xilinx/Vivado/2017.2/settings64.sh From 64ce44eccb8f4d1b4b7fee41437ea892ec7ea7a3 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Thu, 12 May 2022 16:11:17 +0200 Subject: [PATCH 017/250] CI: use utility container for SSH forwarding Signed-off-by: Karol Gugala --- .github/workflows/Pipeline.yml | 4 ++- .github/workflows/scripts/xilinx.sh | 49 ++++------------------------- 2 files changed, 9 insertions(+), 44 deletions(-) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index 566b6de1f..4cf41e582 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -58,7 +58,9 @@ jobs: - name: Xilinx Setup env: - LICENSE_TUNNEL_KEY_DATA: ${{ secrets.LICENSE_TUNNEL_KEY_DATA }} + GHA_SSH_TUNNEL_KEY: "${{ secrets.LICENSE_TUNNEL_KEY_DATA }}" + GHA_SSH_TUNNEL_CONFIG: "${{ secrets.LICENSE_TUNNEL_SSH_CONFIG }}" + run: .github/workflows/scripts/xilinx.sh - name: Build diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index e61532c56..5a6017f7e 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -56,56 +56,19 @@ echo "----------------------------------------" # Create a tunnel to the server which has the Xilinx licenses and port forward # them. -echo -echo "Setting up license server tunnel" -echo "----------------------------------------" if [ ! -z "$LICENSE_TUNNEL_KEY_DATA" ]; then - LICENSE_TUNNEL_KEY=~/.Xilinx/xilinx-tunnel-key - LICENSE_TUNNEL_HOST=10.138.0.3 - echo $LICENSE_TUNNEL_KEY_DATA | base64 --decode > $LICENSE_TUNNEL_KEY - - echo "SSH Key for license server tunnel should be found @ $LICENSE_TUNNEL_KEY" - ls -l $LICENSE_TUNNEL_KEY || true echo - echo "Xilinx license server ssh key found, setting up tunnel" + echo "Xilinx license server ssh key found, checking the license" echo - echo - echo "Checking $LICENSE_TUNNEL_HOST is up" - ip addr show - echo "ping: ---------" - ping -c 5 $LICENSE_TUNNEL_HOST - echo "port: ---------" - nc -zv $LICENSE_TUNNEL_HOST 22 - echo "---------" - echo - - chmod 600 $LICENSE_TUNNEL_KEY - cat < ssh_config -Host xilinx-license - HostName $LICENSE_TUNNEL_HOST - User kokoro - IdentityFile $LICENSE_TUNNEL_KEY - StrictHostKeyChecking no - ExitOnForwardFailure yes - # SessionType none - LocalForward localhost:2100 172.18.0.3:2100 - LocalForward localhost:2101 172.18.0.3:2101 -EOF echo "127.0.0.1 xlic.int" | sudo tee -a /etc/hosts - export GIT_SSH_COMMAND="ssh -F $(pwd)/ssh_config -f -N" - ${GIT_SSH_COMMAND} xilinx-license & - disown $! - - ( - source /opt/Xilinx/Vivado/2017.2/settings64.sh - export PATH=/opt/Xilinx/Vivado/2017.2/bin/unwrapped/lnx64.o:$PATH - echo "-----" - lmutil lmstat -a -c 2100@localhost -i || true - echo "-----" - ) + source /opt/Xilinx/Vivado/2017.2/settings64.sh + export PATH=/opt/Xilinx/Vivado/2017.2/bin/unwrapped/lnx64.o:$PATH + echo "-----" + lmutil lmstat -a -c 2100@localhost -i || true + echo "-----" export XILINXD_LICENSE_FILE=2100@localhost From 419494e46b92b88aa6d1e77b931e864962ac46f2 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Thu, 12 May 2022 16:23:02 +0200 Subject: [PATCH 018/250] CI: move tunnel variables to globals Signed-off-by: Karol Gugala --- .github/workflows/Pipeline.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index 4cf41e582..a64aa64db 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -20,10 +20,11 @@ jobs: family: ['artix7', 'zynq7', 'kintex7', 'spartan7'] env: + GHA_SSH_TUNNEL_KEY: "${{ secrets.LICENSE_TUNNEL_KEY_DATA }}" + GHA_SSH_TUNNEL_CONFIG: "${{ secrets.LICENSE_TUNNEL_SSH_CONFIG }}" ALLOW_ROOT: true GHA_EXTERNAL_DISK: "tools" XILINX_LOCAL_USER_DATA: "no" - LICENSE_TUNNEL_KEY_DATA: ${{ secrets.LICENSE_TUNNEL_KEY_DATA }} steps: @@ -57,10 +58,6 @@ jobs: sudo \ - name: Xilinx Setup - env: - GHA_SSH_TUNNEL_KEY: "${{ secrets.LICENSE_TUNNEL_KEY_DATA }}" - GHA_SSH_TUNNEL_CONFIG: "${{ secrets.LICENSE_TUNNEL_SSH_CONFIG }}" - run: .github/workflows/scripts/xilinx.sh - name: Build From 5b33a203119e680e2f37ac015f9e6d7a486cd656 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Wed, 18 May 2022 13:36:45 +0200 Subject: [PATCH 019/250] CI: use GCP secrets Signed-off-by: Karol Gugala --- .github/workflows/Pipeline.yml | 2 ++ .github/workflows/scripts/xilinx.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index a64aa64db..4bb79f2a6 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -22,6 +22,8 @@ jobs: env: GHA_SSH_TUNNEL_KEY: "${{ secrets.LICENSE_TUNNEL_KEY_DATA }}" GHA_SSH_TUNNEL_CONFIG: "${{ secrets.LICENSE_TUNNEL_SSH_CONFIG }}" + GHA_SSH_TUNNEL_CONFIG_SECRET_NAME: "xilinx_license_server_config" + GHA_SSH_TUNNEL_KEY_SECRET_NAME: "xilinx_license_server_key" ALLOW_ROOT: true GHA_EXTERNAL_DISK: "tools" XILINX_LOCAL_USER_DATA: "no" diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index 5a6017f7e..4761618a3 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -56,7 +56,7 @@ echo "----------------------------------------" # Create a tunnel to the server which has the Xilinx licenses and port forward # them. -if [ ! -z "$LICENSE_TUNNEL_KEY_DATA" ]; then +if [ ! -z "$GHA_SSH_TUNNEL_CONFIG_SECRET_NAME" ]; then echo echo "Xilinx license server ssh key found, checking the license" From f7f473014c6a900f0ddb28054d81407ddadcb61a Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Wed, 18 May 2022 14:06:29 +0200 Subject: [PATCH 020/250] CI: xilinx: fix license condition Signed-off-by: Karol Gugala --- .github/workflows/scripts/xilinx.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index 4761618a3..ee96ecfa2 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -56,7 +56,7 @@ echo "----------------------------------------" # Create a tunnel to the server which has the Xilinx licenses and port forward # them. -if [ ! -z "$GHA_SSH_TUNNEL_CONFIG_SECRET_NAME" ]; then +if [[ ! -z "$GHA_SSH_TUNNEL_CONFIG_SECRET_NAME" ]]; then echo echo "Xilinx license server ssh key found, checking the license" From bdc6252dbc16141dbe89218109b35be588a9ca59 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Wed, 18 May 2022 14:15:36 +0200 Subject: [PATCH 021/250] test: print env Signed-off-by: Karol Gugala --- .github/workflows/scripts/xilinx.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index ee96ecfa2..f8570eef3 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -56,6 +56,8 @@ echo "----------------------------------------" # Create a tunnel to the server which has the Xilinx licenses and port forward # them. +echo "xilinx secret" +echo $GHA_SSH_TUNNEL_CONFIG_SECRET_NAME if [[ ! -z "$GHA_SSH_TUNNEL_CONFIG_SECRET_NAME" ]]; then echo From 871957b74f3ab277f84135240a5dc9d4d2fd9151 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Wed, 18 May 2022 15:07:16 +0200 Subject: [PATCH 022/250] CI: use variable to force license server connection Signed-off-by: Karol Gugala --- .github/workflows/Pipeline.yml | 2 ++ .github/workflows/scripts/xilinx.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index 4bb79f2a6..4fab52156 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -61,6 +61,8 @@ jobs: - name: Xilinx Setup run: .github/workflows/scripts/xilinx.sh + env: + USE_LICENSE_SERVER: "true" - name: Build run: make build --output-sync=target --warn-undefined-variables -j$(nproc) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index f8570eef3..4f543db0c 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -58,7 +58,7 @@ echo "----------------------------------------" # them. echo "xilinx secret" echo $GHA_SSH_TUNNEL_CONFIG_SECRET_NAME -if [[ ! -z "$GHA_SSH_TUNNEL_CONFIG_SECRET_NAME" ]]; then +if [[ ! -z "$USE_LICENSE_SERVER" ]]; then echo echo "Xilinx license server ssh key found, checking the license" From 17d8b1d61b9576869fb525fc561c2169e7938648 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Wed, 18 May 2022 16:04:09 +0200 Subject: [PATCH 023/250] CI: hack: mark xray as safe dir Signed-off-by: Karol Gugala --- .github/workflows/Pipeline.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index 4fab52156..b1b03a229 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -60,6 +60,7 @@ jobs: sudo \ - name: Xilinx Setup + run: git config --global --add safe.directory /root/prjxray/prjxray run: .github/workflows/scripts/xilinx.sh env: USE_LICENSE_SERVER: "true" From 20627dc637ccc9a4187b00a960513292578bcf30 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Wed, 18 May 2022 16:07:06 +0200 Subject: [PATCH 024/250] fix yaml file Signed-off-by: Karol Gugala --- .github/workflows/Pipeline.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index b1b03a229..efe731843 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -60,8 +60,9 @@ jobs: sudo \ - name: Xilinx Setup - run: git config --global --add safe.directory /root/prjxray/prjxray - run: .github/workflows/scripts/xilinx.sh + run: | + git config --global --add safe.directory /root/prjxray/prjxray + .github/workflows/scripts/xilinx.sh env: USE_LICENSE_SERVER: "true" From 1bfafe4486444f2b531efff7f063be31f637eea3 Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Wed, 18 May 2022 16:16:49 +0200 Subject: [PATCH 025/250] do not link to vivado in db.sh Signed-off-by: Karol Gugala --- .github/workflows/scripts/db.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/scripts/db.sh b/.github/workflows/scripts/db.sh index 82ad2515e..ab9461661 100755 --- a/.github/workflows/scripts/db.sh +++ b/.github/workflows/scripts/db.sh @@ -15,7 +15,6 @@ echo echo "=======================================" echo "Creating Vivado Symbolic Link" echo "---------------------------------------" -ln -s /mnt/aux/Xilinx /opt/Xilinx ls /opt/Xilinx/Vivado source /opt/Xilinx/Vivado/2017.2/settings64.sh vivado -version From c413cded25f5a2f4c336d354244eef3f23d419e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Aug 2022 18:36:23 +0000 Subject: [PATCH 026/250] build(deps): bump third_party/cctz from `022394a` to `dcb83e0` (#2003) Bumps [third_party/cctz](https://github.com/google/cctz) from `022394a` to `dcb83e0`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/022394a167ef93c7797266a199096cdefc223440...dcb83e0cfbcf8087651cc0ed3389683a688802c3) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index 022394a16..dcb83e0cf 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit 022394a167ef93c7797266a199096cdefc223440 +Subproject commit dcb83e0cfbcf8087651cc0ed3389683a688802c3 From aeeb39d51e30f4348ca7ca888f565f3229db92d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Aug 2022 18:40:40 +0000 Subject: [PATCH 027/250] build(deps): bump third_party/abseil-cpp from `df638bf` to `f7474d4` (#2001) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `df638bf` to `f7474d4`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/df638bf05a40994fab78a7af0d40c66436e6c6d6...f7474d4961b769c34a08475110ba391e5926e893) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index df638bf05..f7474d496 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit df638bf05a40994fab78a7af0d40c66436e6c6d6 +Subproject commit f7474d4961b769c34a08475110ba391e5926e893 From 9c6a23adb34b7dedfdcbd93463b959436f48e8c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Aug 2022 18:41:32 +0000 Subject: [PATCH 028/250] build(deps): bump third_party/yosys from `1c36f4c` to `029c278` (#2002) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `1c36f4c` to `029c278`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/1c36f4cc2cfe8832be19c9c6be5592c6ea55df19...029c2785e810fda0ccc5abbb6057af760f2fc6f3) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 1c36f4cc2..029c2785e 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 1c36f4cc2cfe8832be19c9c6be5592c6ea55df19 +Subproject commit 029c2785e810fda0ccc5abbb6057af760f2fc6f3 From 9617c8ea00fe6673223cc63f0ed6f82346692b6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 27 Aug 2022 18:36:26 +0000 Subject: [PATCH 029/250] build(deps): bump third_party/googletest from `c0e032e` to `afd902e` (#2006) Bumps [third_party/googletest](https://github.com/google/googletest) from `c0e032e` to `afd902e`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/c0e032efe587efa99413dd9ac54c3953a7915588...afd902e992b720d1b3e106bc5e425a5768872265) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index c0e032efe..afd902e99 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit c0e032efe587efa99413dd9ac54c3953a7915588 +Subproject commit afd902e992b720d1b3e106bc5e425a5768872265 From 6e5f2bf6d53ebc2f8001f20d53c48007423702eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 27 Aug 2022 18:41:42 +0000 Subject: [PATCH 030/250] build(deps): bump third_party/yosys from `029c278` to `060cbd3` (#2005) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `029c278` to `060cbd3`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/029c2785e810fda0ccc5abbb6057af760f2fc6f3...060cbd3e9e4b3fcf2c625c33b277d80fd875c5bc) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 029c2785e..060cbd3e9 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 029c2785e810fda0ccc5abbb6057af760f2fc6f3 +Subproject commit 060cbd3e9e4b3fcf2c625c33b277d80fd875c5bc From c7962ef88696fe955d2c35da64ede7943be92303 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 27 Aug 2022 18:48:12 +0000 Subject: [PATCH 031/250] build(deps): bump third_party/abseil-cpp from `f7474d4` to `92fdbfb` (#2004) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `f7474d4` to `92fdbfb`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/f7474d4961b769c34a08475110ba391e5926e893...92fdbfb301f8b301b28ab5c99e7361e775c2fb8a) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index f7474d496..92fdbfb30 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit f7474d4961b769c34a08475110ba391e5926e893 +Subproject commit 92fdbfb301f8b301b28ab5c99e7361e775c2fb8a From 9390281d70f992c06a7181082c76e6bfde9d882b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Sep 2022 18:34:21 +0000 Subject: [PATCH 032/250] build(deps): bump third_party/googletest from `afd902e` to `0e0d9fe` (#2009) Bumps [third_party/googletest](https://github.com/google/googletest) from `afd902e` to `0e0d9fe`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/afd902e992b720d1b3e106bc5e425a5768872265...0e0d9feefab1b51aaab9dfd70132e93c0b6964e5) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index afd902e99..0e0d9feef 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit afd902e992b720d1b3e106bc5e425a5768872265 +Subproject commit 0e0d9feefab1b51aaab9dfd70132e93c0b6964e5 From 687c6623a9ad52496f2ae838022001c3e4e9e812 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Sep 2022 18:35:44 +0000 Subject: [PATCH 033/250] build(deps): bump third_party/cctz from `dcb83e0` to `ec5d1d3` (#2008) Bumps [third_party/cctz](https://github.com/google/cctz) from `dcb83e0` to `ec5d1d3`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/dcb83e0cfbcf8087651cc0ed3389683a688802c3...ec5d1d33ed5d2d80dc19143a39ee165f8c124442) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index dcb83e0cf..ec5d1d33e 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit dcb83e0cfbcf8087651cc0ed3389683a688802c3 +Subproject commit ec5d1d33ed5d2d80dc19143a39ee165f8c124442 From c11467b4342a1de62feaa6a3a4d8a06dab4206b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Sep 2022 18:41:27 +0000 Subject: [PATCH 034/250] build(deps): bump third_party/abseil-cpp from `92fdbfb` to `2052c2e` (#2010) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `92fdbfb` to `2052c2e`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/92fdbfb301f8b301b28ab5c99e7361e775c2fb8a...2052c2e37c7554c52db3c117b3ad468924e10cd2) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 92fdbfb30..2052c2e37 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 92fdbfb301f8b301b28ab5c99e7361e775c2fb8a +Subproject commit 2052c2e37c7554c52db3c117b3ad468924e10cd2 From 52a979b9ca5d428220c335986f9a4ae520f6b4fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Sep 2022 18:34:47 +0000 Subject: [PATCH 035/250] build(deps): bump third_party/googletest from `0e0d9fe` to `c29315d` (#2013) Bumps [third_party/googletest](https://github.com/google/googletest) from `0e0d9fe` to `c29315d`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/0e0d9feefab1b51aaab9dfd70132e93c0b6964e5...c29315dda476f195298ab8da180e564478649b9e) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 0e0d9feef..c29315dda 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 0e0d9feefab1b51aaab9dfd70132e93c0b6964e5 +Subproject commit c29315dda476f195298ab8da180e564478649b9e From 1c5b6aad6ffb3c69812467255d4d3665c653893b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Sep 2022 18:37:41 +0000 Subject: [PATCH 036/250] build(deps): bump third_party/yosys from `060cbd3` to `d98738d` (#2012) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `060cbd3` to `d98738d`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/060cbd3e9e4b3fcf2c625c33b277d80fd875c5bc...d98738db5ce0347705fc1ce5f211b4e6d7dc5c3c) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 060cbd3e9..d98738db5 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 060cbd3e9e4b3fcf2c625c33b277d80fd875c5bc +Subproject commit d98738db5ce0347705fc1ce5f211b4e6d7dc5c3c From 678d28d7dc54b0f9a9bb294fcfd35d6f8d5a3dd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Sep 2022 18:38:24 +0000 Subject: [PATCH 037/250] build(deps): bump third_party/abseil-cpp from `2052c2e` to `0a066f3` (#2011) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `2052c2e` to `0a066f3`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/2052c2e37c7554c52db3c117b3ad468924e10cd2...0a066f31d981d69f7bde961055691906dabd4a3c) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 2052c2e37..0a066f31d 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 2052c2e37c7554c52db3c117b3ad468924e10cd2 +Subproject commit 0a066f31d981d69f7bde961055691906dabd4a3c From 4701ccd2925332a0dfcd1c13032aa45f289afc4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 17 Sep 2022 18:38:35 +0000 Subject: [PATCH 038/250] build(deps): bump third_party/abseil-cpp from `0a066f3` to `6b7b11a` (#2016) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `0a066f3` to `6b7b11a`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/0a066f31d981d69f7bde961055691906dabd4a3c...6b7b11a97fc72849f74610ee4d53403ad417d3cd) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 0a066f31d..6b7b11a97 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 0a066f31d981d69f7bde961055691906dabd4a3c +Subproject commit 6b7b11a97fc72849f74610ee4d53403ad417d3cd From aa179601c5ceb1651be7dd9974c17594109429c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 17 Sep 2022 18:38:44 +0000 Subject: [PATCH 039/250] build(deps): bump third_party/googletest from `c29315d` to `1336c4b` (#2015) Bumps [third_party/googletest](https://github.com/google/googletest) from `c29315d` to `1336c4b`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/c29315dda476f195298ab8da180e564478649b9e...1336c4b6d1a6f4bc6beebccb920e5ff858889292) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index c29315dda..1336c4b6d 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit c29315dda476f195298ab8da180e564478649b9e +Subproject commit 1336c4b6d1a6f4bc6beebccb920e5ff858889292 From 23297f97303afaf91ff19acdbdb5755c9e96ad74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Sep 2022 18:37:23 +0000 Subject: [PATCH 040/250] build(deps): bump third_party/abseil-cpp from `6b7b11a` to `9398fa7` (#2020) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `6b7b11a` to `9398fa7`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/6b7b11a97fc72849f74610ee4d53403ad417d3cd...9398fa76a3436bfb89f7a6ec5c74a21f1e4d6029) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 6b7b11a97..9398fa76a 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 6b7b11a97fc72849f74610ee4d53403ad417d3cd +Subproject commit 9398fa76a3436bfb89f7a6ec5c74a21f1e4d6029 From f67e2c05982b79222f9c295a3c03bc10820d7962 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Sep 2022 18:40:07 +0000 Subject: [PATCH 041/250] build(deps): bump third_party/googletest from `1336c4b` to `63907e1` (#2019) Bumps [third_party/googletest](https://github.com/google/googletest) from `1336c4b` to `63907e1`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/1336c4b6d1a6f4bc6beebccb920e5ff858889292...63907e1bfe6f78806b17d094daf2198ee27aad62) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 1336c4b6d..63907e1bf 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 1336c4b6d1a6f4bc6beebccb920e5ff858889292 +Subproject commit 63907e1bfe6f78806b17d094daf2198ee27aad62 From 7d9ab063cca5e016e8d36c73b351931e146d9689 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Sep 2022 18:42:18 +0000 Subject: [PATCH 042/250] build(deps): bump third_party/yosys from `d98738d` to `fcd1be1` (#2018) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `d98738d` to `fcd1be1`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/d98738db5ce0347705fc1ce5f211b4e6d7dc5c3c...fcd1be14225730147941aa78a85d0c30ccf1cf30) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index d98738db5..fcd1be142 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit d98738db5ce0347705fc1ce5f211b4e6d7dc5c3c +Subproject commit fcd1be14225730147941aa78a85d0c30ccf1cf30 From 28c6957c5d5e497ffffa28da9c4f284df2d91e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20L=C3=B6her?= Date: Thu, 29 Sep 2022 20:58:54 +0200 Subject: [PATCH 043/250] Update README.md link to f4pga readthedocs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bastian Löher --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5d44fc1ec..7ac8abb4e 100644 --- a/README.md +++ b/README.md @@ -244,7 +244,7 @@ can not do this alone, **we need your help**! ## Adding a new part to an existing family -We have written a [detailed guide](https://symbiflow.readthedocs.io/projects/prjxray/en/latest/db_dev_process/newpart.html) that walks through the process of adding a new part to an existing family. +We have written a [detailed guide](https://f4pga.readthedocs.io/projects/prjxray/en/latest/db_dev_process/newpart.html) that walks through the process of adding a new part to an existing family. ## TODO List From ea8a6ce8ac0893d92b1c0bdb5a20d9ea888bb12e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Oct 2022 17:31:14 +0000 Subject: [PATCH 044/250] build(deps): bump third_party/yosys from `fcd1be1` to `a9795c4` (#2025) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `fcd1be1` to `a9795c4`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/fcd1be14225730147941aa78a85d0c30ccf1cf30...a9795c4fce52f825fbb455daa74b4d126a289ff6) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index fcd1be142..a9795c4fc 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit fcd1be14225730147941aa78a85d0c30ccf1cf30 +Subproject commit a9795c4fce52f825fbb455daa74b4d126a289ff6 From 74ef111770366b675c9308a1e2c8e5a88a9121ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Oct 2022 18:28:18 +0000 Subject: [PATCH 045/250] build(deps): bump third_party/googletest from `63907e1` to `93f08be` (#2024) Bumps [third_party/googletest](https://github.com/google/googletest) from `63907e1` to `93f08be`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/63907e1bfe6f78806b17d094daf2198ee27aad62...93f08be653c36ddc6943e9513fc14c7292b4d007) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 63907e1bf..93f08be65 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 63907e1bfe6f78806b17d094daf2198ee27aad62 +Subproject commit 93f08be653c36ddc6943e9513fc14c7292b4d007 From d1f08294757aadd7313707a3ac51cabbf43585ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Oct 2022 18:34:53 +0000 Subject: [PATCH 046/250] build(deps): bump third_party/cctz from `ec5d1d3` to `c2bbd83` (#2023) Bumps [third_party/cctz](https://github.com/google/cctz) from `ec5d1d3` to `c2bbd83`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/ec5d1d33ed5d2d80dc19143a39ee165f8c124442...c2bbd835522b12664b7d29cf5d3335f275f209fd) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index ec5d1d33e..c2bbd8355 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit ec5d1d33ed5d2d80dc19143a39ee165f8c124442 +Subproject commit c2bbd835522b12664b7d29cf5d3335f275f209fd From f8fc7438684a025b0fb9dfbdfae8c8c80911e405 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Oct 2022 18:34:54 +0000 Subject: [PATCH 047/250] build(deps): bump third_party/abseil-cpp from `9398fa7` to `7f3c0d7` (#2026) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `9398fa7` to `7f3c0d7`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/9398fa76a3436bfb89f7a6ec5c74a21f1e4d6029...7f3c0d781134d25b24e0b55346482a2d366bf59b) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 9398fa76a..7f3c0d781 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 9398fa76a3436bfb89f7a6ec5c74a21f1e4d6029 +Subproject commit 7f3c0d781134d25b24e0b55346482a2d366bf59b From 099dcb74795b20fe5b133c775853f4e0c948431c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Oct 2022 18:36:12 +0000 Subject: [PATCH 048/250] build(deps): bump third_party/yaml-cpp from `c73ee34` to `1b50109` (#2028) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `c73ee34` to `1b50109`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/c73ee34704c512ebe915b283645aefa9f424a22f...1b50109f7bea60bd382d8ea7befce3d2bd67da5f) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index c73ee3470..1b50109f7 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit c73ee34704c512ebe915b283645aefa9f424a22f +Subproject commit 1b50109f7bea60bd382d8ea7befce3d2bd67da5f From 846302545ae9c9a95b30af47fcd6542fe033e677 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Oct 2022 18:40:09 +0000 Subject: [PATCH 049/250] build(deps): bump third_party/abseil-cpp from `7f3c0d7` to `76466b8` (#2029) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `7f3c0d7` to `76466b8`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/7f3c0d781134d25b24e0b55346482a2d366bf59b...76466b85fb9c86be56bfe773667ee6ad4fc3b87f) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 7f3c0d781..76466b85f 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 7f3c0d781134d25b24e0b55346482a2d366bf59b +Subproject commit 76466b85fb9c86be56bfe773667ee6ad4fc3b87f From 29b0e99b6639168628da58fb89ae28a65916f774 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 18:42:15 +0000 Subject: [PATCH 050/250] build(deps): bump third_party/googletest from `93f08be` to `a9b2f04` (#2031) Bumps [third_party/googletest](https://github.com/google/googletest) from `93f08be` to `a9b2f04`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/93f08be653c36ddc6943e9513fc14c7292b4d007...a9b2f0495cabb1ff01b51bcd0625cb1fd82da4ce) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 93f08be65..a9b2f0495 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 93f08be653c36ddc6943e9513fc14c7292b4d007 +Subproject commit a9b2f0495cabb1ff01b51bcd0625cb1fd82da4ce From 29868b5395984fdc60501b32a61705b04f162a14 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 18:44:05 +0000 Subject: [PATCH 051/250] build(deps): bump third_party/abseil-cpp from `76466b8` to `5fa65f2` (#2032) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `76466b8` to `5fa65f2`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/76466b85fb9c86be56bfe773667ee6ad4fc3b87f...5fa65f28e46e86c44966a1ca8a727a329d9c1ff8) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 76466b85f..5fa65f28e 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 76466b85fb9c86be56bfe773667ee6ad4fc3b87f +Subproject commit 5fa65f28e46e86c44966a1ca8a727a329d9c1ff8 From fc099380791bab81f0938a1e37b59ba60cb2d9f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 18:50:58 +0000 Subject: [PATCH 052/250] build(deps): bump third_party/cctz from `c2bbd83` to `c83606d` (#2034) Bumps [third_party/cctz](https://github.com/google/cctz) from `c2bbd83` to `c83606d`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/c2bbd835522b12664b7d29cf5d3335f275f209fd...c83606d3b2fd12279d75d560d9fff240be80f8d0) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index c2bbd8355..c83606d3b 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit c2bbd835522b12664b7d29cf5d3335f275f209fd +Subproject commit c83606d3b2fd12279d75d560d9fff240be80f8d0 From ea18cb24fe9ea81c48049bd951781bf98b176663 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Oct 2022 18:31:19 +0000 Subject: [PATCH 053/250] build(deps): bump third_party/abseil-cpp from `5fa65f2` to `cb436cf` (#2035) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `5fa65f2` to `cb436cf`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/5fa65f28e46e86c44966a1ca8a727a329d9c1ff8...cb436cf0142b4cbe47aae94223443df7f82e2920) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 5fa65f28e..cb436cf01 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 5fa65f28e46e86c44966a1ca8a727a329d9c1ff8 +Subproject commit cb436cf0142b4cbe47aae94223443df7f82e2920 From 283b650dca6287661d0fd94a36d62d75a0cc67ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Oct 2022 18:38:57 +0000 Subject: [PATCH 054/250] build(deps): bump third_party/googletest from `a9b2f04` to `e07617d` (#2036) Bumps [third_party/googletest](https://github.com/google/googletest) from `a9b2f04` to `e07617d`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/a9b2f0495cabb1ff01b51bcd0625cb1fd82da4ce...e07617d6c692a96e126f11f85c3e38e46b10b4d0) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index a9b2f0495..e07617d6c 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit a9b2f0495cabb1ff01b51bcd0625cb1fd82da4ce +Subproject commit e07617d6c692a96e126f11f85c3e38e46b10b4d0 From 4f4ebc83eff8ea8dd6e5e667209d7d1e647c5d8c Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Mon, 24 Oct 2022 21:47:20 +0200 Subject: [PATCH 055/250] CI: xilinx.sh: apply review comments Signed-off-by: Karol Gugala --- .github/workflows/scripts/xilinx.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/scripts/xilinx.sh b/.github/workflows/scripts/xilinx.sh index 4f543db0c..2290d080a 100755 --- a/.github/workflows/scripts/xilinx.sh +++ b/.github/workflows/scripts/xilinx.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at @@ -18,7 +18,6 @@ echo "----------------------------------------" mkdir -p ~/.Xilinx ls -l ~/.Xilinx mkdir ~/.ssh -#sudo chown -R $USER ~/.Xilinx echo echo "Fixing loader to be able to run lmutils" echo "----------------------------------------" @@ -54,9 +53,6 @@ echo "----------------------------------------" ls -l /opt echo "----------------------------------------" -# Create a tunnel to the server which has the Xilinx licenses and port forward -# them. -echo "xilinx secret" echo $GHA_SSH_TUNNEL_CONFIG_SECRET_NAME if [[ ! -z "$USE_LICENSE_SERVER" ]]; then From 057656f6670cdbeb971641479dd83c2d564ad86f Mon Sep 17 00:00:00 2001 From: Karol Gugala Date: Mon, 24 Oct 2022 21:47:57 +0200 Subject: [PATCH 056/250] CI: pass family to xilinx.sh Signed-off-by: Karol Gugala --- .github/workflows/Pipeline.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index efe731843..e45a4c98b 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -65,6 +65,7 @@ jobs: .github/workflows/scripts/xilinx.sh env: USE_LICENSE_SERVER: "true" + XRAY_SETTINGS: ${{ matrix.family }} - name: Build run: make build --output-sync=target --warn-undefined-variables -j$(nproc) From f503946d8a0aafa19eadbb4de3102138d7e57b86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Oct 2022 18:31:19 +0000 Subject: [PATCH 057/250] build(deps): bump third_party/yosys from `a9795c4` to `31c15e5` (#2039) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `a9795c4` to `31c15e5`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/a9795c4fce52f825fbb455daa74b4d126a289ff6...31c15e5fa60b8cb47e7785fc420d90e860708034) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index a9795c4fc..31c15e5fa 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit a9795c4fce52f825fbb455daa74b4d126a289ff6 +Subproject commit 31c15e5fa60b8cb47e7785fc420d90e860708034 From 9e3893b26f4c832e184b810d510c5e4f8cc2c2db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Oct 2022 18:36:54 +0000 Subject: [PATCH 058/250] build(deps): bump third_party/cctz from `c83606d` to `8b7632e` (#2040) Bumps [third_party/cctz](https://github.com/google/cctz) from `c83606d` to `8b7632e`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/c83606d3b2fd12279d75d560d9fff240be80f8d0...8b7632e87ad2ea4eb60cc2f7bb2dc3e9a59e53e5) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index c83606d3b..8b7632e87 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit c83606d3b2fd12279d75d560d9fff240be80f8d0 +Subproject commit 8b7632e87ad2ea4eb60cc2f7bb2dc3e9a59e53e5 From ce570fdf3326bb266a29c5544e52024b9321ffb9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Nov 2022 18:24:21 +0000 Subject: [PATCH 059/250] build(deps): bump third_party/googletest from `e07617d` to `a4f02ef` (#2045) Bumps [third_party/googletest](https://github.com/google/googletest) from `e07617d` to `a4f02ef`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/e07617d6c692a96e126f11f85c3e38e46b10b4d0...a4f02ef38981350c9d673b9909559c7a86420d7a) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index e07617d6c..a4f02ef38 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit e07617d6c692a96e126f11f85c3e38e46b10b4d0 +Subproject commit a4f02ef38981350c9d673b9909559c7a86420d7a From d3998eaec067500908dde8ac48f1dd4f98633ac2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Nov 2022 18:27:22 +0000 Subject: [PATCH 060/250] build(deps): bump third_party/cctz from `8b7632e` to `5417654` (#2043) Bumps [third_party/cctz](https://github.com/google/cctz) from `8b7632e` to `5417654`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/8b7632e87ad2ea4eb60cc2f7bb2dc3e9a59e53e5...5417654582642359a597b273bacaaedcc99f758f) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index 8b7632e87..541765458 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit 8b7632e87ad2ea4eb60cc2f7bb2dc3e9a59e53e5 +Subproject commit 5417654582642359a597b273bacaaedcc99f758f From f4add058e5d0fef3579a286ff743945a1f2ad6a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Nov 2022 18:29:00 +0000 Subject: [PATCH 061/250] build(deps): bump third_party/abseil-cpp from `cb436cf` to `ce1d348` (#2042) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `cb436cf` to `ce1d348`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/cb436cf0142b4cbe47aae94223443df7f82e2920...ce1d3484756e20ce96f6404eb62362c87fbd584a) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index cb436cf01..ce1d34847 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit cb436cf0142b4cbe47aae94223443df7f82e2920 +Subproject commit ce1d3484756e20ce96f6404eb62362c87fbd584a From 8f2d76f73de70cd216aac13c60fbe6ed079aad61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Nov 2022 18:21:42 +0000 Subject: [PATCH 062/250] build(deps): bump third_party/googletest from `a4f02ef` to `912db74` (#2047) Bumps [third_party/googletest](https://github.com/google/googletest) from `a4f02ef` to `912db74`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/a4f02ef38981350c9d673b9909559c7a86420d7a...912db742531bf82efb01194bc08140416e3b3467) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index a4f02ef38..912db7425 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit a4f02ef38981350c9d673b9909559c7a86420d7a +Subproject commit 912db742531bf82efb01194bc08140416e3b3467 From 70ee7d09c8098806297421e03c5434866fffd4c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Nov 2022 18:44:24 +0000 Subject: [PATCH 063/250] build(deps): bump third_party/abseil-cpp from `ce1d348` to `1b97698` (#2048) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `ce1d348` to `1b97698`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/ce1d3484756e20ce96f6404eb62362c87fbd584a...1b976982d8cdbfd8320f34209b065bae7adefb09) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index ce1d34847..1b976982d 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit ce1d3484756e20ce96f6404eb62362c87fbd584a +Subproject commit 1b976982d8cdbfd8320f34209b065bae7adefb09 From ed80755866fe97052650ad542d09e09ea65779d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 19 Nov 2022 18:49:18 +0000 Subject: [PATCH 064/250] build(deps): bump third_party/cctz from `5417654` to `83ffd88` (#2051) Bumps [third_party/cctz](https://github.com/google/cctz) from `5417654` to `83ffd88`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/5417654582642359a597b273bacaaedcc99f758f...83ffd88d7c9a48d1dc61f04cb649cd52966d2fff) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index 541765458..83ffd88d7 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit 5417654582642359a597b273bacaaedcc99f758f +Subproject commit 83ffd88d7c9a48d1dc61f04cb649cd52966d2fff From a44886bb9cdfbb2d7634f48acbe0c95c2690ba8c Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Thu, 18 Aug 2022 03:57:48 +0200 Subject: [PATCH 065/250] ci: rm cloudbuild related sources Signed-off-by: Unai Martinez-Corral --- .github/cloudbuild.yaml | 26 -------------------------- .github/cloudbuild/Dockerfile | 13 ------------- 2 files changed, 39 deletions(-) delete mode 100644 .github/cloudbuild.yaml delete mode 100644 .github/cloudbuild/Dockerfile diff --git a/.github/cloudbuild.yaml b/.github/cloudbuild.yaml deleted file mode 100644 index 1332d059a..000000000 --- a/.github/cloudbuild.yaml +++ /dev/null @@ -1,26 +0,0 @@ -steps: -- name: 'gcr.io/cloud-builders/docker' - args: - - 'build' - - '--build-arg' - - 'DEV_ENV_IMAGE=${_DEV_ENV_IMAGE}' - - '--build-arg' - - 'NUM_PARALLEL_JOBS=${_NUM_CPUS}' - - '--build-arg' - - 'BUILD_TYPE=${_BUILD_TYPE}' - - '-t' - - '${_GCR_ZONE}/$PROJECT_ID/${_IMAGE_NAME}:${SHORT_SHA}' - - '-f' - - '.github/cloudbuild/Dockerfile' - - '.' -options: - disk_size_gb: 1000 - machine_type: N1_HIGHCPU_32 -timeout: '24h0m0s' -substitutions: - _GCR_ZONE: 'gcr.io' - _IMAGE_NAME: 'prjxray-db' - _NUM_CPUS: '16' - _BUILD_TYPE: '' -images: - - '${_GCR_ZONE}/$PROJECT_ID/${_IMAGE_NAME}:${SHORT_SHA}' diff --git a/.github/cloudbuild/Dockerfile b/.github/cloudbuild/Dockerfile deleted file mode 100644 index e7408a7ac..000000000 --- a/.github/cloudbuild/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -ARG DEV_ENV_IMAGE - -FROM ${DEV_ENV_IMAGE} AS db_builder -ARG NUM_PARALLEL_JOBS=1 - -COPY . /source -RUN cd /source && make -j${NUM_PARALLEL_JOBS} --output-sync=target --warn-undefined-variables build && make env -RUN bash -c ". /source/database/artix7/settings.sh; cd /source/fuzzers && make --output-sync=target --warn-undefined-variables ${BUILD_TYPE}" -#RUN find /source/database -mindepth 1 -maxdepth 1 -type d -exec /source/htmlgen/htmlgen.py --settings={}/settings.sh --output=/output/html \; -RUN mkdir -p /output/raw && find /source/database -mindepth 1 -maxdepth 1 -type d -exec cp -R {} /output/raw \; - -FROM amd64/nginx:alpine -COPY --from=db_builder /output /usr/share/nginx/html From 82c8c0a32e35a3d93e2248b454fa7b8ebfebacae Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Thu, 18 Aug 2022 03:59:19 +0200 Subject: [PATCH 066/250] ci: mv workflows/scripts/ scripts/ Signed-off-by: Unai Martinez-Corral --- .github/{workflows => }/scripts/db.sh | 26 +++++++++++++++- .github/{workflows => }/scripts/xilinx.sh | 0 .github/workflows/Pipeline.yml | 4 +-- .github/workflows/scripts/hostinfo.sh | 36 ----------------------- 4 files changed, 27 insertions(+), 39 deletions(-) rename .github/{workflows => }/scripts/db.sh (89%) rename .github/{workflows => }/scripts/xilinx.sh (100%) delete mode 100755 .github/workflows/scripts/hostinfo.sh diff --git a/.github/workflows/scripts/db.sh b/.github/scripts/db.sh similarity index 89% rename from .github/workflows/scripts/db.sh rename to .github/scripts/db.sh index ab9461661..37f862210 100755 --- a/.github/workflows/scripts/db.sh +++ b/.github/scripts/db.sh @@ -9,7 +9,31 @@ set -e -source $(dirname "$0")/hostinfo.sh +echo +echo "========================================" +echo "Host Environment" +echo "----------------------------------------" +export +echo "----------------------------------------" + +echo +echo "========================================" +echo "Host CPU" +echo "----------------------------------------" +export CORES=$(nproc --all) +echo "Cores: $CORES" +echo +echo "Memory" +echo "----------------------------------------" +cat /proc/meminfo +echo "----------------------------------------" +export MEM_GB=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo)/(1024*1024))) +echo "Total Memory (GB): $MEM_GB" + +# Approx memory per grid process +export MEM_PER_RUN=8 +export MAX_GRID_CPU=$(($MEM_GB/$MEM_PER_RUN)) +export MAX_VIVADO_PROCESS=$(($MEM_GB/$MEM_PER_RUN)) echo echo "=======================================" diff --git a/.github/workflows/scripts/xilinx.sh b/.github/scripts/xilinx.sh similarity index 100% rename from .github/workflows/scripts/xilinx.sh rename to .github/scripts/xilinx.sh diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index e45a4c98b..96aef1a85 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -62,7 +62,7 @@ jobs: - name: Xilinx Setup run: | git config --global --add safe.directory /root/prjxray/prjxray - .github/workflows/scripts/xilinx.sh + .github/scripts/xilinx.sh env: USE_LICENSE_SERVER: "true" XRAY_SETTINGS: ${{ matrix.family }} @@ -74,7 +74,7 @@ jobs: run: make env --output-sync=target --warn-undefined-variables - name: Run Test - run: .github/workflows/scripts/db.sh + run: .github/scripts/db.sh env: XRAY_SETTINGS: ${{ matrix.family }} diff --git a/.github/workflows/scripts/hostinfo.sh b/.github/workflows/scripts/hostinfo.sh deleted file mode 100755 index 577577cb3..000000000 --- a/.github/workflows/scripts/hostinfo.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# Copyright (C) 2017-2020 The Project X-Ray Authors. -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC - -set -e - -echo -echo "========================================" -echo "Host Environment" -echo "----------------------------------------" -export -echo "----------------------------------------" - -echo -echo "========================================" -echo "Host CPU" -echo "----------------------------------------" -export CORES=$(nproc --all) -echo "Cores: $CORES" -echo -echo "Memory" -echo "----------------------------------------" -cat /proc/meminfo -echo "----------------------------------------" -export MEM_GB=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo)/(1024*1024))) -echo "Total Memory (GB): $MEM_GB" - -# Approx memory per grid process -export MEM_PER_RUN=8 -export MAX_GRID_CPU=$(($MEM_GB/$MEM_PER_RUN)) -export MAX_VIVADO_PROCESS=$(($MEM_GB/$MEM_PER_RUN)) From 5e8eb1abe6e8879d1f7ed2414cb35c2676d9d134 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Thu, 18 Aug 2022 04:00:55 +0200 Subject: [PATCH 067/250] ci: mv check_*.sh scripts/ Signed-off-by: Unai Martinez-Corral --- .github/{ => scripts}/check_license.sh | 0 .github/{ => scripts}/check_python_scripts.sh | 0 Makefile | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename .github/{ => scripts}/check_license.sh (100%) rename .github/{ => scripts}/check_python_scripts.sh (100%) diff --git a/.github/check_license.sh b/.github/scripts/check_license.sh similarity index 100% rename from .github/check_license.sh rename to .github/scripts/check_license.sh diff --git a/.github/check_python_scripts.sh b/.github/scripts/check_python_scripts.sh similarity index 100% rename from .github/check_python_scripts.sh rename to .github/scripts/check_python_scripts.sh diff --git a/Makefile b/Makefile index a33109498..ae1d89e4c 100644 --- a/Makefile +++ b/Makefile @@ -128,8 +128,8 @@ format: format-cpp format-docs format-py format-tcl format-trailing-ws .PHONY: format format-cpp format-py format-tcl format-trailing-ws check-license: - @./.github/check_license.sh - @./.github/check_python_scripts.sh + @./.github/scripts/check_license.sh + @./.github/scripts/check_python_scripts.sh .PHONY: check-license From 41ee22aca7e76fc2e5afda149160ffe858b4d660 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Thu, 18 Aug 2022 04:02:23 +0200 Subject: [PATCH 068/250] ci: mv update-contributing.py scripts/ Signed-off-by: Unai Martinez-Corral --- .github/{ => scripts}/update-contributing.py | 0 Makefile | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename .github/{ => scripts}/update-contributing.py (100%) diff --git a/.github/update-contributing.py b/.github/scripts/update-contributing.py similarity index 100% rename from .github/update-contributing.py rename to .github/scripts/update-contributing.py diff --git a/Makefile b/Makefile index ae1d89e4c..d66c2c105 100644 --- a/Makefile +++ b/Makefile @@ -88,7 +88,7 @@ format-cpp: find . -name \*.h $(FORMAT_EXCLUDE) -print0 | xargs -0 -P $$(nproc) ${CLANG_FORMAT} -style=file -i format-docs: - ./.github/update-contributing.py + ./.github/scripts/update-contributing.py PYTHON_FORMAT ?= yapf format-py: From dfd36931db603280e557652a8352b689b170a832 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Thu, 18 Aug 2022 04:10:03 +0200 Subject: [PATCH 069/250] ci/scripts/db: use log groups Signed-off-by: Unai Martinez-Corral --- .github/scripts/db.sh | 87 ++++++++++++------------------------------- 1 file changed, 24 insertions(+), 63 deletions(-) diff --git a/.github/scripts/db.sh b/.github/scripts/db.sh index 37f862210..3fff113f1 100755 --- a/.github/scripts/db.sh +++ b/.github/scripts/db.sh @@ -9,17 +9,11 @@ set -e -echo -echo "========================================" -echo "Host Environment" -echo "----------------------------------------" +echo '::group::Host Environment' export -echo "----------------------------------------" +echo '::endgroup::' -echo -echo "========================================" -echo "Host CPU" -echo "----------------------------------------" +echo '::group::Host CPU' export CORES=$(nproc --all) echo "Cores: $CORES" echo @@ -29,54 +23,37 @@ cat /proc/meminfo echo "----------------------------------------" export MEM_GB=$(($(awk '/MemTotal/ {print $2}' /proc/meminfo)/(1024*1024))) echo "Total Memory (GB): $MEM_GB" +echo '::endgroup::' # Approx memory per grid process export MEM_PER_RUN=8 export MAX_GRID_CPU=$(($MEM_GB/$MEM_PER_RUN)) export MAX_VIVADO_PROCESS=$(($MEM_GB/$MEM_PER_RUN)) -echo -echo "=======================================" -echo "Creating Vivado Symbolic Link" -echo "---------------------------------------" +echo '::group::Creating Vivado Symbolic Link' ls /opt/Xilinx/Vivado source /opt/Xilinx/Vivado/2017.2/settings64.sh vivado -version +echo '::endgroup::' -echo -echo "========================================" -echo "Downloading current database" -echo "----------------------------------------" -( - script --return --flush --command "./download-latest-db.sh" - -) -echo "----------------------------------------" +echo '::group::Downloading current database' +script --return --flush --command "./download-latest-db.sh" - +echo '::endgroup::' -echo -echo "========================================" -echo "Preparing database" -echo "----------------------------------------" -( - make db-prepare-${XRAY_SETTINGS} -) -echo "----------------------------------------" +echo '::group::Preparing database' +make db-prepare-${XRAY_SETTINGS} +echo '::endgroup::' source settings/$XRAY_SETTINGS.sh -echo -echo "========================================" -echo "Cleaning out current database" -echo "----------------------------------------" +echo '::group::Cleaning out current database' ( cd database make clean-${XRAY_SETTINGS}-db ) -echo "----------------------------------------" +echo '::endgroup::' -echo -echo "========================================" -echo "Running Database build" -echo "----------------------------------------" +echo '::group::Running Database build' ( # Output which fuzzers we are going to run echo "make --dry-run" @@ -110,7 +87,7 @@ echo "----------------------------------------" exit $DATABASE_RET fi ) -echo "----------------------------------------" +echo '::endgroup::' # Format the database make db-format-${XRAY_SETTINGS} @@ -118,10 +95,7 @@ make db-format-${XRAY_SETTINGS} make db-info # Output if the database has differences -echo -echo "========================================" -echo " Database Differences" -echo "----------------------------------------" +echo '::group::Database Differences' ( cd database # Update the index with any new files @@ -133,7 +107,6 @@ echo "----------------------------------------" # Output what git status echo - echo "----------------------------------------" echo " Database Status" echo "----------------------------------------" git status @@ -142,14 +115,12 @@ echo "----------------------------------------" # Output a summary of how the files have changed echo - echo "----------------------------------------" echo " Database Diff Summary" echo "----------------------------------------" git diff --stat --irreversible-delete --find-renames --find-copies --ignore-all-space origin/master # Save the diff to be uploaded as an artifact echo - echo "----------------------------------------" echo " Saving diff output" echo "----------------------------------------" # Patch file @@ -161,26 +132,22 @@ echo "----------------------------------------" DIFF_LINES="$(wc -l diff.patch | sed -e's/ .*$//')" if [ $DIFF_LINES -gt $MAX_DIFF_LINES ]; then echo - echo "----------------------------------------" echo " Database Diff" echo "----------------------------------------" echo "diff has $DIFF_LINES lines which is too large to display!" echo - echo "----------------------------------------" echo " Generating pretty diff output" echo "----------------------------------------" echo "diff has $DIFF_LINES lines which is too large for HTML output!" else # Output the actually diff echo - echo "----------------------------------------" echo " Database Diff" echo "----------------------------------------" git diff --color --irreversible-delete --find-renames --find-copies --ignore-all-space origin/master echo - echo "----------------------------------------" echo " Generating pretty diff output" echo "----------------------------------------" ( @@ -201,7 +168,7 @@ echo "----------------------------------------" ) || true fi ) -echo "----------------------------------------" +echo '::endgroup::' # Check the database and fail if it is broken. set -x +e @@ -209,22 +176,17 @@ make db-check-${XRAY_SETTINGS} CHECK_RET=$? set +x -e -echo -echo "========================================" -echo " Testing HTML generation" -echo "----------------------------------------" +echo '::group::Testing HTML generation' ( cd htmlgen source htmlgen.sh $XRAY_SETTINGS ) +echo '::endgroup::' # If we get here, then all the fuzzers completed fine. Hence we are # going to assume we don't want to keep all the build / logs / etc (as # they are quite large). Thus do a clean to get rid of them. -echo -echo "========================================" -echo " Cleaning up after success" -echo "----------------------------------------" +echo '::group::Cleaning up after success' ( cd fuzzers echo @@ -232,11 +194,10 @@ echo "----------------------------------------" make clean_fuzzers make clean_piplists ) -echo "----------------------------------------" +echo '::endgroup::' -echo "========================================" -echo " Final disk space after cleanup" -echo "----------------------------------------" +echo '::group::Final disk space after cleanup' du -sh +echo '::endgroup::' exit $CHECK_RET From 84cfc71af0d581089acc9285558423e91e9435c2 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Wed, 23 Nov 2022 17:52:28 +0100 Subject: [PATCH 070/250] ci/scripts/db: update Vivado block title Signed-off-by: Unai Martinez-Corral --- .github/scripts/db.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/db.sh b/.github/scripts/db.sh index 3fff113f1..b50c781a5 100755 --- a/.github/scripts/db.sh +++ b/.github/scripts/db.sh @@ -30,7 +30,7 @@ export MEM_PER_RUN=8 export MAX_GRID_CPU=$(($MEM_GB/$MEM_PER_RUN)) export MAX_VIVADO_PROCESS=$(($MEM_GB/$MEM_PER_RUN)) -echo '::group::Creating Vivado Symbolic Link' +echo '::group::Source Vivado settings' ls /opt/Xilinx/Vivado source /opt/Xilinx/Vivado/2017.2/settings64.sh vivado -version From c7cc58362c210c87462b10b3f9b5937368b18350 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Tue, 8 Nov 2022 17:31:50 +0700 Subject: [PATCH 071/250] add support for the kintex high performance banks Signed-off-by: Hans Baier --- fuzzers/000-init-db/Makefile | 1 + fuzzers/001-part-yaml/generate.tcl | 2 +- fuzzers/005-tilegrid/Makefile | 22 + fuzzers/005-tilegrid/add_tdb.py | 3 + fuzzers/005-tilegrid/generate_full.py | 4 +- fuzzers/005-tilegrid/iob18/Makefile | 10 + fuzzers/005-tilegrid/iob18/generate.tcl | 86 + fuzzers/005-tilegrid/iob18/top.py | 84 + fuzzers/005-tilegrid/iob18_int/Makefile | 10 + fuzzers/005-tilegrid/iob18_int/generate.tcl | 82 + fuzzers/005-tilegrid/iob18_int/top.py | 139 ++ fuzzers/005-tilegrid/ioi18/Makefile | 10 + fuzzers/005-tilegrid/ioi18/generate.tcl | 88 + fuzzers/005-tilegrid/ioi18/top.py | 119 ++ fuzzers/005-tilegrid/util.py | 4 +- fuzzers/030-iob/write_io_banks.tcl | 5 +- fuzzers/030-iob18/Makefile | 41 + fuzzers/030-iob18/README.md | 2 + fuzzers/030-iob18/bits.dbf | 0 fuzzers/030-iob18/check_results.py | 235 +++ fuzzers/030-iob18/generate.py | 302 ++++ fuzzers/030-iob18/generate.tcl | 122 ++ fuzzers/030-iob18/hclk_bits.dbf | 0 fuzzers/030-iob18/iostandards.py | 17 + fuzzers/030-iob18/process_rdb.py | 251 +++ fuzzers/030-iob18/tag_groups.txt | 2 + fuzzers/030-iob18/top.py | 425 +++++ fuzzers/030-iob18/write_io_banks.tcl | 44 + fuzzers/035-iob-ilogic/Makefile | 12 +- fuzzers/035-iob-ilogic/generate.tcl | 1413 ----------------- fuzzers/035a-iob18-idelay/Makefile | 29 + fuzzers/035a-iob18-idelay/bits.dbf | 14 + fuzzers/035a-iob18-idelay/generate.py | 87 + fuzzers/035a-iob18-idelay/generate.tcl | 31 + fuzzers/035a-iob18-idelay/top.py | 237 +++ fuzzers/035b-iob-iserdes/Makefile | 13 +- fuzzers/036-iob18-ologic/Makefile | 29 + fuzzers/036-iob18-ologic/bits.dbf | 8 + fuzzers/036-iob18-ologic/generate.py | 196 +++ fuzzers/036-iob18-ologic/generate.tcl | 107 ++ fuzzers/036-iob18-ologic/top.py | 474 ++++++ fuzzers/037-iob18-pips/Makefile | 58 + fuzzers/037-iob18-pips/bits.dbf | 0 fuzzers/037-iob18-pips/generate.py | 105 ++ fuzzers/037-iob18-pips/generate.tcl | 109 ++ fuzzers/037-iob18-pips/ioi_pip_list.tcl | 47 + fuzzers/037-iob18-pips/output_cmt.tcl | 18 + fuzzers/037-iob18-pips/top.py | 391 +++++ fuzzers/039-hclk-config/Makefile | 10 +- fuzzers/047-hclk-ioi18-pips/Makefile | 53 + fuzzers/047-hclk-ioi18-pips/README.md | 3 + fuzzers/047-hclk-ioi18-pips/bits.dbf | 0 fuzzers/047-hclk-ioi18-pips/generate.py | 92 ++ fuzzers/047-hclk-ioi18-pips/generate.tcl | 358 +++++ .../047-hclk-ioi18-pips/hclk_ioi_pip_list.tcl | 49 + fuzzers/047-hclk-ioi18-pips/output_cmt.tcl | 18 + fuzzers/047-hclk-ioi18-pips/top.py | 479 ++++++ fuzzers/071-ppips/generate.tcl | 4 +- fuzzers/Makefile | 15 + prjxray/segmaker.py | 11 +- prjxray/util.py | 22 +- settings/kintex7.sh | 8 +- tools/segmatch.cc | 2 +- utils/mergedb.sh | 15 + 64 files changed, 5186 insertions(+), 1441 deletions(-) create mode 100644 fuzzers/005-tilegrid/iob18/Makefile create mode 100644 fuzzers/005-tilegrid/iob18/generate.tcl create mode 100644 fuzzers/005-tilegrid/iob18/top.py create mode 100644 fuzzers/005-tilegrid/iob18_int/Makefile create mode 100644 fuzzers/005-tilegrid/iob18_int/generate.tcl create mode 100644 fuzzers/005-tilegrid/iob18_int/top.py create mode 100644 fuzzers/005-tilegrid/ioi18/Makefile create mode 100644 fuzzers/005-tilegrid/ioi18/generate.tcl create mode 100644 fuzzers/005-tilegrid/ioi18/top.py create mode 100644 fuzzers/030-iob18/Makefile create mode 100644 fuzzers/030-iob18/README.md create mode 100644 fuzzers/030-iob18/bits.dbf create mode 100644 fuzzers/030-iob18/check_results.py create mode 100644 fuzzers/030-iob18/generate.py create mode 100644 fuzzers/030-iob18/generate.tcl create mode 100644 fuzzers/030-iob18/hclk_bits.dbf create mode 100644 fuzzers/030-iob18/iostandards.py create mode 100644 fuzzers/030-iob18/process_rdb.py create mode 100644 fuzzers/030-iob18/tag_groups.txt create mode 100644 fuzzers/030-iob18/top.py create mode 100644 fuzzers/030-iob18/write_io_banks.tcl create mode 100644 fuzzers/035a-iob18-idelay/Makefile create mode 100644 fuzzers/035a-iob18-idelay/bits.dbf create mode 100644 fuzzers/035a-iob18-idelay/generate.py create mode 100644 fuzzers/035a-iob18-idelay/generate.tcl create mode 100644 fuzzers/035a-iob18-idelay/top.py create mode 100644 fuzzers/036-iob18-ologic/Makefile create mode 100644 fuzzers/036-iob18-ologic/bits.dbf create mode 100644 fuzzers/036-iob18-ologic/generate.py create mode 100644 fuzzers/036-iob18-ologic/generate.tcl create mode 100644 fuzzers/036-iob18-ologic/top.py create mode 100644 fuzzers/037-iob18-pips/Makefile create mode 100644 fuzzers/037-iob18-pips/bits.dbf create mode 100644 fuzzers/037-iob18-pips/generate.py create mode 100644 fuzzers/037-iob18-pips/generate.tcl create mode 100644 fuzzers/037-iob18-pips/ioi_pip_list.tcl create mode 100644 fuzzers/037-iob18-pips/output_cmt.tcl create mode 100644 fuzzers/037-iob18-pips/top.py create mode 100644 fuzzers/047-hclk-ioi18-pips/Makefile create mode 100644 fuzzers/047-hclk-ioi18-pips/README.md create mode 100644 fuzzers/047-hclk-ioi18-pips/bits.dbf create mode 100644 fuzzers/047-hclk-ioi18-pips/generate.py create mode 100644 fuzzers/047-hclk-ioi18-pips/generate.tcl create mode 100644 fuzzers/047-hclk-ioi18-pips/hclk_ioi_pip_list.tcl create mode 100644 fuzzers/047-hclk-ioi18-pips/output_cmt.tcl create mode 100644 fuzzers/047-hclk-ioi18-pips/top.py diff --git a/fuzzers/000-init-db/Makefile b/fuzzers/000-init-db/Makefile index 033ed9892..4b1e09a86 100644 --- a/fuzzers/000-init-db/Makefile +++ b/fuzzers/000-init-db/Makefile @@ -50,6 +50,7 @@ DB_SIMPLE=\ segbits_cmt_top_r_lower_b \ segbits_rioi3 \ segbits_riob33 \ + segbits_riob18 \ segbits_hclk_cmt \ segbits_hclk_ioi3 \ diff --git a/fuzzers/001-part-yaml/generate.tcl b/fuzzers/001-part-yaml/generate.tcl index 5cce0a95b..a14098062 100644 --- a/fuzzers/001-part-yaml/generate.tcl +++ b/fuzzers/001-part-yaml/generate.tcl @@ -11,7 +11,7 @@ proc extract_iobanks {filename} { set sample_site [lindex [get_sites -of $iobank] 0] if {[llength $sample_site] == 0} continue set clock_region [get_property CLOCK_REGION $sample_site] - foreach tile [get_tiles -filter {TYPE=~HCLK_IOI3}] { + foreach tile [concat [get_tiles -filter {TYPE=~HCLK_IOI3}] [get_tiles -filter {TYPE=~HCLK_IOI}]] { set tile_sites [get_sites -of_object $tile] if {[llength $tile_sites] == 0} continue set hclk_tile_clock_region [get_property CLOCK_REGION [lindex [get_sites -of_object $tile] 0]] diff --git a/fuzzers/005-tilegrid/Makefile b/fuzzers/005-tilegrid/Makefile index f0ad42b5a..57716950e 100644 --- a/fuzzers/005-tilegrid/Makefile +++ b/fuzzers/005-tilegrid/Makefile @@ -49,6 +49,13 @@ endif # Kintex7 only fuzzers ifeq (${XRAY_DATABASE}, kintex7) +# xc7k420t/xc7k480t have no high performance banks +ifneq (${XRAY_FABRIC}, $(filter ${XRAY_FABRIC}, xc7k480t)) +TILEGRID_TDB_DEPENDENCIES += iob18/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += iob18_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb +TILEGRID_TDB_DEPENDENCIES += ioi18/$(BUILD_FOLDER)/segbits_tilegrid.tdb +endif + # These kintex parts give an empty design ifneq (${XRAY_FABRIC}, $(filter ${XRAY_FABRIC}, xc7k160t xc7k325t xc7k480t)) TILEGRID_TDB_DEPENDENCIES += orphan_int_column/$(BUILD_FOLDER)/segbits_tilegrid.tdb @@ -85,12 +92,21 @@ cfg/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} iob/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd iob && $(MAKE) +iob18/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} + cd iob18 && $(MAKE) + iob_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd iob_int && $(MAKE) +iob18_int/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} + cd iob18_int && $(MAKE) + ioi/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd ioi && $(MAKE) +ioi18/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} + cd ioi18 && $(MAKE) + mmcm/$(BUILD_FOLDER)/segbits_tilegrid.tdb: ${BASICDB_TILEGRID} cd mmcm && $(MAKE) @@ -177,8 +193,11 @@ clean: cd clb_int && $(MAKE) clean cd cfg && $(MAKE) clean cd iob && $(MAKE) clean + cd iob18 && $(MAKE) clean cd iob_int && $(MAKE) clean + cd iob18_int && $(MAKE) clean cd ioi && $(MAKE) clean + cd ioi18 && $(MAKE) clean cd mmcm && $(MAKE) clean cd pll && $(MAKE) clean cd ps7_int && $(MAKE) clean @@ -208,8 +227,11 @@ clean_part: cd clb_int && $(MAKE) clean_part cd cfg && $(MAKE) clean_part cd iob && $(MAKE) clean_part + cd iob18 && $(MAKE) clean_part cd iob_int && $(MAKE) clean_part + cd iob18_int && $(MAKE) clean_part cd ioi && $(MAKE) clean_part + cd ioi18 && $(MAKE) clean_part cd mmcm && $(MAKE) clean_part cd pll && $(MAKE) clean_part cd ps7_int && $(MAKE) clean_part diff --git a/fuzzers/005-tilegrid/add_tdb.py b/fuzzers/005-tilegrid/add_tdb.py index 021f14f7c..e483f7709 100644 --- a/fuzzers/005-tilegrid/add_tdb.py +++ b/fuzzers/005-tilegrid/add_tdb.py @@ -94,7 +94,9 @@ def run(fn_in, fn_out, verbose=False): int_frames, int_words = localutil.get_int_params() tdb_fns = [ ("iob", 42, 4), + ("iob18", 42, 4), ("ioi", 42, 4), + ("ioi18", 42, 4), ("mmcm", 30, 49), ("pll", 30, 27), ("monitor", 30, 101), @@ -112,6 +114,7 @@ def run(fn_in, fn_out, verbose=False): ("gtp_channel", 32, 22), ("clb_int", int_frames, int_words), ("iob_int", int_frames, int_words), + ("iob18_int", int_frames, int_words), ("bram_int", int_frames, int_words), ("dsp_int", int_frames, int_words), ("fifo_int", int_frames, int_words), diff --git a/fuzzers/005-tilegrid/generate_full.py b/fuzzers/005-tilegrid/generate_full.py index 4022edc0d..454f6486d 100644 --- a/fuzzers/005-tilegrid/generate_full.py +++ b/fuzzers/005-tilegrid/generate_full.py @@ -369,7 +369,7 @@ def propagate_IOB_SING(database, tiles_by_grid): if tile in seen_iobs: continue - if database[tile]["type"] not in ["LIOB33", "RIOB33"]: + if database[tile]["type"] not in ["LIOB33", "RIOB33", "RIOB18"]: continue while True: @@ -439,7 +439,7 @@ def propagate_IOI_SING(database, tiles_by_grid): if tile in seen_iois: continue - if database[tile]["type"] not in ["LIOI3", "RIOI3"]: + if database[tile]["type"] not in ["LIOI3", "RIOI3", "RIOI"]: continue while True: diff --git a/fuzzers/005-tilegrid/iob18/Makefile b/fuzzers/005-tilegrid/iob18/Makefile new file mode 100644 index 000000000..9251dba84 --- /dev/null +++ b/fuzzers/005-tilegrid/iob18/Makefile @@ -0,0 +1,10 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +N ?= 30 +GENERATE_ARGS?="--oneval 1 --design params.csv --dframe 26 --dword 0" +include ../fuzzaddr/common.mk diff --git a/fuzzers/005-tilegrid/iob18/generate.tcl b/fuzzers/005-tilegrid/iob18/generate.tcl new file mode 100644 index 000000000..d4f790b8f --- /dev/null +++ b/fuzzers/005-tilegrid/iob18/generate.tcl @@ -0,0 +1,86 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +source "$::env(XRAY_DIR)/utils/utils.tcl" + +proc make_io_pin_sites {} { + # get all possible IOB pins + foreach pad [get_package_pins -filter "IS_GENERAL_PURPOSE == 1"] { + set site [get_sites -of_objects $pad] + if {[llength $site] == 0} { + continue + } + if [string match IOB18* [get_property SITE_TYPE $site]] { + dict append io_pin_sites $site $pad + } + } + return $io_pin_sites +} + +proc load_pin_lines {} { + # IOB_X0Y103 clk input + # IOB_X0Y129 do[0] output + + set fp [open "params.csv" r] + gets $fp line + + set pin_lines {} + for {gets $fp line} {$line != ""} {gets $fp line} { + lappend pin_lines [split $line ","] + } + close $fp + return $pin_lines +} + +proc loc_pins {} { + set pin_lines [load_pin_lines] + set io_pin_sites [make_io_pin_sites] + + puts "Looping" + for {set idx 0} {$idx < [llength $pin_lines]} {incr idx} { + set line [lindex $pin_lines $idx] + puts "$line" + + set site_str [lindex $line 2] + set pin_str [lindex $line 3] + + # Have: site + # Want: pin for site + + set site [get_sites $site_str] + set pad_bel [get_bels -of_objects $site -filter {TYPE =~ PAD && NAME =~ IOB_*}] + # set port [get_ports -of_objects $site] + set port [get_ports $pin_str] + set tile [get_tiles -of_objects $site] + + set pin [dict get $io_pin_sites $site] + set_property -dict "PACKAGE_PIN $pin IOSTANDARD LVCMOS18" $port + } +} + +proc run {} { + create_project -force -part $::env(XRAY_PART) design design + read_verilog top.v + synth_design -top top + + loc_pins + + set_property CFGBVS GND [current_design] + set_property CONFIG_VOLTAGE 1.8 [current_design] + set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] + set_property IS_ENABLED 0 [get_drc_checks {REQP-79}] + set_property IS_ENABLED 0 [get_drc_checks {NSTD-1}] + set_property IS_ENABLED 0 [get_drc_checks {UCIO-1}] + + place_design + route_design + + write_checkpoint -force design.dcp + write_bitstream -force design.bit +} + +run diff --git a/fuzzers/005-tilegrid/iob18/top.py b/fuzzers/005-tilegrid/iob18/top.py new file mode 100644 index 000000000..1e568cd98 --- /dev/null +++ b/fuzzers/005-tilegrid/iob18/top.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +import os +import random +random.seed(int(os.getenv("SEED"), 16)) +from prjxray import util +from prjxray.db import Database + + +def gen_sites(): + ''' + IOB18S: main IOB of a diff pair + IOB18M: secondary IOB of a diff pair + IOB18: not a diff pair. Relatively rare (at least in ROI...2 of them?) + Focus on IOB18S to start + ''' + db = Database(util.get_db_root(), util.get_part()) + grid = db.grid() + for tile_name in sorted(grid.tiles()): + loc = grid.loc_of_tilename(tile_name) + gridinfo = grid.gridinfo_at_loc(loc) + + for site_name, site_type in gridinfo.sites.items(): + if site_type == 'IOB18S': + yield tile_name, site_name + + +def write_params(params): + pinstr = 'tile,val,site,pin\n' + for tile, (site, val, pin) in sorted(params.items()): + pinstr += '%s,%s,%s,%s\n' % (tile, val, site, pin) + open('params.csv', 'w').write(pinstr) + + +def run(): + sites = list(gen_sites()) + print( + ''' +`define N_DI {} + +module top(input wire [`N_DI-1:0] di); + wire [`N_DI-1:0] di_buf; + '''.format(len(sites))) + + params = {} + print(''' + (* KEEP, DONT_TOUCH *) + LUT6 dummy_lut();''') + + for idx, ((tile_name, site_name), isone) in enumerate(zip( + sites, util.gen_fuzz_states(len(sites)))): + params[tile_name] = (site_name, isone, "di[%u]" % idx) + print( + ''' + (* KEEP, DONT_TOUCH *) + IBUF #( + ) ibuf_{site_name} ( + .I(di[{idx}]), + .O(di_buf[{idx}]) + );'''.format(site_name=site_name, idx=idx)) + + if isone: + print( + ''' + (* KEEP, DONT_TOUCH *) + PULLUP #( + ) pullup_{site_name} ( + .O(di[{idx}]) + );'''.format(site_name=site_name, idx=idx)) + + print("endmodule") + write_params(params) + + +if __name__ == '__main__': + run() diff --git a/fuzzers/005-tilegrid/iob18_int/Makefile b/fuzzers/005-tilegrid/iob18_int/Makefile new file mode 100644 index 000000000..9f2ad5087 --- /dev/null +++ b/fuzzers/005-tilegrid/iob18_int/Makefile @@ -0,0 +1,10 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +N ?= 16 +GENERATE_ARGS?="--oneval 0 --design params.csv --dframe 14 --dword 1" +include ../fuzzaddr/common.mk diff --git a/fuzzers/005-tilegrid/iob18_int/generate.tcl b/fuzzers/005-tilegrid/iob18_int/generate.tcl new file mode 100644 index 000000000..3c705da90 --- /dev/null +++ b/fuzzers/005-tilegrid/iob18_int/generate.tcl @@ -0,0 +1,82 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +source "$::env(XRAY_DIR)/utils/utils.tcl" + +proc make_io_pin_sites {} { + # get all possible IOB pins + foreach pad [get_package_pins -filter "IS_GENERAL_PURPOSE == 1"] { + set site [get_sites -of_objects $pad] + if {[llength $site] == 0} { + continue + } + if [string match IOB18* [get_property SITE_TYPE $site]] { + dict append io_pin_sites $site $pad + } + } + return $io_pin_sites +} + +proc load_pin_lines {} { + # IOB_X0Y103 clk input + # IOB_X0Y129 do[0] output + + set fp [open "params.csv" r] + set pin_lines {} + for {gets $fp line} {$line != ""} {gets $fp line} { + lappend pin_lines [split $line ","] + } + close $fp + return $pin_lines +} + +proc loc_pins {} { + set pin_lines [load_pin_lines] + set io_pin_sites [make_io_pin_sites] + + puts "Looping" + for {set idx 0} {$idx < [llength $pin_lines]} {incr idx} { + set line [lindex $pin_lines $idx] + puts "$line" + + set site_str [lindex $line 3] + set pin_str [lindex $line 4] + + # Have: site + # Want: pin for site + + set site [get_sites $site_str] + set pad_bel [get_bels -of_objects $site -filter {TYPE =~ PAD && NAME =~ IOB_*}] + # set port [get_ports -of_objects $site] + set port [get_ports $pin_str] + set tile [get_tiles -of_objects $site] + + set pin [dict get $io_pin_sites $site] + set_property -dict "PACKAGE_PIN $pin IOSTANDARD LVCMOS18" $port + } +} + +proc run {} { + create_project -force -part $::env(XRAY_PART) design design + read_verilog top.v + synth_design -top top + + loc_pins + + set_property CFGBVS GND [current_design] + set_property CONFIG_VOLTAGE 1.8 [current_design] + set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] + set_property IS_ENABLED 0 [get_drc_checks {REQP-79}] + + place_design + route_design + + write_checkpoint -force design.dcp + write_bitstream -force design.bit +} + +run diff --git a/fuzzers/005-tilegrid/iob18_int/top.py b/fuzzers/005-tilegrid/iob18_int/top.py new file mode 100644 index 000000000..5cb360baa --- /dev/null +++ b/fuzzers/005-tilegrid/iob18_int/top.py @@ -0,0 +1,139 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +''' +Generate a primitive to place at every I/O +Unlike CLB tests, the LFSR for this is inside the ROI, not driving it +''' + +import os +import random +random.seed(int(os.getenv("SEED"), 16)) +from prjxray import util +from prjxray.db import Database +import re + + +def gen_sites(): + ''' + IOB18S: main IOB of a diff pair + IOB18M: secondary IOB of a diff pair + IOB18: not a diff pair. Relatively rare (at least in ROI...2 of them?) + Focus on IOB18S to start + ''' + db = Database(util.get_db_root(), util.get_part()) + grid = db.grid() + for tile_name in sorted(grid.tiles()): + loc = grid.loc_of_tilename(tile_name) + gridinfo = grid.gridinfo_at_loc(loc) + + sites = [] + for site_name, site_type in gridinfo.sites.items(): + if site_type == 'IDELAYE2_FINEDELAY': + sites.append(site_name) + + if len(sites) == 0: + continue + + sites_y = [ + int(re.match('IDELAY_X[0-9]+Y([0-9]+)', site).group(1)) + for site in sites + ] + + sites, _ = zip(*sorted(zip(sites, sites_y), key=lambda x: x[1])) + + if gridinfo.tile_type[0] == 'L': + int_grid_x = loc.grid_x + 3 + pad_grid_x = loc.grid_x - 1 + int_tile_type = 'INT_L' + else: + int_grid_x = loc.grid_x - 3 + pad_grid_x = loc.grid_x + 1 + int_tile_type = 'INT_R' + + int_tile_locs = [ + (int_grid_x, loc.grid_y), + ] + + pad_gridinfo = grid.gridinfo_at_loc((pad_grid_x, loc.grid_y)) + + pad_sites = pad_gridinfo.sites.keys() + pad_sites_y = [ + int(re.match('IOB_X[0-9]+Y([0-9]+)', site).group(1)) + for site in pad_sites + ] + pad_sites, _ = zip( + *sorted(zip(pad_sites, pad_sites_y), key=lambda x: x[1])) + + if not gridinfo.tile_type.endswith("_SING"): + int_tile_locs.append((int_grid_x, loc.grid_y - 1)) + + assert len(sites) == len(int_tile_locs), ( + tile_name, sites, int_tile_locs) + assert len(sites) == len(pad_sites), (sites, pad_sites) + + for site_name, pad_site, int_tile_loc in zip(sites, pad_sites, + int_tile_locs): + int_tile_name = grid.tilename_at_loc(int_tile_loc) + assert int_tile_name.startswith(int_tile_type), ( + int_tile_name, site_name, int_tile_loc) + yield int_tile_name, site_name, pad_site + + +def write_params(params): + pinstr = '' + for tile, (site, val, pad_site_name, pin) in sorted(params.items()): + pinstr += '%s,%s,%s,%s,%s\n' % (tile, val, site, pad_site_name, pin) + open('params.csv', 'w').write(pinstr) + + +def run(): + sites = list(gen_sites()) + print( + ''' +`define N_DI {} + +module top(input wire [`N_DI-1:0] di); + wire [`N_DI-1:0] di_buf; + + (* KEEP, DONT_TOUCH, IODELAY_GROUP = "iodelays" *) + IDELAYCTRL idelayctrl ( + .REFCLK() + ); + '''.format(len(sites))) + + params = {} + + for idx, ((tile_name, site_name, pad_site_name), isone) in enumerate(zip( + sites, util.gen_fuzz_states(len(sites)))): + params[tile_name] = (site_name, isone, pad_site_name, "di[%u]" % idx) + + # Force HARD0 -> GFAN1 with CNTVALUEIN4 = 0 + # Toggle 1 pip with CNTVALUEIN3 = ? + print( + ''' + + // Solving for {3} + (* KEEP, DONT_TOUCH *) + IBUF ibuf_{0}(.I(di[{2}]), .O(di_buf[{2}])); + + (* KEEP, DONT_TOUCH, LOC = "{0}", IODELAY_GROUP = "iodelays" *) + IDELAYE2 idelay_{0} ( + .CNTVALUEIN(5'b0{1}111), + .IDATAIN(di_buf[{2}]) + ); +'''.format(site_name, isone, idx, tile_name)) + + print("endmodule") + write_params(params) + + +if __name__ == '__main__': + run() diff --git a/fuzzers/005-tilegrid/ioi18/Makefile b/fuzzers/005-tilegrid/ioi18/Makefile new file mode 100644 index 000000000..9fd5b9419 --- /dev/null +++ b/fuzzers/005-tilegrid/ioi18/Makefile @@ -0,0 +1,10 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +N ?= 24 +GENERATE_ARGS?="--oneval 1 --design params.csv --dframe 20 --dword 3" +include ../fuzzaddr/common.mk diff --git a/fuzzers/005-tilegrid/ioi18/generate.tcl b/fuzzers/005-tilegrid/ioi18/generate.tcl new file mode 100644 index 000000000..96e843af5 --- /dev/null +++ b/fuzzers/005-tilegrid/ioi18/generate.tcl @@ -0,0 +1,88 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +source "$::env(XRAY_DIR)/utils/utils.tcl" + +proc make_io_pin_sites {} { + # get all possible IOB pins + foreach pad [get_package_pins -filter "IS_GENERAL_PURPOSE == 1"] { + set site [get_sites -of_objects $pad] + if {[llength $site] == 0} { + continue + } + if [string match IOB18* [get_property SITE_TYPE $site]] { + dict append io_pin_sites $site $pad + } + } + return $io_pin_sites +} + +proc load_pin_lines {} { + # IOB_X0Y103 clk input + # IOB_X0Y129 do[0] output + + set fp [open "params.csv" r] + gets $fp line + + set pin_lines {} + for {gets $fp line} {$line != ""} {gets $fp line} { + lappend pin_lines [split $line ","] + } + close $fp + return $pin_lines +} + +proc loc_pins {} { + set pin_lines [load_pin_lines] + set io_pin_sites [make_io_pin_sites] + set package_pin_keys [dict keys $io_pin_sites] + + puts "Looping" + for {set idx 0} {$idx < [llength $pin_lines]} {incr idx} { + set line [lindex $pin_lines $idx] + puts "$line" + + set site_str [lindex $line 2] + set pin_str [lindex $line 3] + set pad_str [lindex $line 4] + + # Have: site + # Want: pin for site + + set site [get_sites $site_str] + set port [get_ports $pin_str] + set tile [get_tiles -of_objects $site] + + + set pin [dict get $io_pin_sites $pad_str] + set_property -dict "PACKAGE_PIN $pin IOSTANDARD LVCMOS18" $port + } +} + +proc run {} { + create_project -force -part $::env(XRAY_PART) design design + read_verilog top.v + synth_design -top top + + #loc_pins + + set_property CFGBVS GND [current_design] + set_property CONFIG_VOLTAGE 1.8 [current_design] + set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] + set_property IS_ENABLED 0 [get_drc_checks {REQP-79}] + set_property SEVERITY {Warning} [get_drc_checks NSTD-1] + set_property SEVERITY {Warning} [get_drc_checks UCIO-1] + #set_property IS_ENABLED 0 [get_drc_checks {REQP-83}] + + place_design + route_design + + write_checkpoint -force design.dcp + write_bitstream -force design.bit +} + +run diff --git a/fuzzers/005-tilegrid/ioi18/top.py b/fuzzers/005-tilegrid/ioi18/top.py new file mode 100644 index 000000000..be162cdbe --- /dev/null +++ b/fuzzers/005-tilegrid/ioi18/top.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +import json +import io +import os +import random +import re +random.seed(int(os.getenv("SEED"), 16)) +from prjxray import util +from prjxray import lut_maker +from prjxray import verilog +from prjxray.db import Database + + +def gen_sites(): + db = Database(util.get_db_root(), util.get_part()) + grid = db.grid() + for tile_name in sorted(grid.tiles()): + loc = grid.loc_of_tilename(tile_name) + gridinfo = grid.gridinfo_at_loc(loc) + if gridinfo.tile_type.endswith("_SING"): + continue + # Y9 tiles have frame address 1 frame higher than the rest + # Need to investigate what is so special about them + if tile_name.endswith("Y9"): + continue + + sites = [] + for site_name, site_type in gridinfo.sites.items(): + if site_type == 'IDELAYE2_FINEDELAY': + yield tile_name, site_name + + +def write_params(params): + pinstr = 'tile,isone,site\n' + for vals in params: + pinstr += ','.join(map(str, vals)) + '\n' + + open('params.csv', 'w').write(pinstr) + + +def use_idelay(p, luts, connects): + print( + ''' + wire idelay_{site}; + + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + IDELAYE2_FINEDELAY #( + .HIGH_PERFORMANCE_MODE("{param}"), + .DELAY_SRC("DATAIN") + ) idelay_site_{site} ( + .DATAIN({onet}), + .DATAOUT(idelay_{site}) + ); + assign {net} = idelay_{site}; + '''.format( + onet=luts.get_next_output_net(), + net=luts.get_next_input_net(), + param="TRUE" if p['isone'] else "FALSE", + **p), + file=connects) + + +def run(): + luts = lut_maker.LutMaker() + connects = io.StringIO() + + tile_params = [] + params = [] + sites = sorted(list(gen_sites())) + for idx, ((tile, site), isone) in enumerate(zip( + sites, util.gen_fuzz_states(len(sites)))): + + p = {} + p['tile'] = tile + p['site'] = site + p['isone'] = isone + params.append(p) + tile_params.append((tile, p['isone'], site)) + + write_params(tile_params) + + print(''' +module top(); + ''') + + # Always output a LUT6 to make placer happy. + print(''' + (* KEEP, DONT_TOUCH *) + LUT6 dummy_lut(); + ''') + + # Need IDELAYCTRL for IDEALAYs + print(''' + (* KEEP, DONT_TOUCH *) + IDELAYCTRL(); + ''') + + for p in params: + use_idelay(p, luts, connects) + + for l in luts.create_wires_and_luts(): + print(l) + + print(connects.getvalue()) + + print("endmodule") + + +if __name__ == '__main__': + run() diff --git a/fuzzers/005-tilegrid/util.py b/fuzzers/005-tilegrid/util.py index 0f65e00a5..56e18ce5b 100644 --- a/fuzzers/005-tilegrid/util.py +++ b/fuzzers/005-tilegrid/util.py @@ -96,8 +96,8 @@ def add_tile_bits( max_frames = tile_frames.get_tile_frames(baseaddr) if frames > max_frames: print( - "Warning: The number of frames specified for the tile {} ({}) exceeds the maximum allowed value ({}). Falling back to the maximum value." - .format(tile_name, frames, max_frames)) + "Warning: The number of frames for base address {} specified for the tile {} ({}) exceeds the maximum allowed value ({}). Falling back to the maximum value." + .format(hex(baseaddr), tile_name, frames, max_frames)) frames = max_frames # If frames count is None then use the maximum if frames is None: diff --git a/fuzzers/030-iob/write_io_banks.tcl b/fuzzers/030-iob/write_io_banks.tcl index 9ba176f60..284e0fe33 100644 --- a/fuzzers/030-iob/write_io_banks.tcl +++ b/fuzzers/030-iob/write_io_banks.tcl @@ -20,7 +20,10 @@ set fp [open "cmt_regions.csv" "w"] foreach site_type { IOB33M IOB33S IDELAYCTRL} { foreach site [get_sites -filter "SITE_TYPE == $site_type"] { set tile [get_tiles -of $site] - puts $fp "$site,$tile,[get_property CLOCK_REGION $site]" + # exclude IDELAYCTRL from high speed banks + if {![string match "*_IOI_*" $tile]} { + puts $fp "$site,$tile,[get_property CLOCK_REGION $site]" + } } } close $fp diff --git a/fuzzers/030-iob18/Makefile b/fuzzers/030-iob18/Makefile new file mode 100644 index 000000000..a73872648 --- /dev/null +++ b/fuzzers/030-iob18/Makefile @@ -0,0 +1,41 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +N := 80 +SPECIMENS_DEPS := build/iobanks.txt +include ../fuzzer.mk + +database: build/segbits_riob18.db build/segbits_hclk_ioi.db + +build/iobanks.txt: write_io_banks.tcl + mkdir -p build + cd build/ && ${XRAY_VIVADO} -mode batch -source ../write_io_banks.tcl + +build/segbits_riob18.rdb: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} -c 23 -o build/segbits_riob18.rdb $$(find -name segdata_riob18.txt) + +build/segbits_riob18.db: build/segbits_riob18.rdb process_rdb.py bits.dbf +# delete the Y1 LVDS tags because they are empty anyway and are missing the DRIVE tag which upsets process_rdb.py + sed '/IOB18.IOB_Y1.LVDS/d' -i build/segbits_riob18.rdb + python3 process_rdb.py build/segbits_riob18.rdb > build/segbits_riob18_processed.rdb + ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --groups tag_groups.txt --seg-fn-in build/segbits_riob18_processed.rdb --seg-fn-out $@ + ${XRAY_MASKMERGE} build/mask_riob18.db $$(find -name segdata_riob18.txt) + +build/segbits_hclk_ioi.rdb: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} -c 10 -o build/segbits_hclk_ioi.rdb $$(find -name segdata_hclk_ioi.txt) + +build/segbits_hclk_ioi.db: build/segbits_hclk_ioi.rdb + ${XRAY_DBFIXUP} --db-root build --zero-db hclk_bits.dbf --seg-fn-in build/segbits_hclk_ioi.rdb --seg-fn-out $@ + +pushdb: + ${XRAY_MERGEDB} riob18 build/segbits_riob18.db + ${XRAY_MERGEDB} mask_riob18 build/mask_riob18.db + + ${XRAY_MERGEDB} hclk_ioi build/segbits_hclk_ioi.db + +.PHONY: database pushdb + diff --git a/fuzzers/030-iob18/README.md b/fuzzers/030-iob18/README.md new file mode 100644 index 000000000..102f0f699 --- /dev/null +++ b/fuzzers/030-iob18/README.md @@ -0,0 +1,2 @@ +# IOB18 Fuzzer + diff --git a/fuzzers/030-iob18/bits.dbf b/fuzzers/030-iob18/bits.dbf new file mode 100644 index 000000000..e69de29bb diff --git a/fuzzers/030-iob18/check_results.py b/fuzzers/030-iob18/check_results.py new file mode 100644 index 000000000..364110b72 --- /dev/null +++ b/fuzzers/030-iob18/check_results.py @@ -0,0 +1,235 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +""" Sanity checks FASM output from IOB fuzzer. +The IOB fuzzer is fairly complicated, and it's output is hard to verify by +inspection. For this reason, check_results.py was written to compare the +specimen's generated and their FASM output. The FASM output does pose a +chicken and egg issue. The test procedure is a follows: + +1. Build the database (e.g. make -j run) +2. Build the database again (e.g. make -j run) +3. Run check_results.py + +The second time that the database is run, the FASM files in the specimen's +will have the bits documented by fuzzer. + +""" +import argparse +import os +import os.path +from prjxray import verilog +import json +import generate + + +def process_parts(parts): + if len(parts) == 0: + return + + if parts[-1] == 'IN_ONLY': + yield 'type', ['IBUF', 'IBUFDS'] + + if len(parts) > 2 and parts[-2] == 'SLEW': + yield 'SLEW', verilog.quote(parts[-1]) + + if parts[0] == 'PULLTYPE': + yield 'PULLTYPE', verilog.quote(parts[1]) + + if len(parts) > 1 and parts[1] == 'IN': + yield 'IOSTANDARDS', parts[0].split('_') + yield 'IN', True + + if len(parts) > 1 and parts[1] == 'IN_DIFF': + yield 'IOSTANDARDS', parts[0].split('_') + yield 'IN_DIFF', True + + if len(parts) > 1 and parts[1] == 'DRIVE': + yield 'IOSTANDARDS', parts[0].split('_') + + if parts[2] == 'I_FIXED': + yield 'DRIVES', [None] + else: + yield 'DRIVES', parts[2].split('_') + + +def create_sites_from_fasm(fasm_file): + sites = {} + + diff_tiles = set() + + with open(fasm_file) as f: + for l in f: + if 'IOB18' not in l: + continue + + parts = l.strip().split('.') + tile = parts[0] + site = parts[1] + + if 'OUT_DIFF' == site: + diff_tiles.add(tile) + continue + + if (tile, site) not in sites: + sites[(tile, site)] = { + 'tile': tile, + 'site_key': site, + } + + if len(parts) > 3 and 'IN_DIFF' == parts[3]: + diff_tiles.add(tile) + + for key, value in process_parts(parts[2:]): + sites[(tile, site)][key] = value + + for key in sites: + if 'type' not in sites[key]: + if 'IOSTANDARDS' not in sites[key]: + sites[key]['type'] = [None] + else: + assert 'IOSTANDARDS' in sites[key], sites[key] + assert 'DRIVES' in sites[key], sites[key] + + if 'IN' in sites[key]: + sites[key]['type'] = ['IOBUF', 'IOBUF_DCIEN'] + else: + sites[key]['type'] = [ + "OBUF", + "OBUFDS", + "OBUFTDS", + "OBUFDS_DUAL_BUF", + "OBUFTDS_DUAL_BUF", + ] + + return sites, diff_tiles + + +def process_specimen(fasm_file, params_json): + sites, diff_tiles = create_sites_from_fasm(fasm_file) + + with open(params_json) as f: + params = json.load(f) + + count = 0 + for p in params['tiles']: + tile = p['tile'] + for site in p['site'].split(' '): + site_y = int(site[site.find('Y') + 1:]) % 2 + + if generate.skip_broken_tiles(p): + continue + + site_key = 'IOB_Y{}'.format(site_y) + + if (tile, site_key) not in sites: + assert p['type'] is None, p + continue + + site_from_fasm = sites[(tile, site_key)] + + if site_y == 0 or tile not in diff_tiles: + assert p['type'] in site_from_fasm['type'], ( + tile, site_key, p['type'], site_from_fasm['type']) + else: + # Y1 on DIFF tiles is always none. + assert p['type'] is None, p + + if p['type'] is None: + continue + + assert 'PULLTYPE' in p, p + assert 'PULLTYPE' in site_from_fasm, site_from_fasm + + if verilog.unquote(p['PULLTYPE']) == '': + # Default is None. + pulltype = verilog.quote('NONE') + else: + pulltype = p['PULLTYPE'] + + assert pulltype == site_from_fasm['PULLTYPE'], ( + tile, site_key, p, site_from_fasm) + + assert 'IOSTANDARDS' in site_from_fasm, (tile, site) + + iostandard = verilog.unquote(p['IOSTANDARD']) + if iostandard.startswith('DIFF_'): + iostandard = iostandard[5:] + + assert iostandard in site_from_fasm['IOSTANDARDS'], ( + p['IOSTANDARD'], + site_from_fasm['IOSTANDARDS'], + ) + + if p['type'] not in ['IBUF', 'IBUFDS']: + if verilog.unquote(p['SLEW']) == '': + # Default is None. + slew = verilog.quote('SLOW') + else: + slew = p['SLEW'] + + assert slew == site_from_fasm['SLEW'], ( + tile, site_key, p, site_from_fasm) + + assert 'DRIVES' not in p, p + assert 'DRIVES' in site_from_fasm, ( + tile, site, p['type'], site_from_fasm) + + if p['DRIVE'] is None: + assert None in site_from_fasm['DRIVES'], ( + tile, site_key, p['DRIVE'], site_from_fasm['DRIVES']) + elif p['DRIVE'] == '': + if None in site_from_fasm['DRIVES']: + # IOSTANDARD has not DRIVE setting, ignore + pass + else: + # Check that drive is at default + assert 'I12' in site_from_fasm['DRIVES'], ( + tile, site_key, p['DRIVE'], + site_from_fasm['DRIVES']) + else: + assert 'I{}'.format( + p['DRIVE']) in site_from_fasm['DRIVES'], ( + tile, site_key, p['DRIVE'], + site_from_fasm['DRIVES']) + + count += 1 + + return count + + +def scan_specimens(): + for root, dirs, files in os.walk('build'): + if os.path.basename(root).startswith('specimen_'): + print('Processing', os.path.basename(root)) + process_specimen( + fasm_file=os.path.join(root, 'design.fasm'), + params_json=os.path.join(root, 'params.json')) + + print('No errors found!') + + +def main(): + parser = argparse.ArgumentParser(description="Verify IOB FASM vs BELs.") + + parser.add_argument('--fasm') + parser.add_argument('--params') + + args = parser.parse_args() + + if not args.fasm and not args.params: + scan_specimens() + else: + count = process_specimen(fasm_file=args.fasm, params_json=args.params) + print('No errors found in {} IO sites'.format(count)) + + +if __name__ == "__main__": + main() diff --git a/fuzzers/030-iob18/generate.py b/fuzzers/030-iob18/generate.py new file mode 100644 index 000000000..c15173892 --- /dev/null +++ b/fuzzers/030-iob18/generate.py @@ -0,0 +1,302 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC + +from prjxray.segmaker import Segmaker +from prjxray import segmaker +from prjxray import verilog +import os +import json +import csv + +from iostandards import * + +def bitfilter(frame, word): + # the fuzzers seem to find bits in frame 24 which seems + # to be used by other tile types + if frame < 30: + return False + return True + +def mk_drive_opt(iostandard, drive): + if drive is None: + drive = '_FIXED' + return '{}.DRIVE.I{}'.format(iostandard, drive) + +def drives_for_iostandard(iostandard): + if iostandard in ['LVCMOS18', 'LVCMOS15']: + drives = [2, 4, 6, 8, 12, 16] + elif iostandard == 'LVCMOS12': + drives = [2, 4, 6, 8] + elif iostandard in SSTL + DIFF_SSTL: + return ['_FIXED'] + else: + assert False, "this line should be unreachable" + + return drives + +STEPDOWN_IOSTANDARDS = LVCMOS + SSTL +IBUF_LOW_PWR_SUPPORTED = LVDS + DIFF_SSTL +ONLY_DIFF_IOSTANDARDS = LVDS + + +def main(): + # Create map of iobank -> sites + iobanks = {} + site_to_iobank = {} + iobank_iostandards = {} + with open(os.path.join(os.getenv('FUZDIR'), 'build', 'iobanks.txt')) as f: + for l in f: + iob_site, iobank = l.strip().split(',') + iobank = int(iobank) + + if iobank not in iobanks: + iobanks[iobank] = set() + + iobanks[iobank].add(iob_site) + assert iob_site not in site_to_iobank + site_to_iobank[iob_site] = iobank + + for iobank in iobanks: + iobank_iostandards[iobank] = set() + + # Load a list of PUDC_B pin function tiles. They are configured differently + # by the vendor tools so need to be skipped + pudc_tiles = set() + with open(os.path.join(os.getenv('FUZDIR'), 'build', + 'pudc_sites.csv')) as f: + for l in csv.DictReader(f): + pudc_tiles.add(l["tile"]) + + print("Loading tags") + segmk = Segmaker("design.bits") + ''' + port,site,tile,pin,slew,drive,pulltype + di[0],IOB_X1Y107,RIOB18_X1Y107,AF4,PULLDOWN + di[10],IOB_X1Y147,RIOB18_X1Y147,U5,PULLUP + ''' + with open('params.json', 'r') as f: + design = json.load(f) + + diff_pairs = set() + for d in design['tiles']: + iostandard = verilog.unquote(d['IOSTANDARD']) + if iostandard.startswith('DIFF_'): + diff_pairs.add(d['pair_site']) + + for d in design['tiles']: + site = d['site'] + tile = d['tile'] + + if tile in pudc_tiles: + continue + + if site in diff_pairs: + continue + + iostandard = verilog.unquote(d['IOSTANDARD']) + if iostandard.startswith('DIFF_'): + iostandard = iostandard[5:] + + iobank_iostandards[site_to_iobank[site]].add(iostandard) + + only_diff_io = iostandard in ONLY_DIFF_IOSTANDARDS + + if d['type'] is None: + segmk.add_site_tag(site, 'INOUT', 0) + segmk.add_site_tag(site, '{}.IN_USE'.format(iostandard), 0) + segmk.add_site_tag(site, '{}.IN'.format(iostandard), 0) + segmk.add_site_tag(site, '{}.OUT'.format(iostandard), 0) + segmk.add_site_tag(site, '{}.IN_ONLY'.format(iostandard), 0) + elif d['type'] == 'IBUF': + segmk.add_site_tag(site, 'INOUT', 0) + segmk.add_site_tag(site, '{}.IN_USE'.format(iostandard), 1) + segmk.add_site_tag(site, '{}.IN'.format(iostandard), 1) + segmk.add_site_tag(site, '{}.IN_DIFF'.format(iostandard), 0) + segmk.add_site_tag(site, '{}.OUT'.format(iostandard), 0) + segmk.add_site_tag(site, '{}.IN_ONLY'.format(iostandard), 1) + segmk.add_tile_tag(tile, 'IN_DIFF', 0) + + if iostandard in IBUF_LOW_PWR_SUPPORTED: + segmk.add_site_tag(site, 'IBUF_LOW_PWR', d['IBUF_LOW_PWR']) + segmk.add_site_tag(site, 'ZIBUF_LOW_PWR', 1 ^ d['IBUF_LOW_PWR']) + + elif d['type'] == 'IBUFDS': + psite = d['pair_site'] + segmk.add_site_tag(site, 'INOUT', 0) + segmk.add_site_tag(site, '{}.IN_USE'.format(iostandard), 1) + segmk.add_site_tag(site, '{}.IN'.format(iostandard), 1) + segmk.add_site_tag(site, '{}.IN_DIFF'.format(iostandard), 1) + segmk.add_site_tag(psite, '{}.IN_DIFF'.format(iostandard), 1) + segmk.add_site_tag(site, '{}.OUT'.format(iostandard), 0) + segmk.add_site_tag(site, '{}.IN_ONLY'.format(iostandard), 1) + segmk.add_tile_tag(tile, 'IN_DIFF', 1) + + if iostandard in IBUF_LOW_PWR_SUPPORTED: + segmk.add_tile_tag(tile, 'DIFF.IBUF_LOW_PWR', d['IBUF_LOW_PWR']) + segmk.add_tile_tag(tile, 'DIFF.ZIBUF_LOW_PWR', 1 ^ d['IBUF_LOW_PWR']) + + elif d['type'] == 'OBUF': + segmk.add_site_tag(site, 'INOUT', 0) + segmk.add_site_tag(site, '{}.IN_USE'.format(iostandard), 1) + segmk.add_site_tag(site, '{}.IN'.format(iostandard), 0) + segmk.add_site_tag(site, '{}.OUT'.format(iostandard), 1) + segmk.add_tile_tag(tile, 'OUT_DIFF', 0) + + elif d['type'] == 'OBUFDS': + segmk.add_site_tag(site, 'INOUT', 0) + segmk.add_site_tag(site, '{}.IN_USE'.format(iostandard), 1) + segmk.add_site_tag(site, '{}.IN'.format(iostandard), 0) + segmk.add_site_tag(site, '{}.OUT'.format(iostandard), 1) + segmk.add_tile_tag(tile, 'OUT_DIFF', 1 and not only_diff_io) + segmk.add_tile_tag(tile, 'OUT_TDIFF', 0) + + elif d['type'] == 'OBUFTDS': + segmk.add_site_tag(site, 'INOUT', 0) + segmk.add_site_tag(site, '{}.IN_USE'.format(iostandard), 1) + segmk.add_site_tag(site, '{}.IN'.format(iostandard), 0) + segmk.add_site_tag(site, '{}.OUT'.format(iostandard), 1) + segmk.add_tile_tag(tile, 'OUT_DIFF', 1 and not only_diff_io) + segmk.add_tile_tag(tile, 'OUT_TDIFF', 1 and not only_diff_io) + + elif d['type'] == 'IOBUF_DCIEN': + segmk.add_site_tag(site, 'INOUT', 1) + segmk.add_site_tag(site, '{}.IN_USE'.format(iostandard), 1) + segmk.add_site_tag(site, '{}.IN'.format(iostandard), 1) + segmk.add_site_tag(site, '{}.OUT'.format(iostandard), 1) + + + if d['type'] is not None: + segmaker.add_site_group_zero( + segmk, site, "PULLTYPE.", + ("NONE", "KEEPER", "PULLDOWN", "PULLUP"), "PULLDOWN", + verilog.unquote(d['PULLTYPE'])) + + if d['type'] in [None, 'IBUF', 'IBUFDS']: + continue + + drive_opts = set() + for opt in LVCMOS: + for drive_opt in ("2", "4", "6", "8", "12", "16"): + if drive_opt in ["12", "16"] and opt == "LVCMOS12": + continue + + drive_opts.add(mk_drive_opt(opt, drive_opt)) + + for sstl in SSTL: + drive_opts.add(mk_drive_opt(sstl, None)) + + drive_opts.add(mk_drive_opt("LVDS", None)) + + segmaker.add_site_group_zero( + segmk, site, '', drive_opts, mk_drive_opt('LVCMOS25', '12'), + mk_drive_opt(iostandard, d['DRIVE'])) + + if d['SLEW']: + for opt in ["SLOW", "FAST"]: + segmk.add_site_tag( + site, iostandard + ".SLEW." + opt, + opt == verilog.unquote(d['SLEW'])) + + if 'ibufdisable_wire' in d: + segmk.add_site_tag( + site, 'IBUFDISABLE.I', d['ibufdisable_wire'] != '0') + + if 'dcitermdisable_wire' in d: + segmk.add_site_tag( + site, 'DCITERMDISABLE.I', d['dcitermdisable_wire'] != '0') + + site_to_cmt = {} + site_to_tile = {} + tile_to_cmt = {} + cmt_to_idelay = {} + with open(os.path.join(os.getenv('FUZDIR'), 'build', 'cmt_regions.csv')) as f: + for l in f: + site, tile, cmt = l.strip().split(',') + site_to_tile[site] = tile + + site_to_cmt[site] = cmt + tile_to_cmt[tile] = cmt + + # Given IDELAYCTRL's are only located in HCLK_IOI tiles, and + # there is only on HCLK_IOI tile per CMT, update + # CMT -> IDELAYCTRL / tile map. + if 'IDELAYCTRL' in site: + assert cmt not in cmt_to_idelay + cmt_to_idelay[cmt] = site, tile + + # For each IOBANK with an active VREF set the feature + cmt_vref_active = set() + with open('iobank_vref.csv') as f: + for l in f: + iobank, vref = l.strip().split(',') + iobank = int(iobank) + + cmt = None + for cmt_site in iobanks[iobank]: + if cmt_site in site_to_cmt: + cmt = site_to_cmt[cmt_site] + break + + if cmt is None: + continue + + cmt_vref_active.add(cmt) + + _, hclk_cmt_tile = cmt_to_idelay[cmt] + + opt = 'VREF.V_{:d}_MV'.format(int(float(vref) * 1000)) + segmk.add_tile_tag(hclk_cmt_tile, opt, 1) + + for iobank in iobank_iostandards: + if len(iobank_iostandards[iobank]) == 0: + continue + + for cmt_site in iobanks[iobank]: + if cmt_site in site_to_cmt: + cmt = site_to_cmt[cmt_site] + break + + if cmt is None: + continue + + _, hclk_cmt_tile = cmt_to_idelay[cmt] + + assert len(iobank_iostandards[iobank]) == 1, iobank_iostandards[iobank] + + iostandard = list(iobank_iostandards[iobank])[0] + for only_diff_io in ONLY_DIFF_IOSTANDARDS: + segmk.add_tile_tag( + hclk_cmt_tile, '{}_IN_USE'.format(only_diff_io), + iostandard == only_diff_io) + + segmk.add_tile_tag( + hclk_cmt_tile, 'ONLY_DIFF_IN_USE', + iostandard in ONLY_DIFF_IOSTANDARDS) + + # For IOBANK's with no active VREF, clear all VREF options. + for cmt, (_, hclk_cmt_tile) in cmt_to_idelay.items(): + if cmt in cmt_vref_active: + continue + + for vref in ( + .600, + .675, + .75, + .90, + ): + opt = 'VREF.V_{:d}_MV'.format(int(vref * 1000)) + segmk.add_tile_tag(hclk_cmt_tile, opt, 0) + + segmk.compile(bitfilter=bitfilter) + segmk.write(allow_empty=True) + +if __name__ == "__main__": + main() diff --git a/fuzzers/030-iob18/generate.tcl b/fuzzers/030-iob18/generate.tcl new file mode 100644 index 000000000..a24d1dff6 --- /dev/null +++ b/fuzzers/030-iob18/generate.tcl @@ -0,0 +1,122 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +source "$::env(XRAY_DIR)/utils/utils.tcl" + +proc make_io_pin_sites {} { + # get all possible IOB pins + foreach pad [get_package_pins -filter "IS_GENERAL_PURPOSE == 1"] { + set site [get_sites -of_objects $pad] + if {[llength $site] == 0} { + continue + } + if [string match IOB18* [get_property SITE_TYPE $site]] { + dict append io_pin_sites $site $pad + } + } + return $io_pin_sites +} + +proc load_pin_lines {} { + # IOB_X0Y103 clk input + # IOB_X0Y129 do[0] output + + set fp [open "params.csv" r] + gets $fp line + + set pin_lines {} + for {gets $fp line} {$line != ""} {gets $fp line} { + lappend pin_lines [split $line ","] + } + close $fp + return $pin_lines +} + +proc loc_pins {} { + set pin_lines [load_pin_lines] + set io_pin_sites [make_io_pin_sites] + + puts "Looping" + for {set idx 0} {$idx < [llength $pin_lines]} {incr idx} { + set line [lindex $pin_lines $idx] + puts "$line" + + set site_str [lindex $line 1] + set pin_str [lindex $line 2] + set iostandard [lindex $line 3] + set drive [lindex $line 4] + set slew [lindex $line 5] + set pulltype [lindex $line 6] + + # Have: site + # Want: pin for site + + set site [get_sites $site_str] + set pad_bel [get_bels -of_objects $site -filter {TYPE =~ PAD && NAME =~ IOB_*}] + # set port [get_ports -of_objects $site] + set port [get_ports $pin_str] + set tile [get_tiles -of_objects $site] + + set pin [dict get $io_pin_sites $site] + + set props {} + lappend props PACKAGE_PIN $pin + lappend props IOSTANDARD $iostandard + lappend props PULLTYPE $pulltype + + if {$drive != "None"} { + lappend props DRIVE $drive + } + + if {$slew != "None"} { + lappend props SLEW $slew + } + + puts $props + + set_property -dict "$props" $port + } +} + +proc set_vref {} { + set fp [open "iobank_vref.csv" r] + for {gets $fp line} {$line != ""} {gets $fp line} { + set parts [split $line ","] + set iobank [lindex $parts 0] + set vref [lindex $parts 1] + puts "setting $iobank ([get_iobanks $iobank]) to INTERNAL_VREF $vref" + set_property INTERNAL_VREF $vref [get_iobanks $iobank] + } +} + +proc run {} { + create_project -force -part $::env(XRAY_PART) design design + read_verilog top.v + synth_design -top top + + loc_pins + set_vref + + set_property CFGBVS GND [current_design] + set_property CONFIG_VOLTAGE 1.8 [current_design] + set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] + set_property IS_ENABLED 0 [get_drc_checks {NSTD-1}] + set_property IS_ENABLED 0 [get_drc_checks {UCIO-1}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-79}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-144}] + set_property IS_ENABLED 0 [get_drc_checks {AVAL-74}] + + write_checkpoint -force design_pre_place.dcp + + place_design + route_design + + write_checkpoint -force design.dcp + write_bitstream -force design.bit +} + +run diff --git a/fuzzers/030-iob18/hclk_bits.dbf b/fuzzers/030-iob18/hclk_bits.dbf new file mode 100644 index 000000000..e69de29bb diff --git a/fuzzers/030-iob18/iostandards.py b/fuzzers/030-iob18/iostandards.py new file mode 100644 index 000000000..c6577639b --- /dev/null +++ b/fuzzers/030-iob18/iostandards.py @@ -0,0 +1,17 @@ +LVCMOS = ['LVCMOS12', 'LVCMOS15', 'LVCMOS18'] + +# TODO: add support for digitally controlled impedance (_DCI) and termination (_T) +SSTL = ['SSTL15', #'SSTL15_DCI', 'SSTL15_T_DCI' + 'SSTL135', #'SSTL135_DCI', 'SSTL135_T_DCI' + 'SSTL12', #'SSTL12_DCI', 'SSTL12_T_DCI' + ] + +# TODO: add support for digitally controlled impedance (_DCI) and termination (_T) +DIFF_SSTL15 = ['DIFF_SSTL15', ] # 'DIFF_SSTL15_DCI', 'DIFF_SSTL15_T_DCI'] +DIFF_SSTL135 = ['DIFF_SSTL135', ] # 'DIFF_SSTL135_DCI', 'DIFF_SSTL135_T_DCI'] +DIFF_SSTL12 = ['DIFF_SSTL12', ] # 'DIFF_SSTL12_DCI', 'DIFF_SSTL12_T_DCI'] +DIFF_SSTL = DIFF_SSTL15 + DIFF_SSTL135 + DIFF_SSTL12 + +LVDS = ['LVDS'] + +DIFF = DIFF_SSTL + LVDS \ No newline at end of file diff --git a/fuzzers/030-iob18/process_rdb.py b/fuzzers/030-iob18/process_rdb.py new file mode 100644 index 000000000..8d997ab15 --- /dev/null +++ b/fuzzers/030-iob18/process_rdb.py @@ -0,0 +1,251 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +""" IOB bits are more complicated than can be easily expressed to segmaker. +There are couple cases that need to be handled here: + +- There are some bits that are always set for IN-only ports, but are cleared + selectively for OUT and INOUT ports. +- There are bits per each IOSTANDARD, in addition to drive patterns. These + can be merged to provide unique "(IOSTANDARD, DRIVE)" bit sets. +""" +import argparse + + +def get_name(l): + parts = l.strip().split(' ') + return parts[0] + + +def get_site(l): + return get_name(l).split('.')[1] + + +def parse_bits(l): + parts = l.strip().split(' ') + if parts[1] in ['<0', '', '']: + return frozenset() + else: + return frozenset(parts[1:]) + + +def filter_negbits(site, feature, bits): + lvds_bits = frozenset(['!38_24', "!38_48", "!39_33", '!39_47', '!39_49']) + if "IOB_Y0" in feature and not "LVDS" in feature: + bits = bits.difference(lvds_bits) + if feature.endswith("IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18.IN"): + bits = bits.difference(frozenset(['!39_01'])) + if feature.endswith("IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18.IN"): + bits = bits.difference(frozenset(['!38_126'])) + + return bits + + +def process_features_sets(iostandard_lines): + sites = {} + + for iostd_type, iostd_list in iostandard_lines.items(): + for iostd_line in iostd_list: + feature = get_name(iostd_line) + feature_parts = feature.split('.') + site = get_site(iostd_line) + iostandard = feature_parts[2] + + bits = parse_bits(iostd_line) + + key = (site, iostd_type) + if key not in sites: + sites[key] = {} + + group = feature_parts[3] + if group not in sites[key]: + sites[key][group] = {} + + if group in ['DRIVE', 'SLEW']: + enum = feature_parts[4] + sites[key][group][(iostandard, enum)] = bits + elif group in ['IN', 'IN_DIFF', 'IN_ONLY', 'IN_USE', 'OUT', + 'STEPDOWN', 'ZIBUF_LOW_PWR']: + sites[key][group][(iostandard, None)] = bits + else: + assert False, group + + for site in sites: + for iostandard, enum in sites[site]['DRIVE']: + sites[site]['DRIVE'][(iostandard, enum)] |= sites[site]['OUT'][( + iostandard, None)] + + for iostandard, enum in sites[site]['IN']: + sites[site]['IN_ONLY'][(iostandard, enum)] -= sites[site]['IN'][( + iostandard, enum)] + + common_bits = {} + for site, iostd_type in sites: + for group in sites[(site, iostd_type)]: + if (site, group) not in common_bits: + common_bits[(site, group)] = set() + + for bits in sites[(site, iostd_type)][group].values(): + common_bits[(site, group)] |= bits + + slew_in_drives = {} + + for site, iostd_type in sites: + common_bits[(site, 'IN')] |= common_bits[(site, 'IN_DIFF')] + common_bits[(site, 'IN_DIFF')] |= common_bits[(site, 'IN')] + + # Only DIFF IOSTANDARDS such as LVDS or TMDS do not have DRIVE or SLEW features + if iostd_type == "NORMAL": + key = (site, iostd_type) + common_bits[(site, 'DRIVE')] -= common_bits[(site, 'SLEW')] + common_bits[(site, 'IN_ONLY')] |= common_bits[(site, 'DRIVE')] + + for iostandard, enum in sites[key]['DRIVE']: + slew_in_drive = common_bits[ + (site, 'SLEW')] & sites[key]['DRIVE'][(iostandard, enum)] + if slew_in_drive: + if (key, iostandard) not in slew_in_drives: + slew_in_drives[(key, iostandard)] = set() + + slew_in_drives[(key, iostandard)] |= slew_in_drive + sites[key]['DRIVE'][(iostandard, enum)] -= slew_in_drive + + for site, iostandard in slew_in_drives: + for _, enum in sites[site]['SLEW']: + sites[site]['SLEW'][(iostandard, + enum)] |= slew_in_drives[(site, iostandard)] + + for site in sites: + for iostandard, enum in sites[site]['DRIVE']: + sites[site]['DRIVE'][(iostandard, enum)] |= sites[site]['IN_USE'][( + iostandard, None)] + + for iostandard, enum in sites[site]['IN']: + _, iostd_type = site + if iostd_type == "ONLY_DIFF": + sites[site]['IN_DIFF'][(iostandard, enum)] = \ + sites[site]['IN'][(iostandard, enum)] + elif sites[site]['IN_DIFF'][(iostandard, enum)]: + sites[site]['IN_DIFF'][(iostandard, enum)] |= \ + sites[site]['IN'][(iostandard, enum)] + + for site, iostd_type in sites: + if iostd_type == "NORMAL": + del sites[(site, iostd_type)]['OUT'] + + allow_zero = ['SLEW'] + + common_groups = dict() + for site, iostd_type in sites: + if site not in common_groups: + common_groups[site] = dict() + + key = (site, iostd_type) + for group in sites[key]: + if iostd_type == "ONLY_DIFF" and group == "IN": + continue + + # Merge features that are identical. + # + # For example: + # + # IOB18.IOB_Y1.LVCMOS15.IN 38_42 39_41 + # IOB18.IOB_Y1.LVCMOS18.IN 38_42 39_41 + # + # Must be grouped. + for (iostandard, enum), bits in sites[key][group].items(): + if (bits, group) not in common_groups[site]: + common_groups[site][(bits, group)] = { + 'IOSTANDARDS': set(), + 'enums': set(), + } + + common_groups[site][(bits, + group)]['IOSTANDARDS'].add(iostandard) + if enum is not None: + common_groups[site][(bits, group)]['enums'].add(enum) + + visited_iostandards = list() + for site, groups in common_groups.items(): + for (bits, group), v in groups.items(): + iostandards = v['IOSTANDARDS'] + enums = v['enums'] + + # It happens that some features appear only in one of the IOB sites and not + # in the other. This makes it hard to assign the correct features to the correct + # site in the P&R toolchain. + # + # The following code makes sure that the same set of iostandards + # (even if not really present at a site location) appears for each site + for visited_iostandard, visited_group, visited_enums in visited_iostandards: + same_enum = enums == visited_enums + same_group = group == visited_group + compatible_iostd = any( + x in iostandards for x in visited_iostandard) + take_visited_iostd = len(visited_iostandard) > len(iostandards) + if same_enum and same_group and compatible_iostd and take_visited_iostd: + iostandards = visited_iostandard + break + + visited_iostandards.append((iostandards, group, enums)) + + iostandards_string = '_'.join(sorted(iostandards)) + + if enums: + feature = 'IOB18.{site}.{iostandards}.{group}.{enums}'.format( + site=site, + iostandards=iostandards_string, + group=group, + enums='_'.join(sorted(enums)), + ) + else: + feature = 'IOB18.{site}.{iostandards}.{group}'.format( + site=site, + iostandards=iostandards_string, + group=group, + ) + + if not bits and group not in allow_zero: + continue + + neg_bits = frozenset( + '!{}'.format(b) for b in (common_bits[(site, group)] - bits)) + neg_bits = filter_negbits(site, feature, neg_bits) + print('{} {}'.format(feature, ' '.join(sorted(bits | neg_bits)))) + + +def main(): + parser = argparse.ArgumentParser( + description="Convert IOB rdb into good rdb." + "") + parser.add_argument('input_rdb') + + args = parser.parse_args() + + iostandard_lines = { + "NORMAL": list(), + "ONLY_DIFF": list(), + } + + with open(args.input_rdb) as f: + for l in f: + if ('.SSTL' in l or '.LVCMOS' in l + or '.LVTTL' in l) and 'IOB_' in l: + iostandard_lines["NORMAL"].append(l) + elif ('.TMDS' in l or 'LVDS' in l): + iostandard_lines["ONLY_DIFF"].append(l) + else: + print(l.strip()) + + process_features_sets(iostandard_lines) + + +if __name__ == "__main__": + main() diff --git a/fuzzers/030-iob18/tag_groups.txt b/fuzzers/030-iob18/tag_groups.txt new file mode 100644 index 000000000..83bfc45fa --- /dev/null +++ b/fuzzers/030-iob18/tag_groups.txt @@ -0,0 +1,2 @@ +IOB18.IOB_Y0.PULLTYPE.KEEPER IOB18.IOB_Y0.PULLTYPE.NONE IOB18.IOB_Y0.PULLTYPE.PULLDOWN IOB18.IOB_Y0.PULLTYPE.PULLUP +IOB18.IOB_Y1.PULLTYPE.KEEPER IOB18.IOB_Y1.PULLTYPE.NONE IOB18.IOB_Y1.PULLTYPE.PULLDOWN IOB18.IOB_Y1.PULLTYPE.PULLUP diff --git a/fuzzers/030-iob18/top.py b/fuzzers/030-iob18/top.py new file mode 100644 index 000000000..337a2fc1d --- /dev/null +++ b/fuzzers/030-iob18/top.py @@ -0,0 +1,425 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +import json +import io +import os +import random +random.seed(int(os.getenv("SEED"), 16)) +from prjxray import util +from prjxray import lut_maker +from prjxray import verilog +from prjxray.db import Database + +from iostandards import * + +def gen_sites(): + ''' + IOB18S: main IOB of a diff pair + IOB18M: secondary IOB of a diff pair + IOB18: not a diff pair. Relatively rare (at least in ROI...2 of them?) + Focus on IOB18S to start + ''' + db = Database(util.get_db_root(), util.get_part()) + grid = db.grid() + for tile_name in sorted(grid.tiles()): + loc = grid.loc_of_tilename(tile_name) + gridinfo = grid.gridinfo_at_loc(loc) + + sites = {} + for site_name, site_type in gridinfo.sites.items(): + if site_type in ['IOB18S', 'IOB18M']: + sites[site_type] = site_name + + if sites: + yield tile_name, sites + + +def write_params(params): + pinstr = 'tile,site,pin,iostandard,drive,slew,pulltype\n' + for vals in params: + pinstr += ','.join(map(str, vals)) + '\n' + + open('params.csv', 'w').write(pinstr) + + +def run(): + tile_types = ['IBUF', 'OBUF', 'IOBUF_DCIEN', None, None] + + i_idx = 0 + o_idx = 0 + io_idx = 0 + + iostandards = LVCMOS + SSTL + LVDS + + diff_map = { + "SSTL15": DIFF_SSTL15, + "SSTL135": DIFF_SSTL135, + "SSTL12": DIFF_SSTL12, + } + + only_diff_map = { + "LVDS": ["LVDS"], + } + + slews = ['FAST', 'SLOW'] + pulls = ["NONE", "KEEPER", "PULLDOWN", "PULLUP"] + + luts = lut_maker.LutMaker() + + connects = io.StringIO() + + tile_params = [] + params = { + "tiles": [], + 'INTERNAL_VREF': {}, + } + + with open(os.path.join(os.getenv('FUZDIR'), 'build', 'iobanks.txt')) as f: + iobanks = set() + iob_sites = dict() + for l in f: + fields = l.split(',') + iob_site = fields[0] + iobank = fields[1].rstrip() + + iobanks.add(iobank) + iob_sites[iob_site] = iobank + + params['iobanks'] = iobanks + + iostandard_map = dict() + for iobank in iobanks: + iostandard = random.choice(iostandards) + if iostandard in SSTL: + params['INTERNAL_VREF'][iobank] = random.choice( + ( + .600, + .675, + .75, + .90, + )) + + iostandard_map[iobank] = iostandard + + params['iobanks'] = list(iobanks) + + any_idelay = False + for tile, sites in gen_sites(): + iostandard = None + + site_bels = {} + for site_type, site_name in sites.items(): + iobank = iob_sites[site_name] + iostandard = iostandard_map[iobank] + + if iostandard in ['LVCMOS12']: + drives = [2, 4, 6, 8] + elif iostandard in ['LVCMOS15', 'LVCMOS18']: + drives = [2, 4, 6, 8, 12, 16] + elif iostandard in LVDS + SSTL: + drives = None + else: + assert False, f"Unhandled iostandard: {iostandard}" + + if site_type.endswith('M'): + if iostandard in diff_map: + site_bels[site_type] = random.choice( + tile_types + ['IBUFDS', 'OBUFDS', 'OBUFTDS']) + elif iostandard in only_diff_map: + site_bels[site_type] = random.choice( + ['IBUFDS', 'OBUFDS', 'OBUFTDS', None, None]) + else: + site_bels[site_type] = random.choice(tile_types) + is_m_diff = site_bels[site_type] is not None and site_bels[ + site_type].endswith('DS') + else: + site_bels[site_type] = random.choice(tile_types) + + if is_m_diff or iostandard in only_diff_map: + site_bels['IOB18S'] = None + + for site_type, site in sites.items(): + p = {} + p['tile'] = tile + p['site'] = site + p['type'] = site_bels[site_type] + + if p['type'] is not None and p['type'].endswith('DS'): + if iostandard in diff_map: + iostandard_site = random.choice(diff_map[iostandard]) + elif iostandard in only_diff_map: + iostandard_site = random.choice(only_diff_map[iostandard]) + p['pair_site'] = sites['IOB18S'] + else: + iostandard_site = iostandard + + p['IOSTANDARD'] = verilog.quote(iostandard_site) + p['PULLTYPE'] = verilog.quote(random.choice(pulls)) + + if p['type'] is None: + p['pad_wire'] = None + elif p['type'] == 'IBUF': + p['pad_wire'] = 'di[{}]'.format(i_idx) + p['IDELAY_ONLY'] = random.randint(0, 1) + if not p['IDELAY_ONLY']: + p['owire'] = luts.get_next_input_net() + else: + any_idelay = True + p['owire'] = 'idelay_{site}'.format(**p) + + p['DRIVE'] = None + p['SLEW'] = None + p['IBUF_LOW_PWR'] = random.randint(0, 1) + i_idx += 1 + elif p['type'] == 'IBUFDS': + p['pad_wire'] = 'di[{}]'.format(i_idx) + i_idx += 1 + p['bpad_wire'] = 'di[{}]'.format(i_idx) + i_idx += 1 + + p['IDELAY_ONLY'] = random.randint(0, 1) + p['DIFF_TERM'] = random.randint(0, 1) if iostandard in LVDS else 0 + if not p['IDELAY_ONLY']: + p['owire'] = luts.get_next_input_net() + else: + any_idelay = True + p['owire'] = 'idelay_{site}'.format(**p) + + p['DRIVE'] = None + p['SLEW'] = None + p['IBUF_LOW_PWR'] = random.randint(0, 1) + + elif p['type'] == 'OBUF': + p['pad_wire'] = 'do[{}]'.format(o_idx) + p['iwire'] = luts.get_next_output_net() + if drives is not None: + p['DRIVE'] = random.choice(drives) + else: + p['DRIVE'] = None + p['SLEW'] = verilog.quote(random.choice(slews)) + + o_idx += 1 + elif p['type'] == 'OBUFDS': + p['pad_wire'] = 'do[{}]'.format(o_idx) + o_idx += 1 + p['bpad_wire'] = 'do[{}]'.format(o_idx) + o_idx += 1 + p['iwire'] = luts.get_next_output_net() + if drives is not None: + p['DRIVE'] = random.choice(drives) + else: + p['DRIVE'] = None + p['SLEW'] = verilog.quote(random.choice(slews)) + elif p['type'] == 'OBUFTDS': + p['pad_wire'] = 'do[{}]'.format(o_idx) + o_idx += 1 + p['bpad_wire'] = 'do[{}]'.format(o_idx) + o_idx += 1 + p['tristate_wire'] = random.choice( + ('0', luts.get_next_output_net())) + p['iwire'] = luts.get_next_output_net() + if drives is not None: + p['DRIVE'] = random.choice(drives) + else: + p['DRIVE'] = None + p['SLEW'] = verilog.quote(random.choice(slews)) + elif p['type'] == 'IOBUF_DCIEN': + p['pad_wire'] = 'dio[{}]'.format(io_idx) + p['iwire'] = luts.get_next_output_net() + p['owire'] = luts.get_next_input_net() + if drives is not None: + p['DRIVE'] = random.choice(drives) + else: + p['DRIVE'] = None + p['SLEW'] = verilog.quote(random.choice(slews)) + p['tristate_wire'] = random.choice( + ('0', luts.get_next_output_net())) + p['ibufdisable_wire'] = random.choice( + ('0', luts.get_next_output_net())) + p['dcitermdisable_wire'] = random.choice( + ('0', luts.get_next_output_net())) + io_idx += 1 + + if 'DRIVE' in p: + if p['DRIVE'] is not None: + p['DRIVE_STR'] = '.DRIVE({}),'.format(p['DRIVE']) + else: + p['DRIVE_STR'] = '' + + if 'SLEW' in p: + p['SLEW_STR'] = '' + if iostandard in only_diff_map: + p['SLEW'] = None + elif p['DRIVE'] is not None: + p['SLEW_STR'] = '.SLEW({}),'.format(p['SLEW']) + + if p['type'] is not None: + tile_params.append( + ( + tile, + site, + p['pad_wire'], + iostandard_site, + p['DRIVE'], + verilog.unquote(p['SLEW']) if p['SLEW'] else None, + verilog.unquote(p['PULLTYPE']), + )) + params['tiles'].append(p) + + write_params(tile_params) + + with open('iobank_vref.csv', 'w') as f: + for iobank, vref in params['INTERNAL_VREF'].items(): + f.write('{},{}\n'.format(iobank, vref)) + + print( + ''' +`define N_DI {n_di} +`define N_DO {n_do} +`define N_DIO {n_dio} + +module top(input wire [`N_DI-1:0] di, output wire [`N_DO-1:0] do, inout wire [`N_DIO-1:0] dio, input refclk); + '''.format(n_di=i_idx, n_do=o_idx, n_dio=io_idx)) + + if any_idelay: + print(''' + (* KEEP, DONT_TOUCH *) + IDELAYCTRL(.REFCLK(refclk));''') + + # Always output a LUT6 to make placer happy. + print(''' + (* KEEP, DONT_TOUCH *) + LUT6 dummy_lut();''') + + for p in params['tiles']: + if p['type'] is None: + continue + elif p['type'] == 'IBUF': + print( + ''' + wire idelay_{site}; + + (* KEEP, DONT_TOUCH *) + IBUF #( + .IBUF_LOW_PWR({IBUF_LOW_PWR}), + .IOSTANDARD({IOSTANDARD}) + ) ibuf_{site} ( + .I({pad_wire}), + .O({owire}) + );'''.format(**p), + file=connects) + if p['IDELAY_ONLY']: + print( + """ + (* KEEP, DONT_TOUCH *) + IDELAYE2 idelay_site_{site} ( + .IDATAIN(idelay_{site}) + );""".format(**p), + file=connects) + + elif p['type'] == 'IBUFDS': + print( + ''' + wire idelay_{site}; + + (* KEEP, DONT_TOUCH *) + IBUFDS #( + .IBUF_LOW_PWR({IBUF_LOW_PWR}), + .DIFF_TERM({DIFF_TERM}), + .IOSTANDARD({IOSTANDARD}) + ) ibuf_{site} ( + .I({pad_wire}), + .IB({bpad_wire}), + .O({owire}) + );'''.format(**p), + file=connects) + if p['IDELAY_ONLY']: + print( + """ + (* KEEP, DONT_TOUCH *) + IDELAYE2 idelay_site_{site} ( + .IDATAIN(idelay_{site}) + );""".format(**p), + file=connects) + + elif p['type'] == 'OBUF': + print( + ''' + (* KEEP, DONT_TOUCH *) + OBUF #( + {DRIVE_STR} + {SLEW_STR} + .IOSTANDARD({IOSTANDARD}) + ) obuf_{site} ( + .O({pad_wire}), + .I({iwire}) + );'''.format(**p), + file=connects) + elif p['type'] == 'OBUFDS': + print( + ''' + (* KEEP, DONT_TOUCH *) + OBUFDS #( + {DRIVE_STR} + {SLEW_STR} + .IOSTANDARD({IOSTANDARD}) + ) obufds_{site} ( + .O({pad_wire}), + .OB({bpad_wire}), + .I({iwire}) + );'''.format(**p), + file=connects) + elif p['type'] == 'OBUFTDS': + print( + ''' + (* KEEP, DONT_TOUCH *) + OBUFTDS #( + {DRIVE_STR} + {SLEW_STR} + .IOSTANDARD({IOSTANDARD}) + ) obufds_{site} ( + .O({pad_wire}), + .OB({bpad_wire}), + .T({tristate_wire}), + .I({iwire}) + );'''.format(**p), + file=connects) + elif p['type'] == 'IOBUF_DCIEN': + print( + ''' + (* KEEP, DONT_TOUCH *) + IOBUF_DCIEN #( + {DRIVE_STR} + {SLEW_STR} + .IOSTANDARD({IOSTANDARD}) + ) ibuf_{site} ( + .IO({pad_wire}), + .I({iwire}), + .O({owire}), + .T({tristate_wire}), + .IBUFDISABLE({ibufdisable_wire}), + .DCITERMDISABLE({dcitermdisable_wire}) + );'''.format(**p), + file=connects) + + for l in luts.create_wires_and_luts(): + print(l) + + print(connects.getvalue()) + + print("endmodule") + + with open('params.json', 'w') as f: + json.dump(params, f, indent=2) + + +if __name__ == '__main__': + run() diff --git a/fuzzers/030-iob18/write_io_banks.tcl b/fuzzers/030-iob18/write_io_banks.tcl new file mode 100644 index 000000000..5e094924d --- /dev/null +++ b/fuzzers/030-iob18/write_io_banks.tcl @@ -0,0 +1,44 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +create_project -force -part $::env(XRAY_PART) design design +set_property design_mode PinPlanning [current_fileset] +open_io_design -name io_1 +set fp [open "iobanks.txt" "w"] +foreach iobank [get_iobanks] { + foreach site [get_sites -of $iobank] { + puts $fp "$site,$iobank" + } +} +close $fp + +set fp [open "cmt_regions.csv" "w"] +foreach site_type { IOB18M IOB18S IDELAYCTRL} { + foreach site [get_sites -filter "SITE_TYPE == $site_type"] { + set tile [get_tiles -of $site] + if {![string match "*IOI3*" $tile]} { + puts $fp "$site,$tile,[get_property CLOCK_REGION $site]" + } + } +} +close $fp + +set fp [open "pudc_sites.csv" "w"] +puts $fp "tile,site" +foreach tile [get_tiles *IOB18*] { + foreach site [get_sites -of_objects $tile] { + set site_type [get_property SITE_TYPE $site] + + set pin [get_package_pins -of_objects $site] + set pin_func [get_property PIN_FUNC $pin] + + if {[string first "PUDC_B" $pin_func] != -1} { + puts $fp "$tile,$site,$site_type" + } + } +} +close $fp diff --git a/fuzzers/035-iob-ilogic/Makefile b/fuzzers/035-iob-ilogic/Makefile index 398421331..bb643bb64 100644 --- a/fuzzers/035-iob-ilogic/Makefile +++ b/fuzzers/035-iob-ilogic/Makefile @@ -22,19 +22,29 @@ build/segbits_xioi3.db: build/segbits_xioi3.rdb ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --groups tag_groups.txt --seg-fn-in $^ --seg-fn-out $@ ${XRAY_MASKMERGE} build/mask_xioi3.db $$(find -name segdata_*) -pushdb: +# fuzzers of the RIOI tiles give near identical results, so reuse these +build/segbits_rioi.db: build/segbits_xioi3.db + sed 's/IOI3/IOI/g' < $< > $@ + +pushdb: build/segbits_rioi.db ${XRAY_MERGEDB} lioi3 build/segbits_xioi3.db ${XRAY_MERGEDB} lioi3_tbytesrc build/segbits_xioi3.db ${XRAY_MERGEDB} lioi3_tbyteterm build/segbits_xioi3.db ${XRAY_MERGEDB} rioi3 build/segbits_xioi3.db ${XRAY_MERGEDB} rioi3_tbytesrc build/segbits_xioi3.db ${XRAY_MERGEDB} rioi3_tbyteterm build/segbits_xioi3.db + ${XRAY_MERGEDB} rioi build/segbits_rioi.db + ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_rioi.db + ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_rioi.db ${XRAY_MERGEDB} mask_lioi3 build/mask_xioi3.db ${XRAY_MERGEDB} mask_lioi3_tbytesrc build/mask_xioi3.db ${XRAY_MERGEDB} mask_lioi3_tbyteterm build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3 build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3_tbytesrc build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3_tbyteterm build/mask_xioi3.db + ${XRAY_MERGEDB} mask_rioi build/mask_xioi3.db + ${XRAY_MERGEDB} mask_rioi_tbytesrc build/mask_xioi3.db + ${XRAY_MERGEDB} mask_rioi_tbyteterm build/mask_xioi3.db .PHONY: database pushdb diff --git a/fuzzers/035-iob-ilogic/generate.tcl b/fuzzers/035-iob-ilogic/generate.tcl index 18eaf708c..48dcb5281 100644 --- a/fuzzers/035-iob-ilogic/generate.tcl +++ b/fuzzers/035-iob-ilogic/generate.tcl @@ -1,1416 +1,3 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# -# SPDX-License-Identifier: ISC -# Copyright (C) 2017-2020 The Project X-Ray Authors -# -# Use of this source code is governed by a ISC-style -# license that can be found in the LICENSE file or at -# https://opensource.org/licenses/ISC -# # SPDX-License-Identifier: ISC # Copyright (C) 2017-2020 The Project X-Ray Authors # diff --git a/fuzzers/035a-iob18-idelay/Makefile b/fuzzers/035a-iob18-idelay/Makefile new file mode 100644 index 000000000..04533ba08 --- /dev/null +++ b/fuzzers/035a-iob18-idelay/Makefile @@ -0,0 +1,29 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +N := 5 +include ../fuzzer.mk + +database: build/segbits_riob18.db + +build/segbits_riob18.rdb: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} -m 1 -M 1 -o build/segbits_riob18.rdb $$(find -name segdata_*.txt) + +build/segbits_riob18.db: build/segbits_riob18.rdb + ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --seg-fn-in $^ --seg-fn-out $@ + ${XRAY_MASKMERGE} build/mask_riob18.db $$(find -name segdata_*.txt) + +pushdb: + ${XRAY_MERGEDB} rioi build/segbits_riob18.db + ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_riob18.db + ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_riob18.db + ${XRAY_MERGEDB} mask_rioi build/mask_riob18.db + ${XRAY_MERGEDB} mask_rioi_tbytesrc build/mask_riob18.db + ${XRAY_MERGEDB} mask_rioi_tbyteterm build/mask_riob18.db + +.PHONY: database pushdb + diff --git a/fuzzers/035a-iob18-idelay/bits.dbf b/fuzzers/035a-iob18-idelay/bits.dbf new file mode 100644 index 000000000..46f87e1a9 --- /dev/null +++ b/fuzzers/035a-iob18-idelay/bits.dbf @@ -0,0 +1,14 @@ +34_08 34_14 ,IOI3.IDELAY_Y1.IDELAY_TYPE_FIXED +35_113 35_119 ,IOI3.IDELAY_Y0.IDELAY_TYPE_FIXED +34_120 34_122 +34_114 34_116 +34_108 34_110 +34_100 34_102 +34_94 34_96 +35_05 35_07 +35_11 35_13 +35_17 35_19 +35_25 35_27 +35_31 35_33 +34_72 35_69 +34_58 35_55 diff --git a/fuzzers/035a-iob18-idelay/generate.py b/fuzzers/035a-iob18-idelay/generate.py new file mode 100644 index 000000000..b500632f4 --- /dev/null +++ b/fuzzers/035a-iob18-idelay/generate.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +import json + +from prjxray.segmaker import Segmaker, add_site_group_zero +from prjxray import verilog + + +def bitfilter(frame, word): + if frame < 26: + return False + + return True + + +def main(): + segmk = Segmaker("design.bits", verbose=True) + + # Load tags + with open("params.json", "r") as fp: + data = json.load(fp) + + idelay_types = ["FIXED", "VARIABLE", "VAR_LOAD"] + delay_srcs = ["IDATAIN", "DATAIN"] + + # Output tags + for params in data: + segmk.add_site_tag(params['IDELAY_IN_USE'], 'IN_USE', True) + segmk.add_site_tag(params['IDELAY_NOT_IN_USE'], 'IN_USE', False) + + loc = verilog.unquote(params["LOC"]) + + # Delay type + value = verilog.unquote(params["IDELAY_TYPE"]) + value = value.replace( + "_PIPE", "") # VAR_LOAD and VAR_LOAD_PIPE are the same + add_site_group_zero( + segmk, loc, "IDELAY_TYPE_", idelay_types, "FIXED", value) + + # Delay value + value = int(params["IDELAY_VALUE"]) + for i in range(5): + segmk.add_site_tag( + loc, "IDELAY_VALUE[%01d]" % i, ((value >> i) & 1) != 0) + segmk.add_site_tag( + loc, "ZIDELAY_VALUE[%01d]" % i, ((value >> i) & 1) == 0) + + # Delay source + value = verilog.unquote(params["DELAY_SRC"]) + for x in delay_srcs: + segmk.add_site_tag(loc, "DELAY_SRC_%s" % x, int(value == x)) + + value = verilog.unquote(params["CINVCTRL_SEL"]) + segmk.add_site_tag(loc, "CINVCTRL_SEL", int(value == "TRUE")) + + value = verilog.unquote(params["PIPE_SEL"]) + segmk.add_site_tag(loc, "PIPE_SEL", int(value == "TRUE")) + + if "IS_C_INVERTED" in params: + segmk.add_site_tag( + loc, "IS_C_INVERTED", int(params["IS_C_INVERTED"])) + segmk.add_site_tag(loc, "ZINV_C", 1 ^ int(params["IS_C_INVERTED"])) + + segmk.add_site_tag( + loc, "IS_DATAIN_INVERTED", int(params["IS_DATAIN_INVERTED"])) + if params['IBUF_IN_USE']: + value = verilog.unquote(params["HIGH_PERFORMANCE_MODE"]) + segmk.add_site_tag( + loc, "HIGH_PERFORMANCE_MODE", int(value == "TRUE")) + + segmk.add_site_tag( + loc, "IS_IDATAIN_INVERTED", int(params["IS_IDATAIN_INVERTED"])) + + segmk.compile(bitfilter=bitfilter) + segmk.write() + + +if __name__ == "__main__": + main() diff --git a/fuzzers/035a-iob18-idelay/generate.tcl b/fuzzers/035a-iob18-idelay/generate.tcl new file mode 100644 index 000000000..eecd48e6c --- /dev/null +++ b/fuzzers/035a-iob18-idelay/generate.tcl @@ -0,0 +1,31 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +create_project -force -part $::env(XRAY_PART) design design +read_verilog top.v +synth_design -top top + +set_property CFGBVS GND [current_design] +set_property CONFIG_VOLTAGE 1.8 [current_design] +set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] +set_param tcl.collectionResultDisplayLimit 0 + +set_property IS_ENABLED 0 [get_drc_checks {NSTD-1}] +set_property IS_ENABLED 0 [get_drc_checks {UCIO-1}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-79}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-81}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-84}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-85}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-87}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-85}] +set_property IS_ENABLED 0 [get_drc_checks {AVAL-28}] + +place_design +route_design + +write_checkpoint -force design.dcp +write_bitstream -force design.bit diff --git a/fuzzers/035a-iob18-idelay/top.py b/fuzzers/035a-iob18-idelay/top.py new file mode 100644 index 000000000..f87685ed5 --- /dev/null +++ b/fuzzers/035a-iob18-idelay/top.py @@ -0,0 +1,237 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC + +import os, random +random.seed(int(os.getenv("SEED"), 16)) + +import re +import json + +from prjxray import util +from prjxray.db import Database + +# ============================================================================= + + +def gen_sites(): + db = Database(util.get_db_root(), util.get_part()) + grid = db.grid() + + tile_list = [] + for tile_name in sorted(grid.tiles()): + if "IOB18" not in tile_name or "SING" in tile_name: + continue + tile_list.append(tile_name) + + get_xy = util.create_xy_fun('RIOB18_') + tile_list.sort(key=get_xy) + + for iob_tile_name in tile_list: + iob_gridinfo = grid.gridinfo_at_loc( + grid.loc_of_tilename(iob_tile_name)) + + # Find IOI tile adjacent to IOB + for suffix in ["IOI", "IOI_TBYTESRC", "IOI_TBYTETERM"]: + try: + ioi_tile_name = iob_tile_name.replace("IOB18", suffix) + ioi_gridinfo = grid.gridinfo_at_loc( + grid.loc_of_tilename(ioi_tile_name)) + break + except KeyError: + pass + + iob18s = [k for k, v in iob_gridinfo.sites.items() if v == "IOB18S"][0] + iob18m = [k for k, v in iob_gridinfo.sites.items() if v == "IOB18M"][0] + idelay_s = iob18s.replace("IOB", "IDELAY") + idelay_m = iob18m.replace("IOB", "IDELAY") + + yield iob18m, idelay_m, iob18s, idelay_s + + +def run(): + + # Get all [LR]IOI3 tiles + tiles = list(gen_sites()) + + # Header + print("// Tile count: %d" % len(tiles)) + print("// Seed: '%s'" % os.getenv("SEED")) + + ninputs = 0 + di_idx = [] + for i, sites in enumerate(tiles): + if random.randint(0, 1): + di_idx.append(ninputs) + ninputs += 1 + else: + di_idx.append(None) + + print( + ''' +module top ( + (* CLOCK_BUFFER_TYPE = "NONE" *) + input wire clk, + input wire [{N}:0] di +); + +wire clk_buf = clk; + +wire [{N}:0] di_buf; + '''.format(N=ninputs - 1)) + + # LOCes IOBs + data = [] + for i, (sites, ibuf_idx) in enumerate(zip(tiles, di_idx)): + + if random.randint(0, 1): + iob_i = sites[0] + iob_o = sites[2] + idelay = sites[1] + other_idelay = sites[3] + else: + iob_i = sites[2] + iob_o = sites[0] + idelay = sites[3] + other_idelay = sites[1] + + use_ibuf = ibuf_idx is not None + + DELAY_SRC = random.choice(["IDATAIN", "DATAIN"]) + if not use_ibuf: + DELAY_SRC = 'DATAIN' + + params = { + "LOC": + "\"" + idelay + "\"", + "IDELAY_TYPE": + "\"" + random.choice( + ["FIXED", "VARIABLE", "VAR_LOAD", "VAR_LOAD_PIPE"]) + "\"", + "IDELAY_VALUE": + random.randint(0, 31), + "DELAY_SRC": + "\"" + DELAY_SRC + "\"", + "HIGH_PERFORMANCE_MODE": + "\"" + random.choice(["TRUE", "FALSE"]) + "\"", + "CINVCTRL_SEL": + "\"" + random.choice(["TRUE", "FALSE"]) + "\"", + "PIPE_SEL": + "\"" + random.choice(["TRUE", "FALSE"]) + "\"", + "IS_C_INVERTED": + random.randint(0, 1), + "IS_DATAIN_INVERTED": + random.randint(0, 1), + "IS_IDATAIN_INVERTED": + random.randint(0, 1), + } + + if params["IDELAY_TYPE"] != "\"VAR_LOAD_PIPE\"": + params["PIPE_SEL"] = "\"FALSE\"" + + # The datasheet says that for these two modes the delay is set to 0 + if params["IDELAY_TYPE"] == "\"VAR_LOAD\"": + params["IDELAY_VALUE"] = 0 + if params["IDELAY_TYPE"] == "\"VAR_LOAD_PIPE\"": + params["IDELAY_VALUE"] = 0 + + if params["IDELAY_TYPE"] == "\"FIXED\"": + params["IS_C_INVERTED"] = 0 + + param_str = ",".join(".%s(%s)" % (k, v) for k, v in params.items()) + + if use_ibuf: + print('') + print('(* LOC="%s", KEEP, DONT_TOUCH *)' % iob_i) + print( + 'IBUF ibuf_%03d (.I(di[%3d]), .O(di_buf[%3d]));' % + (ibuf_idx, ibuf_idx, ibuf_idx)) + print( + 'mod #(%s) mod_%03d (.clk(clk_buf), .I(di_buf[%3d]));' % + (param_str, i, ibuf_idx)) + else: + print('mod #(%s) mod_%03d (.clk(clk_buf), .I());' % (param_str, i)) + + params['IBUF_IN_USE'] = use_ibuf + params["IDELAY_IN_USE"] = idelay + params["IDELAY_NOT_IN_USE"] = other_idelay + + data.append(params) + + # Store params + with open("params.json", "w") as fp: + json.dump(data, fp, sort_keys=True, indent=1) + + print( + ''' +// IDELAYCTRL +(* KEEP, DONT_TOUCH *) +IDELAYCTRL idelayctrl(); + +endmodule + +(* KEEP, DONT_TOUCH *) +module mod( + input wire clk, + input wire I +); + +parameter LOC = ""; +parameter IDELAY_TYPE = "FIXED"; +parameter IDELAY_VALUE = 0; +parameter DELAY_SRC = "IDATAIN"; +parameter HIGH_PERFORMANCE_MODE = "TRUE"; +parameter SIGNAL_PATTERN = "DATA"; +parameter CINVCTRL_SEL = "FALSE"; +parameter PIPE_SEL = "FALSE"; +parameter IS_C_INVERTED = 0; +parameter IS_DATAIN_INVERTED = 0; +parameter IS_IDATAIN_INVERTED = 0; + +wire x; +wire lut; + +(* KEEP, DONT_TOUCH *) +LUT2 l( .O(lut) ); + +// IDELAY +(* LOC=LOC, KEEP, DONT_TOUCH *) +IDELAYE2 #( + .IDELAY_TYPE(IDELAY_TYPE), + .IDELAY_VALUE(IDELAY_VALUE), + .DELAY_SRC(DELAY_SRC), + .HIGH_PERFORMANCE_MODE(HIGH_PERFORMANCE_MODE), + .SIGNAL_PATTERN(SIGNAL_PATTERN), + .CINVCTRL_SEL(CINVCTRL_SEL), + .PIPE_SEL(PIPE_SEL), + .IS_C_INVERTED(IS_C_INVERTED), + .IS_DATAIN_INVERTED(IS_DATAIN_INVERTED), + .IS_IDATAIN_INVERTED(IS_IDATAIN_INVERTED) +) +idelay +( + .C(clk), + .REGRST(), + .LD(), + .CE(), + .INC(), + .CINVCTRL(), + .CNTVALUEIN(), + .IDATAIN(I), + .DATAIN(lut), + .LDPIPEEN(), + .DATAOUT(x), + .CNTVALUEOUT() +); + +endmodule + ''') + + +run() diff --git a/fuzzers/035b-iob-iserdes/Makefile b/fuzzers/035b-iob-iserdes/Makefile index 446482e35..8297e97cf 100644 --- a/fuzzers/035b-iob-iserdes/Makefile +++ b/fuzzers/035b-iob-iserdes/Makefile @@ -22,19 +22,30 @@ build/segbits_xioi3.db: build/segbits_xioi3.rdb ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --groups tag_groups.txt --seg-fn-in $^ --seg-fn-out $@ ${XRAY_MASKMERGE} build/mask_xioi3.db $$(find -name segdata_*.txt) -pushdb: +# running the fuzzers for RIOI tiles yields mostly identical +# results, so reuse the results of IOI3 tiles +build/segbits_rioi.db: build/segbits_xioi3.db + sed 's/IOI3/IOI/g' < $< > $@ + +pushdb: build/segbits_rioi.db ${XRAY_MERGEDB} lioi3 build/segbits_xioi3.db ${XRAY_MERGEDB} lioi3_tbytesrc build/segbits_xioi3.db ${XRAY_MERGEDB} lioi3_tbyteterm build/segbits_xioi3.db ${XRAY_MERGEDB} rioi3 build/segbits_xioi3.db ${XRAY_MERGEDB} rioi3_tbytesrc build/segbits_xioi3.db ${XRAY_MERGEDB} rioi3_tbyteterm build/segbits_xioi3.db + ${XRAY_MERGEDB} rioi build/segbits_rioi.db + ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_rioi.db + ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_rioi.db ${XRAY_MERGEDB} mask_lioi3 build/mask_xioi3.db ${XRAY_MERGEDB} mask_lioi3_tbytesrc build/mask_xioi3.db ${XRAY_MERGEDB} mask_lioi3_tbyteterm build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3 build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3_tbytesrc build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3_tbyteterm build/mask_xioi3.db + ${XRAY_MERGEDB} mask_rioi build/mask_xioi3.db + ${XRAY_MERGEDB} mask_rioi_tbytesrc build/mask_xioi3.db + ${XRAY_MERGEDB} mask_rioi_tbyteterm build/mask_xioi3.db .PHONY: database pushdb diff --git a/fuzzers/036-iob18-ologic/Makefile b/fuzzers/036-iob18-ologic/Makefile new file mode 100644 index 000000000..c96dc6dd7 --- /dev/null +++ b/fuzzers/036-iob18-ologic/Makefile @@ -0,0 +1,29 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +N := 40 +include ../fuzzer.mk + +database: build/segbits_rioi.db + +build/segbits_rioi.rdb: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} -c 7 -o build/segbits_rioi.rdb $$(find -name segdata_*) + +build/segbits_rioi.db: build/segbits_rioi.rdb + ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --seg-fn-in $^ --seg-fn-out $@ + ${XRAY_MASKMERGE} build/mask_rioi.db $$(find -name segdata_*) + +pushdb: + ${XRAY_MERGEDB} rioi build/segbits_rioi.db + ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_rioi.db + ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_rioi.db + ${XRAY_MERGEDB} mask_rioi build/mask_rioi.db + ${XRAY_MERGEDB} mask_rioi_tbytesrc build/mask_rioi.db + ${XRAY_MERGEDB} mask_rioi_tbyteterm build/mask_rioi.db + +.PHONY: database pushdb + diff --git a/fuzzers/036-iob18-ologic/bits.dbf b/fuzzers/036-iob18-ologic/bits.dbf new file mode 100644 index 000000000..8b0c1341d --- /dev/null +++ b/fuzzers/036-iob18-ologic/bits.dbf @@ -0,0 +1,8 @@ +31_92,IOB33.IOB_Y0.ODDR.DDR_CLK_EDGE.OPPOSITE_EDGE +30_35,IOB33.IOB_Y1.ODDR.DDR_CLK_EDGE.OPPOSITE_EDGE +33_91 33_93 +32_36 32_34 +33_61 32_58 33_57 +32_70 32_66 33_69 +30_95 30_99 30_127 31_126 31_124 30_121 31_120 30_123 31_116 31_100 +31_00 30_01 30_03 31_06 30_07 31_04 30_11 31_28 31_32 30_29 30_27 diff --git a/fuzzers/036-iob18-ologic/generate.py b/fuzzers/036-iob18-ologic/generate.py new file mode 100644 index 000000000..35b7d445d --- /dev/null +++ b/fuzzers/036-iob18-ologic/generate.py @@ -0,0 +1,196 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC + +from prjxray.segmaker import Segmaker +from prjxray import verilog +import json + +# Set to true to enable additional tags useful for tracing bit toggles. +DEBUG_FUZZER = False + + +def bitfilter(frame, word): + # TODO: do we need this here? + # this frame number limit does not seem + # to apply to 1.8V high speed banks + #if frame < 30 or frame > 37: + # return False + + return True + + +def handle_data_width(segmk, d): + if 'DATA_WIDTH' not in d: + return + + site = d['ologic_loc'] + + data_rate = verilog.unquote(d['DATA_RATE_OQ']) + segmk.add_site_tag( + site, 'OSERDES.DATA_WIDTH.{}.W{}'.format(data_rate, d['DATA_WIDTH']), + 1) + + +def no_oserdes(segmk, site): + for mode in ['SDR', 'DDR']: + if mode == 'SDR': + widths = [2, 3, 4, 5, 6, 7, 8] + else: + assert mode == 'DDR' + widths = [4, 6, 8] + + for opt in widths: + segmk.add_site_tag( + site, 'OSERDES.DATA_WIDTH.{}.W{}'.format(mode, opt), 0) + + +def main(): + print("Loading tags") + segmk = Segmaker("design.bits") + + with open('params.jl', 'r') as f: + design = json.load(f) + + for d in design: + site = d['ologic_loc'] + + handle_data_width(segmk, d) + + segmk.add_site_tag(site, 'OSERDES.IN_USE', d['use_oserdese2']) + + if d['use_oserdese2']: + segmk.add_site_tag(site, 'OQUSED', 1) + + for opt in ['SDR', 'DDR']: + segmk.add_site_tag( + site, 'OSERDES.DATA_RATE_OQ.{}'.format(opt), + verilog.unquote(d['DATA_RATE_OQ']) == opt) + + data_rate_tq = verilog.unquote(d['DATA_RATE_TQ']) + segmk.add_site_tag( + site, 'OSERDES.DATA_RATE_TQ.{}'.format(data_rate_tq), 1) + for opt in ['BUF', 'SDR', 'DDR']: + segmk.add_site_tag( + site, 'OSERDES.DATA_RATE_TQ.{}'.format(opt), + opt == data_rate_tq) + + for opt in ['SRVAL_OQ', 'SRVAL_TQ', 'INIT_OQ', 'INIT_TQ']: + segmk.add_site_tag(site, opt, d[opt]) + segmk.add_site_tag(site, 'Z' + opt, 1 ^ d[opt]) + + for opt in ['CLK', 'CLKDIV']: + if d['{}_USED'.format(opt)]: + k = 'IS_{}_INVERTED'.format(opt) + segmk.add_site_tag(site, k, d[k]) + segmk.add_site_tag( + site, 'ZINV_{}'.format(opt), 1 ^ d[k]) + + if d['io']: + for idx in range(4): + k = 'IS_T{}_INVERTED'.format(idx + 1) + segmk.add_site_tag(site, k, d[k]) + segmk.add_site_tag( + site, 'ZINV_T{}'.format(idx + 1), 1 ^ d[k]) + + for idx in range(8): + k = 'IS_D{}_INVERTED'.format(idx + 1) + segmk.add_site_tag(site, k, d[k]) + segmk.add_site_tag( + site, 'ZINV_D{}'.format(idx + 1), 1 ^ d[k]) + + for tristate_width in [1, 4]: + segmk.add_site_tag( + site, + 'OSERDES.TRISTATE_WIDTH.W{}'.format(tristate_width), + d['TRISTATE_WIDTH'] == tristate_width) + + for opt in ['MASTER', 'SLAVE']: + segmk.add_site_tag( + site, 'OSERDES.SERDES_MODE.{}'.format(opt), + opt == verilog.unquote(d['OSERDES_MODE'])) + + if 'o_sr_used' in d: + if d['o_sr_used'] in ['S', 'R']: + segmk.add_site_tag(site, 'ODDR.SRUSED', 1) + segmk.add_site_tag(site, 'ODDR.ZSRUSED', 0) + else: + assert d['o_sr_used'] == 'None' + segmk.add_site_tag(site, 'ODDR.SRUSED', 0) + segmk.add_site_tag(site, 'ODDR.ZSRUSED', 1) + + if 't_sr_used' in d: + if d['t_sr_used'] in ['S', 'R']: + segmk.add_site_tag(site, 'TDDR.SRUSED', 1) + segmk.add_site_tag(site, 'TDDR.ZSRUSED', 0) + else: + assert d['t_sr_used'] == 'None' + segmk.add_site_tag(site, 'TDDR.SRUSED', 0) + segmk.add_site_tag(site, 'TDDR.ZSRUSED', 1) + + if d['oddr_mux_config'] == 'direct': + segmk.add_site_tag(site, 'ODDR_TDDR.IN_USE', 1) + + if d['tddr_mux_config'] == 'direct': + segmk.add_site_tag(site, 'ODDR_TDDR.IN_USE', 1) + + if d['oddr_mux_config'] == 'direct' and d[ + 'tddr_mux_config'] == 'direct': + segmk.add_site_tag(site, 'ZINV_CLK', 1 ^ d['IS_CLK_INVERTED']) + + if d['IS_CLK_INVERTED'] == 0: + for opt in ['OPPOSITE_EDGE', 'SAME_EDGE']: + segmk.add_site_tag( + site, 'ODDR.DDR_CLK_EDGE.{}'.format(opt), + verilog.unquote(d['ODDR_CLK_EDGE']) == opt) + + segmk.add_site_tag( + site, 'TDDR.DDR_CLK_EDGE.INV', + d['ODDR_CLK_EDGE'] != d['TDDR_CLK_EDGE']) + segmk.add_site_tag( + site, 'TDDR.DDR_CLK_EDGE.ZINV', + d['ODDR_CLK_EDGE'] == d['TDDR_CLK_EDGE']) + + if 'SRTYPE' in d: + for opt in ['ASYNC', 'SYNC']: + segmk.add_site_tag( + site, 'OSERDES.SRTYPE.{}'.format(opt), + verilog.unquote(d['SRTYPE']) == opt) + + for opt in ['ASYNC', 'SYNC']: + segmk.add_site_tag( + site, 'OSERDES.TSRTYPE.{}'.format(opt), + verilog.unquote(d['TSRTYPE']) == opt) + + if not d['use_oserdese2']: + no_oserdes(segmk, site) + if d['oddr_mux_config'] == 'lut': + segmk.add_site_tag(site, 'ODDR_TDDR.IN_USE', 0) + segmk.add_site_tag(site, 'OMUX.D1', 1) + segmk.add_site_tag(site, 'OQUSED', 1) + elif d['oddr_mux_config'] == 'direct': + segmk.add_site_tag(site, 'OMUX.D1', 0) + elif d['oddr_mux_config'] == 'none' and not d['io']: + segmk.add_site_tag(site, 'OQUSED', 0) + + segmk.add_site_tag(site, 'TQUSED', d['io']) + + if DEBUG_FUZZER: + for k in d: + segmk.add_site_tag( + site, 'param_' + k + '_' + str(d[k]).replace( + ' ', '').replace('\n', ''), 1) + + segmk.compile(bitfilter=bitfilter) + segmk.write(allow_empty=True) + + +if __name__ == "__main__": + main() diff --git a/fuzzers/036-iob18-ologic/generate.tcl b/fuzzers/036-iob18-ologic/generate.tcl new file mode 100644 index 000000000..492dae824 --- /dev/null +++ b/fuzzers/036-iob18-ologic/generate.tcl @@ -0,0 +1,107 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +source "$::env(XRAY_DIR)/utils/utils.tcl" + +proc make_io_pin_sites {} { + # get all possible IOB pins + foreach pad [get_package_pins -filter "IS_GENERAL_PURPOSE == 1"] { + set site [get_sites -of_objects $pad] + if {[llength $site] == 0} { + continue + } + if [string match IOB18* [get_property SITE_TYPE $site]] { + dict append io_pin_sites $site $pad + } + } + return $io_pin_sites +} + +proc load_pin_lines {} { + # IOB_X0Y103 clk input + # IOB_X0Y129 do[0] output + + set fp [open "params.csv" r] + gets $fp line + + set pin_lines {} + for {gets $fp line} {$line != ""} {gets $fp line} { + lappend pin_lines [split $line ","] + } + close $fp + return $pin_lines +} + +proc loc_pins {} { + set pin_lines [load_pin_lines] + set io_pin_sites [make_io_pin_sites] + + puts "Looping" + for {set idx 0} {$idx < [llength $pin_lines]} {incr idx} { + set line [lindex $pin_lines $idx] + puts "$line" + + set site_str [lindex $line 1] + set pin_str [lindex $line 2] + set iostandard [lindex $line 3] + set drive [lindex $line 4] + set slew [lindex $line 5] + set pulltype [lindex $line 6] + + # Have: site + # Want: pin for site + + set site [get_sites $site_str] + set pad_bel [get_bels -of_objects $site -filter {TYPE =~ PAD && NAME =~ IOB_*}] + # set port [get_ports -of_objects $site] + set port [get_ports $pin_str] + set tile [get_tiles -of_objects $site] + + set pin [dict get $io_pin_sites $site] + + set props {} + #lappend props PACKAGE_PIN $pin + lappend props IOSTANDARD $iostandard + lappend props PULLTYPE $pulltype + + if {$drive != "None"} { + lappend props DRIVE $drive + } + + if {$slew != "None"} { + lappend props SLEW $slew + } + + puts $props + + set_property -dict "$props" $port + } +} + +proc run {} { + create_project -force -part $::env(XRAY_PART) design design + read_verilog top.v + synth_design -top top + + loc_pins + + set_property CFGBVS GND [current_design] + set_property CONFIG_VOLTAGE 1.8 [current_design] + set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] + set_property IS_ENABLED 0 [get_drc_checks {REQP-79}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-144}] + + write_checkpoint -force design_pre_place.dcp + + place_design + route_design + + write_checkpoint -force design.dcp + write_bitstream -force design.bit +} + +run diff --git a/fuzzers/036-iob18-ologic/top.py b/fuzzers/036-iob18-ologic/top.py new file mode 100644 index 000000000..5b219cb98 --- /dev/null +++ b/fuzzers/036-iob18-ologic/top.py @@ -0,0 +1,474 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +import json +import io +import os +import random +random.seed(int(os.getenv("SEED"), 16)) +from prjxray import util +from prjxray import lut_maker +from prjxray import verilog +from prjxray.db import Database + + +def gen_sites(): + ''' + IOB18S: main IOB of a diff pair + IOB18M: secondary IOB of a diff pair + IOB18: not a diff pair. Relatively rare (at least in ROI...2 of them?) + Focus on IOB18S to start + ''' + db = Database(util.get_db_root(), util.get_part()) + grid = db.grid() + for tile_name in sorted(grid.tiles()): + loc = grid.loc_of_tilename(tile_name) + gridinfo = grid.gridinfo_at_loc(loc) + + for site_name, site_type in gridinfo.sites.items(): + if site_type in ['IOB18S', 'IOB18M']: + yield tile_name, site_name + + +def write_params(params): + pinstr = 'tile,site,pin,iostandard,drive,slew\n' + for vals in params: + pinstr += ','.join(map(str, vals)) + '\n' + + open('params.csv', 'w').write(pinstr) + + +def use_oserdese2(p, luts, connects): + + p['oddr_mux_config'] = 'none' + p['tddr_mux_config'] = 'none' + + p['DATA_RATE_OQ'] = verilog.quote(random.choice(( + 'SDR', + 'DDR', + ))) + + p['DATA_RATE_TQ'] = verilog.quote(random.choice(( + 'BUF', + 'SDR', + 'DDR', + ))) + + if verilog.unquote(p['DATA_RATE_OQ']) == 'SDR': + data_widths = [2, 3, 4, 5, 6, 7, 8] + else: + data_widths = [4, 6, 8] + + p['DATA_WIDTH'] = random.choice(data_widths) + + if p['DATA_WIDTH'] == 4 and verilog.unquote( + p['DATA_RATE_OQ']) == 'DDR' and verilog.unquote( + p['DATA_RATE_TQ']) == 'DDR': + tristate_width = 4 + else: + tristate_width = 1 + p['SERDES_MODE'] = verilog.quote(random.choice(('MASTER', 'SLAVE'))) + + p['TRISTATE_WIDTH'] = tristate_width + p['OSERDES_MODE'] = verilog.quote(random.choice(('MASTER', 'SLAVE'))) + + if p['io']: + p['TFB'] = '.TFB(tfb_{site}),'.format(**p) + p['TQ'] = '.TQ({twire}),'.format(**p) + p['t1net'] = luts.get_next_output_net() + p['t2net'] = luts.get_next_output_net() + p['t3net'] = luts.get_next_output_net() + p['t4net'] = luts.get_next_output_net() + p['tcenet'] = luts.get_next_output_net() + + for idx in range(4): + p['IS_T{}_INVERTED'.format(idx + 1)] = random.randint(0, 1) + else: + p['TFB'] = '.TFB(),' + p['TQ'] = '.TQ(),' + p['t1net'] = '' + p['t2net'] = '' + p['t3net'] = '' + p['t4net'] = '' + p['tcenet'] = '' + + for idx in range(4): + p['IS_T{}_INVERTED'.format(idx + 1)] = 0 + + p['SRVAL_OQ'] = random.randint(0, 1) + p['SRVAL_TQ'] = random.randint(0, 1) + p['INIT_OQ'] = random.randint(0, 1) + p['INIT_TQ'] = random.randint(0, 1) + + for idx in range(8): + p['IS_D{}_INVERTED'.format(idx + 1)] = random.randint(0, 1) + + p['IS_CLK_INVERTED'] = random.randint(0, 1) + p['IS_CLKDIV_INVERTED'] = random.randint(0, 1) + + clk_connections = '' + p['CLK_USED'] = random.randint(0, 1) + p['CLKDIV_USED'] = random.randint(0, 1) + if p['CLK_USED']: + clk_connections += ''' + .CLK({}),'''.format(luts.get_next_output_net()) + if p['CLKDIV_USED']: + clk_connections += ''' + .CLKDIV({}),'''.format(luts.get_next_output_net()) + + print( + ''' + (* KEEP, DONT_TOUCH, LOC = "{ologic_loc}" *) + OSERDESE2 #( + .SERDES_MODE({OSERDES_MODE}), + .DATA_RATE_TQ({DATA_RATE_TQ}), + .DATA_RATE_OQ({DATA_RATE_OQ}), + .DATA_WIDTH({DATA_WIDTH}), + .TRISTATE_WIDTH({TRISTATE_WIDTH}), + .SRVAL_OQ({SRVAL_OQ}), + .SRVAL_TQ({SRVAL_TQ}), + .INIT_OQ({INIT_OQ}), + .INIT_TQ({INIT_TQ}), + .IS_T1_INVERTED({IS_T1_INVERTED}), + .IS_T2_INVERTED({IS_T2_INVERTED}), + .IS_T3_INVERTED({IS_T3_INVERTED}), + .IS_T4_INVERTED({IS_T4_INVERTED}), + .IS_D1_INVERTED({IS_D1_INVERTED}), + .IS_D2_INVERTED({IS_D2_INVERTED}), + .IS_D3_INVERTED({IS_D3_INVERTED}), + .IS_D4_INVERTED({IS_D4_INVERTED}), + .IS_D5_INVERTED({IS_D5_INVERTED}), + .IS_D6_INVERTED({IS_D6_INVERTED}), + .IS_D7_INVERTED({IS_D7_INVERTED}), + .IS_D8_INVERTED({IS_D8_INVERTED}), + .IS_CLK_INVERTED({IS_CLK_INVERTED}), + .IS_CLKDIV_INVERTED({IS_CLKDIV_INVERTED}) + ) oserdese2_{site} ( + .OQ({owire}), + {TFB} + {TQ} + {clk_connections} + .D1({d1net}), + .D2({d2net}), + .D3({d3net}), + .D4({d4net}), + .D5({d5net}), + .D6({d6net}), + .D7({d7net}), + .D8({d8net}), + .OCE({ocenet}), + .RST({rstnet}), + .T1({t1net}), + .T2({t2net}), + .T3({t3net}), + .T4({t4net}), + .TCE({tcenet}) + );'''.format( + clk_connections=clk_connections, + rstnet=luts.get_next_output_net(), + d1net=luts.get_next_output_net(), + d2net=luts.get_next_output_net(), + d3net=luts.get_next_output_net(), + d4net=luts.get_next_output_net(), + d5net=luts.get_next_output_net(), + d6net=luts.get_next_output_net(), + d7net=luts.get_next_output_net(), + d8net=luts.get_next_output_net(), + ocenet=luts.get_next_output_net(), + ofb_wire=luts.get_next_input_net(), + **p), + file=connects) + + +def use_direct_and_oddr(p, luts, connects): + p['oddr_mux_config'] = random.choice(( + 'direct', + 'lut', + 'none', + )) + + if p['io']: + if p['oddr_mux_config'] != 'lut': + p['tddr_mux_config'] = random.choice(( + 'direct', + 'lut', + 'none', + )) + else: + p['tddr_mux_config'] = random.choice(( + 'lut', + 'none', + )) + else: + p['tddr_mux_config'] = 'none' + + # toddr and oddr share the same clk + if random.randint(0, 1): + clknet = luts.get_next_output_net() + p['IS_CLK_INVERTED'] = 0 + else: + clknet = 'bufg_o' + p['IS_CLK_INVERTED'] = random.randint(0, 1) + + if p['tddr_mux_config'] == 'direct': + p['TINIT'] = random.randint(0, 1) + p['TSRTYPE'] = verilog.quote(random.choice(('SYNC', 'ASYNC'))) + p['TDDR_CLK_EDGE'] = verilog.quote('OPPOSITE_EDGE') + + # Note: it seems that CLK_EDGE setting is ignored for TDDR + p['TDDR_CLK_EDGE'] = verilog.quote( + random.choice(('OPPOSITE_EDGE', 'SAME_EDGE'))) + + p['t_sr_used'] = random.choice(('None', 'S', 'R')) + if p['t_sr_used'] == 'None': + p['t_srnet'] = '' + elif p['t_sr_used'] == 'S': + p['srnet'] = luts.get_next_output_net() + p['t_srnet'] = '.S({}),\n'.format(p['srnet']) + elif p['t_sr_used'] == 'R': + p['srnet'] = luts.get_next_output_net() + p['t_srnet'] = '.R({}),\n'.format(p['srnet']) + + print( + ''' + (* KEEP, DONT_TOUCH, LOC = "{ologic_loc}" *) + ODDR #( + .INIT({TINIT}), + .SRTYPE({TSRTYPE}), + .DDR_CLK_EDGE({TDDR_CLK_EDGE}), + .IS_C_INVERTED({IS_CLK_INVERTED}) + ) toddr_{site} ( + .C({cnet}), + .D1({d1net}), + .D2({d2net}), + .CE({cenet}), + {t_srnet} + .Q(tddr_d_{site}) + ); + '''.format( + cnet=clknet, + d1net=luts.get_next_output_net(), + d2net=luts.get_next_output_net(), + cenet=luts.get_next_output_net(), + **p), + file=connects) + + if p['tddr_mux_config'] == 'direct': + print( + ''' + assign {twire} = tddr_d_{site};'''.format(**p, ), + file=connects) + elif p['tddr_mux_config'] == 'lut': + print( + ''' + assign {twire} = {lut};'''.format(lut=luts.get_next_output_net(), **p), + file=connects) + pass + elif p['tddr_mux_config'] == 'none': + pass + else: + assert False, p['tddr_mux_config'] + + if p['oddr_mux_config'] == 'direct': + p['QINIT'] = random.randint(0, 1) + p['SRTYPE'] = verilog.quote(random.choice(('SYNC', 'ASYNC'))) + p['ODDR_CLK_EDGE'] = verilog.quote( + random.choice(( + 'OPPOSITE_EDGE', + 'SAME_EDGE', + ))) + + p['o_sr_used'] = random.choice(('None', 'S', 'R')) + if p['o_sr_used'] == 'None': + p['o_srnet'] = '' + elif p['o_sr_used'] == 'S': + if 'srnet' not in p: + p['srnet'] = luts.get_next_output_net() + p['o_srnet'] = '.S({}),\n'.format(p['srnet']) + elif p['o_sr_used'] == 'R': + if 'srnet' not in p: + p['srnet'] = luts.get_next_output_net() + p['o_srnet'] = '.R({}),\n'.format(p['srnet']) + + print( + ''' + (* KEEP, DONT_TOUCH, LOC = "{ologic_loc}" *) + ODDR #( + .INIT({QINIT}), + .SRTYPE({SRTYPE}), + .DDR_CLK_EDGE({ODDR_CLK_EDGE}), + .IS_C_INVERTED({IS_CLK_INVERTED}) + ) oddr_{site} ( + .C({cnet}), + .D1({d1net}), + .D2({d2net}), + .CE({cenet}), + {o_srnet} + .Q(oddr_d_{site}) + ); + '''.format( + cnet=clknet, + d1net=luts.get_next_output_net(), + d2net=luts.get_next_output_net(), + cenet=luts.get_next_output_net(), + **p), + file=connects) + + if p['oddr_mux_config'] == 'direct': + print( + ''' + assign {owire} = oddr_d_{site};'''.format(**p, ), + file=connects) + elif p['oddr_mux_config'] == 'lut': + print( + ''' + assign {owire} = {lut};'''.format(lut=luts.get_next_output_net(), **p), + file=connects) + pass + elif p['oddr_mux_config'] == 'none': + pass + else: + assert False, p['oddr_mux_config'] + + +def run(): + iostandards = [ + 'LVCMOS12', 'LVCMOS15', 'LVCMOS18' + ] + iostandard = random.choice(iostandards) + + if iostandard in ['LVCMOS12']: + drives = [2, 4, 6, 8] + elif iostandard in ['LVCMOS15', 'LVCMOS18']: + drives = [2, 4, 6, 8, 12, 16] + else: + assert False, "This should be unreachable" + + slews = ['FAST', 'SLOW'] + pulls = ["NONE", "KEEPER", "PULLDOWN", "PULLUP"] + + luts = lut_maker.LutMaker() + + connects = io.StringIO() + + tile_params = [] + params = [] + + ndio = 0 + ndo = 0 + for idx, (tile, site) in enumerate(gen_sites()): + if idx == 0: + continue + + p = {} + p['tile'] = tile + p['site'] = site + p['ilogic_loc'] = site.replace('IOB', 'ILOGIC') + p['ologic_loc'] = site.replace('IOB', 'OLOGIC') + p['IOSTANDARD'] = verilog.quote(iostandard) + p['PULLTYPE'] = verilog.quote(random.choice(pulls)) + p['DRIVE'] = random.choice(drives) + p['SLEW'] = verilog.quote(random.choice(slews)) + + p['io'] = random.randint(0, 1) + p['owire'] = 'do_buf[{}]'.format(idx - 1) + + if p['io']: + p['pad_wire'] = 'dio[{}]'.format(ndio) + ndio += 1 + + p['iwire'] = 'di_buf[{}]'.format(idx - 1) + p['twire'] = 't[{}]'.format(idx - 1) + else: + p['pad_wire'] = 'do[{}]'.format(ndo) + ndo += 1 + + params.append(p) + tile_params.append( + ( + tile, site, p['pad_wire'], iostandard, p['DRIVE'], + verilog.unquote(p['SLEW']) if p['SLEW'] else None, + verilog.unquote(p['PULLTYPE']))) + + write_params(tile_params) + + print( + ''' +`define N_DO {n_do} +`define N_DIO {n_dio} + +module top(input clk, output wire [`N_DO-1:0] do, inout wire [`N_DIO-1:0] dio); + wire [(`N_DIO+`N_DO)-1:0] di_buf; + wire [(`N_DIO+`N_DO)-1:0] do_buf; + wire [(`N_DIO+`N_DO)-1:0] t; + '''.format(n_dio=ndio, n_do=ndo)) + + # Always output a LUT6 to make placer happy. + print( + ''' + (* KEEP, DONT_TOUCH *) + LUT6 dummy_lut(); + + wire bufg_o; + (* KEEP, DONT_TOUCH *) + BUFG (.O(bufg_o)); + ''') + + for p in params: + if p['io']: + print( + ''' + wire oddr_d_{site}; + + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + IOBUF #( + .IOSTANDARD({IOSTANDARD}) + ) obuf_{site} ( + .IO({pad_wire}), + .I({owire}), + .O({iwire}), + .T({twire}) + ); + '''.format(**p), + file=connects) + else: + print( + ''' + wire oddr_d_{site}; + + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + OBUF #( + .IOSTANDARD({IOSTANDARD}) + ) obuf_{site} ( + .O({pad_wire}), + .I({owire}) + ); + '''.format(**p), + file=connects) + + p['use_oserdese2'] = random.randint(0, 1) + if p['use_oserdese2']: + use_oserdese2(p, luts, connects) + else: + use_direct_and_oddr(p, luts, connects) + + for l in luts.create_wires_and_luts(): + print(l) + + print(connects.getvalue()) + + print("endmodule") + + with open('params.jl', 'w') as f: + json.dump(params, f, indent=2) + + +if __name__ == '__main__': + run() diff --git a/fuzzers/037-iob18-pips/Makefile b/fuzzers/037-iob18-pips/Makefile new file mode 100644 index 000000000..284a9e00d --- /dev/null +++ b/fuzzers/037-iob18-pips/Makefile @@ -0,0 +1,58 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +export FUZDIR=$(shell pwd) +PIP_TYPE?=ioi +PIPLIST_TCL=$(FUZDIR)/ioi_pip_list.tcl + +TODO_RE=".*" +EXCLUDE_RE=".*((PHASER)|(CLKDIVF)|(CLKDIVP)|(CLKDIVB)|(IOI_ILOGIC[01]_O)|(IOI_OLOGIC[01]_CLKB?\.)|(IOI_IMUX_RC)|(IOI_OLOGIC[01]_[OT]FB)|(OCLKM.*IMUX31)).*" + +MAKETODO_FLAGS=--pip-type ${PIP_TYPE} --seg-type $(PIP_TYPE) --re $(TODO_RE) --sides "xr" --exclude-re $(EXCLUDE_RE) +N = 120 + +SPECIMENS_DEPS=build/cmt_regions.csv + +include ../pip_loop.mk + +SIX_BIT_PIPS="OLOGIC[01]_CLKDIV" + +build/segbits_ioi_x.rdb: $(SPECIMENS_OK) + # Most pips are 3 bits, force a 3 bit solution + ${XRAY_SEGMATCH} -c 3 -m 20 -M 50 -o build/segbits_ioi_x_match_3.rdb \ + $(shell find build -name segdata_rioi*.txt) + # Some are 6 bit solutions, solve for 6 bits and merge respectively + ${XRAY_SEGMATCH} -c 6 -m 20 -M 50 -o build/segbits_ioi_x_match_6.rdb \ + $(shell find build -name segdata_rioi*.txt) + grep -v ${SIX_BIT_PIPS} build/segbits_ioi_x_match_3.rdb > build/segbits_ioi_x.rdb + grep ${SIX_BIT_PIPS} build/segbits_ioi_x_match_6.rdb >> build/segbits_ioi_x.rdb + +RDBS = build/segbits_ioi_x.rdb + +database: ${RDBS} + ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf \ + --seg-fn-in build/segbits_ioi_x.rdb \ + --seg-fn-out build/segbits_ioi_x.db + + # Keep a copy to track iter progress + cp build/segbits_ioi_x.rdb build/$(ITER)/segbits_ioi_x.rdb + cp build/segbits_ioi_x.db build/$(ITER)/segbits_ioi_x.db + + # Clobber existing .db to eliminate potential conflicts + cp ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits*.db build/database/${XRAY_DATABASE} + XRAY_DATABASE_DIR=${FUZDIR}/build/database ${XRAY_MERGEDB} rioi build/segbits_ioi_x.db + +build/cmt_regions.csv: output_cmt.tcl + mkdir -p build + cd build/ && ${XRAY_VIVADO} -mode batch -source ${FUZDIR}/output_cmt.tcl + +pushdb: database + ${XRAY_MERGEDB} rioi build/segbits_ioi_x.db + ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_ioi_x.db + ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_ioi_x.db + +.PHONY: database pushdb diff --git a/fuzzers/037-iob18-pips/bits.dbf b/fuzzers/037-iob18-pips/bits.dbf new file mode 100644 index 000000000..e69de29bb diff --git a/fuzzers/037-iob18-pips/generate.py b/fuzzers/037-iob18-pips/generate.py new file mode 100644 index 000000000..5e0b37250 --- /dev/null +++ b/fuzzers/037-iob18-pips/generate.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC + +from prjxray.segmaker import Segmaker +import os, re +import os.path + + +def bitfilter(frame, word): + if frame < 28: + return False + return True + + +def main(): + segmk = Segmaker("design.bits") + + tiledata = {} + pipdata = {} + ignpip = set() + + with open(os.path.join(os.getenv('FUZDIR'), '..', 'piplist', 'build', + 'ioi', 'rioi.txt')) as f: + for l in f: + tile_type, dst, src = l.strip().split('.') + if tile_type not in pipdata: + pipdata[tile_type] = [] + + pipdata[tile_type].append((src, dst)) + + print("Loading tags from design.txt.") + with open("design.txt", "r") as f: + for line in f: + tile, pip, src, dst, pnum, pdir = line.split() + if not tile.startswith('RIOI') or "X43Y9" in tile: + continue + + log = open("log.txt", "a") + print(line, file=log) + pip_prefix, _ = pip.split(".") + tile_from_pip, tile_type = pip_prefix.split('/') + + _, src = src.split("/") + _, dst = dst.split("/") + pnum = int(pnum) + pdir = int(pdir) + + if tile not in tiledata: + tiledata[tile] = { + "type": tile_type, + "pips": set(), + "srcs": set(), + "dsts": set(), + } + + tiledata[tile]["pips"].add((src, dst)) + tiledata[tile]["srcs"].add(src) + tiledata[tile]["dsts"].add(dst) + + if pdir == 0: + tiledata[tile]["srcs"].add(dst) + tiledata[tile]["dsts"].add(src) + + for tile, pips_srcs_dsts in tiledata.items(): + tile_type = pips_srcs_dsts["type"] + + if tile_type.startswith('RIOI'): + tile_type = 'RIOI' + + for src, dst in pipdata[tile_type]: + if (src, dst) in ignpip: + pass + if re.match(r'.*PHASER.*', src) or re.match(r'.*CLKDIV[PFB].*', + dst): + pass + elif (src, dst) in tiledata[tile]["pips"]: + segmk.add_tile_tag(tile, "%s.%s" % (dst, src), 1) + elif dst not in tiledata[tile]["dsts"]: + disable_pip = True + + if dst == 'IOI_OCLKM_0' and 'IOI_OCLK_0' in tiledata[tile][ + "dsts"]: + disable_pip = False + + if dst == 'IOI_OCLKM_1' and 'IOI_OCLK_1' in tiledata[tile][ + "dsts"]: + disable_pip = False + + if disable_pip: + segmk.add_tile_tag(tile, "%s.%s" % (dst, src), 0) + + segmk.compile(bitfilter=bitfilter) + segmk.write() + + +if __name__ == "__main__": + main() diff --git a/fuzzers/037-iob18-pips/generate.tcl b/fuzzers/037-iob18-pips/generate.tcl new file mode 100644 index 000000000..2983f40d4 --- /dev/null +++ b/fuzzers/037-iob18-pips/generate.tcl @@ -0,0 +1,109 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +source "$::env(XRAY_DIR)/utils/utils.tcl" + +proc write_pip_txtdata {filename} { + puts "FUZ([pwd]): Writing $filename." + set fp [open $filename w] + set nets [get_nets -hierarchical] + set nnets [llength $nets] + set neti 0 + foreach net $nets { + incr neti + if {($neti % 100) == 0 } { + puts "FUZ([pwd]): Dumping pips from net $net ($neti / $nnets)" + } + foreach pip [get_pips -of_objects $net] { + set tile [get_tiles -of_objects $pip] + set src_wire [get_wires -uphill -of_objects $pip] + set dst_wire [get_wires -downhill -of_objects $pip] + set num_pips [llength [get_nodes -uphill -of_objects [get_nodes -of_objects $dst_wire]]] + set dir_prop [get_property IS_DIRECTIONAL $pip] + puts $fp "$tile $pip $src_wire $dst_wire $num_pips $dir_prop" + } + } + close $fp +} + +proc make_manual_routes {filename} { + puts "MANROUTE: Loading routes from $filename" + + set fp [open $filename r] + foreach line [split [read $fp] "\n"] { + if {$line eq ""} { + continue + } + + puts "MANROUTE: Line: $line" + + # Parse the line + set fields [split $line " "] + set net_name [lindex $fields 0] + set wire_name [lindex $fields 1] + + # Check if that net exists + if {[get_nets $net_name] eq ""} { + puts "MANROUTE: net $net_name does not exist" + continue + } + + set net [get_nets $net_name] + + # Rip it up + set_property -quiet FIXED_ROUTE "" $net + set_property IS_ROUTE_FIXED 0 $net + route_design -unroute -nets $net + + # Make the route + set nodes [get_nodes -of_objects [get_wires $wire_name]] + set status [route_via $net_name [list $nodes] 0] + + # Failure, skip manual routing of this net + if { $status != 1 } { + puts "MANROUTE: Manual routing failed!" + set_property -quiet FIXED_ROUTE "" $net + set_property IS_ROUTE_FIXED 0 $net + continue + } + + puts "MANROUTE: Success!" + } +} + +proc run {} { + create_project -force -part $::env(XRAY_PART) design design + read_verilog top.v + synth_design -top top + + set_property CFGBVS GND [current_design] + set_property CONFIG_VOLTAGE 1.8 [current_design] + set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] + set_property IS_ENABLED 0 [get_drc_checks {AVAL-74}] + set_property IS_ENABLED 0 [get_drc_checks {PDRC-26}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-4}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-5}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-13}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-98}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-99}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-105}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-115}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-144}] + + set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets] + + place_design -directive Quick + write_checkpoint -force design_before_route.dcp + make_manual_routes routes.txt + route_design -directive Quick -preserve + write_checkpoint -force design.dcp + + write_bitstream -force design.bit + write_pip_txtdata design.txt +} + +run diff --git a/fuzzers/037-iob18-pips/ioi_pip_list.tcl b/fuzzers/037-iob18-pips/ioi_pip_list.tcl new file mode 100644 index 000000000..3138494da --- /dev/null +++ b/fuzzers/037-iob18-pips/ioi_pip_list.tcl @@ -0,0 +1,47 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +proc print_tile_pips {tile_type filename} { + set fp [open $filename w] + set pips [dict create] + foreach tile [get_tiles -filter "TYPE == $tile_type"] { + foreach pip [lsort [get_pips -of_objects $tile]] { + set src [get_wires -uphill -of_objects $pip] + set dst [get_wires -downhill -of_objects $pip] + + # Skip pips with disconnected nodes + set src_node [get_nodes -of_objects $src] + + if { $src_node == {} } { + continue + } + + set dst_node [get_nodes -of_objects $src] + if { $dst_node == {} } { + continue + } + + set src_wire [regsub {.*/} $src ""] + set src_match [regexp {IOI_OCLKM?_[01]} $src_wire] + + if { [llength [get_nodes -uphill -of_objects [get_nodes -of_objects $dst]]] != 1 || $src_match } { + set pip_string "$tile_type.[regsub {.*/} $dst ""].[regsub {.*/} $src ""]" + if ![dict exists $pips $pip_string] { + puts $fp $pip_string + dict set pips $pip_string 1 + } + } + } + } + close $fp +} + +create_project -force -part $::env(XRAY_PART) design design +set_property design_mode PinPlanning [current_fileset] +open_io_design -name io_1 + +print_tile_pips RIOI rioi.txt diff --git a/fuzzers/037-iob18-pips/output_cmt.tcl b/fuzzers/037-iob18-pips/output_cmt.tcl new file mode 100644 index 000000000..10a4f97bb --- /dev/null +++ b/fuzzers/037-iob18-pips/output_cmt.tcl @@ -0,0 +1,18 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +create_project -force -part $::env(XRAY_PART) design design +set_property design_mode PinPlanning [current_fileset] +open_io_design -name io_1 + +set fp [open "cmt_regions.csv" "w"] +foreach site_type {MMCME2_ADV BUFHCE BUFR BUFMRCE BUFIO ILOGICE2 OLOGICE2 IDELAYE2 IDELAYCTRL PLLE2_ADV} { + foreach site [get_sites -filter "SITE_TYPE == $site_type"] { + puts $fp "$site,[get_property CLOCK_REGION $site]" + } +} +close $fp diff --git a/fuzzers/037-iob18-pips/top.py b/fuzzers/037-iob18-pips/top.py new file mode 100644 index 000000000..bc613da63 --- /dev/null +++ b/fuzzers/037-iob18-pips/top.py @@ -0,0 +1,391 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +import os +import random +import math +random.seed(int(os.getenv("SEED"), 16)) +from prjxray import util +from prjxray import verilog +from prjxray import lut_maker +from prjxray.db import Database + +NOT_INCLUDED_TILES = ['RIOI_SING'] + +SITE_TYPES = ['OLOGICE2', 'ILOGICE2'] + + +def read_site_to_cmt(): + """ Yields clock sources and which CMT they route within. """ + with open(os.path.join(os.getenv('FUZDIR'), 'build', + 'cmt_regions.csv')) as f: + for l in f: + site, cmt = l.strip().split(',') + yield (site, cmt) + + +def gen_sites(): + ''' Return dict of ISERDES/OSERDES locations. ''' + db = Database(util.get_db_root(), util.get_part()) + grid = db.grid() + + xy_fun = util.create_xy_fun('\S+') + + tiles = grid.tiles() + + for tile_name in sorted(tiles): + loc = grid.loc_of_tilename(tile_name) + gridinfo = grid.gridinfo_at_loc(loc) + tile_type = gridinfo.tile_type + + tile = {'tile': tile_name, 'tile_type': tile_type, 'ioi_sites': {}} + + for site_name, site_type in gridinfo.sites.items(): + if site_type in SITE_TYPES: + xy = xy_fun(site_name) + if xy not in tile['ioi_sites']: + tile['ioi_sites'][xy] = {} + + tile['ioi_sites'][xy][site_type] = site_name + + yield tile + + +class ClockSources(object): + def __init__(self): + self.site_to_cmt = dict(read_site_to_cmt()) + + self.leaf_gclks = {} + self.ioclks = {} + self.rclks = {} + self.selected_leaf_gclks = {} + self.lut_maker = lut_maker.LutMaker() + + for cmt in set(self.site_to_cmt.values()): + self.leaf_gclks[cmt] = [] + self.ioclks[cmt] = [] + self.rclks[cmt] = [] + + def init_clocks(self): + """ Initialize all IOI clock sources. """ + for site, cmt in self.site_to_cmt.items(): + clk = 'clk_' + site + if 'BUFHCE' in site: + print( + """ + wire {clk}; + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + BUFH bufh_{site}( + .O({clk}) + ); + """.format( + clk=clk, + site=site, + )) + + self.leaf_gclks[cmt].append(clk) + + if 'BUFIO' in site: + print( + """ + wire {clk}; + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + BUFIO bufio_{site}( + .O({clk}) + ); + """.format( + clk=clk, + site=site, + )) + + self.ioclks[cmt].append(clk) + + if 'BUFR' in site: + print( + """ + wire {clk}; + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + BUFR bufr_{site}( + .O({clk}) + ); + """.format( + clk=clk, + site=site, + )) + + self.rclks[cmt].append(clk) + + # Choose 6 leaf_gclks to be used in each CMT. + for cmt in self.leaf_gclks: + self.selected_leaf_gclks[cmt] = random.sample( + self.leaf_gclks[cmt], 6) + + def get_clock( + self, + site, + allow_ioclks, + allow_rclks, + allow_fabric=True, + allow_empty=True): + cmt = self.site_to_cmt[site] + choices = [] + if allow_fabric: + choices.append('lut') + + if allow_empty: + choices.append('') + + choices.extend(self.selected_leaf_gclks[cmt]) + if allow_ioclks: + choices.extend(self.ioclks[cmt]) + + if allow_rclks: + choices.extend(self.rclks[cmt]) + + clock = random.choice(choices) + is_lut = False + if clock == "lut": + clock = self.lut_maker.get_next_output_net() + is_lut = True + return clock, is_lut + + +def add_port(ports, port, signal): + ports.append('.{}({})'.format(port, signal)) + + +def run(): + print("module top();") + + clocks = ClockSources() + clocks.init_clocks() + """ + + ISERDESE2 clock sources: + + CLK/CLKB: + - Allows LEAF_GCLK, IOCLKS, RCLKS and fabric + - Dedicated pips + + CLKDIV: + - No dedicated pips, uses fabric clock in. + + CLKDIVP: + - Has pips, MIG only, PHASER or fabric. + + OCLK/OCLKB: + - Allows LEAF_GCLK, IOCLKS, RCLKS and fabric + - Must match OSERDESE2:CLK/CLKB + + OSERDESE2 clock sources: + + CLKDIV/CLKDIVB: + - Allows LEAF_GCLK and RCLKS and fabric + - Dedicated pips + + CLKDIVF/CLKDIVFB: + - Allows LEAF_GCLK and RCLKS and fabric + - No explicit port, follows CLKDIV/CLKDIVB? + """ + + output = [] + route_file = open("routes.txt", "w") + + for tile in gen_sites(): + if tile['tile_type'] in NOT_INCLUDED_TILES: + continue + + for xy in tile['ioi_sites']: + ilogic_site_type = random.choice([None, 'ISERDESE2', 'IDDR']) + use_oserdes = random.randint(0, 1) + + ilogic_site = tile['ioi_sites'][xy]['ILOGICE2'] + ologic_site = tile['ioi_sites'][xy]['OLOGICE2'] + + if use_oserdes: + oclk, _ = clocks.get_clock( + ologic_site, allow_ioclks=True, allow_rclks=True) + + oclkb = oclk + else: + oclk, is_lut = clocks.get_clock( + ilogic_site, allow_ioclks=True, allow_rclks=True) + + if random.randint(0, 1): + oclkb = oclk + else: + if random.randint(0, 1): + oclkb, _ = clocks.get_clock( + ilogic_site, + allow_ioclks=True, + allow_rclks=True, + allow_fabric=not is_lut) + else: + # Explicitly provide IMUX stimulus to resolve IMUX pips + oclk = random.randint(0, 1) + oclkb = random.randint(0, 1) + + DATA_RATE = random.choice(['DDR', 'SDR']) + clk, clk_is_lut = clocks.get_clock( + ilogic_site, + allow_ioclks=True, + allow_rclks=True, + allow_empty=DATA_RATE == 'SDR') + + clkb = clk + while clkb == clk: + clkb, clkb_is_lut = clocks.get_clock( + ilogic_site, + allow_ioclks=True, + allow_rclks=True, + allow_empty=False) + + imux_available = { + 0: set(("IOI_IMUX20_0", "IOI_IMUX22_0")), + 1: set(("IOI_IMUX20_1", "IOI_IMUX22_1")), + } + + # Force CLK route through IMUX when connected to a LUT + if clk_is_lut: + y = (xy[1] + 1) % 2 + + route = random.choice(list(imux_available[y])) + imux_available[y].remove(route) + + route = "{}/{}".format(tile["tile"], route) + route_file.write("{} {}\n".format(clk, route)) + + # Force CLKB route through IMUX when connected to a LUT + if clkb_is_lut: + y = (xy[1] + 1) % 2 + + route = random.choice(list(imux_available[y])) + imux_available[y].remove(route) + + route = "{}/{}".format(tile["tile"], route) + route_file.write("{} {}\n".format(clkb, route)) + + if ilogic_site_type is None: + pass + + elif ilogic_site_type == 'ISERDESE2': + INTERFACE_TYPE = random.choice( + [ + 'MEMORY', + 'MEMORY_DDR3', + 'MEMORY_QDR', + 'NETWORKING', + 'OVERSAMPLE', + ]) + ports = [] + + add_port(ports, 'CLK', clk) + add_port(ports, 'CLKB', clkb) + add_port(ports, 'OCLK', oclk) + add_port(ports, 'OCLKB', oclkb) + + output.append( + """ + (* KEEP, DONT_TOUCH, LOC="{site}" *) + ISERDESE2 #( + .DATA_RATE({DATA_RATE}), + .INTERFACE_TYPE({INTERFACE_TYPE}), + .IS_CLK_INVERTED({IS_CLK_INVERTED}), + .IS_CLKB_INVERTED({IS_CLKB_INVERTED}), + .IS_OCLK_INVERTED({IS_OCLK_INVERTED}), + .IS_OCLKB_INVERTED({IS_OCLKB_INVERTED}), + .INIT_Q1({INIT_Q1}), + .INIT_Q2({INIT_Q2}), + .INIT_Q3({INIT_Q3}), + .INIT_Q4({INIT_Q4}), + .SRVAL_Q1({SRVAL_Q1}), + .SRVAL_Q2({SRVAL_Q2}), + .SRVAL_Q3({SRVAL_Q3}), + .SRVAL_Q4({SRVAL_Q4}) + ) iserdes_{site}( + {ports});""".format( + site=ilogic_site, + ports=',\n'.join(ports), + DATA_RATE=verilog.quote(DATA_RATE), + INTERFACE_TYPE=verilog.quote(INTERFACE_TYPE), + IS_CLK_INVERTED=random.randint(0, 1), + IS_CLKB_INVERTED=random.randint(0, 1), + IS_OCLK_INVERTED=random.randint(0, 1), + IS_OCLKB_INVERTED=random.randint(0, 1), + INIT_Q1=random.randint(0, 1), + INIT_Q2=random.randint(0, 1), + INIT_Q3=random.randint(0, 1), + INIT_Q4=random.randint(0, 1), + SRVAL_Q1=random.randint(0, 1), + SRVAL_Q2=random.randint(0, 1), + SRVAL_Q3=random.randint(0, 1), + SRVAL_Q4=random.randint(0, 1), + )) + elif ilogic_site_type == 'IDDR': + ports = [] + add_port(ports, 'C', clk) + add_port(ports, 'CB', clkb) + + output.append( + """ + (* KEEP, DONT_TOUCH, LOC="{site}" *) + IDDR_2CLK #( + .INIT_Q1({INIT_Q1}), + .INIT_Q2({INIT_Q2}), + .SRTYPE({SRTYPE}) + ) iserdes_{site}( + {ports});""".format( + site=ilogic_site, + ports=',\n'.join(ports), + INIT_Q1=random.randint(0, 1), + INIT_Q2=random.randint(0, 1), + SRTYPE=verilog.quote(random.choice(['ASYNC', 'SYNC'])), + )) + else: + assert False, ilogic_site_type + + if use_oserdes: + ports = [] + + add_port( + ports, 'CLKDIV', + clocks.get_clock( + ologic_site, + allow_ioclks=False, + allow_rclks=True, + )[0]) + + add_port(ports, 'CLK', oclk) + + output.append( + """ + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + OSERDESE2 #( + .IS_CLK_INVERTED({IS_CLK_INVERTED}), + .DATA_RATE_OQ("SDR"), + .DATA_RATE_TQ("SDR") + ) oserdes_{site} ( + {ports});""".format( + IS_CLK_INVERTED=random.randint(0, 1), + site=ologic_site, + ports=',\n'.join(ports), + )) + + for s in clocks.lut_maker.create_wires_and_luts(): + print(s) + + for s in output: + print(s) + + print("endmodule") + + +if __name__ == '__main__': + run() diff --git a/fuzzers/039-hclk-config/Makefile b/fuzzers/039-hclk-config/Makefile index ae18a3608..38b2b2412 100644 --- a/fuzzers/039-hclk-config/Makefile +++ b/fuzzers/039-hclk-config/Makefile @@ -9,7 +9,7 @@ N ?= 50 include ../fuzzer.mk -database: build/segbits_hclk_ioi3.db +database: build/segbits_hclk_ioi.db build/segbits_hclk_ioi3.rdb: $(SPECIMENS_OK) ${XRAY_SEGMATCH} -c 5 -o build/segbits_hclk_ioi3.rdb \ @@ -22,8 +22,16 @@ build/segbits_hclk_ioi3.db: build/segbits_hclk_ioi3.rdb ${XRAY_MASKMERGE} build/mask_hclk_ioi3.db \ $(addsuffix /segdata_hclk_ioi3.txt,$(SPECIMENS)) +# The fuzzer results for the high performance banks +# are identical, so just copy those +build/segbits_hclk_ioi.db: build/segbits_hclk_ioi3.db build/mask_hclk_ioi3.db + sed -e 's/HCLK_IOI3/HCLK_IOI/g' $< > $@ + cp build/mask_hclk_ioi3.db build/mask_hclk_ioi.db + pushdb: database ${XRAY_MERGEDB} hclk_ioi3 build/segbits_hclk_ioi3.db ${XRAY_MERGEDB} mask_hclk_ioi3 build/mask_hclk_ioi3.db + ${XRAY_MERGEDB} hclk_ioi build/segbits_hclk_ioi.db + ${XRAY_MERGEDB} mask_hclk_ioi build/mask_hclk_ioi.db .PHONY: database pushdb diff --git a/fuzzers/047-hclk-ioi18-pips/Makefile b/fuzzers/047-hclk-ioi18-pips/Makefile new file mode 100644 index 000000000..b0742130e --- /dev/null +++ b/fuzzers/047-hclk-ioi18-pips/Makefile @@ -0,0 +1,53 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +export FUZDIR=$(shell pwd) +PIP_TYPE?=hclk_ioi +PIPLIST_TCL=$(FUZDIR)/hclk_ioi_pip_list.tcl +TODO_RE=".*" +# FIXME Modify fuzzer to solve PIPs that drive the BUFIO and BUFR from ILOGIC clock or through the IOI tile. +EXCLUDE_RE=".*\.HCLK_IOI_((I2IOCLK)|(IDELAYCTRL))" + +MAKETODO_FLAGS= --sides "" --pip-type ${PIP_TYPE} --seg-type ${PIP_TYPE} --re $(TODO_RE) --exclude-re $(EXCLUDE_RE) +N = 499 + +SEGMATCH_FLAGS=-c 4 -m 4 -M 4 +SPECIMENS_DEPS=build/cmt_regions.csv +A_PIPLIST=hclk_ioi.txt + +include ../pip_loop.mk + +build/segbits_hclk_ioi.rdb: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} ${SEGMATCH_FLAGS} -o build/segbits_hclk_ioi.rdb \ + $(shell find build -name segdata_hclk_ioi.txt) + +build/segbits_hclk_ioi.db: build/segbits_hclk_ioi.rdb + ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf \ + --seg-fn-in build/segbits_hclk_ioi.rdb \ + --seg-fn-out build/segbits_hclk_ioi.db + + # Keep a copy to track iter progress + cp build/segbits_hclk_ioi.rdb build/$(ITER)/segbits_hclk_ioi.rdb + + + ${XRAY_MASKMERGE} build/mask_hclk_ioi.db \ + $(shell find build -name segdata_hclk_ioi.txt) + +database: build/segbits_hclk_ioi.db + # Clobber existing .db to eliminate potential conflicts + cp ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits*.db build/database/${XRAY_DATABASE} + XRAY_DATABASE_DIR=${FUZDIR}/build/database ${XRAY_MERGEDB} hclk_ioi build/segbits_hclk_ioi.db + +build/cmt_regions.csv: output_cmt.tcl + mkdir -p build + cd build/ && ${XRAY_VIVADO} -mode batch -source ${FUZDIR}/output_cmt.tcl + +pushdb: database + ${XRAY_MERGEDB} hclk_ioi build/segbits_hclk_ioi.db + ${XRAY_MERGEDB} mask_hclk_ioi build/mask_hclk_ioi.db + +.PHONY: database pushdb diff --git a/fuzzers/047-hclk-ioi18-pips/README.md b/fuzzers/047-hclk-ioi18-pips/README.md new file mode 100644 index 000000000..8f1c36a5e --- /dev/null +++ b/fuzzers/047-hclk-ioi18-pips/README.md @@ -0,0 +1,3 @@ +# HCLK_IOI interconnect fuzzer + +Solves pips located within the HCLK_IOI switch box. diff --git a/fuzzers/047-hclk-ioi18-pips/bits.dbf b/fuzzers/047-hclk-ioi18-pips/bits.dbf new file mode 100644 index 000000000..e69de29bb diff --git a/fuzzers/047-hclk-ioi18-pips/generate.py b/fuzzers/047-hclk-ioi18-pips/generate.py new file mode 100644 index 000000000..abcf00fcc --- /dev/null +++ b/fuzzers/047-hclk-ioi18-pips/generate.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC + +from prjxray.segmaker import Segmaker +import os +import os.path + + +def bitfilter(frame, word): + if frame < 26: + return False + return True + + +def main(): + segmk = Segmaker("design.bits") + + tiledata = {} + pipdata = {} + ignpip = set() + tile_ports = {} + + with open(os.path.join(os.getenv('FUZDIR'), '..', 'piplist', 'build', + 'hclk_ioi', 'hclk_ioi.txt')) as f: + for l in f: + tile_type, dst, src = l.strip().split('.') + if tile_type not in pipdata: + pipdata[tile_type] = [] + tile_ports[tile_type] = set() + + pipdata[tile_type].append((src, dst)) + tile_ports[tile_type].add(src) + tile_ports[tile_type].add(dst) + + print("Loading tags from design.txt.") + with open("design.txt", "r") as f: + for line in f: + tile, pip, src, dst, pnum, pdir = line.split() + + if not tile.startswith('HCLK_IOI_'): + continue + + pip_prefix, _ = pip.split(".") + tile_from_pip, tile_type = pip_prefix.split('/') + assert tile == tile_from_pip + _, src = src.split("/") + _, dst = dst.split("/") + pnum = int(pnum) + pdir = int(pdir) + + if tile not in tiledata: + tiledata[tile] = { + "type": tile_type, + "pips": set(), + "srcs": set(), + "dsts": set() + } + + tiledata[tile]["pips"].add((src, dst)) + tiledata[tile]["srcs"].add(src) + tiledata[tile]["dsts"].add(dst) + + if pdir == 0: + tiledata[tile]["srcs"].add(dst) + tiledata[tile]["dsts"].add(src) + + for tile, pips_srcs_dsts in tiledata.items(): + tile_type = pips_srcs_dsts["type"] + pips = pips_srcs_dsts["pips"] + + for src, dst in pipdata[tile_type]: + if (src, dst) in ignpip: + pass + elif (src, dst) in pips: + segmk.add_tile_tag(tile, "%s.%s" % (dst, src), 1) + elif dst not in tiledata[tile]["dsts"]: + segmk.add_tile_tag(tile, "%s.%s" % (dst, src), 0) + + segmk.compile(bitfilter=bitfilter) + segmk.write() + + +if __name__ == "__main__": + main() diff --git a/fuzzers/047-hclk-ioi18-pips/generate.tcl b/fuzzers/047-hclk-ioi18-pips/generate.tcl new file mode 100644 index 000000000..ec7756a99 --- /dev/null +++ b/fuzzers/047-hclk-ioi18-pips/generate.tcl @@ -0,0 +1,358 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +source "$::env(XRAY_DIR)/utils/utils.tcl" + +proc load_todo {{dir "dst"}} { + set fp [open "../../todo_all.txt" r] + + # Create map of pip source to remaining destinations for that pip + set todo_map [dict create] + for {gets $fp line} {$line != ""} {gets $fp line} { + set parts [split $line .] + if {$dir == "dsts"} { + dict lappend todo_map [lindex $parts 2] [list [lindex $parts 0] [lindex $parts 1]] + } elseif {$dir == "srcs"} { + dict lappend todo_map [lindex $parts 1] [list [lindex $parts 0] [lindex $parts 2]] + } else { + error "Incorrect argument. Available options: src, dst" + } + } + close $fp + return $todo_map +} + +proc shuffle_list {list} { + set l [llength $list] + for {set i 0} {$i<=$l} {incr i} { + set x [lindex $list [set p [expr {int(rand()*$l)}]]] + set list [lreplace $list $p $p] + set list [linsert $list [expr {int(rand()*$l)}] $x] + } + + return $list +} + +# Get the dictionary of nets with one corresponding source wire +# of a PIP from the todo list +proc get_nets_with_todo_pip_wires {direction net_regexp wire_regexp used_destinations {verbose false}} { + set todo_map [load_todo $direction] + puts $todo_map + set nets [get_nets] + set todo_nets [dict create] + + foreach net $nets { + if {![regexp $net_regexp $net]} { + continue + } + # Check to see if this net is one we are interested in* + set wires [get_wires -of_objects $net -filter {TILE_NAME =~ "*HCLK_IOI*" } -quiet] + + set wire_found 0 + foreach wire $wires { + if [regexp $wire_regexp $wire] { + set wire_found 1 + break + } + } + + if {$wire_found == 0} { + if {$verbose} { + puts "$net not going to a HCLK port, skipping." + } + continue + } + + set tile [lindex [split $wire /] 0] + set wire [lindex [split $wire /] 1] + set tile_type [get_property TILE_TYPE [get_tiles $tile]] + + + if { ![dict exists $todo_map $wire] } { + continue + } + + set candidates [dict get $todo_map $wire] + + # This net is interesting, see if it is already going somewhere we + # want. + set found_target 0 + foreach other_wire $wires { + if { $found_target == 1 } { + break + } + + set other_wire [lindex [split $other_wire /] 1] + + if { $wire == $other_wire } { + continue + } + + foreach candidate $candidates { + set candidate_tile_type [lindex $candidate 0] + + if {$candidate_tile_type != $tile_type} { + continue + } + + set candidate_wire [lindex $candidate 1] + + if { $other_wire == $candidate } { + set found_target 1 + if {$verbose} { + puts "Interesting net $net already going from $wire to $other_wire." + } + set_property IS_ROUTE_FIXED 1 $net + dict set used_destinations "$tile/$candidate_wire" 1 + break + } + } + } + + if { $found_target == 1 } { + # Net already has an interesting feature - don't reroute. + continue + } + + dict set todo_nets $net [list $tile $wire] + if {$verbose} { + puts "Interesting net $net (including $wire) is being rerouted." + } + } + return $todo_nets +} + +proc route_todo {} { + set used_destinations [dict create] + set todo_map [load_todo "dsts"] + set serdes_nets [get_nets_with_todo_pip_wires "dsts" "serdes_clk_ILOGIC" "HCLK_IOI_CK_IGCLK" $used_destinations] + puts "Serdes nets: $serdes_nets" + dict for {net tile_wire} $serdes_nets { + set tile [lindex $tile_wire 0] + set wire [lindex $tile_wire 1] + set dsts [dict get $todo_map $wire] + set tile_type [get_property TILE_TYPE [get_tiles $tile]] + set todos {} + + set old_target_wire [get_wires -of_objects $net -filter {TILE_NAME =~ "*HCLK_IOI*" && NAME =~ "*HCLK_IOI_LEAF_GCLK_*"}] + if {$old_target_wire == {}} { + continue + } + if {[dict exists $used_destinations $old_target_wire]} { + puts "Not routing to $old_target_wire, in use." + continue + } + puts "Rerouting net $net at $tile / $wire (type $tile_type)" + puts "Previous target wire: $old_target_wire" + set old_target_node [get_nodes -of_objects $old_target_wire] + if [regexp "HCLK_IOI_LEAF_GCLK_\(\(TOP\)|\(BOT\)\).*" $old_target_wire match group] { + set old_target_side $group + } + foreach dst $dsts { + set dst_tile_type [lindex $dst 0] + if {$dst_tile_type != $tile_type} { + continue + } + + set dst_wire [lindex $dst 1] + + set is_gclk_net 0 + if [regexp "HCLK_IOI_LEAF_GCLK_\(\(TOP\)|\(BOT\)\).*" $dst_wire match group] { + set is_gclk_net 1 + set dst_side $group + } + + if {$is_gclk_net == 0 || $dst_side != $old_target_side} { + continue + } + + lappend todos $dst_wire + } + + set todos_length [llength $todos] + if {$todos_length == 0} { + continue + } + + puts "All todos for $tile_type / $wire" + foreach dst_wire $todos { + puts " - $dst_wire" + } + + set todos [shuffle_list $todos] + + set origin_node [get_nodes -of_objects [get_site_pins -filter {DIRECTION == OUT} -of_objects $net]] + puts "Origin node: $origin_node" + route_design -unroute -nets $net + + # Find an input in the todo list that this can can drive. + foreach dst_wire $todos { + if { [dict exists $used_destinations "$tile/$dst_wire"] } { + puts "Not routing to $tile / $dst_wire, in use." + continue + } + + set target_wire [get_wires "$tile/$dst_wire"] + set target_node [get_nodes -of_objects $target_wire] + if {[llength $target_node] == 0} { + error "Failed to find node for $tile/$dst_wire." + } + + set old_net [get_nets -of_objects $target_node -quiet] + if {$old_net == {}} { + continue + } + puts "Unrouting the old net: $old_net" + route_design -unroute -nets $old_net + set old_origin_node [get_nodes -of_objects [get_site_pins -filter {DIRECTION == OUT} -of_objects $old_net]] + + # Route the net through the desired node + puts "Attempting to route to $target_node for net $net." + route_via $net [list $target_node] + + puts "Attempting to route to $old_target_node for net $old_net." + # Route the old net through the old target node + route_via $old_net [list $old_target_node ] + + puts "Origin node: $origin_node, Old origin node: $old_origin_node" + puts "Target wire: $target_wire, Old target wire: $old_target_wire" + puts "Target node: $target_node, Old target node: $old_target_node" + + dict set used_destinations "$target_wire" 1 + dict set used_destinations "$old_target_wire" 1 + + break + } + } + + set todo_map [load_todo "srcs"] + set before_div_nets [get_nets_with_todo_pip_wires "srcs" "I_BUFR" "HCLK_IOI_RCLK_BEFORE_DIV" $used_destinations] + puts "Before div nets: $before_div_nets" + dict for {net tile_wire} $before_div_nets { + set tile [lindex $tile_wire 0] + set wire [lindex $tile_wire 1] + set srcs [dict get $todo_map $wire] + set tile_type [get_property TILE_TYPE [get_tiles $tile]] + set todos {} + + set old_origin_wire [get_wires -of_objects $net -filter {TILE_NAME =~ "*HCLK_IOI*" && NAME =~ "*HCLK_IOI_RCLK_IMUX*"}] + if {$old_origin_wire == {}} { + continue + } + + puts "Rerouting net $net at $tile / $wire (type $tile_type)" + puts "Previous target wire: $old_origin_wire" + + set old_origin_node [get_nodes -of_objects $old_origin_wire] + if [regexp "HCLK_IOI_RCLK_IMUX.*" $old_origin_wire match group] { + set old_target_side $group + } + foreach src $srcs { + set src_tile_type [lindex $src 0] + if {$src_tile_type != $tile_type} { + continue + } + + set src_wire [lindex $src 1] + + set is_gclk_net 0 + if [regexp "HCLK_IOI_RCLK_IMUX.*" $src_wire match group] { + set is_gclk_net 1 + } + + if {$is_gclk_net == 0} { + continue + } + + lappend todos $src_wire + } + + set todos_length [llength $todos] + if {$todos_length == 0} { + continue + } + + puts "All todos for $tile_type / $wire" + foreach src_wire $todos { + puts " - $src_wire" + } + + set todos [shuffle_list $todos] + + set target_node [get_nodes -of_objects [get_site_pins -filter {DIRECTION == IN} -of_objects $net]] + puts "Target node: $target_node" + route_design -unroute -nets $net + + # Find an output in the todo list that can drive. + foreach src_wire $todos { + if { [dict exists $used_destinations "$tile/$src_wire"] } { + puts "Not routing to $tile / $src_wire, in use." + continue + } + + set origin_wire [get_wires "$tile/$src_wire"] + set origin_node [get_nodes -of_objects $origin_wire] + if {[llength $origin_node] == 0} { + error "Failed to find node for $tile/$src_wire." + } + + set old_net [get_nets -of_objects $origin_node -quiet] + if {$old_net != {}} { + puts "Unrouting the old net: $old_net" + route_design -unroute -nets $old_net + } + + # Route the net through the desired node + puts "Attempting to route to $src_wire for net $net." + route_via $net [list $origin_node] + + puts "Target node: $target_node" + puts "Origin wire: $origin_wire, Old origin wire: $old_origin_wire" + puts "Origin node: $origin_node, Old origin node: $old_origin_node" + + dict set used_destinations "$origin_wire" 1 + + break + } + } +} + +proc run {} { + create_project -force -part $::env(XRAY_PART) design design + read_verilog top.v + synth_design -top top + + set_property CFGBVS VCCO [current_design] + set_property CONFIG_VOLTAGE 3.3 [current_design] + set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] + set_property IS_ENABLED 0 [get_drc_checks {PDRC-29}] + set_property IS_ENABLED 0 [get_drc_checks {PDRC-38}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-13}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-123}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-161}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-1575}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-1684}] + set_property IS_ENABLED 0 [get_drc_checks {REQP-1712}] + set_property IS_ENABLED 0 [get_drc_checks {AVAL-50}] + set_property IS_ENABLED 0 [get_drc_checks {AVAL-78}] + set_property IS_ENABLED 0 [get_drc_checks {AVAL-81}] + + + set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets] + + place_design + route_design + route_todo + route_design + + + write_checkpoint -force design.dcp + write_bitstream -force design.bit + write_pip_txtdata design.txt +} + +run diff --git a/fuzzers/047-hclk-ioi18-pips/hclk_ioi_pip_list.tcl b/fuzzers/047-hclk-ioi18-pips/hclk_ioi_pip_list.tcl new file mode 100644 index 000000000..f71fe1d8c --- /dev/null +++ b/fuzzers/047-hclk-ioi18-pips/hclk_ioi_pip_list.tcl @@ -0,0 +1,49 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +proc print_tile_pips {tile_type filename} { + set fp [open $filename w] + set pips [dict create] + foreach tile [get_tiles -filter "TYPE == $tile_type"] { + puts "Dumping PIPs for tile $tile ($tile_type) to $filename." + foreach pip [lsort [get_pips -of_objects $tile]] { + set src [get_wires -uphill -of_objects $pip] + set dst [get_wires -downhill -of_objects $pip] + + # Skip pips with disconnected nodes + set src_node [get_nodes -of_objects $src] + if { $src_node == {} } { + continue + } + + set dst_node [get_nodes -of_objects $dst] + if { $dst_node == {} } { + continue + } + + set dst_wire [regsub {.*/} $dst ""] + set dst_match [regexp {HCLK_IOI_CK_IGCLK[0-9]+} $dst_wire] + + if {[llength [get_nodes -uphill -of_objects $dst_node]] > 1 || $dst_match} { + set pip_string "$tile_type.[regsub {.*/} $dst ""].[regsub {.*/} $src ""]" + if ![dict exists $pips $pip_string] { + puts $fp $pip_string + dict set pips $pip_string 1 + } + } else { + puts "Ignoring PIP: $pip" + } + } + } + close $fp +} + +create_project -force -part $::env(XRAY_PART) design design +set_property design_mode PinPlanning [current_fileset] +open_io_design -name io_1 + +print_tile_pips HCLK_IOI hclk_ioi.txt diff --git a/fuzzers/047-hclk-ioi18-pips/output_cmt.tcl b/fuzzers/047-hclk-ioi18-pips/output_cmt.tcl new file mode 100644 index 000000000..40034830e --- /dev/null +++ b/fuzzers/047-hclk-ioi18-pips/output_cmt.tcl @@ -0,0 +1,18 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +create_project -force -part $::env(XRAY_PART) design design +set_property design_mode PinPlanning [current_fileset] +open_io_design -name io_1 + +set fp [open "cmt_regions.csv" "w"] +foreach site_type {MMCME2_ADV PLLE2_ADV BUFHCE IOB18M BUFR BUFMRCE BUFIO ILOGICE2 IDELAYCTRL} { + foreach site [get_sites -filter "SITE_TYPE == $site_type"] { + puts $fp "$site,[get_property CLOCK_REGION $site]" + } +} +close $fp diff --git a/fuzzers/047-hclk-ioi18-pips/top.py b/fuzzers/047-hclk-ioi18-pips/top.py new file mode 100644 index 000000000..b00925b53 --- /dev/null +++ b/fuzzers/047-hclk-ioi18-pips/top.py @@ -0,0 +1,479 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +""" Emits top.v's for various BUFHCE routing inputs. """ +import os +import random +random.seed(int(os.getenv("SEED"), 16)) +from prjxray import util +from prjxray.lut_maker import LutMaker +from prjxray.db import Database +from io import StringIO + +CMT_XY_FUN = util.create_xy_fun(prefix='') + + +def read_site_to_cmt(): + """ Yields clock sources and which CMT they route within. """ + with open(os.path.join(os.getenv('FUZDIR'), 'build', + 'cmt_regions.csv')) as f: + for l in f: + site, cmt = l.strip().split(',') + yield (site, cmt) + + +class ClockSources(object): + """ Class for tracking clock sources. + """ + + def __init__(self, limit=14): + self.sources = {} + self.source_to_cmt = {} + self.used_sources_from_cmt = {} + self.limit = limit + + def add_clock_source(self, source, cmt): + """ Adds a source from a specific CMT. + + cmt='ANY' indicates that this source can be routed to any CMT. + """ + if cmt not in self.sources: + self.sources[cmt] = [] + + self.sources[cmt].append(source) + self.source_to_cmt[source] = cmt + + def get_random_source(self, cmt, no_repeats=False): + """ Get a random source that is routable to the specific CMT. + + get_random_source will return a source that is either cmt='ANY', + cmt equal to the input CMT, or the adjecent CMT. + + """ + + choices = [] + + if cmt in self.sources: + choices.extend(self.sources[cmt]) + + random.shuffle(choices) + for source in choices: + + source_cmt = self.source_to_cmt[source] + + if source_cmt not in self.used_sources_from_cmt: + self.used_sources_from_cmt[source_cmt] = set() + + if no_repeats and source in self.used_sources_from_cmt[source_cmt]: + continue + + if len(self.used_sources_from_cmt[source_cmt]) >= self.limit: + continue + + self.used_sources_from_cmt[source_cmt].add(source) + return source + + return None + + +def main(): + """ + HCLK_IOI has the following inputs: + + 12 (east) BUFH from the right side of the HROW + 12 (west) Bounce PIPs from one BUFH to any of 6 GCLK_BOT and 6 GCLK_TOP + 4 (east) PHSR_PERFCLK (IOCLK_PLL) from HCLK_CLB to input of BUFIO + 8 (4 north and 4 south) BUFR CLR and CE + 2 (south) I2IOCLK to input of BUFR + 2 (north) I2IOCLK to input of BUFR + 2 RCLK IMUX (IMUX0 and IMUX1) choosing input of BUFR + + outputs: + 4 (east) BUFRCLK - from BUFR to HROW + 4 (north) BUFR2IO - from BUFR + 4 (north) IOCLK from BUFIO + + """ + + global_clock_sources = ClockSources() + cmt_clock_sources = ClockSources() + cmt_fast_clock_sources = ClockSources(4) + bufr_clock_sources = ClockSources() + bufio_clock_sources = ClockSources() + site_to_cmt = dict(read_site_to_cmt()) + clock_region_limit = dict() + clock_region_serdes_location = dict() + + db = Database(util.get_db_root(), util.get_part()) + grid = db.grid() + + def gen_sites(desired_site_type): + for tile_name in sorted(grid.tiles()): + loc = grid.loc_of_tilename(tile_name) + gridinfo = grid.gridinfo_at_loc(loc) + for site, site_type in gridinfo.sites.items(): + if site_type == desired_site_type: + yield tile_name, site + + def serdes_relative_location(tile, site): + (serdes_loc_x, serdes_loc_y) = grid.loc_of_tilename(tile) + serdes_clk_reg = site_to_cmt[site] + for tile_name in sorted(grid.tiles()): + if 'HCLK_IOI' in tile_name: + (hclk_tile_loc_x, + hclk_tile_loc_y) = grid.loc_of_tilename(tile_name) + if hclk_tile_loc_x == serdes_loc_x: + gridinfo = grid.gridinfo_at_loc( + (hclk_tile_loc_x, hclk_tile_loc_y)) + random_site = next(iter(gridinfo.sites.keys())) + hclk_clk_reg = site_to_cmt[random_site] + if hclk_clk_reg == serdes_clk_reg: + if serdes_loc_y < hclk_tile_loc_y: + return "TOP" + elif serdes_loc_y > hclk_tile_loc_y: + return "BOTTOM" + else: + assert False + + clock_region_sites = set() + + def get_clock_region_site(site_type, clk_reg): + for site_name, reg in site_to_cmt.items(): + if site_name.startswith(site_type) and reg in clk_reg: + if site_name not in clock_region_sites: + clock_region_sites.add(site_name) + return site_name + + print( + ''' +module top(); + (* KEEP, DONT_TOUCH *) + LUT6 dummy(); + ''') + + luts = LutMaker() + bufs = StringIO() + + for _, site in gen_sites('MMCME2_ADV'): + mmcm_clocks = [ + 'mmcm_clock_{site}_{idx}'.format(site=site, idx=idx) + for idx in range(13) + ] + + for idx, clk in enumerate(mmcm_clocks): + if idx < 4: + cmt_fast_clock_sources.add_clock_source(clk, site_to_cmt[site]) + else: + cmt_clock_sources.add_clock_source(clk, site_to_cmt[site]) + + print( + """ + wire cin1_{site}, cin2_{site}, clkfbin_{site}, {c0}, {c1}, {c2}, {c3}, {c4}, {c5}; + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + MMCME2_ADV pll_{site} ( + .CLKIN1(cin1_{site}), + .CLKIN2(cin2_{site}), + .CLKFBIN(clkfbin_{site}), + .CLKOUT0({c0}), + .CLKOUT0B({c4}), + .CLKOUT1({c1}), + .CLKOUT1B({c5}), + .CLKOUT2({c2}), + .CLKOUT2B({c6}), + .CLKOUT3({c3}), + .CLKOUT3B({c7}), + .CLKOUT4({c8}), + .CLKOUT5({c9}), + .CLKOUT6({c10}), + .CLKFBOUT({c11}), + .CLKFBOUTB({c12}) + ); + """.format( + site=site, + c0=mmcm_clocks[0], + c1=mmcm_clocks[1], + c2=mmcm_clocks[2], + c3=mmcm_clocks[3], + c4=mmcm_clocks[4], + c5=mmcm_clocks[5], + c6=mmcm_clocks[6], + c7=mmcm_clocks[7], + c8=mmcm_clocks[8], + c9=mmcm_clocks[9], + c10=mmcm_clocks[10], + c11=mmcm_clocks[11], + c12=mmcm_clocks[12], + )) + + for _, site in gen_sites('PLLE2_ADV'): + pll_clocks = [ + 'pll_clock_{site}_{idx}'.format(site=site, idx=idx) + for idx in range(7) + ] + + for clk in pll_clocks: + cmt_clock_sources.add_clock_source(clk, site_to_cmt[site]) + + print( + """ + wire cin1_{site}, cin2_{site}, clkfbin_{site}, {c0}, {c1}, {c2}, {c3}, {c4}, {c5}, {c6}; + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + PLLE2_ADV pll_{site} ( + .CLKIN1(cin1_{site}), + .CLKIN2(cin2_{site}), + .CLKFBIN(clkfbin_{site}), + .CLKOUT0({c0}), + .CLKOUT1({c1}), + .CLKOUT2({c2}), + .CLKOUT3({c3}), + .CLKOUT4({c4}), + .CLKOUT5({c5}), + .CLKFBOUT({c6}) + ); + """.format( + site=site, + c0=pll_clocks[0], + c1=pll_clocks[1], + c2=pll_clocks[2], + c3=pll_clocks[3], + c4=pll_clocks[4], + c5=pll_clocks[5], + c6=pll_clocks[6], + )) + + for tile_name, site in gen_sites('BUFHCE'): + print( + """ + wire I_{site}; + wire O_{site}; + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + BUFHCE buf_{site} ( + .I(I_{site}), + .O(O_{site}) + );""".format(site=site), + file=bufs) + global_clock_sources.add_clock_source( + 'O_{site}'.format(site=site), site_to_cmt[site]) + + hclks_used_by_clock_region = {} + for cmt in site_to_cmt.values(): + hclks_used_by_clock_region[cmt] = set() + + def check_hclk_src(src, src_cmt): + if len(hclks_used_by_clock_region[src_cmt] + ) >= 12 and src not in hclks_used_by_clock_region[src_cmt]: + return None + else: + hclks_used_by_clock_region[src_cmt].add(src) + return src + + cmt_clks_used_by_clock_region = {} + for cmt in site_to_cmt.values(): + cmt_clks_used_by_clock_region[cmt] = list() + + def check_cmt_clk_src(src, src_clock_region): + print( + "//src: {}, clk_reg: {}, len {}".format( + src, src_clock_region, + len(cmt_clks_used_by_clock_region[src_clock_region]))) + if len(cmt_clks_used_by_clock_region[src_clock_region]) >= 4: + return None + else: + cmt_clks_used_by_clock_region[src_clock_region].append(src) + return src + + #Add IDELAYCTRL + idelayctrl_in_clock_region = {} + for cmt in site_to_cmt.values(): + idelayctrl_in_clock_region[cmt] = False + for _, site in gen_sites('IDELAYCTRL'): + if random.random() < 0.5: + wire_name = global_clock_sources.get_random_source( + site_to_cmt[site], no_repeats=False) + if wire_name is None: + continue + src_cmt = global_clock_sources.source_to_cmt[wire_name] + wire_name = check_hclk_src(wire_name, src_cmt) + + if wire_name is None: + continue + idelayctrl_in_clock_region[src_cmt] = True + print( + """ + assign I_{site} = {clock_source}; + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + IDELAYCTRL idelay_ctrl_{site} ( + .RDY(), + .REFCLK(I_{site}), + .RST() + );""".format(site=site, clock_source=wire_name)) + + # Add SERDES driven by BUFH or MMCM + for tile, site in gen_sites('ILOGICE2'): + wire_name = None + clock_region = site_to_cmt[site] + if clock_region not in clock_region_limit: + # Select serdes limit and relative location per clock region + serdes_location = random.choice(["TOP", "BOTTOM", "ANY"]) + if serdes_location in "ANY": + #We want TOP and BOTTOM IGCLK PIPs occupied but leave one slot for IDELAYCTRL + if idelayctrl_in_clock_region[clock_region]: + clock_region_limit[clock_region] = 0 if random.random( + ) < 0.2 else 11 + else: + clock_region_limit[clock_region] = 0 if random.random( + ) < 0.2 else 12 + else: + if idelayctrl_in_clock_region[clock_region]: + clock_region_limit[clock_region] = 0 if random.random( + ) < 0.2 else 5 + else: + clock_region_limit[clock_region] = 0 if random.random( + ) < 0.2 else 6 + + clock_region_serdes_location[clock_region] = serdes_location + + # We reached the limit of hclks in this clock region + if clock_region_limit[clock_region] == 0: + continue + + # Add a serdes if it's located at the correct side from the HCLK_IOI tile + if clock_region_serdes_location[clock_region] not in "ANY" and \ + serdes_relative_location(tile, site) != clock_region_serdes_location[clock_region]: + continue + if random.random() > 0.3: + wire_name = global_clock_sources.get_random_source( + site_to_cmt[site], no_repeats=True) + if wire_name is None: + continue + src_cmt = global_clock_sources.source_to_cmt[wire_name] + wire_name = check_hclk_src(wire_name, src_cmt) + if wire_name is None: + print("//wire is None") + continue + clock_region_limit[clock_region] -= 1 + print( + """ + assign serdes_clk_{site} = {clock_source};""".format( + site=site, clock_source=wire_name)) + else: + wire_name = cmt_fast_clock_sources.get_random_source( + site_to_cmt[site], no_repeats=False) + if wire_name is None: + continue + src_cmt = cmt_fast_clock_sources.source_to_cmt[wire_name] + wire_name = check_cmt_clk_src(wire_name, src_cmt) + if wire_name is None: + continue + bufio_site = get_clock_region_site("BUFIO", clock_region) + if bufio_site is None: + continue + print( + """ + assign serdes_clk_{serdes_loc} = O_{site}; + assign I_{site} = {clock_source}; + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + BUFIO bufio_{site} ( + .O(O_{site}), + .I(I_{site}) + );""".format(site=bufio_site, clock_source=wire_name, serdes_loc=site)) + + print( + "// clock_region: {} {}".format( + clock_region, clock_region_serdes_location[clock_region])) + print( + """ + (* KEEP, DONT_TOUCH, LOC = "{loc}" *) + ISERDESE2 #( + .DATA_RATE("SDR"), + .DATA_WIDTH(4), + .DYN_CLKDIV_INV_EN("FALSE"), + .DYN_CLK_INV_EN("FALSE"), + .INIT_Q1(1'b0), + .INIT_Q2(1'b0), + .INIT_Q3(1'b0), + .INIT_Q4(1'b0), + .INTERFACE_TYPE("OVERSAMPLE"), + .IOBDELAY("NONE"), + .NUM_CE(2), + .OFB_USED("FALSE"), + .SERDES_MODE("MASTER"), + .SRVAL_Q1(1'b0), + .SRVAL_Q2(1'b0), + .SRVAL_Q3(1'b0), + .SRVAL_Q4(1'b0) + ) + ISERDESE2_inst_{loc} ( + .CLK(serdes_clk_{loc}), + .CLKB(), + .CLKDIV(), + .D(1'b0), + .DDLY(), + .OFB(), + .OCLKB(), + .RST(), + .SHIFTIN1(), + .SHIFTIN2() + ); + """.format(loc=site, clock_source=wire_name)) + + # BUFRs + for _, site in gen_sites('BUFR'): + if random.random() < 0.5: + if random.random() < 0.5: + wire_name = luts.get_next_output_net() + else: + wire_name = cmt_fast_clock_sources.get_random_source( + site_to_cmt[site], no_repeats=False) + if wire_name is None: + continue + src_cmt = cmt_fast_clock_sources.source_to_cmt[wire_name] + wire_name = check_cmt_clk_src(wire_name, src_cmt) + if wire_name is None: + continue + bufr_clock_sources.add_clock_source( + 'O_{site}'.format(site=site), site_to_cmt[site]) + + # Add DIVIDE + divide = "BYPASS" + if random.random() < 0.8: + divide = "{}".format(random.randint(2, 8)) + + print( + """ + assign I_{site} = {clock_source}; + (* KEEP, DONT_TOUCH, LOC = "{site}" *) + BUFR #(.BUFR_DIVIDE("{divide}")) bufr_{site} ( + .O(O_{site}), + .I(I_{site}) + );""".format(site=site, clock_source=wire_name, divide=divide), + file=bufs) + + for _, site in gen_sites('MMCME2_ADV'): + wire_name = bufr_clock_sources.get_random_source( + site_to_cmt[site], no_repeats=True) + + if wire_name is None: + continue + print( + """ + assign cin1_{site} = {wire_name};""".format( + site=site, wire_name=wire_name)) + + print(bufs.getvalue()) + + for l in luts.create_wires_and_luts(): + print(l) + + print("endmodule") + + +if __name__ == '__main__': + main() diff --git a/fuzzers/071-ppips/generate.tcl b/fuzzers/071-ppips/generate.tcl index 94be82f34..a42438010 100644 --- a/fuzzers/071-ppips/generate.tcl +++ b/fuzzers/071-ppips/generate.tcl @@ -322,7 +322,7 @@ foreach tile_type {HCLK_IOI3} { } foreach tile_type {RIOI3 LIOI3 LIOI3_TBYTETERM RIOI3_TBYTETERM \ - LIOI3_TBYTESRC RIOI3_TBYTESRC LIOI3_SING RIOI3_SING} { + LIOI3_TBYTESRC RIOI3_TBYTESRC LIOI3_SING RIOI3_SING RIOI RIOI_SING RIOI_TBYTESRC RIOI_TBYTETERM} { set tiles [get_tiles -filter "TILE_TYPE == $tile_type"] if {[llength $tiles] != 0} { set tile [lindex $tiles 0] @@ -392,7 +392,7 @@ foreach tile_type {PCIE_INT_INTERFACE_L PCIE_INT_INTERFACE_R} { } } -foreach tile_type {RIOB33 LIOB33 RIOB33_SING LIOB33_SING} { +foreach tile_type {RIOB33 LIOB33 RIOB33_SING LIOB33_SING RIOB18 RIOB18_SING} { set tiles [get_tiles -filter "TILE_TYPE == $tile_type"] if {[llength $tiles] != 0} { set tile [lindex $tiles 0] diff --git a/fuzzers/Makefile b/fuzzers/Makefile index ee43c9535..94a109491 100644 --- a/fuzzers/Makefile +++ b/fuzzers/Makefile @@ -113,6 +113,9 @@ $(eval $(call fuzzer,027-bram36-config,005-tilegrid,all)) $(eval $(call fuzzer,028-fifo-config,005-tilegrid,all)) $(eval $(call fuzzer,029-bram-fifo-config,005-tilegrid,all)) $(eval $(call fuzzer,030-iob,005-tilegrid,all)) +ifeq ($(XRAY_DATABASE),kintex7) +$(eval $(call fuzzer,030-iob18,005-tilegrid,all)) +endif $(eval $(call fuzzer,031-cmt-mmcm,005-tilegrid,all)) $(eval $(call fuzzer,032-cmt-pll,005-tilegrid,all)) $(eval $(call fuzzer,034-cmt-pll-pips,005-tilegrid 071-ppips,all)) @@ -123,9 +126,18 @@ $(eval $(call fuzzer,034b-cmt-mmcm-pips,005-tilegrid 071-ppips,all)) endif $(eval $(call fuzzer,035-iob-ilogic,005-tilegrid,all)) $(eval $(call fuzzer,035a-iob-idelay,005-tilegrid,all)) +ifeq ($(XRAY_DATABASE),kintex7) +$(eval $(call fuzzer,035a-iob18-idelay,005-tilegrid,all)) +endif $(eval $(call fuzzer,035b-iob-iserdes,005-tilegrid,all)) $(eval $(call fuzzer,036-iob-ologic,005-tilegrid,all)) +ifeq ($(XRAY_DATABASE),kintex7) +$(eval $(call fuzzer,036-iob18-ologic,005-tilegrid,all)) +endif $(eval $(call fuzzer,037-iob-pips,005-tilegrid 035b-iob-iserdes,all)) +ifeq ($(XRAY_DATABASE),kintex7) +$(eval $(call fuzzer,037-iob18-pips,005-tilegrid 035b-iob-iserdes,all)) +endif $(eval $(call fuzzer,038-cfg,005-tilegrid,all)) $(eval $(call fuzzer,039-hclk-config,005-tilegrid,all)) $(eval $(call fuzzer,040-clk-hrow-config,005-tilegrid,all)) @@ -136,6 +148,9 @@ $(eval $(call fuzzer,044-clk-bufg-pips,046-clk-bufg-muxed-pips,all)) $(eval $(call fuzzer,045-hclk-cmt-pips,005-tilegrid,all)) $(eval $(call fuzzer,046-clk-bufg-muxed-pips,005-tilegrid,all)) $(eval $(call fuzzer,047-hclk-ioi-pips,005-tilegrid,all)) +ifeq ($(XRAY_DATABASE),kintex7) +$(eval $(call fuzzer,047-hclk-ioi18-pips,005-tilegrid,all)) +endif $(eval $(call fuzzer,047a-hclk-idelayctrl-pips,047-hclk-ioi-pips,all)) $(eval $(call fuzzer,048-int-piplist,005-tilegrid,all)) $(eval $(call fuzzer,049-int-imux-gfan,048-int-piplist,all)) diff --git a/prjxray/segmaker.py b/prjxray/segmaker.py index 542fcc853..c362bef1d 100644 --- a/prjxray/segmaker.py +++ b/prjxray/segmaker.py @@ -359,6 +359,8 @@ def name_default(): -CLK_HROW_TOP_R => CLK_HROW -LIOB33 => IOB33 -LIOI3 => IOI3 + -RIOB18 => IOB18 + -RIOI => IOI ''' tile_type_norm = re.sub("(_TOP|_BOT|LL|LM)?_[LR]$", "", tile_type) tile_type_norm = re.sub( @@ -366,13 +368,20 @@ def name_default(): if tile_type_norm in ['LIOB33', 'RIOB33']: tile_type_norm = 'IOB33' - + if tile_type_norm in ['LIOB18', 'RIOB18']: + tile_type_norm = 'IOB18' if tile_type_norm in ['LIOI3', 'RIOI3']: tile_type_norm = 'IOI3' + if tile_type_norm in ['LIOI', 'RIOI']: + tile_type_norm = 'IOI' if tile_type_norm in ['LIOI3_TBYTESRC', 'RIOI3_TBYTESRC']: tile_type_norm = 'IOI3' if tile_type_norm in ['LIOI3_TBYTETERM', 'RIOI3_TBYTETERM']: tile_type_norm = 'IOI3' + if tile_type_norm in ['LIOI_TBYTESRC', 'RIOI_TBYTESRC']: + tile_type_norm = 'IOI' + if tile_type_norm in ['LIOI_TBYTETERM', 'RIOI_TBYTETERM']: + tile_type_norm = 'IOI' if tile_type_norm in ['CMT_TOP_L_LOWER_B', 'CMT_TOP_R_LOWER_B']: tile_type_norm = 'CMT_LOWER_B' if 'GTP_CHANNEL' in tile_type_norm: diff --git a/prjxray/util.py b/prjxray/util.py index bb2efb065..615bf726f 100644 --- a/prjxray/util.py +++ b/prjxray/util.py @@ -86,8 +86,8 @@ def get_fabric(): def get_part_information(db_root, part): filename = os.path.join(db_root, "mapping", "parts.yaml") assert os.path.isfile(filename), \ - "Mapping file {} does not exists".format(filename) - with OpenSafeFile(filename, 'r') as stream: + "Mapping file {} does not exist".format(filename) + with open(filename, 'r') as stream: part_mapping = yaml.load(stream, Loader=yaml.FullLoader) part = part_mapping.get(part, None) assert part, "Part {} not found in {}".format(part, part_mapping) @@ -99,14 +99,14 @@ def set_part_information(db_root, information): with OpenSafeFile(filename, 'w+') as stream: yaml.dump(information, stream) assert os.path.isfile(filename), \ - "Mapping file {} does not exists".format(filename) + "Mapping file {} does not exist".format(filename) def get_part_resources(file_path, part): filename = os.path.join(file_path, "resources.yaml") assert os.path.isfile(filename), \ - "Mapping file {} does not exists".format(filename) - with OpenSafeFile(filename, 'r') as stream: + "Mapping file {} does not exist".format(filename) + with open(filename, 'r') as stream: res_mapping = yaml.load(stream, Loader=yaml.FullLoader) res = res_mapping.get(part, None) assert res, "Part {} not found in {}".format(part, part_mapping) @@ -118,13 +118,13 @@ def set_part_resources(file_path, information): with OpenSafeFile(filename, 'w+') as stream: yaml.dump(information, stream) assert os.path.isfile(filename), \ - "Mapping file {} does not exists".format(filename) + "Mapping file {} does not exist".format(filename) def get_fabric_for_part(db_root, part): filename = os.path.join(db_root, "mapping", "devices.yaml") assert os.path.isfile(filename), \ - "Mapping file {} does not exists".format(filename) + "Mapping file {} does not exist".format(filename) part = get_part_information(db_root, part) with OpenSafeFile(filename, 'r') as stream: device_mapping = yaml.load(stream, Loader=yaml.FullLoader) @@ -137,8 +137,8 @@ def get_fabric_for_part(db_root, part): def get_devices(db_root): filename = os.path.join(db_root, "mapping", "devices.yaml") assert os.path.isfile(filename), \ - "Mapping file {} does not exists".format(filename) - with OpenSafeFile(filename, 'r') as stream: + "Mapping file {} does not exist".format(filename) + with open(filename, 'r') as stream: device_mapping = yaml.load(stream, Loader=yaml.FullLoader) return device_mapping @@ -146,8 +146,8 @@ def get_devices(db_root): def get_parts(db_root): filename = os.path.join(db_root, "mapping", "parts.yaml") assert os.path.isfile(filename), \ - "Mapping file {} does not exists".format(filename) - with OpenSafeFile(filename, 'r') as stream: + "Mapping file {} does not exist".format(filename) + with open(filename, 'r') as stream: part_mapping = yaml.load(stream, Loader=yaml.FullLoader) return part_mapping diff --git a/settings/kintex7.sh b/settings/kintex7.sh index 85a705ed3..9f41893c9 100644 --- a/settings/kintex7.sh +++ b/settings/kintex7.sh @@ -10,17 +10,17 @@ export XRAY_PART="xc7k70tfbg676-2" export XRAY_ROI_FRAMES="0x00000000:0xffffffff" # FIXME: make entire part -export XRAY_ROI_TILEGRID="SLICE_X0Y50:SLICE_X19Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y20:RAMB18_X0Y39 RAMB36_X0Y10:RAMB36_X0Y19" +export XRAY_ROI_TILEGRID="SLICE_X0Y50:SLICE_X19Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y0:RAMB18_X3Y39 RAMB36_X0Y0:RAMB36_X3Y19" export XRAY_EXCLUDE_ROI_TILEGRID="" -export XRAY_IOI3_TILES="LIOI3_X0Y9" +export XRAY_IOI3_TILES="LIOI3_X0Y9 RIOI_X43Y9" # These settings must remain in sync -export XRAY_ROI="SLICE_X0Y50:SLICE_X19Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y20:RAMB18_X0Y39 RAMB36_X0Y10:RAMB36_X0Y19 IOB_X0Y50:IOB_X0Y99" +export XRAY_ROI="SLICE_X0Y50:SLICE_X19Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y0:RAMB18_X3Y39 RAMB36_X0Y0:RAMB36_X3Y19 IOB_X0Y50:IOB_X0Y99 IOB_X1Y50:IOB_X1Y99" # Part of CMT X0Y1 export XRAY_ROI_GRID_X1="0" -export XRAY_ROI_GRID_X2="38" +export XRAY_ROI_GRID_X2="116" # Include VBRK / VTERM export XRAY_ROI_GRID_Y1="104" export XRAY_ROI_GRID_Y2="156" diff --git a/tools/segmatch.cc b/tools/segmatch.cc index 1af59cdd2..d62cc27b0 100644 --- a/tools/segmatch.cc +++ b/tools/segmatch.cc @@ -255,7 +255,7 @@ int main(int argc, char** argv) { read_input(f, argv[optind]); } } else { - printf("Reading from stding.\n"); + printf("Reading from stdin...\n"); read_input(std::cin, "stdin"); } diff --git a/utils/mergedb.sh b/utils/mergedb.sh index 98383d4e0..eae4c6d6b 100755 --- a/utils/mergedb.sh +++ b/utils/mergedb.sh @@ -121,6 +121,9 @@ case "$1" in riob33) sed < "$2" > "$tmp1" -e 's/^IOB33\./RIOB33./' ;; + riob18) + sed < "$2" > "$tmp1" -e 's/^IOB18\./RIOB18./' ;; + lioi3) sed < "$2" > "$tmp1" -e 's/^IOI3\./LIOI3./' ;; @@ -133,12 +136,21 @@ case "$1" in rioi3) sed < "$2" > "$tmp1" -e 's/^IOI3\./RIOI3./' ;; + rioi) + sed < "$2" > "$tmp1" -e 's/^IOI\./RIOI./' ;; + rioi3_tbytesrc) sed < "$2" > "$tmp1" -e 's/^IOI3\./RIOI3_TBYTESRC./' ;; + rioi_tbytesrc) + sed < "$2" > "$tmp1" -e 's/^IOI\./RIOI_TBYTESRC./' ;; + rioi3_tbyteterm) sed < "$2" > "$tmp1" -e 's/^IOI3\./RIOI3_TBYTETERM./' ;; + rioi_tbyteterm) + sed < "$2" > "$tmp1" -e 's/^IOI\./RIOI_TBYTETERM./' ;; + cmt_top_r_upper_t) sed < "$2" > "$tmp1" -e 's/^CMT_UPPER_T\./CMT_TOP_R_UPPER_T./' ;; @@ -157,6 +169,9 @@ case "$1" in hclk_ioi3) cp "$2" "$tmp1" ;; + hclk_ioi) + cp "$2" "$tmp1" ;; + pcie_bot) cp "$2" "$tmp1" ;; From afee5d042d6c0ae36b7c3fa5337ad4bebd364116 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Wed, 9 Nov 2022 10:10:21 +0700 Subject: [PATCH 072/250] 039-hclk-config: fix makefile Signed-off-by: Hans Baier --- fuzzers/039-hclk-config/Makefile | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/fuzzers/039-hclk-config/Makefile b/fuzzers/039-hclk-config/Makefile index 38b2b2412..4828018f4 100644 --- a/fuzzers/039-hclk-config/Makefile +++ b/fuzzers/039-hclk-config/Makefile @@ -9,7 +9,11 @@ N ?= 50 include ../fuzzer.mk +ifeq ($(XRAY_DATABASE),kintex7) database: build/segbits_hclk_ioi.db +else +database: build/segbits_hclk_ioi3.db +endif build/segbits_hclk_ioi3.rdb: $(SPECIMENS_OK) ${XRAY_SEGMATCH} -c 5 -o build/segbits_hclk_ioi3.rdb \ @@ -24,14 +28,18 @@ build/segbits_hclk_ioi3.db: build/segbits_hclk_ioi3.rdb # The fuzzer results for the high performance banks # are identical, so just copy those -build/segbits_hclk_ioi.db: build/segbits_hclk_ioi3.db build/mask_hclk_ioi3.db +ifeq ($(XRAY_DATABASE),kintex7) +build/segbits_hclk_ioi.db: build/segbits_hclk_ioi3.db sed -e 's/HCLK_IOI3/HCLK_IOI/g' $< > $@ cp build/mask_hclk_ioi3.db build/mask_hclk_ioi.db +endif pushdb: database ${XRAY_MERGEDB} hclk_ioi3 build/segbits_hclk_ioi3.db ${XRAY_MERGEDB} mask_hclk_ioi3 build/mask_hclk_ioi3.db +ifeq ($(XRAY_DATABASE),kintex7) ${XRAY_MERGEDB} hclk_ioi build/segbits_hclk_ioi.db ${XRAY_MERGEDB} mask_hclk_ioi build/mask_hclk_ioi.db +endif .PHONY: database pushdb From ed42005d457fcecfd4a968cc5c8b890fe1954856 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Fri, 11 Nov 2022 12:02:33 +0700 Subject: [PATCH 073/250] Fix ROI settings/kintex7.sh for fuzzer 018-clb-ram Signed-off-by: Hans Baier --- settings/kintex7.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/kintex7.sh b/settings/kintex7.sh index 9f41893c9..38b9bf74e 100644 --- a/settings/kintex7.sh +++ b/settings/kintex7.sh @@ -17,7 +17,7 @@ export XRAY_EXCLUDE_ROI_TILEGRID="" export XRAY_IOI3_TILES="LIOI3_X0Y9 RIOI_X43Y9" # These settings must remain in sync -export XRAY_ROI="SLICE_X0Y50:SLICE_X19Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y0:RAMB18_X3Y39 RAMB36_X0Y0:RAMB36_X3Y19 IOB_X0Y50:IOB_X0Y99 IOB_X1Y50:IOB_X1Y99" +export XRAY_ROI="SLICE_X0Y50:SLICE_X61Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y20:RAMB18_X3Y39 RAMB36_X0Y10:RAMB36_X3Y19 IOB_X0Y50:IOB_X0Y99 IOB_X1Y50:IOB_X1Y99" # Part of CMT X0Y1 export XRAY_ROI_GRID_X1="0" export XRAY_ROI_GRID_X2="116" From 76c31111d9614078b3550aa25b8e8135c89497ef Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Mon, 14 Nov 2022 17:51:06 +0700 Subject: [PATCH 074/250] increase timeout to 10 hours, because kintex needs more Signed-off-by: Hans Baier --- .github/workflows/Pipeline.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index e45a4c98b..f9cd4bc26 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -13,6 +13,7 @@ jobs: container: ubuntu:focal runs-on: [self-hosted, Linux, X64] + timeout-minutes: 600 strategy: fail-fast: false From d904a4929286fc6ceec17caf7b9ff3430ac47557 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Wed, 16 Nov 2022 05:19:41 +0700 Subject: [PATCH 075/250] settings/kintex7.sh: revert to master ROI settings (except IO), to see where it fails Signed-off-by: Hans Baier --- settings/kintex7.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/kintex7.sh b/settings/kintex7.sh index 38b9bf74e..9f41893c9 100644 --- a/settings/kintex7.sh +++ b/settings/kintex7.sh @@ -17,7 +17,7 @@ export XRAY_EXCLUDE_ROI_TILEGRID="" export XRAY_IOI3_TILES="LIOI3_X0Y9 RIOI_X43Y9" # These settings must remain in sync -export XRAY_ROI="SLICE_X0Y50:SLICE_X61Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y20:RAMB18_X3Y39 RAMB36_X0Y10:RAMB36_X3Y19 IOB_X0Y50:IOB_X0Y99 IOB_X1Y50:IOB_X1Y99" +export XRAY_ROI="SLICE_X0Y50:SLICE_X19Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y0:RAMB18_X3Y39 RAMB36_X0Y0:RAMB36_X3Y19 IOB_X0Y50:IOB_X0Y99 IOB_X1Y50:IOB_X1Y99" # Part of CMT X0Y1 export XRAY_ROI_GRID_X1="0" export XRAY_ROI_GRID_X2="116" From b9d8f1ae7995a7bb926b27705e37ce74a9e26edf Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Wed, 16 Nov 2022 10:16:46 +0700 Subject: [PATCH 076/250] addjust XRAY_ROI to exactly use one tile for 018-clb-ram Signed-off-by: Hans Baier --- settings/kintex7.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/settings/kintex7.sh b/settings/kintex7.sh index 9f41893c9..66e819986 100644 --- a/settings/kintex7.sh +++ b/settings/kintex7.sh @@ -17,10 +17,10 @@ export XRAY_EXCLUDE_ROI_TILEGRID="" export XRAY_IOI3_TILES="LIOI3_X0Y9 RIOI_X43Y9" # These settings must remain in sync -export XRAY_ROI="SLICE_X0Y50:SLICE_X19Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y0:RAMB18_X3Y39 RAMB36_X0Y0:RAMB36_X3Y19 IOB_X0Y50:IOB_X0Y99 IOB_X1Y50:IOB_X1Y99" -# Part of CMT X0Y1 +export XRAY_ROI="SLICE_X0Y50:SLICE_X23Y99 DSP48_X0Y20:DSP48_X0Y39 RAMB18_X0Y0:RAMB18_X3Y39 RAMB36_X0Y0:RAMB36_X3Y19 IOB_X0Y50:IOB_X0Y99 IOB_X1Y50:IOB_X1Y99" +# CMT X0Y1 export XRAY_ROI_GRID_X1="0" -export XRAY_ROI_GRID_X2="116" +export XRAY_ROI_GRID_X2="65" # Include VBRK / VTERM export XRAY_ROI_GRID_Y1="104" export XRAY_ROI_GRID_Y2="156" From 1455736120853a1a50f6f09e254af33d22d60030 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Fri, 18 Nov 2022 05:15:04 +0700 Subject: [PATCH 077/250] 037-iob18-pips: reduce the number of specimens and exclude bits we cannot solve (yet) Signed-off-by: Hans Baier --- fuzzers/037-iob18-pips/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fuzzers/037-iob18-pips/Makefile b/fuzzers/037-iob18-pips/Makefile index 284a9e00d..695567890 100644 --- a/fuzzers/037-iob18-pips/Makefile +++ b/fuzzers/037-iob18-pips/Makefile @@ -10,10 +10,10 @@ PIP_TYPE?=ioi PIPLIST_TCL=$(FUZDIR)/ioi_pip_list.tcl TODO_RE=".*" -EXCLUDE_RE=".*((PHASER)|(CLKDIVF)|(CLKDIVP)|(CLKDIVB)|(IOI_ILOGIC[01]_O)|(IOI_OLOGIC[01]_CLKB?\.)|(IOI_IMUX_RC)|(IOI_OLOGIC[01]_[OT]FB)|(OCLKM.*IMUX31)).*" +EXCLUDE_RE=".*((PHASER)|(CLKDIVF)|(CLKDIVP)|(CLKDIVB)|(IOI_ILOGIC[01]_O)|(IOI_OLOGIC[01]_CLKB?\.)|(IOI_IMUX_RC)|(IOI_OLOGIC[01]_[OT]FB)|(OCLKM.*IMUX31)|IOI_ODELAY[01]_CLKIN.IOI_OCLK_[01]|RIOI_O[01].RIOI_ODELAY[01]_DATAOUT|RIOI_O[01].RIOI_OLOGIC[01]_OQ).*" MAKETODO_FLAGS=--pip-type ${PIP_TYPE} --seg-type $(PIP_TYPE) --re $(TODO_RE) --sides "xr" --exclude-re $(EXCLUDE_RE) -N = 120 +N = 60 SPECIMENS_DEPS=build/cmt_regions.csv From f82cc97b281b56886164d9fc991f3c41b7c5cafa Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Tue, 22 Nov 2022 03:22:04 +0700 Subject: [PATCH 078/250] fix bitfilters in 030-iob18 and 036-iob18-ologic Signed-off-by: Hans Baier --- fuzzers/030-iob18/generate.py | 6 +----- fuzzers/036-iob18-ologic/generate.py | 9 +-------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/fuzzers/030-iob18/generate.py b/fuzzers/030-iob18/generate.py index c15173892..2dd7958c9 100644 --- a/fuzzers/030-iob18/generate.py +++ b/fuzzers/030-iob18/generate.py @@ -19,11 +19,7 @@ from iostandards import * def bitfilter(frame, word): - # the fuzzers seem to find bits in frame 24 which seems - # to be used by other tile types - if frame < 30: - return False - return True + return 38 <= frame def mk_drive_opt(iostandard, drive): if drive is None: diff --git a/fuzzers/036-iob18-ologic/generate.py b/fuzzers/036-iob18-ologic/generate.py index 35b7d445d..fca2ee2f3 100644 --- a/fuzzers/036-iob18-ologic/generate.py +++ b/fuzzers/036-iob18-ologic/generate.py @@ -18,14 +18,7 @@ def bitfilter(frame, word): - # TODO: do we need this here? - # this frame number limit does not seem - # to apply to 1.8V high speed banks - #if frame < 30 or frame > 37: - # return False - - return True - + return 30 <= frame and frame <= 33 def handle_data_width(segmk, d): if 'DATA_WIDTH' not in d: From b5887e88a5bb14c67aaacbe46ebd92589a33a2f4 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Tue, 22 Nov 2022 03:52:27 +0700 Subject: [PATCH 079/250] make 037-iob18-pips run more specimens Signed-off-by: Hans Baier --- fuzzers/037-iob18-pips/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fuzzers/037-iob18-pips/Makefile b/fuzzers/037-iob18-pips/Makefile index 695567890..cf3a0d3e9 100644 --- a/fuzzers/037-iob18-pips/Makefile +++ b/fuzzers/037-iob18-pips/Makefile @@ -13,7 +13,7 @@ TODO_RE=".*" EXCLUDE_RE=".*((PHASER)|(CLKDIVF)|(CLKDIVP)|(CLKDIVB)|(IOI_ILOGIC[01]_O)|(IOI_OLOGIC[01]_CLKB?\.)|(IOI_IMUX_RC)|(IOI_OLOGIC[01]_[OT]FB)|(OCLKM.*IMUX31)|IOI_ODELAY[01]_CLKIN.IOI_OCLK_[01]|RIOI_O[01].RIOI_ODELAY[01]_DATAOUT|RIOI_O[01].RIOI_OLOGIC[01]_OQ).*" MAKETODO_FLAGS=--pip-type ${PIP_TYPE} --seg-type $(PIP_TYPE) --re $(TODO_RE) --sides "xr" --exclude-re $(EXCLUDE_RE) -N = 60 +N = 120 SPECIMENS_DEPS=build/cmt_regions.csv From f680c4fedf0305993b78e3dad0e0ec7936a9a2ae Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Tue, 22 Nov 2022 12:53:28 +0700 Subject: [PATCH 080/250] 035-iob-ilogic, 035b-iob-iserdes: make kintex specific part conditional to Kintex Signed-off-by: Hans Baier --- fuzzers/035-iob-ilogic/Makefile | 9 +++++---- fuzzers/035b-iob-iserdes/Makefile | 8 +++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/fuzzers/035-iob-ilogic/Makefile b/fuzzers/035-iob-ilogic/Makefile index bb643bb64..8ac938051 100644 --- a/fuzzers/035-iob-ilogic/Makefile +++ b/fuzzers/035-iob-ilogic/Makefile @@ -33,18 +33,19 @@ pushdb: build/segbits_rioi.db ${XRAY_MERGEDB} rioi3 build/segbits_xioi3.db ${XRAY_MERGEDB} rioi3_tbytesrc build/segbits_xioi3.db ${XRAY_MERGEDB} rioi3_tbyteterm build/segbits_xioi3.db - ${XRAY_MERGEDB} rioi build/segbits_rioi.db - ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_rioi.db - ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_rioi.db ${XRAY_MERGEDB} mask_lioi3 build/mask_xioi3.db ${XRAY_MERGEDB} mask_lioi3_tbytesrc build/mask_xioi3.db ${XRAY_MERGEDB} mask_lioi3_tbyteterm build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3 build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3_tbytesrc build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3_tbyteterm build/mask_xioi3.db +ifeq ($(XRAY_DATABASE),kintex7) + ${XRAY_MERGEDB} rioi build/segbits_rioi.db + ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_rioi.db + ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_rioi.db ${XRAY_MERGEDB} mask_rioi build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi_tbytesrc build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi_tbyteterm build/mask_xioi3.db +endif .PHONY: database pushdb - diff --git a/fuzzers/035b-iob-iserdes/Makefile b/fuzzers/035b-iob-iserdes/Makefile index 8297e97cf..a8033051c 100644 --- a/fuzzers/035b-iob-iserdes/Makefile +++ b/fuzzers/035b-iob-iserdes/Makefile @@ -34,18 +34,20 @@ pushdb: build/segbits_rioi.db ${XRAY_MERGEDB} rioi3 build/segbits_xioi3.db ${XRAY_MERGEDB} rioi3_tbytesrc build/segbits_xioi3.db ${XRAY_MERGEDB} rioi3_tbyteterm build/segbits_xioi3.db - ${XRAY_MERGEDB} rioi build/segbits_rioi.db - ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_rioi.db - ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_rioi.db ${XRAY_MERGEDB} mask_lioi3 build/mask_xioi3.db ${XRAY_MERGEDB} mask_lioi3_tbytesrc build/mask_xioi3.db ${XRAY_MERGEDB} mask_lioi3_tbyteterm build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3 build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3_tbytesrc build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi3_tbyteterm build/mask_xioi3.db +ifeq ($(XRAY_DATABASE),kintex7) + ${XRAY_MERGEDB} rioi build/segbits_rioi.db + ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_rioi.db + ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_rioi.db ${XRAY_MERGEDB} mask_rioi build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi_tbytesrc build/mask_xioi3.db ${XRAY_MERGEDB} mask_rioi_tbyteterm build/mask_xioi3.db +endif .PHONY: database pushdb From 1cd915e06b6e897788ab42f77b3f029ef46a757f Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Thu, 24 Nov 2022 01:07:53 +0700 Subject: [PATCH 081/250] update copyright year for io*18 fuzzers Signed-off-by: Hans Baier --- fuzzers/030-iob18/Makefile | 2 +- fuzzers/030-iob18/check_results.py | 2 +- fuzzers/030-iob18/generate.py | 2 +- fuzzers/030-iob18/generate.tcl | 2 +- fuzzers/030-iob18/process_rdb.py | 2 +- fuzzers/030-iob18/top.py | 2 +- fuzzers/030-iob18/write_io_banks.tcl | 2 +- fuzzers/035a-iob18-idelay/Makefile | 2 +- fuzzers/035a-iob18-idelay/generate.py | 2 +- fuzzers/035a-iob18-idelay/generate.tcl | 2 +- fuzzers/035a-iob18-idelay/top.py | 2 +- fuzzers/036-iob18-ologic/Makefile | 2 +- fuzzers/036-iob18-ologic/generate.py | 2 +- fuzzers/036-iob18-ologic/generate.tcl | 2 +- fuzzers/036-iob18-ologic/top.py | 2 +- fuzzers/037-iob18-pips/Makefile | 2 +- fuzzers/037-iob18-pips/generate.py | 2 +- fuzzers/037-iob18-pips/generate.tcl | 2 +- fuzzers/037-iob18-pips/ioi_pip_list.tcl | 2 +- fuzzers/037-iob18-pips/output_cmt.tcl | 2 +- fuzzers/037-iob18-pips/top.py | 2 +- fuzzers/047-hclk-ioi18-pips/Makefile | 2 +- fuzzers/047-hclk-ioi18-pips/generate.py | 2 +- fuzzers/047-hclk-ioi18-pips/generate.tcl | 2 +- fuzzers/047-hclk-ioi18-pips/hclk_ioi_pip_list.tcl | 2 +- fuzzers/047-hclk-ioi18-pips/output_cmt.tcl | 2 +- fuzzers/047-hclk-ioi18-pips/top.py | 2 +- 27 files changed, 27 insertions(+), 27 deletions(-) diff --git a/fuzzers/030-iob18/Makefile b/fuzzers/030-iob18/Makefile index a73872648..f90dbfd95 100644 --- a/fuzzers/030-iob18/Makefile +++ b/fuzzers/030-iob18/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/030-iob18/check_results.py b/fuzzers/030-iob18/check_results.py index 364110b72..5a66bfdb3 100644 --- a/fuzzers/030-iob18/check_results.py +++ b/fuzzers/030-iob18/check_results.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/030-iob18/generate.py b/fuzzers/030-iob18/generate.py index 2dd7958c9..fc0af32c4 100644 --- a/fuzzers/030-iob18/generate.py +++ b/fuzzers/030-iob18/generate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/030-iob18/generate.tcl b/fuzzers/030-iob18/generate.tcl index a24d1dff6..953462478 100644 --- a/fuzzers/030-iob18/generate.tcl +++ b/fuzzers/030-iob18/generate.tcl @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors +# Copyright (C) 2017-2022 The Project X-Ray Authors # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/030-iob18/process_rdb.py b/fuzzers/030-iob18/process_rdb.py index 8d997ab15..2cacb463a 100644 --- a/fuzzers/030-iob18/process_rdb.py +++ b/fuzzers/030-iob18/process_rdb.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/030-iob18/top.py b/fuzzers/030-iob18/top.py index 337a2fc1d..e8f39805d 100644 --- a/fuzzers/030-iob18/top.py +++ b/fuzzers/030-iob18/top.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/030-iob18/write_io_banks.tcl b/fuzzers/030-iob18/write_io_banks.tcl index 5e094924d..eac330dab 100644 --- a/fuzzers/030-iob18/write_io_banks.tcl +++ b/fuzzers/030-iob18/write_io_banks.tcl @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors +# Copyright (C) 2017-2022 The Project X-Ray Authors # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/035a-iob18-idelay/Makefile b/fuzzers/035a-iob18-idelay/Makefile index 04533ba08..44365e48d 100644 --- a/fuzzers/035a-iob18-idelay/Makefile +++ b/fuzzers/035a-iob18-idelay/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/035a-iob18-idelay/generate.py b/fuzzers/035a-iob18-idelay/generate.py index b500632f4..5c4bf4d06 100644 --- a/fuzzers/035a-iob18-idelay/generate.py +++ b/fuzzers/035a-iob18-idelay/generate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/035a-iob18-idelay/generate.tcl b/fuzzers/035a-iob18-idelay/generate.tcl index eecd48e6c..b2de3dce1 100644 --- a/fuzzers/035a-iob18-idelay/generate.tcl +++ b/fuzzers/035a-iob18-idelay/generate.tcl @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors +# Copyright (C) 2017-2022 The Project X-Ray Authors # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/035a-iob18-idelay/top.py b/fuzzers/035a-iob18-idelay/top.py index f87685ed5..3c481301a 100644 --- a/fuzzers/035a-iob18-idelay/top.py +++ b/fuzzers/035a-iob18-idelay/top.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/036-iob18-ologic/Makefile b/fuzzers/036-iob18-ologic/Makefile index c96dc6dd7..8c10625ad 100644 --- a/fuzzers/036-iob18-ologic/Makefile +++ b/fuzzers/036-iob18-ologic/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/036-iob18-ologic/generate.py b/fuzzers/036-iob18-ologic/generate.py index fca2ee2f3..5590af522 100644 --- a/fuzzers/036-iob18-ologic/generate.py +++ b/fuzzers/036-iob18-ologic/generate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/036-iob18-ologic/generate.tcl b/fuzzers/036-iob18-ologic/generate.tcl index 492dae824..413215be5 100644 --- a/fuzzers/036-iob18-ologic/generate.tcl +++ b/fuzzers/036-iob18-ologic/generate.tcl @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors +# Copyright (C) 2017-2022 The Project X-Ray Authors # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/036-iob18-ologic/top.py b/fuzzers/036-iob18-ologic/top.py index 5b219cb98..4491956c9 100644 --- a/fuzzers/036-iob18-ologic/top.py +++ b/fuzzers/036-iob18-ologic/top.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/037-iob18-pips/Makefile b/fuzzers/037-iob18-pips/Makefile index cf3a0d3e9..cef619887 100644 --- a/fuzzers/037-iob18-pips/Makefile +++ b/fuzzers/037-iob18-pips/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/037-iob18-pips/generate.py b/fuzzers/037-iob18-pips/generate.py index 5e0b37250..b21218ca0 100644 --- a/fuzzers/037-iob18-pips/generate.py +++ b/fuzzers/037-iob18-pips/generate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/037-iob18-pips/generate.tcl b/fuzzers/037-iob18-pips/generate.tcl index 2983f40d4..65d692d72 100644 --- a/fuzzers/037-iob18-pips/generate.tcl +++ b/fuzzers/037-iob18-pips/generate.tcl @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors +# Copyright (C) 2017-2022 The Project X-Ray Authors # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/037-iob18-pips/ioi_pip_list.tcl b/fuzzers/037-iob18-pips/ioi_pip_list.tcl index 3138494da..854873c74 100644 --- a/fuzzers/037-iob18-pips/ioi_pip_list.tcl +++ b/fuzzers/037-iob18-pips/ioi_pip_list.tcl @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors +# Copyright (C) 2017-2022 The Project X-Ray Authors # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/037-iob18-pips/output_cmt.tcl b/fuzzers/037-iob18-pips/output_cmt.tcl index 10a4f97bb..9ab8cf8d9 100644 --- a/fuzzers/037-iob18-pips/output_cmt.tcl +++ b/fuzzers/037-iob18-pips/output_cmt.tcl @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors +# Copyright (C) 2017-2022 The Project X-Ray Authors # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/037-iob18-pips/top.py b/fuzzers/037-iob18-pips/top.py index bc613da63..f7ecea02b 100644 --- a/fuzzers/037-iob18-pips/top.py +++ b/fuzzers/037-iob18-pips/top.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/047-hclk-ioi18-pips/Makefile b/fuzzers/047-hclk-ioi18-pips/Makefile index b0742130e..3d043448f 100644 --- a/fuzzers/047-hclk-ioi18-pips/Makefile +++ b/fuzzers/047-hclk-ioi18-pips/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/047-hclk-ioi18-pips/generate.py b/fuzzers/047-hclk-ioi18-pips/generate.py index abcf00fcc..eef904ed2 100644 --- a/fuzzers/047-hclk-ioi18-pips/generate.py +++ b/fuzzers/047-hclk-ioi18-pips/generate.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/047-hclk-ioi18-pips/generate.tcl b/fuzzers/047-hclk-ioi18-pips/generate.tcl index ec7756a99..f75db3c67 100644 --- a/fuzzers/047-hclk-ioi18-pips/generate.tcl +++ b/fuzzers/047-hclk-ioi18-pips/generate.tcl @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors +# Copyright (C) 2017-2022 The Project X-Ray Authors # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/047-hclk-ioi18-pips/hclk_ioi_pip_list.tcl b/fuzzers/047-hclk-ioi18-pips/hclk_ioi_pip_list.tcl index f71fe1d8c..555f10c55 100644 --- a/fuzzers/047-hclk-ioi18-pips/hclk_ioi_pip_list.tcl +++ b/fuzzers/047-hclk-ioi18-pips/hclk_ioi_pip_list.tcl @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors +# Copyright (C) 2017-2022 The Project X-Ray Authors # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/047-hclk-ioi18-pips/output_cmt.tcl b/fuzzers/047-hclk-ioi18-pips/output_cmt.tcl index 40034830e..7bb9e52d6 100644 --- a/fuzzers/047-hclk-ioi18-pips/output_cmt.tcl +++ b/fuzzers/047-hclk-ioi18-pips/output_cmt.tcl @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2020 The Project X-Ray Authors +# Copyright (C) 2017-2022 The Project X-Ray Authors # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at diff --git a/fuzzers/047-hclk-ioi18-pips/top.py b/fuzzers/047-hclk-ioi18-pips/top.py index b00925b53..bf84a50e4 100644 --- a/fuzzers/047-hclk-ioi18-pips/top.py +++ b/fuzzers/047-hclk-ioi18-pips/top.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -# Copyright (C) 2017-2020 The Project X-Ray Authors. +# Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at From bc5c04ce5e3b8434d2219229b12da865a4cf3b47 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Thu, 24 Nov 2022 01:23:31 +0700 Subject: [PATCH 082/250] 030-iob18/README.md: explain about the fuzzer Signed-off-by: Hans Baier --- fuzzers/030-iob18/README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/fuzzers/030-iob18/README.md b/fuzzers/030-iob18/README.md index 102f0f699..8b6205142 100644 --- a/fuzzers/030-iob18/README.md +++ b/fuzzers/030-iob18/README.md @@ -1,2 +1,20 @@ # IOB18 Fuzzer +This fuzzer solves the bits related to the IO pads in the +high performance banks, which are present in most of the +Kintex and Virtex devices (a notable exception are K420T and K480T) +using bank numbers of 30 and above. + +These banks have a maximum voltage of 1.8V which is the reason +why many of the BEL names end in 18 (as opposed to 33 for the +high range banks, which run on a maximum voltage of 3.3V). + +Currently the focus is on supporting the most used IO standards; +On most boards, the high performance banks are connected to DDR3 +memory and this mandates the support of single ended and differential +SSTL15. +Of course, all the LVCMOS variants and LVDS are a must have too. + +Currently unsupported are digitally controlled impedance +(usually indicated by the regular IO standard names with a +_DCI and _T_DCI suffix). From 1ed8c6388012802ef2ea3096b71d55a6aca4b03d Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Thu, 24 Nov 2022 01:42:55 +0700 Subject: [PATCH 083/250] fix obvious issues in 035a-iob18-idelay/bits.dbf and 036-iob18-ologic/bits.dbf Signed-off-by: Hans Baier --- fuzzers/035a-iob18-idelay/bits.dbf | 4 ++-- fuzzers/036-iob18-ologic/bits.dbf | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/fuzzers/035a-iob18-idelay/bits.dbf b/fuzzers/035a-iob18-idelay/bits.dbf index 46f87e1a9..059168f75 100644 --- a/fuzzers/035a-iob18-idelay/bits.dbf +++ b/fuzzers/035a-iob18-idelay/bits.dbf @@ -1,5 +1,5 @@ -34_08 34_14 ,IOI3.IDELAY_Y1.IDELAY_TYPE_FIXED -35_113 35_119 ,IOI3.IDELAY_Y0.IDELAY_TYPE_FIXED +34_08 34_14 ,IOI.IDELAY_Y1.IDELAY_TYPE_FIXED +35_113 35_119 ,IOI.IDELAY_Y0.IDELAY_TYPE_FIXED 34_120 34_122 34_114 34_116 34_108 34_110 diff --git a/fuzzers/036-iob18-ologic/bits.dbf b/fuzzers/036-iob18-ologic/bits.dbf index 8b0c1341d..8e902b07c 100644 --- a/fuzzers/036-iob18-ologic/bits.dbf +++ b/fuzzers/036-iob18-ologic/bits.dbf @@ -1,5 +1,3 @@ -31_92,IOB33.IOB_Y0.ODDR.DDR_CLK_EDGE.OPPOSITE_EDGE -30_35,IOB33.IOB_Y1.ODDR.DDR_CLK_EDGE.OPPOSITE_EDGE 33_91 33_93 32_36 32_34 33_61 32_58 33_57 From f038d1b88dec7b20c403206d3c76fd95a840bae7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Nov 2022 18:24:33 +0000 Subject: [PATCH 084/250] build(deps): bump third_party/yosys from `31c15e5` to `23e26ff` (#2059) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `31c15e5` to `23e26ff`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/31c15e5fa60b8cb47e7785fc420d90e860708034...23e26ff66153f6c147adee515e547b7d34962347) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 31c15e5fa..23e26ff66 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 31c15e5fa60b8cb47e7785fc420d90e860708034 +Subproject commit 23e26ff66153f6c147adee515e547b7d34962347 From c0d2323e196ab332120b6676490b694d7a77ee83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Nov 2022 18:32:08 +0000 Subject: [PATCH 085/250] build(deps): bump third_party/abseil-cpp from `1b97698` to `e51b4ef` (#2056) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `1b97698` to `e51b4ef`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/1b976982d8cdbfd8320f34209b065bae7adefb09...e51b4ef779f58b89563bbf8778f05766ba110e10) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 1b976982d..e51b4ef77 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 1b976982d8cdbfd8320f34209b065bae7adefb09 +Subproject commit e51b4ef779f58b89563bbf8778f05766ba110e10 From bee16ab29e12f4b7aeaab90c8f8dfdb70d3edf6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Dec 2022 18:25:30 +0000 Subject: [PATCH 086/250] build(deps): bump third_party/abseil-cpp from `e51b4ef` to `4e5ff15` (#2064) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `e51b4ef` to `4e5ff15`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/e51b4ef779f58b89563bbf8778f05766ba110e10...4e5ff1559ca3bd7bb777a1c48106464cb656e041) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index e51b4ef77..4e5ff1559 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit e51b4ef779f58b89563bbf8778f05766ba110e10 +Subproject commit 4e5ff1559ca3bd7bb777a1c48106464cb656e041 From 9d66dbc21a21ff356175280a943bca45b5dec268 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Dec 2022 18:26:48 +0000 Subject: [PATCH 087/250] build(deps): bump third_party/yosys from `23e26ff` to `a64ed82` (#2066) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `23e26ff` to `a64ed82`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/23e26ff66153f6c147adee515e547b7d34962347...a64ed824ed6fadf24cf2871d7752f63ab6613c8b) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 23e26ff66..a64ed824e 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 23e26ff66153f6c147adee515e547b7d34962347 +Subproject commit a64ed824ed6fadf24cf2871d7752f63ab6613c8b From de5c7afcb4871ed754abfc7686991ca37022f9f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Dec 2022 18:30:27 +0000 Subject: [PATCH 088/250] build(deps): bump third_party/googletest from `912db74` to `1f643f7` (#2067) Bumps [third_party/googletest](https://github.com/google/googletest) from `912db74` to `1f643f7`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/912db742531bf82efb01194bc08140416e3b3467...1f643f71d4151c3b364c0e9302042f7a6debd439) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 912db7425..1f643f71d 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 912db742531bf82efb01194bc08140416e3b3467 +Subproject commit 1f643f71d4151c3b364c0e9302042f7a6debd439 From 5d4ebbf14c7360f19ba89e4894845937194b10a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Dec 2022 18:27:19 +0000 Subject: [PATCH 089/250] build(deps): bump third_party/abseil-cpp from `4e5ff15` to `522606b` (#2069) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `4e5ff15` to `522606b`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/4e5ff1559ca3bd7bb777a1c48106464cb656e041...522606b7fae37836c138e83f6eec0eabb9947dc0) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 4e5ff1559..522606b7f 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 4e5ff1559ca3bd7bb777a1c48106464cb656e041 +Subproject commit 522606b7fae37836c138e83f6eec0eabb9947dc0 From 09f04c3c88f6fb241a4814e806bc3dab6725aab8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Dec 2022 18:34:03 +0000 Subject: [PATCH 090/250] build(deps): bump third_party/yosys from `a64ed82` to `7ad7b55` (#2071) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `a64ed82` to `7ad7b55`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/a64ed824ed6fadf24cf2871d7752f63ab6613c8b...7ad7b550cb1157fb4c5c901006a700cb10d0e722) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index a64ed824e..7ad7b550c 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit a64ed824ed6fadf24cf2871d7752f63ab6613c8b +Subproject commit 7ad7b550cb1157fb4c5c901006a700cb10d0e722 From 2ce7ea13810c0541a013706caa2c4054e1939fcc Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Wed, 14 Dec 2022 05:15:48 +0700 Subject: [PATCH 091/250] riob18: fix IBUF_LOW_PWR_SUPPORTED Signed-off-by: Hans Baier --- fuzzers/030-iob18/generate.py | 2 +- utils/bit2fasm.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fuzzers/030-iob18/generate.py b/fuzzers/030-iob18/generate.py index fc0af32c4..a4ac6356e 100644 --- a/fuzzers/030-iob18/generate.py +++ b/fuzzers/030-iob18/generate.py @@ -39,7 +39,7 @@ def drives_for_iostandard(iostandard): return drives STEPDOWN_IOSTANDARDS = LVCMOS + SSTL -IBUF_LOW_PWR_SUPPORTED = LVDS + DIFF_SSTL +IBUF_LOW_PWR_SUPPORTED = LVDS + SSTL ONLY_DIFF_IOSTANDARDS = LVDS diff --git a/utils/bit2fasm.py b/utils/bit2fasm.py index 103b377ef..859ec1096 100755 --- a/utils/bit2fasm.py +++ b/utils/bit2fasm.py @@ -91,7 +91,7 @@ def main(): '--part', help="Name of part being targetted.", **part_kwargs) parser.add_argument( '--bitread', - help="Name of part being targetted.", + help="bitread tool to to use", default=default_bitread) parser.add_argument( '--frame_range', help="Frame range to use with bitread.") From 7800bcb4947b61161bddf564c6a2e81806d74417 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Wed, 14 Dec 2022 10:04:39 +0700 Subject: [PATCH 092/250] 030-iob18: fix Vref conflict warnigns by assigning the correct Vref Signed-off-by: Hans Baier --- fuzzers/030-iob18/top.py | 17 ++++++++++------- fuzzers/030-iob18/write_io_banks.tcl | 6 +++++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/fuzzers/030-iob18/top.py b/fuzzers/030-iob18/top.py index e8f39805d..6944e1ca3 100644 --- a/fuzzers/030-iob18/top.py +++ b/fuzzers/030-iob18/top.py @@ -65,6 +65,15 @@ def run(): "SSTL12": DIFF_SSTL12, } + vref_map = { + "SSTL12": .600, + "SSTL135": .675, + "SSTL15": .75, + "DIFF_SSTL12": .600, + "DIFF_SSTL135": .675, + "DIFF_SSTL15": .75, + } + only_diff_map = { "LVDS": ["LVDS"], } @@ -99,13 +108,7 @@ def run(): for iobank in iobanks: iostandard = random.choice(iostandards) if iostandard in SSTL: - params['INTERNAL_VREF'][iobank] = random.choice( - ( - .600, - .675, - .75, - .90, - )) + params['INTERNAL_VREF'][iobank] = vref_map[iostandard] iostandard_map[iobank] = iostandard diff --git a/fuzzers/030-iob18/write_io_banks.tcl b/fuzzers/030-iob18/write_io_banks.tcl index eac330dab..c433e5e8e 100644 --- a/fuzzers/030-iob18/write_io_banks.tcl +++ b/fuzzers/030-iob18/write_io_banks.tcl @@ -11,7 +11,11 @@ open_io_design -name io_1 set fp [open "iobanks.txt" "w"] foreach iobank [get_iobanks] { foreach site [get_sites -of $iobank] { - puts $fp "$site,$iobank" + # we only care about the high performance banks here + # and those are numbered 32, 33, 34... + if {[string match "3*" $iobank]} { + puts $fp "$site,$iobank" + } } } close $fp From 8ce3922f8d788119c2f64157b00e7102ebbb38fd Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Fri, 16 Dec 2022 09:22:32 +0700 Subject: [PATCH 093/250] 030-iob18: add manually discovered RIOB18.IOB_Y0.SSTL*.IN feature, reduces specimens to 40 Signed-off-by: Hans Baier --- fuzzers/030-iob18/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fuzzers/030-iob18/Makefile b/fuzzers/030-iob18/Makefile index f90dbfd95..952cefd67 100644 --- a/fuzzers/030-iob18/Makefile +++ b/fuzzers/030-iob18/Makefile @@ -5,7 +5,7 @@ # https://opensource.org/licenses/ISC # # SPDX-License-Identifier: ISC -N := 80 +N := 40 SPECIMENS_DEPS := build/iobanks.txt include ../fuzzer.mk @@ -23,6 +23,8 @@ build/segbits_riob18.db: build/segbits_riob18.rdb process_rdb.py bits.dbf sed '/IOB18.IOB_Y1.LVDS/d' -i build/segbits_riob18.rdb python3 process_rdb.py build/segbits_riob18.rdb > build/segbits_riob18_processed.rdb ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --groups tag_groups.txt --seg-fn-in build/segbits_riob18_processed.rdb --seg-fn-out $@ + echo 'RIOB18.IOB_Y0.SSTL12_SSTL135_SSTL15.IN !38_126 39_127' >> $@ + sort -o $@ $@ ${XRAY_MASKMERGE} build/mask_riob18.db $$(find -name segdata_riob18.txt) build/segbits_hclk_ioi.rdb: $(SPECIMENS_OK) From 9512609ff620e63cc13de54299f1e5f7d99bf41b Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Fri, 16 Dec 2022 17:00:59 +0700 Subject: [PATCH 094/250] write_io_banks.tcl: use a reliable way to distinguish high performance banks Signed-off-by: Hans Baier --- fuzzers/030-iob18/write_io_banks.tcl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fuzzers/030-iob18/write_io_banks.tcl b/fuzzers/030-iob18/write_io_banks.tcl index c433e5e8e..aca8c1d01 100644 --- a/fuzzers/030-iob18/write_io_banks.tcl +++ b/fuzzers/030-iob18/write_io_banks.tcl @@ -12,8 +12,7 @@ set fp [open "iobanks.txt" "w"] foreach iobank [get_iobanks] { foreach site [get_sites -of $iobank] { # we only care about the high performance banks here - # and those are numbered 32, 33, 34... - if {[string match "3*" $iobank]} { + if {[string match "BT_HIGH_PERFORMANCE" [get_property BANK_TYPE $iobank]]} { puts $fp "$site,$iobank" } } From 3562cb8efd6971df93ce520c435d71b6f0c5532a Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Fri, 16 Dec 2022 17:22:56 +0700 Subject: [PATCH 095/250] 030-iob18: add issue link to hack used in Makefile Signed-off-by: Hans Baier --- fuzzers/030-iob18/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/fuzzers/030-iob18/Makefile b/fuzzers/030-iob18/Makefile index 952cefd67..33120252e 100644 --- a/fuzzers/030-iob18/Makefile +++ b/fuzzers/030-iob18/Makefile @@ -23,6 +23,7 @@ build/segbits_riob18.db: build/segbits_riob18.rdb process_rdb.py bits.dbf sed '/IOB18.IOB_Y1.LVDS/d' -i build/segbits_riob18.rdb python3 process_rdb.py build/segbits_riob18.rdb > build/segbits_riob18_processed.rdb ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --groups tag_groups.txt --seg-fn-in build/segbits_riob18_processed.rdb --seg-fn-out $@ + # TODO: This is a hack. See https://github.com/f4pga/prjxray/issues/2073 echo 'RIOB18.IOB_Y0.SSTL12_SSTL135_SSTL15.IN !38_126 39_127' >> $@ sort -o $@ $@ ${XRAY_MASKMERGE} build/mask_riob18.db $$(find -name segdata_riob18.txt) From 6198b1a05d8088d4490e97218d8999dbeb544046 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 17 Dec 2022 18:32:27 +0000 Subject: [PATCH 096/250] build(deps): bump third_party/abseil-cpp from `522606b` to `71927b4` (#2075) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `522606b` to `71927b4`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/522606b7fae37836c138e83f6eec0eabb9947dc0...71927b43256b9252bfafffc951bcc8106156a811) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 522606b7f..71927b432 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 522606b7fae37836c138e83f6eec0eabb9947dc0 +Subproject commit 71927b43256b9252bfafffc951bcc8106156a811 From 10aa1efd4b815eddf0ed31938cc0f4dad115129b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 17 Dec 2022 18:36:05 +0000 Subject: [PATCH 097/250] build(deps): bump third_party/googletest from `1f643f7` to `3fa7f98` (#2074) Bumps [third_party/googletest](https://github.com/google/googletest) from `1f643f7` to `3fa7f98`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/1f643f71d4151c3b364c0e9302042f7a6debd439...3fa7f983c69f780378b4d1ad44d36030ca951ba6) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 1f643f71d..3fa7f983c 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 1f643f71d4151c3b364c0e9302042f7a6debd439 +Subproject commit 3fa7f983c69f780378b4d1ad44d36030ca951ba6 From 09b0fd933517e6811bc0d4efba9661f3f41b19f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Dec 2022 18:23:47 +0000 Subject: [PATCH 098/250] build(deps): bump third_party/yosys from `7ad7b55` to `3ebc50d` (#2079) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `7ad7b55` to `3ebc50d`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/7ad7b550cb1157fb4c5c901006a700cb10d0e722...3ebc50dee4007f8cca4ffc0e850bc3e86f7641f4) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 7ad7b550c..3ebc50dee 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 7ad7b550cb1157fb4c5c901006a700cb10d0e722 +Subproject commit 3ebc50dee4007f8cca4ffc0e850bc3e86f7641f4 From e825a9fa9f476b45aa586888af2deae643dcae82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 31 Dec 2022 18:20:14 +0000 Subject: [PATCH 099/250] build(deps): bump third_party/abseil-cpp from `71927b4` to `6abc195` (#2081) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `71927b4` to `6abc195`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/71927b43256b9252bfafffc951bcc8106156a811...6abc1958562c49d797ea23270a355caf5dc39f94) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 71927b432..6abc19585 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 71927b43256b9252bfafffc951bcc8106156a811 +Subproject commit 6abc1958562c49d797ea23270a355caf5dc39f94 From 0e992645a3f87f6e1bf1f2245a34bb66d04ba192 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 31 Dec 2022 18:37:30 +0000 Subject: [PATCH 100/250] build(deps): bump third_party/sanitizers-cmake (#2080) Bumps [third_party/sanitizers-cmake](https://github.com/arsenm/sanitizers-cmake) from `99e159e` to `a6748f4`. - [Release notes](https://github.com/arsenm/sanitizers-cmake/releases) - [Commits](https://github.com/arsenm/sanitizers-cmake/compare/99e159ec9bc8dd362b08d18436bd40ff0648417b...a6748f4f51273d86312e3d27ebe5277c9b1ff870) --- updated-dependencies: - dependency-name: third_party/sanitizers-cmake dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/sanitizers-cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/sanitizers-cmake b/third_party/sanitizers-cmake index 99e159ec9..a6748f4f5 160000 --- a/third_party/sanitizers-cmake +++ b/third_party/sanitizers-cmake @@ -1 +1 @@ -Subproject commit 99e159ec9bc8dd362b08d18436bd40ff0648417b +Subproject commit a6748f4f51273d86312e3d27ebe5277c9b1ff870 From e781e0207fe0076b27cecad91a85c0df75bad1dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Jan 2023 18:32:22 +0000 Subject: [PATCH 101/250] build(deps): bump third_party/yosys from `3ebc50d` to `f2c6894` (#2083) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `3ebc50d` to `f2c6894`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/3ebc50dee4007f8cca4ffc0e850bc3e86f7641f4...f2c689403ace0637b7455bac8f1e8d4bc312e74f) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 3ebc50dee..f2c689403 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 3ebc50dee4007f8cca4ffc0e850bc3e86f7641f4 +Subproject commit f2c689403ace0637b7455bac8f1e8d4bc312e74f From d756999cf0db834d5f547be5476c6a5b2c2edc9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Jan 2023 18:36:37 +0000 Subject: [PATCH 102/250] build(deps): bump third_party/abseil-cpp from `6abc195` to `625a180` (#2085) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `6abc195` to `625a180`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/6abc1958562c49d797ea23270a355caf5dc39f94...625a18016d6208c6c0419697cb6caa3f23ce31bc) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 6abc19585..625a18016 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 6abc1958562c49d797ea23270a355caf5dc39f94 +Subproject commit 625a18016d6208c6c0419697cb6caa3f23ce31bc From 2d7c2264aa9b0c53cc3834dac99250809d8589f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Jan 2023 18:22:57 +0000 Subject: [PATCH 103/250] build(deps): bump third_party/yosys from `f2c6894` to `956c4e4` (#2088) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `f2c6894` to `956c4e4`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/f2c689403ace0637b7455bac8f1e8d4bc312e74f...956c4e485a9463863f60c4dd03372db3fa8332a4) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index f2c689403..956c4e485 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit f2c689403ace0637b7455bac8f1e8d4bc312e74f +Subproject commit 956c4e485a9463863f60c4dd03372db3fa8332a4 From 131ff9a917c628c7acbeab444528bb9f3e350c94 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Jan 2023 18:25:38 +0000 Subject: [PATCH 104/250] build(deps): bump third_party/googletest from `3fa7f98` to `356fc30` (#2087) Bumps [third_party/googletest](https://github.com/google/googletest) from `3fa7f98` to `356fc30`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/3fa7f983c69f780378b4d1ad44d36030ca951ba6...356fc301251378e0f6fa6aa794d73714202887ac) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 3fa7f983c..356fc3012 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 3fa7f983c69f780378b4d1ad44d36030ca951ba6 +Subproject commit 356fc301251378e0f6fa6aa794d73714202887ac From 03f0011b28becf40d3cdee9d685d0c5b886238d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Jan 2023 18:35:23 +0000 Subject: [PATCH 105/250] build(deps): bump third_party/abseil-cpp from `625a180` to `bb63a76` (#2086) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `625a180` to `bb63a76`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/625a18016d6208c6c0419697cb6caa3f23ce31bc...bb63a76710554cebbeb20306739a7b832be38c4a) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 625a18016..bb63a7671 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 625a18016d6208c6c0419697cb6caa3f23ce31bc +Subproject commit bb63a76710554cebbeb20306739a7b832be38c4a From 69415714afe3a66ac22c5e361fa3e0b99ff27be4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Jan 2023 18:21:46 +0000 Subject: [PATCH 106/250] build(deps): bump third_party/yosys from `956c4e4` to `611f71c` (#2092) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `956c4e4` to `611f71c`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/956c4e485a9463863f60c4dd03372db3fa8332a4...611f71c67020eb501cedd24b2b10751fc1188f5e) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 956c4e485..611f71c67 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 956c4e485a9463863f60c4dd03372db3fa8332a4 +Subproject commit 611f71c67020eb501cedd24b2b10751fc1188f5e From a1cc7ab4114478ea185b3f1df68573c0f6a4d7b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Jan 2023 18:25:47 +0000 Subject: [PATCH 107/250] build(deps): bump third_party/googletest from `356fc30` to `ec25eea` (#2091) Bumps [third_party/googletest](https://github.com/google/googletest) from `356fc30` to `ec25eea`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/356fc301251378e0f6fa6aa794d73714202887ac...ec25eea8f8237cf86c30703f59747e42f34b6f75) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 356fc3012..ec25eea8f 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 356fc301251378e0f6fa6aa794d73714202887ac +Subproject commit ec25eea8f8237cf86c30703f59747e42f34b6f75 From 38e8b02f2ccb5a6e82b42dfae89914934dd03e03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Jan 2023 18:28:46 +0000 Subject: [PATCH 108/250] build(deps): bump third_party/abseil-cpp from `bb63a76` to `4eef161` (#2090) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `bb63a76` to `4eef161`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/bb63a76710554cebbeb20306739a7b832be38c4a...4eef16170014f75f4291ae335a271900f89eaedf) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index bb63a7671..4eef16170 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit bb63a76710554cebbeb20306739a7b832be38c4a +Subproject commit 4eef16170014f75f4291ae335a271900f89eaedf From 96469e236b5be046926b2cb6e65b5af0e0b5a566 Mon Sep 17 00:00:00 2001 From: David Shah Date: Sun, 16 Feb 2020 10:52:26 +0000 Subject: [PATCH 109/250] Basic ODELAY fuzzer Signed-off-by: David Shah Signed-off-by: Hans Baier --- fuzzers/035a-iob18-odelay/Makefile | 29 +++ fuzzers/035a-iob18-odelay/bits.dbf | 0 fuzzers/035a-iob18-odelay/generate.py | 79 +++++++++ fuzzers/035a-iob18-odelay/generate.tcl | 31 ++++ fuzzers/035a-iob18-odelay/top.py | 234 +++++++++++++++++++++++++ prjxray/segmaker.py | 8 + 6 files changed, 381 insertions(+) create mode 100644 fuzzers/035a-iob18-odelay/Makefile create mode 100644 fuzzers/035a-iob18-odelay/bits.dbf create mode 100644 fuzzers/035a-iob18-odelay/generate.py create mode 100644 fuzzers/035a-iob18-odelay/generate.tcl create mode 100644 fuzzers/035a-iob18-odelay/top.py diff --git a/fuzzers/035a-iob18-odelay/Makefile b/fuzzers/035a-iob18-odelay/Makefile new file mode 100644 index 000000000..a8377454b --- /dev/null +++ b/fuzzers/035a-iob18-odelay/Makefile @@ -0,0 +1,29 @@ +# Copyright (C) 2017-2023 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +N := 5 +include ../fuzzer.mk + +database: build/segbits_riob18.db + +build/segbits_riob18.rdb: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} -m 1 -M 1 -o build/segbits_riob18.rdb $$(find -name segdata_*.txt) + +build/segbits_riob18.db: build/segbits_riob18.rdb + ${XRAY_DBFIXUP} --db-root build --zero-db bits.dbf --seg-fn-in $^ --seg-fn-out $@ + ${XRAY_MASKMERGE} build/mask_riob18.db $$(find -name segdata_*.txt) + +pushdb: + ${XRAY_MERGEDB} rioi build/segbits_riob18.db + ${XRAY_MERGEDB} rioi_tbytesrc build/segbits_riob18.db + ${XRAY_MERGEDB} rioi_tbyteterm build/segbits_riob18.db + ${XRAY_MERGEDB} mask_rioi build/mask_riob18.db + ${XRAY_MERGEDB} mask_rioi_tbytesrc build/mask_riob18.db + ${XRAY_MERGEDB} mask_rioi_tbyteterm build/mask_riob18.db + +.PHONY: database pushdb + diff --git a/fuzzers/035a-iob18-odelay/bits.dbf b/fuzzers/035a-iob18-odelay/bits.dbf new file mode 100644 index 000000000..e69de29bb diff --git a/fuzzers/035a-iob18-odelay/generate.py b/fuzzers/035a-iob18-odelay/generate.py new file mode 100644 index 000000000..58e6d1ff8 --- /dev/null +++ b/fuzzers/035a-iob18-odelay/generate.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2023 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +import json + +from prjxray.segmaker import Segmaker, add_site_group_zero +from prjxray import verilog + + +def bitfilter(frame, word): + return frame >= 27 + +def main(): + segmk = Segmaker("design.bits", verbose=True) + + # Load tags + with open("params.json", "r") as fp: + data = json.load(fp) + + odelay_types = ["FIXED", "VARIABLE", "VAR_LOAD"] + delay_srcs = ["ODATAIN"] + + # Output tags + for params in data: + if params['ODELAY_BYPASS']: + prims = params['ODELAY_NOT_IN_USE'].split(" ") + segmk.add_site_tag(prims[0], 'IN_USE', False) + segmk.add_site_tag(prims[1], 'IN_USE', False) + continue + segmk.add_site_tag(params['ODELAY_IN_USE'], 'IN_USE', True) + segmk.add_site_tag(params['ODELAY_NOT_IN_USE'], 'IN_USE', False) + + loc = verilog.unquote(params["LOC"]) + + # Delay type + # VAR_LOAD and VAR_LOAD_PIPE are the same + value = verilog.unquote(params["ODELAY_TYPE"]) + add_site_group_zero( + segmk, loc, "ODELAY_TYPE_", odelay_types, "FIXED", value) + + # Delay value + value = int(params["ODELAY_VALUE"]) + for i in range(5): + segmk.add_site_tag( + loc, "ODELAY_VALUE[%01d]" % i, ((value >> i) & 1) != 0) + segmk.add_site_tag( + loc, "ZODELAY_VALUE[%01d]" % i, ((value >> i) & 1) == 0) + + value = verilog.unquote(params["CINVCTRL_SEL"]) + segmk.add_site_tag(loc, "CINVCTRL_SEL", int(value == "TRUE")) + + value = verilog.unquote(params["PIPE_SEL"]) + segmk.add_site_tag(loc, "PIPE_SEL", int(value == "TRUE")) + + if "IS_C_INVERTED" in params and verilog.unquote(params["CINVCTRL_SEL"]) != "TRUE": + segmk.add_site_tag( + loc, "IS_C_INVERTED", int(params["IS_C_INVERTED"])) + segmk.add_site_tag(loc, "ZINV_C", 1 ^ int(params["IS_C_INVERTED"])) + + value = verilog.unquote(params["HIGH_PERFORMANCE_MODE"]) + segmk.add_site_tag( + loc, "HIGH_PERFORMANCE_MODE", int(value == "TRUE")) + + segmk.add_site_tag( + loc, "ZINV_ODATAIN", 1 ^ int(params["IS_ODATAIN_INVERTED"])) + + segmk.compile(bitfilter=bitfilter) + segmk.write() + + +if __name__ == "__main__": + main() diff --git a/fuzzers/035a-iob18-odelay/generate.tcl b/fuzzers/035a-iob18-odelay/generate.tcl new file mode 100644 index 000000000..0ab7b32da --- /dev/null +++ b/fuzzers/035a-iob18-odelay/generate.tcl @@ -0,0 +1,31 @@ +# Copyright (C) 2017-2023 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +create_project -force -part $::env(XRAY_PART) design design +read_verilog top.v +synth_design -top top + +set_property CFGBVS GND [current_design] +set_property CONFIG_VOLTAGE 1.8 [current_design] +set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] +set_param tcl.collectionResultDisplayLimit 0 + +set_property IS_ENABLED 0 [get_drc_checks {NSTD-1}] +set_property IS_ENABLED 0 [get_drc_checks {UCIO-1}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-79}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-81}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-84}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-85}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-87}] +set_property IS_ENABLED 0 [get_drc_checks {REQP-85}] +set_property IS_ENABLED 0 [get_drc_checks {AVAL-28}] + +place_design +route_design + +write_checkpoint -force design.dcp +write_bitstream -force design.bit diff --git a/fuzzers/035a-iob18-odelay/top.py b/fuzzers/035a-iob18-odelay/top.py new file mode 100644 index 000000000..7e3db78e9 --- /dev/null +++ b/fuzzers/035a-iob18-odelay/top.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2023 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC + +import os, random +random.seed(int(os.getenv("SEED"), 16)) + +import sys +import json + +from prjxray import util +from prjxray.db import Database + +# ============================================================================= + + +def gen_sites(): + db = Database(util.get_db_root(), util.get_part()) + grid = db.grid() + + tile_list = [] + for tile_name in sorted(grid.tiles()): + if "IOB18" not in tile_name or "SING" in tile_name: + continue + tile_list.append(tile_name) + + get_xy = util.create_xy_fun('RIOB18_') + tile_list.sort(key=get_xy) + + for iob_tile_name in tile_list: + iob_gridinfo = grid.gridinfo_at_loc( + grid.loc_of_tilename(iob_tile_name)) + + # Find IOI tile adjacent to IOB + for suffix in ["IOI", "IOI_TBYTESRC", "IOI_TBYTETERM"]: + try: + ioi_tile_name = iob_tile_name.replace("IOB18", suffix) + ioi_gridinfo = grid.gridinfo_at_loc( + grid.loc_of_tilename(ioi_tile_name)) + break + except KeyError: + pass + + iob18s = [k for k, v in iob_gridinfo.sites.items() if v == "IOB18S"][0] + iob18m = [k for k, v in iob_gridinfo.sites.items() if v == "IOB18M"][0] + odelay_s = iob18s.replace("IOB", "ODELAY") + odelay_m = iob18m.replace("IOB", "ODELAY") + + yield iob18m, odelay_m, iob18s, odelay_s + + +def run(): + + # Get all [LR]IOI3 tiles + tiles = list(gen_sites()) + + # Header + print("// Tile count: %d" % len(tiles)) + print("// Seed: '%s'" % os.getenv("SEED")) + + ninputs = 0 + do_idx = [] + for i, sites in enumerate(tiles): + if random.randint(0, 1): + do_idx.append(ninputs) + ninputs += 1 + else: + do_idx.append(None) + + print( + ''' +module top ( + (* CLOCK_BUFFER_TYPE = "NONE" *) + input wire clk, + output wire [{N}:0] do +); + +wire clk_buf = clk; + +wire [{N}:0] do_buf; + '''.format(N=ninputs - 1)) + + # LOCes IOBs + data = [] + for i, (sites, obuf_idx) in enumerate(zip(tiles, do_idx)): + + if random.randint(0, 1): + iob_inuse = sites[0] + iob_other = sites[2] + odelay_inuse = sites[1] + odelay_other = sites[3] + else: + iob_inuse = sites[2] + iob_other = sites[0] + odelay_inuse = sites[3] + odelay_other = sites[1] + + use_obuf = obuf_idx is not None + + if not use_obuf: + continue + + params = { + "LOC": + "\"" + odelay_inuse + "\"", + "ODELAY_TYPE": + "\"" + random.choice( + ["FIXED", "VARIABLE", "VAR_LOAD"]) + "\"", + "ODELAY_VALUE": + random.randint(0, 31), + "HIGH_PERFORMANCE_MODE": + "\"" + random.choice(["TRUE", "FALSE"]) + "\"", + "CINVCTRL_SEL": + "\"" + random.choice(["TRUE", "FALSE"]) + "\"", + "PIPE_SEL": + "\"" + random.choice(["TRUE", "FALSE"]) + "\"", + "IS_C_INVERTED": + random.randint(0, 1), + "IS_ODATAIN_INVERTED": + random.randint(0, 1), + } + + if params["ODELAY_TYPE"] != "\"VAR_LOAD_PIPE\"": + params["PIPE_SEL"] = "\"FALSE\"" + + # The datasheet says that for these two modes the delay is set to 0 + if params["ODELAY_TYPE"] == "\"VAR_LOAD\"": + params["ODELAY_VALUE"] = 0 + if params["ODELAY_TYPE"] == "\"VAR_LOAD_PIPE\"": + params["ODELAY_VALUE"] = 0 + + if params["ODELAY_TYPE"] == "\"FIXED\"": + params["IS_C_INVERTED"] = 0 + + param_str = ",".join(".%s(%s)" % (k, v) for k, v in params.items()) + + if random.randint(0, 5) == 0: + print('') + print('(* LOC="%s", KEEP, DONT_TOUCH *)' % iob_inuse) + print( + 'OBUF obuf_%03d (.I(%d), .O(do[%3d]));' % + (obuf_idx, random.randint(0, 1), obuf_idx)) + params['ODELAY_BYPASS'] = True + params["ODELAY_NOT_IN_USE"] = odelay_inuse + " " + odelay_other + else: + print('') + print('(* LOC="%s", KEEP, DONT_TOUCH *)' % iob_inuse) + print( + 'OBUF obuf_%03d (.I(do_buf[%3d]), .O(do[%3d]));' % + (obuf_idx, obuf_idx, obuf_idx)) + print( + 'mod #(%s) mod_%03d (.clk(clk_buf), .O(do_buf[%3d]));' % + (param_str, i, obuf_idx)) + params['ODELAY_BYPASS'] = False + params["ODELAY_IN_USE"] = odelay_inuse + params["ODELAY_NOT_IN_USE"] = odelay_other + + data.append(params) + + # Store params + with open("params.json", "w") as fp: + json.dump(data, fp, sort_keys=True, indent=1) + + print( + ''' +// IDELAYCTRL +(* KEEP, DONT_TOUCH *) +IDELAYCTRL idelayctrl(); + +endmodule + +(* KEEP, DONT_TOUCH *) +module mod( + input wire clk, + output wire O +); + +parameter LOC = ""; +parameter ODELAY_TYPE = "FIXED"; +parameter ODELAY_VALUE = 0; +parameter DELAY_SRC = "ODATAIN"; +parameter HIGH_PERFORMANCE_MODE = "TRUE"; +parameter SIGNAL_PATTERN = "DATA"; +parameter CINVCTRL_SEL = "FALSE"; +parameter PIPE_SEL = "FALSE"; +parameter IS_C_INVERTED = 0; +parameter IS_ODATAIN_INVERTED = 0; + +wire x; +wire lut; + +(* KEEP, DONT_TOUCH *) +LUT2 l( .O(lut) ); + +// ODELAY +(* LOC=LOC, KEEP, DONT_TOUCH *) +ODELAYE2 #( + .ODELAY_TYPE(ODELAY_TYPE), + .ODELAY_VALUE(ODELAY_VALUE), + .DELAY_SRC(DELAY_SRC), + .HIGH_PERFORMANCE_MODE(HIGH_PERFORMANCE_MODE), + .SIGNAL_PATTERN(SIGNAL_PATTERN), + .CINVCTRL_SEL(CINVCTRL_SEL), + .PIPE_SEL(PIPE_SEL), + .IS_C_INVERTED(IS_C_INVERTED), + .IS_ODATAIN_INVERTED(IS_ODATAIN_INVERTED) +) +odelay +( + .C(clk), + .REGRST(), + .LD(), + .CE(), + .INC(), + .CINVCTRL(), + .CNTVALUEIN(), + .ODATAIN(lut), + .LDPIPEEN(), + .DATAOUT(O), + .CNTVALUEOUT() +); + +endmodule + ''') + + +run() diff --git a/prjxray/segmaker.py b/prjxray/segmaker.py index c362bef1d..6689d6f23 100644 --- a/prjxray/segmaker.py +++ b/prjxray/segmaker.py @@ -329,6 +329,7 @@ def name_default(): 'RAMB18': name_bram18, 'IOB': name_y0y1, 'IDELAY': name_y0y1, + 'ODELAY': name_y0y1, 'ILOGIC': name_y0y1, 'OLOGIC': name_y0y1, 'IBUFDS_GTE2': name_y0y1, @@ -391,6 +392,13 @@ def name_default(): if 'GTP_INT_INTERFACE' in tile_type_norm: tile_type_norm = 'GTP_INT_INTERFACE' + if tile_type_norm in ['LIOI', 'RIOI']: + tile_type_norm = 'IOI' + if tile_type_norm in ['LIOI_TBYTESRC', 'RIOI_TBYTESRC']: + tile_type_norm = 'IOI' + if tile_type_norm in ['LIOI_TBYTETERM', 'RIOI_TBYTETERM']: + tile_type_norm = 'IOI' + # ignore dummy tiles (ex: VBRK) if len(tiledata['bits']) == 0: if self.verbose: From 1911a458215b696970df604016fcfd968baadebe Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Tue, 24 Jan 2023 07:39:59 +0700 Subject: [PATCH 110/250] fuzzers/Makefile: add odelay fuzzer and factor out condition for high performance banks Signed-off-by: Hans Baier --- fuzzers/Makefile | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/fuzzers/Makefile b/fuzzers/Makefile index 94a109491..dde3c34a2 100644 --- a/fuzzers/Makefile +++ b/fuzzers/Makefile @@ -84,6 +84,11 @@ fuzzer_$(1): fuzzer_ok/fuzzer_$(1)_$(XRAY_PART).ok endef +ifeq ($(XRAY_DATABASE),kintex7) +HAS_HIGH_PERFORMANCE_BANKS=1 +else +HAS_HIGH_PERFORMANCE_BANKS=0 +endif $(eval $(call fuzzer,000-init-db,,part)) ifneq ($(FUZZONLY),Y) @@ -113,7 +118,7 @@ $(eval $(call fuzzer,027-bram36-config,005-tilegrid,all)) $(eval $(call fuzzer,028-fifo-config,005-tilegrid,all)) $(eval $(call fuzzer,029-bram-fifo-config,005-tilegrid,all)) $(eval $(call fuzzer,030-iob,005-tilegrid,all)) -ifeq ($(XRAY_DATABASE),kintex7) +ifeq ($(HAS_HIGH_PERFORMANCE_BANKS),1) $(eval $(call fuzzer,030-iob18,005-tilegrid,all)) endif $(eval $(call fuzzer,031-cmt-mmcm,005-tilegrid,all)) @@ -126,16 +131,17 @@ $(eval $(call fuzzer,034b-cmt-mmcm-pips,005-tilegrid 071-ppips,all)) endif $(eval $(call fuzzer,035-iob-ilogic,005-tilegrid,all)) $(eval $(call fuzzer,035a-iob-idelay,005-tilegrid,all)) -ifeq ($(XRAY_DATABASE),kintex7) +ifeq ($(HAS_HIGH_PERFORMANCE_BANKS),1) $(eval $(call fuzzer,035a-iob18-idelay,005-tilegrid,all)) +$(eval $(call fuzzer,035a-iob18-odelay,005-tilegrid,all)) endif $(eval $(call fuzzer,035b-iob-iserdes,005-tilegrid,all)) $(eval $(call fuzzer,036-iob-ologic,005-tilegrid,all)) -ifeq ($(XRAY_DATABASE),kintex7) +ifeq ($(HAS_HIGH_PERFORMANCE_BANKS),1) $(eval $(call fuzzer,036-iob18-ologic,005-tilegrid,all)) endif $(eval $(call fuzzer,037-iob-pips,005-tilegrid 035b-iob-iserdes,all)) -ifeq ($(XRAY_DATABASE),kintex7) +ifeq ($(HAS_HIGH_PERFORMANCE_BANKS),1) $(eval $(call fuzzer,037-iob18-pips,005-tilegrid 035b-iob-iserdes,all)) endif $(eval $(call fuzzer,038-cfg,005-tilegrid,all)) @@ -148,7 +154,7 @@ $(eval $(call fuzzer,044-clk-bufg-pips,046-clk-bufg-muxed-pips,all)) $(eval $(call fuzzer,045-hclk-cmt-pips,005-tilegrid,all)) $(eval $(call fuzzer,046-clk-bufg-muxed-pips,005-tilegrid,all)) $(eval $(call fuzzer,047-hclk-ioi-pips,005-tilegrid,all)) -ifeq ($(XRAY_DATABASE),kintex7) +ifeq ($(HAS_HIGH_PERFORMANCE_BANKS),1) $(eval $(call fuzzer,047-hclk-ioi18-pips,005-tilegrid,all)) endif $(eval $(call fuzzer,047a-hclk-idelayctrl-pips,047-hclk-ioi-pips,all)) From 739e8085cb6535448b3acf480542e7c5f41851d2 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Tue, 24 Jan 2023 19:35:57 +0100 Subject: [PATCH 111/250] readme: update shield syntax (badges/shields#8671) Signed-off-by: Unai Martinez-Corral --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ac8abb4e..3f466d900 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Documentation Status](https://img.shields.io/readthedocs/prjxray?longCache=true&style=flat-square&logo=ReadTheDocs&logoColor=fff)](http://prjxray.readthedocs.org/) [![License](https://img.shields.io/github/license/f4pga/prjxray.svg?longCache=true&style=flat-square&label=License)](https://github.com/f4pga/prjxray/blob/master/LICENSE) -![GitHub Actions](https://img.shields.io/github/workflow/status/f4pga/prjxray/Automerge/master?longCache=true&style=flat-square&label=GHA&logo=Github%20Actions&logoColor=fff) +![GitHub Actions](https://img.shields.io/github/actions/workflow/status/f4pga/prjxray/Automerge.yml?branch=master&longCache=true&style=flat-square&label=GHA&logo=Github%20Actions&logoColor=fff) Documenting the Xilinx 7-series bit-stream format. From 4e51331fe332aecf1803aa6f7eeade67fede955e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Feb 2023 17:22:43 +0000 Subject: [PATCH 112/250] build(deps): bump third_party/sanitizers-cmake (#2100) Bumps [third_party/sanitizers-cmake](https://github.com/arsenm/sanitizers-cmake) from `a6748f4` to `c3dc841`. - [Release notes](https://github.com/arsenm/sanitizers-cmake/releases) - [Commits](https://github.com/arsenm/sanitizers-cmake/compare/a6748f4f51273d86312e3d27ebe5277c9b1ff870...c3dc841af4dbf44669e65b82cb68a575864326bd) --- updated-dependencies: - dependency-name: third_party/sanitizers-cmake dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/sanitizers-cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/sanitizers-cmake b/third_party/sanitizers-cmake index a6748f4f5..c3dc841af 160000 --- a/third_party/sanitizers-cmake +++ b/third_party/sanitizers-cmake @@ -1 +1 @@ -Subproject commit a6748f4f51273d86312e3d27ebe5277c9b1ff870 +Subproject commit c3dc841af4dbf44669e65b82cb68a575864326bd From d4eb9a9de054198d95820b85f299a4c15a266413 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Feb 2023 17:27:08 +0000 Subject: [PATCH 113/250] build(deps): bump third_party/abseil-cpp from `4eef161` to `cdad8cd` (#2102) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `4eef161` to `cdad8cd`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/4eef16170014f75f4291ae335a271900f89eaedf...cdad8cd96ee9bfe11056997dc960eb2e52c6b00e) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 4eef16170..cdad8cd96 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 4eef16170014f75f4291ae335a271900f89eaedf +Subproject commit cdad8cd96ee9bfe11056997dc960eb2e52c6b00e From a28daa2cd036e55dd0057351d06a2ea37241bcea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 19:31:22 +0000 Subject: [PATCH 114/250] build(deps): bump third_party/abseil-cpp from `cdad8cd` to `cde2f0e` (#2103) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `cdad8cd` to `cde2f0e`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/cdad8cd96ee9bfe11056997dc960eb2e52c6b00e...cde2f0eaaed3fb8581511cb5719d39172a5a2d81) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index cdad8cd96..cde2f0eaa 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit cdad8cd96ee9bfe11056997dc960eb2e52c6b00e +Subproject commit cde2f0eaaed3fb8581511cb5719d39172a5a2d81 From 56e22e539f9add7e7241e49d17171f47751f3f4b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Feb 2023 19:32:29 +0000 Subject: [PATCH 115/250] build(deps): bump third_party/googletest from `ec25eea` to `b73f27f` (#2104) Bumps [third_party/googletest](https://github.com/google/googletest) from `ec25eea` to `b73f27f`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/ec25eea8f8237cf86c30703f59747e42f34b6f75...b73f27fd164456fea9aba56163f5511355a03272) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index ec25eea8f..b73f27fd1 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit ec25eea8f8237cf86c30703f59747e42f34b6f75 +Subproject commit b73f27fd164456fea9aba56163f5511355a03272 From 91d0686ea4a24f99a79845afb43bae6a8c70fe70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Feb 2023 19:24:26 +0000 Subject: [PATCH 116/250] build(deps): bump third_party/abseil-cpp from `cde2f0e` to `bd624d9` (#2108) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `cde2f0e` to `bd624d9`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/cde2f0eaaed3fb8581511cb5719d39172a5a2d81...bd624d9f9825f76f14453beb3df81d82b9e17062) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index cde2f0eaa..bd624d9f9 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit cde2f0eaaed3fb8581511cb5719d39172a5a2d81 +Subproject commit bd624d9f9825f76f14453beb3df81d82b9e17062 From e395578c730104b125db3fa1d0d76dc99202b44b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Feb 2023 19:32:24 +0000 Subject: [PATCH 117/250] build(deps): bump third_party/googletest from `b73f27f` to `7a7231c` (#2106) Bumps [third_party/googletest](https://github.com/google/googletest) from `b73f27f` to `7a7231c`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/b73f27fd164456fea9aba56163f5511355a03272...7a7231c442484be389fdf01594310349ca0e42a8) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index b73f27fd1..7a7231c44 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit b73f27fd164456fea9aba56163f5511355a03272 +Subproject commit 7a7231c442484be389fdf01594310349ca0e42a8 From b3e3ad36ae2e61c161808dd35fa79ef3f068f078 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Feb 2023 19:35:13 +0000 Subject: [PATCH 118/250] build(deps): bump third_party/yosys from `611f71c` to `f011633` (#2107) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `611f71c` to `f011633`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/611f71c67020eb501cedd24b2b10751fc1188f5e...f0116330bce4e787dcbbf81c6e901a44715589a8) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 611f71c67..f0116330b 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 611f71c67020eb501cedd24b2b10751fc1188f5e +Subproject commit f0116330bce4e787dcbbf81c6e901a44715589a8 From 3cc838a27c165ddc4928ec64051098b25517caae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 19:22:49 +0000 Subject: [PATCH 119/250] build(deps): bump third_party/googletest from `7a7231c` to `3d787f5` (#2110) Bumps [third_party/googletest](https://github.com/google/googletest) from `7a7231c` to `3d787f5`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/7a7231c442484be389fdf01594310349ca0e42a8...3d787f5a0d58cfc37a0563bb15647a0d8aa2c1bf) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 7a7231c44..3d787f5a0 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 7a7231c442484be389fdf01594310349ca0e42a8 +Subproject commit 3d787f5a0d58cfc37a0563bb15647a0d8aa2c1bf From d0887f7fa0fe66f4ab395f0ef69acff569b99b0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Feb 2023 19:31:37 +0000 Subject: [PATCH 120/250] build(deps): bump third_party/abseil-cpp from `bd624d9` to `f2b5237` (#2111) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `bd624d9` to `f2b5237`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/bd624d9f9825f76f14453beb3df81d82b9e17062...f2b52372f7f553a4e9b2558daf2d14d3adf484da) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index bd624d9f9..f2b52372f 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit bd624d9f9825f76f14453beb3df81d82b9e17062 +Subproject commit f2b52372f7f553a4e9b2558daf2d14d3adf484da From 5c64f0928c837e6f2481631a5711bb35da8f05c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Mar 2023 18:17:08 +0000 Subject: [PATCH 121/250] build(deps): bump third_party/yaml-cpp from `1b50109` to `d7f672d` (#2115) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `1b50109` to `d7f672d`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/1b50109f7bea60bd382d8ea7befce3d2bd67da5f...d7f672d1413040d2ea850ecb32644150da2e10db) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index 1b50109f7..d7f672d14 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit 1b50109f7bea60bd382d8ea7befce3d2bd67da5f +Subproject commit d7f672d1413040d2ea850ecb32644150da2e10db From a5e5c897c4ccf754b10db5e83137d27793a33aed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Mar 2023 18:19:13 +0000 Subject: [PATCH 122/250] build(deps): bump third_party/yosys from `f011633` to `9747e55` (#2114) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `f011633` to `9747e55`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/f0116330bce4e787dcbbf81c6e901a44715589a8...9747e55d9520631c4405ec42c02d5197c2ea57ab) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index f0116330b..9747e55d9 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit f0116330bce4e787dcbbf81c6e901a44715589a8 +Subproject commit 9747e55d9520631c4405ec42c02d5197c2ea57ab From ba4b730f07afcb0f83b8d0f5134847bf4b0e2b57 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Mar 2023 19:19:37 +0000 Subject: [PATCH 123/250] build(deps): bump third_party/googletest from `3d787f5` to `cead3d5` (#2112) Bumps [third_party/googletest](https://github.com/google/googletest) from `3d787f5` to `cead3d5`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/3d787f5a0d58cfc37a0563bb15647a0d8aa2c1bf...cead3d57c93ff8c4e5c1bbae57a5c0b0b0f6e168) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 3d787f5a0..cead3d57c 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 3d787f5a0d58cfc37a0563bb15647a0d8aa2c1bf +Subproject commit cead3d57c93ff8c4e5c1bbae57a5c0b0b0f6e168 From 8c3296fa2aa47f5720925fa145ac8df1cede3a50 Mon Sep 17 00:00:00 2001 From: Jeff Goeders Date: Thu, 9 Mar 2023 15:28:21 -0700 Subject: [PATCH 124/250] Remove cpp14 directive Signed-off-by: Jeff Goeders --- CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ec89c6ba..9e1ad2c5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,8 +36,6 @@ target_include_directories(yaml-cpp PUBLIC $ ) -# Set the CXX standard and compile time for our code only. -set(CMAKE_CXX_STANDARD 14) add_compile_options(-Wall -Werror) add_subdirectory(lib) From 5716819ee812253cfadcb51018a28e2506c9d24b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 18:19:43 +0000 Subject: [PATCH 125/250] build(deps): bump third_party/yosys from `9747e55` to `101d19b` (#2122) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `9747e55` to `101d19b`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/9747e55d9520631c4405ec42c02d5197c2ea57ab...101d19bb6aef187653e240f5c6859e4d2efde1b5) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 9747e55d9..101d19bb6 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 9747e55d9520631c4405ec42c02d5197c2ea57ab +Subproject commit 101d19bb6aef187653e240f5c6859e4d2efde1b5 From a13722611b01f0d9e1eb4096c3873390f00ee33e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 19:22:10 +0000 Subject: [PATCH 126/250] build(deps): bump third_party/abseil-cpp from `f2b5237` to `d8933b8` (#2120) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `f2b5237` to `d8933b8`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/f2b52372f7f553a4e9b2558daf2d14d3adf484da...d8933b836b1e1aac982b1dd42cc6ac1343a878d5) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index f2b52372f..d8933b836 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit f2b52372f7f553a4e9b2558daf2d14d3adf484da +Subproject commit d8933b836b1e1aac982b1dd42cc6ac1343a878d5 From 89c24d635b149a05b103bbafde76c3488b218287 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 19:29:04 +0000 Subject: [PATCH 127/250] build(deps): bump third_party/googletest from `cead3d5` to `391ce62` (#2119) Bumps [third_party/googletest](https://github.com/google/googletest) from `cead3d5` to `391ce62`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/cead3d57c93ff8c4e5c1bbae57a5c0b0b0f6e168...391ce627def20c1e8a54d10b12949b15086473dd) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index cead3d57c..391ce627d 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit cead3d57c93ff8c4e5c1bbae57a5c0b0b0f6e168 +Subproject commit 391ce627def20c1e8a54d10b12949b15086473dd From f9f017bb7b3dc5e2a2e64397511ffc86e6f4244d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 Mar 2023 19:32:49 +0000 Subject: [PATCH 128/250] build(deps): bump third_party/yaml-cpp from `d7f672d` to `987a604` (#2121) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `d7f672d` to `987a604`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/d7f672d1413040d2ea850ecb32644150da2e10db...987a60425611bfd02a90bd247d630483bceaaeee) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index d7f672d14..987a60425 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit d7f672d1413040d2ea850ecb32644150da2e10db +Subproject commit 987a60425611bfd02a90bd247d630483bceaaeee From 1df6732009af22a3f428faecc644161ebb954d24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Mar 2023 18:15:42 +0000 Subject: [PATCH 129/250] build(deps): bump third_party/googletest from `391ce62` to `e9fb5c7` (#2130) Bumps [third_party/googletest](https://github.com/google/googletest) from `391ce62` to `e9fb5c7`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/391ce627def20c1e8a54d10b12949b15086473dd...e9fb5c7bacc4a25b030569c92ff9f6925288f1c3) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 391ce627d..e9fb5c7ba 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 391ce627def20c1e8a54d10b12949b15086473dd +Subproject commit e9fb5c7bacc4a25b030569c92ff9f6925288f1c3 From c143728499e139e2c8e84f5ae0220b9851d99bd9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Mar 2023 18:18:07 +0000 Subject: [PATCH 130/250] build(deps): bump third_party/yosys from `101d19b` to `53c0a6b` (#2129) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `101d19b` to `53c0a6b`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/101d19bb6aef187653e240f5c6859e4d2efde1b5...53c0a6b780199dc56348916acf7c00e30f65e1ec) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 101d19bb6..53c0a6b78 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 101d19bb6aef187653e240f5c6859e4d2efde1b5 +Subproject commit 53c0a6b780199dc56348916acf7c00e30f65e1ec From 45dcd502422c6604c4ac63046755e6b313c6c755 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Mar 2023 18:18:46 +0000 Subject: [PATCH 131/250] build(deps): bump third_party/cctz from `83ffd88` to `4eda743` (#2132) Bumps [third_party/cctz](https://github.com/google/cctz) from `83ffd88` to `4eda743`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/83ffd88d7c9a48d1dc61f04cb649cd52966d2fff...4eda7435413ec88be31ce2313c11f1b7a8832b9c) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index 83ffd88d7..4eda74354 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit 83ffd88d7c9a48d1dc61f04cb649cd52966d2fff +Subproject commit 4eda7435413ec88be31ce2313c11f1b7a8832b9c From f55ee0e8bb317559da24733ff68993870607aad7 Mon Sep 17 00:00:00 2001 From: ABHISHEK ANAND Date: Tue, 28 Mar 2023 00:32:56 +0530 Subject: [PATCH 132/250] Updated iterator class updated the code which was using the std::iterator class, which has been marked as deprecated in the C++17 standard Signed-off-by: ABHISHEK ANAND --- lib/include/prjxray/big_endian_span.h | 10 ++++++-- lib/include/prjxray/segbits_file_reader.h | 11 ++++++--- lib/include/prjxray/xilinx/bitstream_reader.h | 11 ++++++--- lib/include/prjxray/xilinx/bitstream_writer.h | 24 +++++++++++++------ 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/lib/include/prjxray/big_endian_span.h b/lib/include/prjxray/big_endian_span.h index 7f3ee52ba..0d72c4df7 100644 --- a/lib/include/prjxray/big_endian_span.h +++ b/lib/include/prjxray/big_endian_span.h @@ -56,9 +56,15 @@ class BigEndianSpan { absl::Span bytes_; }; - class iterator - : public std::iterator { + class iterator { public: + + using iterator_category = std::input_iterator_tag; + using value_type = BigEndianSpan::value_type; + using difference_type = std::ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; + value_type operator*() const { return value_type(bytes_); } bool operator==(const iterator& other) const { diff --git a/lib/include/prjxray/segbits_file_reader.h b/lib/include/prjxray/segbits_file_reader.h index 8635acb06..4ac72b886 100644 --- a/lib/include/prjxray/segbits_file_reader.h +++ b/lib/include/prjxray/segbits_file_reader.h @@ -34,9 +34,14 @@ class SegbitsFileReader { absl::string_view bit_; }; - class iterator - : public std::iterator { - public: + class iterator { + public: + using iterator_category = std::input_iterator_tag; + using value_type = SegbitsFileReader::value_type; + using difference_type = std::ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; + iterator& operator++(); bool operator==(iterator other) const { diff --git a/lib/include/prjxray/xilinx/bitstream_reader.h b/lib/include/prjxray/xilinx/bitstream_reader.h index bffa9995e..b47cd21ab 100644 --- a/lib/include/prjxray/xilinx/bitstream_reader.h +++ b/lib/include/prjxray/xilinx/bitstream_reader.h @@ -33,9 +33,14 @@ class BitstreamReader { // Implements an iterator over the words grouped in configuration // packets. - class iterator - : public std::iterator { - public: + class iterator { + public: + using iterator_category = std::input_iterator_tag; + using value_type = BitstreamReader::value_type; + using difference_type = std::ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; + iterator& operator++(); bool operator==(const iterator& other) const; diff --git a/lib/include/prjxray/xilinx/bitstream_writer.h b/lib/include/prjxray/xilinx/bitstream_writer.h index 81cddaf4f..0f15b4fbf 100644 --- a/lib/include/prjxray/xilinx/bitstream_writer.h +++ b/lib/include/prjxray/xilinx/bitstream_writer.h @@ -51,9 +51,14 @@ class BitstreamWriter { typedef absl::Span::iterator data_iterator_t; using itr_value_type = uint32_t; - class packet_iterator - : public std::iterator { - public: + class packet_iterator { + public: + using iterator_category = std::input_iterator_tag; + using value_type = BitstreamWriter::itr_value_type; + using difference_type = std::ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; + packet_iterator& operator++(); bool operator==(const packet_iterator& other) const; @@ -76,7 +81,7 @@ class BitstreamWriter { data_iterator_t itr_data); private: - friend iterator; + friend class iterator; friend BitstreamWriter; // Data iterators @@ -89,9 +94,14 @@ class BitstreamWriter { packet_; }; - class iterator - : public std::iterator { - public: + class iterator { + public: + using iterator_category = std::input_iterator_tag; + using value_type = BitstreamWriter::itr_value_type; + using difference_type = std::ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; + iterator& operator++(); bool operator==(const iterator& other) const; From 270a9724a9a867ecaa82d3a7c44b69bf2f7f1be6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Apr 2023 19:18:55 +0000 Subject: [PATCH 133/250] build(deps): bump third_party/googletest from `e9fb5c7` to `b5fd99b` (#2138) Bumps [third_party/googletest](https://github.com/google/googletest) from `e9fb5c7` to `b5fd99b`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/e9fb5c7bacc4a25b030569c92ff9f6925288f1c3...b5fd99bbd55ebe1a3488b8ea3717fba089293457) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index e9fb5c7ba..b5fd99bbd 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit e9fb5c7bacc4a25b030569c92ff9f6925288f1c3 +Subproject commit b5fd99bbd55ebe1a3488b8ea3717fba089293457 From 76401bd93e493fd5ff4c2af4751d12105b0f4f6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Apr 2023 19:23:45 +0000 Subject: [PATCH 134/250] build(deps): bump third_party/abseil-cpp from `d8933b8` to `e46a87a` (#2139) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `d8933b8` to `e46a87a`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/d8933b836b1e1aac982b1dd42cc6ac1343a878d5...e46a87a16e7650a9d226dc0c6b7b1cedad9cff6f) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index d8933b836..e46a87a16 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit d8933b836b1e1aac982b1dd42cc6ac1343a878d5 +Subproject commit e46a87a16e7650a9d226dc0c6b7b1cedad9cff6f From ff2a387da9103d3c45866344a2f4a2d6b1046f7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Apr 2023 19:13:44 +0000 Subject: [PATCH 135/250] build(deps): bump third_party/abseil-cpp from `e46a87a` to `42a3c03` (#2140) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `e46a87a` to `42a3c03`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/e46a87a16e7650a9d226dc0c6b7b1cedad9cff6f...42a3c030c958e6e099162b746ada04792b3a1c67) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index e46a87a16..42a3c030c 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit e46a87a16e7650a9d226dc0c6b7b1cedad9cff6f +Subproject commit 42a3c030c958e6e099162b746ada04792b3a1c67 From 6fa3a8925e710256048fc9ccb32766a9d3ba5a99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Apr 2023 19:20:13 +0000 Subject: [PATCH 136/250] build(deps): bump third_party/googletest from `b5fd99b` to `057b4e9` (#2141) Bumps [third_party/googletest](https://github.com/google/googletest) from `b5fd99b` to `057b4e9`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/b5fd99bbd55ebe1a3488b8ea3717fba089293457...057b4e904fd754135dc19ff557c14036fd316425) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index b5fd99bbd..057b4e904 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit b5fd99bbd55ebe1a3488b8ea3717fba089293457 +Subproject commit 057b4e904fd754135dc19ff557c14036fd316425 From 7a6c74ee580e0a3453d4da562a5e4a68e6721620 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Apr 2023 19:18:33 +0000 Subject: [PATCH 137/250] build(deps): bump third_party/googletest from `057b4e9` to `12a5852` (#2144) Bumps [third_party/googletest](https://github.com/google/googletest) from `057b4e9` to `12a5852`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/057b4e904fd754135dc19ff557c14036fd316425...12a5852e451baabc79c63a86c634912c563d57bc) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 057b4e904..12a5852e4 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 057b4e904fd754135dc19ff557c14036fd316425 +Subproject commit 12a5852e451baabc79c63a86c634912c563d57bc From 8aa91fa11559609a21bcb4de0933663c973c3ed7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Apr 2023 19:23:14 +0000 Subject: [PATCH 138/250] build(deps): bump third_party/yosys from `53c0a6b` to `a9c792d` (#2143) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `53c0a6b` to `a9c792d`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/53c0a6b780199dc56348916acf7c00e30f65e1ec...a9c792dceef4be21059ff4732d1aff62e67d96bc) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 53c0a6b78..a9c792dce 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 53c0a6b780199dc56348916acf7c00e30f65e1ec +Subproject commit a9c792dceef4be21059ff4732d1aff62e67d96bc From 694a4dd6de4ee78452daed2e97e62cd126c63441 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Apr 2023 19:25:02 +0000 Subject: [PATCH 139/250] build(deps): bump third_party/googletest from `12a5852` to `783d00f` (#2150) Bumps [third_party/googletest](https://github.com/google/googletest) from `12a5852` to `783d00f`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/12a5852e451baabc79c63a86c634912c563d57bc...783d00fd19865fcbc3065e3fb3e17144761fcf5a) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 12a5852e4..783d00fd1 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 12a5852e451baabc79c63a86c634912c563d57bc +Subproject commit 783d00fd19865fcbc3065e3fb3e17144761fcf5a From db4ee5819f3304c15d37ee7da2b591e220572933 Mon Sep 17 00:00:00 2001 From: Dennis Schmidt <20640295+dlschmidt@users.noreply.github.com> Date: Sat, 29 Apr 2023 17:18:19 +0200 Subject: [PATCH 140/250] Add missing import for cstdint to tools/bits2rbt/header.h Signed-off-by: Dennis Schmidt <20640295+dlschmidt@users.noreply.github.com> --- tools/bits2rbt/header.h | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/bits2rbt/header.h b/tools/bits2rbt/header.h index 3c42fb43c..f422b7420 100644 --- a/tools/bits2rbt/header.h +++ b/tools/bits2rbt/header.h @@ -4,6 +4,7 @@ #include #include #include +#include class Header { public: From 5ff92f8eb8ad61fddc3fa27f5d6ed8d9cee7b96f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Apr 2023 19:29:07 +0000 Subject: [PATCH 141/250] build(deps): bump third_party/abseil-cpp from `42a3c03` to `e9a7eea` (#2151) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `42a3c03` to `e9a7eea`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/42a3c030c958e6e099162b746ada04792b3a1c67...e9a7eea615352e2f74c13585a4b031f868b3bfa7) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 42a3c030c..e9a7eea61 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 42a3c030c958e6e099162b746ada04792b3a1c67 +Subproject commit e9a7eea615352e2f74c13585a4b031f868b3bfa7 From a744328dad62e7b632f12745489b4eafe0a0b803 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Apr 2023 19:33:16 +0000 Subject: [PATCH 142/250] build(deps): bump third_party/googletest from `783d00f` to `797b0ad` (#2153) Bumps [third_party/googletest](https://github.com/google/googletest) from `783d00f` to `797b0ad`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/783d00fd19865fcbc3065e3fb3e17144761fcf5a...797b0ad2a3a45608ecf5c67e6e289d377a3521ca) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 783d00fd1..797b0ad2a 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 783d00fd19865fcbc3065e3fb3e17144761fcf5a +Subproject commit 797b0ad2a3a45608ecf5c67e6e289d377a3521ca From 5b078078222d41d6300ea7f3b242708004837ce0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Apr 2023 19:36:46 +0000 Subject: [PATCH 143/250] build(deps): bump third_party/yosys from `a9c792d` to `cee3cb3` (#2154) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `a9c792d` to `cee3cb3`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/a9c792dceef4be21059ff4732d1aff62e67d96bc...cee3cb31b98e3b67af3165969c8cfc0616c37e19) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index a9c792dce..cee3cb31b 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit a9c792dceef4be21059ff4732d1aff62e67d96bc +Subproject commit cee3cb31b98e3b67af3165969c8cfc0616c37e19 From 65a12e6a681a81788c07eda6433c755c835a1c1b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 May 2023 19:21:59 +0000 Subject: [PATCH 144/250] build(deps): bump third_party/abseil-cpp from `e9a7eea` to `419b54d` (#2157) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `e9a7eea` to `419b54d`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/e9a7eea615352e2f74c13585a4b031f868b3bfa7...419b54d4870e31ae2442b7f453c7b8d5b8c08026) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index e9a7eea61..419b54d48 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit e9a7eea615352e2f74c13585a4b031f868b3bfa7 +Subproject commit 419b54d4870e31ae2442b7f453c7b8d5b8c08026 From 8f9f6c0191421959f6c771a324ec92bc48152bbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 May 2023 19:25:30 +0000 Subject: [PATCH 145/250] build(deps): bump third_party/yosys from `cee3cb3` to `4251d37` (#2159) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `cee3cb3` to `4251d37`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/cee3cb31b98e3b67af3165969c8cfc0616c37e19...4251d37f4fc66108ead53af677739563de4ee7f8) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index cee3cb31b..4251d37f4 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit cee3cb31b98e3b67af3165969c8cfc0616c37e19 +Subproject commit 4251d37f4fc66108ead53af677739563de4ee7f8 From a2c8a6173072aac80ed71a9c1ff551d006c659a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 May 2023 19:28:31 +0000 Subject: [PATCH 146/250] build(deps): bump third_party/abseil-cpp from `419b54d` to `68be731` (#2165) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `419b54d` to `68be731`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/419b54d4870e31ae2442b7f453c7b8d5b8c08026...68be7315913c8ef8a791a0fb60d98e98787d88b6) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 419b54d48..68be73159 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 419b54d4870e31ae2442b7f453c7b8d5b8c08026 +Subproject commit 68be7315913c8ef8a791a0fb60d98e98787d88b6 From 2acd0dbd33a4637577efef6911968f18ea6b1d5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 May 2023 19:31:02 +0000 Subject: [PATCH 147/250] build(deps): bump third_party/googletest from `797b0ad` to `cb455a7` (#2166) Bumps [third_party/googletest](https://github.com/google/googletest) from `797b0ad` to `cb455a7`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/797b0ad2a3a45608ecf5c67e6e289d377a3521ca...cb455a71fb23303e37ce8ee5b1cde6a2c18f66a5) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 797b0ad2a..cb455a71f 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 797b0ad2a3a45608ecf5c67e6e289d377a3521ca +Subproject commit cb455a71fb23303e37ce8ee5b1cde6a2c18f66a5 From 90b0dd44f2de8efafca3f6591589ee8bdde266bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 27 May 2023 19:23:32 +0000 Subject: [PATCH 148/250] build(deps): bump third_party/yosys from `4251d37` to `8596c5c` (#2172) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `4251d37` to `8596c5c`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/4251d37f4fc66108ead53af677739563de4ee7f8...8596c5ce4915d1727d93df45fc58047f08886b41) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 4251d37f4..8596c5ce4 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 4251d37f4fc66108ead53af677739563de4ee7f8 +Subproject commit 8596c5ce4915d1727d93df45fc58047f08886b41 From 6784ed706aa61b024372237199b8a98b7e042d7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 27 May 2023 19:29:18 +0000 Subject: [PATCH 149/250] build(deps): bump third_party/cctz from `4eda743` to `ee24973` (#2173) Bumps [third_party/cctz](https://github.com/google/cctz) from `4eda743` to `ee24973`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/4eda7435413ec88be31ce2313c11f1b7a8832b9c...ee24973228e3976663ce71cc616cd874810c2c3e) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index 4eda74354..ee2497322 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit 4eda7435413ec88be31ce2313c11f1b7a8832b9c +Subproject commit ee24973228e3976663ce71cc616cd874810c2c3e From 716f179d7963d7a129eccb62faa2f0e3ad7899ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 27 May 2023 19:34:32 +0000 Subject: [PATCH 150/250] build(deps): bump third_party/abseil-cpp from `68be731` to `8e45685` (#2171) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `68be731` to `8e45685`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/68be7315913c8ef8a791a0fb60d98e98787d88b6...8e45685002488b55f24cb67a795eaa8d1c3297a1) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 68be73159..8e4568500 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 68be7315913c8ef8a791a0fb60d98e98787d88b6 +Subproject commit 8e45685002488b55f24cb67a795eaa8d1c3297a1 From 899b0a3062c8313c4407d3751e593c8b9581faca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 19:19:44 +0000 Subject: [PATCH 151/250] build(deps): bump third_party/abseil-cpp from `8e45685` to `1feab4f` (#2179) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `8e45685` to `1feab4f`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/8e45685002488b55f24cb67a795eaa8d1c3297a1...1feab4fff90f904518e66cf80971063486fbc984) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 8e4568500..1feab4fff 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 8e45685002488b55f24cb67a795eaa8d1c3297a1 +Subproject commit 1feab4fff90f904518e66cf80971063486fbc984 From 530003452756f2bc805a97ea1e08d08200002b19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Jun 2023 19:36:46 +0000 Subject: [PATCH 152/250] build(deps): bump third_party/yosys from `8596c5c` to `236e15f` (#2177) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `8596c5c` to `236e15f`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/8596c5ce4915d1727d93df45fc58047f08886b41...236e15f3b06fc4a05143399cf10b682996d5c509) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 8596c5ce4..236e15f3b 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 8596c5ce4915d1727d93df45fc58047f08886b41 +Subproject commit 236e15f3b06fc4a05143399cf10b682996d5c509 From 077c01dabf06a932d4d5b2437f40ea029e52a5dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Jun 2023 19:25:06 +0000 Subject: [PATCH 153/250] build(deps): bump third_party/yosys from `236e15f` to `9ba7170` (#2186) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `236e15f` to `9ba7170`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/236e15f3b06fc4a05143399cf10b682996d5c509...9ba717091975d4b8e5f4154284c2a96e5b138706) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 236e15f3b..9ba717091 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 236e15f3b06fc4a05143399cf10b682996d5c509 +Subproject commit 9ba717091975d4b8e5f4154284c2a96e5b138706 From 1d1773cee7258b071eca19c827c334c296bee846 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Jun 2023 19:27:49 +0000 Subject: [PATCH 154/250] build(deps): bump third_party/googletest from `cb455a7` to `ec4fed9` (#2185) Bumps [third_party/googletest](https://github.com/google/googletest) from `cb455a7` to `ec4fed9`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/cb455a71fb23303e37ce8ee5b1cde6a2c18f66a5...ec4fed93217bc2830959bb8e86798c1d86956949) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index cb455a71f..ec4fed932 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit cb455a71fb23303e37ce8ee5b1cde6a2c18f66a5 +Subproject commit ec4fed93217bc2830959bb8e86798c1d86956949 From 7451381d346b91294bb96a1cd5329bc62f860264 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 19:25:19 +0000 Subject: [PATCH 155/250] build(deps): bump third_party/yaml-cpp from `987a604` to `b888265` (#2189) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `987a604` to `b888265`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/987a60425611bfd02a90bd247d630483bceaaeee...b8882652fcbeba4c00dec019a39da91e702e474e) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index 987a60425..b8882652f 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit 987a60425611bfd02a90bd247d630483bceaaeee +Subproject commit b8882652fcbeba4c00dec019a39da91e702e474e From ed97bff8b84e3eeadcc02b0b1ce5aac5e3c0d80c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 19:28:21 +0000 Subject: [PATCH 156/250] build(deps): bump third_party/googletest from `ec4fed9` to `be03d00` (#2190) Bumps [third_party/googletest](https://github.com/google/googletest) from `ec4fed9` to `be03d00`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/ec4fed93217bc2830959bb8e86798c1d86956949...be03d00f5f0cc3a997d1a368bee8a1fe93651f48) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index ec4fed932..be03d00f5 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit ec4fed93217bc2830959bb8e86798c1d86956949 +Subproject commit be03d00f5f0cc3a997d1a368bee8a1fe93651f48 From 7be2ad3063f307490e16f97361a92bc20136f7a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Jul 2023 19:01:05 +0000 Subject: [PATCH 157/250] build(deps): bump third_party/yosys from `9ba7170` to `14d50a1` (#2195) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `9ba7170` to `14d50a1`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/9ba717091975d4b8e5f4154284c2a96e5b138706...14d50a176d59a5eac95a57a01f9e933297251d5b) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 9ba717091..14d50a176 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 9ba717091975d4b8e5f4154284c2a96e5b138706 +Subproject commit 14d50a176d59a5eac95a57a01f9e933297251d5b From 9495c3be79c6b6cdfdfa45b2a120c11ec5e99670 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Jul 2023 19:02:44 +0000 Subject: [PATCH 158/250] build(deps): bump third_party/googletest from `be03d00` to `4a1a299` (#2196) Bumps [third_party/googletest](https://github.com/google/googletest) from `be03d00` to `4a1a299`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/be03d00f5f0cc3a997d1a368bee8a1fe93651f48...4a1a299b206ba250a4318f74938ea67c75c3c0c9) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index be03d00f5..4a1a299b2 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit be03d00f5f0cc3a997d1a368bee8a1fe93651f48 +Subproject commit 4a1a299b206ba250a4318f74938ea67c75c3c0c9 From 807670ce0cb1863c87f018c89a1345cc06d9c1cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Jul 2023 19:32:48 +0000 Subject: [PATCH 159/250] build(deps): bump third_party/abseil-cpp from `1feab4f` to `5938263` (#2197) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `1feab4f` to `5938263`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/1feab4fff90f904518e66cf80971063486fbc984...593826300ac2d1a8a6538bbdefc20d441db648e6) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 1feab4fff..593826300 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 1feab4fff90f904518e66cf80971063486fbc984 +Subproject commit 593826300ac2d1a8a6538bbdefc20d441db648e6 From d6f2f4aa5565a952cfc7ac6e4be51a0b33e4c34e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Jul 2023 18:50:29 +0000 Subject: [PATCH 160/250] build(deps): bump third_party/abseil-cpp from `5938263` to `d74b110` (#2199) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `5938263` to `d74b110`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/593826300ac2d1a8a6538bbdefc20d441db648e6...d74b1104a5e9a24964b34c30dcbfbc3bcca88576) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 593826300..d74b1104a 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 593826300ac2d1a8a6538bbdefc20d441db648e6 +Subproject commit d74b1104a5e9a24964b34c30dcbfbc3bcca88576 From 63bbc9f3ac0b7bd0560dbd2a17c23016bc56eddd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Jul 2023 18:57:44 +0000 Subject: [PATCH 161/250] build(deps): bump third_party/yosys from `14d50a1` to `c023b94` (#2200) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `14d50a1` to `c023b94`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/14d50a176d59a5eac95a57a01f9e933297251d5b...c023b9485a5a6ba336fa6d96a3412840955892bb) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 14d50a176..c023b9485 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 14d50a176d59a5eac95a57a01f9e933297251d5b +Subproject commit c023b9485a5a6ba336fa6d96a3412840955892bb From 648c8f60294146776052f66fa684e190225ca649 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 17:41:20 +0000 Subject: [PATCH 162/250] build(deps): bump third_party/abseil-cpp from `d74b110` to `c9c0fd5` (#2205) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `d74b110` to `c9c0fd5`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/d74b1104a5e9a24964b34c30dcbfbc3bcca88576...c9c0fd5185067208e1cc4227d16122571762af39) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index d74b1104a..c9c0fd518 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit d74b1104a5e9a24964b34c30dcbfbc3bcca88576 +Subproject commit c9c0fd5185067208e1cc4227d16122571762af39 From 83b6c03b2b227ea473066893d82f70eb3c7c37f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 17:54:19 +0000 Subject: [PATCH 163/250] build(deps): bump third_party/yaml-cpp from `b888265` to `35b4498` (#2206) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `b888265` to `35b4498`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/b8882652fcbeba4c00dec019a39da91e702e474e...35b4498026b6293bfadc75f9ee325cb16d6975af) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index b8882652f..35b449802 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit b8882652fcbeba4c00dec019a39da91e702e474e +Subproject commit 35b4498026b6293bfadc75f9ee325cb16d6975af From a9b160e4c53f33a357db1c435c229b4d69774d05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 18:38:58 +0000 Subject: [PATCH 164/250] build(deps): bump third_party/yosys from `c023b94` to `b04d0e0` (#2204) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `c023b94` to `b04d0e0`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/c023b9485a5a6ba336fa6d96a3412840955892bb...b04d0e09e83102e14a53bb8b8dcc8c35f63b2fbe) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index c023b9485..b04d0e09e 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit c023b9485a5a6ba336fa6d96a3412840955892bb +Subproject commit b04d0e09e83102e14a53bb8b8dcc8c35f63b2fbe From 85bf01bca3a19a72c409daf1632696ab47060b12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Aug 2023 18:45:48 +0000 Subject: [PATCH 165/250] build(deps): bump third_party/yosys from `b04d0e0` to `e0ba07a` (#2210) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `b04d0e0` to `e0ba07a`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/b04d0e09e83102e14a53bb8b8dcc8c35f63b2fbe...e0ba07aed3118502e623139048a24a0cd433d85f) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index b04d0e09e..e0ba07aed 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit b04d0e09e83102e14a53bb8b8dcc8c35f63b2fbe +Subproject commit e0ba07aed3118502e623139048a24a0cd433d85f From 0a571786ea5ca2808dcf1d5264358d951c242bae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Aug 2023 18:49:28 +0000 Subject: [PATCH 166/250] build(deps): bump third_party/googletest from `4a1a299` to `455fcb7` (#2211) Bumps [third_party/googletest](https://github.com/google/googletest) from `4a1a299` to `455fcb7`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/4a1a299b206ba250a4318f74938ea67c75c3c0c9...455fcb7773dedc70ab489109fb12d8abc7fd59b6) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 4a1a299b2..455fcb777 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 4a1a299b206ba250a4318f74938ea67c75c3c0c9 +Subproject commit 455fcb7773dedc70ab489109fb12d8abc7fd59b6 From f3fae25d5c9ffb13e88454c7c3c13ed761649929 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Aug 2023 18:58:41 +0000 Subject: [PATCH 167/250] build(deps): bump third_party/yaml-cpp from `35b4498` to `f732014` (#2214) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `35b4498` to `f732014`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/35b4498026b6293bfadc75f9ee325cb16d6975af...f7320141120f720aecc4c32be25586e7da9eb978) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index 35b449802..f73201411 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit 35b4498026b6293bfadc75f9ee325cb16d6975af +Subproject commit f7320141120f720aecc4c32be25586e7da9eb978 From 13be518f06a93adb3fabfb27993b6f84224da5ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Aug 2023 18:59:05 +0000 Subject: [PATCH 168/250] build(deps): bump third_party/googletest from `455fcb7` to `7e33b6a` (#2213) Bumps [third_party/googletest](https://github.com/google/googletest) from `455fcb7` to `7e33b6a`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/455fcb7773dedc70ab489109fb12d8abc7fd59b6...7e33b6a1c497ced1e98fc60175aeb4678419281c) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 455fcb777..7e33b6a1c 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 455fcb7773dedc70ab489109fb12d8abc7fd59b6 +Subproject commit 7e33b6a1c497ced1e98fc60175aeb4678419281c From bb263ff0311cd05972dbe8d87388422849d66b43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Aug 2023 19:04:31 +0000 Subject: [PATCH 169/250] build(deps): bump third_party/yosys from `e0ba07a` to `860e3e4` (#2215) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `e0ba07a` to `860e3e4`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/e0ba07aed3118502e623139048a24a0cd433d85f...860e3e40563e6d5096ba0b7b1e81d25a70deb58c) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index e0ba07aed..860e3e405 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit e0ba07aed3118502e623139048a24a0cd433d85f +Subproject commit 860e3e40563e6d5096ba0b7b1e81d25a70deb58c From 5141d730c4697a2bd4c8651b2af648f2938f00b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Sep 2023 17:46:13 +0000 Subject: [PATCH 170/250] build(deps): bump third_party/abseil-cpp from `c9c0fd5` to `efb035a` (#2231) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `c9c0fd5` to `efb035a`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/c9c0fd5185067208e1cc4227d16122571762af39...efb035a5973b60d35ed8fcaa43e6736936a96173) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index c9c0fd518..efb035a59 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit c9c0fd5185067208e1cc4227d16122571762af39 +Subproject commit efb035a5973b60d35ed8fcaa43e6736936a96173 From 22b0056ee908735bdc7d7af1becf21b7cd4fc8fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Sep 2023 17:53:20 +0000 Subject: [PATCH 171/250] build(deps): bump third_party/yaml-cpp from `f732014` to `6262201` (#2229) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `f732014` to `6262201`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/f7320141120f720aecc4c32be25586e7da9eb978...6262201182a0ee357d8a456e6d1a8e5984e4c6dd) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index f73201411..626220118 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit f7320141120f720aecc4c32be25586e7da9eb978 +Subproject commit 6262201182a0ee357d8a456e6d1a8e5984e4c6dd From 3418f9b505d1548ab4fb8b1b292251832e7be843 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 23 Sep 2023 17:52:58 +0000 Subject: [PATCH 172/250] build(deps): bump third_party/cctz from `ee24973` to `c8cd07c` (#2237) Bumps [third_party/cctz](https://github.com/google/cctz) from `ee24973` to `c8cd07c`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/ee24973228e3976663ce71cc616cd874810c2c3e...c8cd07cac8ac09882cc44cc69a4ecefaaa5c69a6) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index ee2497322..c8cd07cac 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit ee24973228e3976663ce71cc616cd874810c2c3e +Subproject commit c8cd07cac8ac09882cc44cc69a4ecefaaa5c69a6 From a6d22821649d6cef5ac6ce128be1c7a43d9dea95 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Tue, 3 Oct 2023 10:51:51 +0700 Subject: [PATCH 173/250] add basic fuzzer for STARTUPE2 Signed-off-by: Hans Baier --- fuzzers/038-cfg-startup/Makefile | 21 ++++++ fuzzers/038-cfg-startup/generate.py | 46 ++++++++++++ fuzzers/038-cfg-startup/generate.tcl | 32 +++++++++ fuzzers/038-cfg-startup/top.py | 104 +++++++++++++++++++++++++++ 4 files changed, 203 insertions(+) create mode 100644 fuzzers/038-cfg-startup/Makefile create mode 100644 fuzzers/038-cfg-startup/generate.py create mode 100644 fuzzers/038-cfg-startup/generate.tcl create mode 100644 fuzzers/038-cfg-startup/top.py diff --git a/fuzzers/038-cfg-startup/Makefile b/fuzzers/038-cfg-startup/Makefile new file mode 100644 index 000000000..861c97604 --- /dev/null +++ b/fuzzers/038-cfg-startup/Makefile @@ -0,0 +1,21 @@ +# Copyright (C) 2017-2023 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +N := 4 +include ../fuzzer.mk + +database: build/segbits_cfg_center_mid.db + +build/segbits_cfg_center_mid.db: $(SPECIMENS_OK) + ${XRAY_SEGMATCH} -c 3 -o build/segbits_cfg_center_mid.db $$(find -name segdata_cfg_center_mid.txt) + sed -i 's/CFG_CENTER/CFG_CENTER_MID/g' $@ + +pushdb: + ${XRAY_MERGEDB} cfg_center_mid build/segbits_cfg_center_mid.db + +.PHONY: database pushdb + diff --git a/fuzzers/038-cfg-startup/generate.py b/fuzzers/038-cfg-startup/generate.py new file mode 100644 index 000000000..295c5bcf7 --- /dev/null +++ b/fuzzers/038-cfg-startup/generate.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC + +from prjxray.segmaker import Segmaker +from prjxray import segmaker +from prjxray import verilog +import os +import json +import csv + + +def bitfilter(frame, word): + if frame not in [26, 27]: + return False + return True + +def main(): + print("Loading tags") + segmk = Segmaker("design.bits") + + with open('params.json', 'r') as f: + design = json.load(f) + + for d in design['tiles']: + print("design: " + str(d)) + site = d['site'] + tile = d['tile'] + + connection = d['CONNECTION'] + + if site.startswith('STARTUP'): + segmk.add_site_tag(site, 'USRCCLKO_CONNECTED', connection == "CLOCK") + + segmk.compile(bitfilter=bitfilter) + segmk.write(allow_empty=True) + +if __name__ == "__main__": + main() diff --git a/fuzzers/038-cfg-startup/generate.tcl b/fuzzers/038-cfg-startup/generate.tcl new file mode 100644 index 000000000..41434952c --- /dev/null +++ b/fuzzers/038-cfg-startup/generate.tcl @@ -0,0 +1,32 @@ +# Copyright (C) 2017-2020 The Project X-Ray Authors +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +source "$::env(XRAY_DIR)/utils/utils.tcl" + +proc run {} { + create_project -force -part $::env(XRAY_PART) design design + read_verilog top.v + synth_design -top top + + set_property CFGBVS VCCO [current_design] + set_property CONFIG_VOLTAGE 3.3 [current_design] + set_property BITSTREAM.GENERAL.PERFRAMECRC YES [current_design] + + create_clock -period 10.00 [get_ports clk] + set_property IS_ENABLED 0 [get_drc_checks {UCIO-1}] + set_property IS_ENABLED 0 [get_drc_checks {NSTD-1}] + + write_checkpoint -force design_pre_place.dcp + + place_design + route_design + + write_checkpoint -force design.dcp + write_bitstream -force design.bit +} + +run diff --git a/fuzzers/038-cfg-startup/top.py b/fuzzers/038-cfg-startup/top.py new file mode 100644 index 000000000..f891775c4 --- /dev/null +++ b/fuzzers/038-cfg-startup/top.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Copyright (C) 2017-2020 The Project X-Ray Authors. +# +# Use of this source code is governed by a ISC-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/ISC +# +# SPDX-License-Identifier: ISC +import json +import io +import os +import random +random.seed(int(os.getenv("SEED"), 16)) +from prjxray import util +from prjxray import lut_maker +from prjxray import verilog +from prjxray.db import Database + + +def gen_sites(): + db = Database(util.get_db_root(), util.get_part()) + grid = db.grid() + for tile_name in sorted(grid.tiles()): + if not 'CFG_CENTER_MID' in tile_name: + continue + print("// tile: " + str(tile_name)) + loc = grid.loc_of_tilename(tile_name) + gridinfo = grid.gridinfo_at_loc(loc) + + sites = {} + print("// " + str(gridinfo.sites.items())) + for site_name, site_type in gridinfo.sites.items(): + if site_type == 'STARTUP': + print("// got site: " + str(site_name)) + sites[site_type] = site_name + + if sites: + yield tile_name, sites + +def run(): + params = { + "tiles": [], + } + + for tile, sites in gen_sites(): + for site_type, site in sites.items(): + p = {} + p['tile'] = tile + p['site'] = site + + p['CONNECTION'] = random.choice( + ( + 'HARD_ZERO', + # hard zero or hard one does not make a difference + # it only seems to matter if it is connected to a clock net or not + #'HARD_ONE', + 'CLOCK', + )) + + params['tiles'].append(p) + + print( + ''' +module top (input wire clk); + (* KEEP, DONT_TOUCH *) + STARTUPE2 STARTUPE2 ( + .CLK(1'b0), + .GSR(1'b0), + .GTS(1'b0), + .KEYCLEARB(1'b1), + .PACK(1'b0), + .PREQ(), + + // Drive clock.''') + + connection = p['CONNECTION'] + + if connection == "HARD_ZERO": + print(" .USRCCLKO (1'b0),") + elif connection == "HARD_ONE": + print(" .USRCCLKO (1'b1),") + else: + print(" .USRCCLKO (clk),") + + print( + ''' + .USRCCLKTS(1'b0), + .USRDONEO (1'b0), + .USRDONETS(1'b1), + .CFGCLK(), + .CFGMCLK(), + .EOS() + ); + +endmodule +''') + + with open('params.json', 'w') as f: + json.dump(params, f, indent=2) + +if __name__ == '__main__': + run() From 4382918954cc6280ca60d7d3aca811a50bff039e Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Tue, 3 Oct 2023 11:06:17 +0700 Subject: [PATCH 174/250] add ppips for CFG_CENTER_MID Signed-off-by: Hans Baier --- fuzzers/071-ppips/generate.tcl | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/fuzzers/071-ppips/generate.tcl b/fuzzers/071-ppips/generate.tcl index a42438010..b9f3fb19f 100644 --- a/fuzzers/071-ppips/generate.tcl +++ b/fuzzers/071-ppips/generate.tcl @@ -90,6 +90,23 @@ proc write_bram_ppips_db {filename tile} { close $fp } +proc write_cfg_ppips_db {filename tile} { + set fp [open $filename "w"] + set tile [get_tiles $tile] + set tile_type [get_property TILE_TYPE $tile] + + foreach pip [get_pips -of_objects $tile] { + set dst_wire [get_wires -downhill -of_objects $pip] + if {[get_pips -uphill -of_objects [get_nodes -of_objects $dst_wire]] == $pip} { + set src_wire [get_wires -uphill -of_objects $pip] + puts $fp "${tile_type}.[regsub {.*/} $dst_wire ""].[regsub {.*/} $src_wire ""] always" + } + } + + close $fp +} + + proc write_dsp_ppips_db {filename tile} { set fp [open $filename "w"] set tile [get_tiles $tile] @@ -338,6 +355,14 @@ foreach tile_type {BRAM_L BRAM_R} { } } +foreach tile_type {CFG_CENTER_MID} { + set tiles [get_tiles -filter "TILE_TYPE == $tile_type"] + if {[llength $tiles] != 0} { + set tile [lindex $tiles 0] + write_cfg_ppips_db "ppips_[string tolower $tile_type].db" $tile + } +} + foreach tile_type {DSP_L DSP_R} { set tiles [get_tiles -filter "TILE_TYPE == $tile_type"] if {[llength $tiles] != 0} { From c14de4facc7a17788583684816f4b019e6db9267 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Mon, 9 Oct 2023 16:11:32 +0700 Subject: [PATCH 175/250] add ppips for CFG_CENTER_TOP and CFG_CENTER_BOT Signed-off-by: Hans Baier --- fuzzers/071-ppips/generate.tcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fuzzers/071-ppips/generate.tcl b/fuzzers/071-ppips/generate.tcl index b9f3fb19f..aa8df0780 100644 --- a/fuzzers/071-ppips/generate.tcl +++ b/fuzzers/071-ppips/generate.tcl @@ -355,7 +355,7 @@ foreach tile_type {BRAM_L BRAM_R} { } } -foreach tile_type {CFG_CENTER_MID} { +foreach tile_type {CFG_CENTER_TOP CFG_CENTER_MID CFG_CENTER_BOT} { set tiles [get_tiles -filter "TILE_TYPE == $tile_type"] if {[llength $tiles] != 0} { set tile [lindex $tiles 0] From 949fad1adb0786b936fef609d6728e4ff624be4d Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Tue, 10 Oct 2023 10:28:42 +0700 Subject: [PATCH 176/250] add 038-cfg-startup fuzzer to fuzzers Makefile Signed-off-by: Hans Baier --- fuzzers/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/fuzzers/Makefile b/fuzzers/Makefile index dde3c34a2..9874db600 100644 --- a/fuzzers/Makefile +++ b/fuzzers/Makefile @@ -145,6 +145,7 @@ ifeq ($(HAS_HIGH_PERFORMANCE_BANKS),1) $(eval $(call fuzzer,037-iob18-pips,005-tilegrid 035b-iob-iserdes,all)) endif $(eval $(call fuzzer,038-cfg,005-tilegrid,all)) +$(eval $(call fuzzer,038-cfg-startup,005-tilegrid,all)) $(eval $(call fuzzer,039-hclk-config,005-tilegrid,all)) $(eval $(call fuzzer,040-clk-hrow-config,005-tilegrid,all)) $(eval $(call fuzzer,041-clk-hrow-pips,005-tilegrid,all)) From 744119717886290d5e0455f34afe7f43c386fad7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 17:48:32 +0000 Subject: [PATCH 177/250] build(deps): bump third_party/yosys from `860e3e4` to `7d30f71` (#2251) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `860e3e4` to `7d30f71`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/860e3e40563e6d5096ba0b7b1e81d25a70deb58c...7d30f716e82ff4782b653cb2c448062f7878c308) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 860e3e405..7d30f716e 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 860e3e40563e6d5096ba0b7b1e81d25a70deb58c +Subproject commit 7d30f716e82ff4782b653cb2c448062f7878c308 From cc10b41d4cd12b8520add8801a42d23969221e16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 17:50:19 +0000 Subject: [PATCH 178/250] build(deps): bump third_party/cctz from `c8cd07c` to `b6d7a85` (#2252) Bumps [third_party/cctz](https://github.com/google/cctz) from `c8cd07c` to `b6d7a85`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/c8cd07cac8ac09882cc44cc69a4ecefaaa5c69a6...b6d7a852f149bc9304f78a64736e02b491321312) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index c8cd07cac..b6d7a852f 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit c8cd07cac8ac09882cc44cc69a4ecefaaa5c69a6 +Subproject commit b6d7a852f149bc9304f78a64736e02b491321312 From 72e6371bbba0692e727b86eb9393dd4b1154e1e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 17:52:39 +0000 Subject: [PATCH 179/250] build(deps): bump third_party/abseil-cpp from `efb035a` to `99bbd7c` (#2250) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `efb035a` to `99bbd7c`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/efb035a5973b60d35ed8fcaa43e6736936a96173...99bbd7c4865c5d0f3bfbe99457c5ce4daf6ba174) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index efb035a59..99bbd7c48 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit efb035a5973b60d35ed8fcaa43e6736936a96173 +Subproject commit 99bbd7c4865c5d0f3bfbe99457c5ce4daf6ba174 From 326dbda44cde26fcdc821ee4cef68a3523cd752f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Oct 2023 17:56:02 +0000 Subject: [PATCH 180/250] build(deps): bump third_party/googletest from `7e33b6a` to `116b7e5` (#2256) Bumps [third_party/googletest](https://github.com/google/googletest) from `7e33b6a` to `116b7e5`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/7e33b6a1c497ced1e98fc60175aeb4678419281c...116b7e55281c4200151524b093ecc03757a4ffda) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 7e33b6a1c..116b7e552 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 7e33b6a1c497ced1e98fc60175aeb4678419281c +Subproject commit 116b7e55281c4200151524b093ecc03757a4ffda From 8acce5866e919a08ad3b432795859fce6823f9b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 28 Oct 2023 18:01:46 +0000 Subject: [PATCH 181/250] build(deps): bump third_party/googletest from `116b7e5` to `5b7fd63` (#2257) Bumps [third_party/googletest](https://github.com/google/googletest) from `116b7e5` to `5b7fd63`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/116b7e55281c4200151524b093ecc03757a4ffda...5b7fd63d6d69f1754d5f3be956949484ebac06d5) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 116b7e552..5b7fd63d6 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 116b7e55281c4200151524b093ecc03757a4ffda +Subproject commit 5b7fd63d6d69f1754d5f3be956949484ebac06d5 From b9ed4b9a81faccec779e22c5af3aeb90c38bbc66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 28 Oct 2023 18:06:04 +0000 Subject: [PATCH 182/250] build(deps): bump third_party/abseil-cpp from `99bbd7c` to `89d2caa` (#2260) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `99bbd7c` to `89d2caa`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/99bbd7c4865c5d0f3bfbe99457c5ce4daf6ba174...89d2caa104563ad8c2182282f5d4676f6747bd0e) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 99bbd7c48..89d2caa10 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 99bbd7c4865c5d0f3bfbe99457c5ce4daf6ba174 +Subproject commit 89d2caa104563ad8c2182282f5d4676f6747bd0e From 5437a69fa7fdc729c7d9527a700e06051b1fe2a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Nov 2023 17:50:44 +0000 Subject: [PATCH 183/250] build(deps): bump third_party/sanitizers-cmake (#2264) Bumps [third_party/sanitizers-cmake](https://github.com/arsenm/sanitizers-cmake) from `c3dc841` to `3f0542e`. - [Commits](https://github.com/arsenm/sanitizers-cmake/compare/c3dc841af4dbf44669e65b82cb68a575864326bd...3f0542e4e034aab417c51b2b22c94f83355dee15) --- updated-dependencies: - dependency-name: third_party/sanitizers-cmake dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/sanitizers-cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/sanitizers-cmake b/third_party/sanitizers-cmake index c3dc841af..3f0542e4e 160000 --- a/third_party/sanitizers-cmake +++ b/third_party/sanitizers-cmake @@ -1 +1 @@ -Subproject commit c3dc841af4dbf44669e65b82cb68a575864326bd +Subproject commit 3f0542e4e034aab417c51b2b22c94f83355dee15 From 54ceda47658fa00cdaf8284b215a225a63094368 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Nov 2023 18:12:20 +0000 Subject: [PATCH 184/250] build(deps): bump third_party/abseil-cpp from `89d2caa` to `1cb3345` (#2262) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `89d2caa` to `1cb3345`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/89d2caa104563ad8c2182282f5d4676f6747bd0e...1cb3345dac55cdc5c2961d60de4d1e2e636773e9) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 89d2caa10..1cb3345da 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 89d2caa104563ad8c2182282f5d4676f6747bd0e +Subproject commit 1cb3345dac55cdc5c2961d60de4d1e2e636773e9 From 11ce55d4aa61c2ab3799ea42a8d6fe4dcbbac880 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Nov 2023 17:58:30 +0000 Subject: [PATCH 185/250] build(deps): bump third_party/yosys from `7d30f71` to `031ad38` (#2274) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `7d30f71` to `031ad38`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/7d30f716e82ff4782b653cb2c448062f7878c308...031ad38b5cc2410823089e1990cd68694a4a9bb3) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 7d30f716e..031ad38b5 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 7d30f716e82ff4782b653cb2c448062f7878c308 +Subproject commit 031ad38b5cc2410823089e1990cd68694a4a9bb3 From f7a17050466c0960eedd20f263175b7038a0f393 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Dec 2023 17:38:34 +0000 Subject: [PATCH 186/250] build(deps): bump third_party/googletest from `5b7fd63` to `76bb2af` (#2277) Bumps [third_party/googletest](https://github.com/google/googletest) from `5b7fd63` to `76bb2af`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/5b7fd63d6d69f1754d5f3be956949484ebac06d5...76bb2afb8b522d24496ad1c757a49784fbfa2e42) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 5b7fd63d6..76bb2afb8 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 5b7fd63d6d69f1754d5f3be956949484ebac06d5 +Subproject commit 76bb2afb8b522d24496ad1c757a49784fbfa2e42 From 30e6899bdb3b9b910248127a9fbbc2f22042be56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Dec 2023 18:07:41 +0000 Subject: [PATCH 187/250] build(deps): bump third_party/googletest from `76bb2af` to `b3a9ba2` (#2281) Bumps [third_party/googletest](https://github.com/google/googletest) from `76bb2af` to `b3a9ba2`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/76bb2afb8b522d24496ad1c757a49784fbfa2e42...b3a9ba2b8e975550799838332803d468797ae2e1) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 76bb2afb8..b3a9ba2b8 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 76bb2afb8b522d24496ad1c757a49784fbfa2e42 +Subproject commit b3a9ba2b8e975550799838332803d468797ae2e1 From 4aed806db67697a9fb4c7e5f35eaaacdf5b8e6fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Dec 2023 18:12:54 +0000 Subject: [PATCH 188/250] build(deps): bump third_party/yosys from `031ad38` to `e6021b2` (#2282) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `031ad38` to `e6021b2`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/031ad38b5cc2410823089e1990cd68694a4a9bb3...e6021b2b485bcff9953f5fbd83595348a7adc84c) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 031ad38b5..e6021b2b4 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 031ad38b5cc2410823089e1990cd68694a4a9bb3 +Subproject commit e6021b2b485bcff9953f5fbd83595348a7adc84c From a9dfd0b229a795bc7e4ab5b8405f9b1bb3525120 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Dec 2023 19:22:41 +0000 Subject: [PATCH 189/250] build(deps): bump third_party/abseil-cpp from `1cb3345` to `fad9462` (#2280) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `1cb3345` to `fad9462`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/1cb3345dac55cdc5c2961d60de4d1e2e636773e9...fad946221cec37175e762c399760f54b9de9a9fa) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 1cb3345da..fad946221 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 1cb3345dac55cdc5c2961d60de4d1e2e636773e9 +Subproject commit fad946221cec37175e762c399760f54b9de9a9fa From dbef93f8f225580f92a03ff90c0e944c537e5133 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Dec 2023 18:13:12 +0000 Subject: [PATCH 190/250] build(deps): bump third_party/yosys from `e6021b2` to `70d3531` (#2283) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `e6021b2` to `70d3531`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/e6021b2b485bcff9953f5fbd83595348a7adc84c...70d35314dbd7521870047ed607897f22dc48cbc3) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index e6021b2b4..70d35314d 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit e6021b2b485bcff9953f5fbd83595348a7adc84c +Subproject commit 70d35314dbd7521870047ed607897f22dc48cbc3 From 88bae6209028580fe408ed4cc725e73342c52ad4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Dec 2023 18:16:01 +0000 Subject: [PATCH 191/250] build(deps): bump third_party/abseil-cpp from `fad9462` to `27478af` (#2284) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `fad9462` to `27478af`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/fad946221cec37175e762c399760f54b9de9a9fa...27478af36914f18867ea32cb42db00dba15fffcd) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index fad946221..27478af36 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit fad946221cec37175e762c399760f54b9de9a9fa +Subproject commit 27478af36914f18867ea32cb42db00dba15fffcd From 4f19748f8d8340a92b26292e7a012cd965ccb769 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 23 Dec 2023 17:30:36 +0000 Subject: [PATCH 192/250] build(deps): bump third_party/yosys from `70d3531` to `ea7818d` (#2289) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `70d3531` to `ea7818d`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/70d35314dbd7521870047ed607897f22dc48cbc3...ea7818d31bb2533d4ecceb2ed1bcf4a22b850453) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 70d35314d..ea7818d31 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 70d35314dbd7521870047ed607897f22dc48cbc3 +Subproject commit ea7818d31bb2533d4ecceb2ed1bcf4a22b850453 From ba272f9b44cb652e8eccd4c018a1b9dd03a48012 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 30 Dec 2023 17:57:00 +0000 Subject: [PATCH 193/250] build(deps): bump third_party/yaml-cpp from `6262201` to `94710bb` (#2294) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `6262201` to `94710bb`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/6262201182a0ee357d8a456e6d1a8e5984e4c6dd...94710bb2213cb6793121eaaa4edfb15abcca7af9) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index 626220118..94710bb22 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit 6262201182a0ee357d8a456e6d1a8e5984e4c6dd +Subproject commit 94710bb2213cb6793121eaaa4edfb15abcca7af9 From 4b8c9efe72b65b867b69a1cd4769c67f8bed9a5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 30 Dec 2023 17:58:25 +0000 Subject: [PATCH 194/250] build(deps): bump third_party/cctz from `b6d7a85` to `89d3c31` (#2292) Bumps [third_party/cctz](https://github.com/google/cctz) from `b6d7a85` to `89d3c31`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/b6d7a852f149bc9304f78a64736e02b491321312...89d3c319e26517c3c8b864ddf191d70da4936e44) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index b6d7a852f..89d3c319e 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit b6d7a852f149bc9304f78a64736e02b491321312 +Subproject commit 89d3c319e26517c3c8b864ddf191d70da4936e44 From 31e117f25cb6613cc5e69f9d4b1cfbfb79b4605a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 30 Dec 2023 18:00:42 +0000 Subject: [PATCH 195/250] build(deps): bump third_party/yosys from `ea7818d` to `df65634` (#2296) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `ea7818d` to `df65634`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/ea7818d31bb2533d4ecceb2ed1bcf4a22b850453...df65634e07d283202bebfae2e2110724a4d8003f) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index ea7818d31..df65634e0 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit ea7818d31bb2533d4ecceb2ed1bcf4a22b850453 +Subproject commit df65634e07d283202bebfae2e2110724a4d8003f From 50aa6797a5273d73052fb071a08ccd99d0d41525 Mon Sep 17 00:00:00 2001 From: Hans Baier Date: Thu, 16 Nov 2023 09:54:32 +0700 Subject: [PATCH 196/250] print a human readable warning when encountering invalid word addresses Signed-off-by: Hans Baier --- prjxray/fasm_assembler.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/prjxray/fasm_assembler.py b/prjxray/fasm_assembler.py index 2bb190076..f90cf1e0b 100644 --- a/prjxray/fasm_assembler.py +++ b/prjxray/fasm_assembler.py @@ -9,6 +9,8 @@ # # SPDX-License-Identifier: ISC import fasm +import sys + from prjxray import bitstream @@ -56,6 +58,10 @@ def get_frames(self, sparse=False): for (frame_addr, word_addr, bit_index), is_set in self.frames.items(): init_frame_at_address(frames, frame_addr) + if word_addr >= 101: + print(f"get_frames: invalid word address {word_addr} in line: {self.frames_line[(frame_addr, word_addr, bit_index)]}", file=sys.stderr) + if frame_addr not in frames: + print(f"get_frames: invalid frame address {frame_addr:x8}", file=sys.stderr) if is_set: frames[frame_addr][word_addr] |= 1 << bit_index @@ -77,6 +83,9 @@ def frame_set(self, frame_addr, word_addr, bit_index, line): assert bit_index is not None key = (frame_addr, word_addr, bit_index) + if word_addr >= 101: + print(f"frame_set: invalid word address {word_addr} in line: {line}", file=sys.stderr) + return if key in self.frames: if self.frames[key] != 1: raise FasmInconsistentBits( @@ -96,6 +105,9 @@ def frame_clear(self, frame_addr, word_addr, bit_index, line): assert bit_index is not None key = (frame_addr, word_addr, bit_index) + if word_addr >= 101: + print(f"frame_clear: invalid word address {word_addr} in line: {line}", file=sys.stderr) + return if key in self.frames: if self.frames[key] != 0: raise FasmInconsistentBits( @@ -119,6 +131,7 @@ def update_segbit(bit): frame_addr = bit.word_column word_addr = bit.word_bit // bitstream.WORD_SIZE_BITS bit_index = bit.word_bit % bitstream.WORD_SIZE_BITS + if bit.isset: self.frame_set(frame_addr, word_addr, bit_index, line) else: From 43ef7d269f8e40a64e94f919543c14e00930d52a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 17:44:43 +0000 Subject: [PATCH 197/250] build(deps): bump third_party/googletest from `b3a9ba2` to `7c07a86` (#2303) Bumps [third_party/googletest](https://github.com/google/googletest) from `b3a9ba2` to `7c07a86`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/b3a9ba2b8e975550799838332803d468797ae2e1...7c07a863693b0c831f80473f7c6905d7e458682c) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index b3a9ba2b8..7c07a8636 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit b3a9ba2b8e975550799838332803d468797ae2e1 +Subproject commit 7c07a863693b0c831f80473f7c6905d7e458682c From 01ce064d160a9d805366ef3756c40a990165d3a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 17:46:43 +0000 Subject: [PATCH 198/250] build(deps): bump third_party/abseil-cpp from `27478af` to `27134f2` (#2302) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `27478af` to `27134f2`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/27478af36914f18867ea32cb42db00dba15fffcd...27134f25b11e3119a2814988c3979fdc033e54e1) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 27478af36..27134f25b 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 27478af36914f18867ea32cb42db00dba15fffcd +Subproject commit 27134f25b11e3119a2814988c3979fdc033e54e1 From 35e0818bd70f19410c6a80701be30df92c19bc6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 17:44:33 +0000 Subject: [PATCH 199/250] build(deps): bump third_party/yosys from `df65634` to `8649e30` (#2305) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `df65634` to `8649e30`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/df65634e07d283202bebfae2e2110724a4d8003f...8649e306682e44b7f3e1b869d1043041db00b13e) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index df65634e0..8649e3066 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit df65634e07d283202bebfae2e2110724a4d8003f +Subproject commit 8649e306682e44b7f3e1b869d1043041db00b13e From 2c0535001bd6d533bb5c4da11518008b0af3205e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 17:47:36 +0000 Subject: [PATCH 200/250] build(deps): bump third_party/abseil-cpp from `27134f2` to `2be6770` (#2307) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `27134f2` to `2be6770`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/27134f25b11e3119a2814988c3979fdc033e54e1...2be67701e7a33b45d322064349827e1155953338) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 27134f25b..2be67701e 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 27134f25b11e3119a2814988c3979fdc033e54e1 +Subproject commit 2be67701e7a33b45d322064349827e1155953338 From a40dcd8f5bfd180ac9bf2f990dd13ecb021d34cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 27 Jan 2024 18:18:31 +0000 Subject: [PATCH 201/250] build(deps): bump third_party/yosys from `8649e30` to `887c905` (#2311) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `8649e30` to `887c905`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/8649e306682e44b7f3e1b869d1043041db00b13e...887c90500a0e8f549816b7d86806b38a04d02a1e) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 8649e3066..887c90500 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 8649e306682e44b7f3e1b869d1043041db00b13e +Subproject commit 887c90500a0e8f549816b7d86806b38a04d02a1e From f33ec8449d9890c3de72e6f323d64c599fec6569 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 27 Jan 2024 18:21:30 +0000 Subject: [PATCH 202/250] build(deps): bump third_party/yaml-cpp from `94710bb` to `96f5c88` (#2309) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `94710bb` to `96f5c88`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/94710bb2213cb6793121eaaa4edfb15abcca7af9...96f5c887f373ac483844c51cfc9a3621002314f0) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index 94710bb22..96f5c887f 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit 94710bb2213cb6793121eaaa4edfb15abcca7af9 +Subproject commit 96f5c887f373ac483844c51cfc9a3621002314f0 From c30942ef0a112c8441acc7b4872b9c0db3872fab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 27 Jan 2024 18:22:26 +0000 Subject: [PATCH 203/250] build(deps): bump third_party/abseil-cpp from `2be6770` to `42624b3` (#2308) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `2be6770` to `42624b3`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/2be67701e7a33b45d322064349827e1155953338...42624b3d9d56ae6fd5c48b28715044667942b9d8) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 2be67701e..42624b3d9 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 2be67701e7a33b45d322064349827e1155953338 +Subproject commit 42624b3d9d56ae6fd5c48b28715044667942b9d8 From 3fca338403165b271c4cc98a32eca4bb5fe0c411 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Feb 2024 18:13:53 +0000 Subject: [PATCH 204/250] build(deps): bump third_party/yosys from `887c905` to `9f27923` (#2316) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `887c905` to `9f27923`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/887c90500a0e8f549816b7d86806b38a04d02a1e...9f27923782e0c9c8fb6298778929271eb06bcb02) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 887c90500..9f2792378 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 887c90500a0e8f549816b7d86806b38a04d02a1e +Subproject commit 9f27923782e0c9c8fb6298778929271eb06bcb02 From 970958b79d073c94ffde14f007836446c488203b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Feb 2024 18:16:29 +0000 Subject: [PATCH 205/250] build(deps): bump third_party/googletest from `7c07a86` to `4565741` (#2315) Bumps [third_party/googletest](https://github.com/google/googletest) from `7c07a86` to `4565741`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/7c07a863693b0c831f80473f7c6905d7e458682c...456574145cf71a5375777cab58453acfd92a920b) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 7c07a8636..456574145 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 7c07a863693b0c831f80473f7c6905d7e458682c +Subproject commit 456574145cf71a5375777cab58453acfd92a920b From efdf2a8012931af53ff44b2acebf1e6d2c18ce9f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Feb 2024 18:18:17 +0000 Subject: [PATCH 206/250] build(deps): bump third_party/cctz from `89d3c31` to `981dc6b` (#2317) Bumps [third_party/cctz](https://github.com/google/cctz) from `89d3c31` to `981dc6b`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/89d3c319e26517c3c8b864ddf191d70da4936e44...981dc6b192121ebbae8431c26069cadbb86b5930) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index 89d3c319e..981dc6b19 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit 89d3c319e26517c3c8b864ddf191d70da4936e44 +Subproject commit 981dc6b192121ebbae8431c26069cadbb86b5930 From f8360ee800e97ba4f10b487075834786a47b6889 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 17 Feb 2024 18:04:40 +0000 Subject: [PATCH 207/250] build(deps): bump third_party/googletest from `4565741` to `5df0241` (#2323) Bumps [third_party/googletest](https://github.com/google/googletest) from `4565741` to `5df0241`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/456574145cf71a5375777cab58453acfd92a920b...5df0241ea4880e5a846775d3efc8b873f7b36c31) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 456574145..5df0241ea 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 456574145cf71a5375777cab58453acfd92a920b +Subproject commit 5df0241ea4880e5a846775d3efc8b873f7b36c31 From d3f67df20589bccb93451e64f208b5f5bb196b18 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 17:41:09 +0000 Subject: [PATCH 208/250] build(deps): bump third_party/googletest from `5df0241` to `9d43b27` (#2326) Bumps [third_party/googletest](https://github.com/google/googletest) from `5df0241` to `9d43b27`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/5df0241ea4880e5a846775d3efc8b873f7b36c31...9d43b27f7a873596496a2ea70721b3f9eb82df01) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 5df0241ea..9d43b27f7 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 5df0241ea4880e5a846775d3efc8b873f7b36c31 +Subproject commit 9d43b27f7a873596496a2ea70721b3f9eb82df01 From 5b9b5090059b917a03e4969ab818001ee03434f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 17:42:55 +0000 Subject: [PATCH 209/250] build(deps): bump third_party/cctz from `981dc6b` to `bb0595b` (#2329) Bumps [third_party/cctz](https://github.com/google/cctz) from `981dc6b` to `bb0595b`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/981dc6b192121ebbae8431c26069cadbb86b5930...bb0595b6249031abe83e972ee13571d7f0e655ed) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index 981dc6b19..bb0595b62 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit 981dc6b192121ebbae8431c26069cadbb86b5930 +Subproject commit bb0595b6249031abe83e972ee13571d7f0e655ed From c769d6f8428d4ab57527782d6a380009a80e1b31 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 17:48:57 +0000 Subject: [PATCH 210/250] build(deps): bump third_party/yosys from `9f27923` to `91fbd58` (#2331) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `9f27923` to `91fbd58`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/9f27923782e0c9c8fb6298778929271eb06bcb02...91fbd58980e87ad5dc0a5d37c049ffaf5ab243dd) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 9f2792378..91fbd5898 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 9f27923782e0c9c8fb6298778929271eb06bcb02 +Subproject commit 91fbd58980e87ad5dc0a5d37c049ffaf5ab243dd From 0c1846c2548fbc28a76f0bbf1f7a8251deed8923 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Mar 2024 17:50:37 +0000 Subject: [PATCH 211/250] build(deps): bump third_party/yosys from `91fbd58` to `078b876` (#2335) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `91fbd58` to `078b876`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/91fbd58980e87ad5dc0a5d37c049ffaf5ab243dd...078b876f505647c992479c2afcf50f0850ea6fac) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 91fbd5898..078b876f5 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 91fbd58980e87ad5dc0a5d37c049ffaf5ab243dd +Subproject commit 078b876f505647c992479c2afcf50f0850ea6fac From 7ffa75dacdaf8b851f94f4a29373ba7b05d94410 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Mar 2024 17:55:13 +0000 Subject: [PATCH 212/250] build(deps): bump third_party/googletest from `9d43b27` to `e1a38bc` (#2333) Bumps [third_party/googletest](https://github.com/google/googletest) from `9d43b27` to `e1a38bc`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/9d43b27f7a873596496a2ea70721b3f9eb82df01...e1a38bc3707741d249fa22d2064552a08e37555b) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 9d43b27f7..e1a38bc37 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 9d43b27f7a873596496a2ea70721b3f9eb82df01 +Subproject commit e1a38bc3707741d249fa22d2064552a08e37555b From 9ca43d90c55c38be490e3390749e644dd43fd6c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Mar 2024 18:00:42 +0000 Subject: [PATCH 213/250] build(deps): bump third_party/abseil-cpp from `42624b3` to `e968256` (#2334) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `42624b3` to `e968256`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/42624b3d9d56ae6fd5c48b28715044667942b9d8...e968256406fd7898d7fde880e31e54b041d32a7e) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 42624b3d9..e96825640 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 42624b3d9d56ae6fd5c48b28715044667942b9d8 +Subproject commit e968256406fd7898d7fde880e31e54b041d32a7e From 221489c46476b853dc46a502890a8d1cb4f8aeed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Mar 2024 17:30:27 +0000 Subject: [PATCH 214/250] build(deps): bump third_party/yosys from `078b876` to `3231c1c` (#2338) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `078b876` to `3231c1c`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/078b876f505647c992479c2afcf50f0850ea6fac...3231c1cd932b9cffba9651c3264d337093eaed32) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 078b876f5..3231c1cd9 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 078b876f505647c992479c2afcf50f0850ea6fac +Subproject commit 3231c1cd932b9cffba9651c3264d337093eaed32 From c6f57643ebfd72139d727e0c11b3a5256e0c810e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Mar 2024 17:37:50 +0000 Subject: [PATCH 215/250] build(deps): bump third_party/abseil-cpp from `e968256` to `56d3f22` (#2337) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `e968256` to `56d3f22`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/e968256406fd7898d7fde880e31e54b041d32a7e...56d3f227154af7a646302ae4a0891f14a2d3616b) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index e96825640..56d3f2271 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit e968256406fd7898d7fde880e31e54b041d32a7e +Subproject commit 56d3f227154af7a646302ae4a0891f14a2d3616b From aff21c2ab4bd05423d46cfa238417b3fa6f0cd6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 23 Mar 2024 18:13:39 +0000 Subject: [PATCH 216/250] build(deps): bump third_party/yosys from `3231c1c` to `d73f71e` (#2340) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `3231c1c` to `d73f71e`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/3231c1cd932b9cffba9651c3264d337093eaed32...d73f71e813dc636dac1b9f04a4f50183dedec234) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 3231c1cd9..d73f71e81 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 3231c1cd932b9cffba9651c3264d337093eaed32 +Subproject commit d73f71e813dc636dac1b9f04a4f50183dedec234 From 6508ea4eb7936e49bfd9704a5a32c2797f115f2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 23 Mar 2024 18:18:30 +0000 Subject: [PATCH 217/250] build(deps): bump third_party/googletest from `e1a38bc` to `eff443c` (#2341) Bumps [third_party/googletest](https://github.com/google/googletest) from `e1a38bc` to `eff443c`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/e1a38bc3707741d249fa22d2064552a08e37555b...eff443c6ef5eb6ab598bfaae27f9427fdb4f6af7) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index e1a38bc37..eff443c6e 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit e1a38bc3707741d249fa22d2064552a08e37555b +Subproject commit eff443c6ef5eb6ab598bfaae27f9427fdb4f6af7 From ec51df5cdba98d14d351976a80fa57de2f381a97 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 23 Mar 2024 18:27:35 +0000 Subject: [PATCH 218/250] build(deps): bump third_party/abseil-cpp from `56d3f22` to `7335a36` (#2339) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `56d3f22` to `7335a36`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/56d3f227154af7a646302ae4a0891f14a2d3616b...7335a36d0b5c1c597566f9aa3f458a5b6817c3b4) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 56d3f2271..7335a36d0 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 56d3f227154af7a646302ae4a0891f14a2d3616b +Subproject commit 7335a36d0b5c1c597566f9aa3f458a5b6817c3b4 From 749b0658e88036393f3e1e0346aad6dfda348849 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 30 Mar 2024 17:56:44 +0000 Subject: [PATCH 219/250] build(deps): bump third_party/yosys from `d73f71e` to `d07a55a` (#2344) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `d73f71e` to `d07a55a`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/d73f71e813dc636dac1b9f04a4f50183dedec234...d07a55a852e3e9430daba9068878b1ac10605f0a) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index d73f71e81..d07a55a85 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit d73f71e813dc636dac1b9f04a4f50183dedec234 +Subproject commit d07a55a852e3e9430daba9068878b1ac10605f0a From bb85b2e52c40717b307a4cdec65bb90c5e9ace71 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 30 Mar 2024 18:00:47 +0000 Subject: [PATCH 220/250] build(deps): bump third_party/abseil-cpp from `7335a36` to `770d078` (#2342) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `7335a36` to `770d078`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/7335a36d0b5c1c597566f9aa3f458a5b6817c3b4...770d078368f66da606ad98187f33fbc5b8cdd3ae) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 7335a36d0..770d07836 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 7335a36d0b5c1c597566f9aa3f458a5b6817c3b4 +Subproject commit 770d078368f66da606ad98187f33fbc5b8cdd3ae From 62741287897e089b353967bb984469d23910b878 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Apr 2024 18:10:26 +0000 Subject: [PATCH 221/250] build(deps): bump third_party/abseil-cpp from `770d078` to `b8f2b2c` (#2345) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `770d078` to `b8f2b2c`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/770d078368f66da606ad98187f33fbc5b8cdd3ae...b8f2b2c6cf362acc30ebb581dfc43d44f73bdf23) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 770d07836..b8f2b2c6c 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 770d078368f66da606ad98187f33fbc5b8cdd3ae +Subproject commit b8f2b2c6cf362acc30ebb581dfc43d44f73bdf23 From cf59c21f2687226253f1f53d42f12ed0da996eb5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Apr 2024 18:15:29 +0000 Subject: [PATCH 222/250] build(deps): bump third_party/googletest from `eff443c` to `5197b1a` (#2349) Bumps [third_party/googletest](https://github.com/google/googletest) from `eff443c` to `5197b1a`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/eff443c6ef5eb6ab598bfaae27f9427fdb4f6af7...5197b1a8e6a1ef9f214f4aa537b0be17cbf91946) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index eff443c6e..5197b1a8e 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit eff443c6ef5eb6ab598bfaae27f9427fdb4f6af7 +Subproject commit 5197b1a8e6a1ef9f214f4aa537b0be17cbf91946 From d51e111ee1b3db84c6907e6b0b1e2745286a6435 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Apr 2024 18:22:02 +0000 Subject: [PATCH 223/250] build(deps): bump third_party/yosys from `d07a55a` to `ed46453` (#2348) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `d07a55a` to `ed46453`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/d07a55a852e3e9430daba9068878b1ac10605f0a...ed46453cfc3032d28246e81d93bfb8a8c65f826e) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index d07a55a85..ed46453cf 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit d07a55a852e3e9430daba9068878b1ac10605f0a +Subproject commit ed46453cfc3032d28246e81d93bfb8a8c65f826e From deaa5723c246747815fe9b8d65a1ae05ee899588 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Apr 2024 18:19:26 +0000 Subject: [PATCH 224/250] build(deps): bump third_party/abseil-cpp from `b8f2b2c` to `564372f` (#2353) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `b8f2b2c` to `564372f`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/b8f2b2c6cf362acc30ebb581dfc43d44f73bdf23...564372fcd6d8c76e6faca5317d94b70c1d069ddb) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index b8f2b2c6c..564372fcd 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit b8f2b2c6cf362acc30ebb581dfc43d44f73bdf23 +Subproject commit 564372fcd6d8c76e6faca5317d94b70c1d069ddb From 2fcd3f9b8dc407151655754951e08f48bde6d88b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Apr 2024 18:22:45 +0000 Subject: [PATCH 225/250] build(deps): bump third_party/googletest from `5197b1a` to `5a37b51` (#2351) Bumps [third_party/googletest](https://github.com/google/googletest) from `5197b1a` to `5a37b51`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/5197b1a8e6a1ef9f214f4aa537b0be17cbf91946...5a37b517ad4ab6738556f0284c256cae1466c5b4) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 5197b1a8e..5a37b517a 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 5197b1a8e6a1ef9f214f4aa537b0be17cbf91946 +Subproject commit 5a37b517ad4ab6738556f0284c256cae1466c5b4 From 63ced7dc92ccf3db97a2878b68a96594ac13f5e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Apr 2024 18:32:02 +0000 Subject: [PATCH 226/250] build(deps): bump third_party/yosys from `ed46453` to `171577f` (#2352) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `ed46453` to `171577f`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/ed46453cfc3032d28246e81d93bfb8a8c65f826e...171577f909cd0ecc33d879a8925d70f6c9ca8f1e) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index ed46453cf..171577f90 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit ed46453cfc3032d28246e81d93bfb8a8c65f826e +Subproject commit 171577f909cd0ecc33d879a8925d70f6c9ca8f1e From 94fd2acdba4d62a66a41f4200b7776244867395b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 27 Apr 2024 17:29:23 +0000 Subject: [PATCH 227/250] build(deps): bump third_party/cctz from `bb0595b` to `5b5c77d` (#2357) Bumps [third_party/cctz](https://github.com/google/cctz) from `bb0595b` to `5b5c77d`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/bb0595b6249031abe83e972ee13571d7f0e655ed...5b5c77df48fdffb60e492a159d03a05203d820e2) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index bb0595b62..5b5c77df4 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit bb0595b6249031abe83e972ee13571d7f0e655ed +Subproject commit 5b5c77df48fdffb60e492a159d03a05203d820e2 From 1f850050acf61781ad4b9a36bc923866beba1633 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 18:11:32 +0000 Subject: [PATCH 228/250] build(deps): bump third_party/yaml-cpp from `96f5c88` to `1d8ca1f` (#2362) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `96f5c88` to `1d8ca1f`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/96f5c887f373ac483844c51cfc9a3621002314f0...1d8ca1f35eb3a9c9142462b28282a848e5d29a91) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index 96f5c887f..1d8ca1f35 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit 96f5c887f373ac483844c51cfc9a3621002314f0 +Subproject commit 1d8ca1f35eb3a9c9142462b28282a848e5d29a91 From ec29f1ecc82708473bcf62210ba0468b5b89bc13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 18:16:07 +0000 Subject: [PATCH 229/250] build(deps): bump third_party/yosys from `171577f` to `0f9ee20` (#2360) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `171577f` to `0f9ee20`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/171577f909cd0ecc33d879a8925d70f6c9ca8f1e...0f9ee20ea2c9b377f9b28b862f77b197e6485e00) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 171577f90..0f9ee20ea 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 171577f909cd0ecc33d879a8925d70f6c9ca8f1e +Subproject commit 0f9ee20ea2c9b377f9b28b862f77b197e6485e00 From 8b6018d19dcfcd5196945bbd909e7af77704f528 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 18:16:33 +0000 Subject: [PATCH 230/250] build(deps): bump third_party/abseil-cpp from `564372f` to `c1e1b47` (#2359) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `564372f` to `c1e1b47`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/564372fcd6d8c76e6faca5317d94b70c1d069ddb...c1e1b47d989978cde8c5a2a219df425b785a0c47) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 564372fcd..c1e1b47d9 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 564372fcd6d8c76e6faca5317d94b70c1d069ddb +Subproject commit c1e1b47d989978cde8c5a2a219df425b785a0c47 From 3ed20b5f8b91675275801fb39bea6836ce755aa0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 May 2024 18:17:54 +0000 Subject: [PATCH 231/250] build(deps): bump third_party/googletest from `5a37b51` to `2d16ed0` (#2361) Bumps [third_party/googletest](https://github.com/google/googletest) from `5a37b51` to `2d16ed0`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/5a37b517ad4ab6738556f0284c256cae1466c5b4...2d16ed055d09c3689d44b272adc097393de948a0) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 5a37b517a..2d16ed055 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 5a37b517ad4ab6738556f0284c256cae1466c5b4 +Subproject commit 2d16ed055d09c3689d44b272adc097393de948a0 From d360e03c5029fbd390d263fe5fe64e49793a711d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 May 2024 17:38:00 +0000 Subject: [PATCH 232/250] build(deps): bump third_party/abseil-cpp from `c1e1b47` to `99bb2f6` (#2364) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `c1e1b47` to `99bb2f6`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/c1e1b47d989978cde8c5a2a219df425b785a0c47...99bb2f6f106db314fc93fdda3bdeed4005584887) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index c1e1b47d9..99bb2f6f1 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit c1e1b47d989978cde8c5a2a219df425b785a0c47 +Subproject commit 99bb2f6f106db314fc93fdda3bdeed4005584887 From efd3c0f1381ec82da82be4f215947a098ef50933 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 May 2024 17:38:26 +0000 Subject: [PATCH 233/250] build(deps): bump third_party/yosys from `0f9ee20` to `07ac4c2` (#2365) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `0f9ee20` to `07ac4c2`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/0f9ee20ea2c9b377f9b28b862f77b197e6485e00...07ac4c2faecb9e72b53988f4a3b87642dfaa0465) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 0f9ee20ea..07ac4c2fa 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 0f9ee20ea2c9b377f9b28b862f77b197e6485e00 +Subproject commit 07ac4c2faecb9e72b53988f4a3b87642dfaa0465 From b04ac0036508d86c2c463ef3adf70b9193af5806 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 11 May 2024 17:38:48 +0000 Subject: [PATCH 234/250] build(deps): bump third_party/googletest from `2d16ed0` to `fa6de7f` (#2363) Bumps [third_party/googletest](https://github.com/google/googletest) from `2d16ed0` to `fa6de7f`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/2d16ed055d09c3689d44b272adc097393de948a0...fa6de7f4382f5c8fb8b9e32eea28a2eb44966c32) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 2d16ed055..fa6de7f43 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 2d16ed055d09c3689d44b272adc097393de948a0 +Subproject commit fa6de7f4382f5c8fb8b9e32eea28a2eb44966c32 From 9da8d7e52c80836ece7743c17d3979a8bace4dde Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 17:39:23 +0000 Subject: [PATCH 235/250] build(deps): bump third_party/abseil-cpp from `99bb2f6` to `baf07b1` (#2369) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `99bb2f6` to `baf07b1`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/99bb2f6f106db314fc93fdda3bdeed4005584887...baf07b1f6201e4a6b3f16d87131a558693197c6f) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 99bb2f6f1..baf07b1f6 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 99bb2f6f106db314fc93fdda3bdeed4005584887 +Subproject commit baf07b1f6201e4a6b3f16d87131a558693197c6f From bb7d53d2049754ac3568719c09484d2d66e4a48d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 17:39:31 +0000 Subject: [PATCH 236/250] build(deps): bump third_party/googletest from `fa6de7f` to `305e5a2` (#2371) Bumps [third_party/googletest](https://github.com/google/googletest) from `fa6de7f` to `305e5a2`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/fa6de7f4382f5c8fb8b9e32eea28a2eb44966c32...305e5a238b3c8d11266fbafd85520fb6b3184851) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index fa6de7f43..305e5a238 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit fa6de7f4382f5c8fb8b9e32eea28a2eb44966c32 +Subproject commit 305e5a238b3c8d11266fbafd85520fb6b3184851 From 5d682fac45c7b52b0ec1a68c68450cee5834bb28 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 18:09:22 +0000 Subject: [PATCH 237/250] build(deps): bump third_party/abseil-cpp from `baf07b1` to `d06b827` (#2373) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `baf07b1` to `d06b827`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/baf07b1f6201e4a6b3f16d87131a558693197c6f...d06b82773e2306a99a8971934fb5845d5c04a170) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index baf07b1f6..d06b82773 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit baf07b1f6201e4a6b3f16d87131a558693197c6f +Subproject commit d06b82773e2306a99a8971934fb5845d5c04a170 From d7fe67ddcf5fc5de81e70aca201a13de062ee756 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Jun 2024 17:20:52 +0000 Subject: [PATCH 238/250] build(deps): bump third_party/yosys from `07ac4c2` to `078c14f` (#2377) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `07ac4c2` to `078c14f`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/07ac4c2faecb9e72b53988f4a3b87642dfaa0465...078c14f05520f0eee9afaa5fd949b9e9758a75a0) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 07ac4c2fa..078c14f05 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 07ac4c2faecb9e72b53988f4a3b87642dfaa0465 +Subproject commit 078c14f05520f0eee9afaa5fd949b9e9758a75a0 From bdbc665852b82f589ff775a8f6498542dbec0a07 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Jun 2024 17:22:16 +0000 Subject: [PATCH 239/250] build(deps): bump third_party/abseil-cpp from `d06b827` to `2f61aed` (#2376) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `d06b827` to `2f61aed`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/d06b82773e2306a99a8971934fb5845d5c04a170...2f61aed18c4affd3a75a2b2d2468d23f2f16192a) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index d06b82773..2f61aed18 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit d06b82773e2306a99a8971934fb5845d5c04a170 +Subproject commit 2f61aed18c4affd3a75a2b2d2468d23f2f16192a From dc57828773d697d64d3e303eac8f57a0a581fc5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Jun 2024 17:53:42 +0000 Subject: [PATCH 240/250] build(deps): bump third_party/googletest from `305e5a2` to `1d17ea1` (#2381) Bumps [third_party/googletest](https://github.com/google/googletest) from `305e5a2` to `1d17ea1`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/305e5a238b3c8d11266fbafd85520fb6b3184851...1d17ea141d2c11b8917d2c7d029f1c4e2b9769b2) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 305e5a238..1d17ea141 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 305e5a238b3c8d11266fbafd85520fb6b3184851 +Subproject commit 1d17ea141d2c11b8917d2c7d029f1c4e2b9769b2 From 13b7d2b517ee5c6adb57024d17a62a5ed2dbfe38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Jun 2024 17:57:19 +0000 Subject: [PATCH 241/250] build(deps): bump third_party/gflags from `986e8ee` to `03a4842` (#2380) Bumps [third_party/gflags](https://github.com/gflags/gflags) from `986e8ee` to `03a4842`. - [Release notes](https://github.com/gflags/gflags/releases) - [Commits](https://github.com/gflags/gflags/compare/986e8eed00ded8168ef4eaa6f925dc6be50b40fa...03a4842c9c6aaef438d7bf0c84e8a62c8064992b) --- updated-dependencies: - dependency-name: third_party/gflags dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/gflags | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/gflags b/third_party/gflags index 986e8eed0..03a4842c9 160000 --- a/third_party/gflags +++ b/third_party/gflags @@ -1 +1 @@ -Subproject commit 986e8eed00ded8168ef4eaa6f925dc6be50b40fa +Subproject commit 03a4842c9c6aaef438d7bf0c84e8a62c8064992b From ceb96bb4743ab41e7555f1cb9504a42506f5d32d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Jun 2024 17:58:36 +0000 Subject: [PATCH 242/250] build(deps): bump third_party/yosys from `078c14f` to `74a1dd9` (#2378) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `078c14f` to `74a1dd9`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/078c14f05520f0eee9afaa5fd949b9e9758a75a0...74a1dd99ac0bc7355b5d8913bc4b7bb0160ddb1d) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 078c14f05..74a1dd99a 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 078c14f05520f0eee9afaa5fd949b9e9758a75a0 +Subproject commit 74a1dd99ac0bc7355b5d8913bc4b7bb0160ddb1d From 0cd9fb73efda7f4f2b31af0cc38569334b429f03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Jun 2024 17:41:26 +0000 Subject: [PATCH 243/250] build(deps): bump third_party/abseil-cpp from `2f61aed` to `1ee05f2` (#2383) Bumps [third_party/abseil-cpp](https://github.com/abseil/abseil-cpp) from `2f61aed` to `1ee05f2`. - [Release notes](https://github.com/abseil/abseil-cpp/releases) - [Commits](https://github.com/abseil/abseil-cpp/compare/2f61aed18c4affd3a75a2b2d2468d23f2f16192a...1ee05f285bc7c343b7adbe0808eae15e4a914246) --- updated-dependencies: - dependency-name: third_party/abseil-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/abseil-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/abseil-cpp b/third_party/abseil-cpp index 2f61aed18..1ee05f285 160000 --- a/third_party/abseil-cpp +++ b/third_party/abseil-cpp @@ -1 +1 @@ -Subproject commit 2f61aed18c4affd3a75a2b2d2468d23f2f16192a +Subproject commit 1ee05f285bc7c343b7adbe0808eae15e4a914246 From 8b1c3ef53449edd173d9c9c7bdc4aa075d1b617c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Jun 2024 17:49:30 +0000 Subject: [PATCH 244/250] build(deps): bump third_party/yosys from `74a1dd9` to `6c8ae44` (#2382) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `74a1dd9` to `6c8ae44`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/74a1dd99ac0bc7355b5d8913bc4b7bb0160ddb1d...6c8ae44ae7ebe5cbad7cfaf2d0934701e29c9527) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 74a1dd99a..6c8ae44ae 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 74a1dd99ac0bc7355b5d8913bc4b7bb0160ddb1d +Subproject commit 6c8ae44ae7ebe5cbad7cfaf2d0934701e29c9527 From 821625ce100543ceb05ec5fd023882ca2d0b5f68 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Jul 2024 18:15:16 +0000 Subject: [PATCH 245/250] build(deps): bump third_party/yosys from `6c8ae44` to `dac5bd1` (#2387) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `6c8ae44` to `dac5bd1`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/6c8ae44ae7ebe5cbad7cfaf2d0934701e29c9527...dac5bd1983a5078e3e7426df1e8ee48d300ead7d) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index 6c8ae44ae..dac5bd198 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit 6c8ae44ae7ebe5cbad7cfaf2d0934701e29c9527 +Subproject commit dac5bd1983a5078e3e7426df1e8ee48d300ead7d From 1b76890e8d912fc2233177d780287f0f286cf248 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 17:46:06 +0000 Subject: [PATCH 246/250] build(deps): bump third_party/googletest from `1d17ea1` to `4b21f1a` (#2391) Bumps [third_party/googletest](https://github.com/google/googletest) from `1d17ea1` to `4b21f1a`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/1d17ea141d2c11b8917d2c7d029f1c4e2b9769b2...4b21f1abddaf7d28388d7430bab69a81eccb1909) --- updated-dependencies: - dependency-name: third_party/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/googletest b/third_party/googletest index 1d17ea141..4b21f1abd 160000 --- a/third_party/googletest +++ b/third_party/googletest @@ -1 +1 @@ -Subproject commit 1d17ea141d2c11b8917d2c7d029f1c4e2b9769b2 +Subproject commit 4b21f1abddaf7d28388d7430bab69a81eccb1909 From 563df2972e90bfa70f27c8ce43c8561ec76c3e6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 17:53:44 +0000 Subject: [PATCH 247/250] build(deps): bump third_party/yosys from `dac5bd1` to `b08688f` (#2390) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `dac5bd1` to `b08688f`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/dac5bd1983a5078e3e7426df1e8ee48d300ead7d...b08688f71197316cd44859b8ced16136cf1b3957) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index dac5bd198..b08688f71 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit dac5bd1983a5078e3e7426df1e8ee48d300ead7d +Subproject commit b08688f71197316cd44859b8ced16136cf1b3957 From 326576604b8c011f67d68b8b3c427ba4d45783a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 17:57:59 +0000 Subject: [PATCH 248/250] build(deps): bump third_party/cctz from `5b5c77d` to `4f25782` (#2392) Bumps [third_party/cctz](https://github.com/google/cctz) from `5b5c77d` to `4f25782`. - [Release notes](https://github.com/google/cctz/releases) - [Commits](https://github.com/google/cctz/compare/5b5c77df48fdffb60e492a159d03a05203d820e2...4f2578218c598f075a19245be842e69a1865a929) --- updated-dependencies: - dependency-name: third_party/cctz dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/cctz | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/cctz b/third_party/cctz index 5b5c77df4..4f2578218 160000 --- a/third_party/cctz +++ b/third_party/cctz @@ -1 +1 @@ -Subproject commit 5b5c77df48fdffb60e492a159d03a05203d820e2 +Subproject commit 4f2578218c598f075a19245be842e69a1865a929 From 653d11d53dc15204b231152f59ff2dd79196fee0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Jul 2024 17:43:19 +0000 Subject: [PATCH 249/250] build(deps): bump third_party/yosys from `b08688f` to `118b282` (#2393) Bumps [third_party/yosys](https://github.com/YosysHQ/yosys) from `b08688f` to `118b282`. - [Release notes](https://github.com/YosysHQ/yosys/releases) - [Commits](https://github.com/YosysHQ/yosys/compare/b08688f71197316cd44859b8ced16136cf1b3957...118b2829db18b8399ae1eb174e8295717d422544) --- updated-dependencies: - dependency-name: third_party/yosys dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yosys | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yosys b/third_party/yosys index b08688f71..118b2829d 160000 --- a/third_party/yosys +++ b/third_party/yosys @@ -1 +1 @@ -Subproject commit b08688f71197316cd44859b8ced16136cf1b3957 +Subproject commit 118b2829db18b8399ae1eb174e8295717d422544 From 5ec92c7074d321facac3f6250d594b826455dace Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Jul 2024 17:48:22 +0000 Subject: [PATCH 250/250] build(deps): bump third_party/yaml-cpp from `1d8ca1f` to `b95aa14` (#2395) Bumps [third_party/yaml-cpp](https://github.com/jbeder/yaml-cpp) from `1d8ca1f` to `b95aa14`. - [Release notes](https://github.com/jbeder/yaml-cpp/releases) - [Commits](https://github.com/jbeder/yaml-cpp/compare/1d8ca1f35eb3a9c9142462b28282a848e5d29a91...b95aa146ec3226f31b7b75bef1b5f750af25fb8a) --- updated-dependencies: - dependency-name: third_party/yaml-cpp dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/yaml-cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/yaml-cpp b/third_party/yaml-cpp index 1d8ca1f35..b95aa146e 160000 --- a/third_party/yaml-cpp +++ b/third_party/yaml-cpp @@ -1 +1 @@ -Subproject commit 1d8ca1f35eb3a9c9142462b28282a848e5d29a91 +Subproject commit b95aa146ec3226f31b7b75bef1b5f750af25fb8a