Merge remote-tracking branch 'parallax/master'
Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
This commit is contained in:
commit
45884213e3
66
Dockerfile
66
Dockerfile
|
|
@ -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"]
|
||||
|
|
@ -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"]
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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.");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue