Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 25 additions & 21 deletions etc/DependencyInstaller.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@ _installCommon() {
baseDir=$(mktemp -d /tmp/DependencyInstaller-orfs-XXXXXX)

# Install Verilator
verilatorPrefix=`realpath ${PREFIX:-"/usr/local"}`
verilatorPrefix="$(realpath ${PREFIX:-/usr/local})"
if [[ ! -x ${verilatorPrefix}/bin/verilator ]]; then
pushd $baseDir
git clone --depth=1 -b "v$verilatorVersion" https://github.com/verilator/verilator.git
pushd verilator
autoconf
./configure --prefix "${verilatorPrefix}"
make -j`nproc`
make -j $(nproc)
make install
popd
rm -r verilator
Expand All @@ -67,16 +67,16 @@ _installCentosPackages() {
ruby-devel

if ! [ -x "$(command -v klayout)" ]; then
yum -y install https://www.klayout.org/downloads/CentOS_7/klayout-${klayoutVersion}-0.x86_64.rpm
else
currentVersion=$(klayout -v | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
if _versionCompare $currentVersion -ge $klayoutVersion; then
echo "KLayout version greater than or equal to ${klayoutVersion}"
else
echo "KLayout version less than ${klayoutVersion}"
sudo yum remove -y klayout
yum -y install https://www.klayout.org/downloads/CentOS_7/klayout-${klayoutVersion}-0.x86_64.rpm
fi
else
currentVersion=$(klayout -v | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
if _versionCompare $currentVersion -ge $klayoutVersion; then
echo "KLayout version greater than or equal to ${klayoutVersion}"
else
echo "KLayout version less than ${klayoutVersion}"
sudo yum remove -y klayout
yum -y install https://www.klayout.org/downloads/CentOS_7/klayout-${klayoutVersion}-0.x86_64.rpm
fi
fi
}

Expand All @@ -90,11 +90,12 @@ _installKlayoutDependenciesUbuntuAarch64() {
export DEBIAN_FRONTEND=noninteractive
apt-get -y update
apt-get -y install build-essential \
qtbase5-dev qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev \
ruby ruby-dev \
python3 python3-dev \
libz-dev\
libgit2-dev
qtbase5-dev qttools5-dev libqt5xmlpatterns5-dev qtmultimedia5-dev libqt5multimediawidgets5 libqt5svg5-dev \
ruby ruby-dev \
python3 python3-dev \
libz-dev\
libgit2-dev

echo "All dependencies installed successfully"
}

Expand Down Expand Up @@ -133,19 +134,19 @@ _installUbuntuPackages() {
lastDir="$(pwd)"
# temp dir to download and compile
baseDir=/tmp/installers
klayoutPrefix=${PREFIX:-"/usr/local"}
klayoutPrefix=${PREFIX:-"/usr/local/bin"}
mkdir -p "${baseDir}"
cd "${baseDir}"
if [[ $arch == "aarch64" ]]; then
if [ ! -f ${klayoutPrefix}/klayout ]; then
_installKlayoutDependenciesUbuntuAarch64
echo "Installing KLayout for aarch64 architecture"
git clone https://github.com/KLayout/klayout.git
git clone --depth=1 -b "v${klayoutVersion}" https://github.com/KLayout/klayout.git
cd klayout
./build.sh -bin "${klayoutPrefix}"
./build.sh -prefix "${klayoutPrefix}" -j $(nproc)
else
echo "Klayout is already installed"
fi
fi
else
if [[ $1 == 20.04 ]]; then
klayoutChecksum=15a26f74cf396d8a10b7985ed70ab135
Expand All @@ -164,6 +165,7 @@ _installUbuntuPackages() {
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc

chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
Expand Down Expand Up @@ -195,7 +197,9 @@ _installCI() {
coreutils \
curl \
python3 \
software-properties-common
software-properties-common \
unzip \
wget
}

_help() {
Expand Down
5 changes: 3 additions & 2 deletions etc/DockerTag.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ if [[ "$@" == "-dev" ]]; then
"./tools/OpenROAD/etc/DockerHelper.sh"
"./tools/OpenROAD/etc/DockerTag.sh"
)
cat "${file_list[@]}" | sha256sum | awk '{print substr($1, 1, 6)}'
ret=$(cat "${file_list[@]}" | sha256sum | awk '{print substr($1, 1, 6)}')
elif [[ "$@" == "-master" ]]; then
git describe
ret=$(git describe)
else
echo "Usage: $0 {-dev|-master}"
exit 1
fi
echo "${ret}-$(uname -m)"
73 changes: 38 additions & 35 deletions jenkins/public_tests_all.Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,50 +1,53 @@
@Library('utils@orfs-v2.1.0') _
@Library('utils@orfs-arm') _

node {

def DOCKER_IMAGE;
properties([copyArtifactPermission('${JOB_NAME},'+env.BRANCH_NAME)]);

stage('Checkout') {
if (env.BRANCH_NAME && env.BRANCH_NAME == 'master') {
checkout([
$class: 'GitSCM',
branches: [[name: scm.branches[0].name]],
doGenerateSubmoduleConfigurations: false,
extensions: [
[$class: 'CloneOption', noTags: false],
[$class: 'SubmoduleOption', recursiveSubmodules: true]
],
submoduleCfg: [],
userRemoteConfigs: scm.userRemoteConfigs
]);
Map archs = [failFast: false];

archs['x86'] = {
stage('Checkout') {
if (env.BRANCH_NAME && env.BRANCH_NAME == 'master') {
checkout([
$class: 'GitSCM',
branches: [[name: scm.branches[0].name]],
doGenerateSubmoduleConfigurations: false,
extensions: [
[$class: 'CloneOption', noTags: false],
[$class: 'SubmoduleOption', recursiveSubmodules: true]
],
submoduleCfg: [],
userRemoteConfigs: scm.userRemoteConfigs
]);
}
else {
checkout scm;
}
def description = sh(script: "git log -1 --pretty=%B", returnStdout: true).trim();
if (description.contains('ci') && description.contains('skip')) {
currentBuild.result = 'SKIPPED'; // 'SUCCESS', 'SKIPPED'
return;
}
}
else {
checkout scm;
stage('Build and Push Docker Image') {
DOCKER_IMAGE = dockerPush('ubuntu22.04', 'orfs');
echo "Docker image is $DOCKER_IMAGE";
}
def description = sh(script: "git log -1 --pretty=%B", returnStdout: true).trim();
if (description.contains('ci') && description.contains('skip')) {
currentBuild.result = 'SKIPPED'; // 'SUCCESS', 'SKIPPED'
return;
stage('Build ORFS and Stash bins') {
buildBins(DOCKER_IMAGE);
}
stage('Run Tests') {
runTests(DOCKER_IMAGE, 'dev');
}
}

def DOCKER_IMAGE;
stage('Build and Push Docker Image') {
DOCKER_IMAGE = dockerPush('ubuntu22.04', 'orfs');
echo "Docker image is $DOCKER_IMAGE";
}

stage('Build ORFS and Stash bins') {
buildBins(DOCKER_IMAGE);
archs['aarch64'] = {
aarch64();
}

stage('Run Tests') {
if (env.CHANGE_BRANCH && env.CHANGE_BRANCH.contains('ci-dev')) {
runTests(DOCKER_IMAGE, 'dev');
} else {
runTests(DOCKER_IMAGE, 'pr');
}
}
parallel(archs);

stage ('Cleanup and Reporting') {
finalReport(DOCKER_IMAGE);
Expand Down
2 changes: 1 addition & 1 deletion tools/OpenROAD
Submodule OpenROAD updated 66 files
+1 −0 .gitignore
+149 −0 default.nix
+1 −1 docker/Dockerfile.cpp20
+11 −2 docs/conf.py
+20 −0 docs/index.md
+1 −0 docs/requirements.txt
+3 −2 docs/revert-links.py
+3 −1 docs/toc.yml
+54 −20 docs/user/Build.md
+42 −22 etc/DependencyInstaller.sh
+0 −51 etc/shell.nix
+27 −0 flake.lock
+38 −0 flake.nix
+6 −0 src/CMakeLists.txt
+81 −30 src/README.md
+4 −1 src/ant/src/AntennaChecker.cc
+1 −0 src/cts/include/cts/TritonCTS.h
+4 −0 src/cts/src/CtsOptions.h
+13 −2 src/cts/src/HTreeBuilder.cpp
+1 −4 src/cts/src/HTreeBuilder.h
+61 −0 src/cts/src/TritonCTS.cpp
+2 −2 src/cts/test/CMakeLists.txt
+3 −3 src/dft/test/cpp/CMakeLists.txt
+3 −3 src/dpl/test/CMakeLists.txt
+1 −0 src/drt/CMakeLists.txt
+4 −4 src/drt/src/db/obj/frBTerm.h
+2 −2 src/drt/src/db/obj/frInstTerm.cpp
+3 −2 src/drt/src/db/obj/frInstTerm.h
+4 −4 src/drt/src/db/obj/frMTerm.h
+48 −0 src/drt/src/db/obj/frNet.cpp
+1 −0 src/drt/src/db/obj/frNet.h
+1 −1 src/drt/src/db/obj/frTerm.h
+336 −274 src/drt/src/io/GuideProcessor.cpp
+52 −23 src/drt/src/io/GuideProcessor.h
+1 −1 src/drt/test/drc_test.ok
+2 −2 src/gpl/test/CMakeLists.txt
+1 −0 src/grt/include/grt/GlobalRouter.h
+15 −1 src/grt/src/GlobalRouter.cpp
+1 −1 src/grt/src/RepairAntennas.cpp
+1 −0 src/grt/src/fastroute/include/FastRoute.h
+8 −0 src/grt/src/fastroute/src/FastRoute.cpp
+1 −0 src/grt/test/repair_antennas_error1.ok
+7 −1 src/gui/src/chartsWidget.cpp
+11 −6 src/mpl2/src/clusterEngine.cpp
+1 −1 src/mpl2/src/clusterEngine.h
+5 −0 src/mpl2/src/object.cpp
+1 −0 src/mpl2/src/object.h
+6 −6 src/mpl2/test/cpp/CMakeLists.txt
+1 −1 src/odb/src/lef/lef/lefrData.cpp
+4 −3 src/odb/test/cpp/scan/CMakeLists.txt
+3 −3 src/rmp/test/cpp/CMakeLists.txt
+3 −3 src/rsz/test/cpp/CMakeLists.txt
+4 −0 src/tap/README.md
+1 −0 src/tap/include/tap/tapcell.h
+4 −3 src/tap/src/tapcell.cpp
+4 −1 src/tap/src/tapcell.i
+22 −8 src/tap/src/tapcell.tcl
+125 −0 src/tap/test/cut_rows_min_width.def
+301 −0 src/tap/test/cut_rows_min_width.defok
+8 −0 src/tap/test/cut_rows_min_width.ok
+14 −0 src/tap/test/cut_rows_min_width.tcl
+1 −0 src/tap/test/regression_tests.tcl
+2 −2 src/utl/test/cpp/CMakeLists.txt
+2 −0 test/flow.tcl
+0 −4 third-party/CMakeLists.txt
+0 −8 third-party/gtest/CMakeLists.txt