Merge remote-tracking branch 'parallax/master'

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
This commit is contained in:
Matt Liberty 2024-08-09 16:10:51 -07:00
commit 45884213e3
6 changed files with 58 additions and 71 deletions

View File

@ -1,66 +0,0 @@
FROM centos:centos7 AS base-dependencies
LABEL author="James Cherry"
LABEL maintainer="James Cherry <cherry@parallaxsw.com>"
# Install dev and runtime dependencies
RUN yum group install -y "Development Tools" \
&& yum install -y https://repo.ius.io/ius-release-el7.rpm \
&& yum install -y centos-release-scl \
&& yum install -y wget devtoolset-8 \
&& yum install -y qt5-qtbase-devel \
devtoolset-8-libatomic-devel tcl-devel tcl tk libstdc++ tk-devel pcre-devel \
python36u python36u-libs python36u-devel python36u-pip && \
yum clean -y all && \
rm -rf /var/lib/apt/lists/*
ENV CC=/opt/rh/devtoolset-8/root/usr/bin/gcc \
CPP=/opt/rh/devtoolset-8/root/usr/bin/cpp \
CXX=/opt/rh/devtoolset-8/root/usr/bin/g++ \
PATH=/opt/rh/devtoolset-8/root/usr/bin:$PATH \
LD_LIBRARY_PATH=/opt/rh/devtoolset-8/root/usr/lib64:/opt/rh/devtoolset-8/root/usr/lib:/opt/rh/devtoolset-8/root/usr/lib64/dyninst:/opt/rh/devtoolset-8/root/usr/lib/dyninst:/opt/rh/devtoolset-8/root/usr/lib64:/opt/rh/devtoolset-8/root/usr/lib:$LD_LIBRARY_PATH
# Install CMake
RUN wget https://cmake.org/files/v3.14/cmake-3.14.0-Linux-x86_64.sh && \
chmod +x cmake-3.14.0-Linux-x86_64.sh && \
./cmake-3.14.0-Linux-x86_64.sh --skip-license --prefix=/usr/local && rm -rf cmake-3.14.0-Linux-x86_64.sh \
&& yum clean -y all
# Install any git version > 2.6.5
RUN yum remove -y git* && yum install -y rh-git227
RUN rm -f /usr/bin/git; ln -s /opt/rh/rh-git227/root/bin/git /usr/bin/git
# Install SWIG
RUN yum remove -y swig \
&& wget https://github.com/swig/swig/archive/rel-4.0.1.tar.gz \
&& tar xfz rel-4.0.1.tar.gz \
&& rm -rf rel-4.0.1.tar.gz \
&& cd swig-rel-4.0.1 \
&& ./autogen.sh && ./configure --prefix=/usr && make -j $(nproc) && make install \
&& cd .. \
&& rm -rf swig-rel-4.0.1
# download CUDD
# RUN wget https://www.davidkebo.com/source/cudd_versions/cudd-3.0.0.tar.gz && \
# tar -xvf cudd-3.0.0.tar.gz && \
# rm cudd-3.0.0.tar.gz
# install CUDD
# RUN cd cudd-3.0.0 && \
# mkdir ../cudd && \
# ./configure --prefix=$HOME/cudd && \
# make && \
# make install
FROM base-dependencies AS builder
COPY . /OpenSTA
WORKDIR /OpenSTA
# Build
RUN mkdir build
#RUN cd buld && cmake .. -DCUDD=$HOME/cudd && make -j 8
RUN cd build && cmake .. && make -j 8
# Run sta on entry
ENTRYPOINT ["OpenSTA/app/sta"]

40
Dockerfile.centos7 Normal file
View File

@ -0,0 +1,40 @@
FROM centos:centos7 AS base-dependencies
LABEL author="James Cherry"
LABEL maintainer="James Cherry <cherry@parallaxsw.com>"
# Install dev and runtime dependencies
RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo \
&& sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo \
&& sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo \
&& yum update -y \
&& yum install -y centos-release-scl epel-release
RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo \
&& sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo \
&& sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo \
&& yum install -y devtoolset-8 wget cmake3 make eigen3-devel tcl-devel tcl-tclreadline-devel swig3 bison flex zlib-devel \
&& yum clean -y all
# Download CUDD
RUN wget https://raw.githubusercontent.com/davidkebo/cudd/main/cudd_versions/cudd-3.0.0.tar.gz && \
tar -xvf cudd-3.0.0.tar.gz && \
rm cudd-3.0.0.tar.gz
# Install CUDD
RUN source /opt/rh/devtoolset-8/enable && \
cd cudd-3.0.0 && \
mkdir ../cudd && \
./configure && \
make -j`nproc` && \
make install
FROM base-dependencies AS builder
COPY . /OpenSTA
WORKDIR /OpenSTA
# Build
RUN rm -rf build && mkdir build
RUN source /opt/rh/devtoolset-8/enable && cd build && cmake3 .. && make -j`nproc`
# Run sta on entry
ENTRYPOINT ["OpenSTA/app/sta"]

View File

@ -156,6 +156,18 @@ public:
PathGroup *pathGroup(const PathEnd *path_end) const;
void deletePathGroups();
void makePathGroups(int group_count,
int endpoint_count,
bool unique_pins,
float min_slack,
float max_slack,
PathGroupNameSet *group_names,
bool setup,
bool hold,
bool recovery,
bool removal,
bool clk_gating_setup,
bool clk_gating_hold);
virtual ExceptionPath *exceptionTo(ExceptionPathType type,
const Path *path,
const Pin *pin,

View File

@ -678,6 +678,8 @@ LibertyBuilder::makeMinPulseWidthArcs(LibertyCell *cell,
TimingRole *role,
TimingArcAttrsPtr attrs)
{
if (from_port == nullptr)
from_port = to_port;
TimingArcSet *arc_set = makeTimingArcSet(cell, from_port, to_port, related_out,
role, attrs);
for (auto to_rf : RiseFall::range()) {

View File

@ -4119,7 +4119,8 @@ LibertyReader::endTiming(LibertyGroup *group)
}
TimingType timing_type = timing_->attrs()->timingType();
if (timing_->relatedPortNames() == nullptr
&& !(timing_type == TimingType::min_clock_tree_path
&& !(timing_type == TimingType::min_pulse_width
|| timing_type == TimingType::min_clock_tree_path
|| timing_type == TimingType::max_clock_tree_path))
libWarn(1243, group, "timing group missing related_pin/related_bus_pin.");
}

View File

@ -115,9 +115,9 @@ Bdd::ensureNode(const LibertyPort *port)
auto port_var = bdd_port_var_map_.find(port);
DdNode *node = nullptr;
if (port_var == bdd_port_var_map_.end()) {
node = Cudd_bddNewVar(cudd_mgr_);
unsigned var_index = bdd_port_var_map_.size();
node = Cudd_bddIthVar(cudd_mgr_, var_index);
bdd_port_var_map_[port] = node;
unsigned var_index = Cudd_NodeReadIndex(node);
bdd_var_idx_port_map_[var_index] = port;
Cudd_Ref(node);
}
@ -149,8 +149,6 @@ Bdd::varIndexPort(int var_index)
void
Bdd::clearVarMap()
{
for (const auto [port, var_node] : bdd_port_var_map_)
Cudd_RecursiveDeref(cudd_mgr_, var_node);
bdd_port_var_map_.clear();
bdd_var_idx_port_map_.clear();
}