polishing OpenSTA Docker image

This commit is contained in:
Abdelrahman 2019-01-17 17:21:33 -05:00
parent 2c928b7f51
commit 2cfbc4080b
3 changed files with 75 additions and 60 deletions

4
.dockerignore Normal file
View File

@ -0,0 +1,4 @@
.gitignore
Dockerfile
README
INSTALL

View File

@ -1,16 +1,16 @@
FROM ubuntu:18.04 FROM ubuntu:18.04
LABEL author="James Cherry"
LABEL maintainer="Abdelrahman Hosny <abdelrahman@brown.edu>"
# install basics
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y wget apt-utils git apt-get install -y wget apt-utils git cmake gcc tcl-dev swig bison flex
# download CUDD # download CUDD
RUN wget https://www.davidkebo.com/source/cudd_versions/cudd-3.0.0.tar.gz && \ RUN wget https://www.davidkebo.com/source/cudd_versions/cudd-3.0.0.tar.gz && \
tar -xvf cudd-3.0.0.tar.gz tar -xvf cudd-3.0.0.tar.gz && \
rm cudd-3.0.0.tar.gz
# install main dependencies
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y cmake gcc tcl tcl-dev swig bison flex
# install CUDD # install CUDD
RUN cd cudd-3.0.0 && \ RUN cd cudd-3.0.0 && \
@ -19,13 +19,14 @@ RUN cd cudd-3.0.0 && \
make && \ make && \
make install make install
# clone and install OpenSTA # copy files and install OpenSTA
RUN git clone https://github.com/abk-openroad/OpenSTA.git && \ RUN mkdir OpenSTA
cd OpenSTA && \ COPY . OpenSTA
RUN cd OpenSTA && \
mkdir build && \ mkdir build && \
cd build && \ cd build && \
cmake .. -DCUDD=$HOME/cudd && \ cmake .. -DCUDD=$HOME/cudd && \
make make
# Run sta on entry # Run sta on entry
CMD OpenSTA/app/sta ENTRYPOINT ["OpenSTA/app/sta"]

108
README
View File

@ -1,59 +1,69 @@
# OpenSTA, Static Timing Analyzer # OpenSTA, Static Timing Analyzer
# Copyright (c) 2019, Parallax Software, Inc. Copyright (c) 2019, Parallax Software, Inc.
#
# This program is free software: you can redistribute it and/or modify > This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by > it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or > the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. > (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, > This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of > but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. > GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License > You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>. > along with this program. If not, see <https://www.gnu.org/licenses/>.
Parallax Gate Level Static Timing Analyzer Parallax Gate Level Static Timing Analyzer
See INSTALL for installation and build instructions.
Standard file formats ## Install
Verilog
Liberty
SDC
SDF
RSPF/DSPF/SPEF
Exception path support See INSTALL for installation and build instructions. Alternatively, run using Docker as described in the next section
False path
Multicycle path
Min/Max delay
Exception points
-from clock/pin/instance -through pin/net -to clock/pin/instance
Edge specific exception points
-rise_from/-fall_from, -rise_through/-fall_through, -rise_to/-fall_to
Clocks ## Run using Docker
Generated 1. Install Docker on [Windows](https://docs.docker.com/docker-for-windows/), [Mac](https://docs.docker.com/docker-for-mac/) or [Linux](https://docs.docker.com/install/).
Latency 2. Navigate to the directory where you have the input files.
Source latency (insertion delay) 3. Run OpenSTA as a binary using `docker run -it -v $(pwd):/data openroad/opensta`
Uncertainty 4. From the interactive terminal, use OpenSTA commands. You can read input files from `/data` directory inside the docker container (e.g. `read_liberty /data/liberty.lib`). You can use OpenSTA in non-interactive mode by passing a command file using `-f` flag as follows `docker run -it -v $(pwd):/data openroad/opensta -f /data/cmd_file`. Note that the path after `-f` is the path inside container, not on the guest machine.
Propagated/Ideal
Gated clock checks
Multiple frequency clocks
Delay calculation ## Standard file formats
Integrated Dartu/Menezes/Pileggi RC effective capacitance algorithm
External delay calculator API
Analysis * Verilog
Report timing checks -from, -through, -to, multiple paths to endpoint * Liberty
Report delay calculation * SDC
Check timing setup * SDF
* RSPF/DSPF/SPEF
Search Engine ## Exception path support
Query based incremental update of delays, arrival and required times * False path
Simulator to propagate constants from constraints and netlist tie high/low * Multicycle path
* Min/Max delay
* Exception points
* -from clock/pin/instance -through pin/net -to clock/pin/instance
* Edge specific exception points
* -rise_from/-fall_from, -rise_through/-fall_through, -rise_to/-fall_to
Timing engine library ## Clocks
Network adapter uses external netlist database without duplicating any data * Generated
* Latency
* Source latency (insertion delay)
* Uncertainty
* Propagated/Ideal
* Gated clock checks
* Multiple frequency clocks
## Delay calculation
* Integrated Dartu/Menezes/Pileggi RC effective capacitance algorithm
* External delay calculator API
## Analysis
* Report timing checks -from, -through, -to, multiple paths to endpoint
* Report delay calculation
* Check timing setup
## Search Engine
* Query based incremental update of delays, arrival and required times
* Simulator to propagate constants from constraints and netlist tie high/low
## Timing engine library
* Network adapter uses external netlist database without duplicating any data