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
LABEL author="James Cherry"
LABEL maintainer="Abdelrahman Hosny <abdelrahman@brown.edu>"
# install basics
ARG DEBIAN_FRONTEND=noninteractive
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
RUN wget https://www.davidkebo.com/source/cudd_versions/cudd-3.0.0.tar.gz && \
tar -xvf 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
tar -xvf cudd-3.0.0.tar.gz && \
rm cudd-3.0.0.tar.gz
# install CUDD
RUN cd cudd-3.0.0 && \
@ -19,13 +19,14 @@ RUN cd cudd-3.0.0 && \
make && \
make install
# clone and install OpenSTA
RUN git clone https://github.com/abk-openroad/OpenSTA.git && \
cd OpenSTA && \
# copy files and install OpenSTA
RUN mkdir OpenSTA
COPY . OpenSTA
RUN cd OpenSTA && \
mkdir build && \
cd build && \
cmake .. -DCUDD=$HOME/cudd && \
make
# Run sta on entry
CMD OpenSTA/app/sta
ENTRYPOINT ["OpenSTA/app/sta"]

108
README
View File

@ -1,59 +1,69 @@
# OpenSTA, Static Timing Analyzer
# Copyright (c) 2019, Parallax Software, Inc.
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
Copyright (c) 2019, Parallax Software, Inc.
> 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
> the Free Software Foundation, either version 3 of the License, or
> (at your option) any later version.
> This program is distributed in the hope that it will be useful,
> but WITHOUT ANY WARRANTY; without even the implied warranty of
> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> GNU General Public License for more details.
> You should have received a copy of the GNU General Public License
> along with this program. If not, see <https://www.gnu.org/licenses/>.
Parallax Gate Level Static Timing Analyzer
See INSTALL for installation and build instructions.
Standard file formats
Verilog
Liberty
SDC
SDF
RSPF/DSPF/SPEF
## Install
Exception path support
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
See INSTALL for installation and build instructions. Alternatively, run using Docker as described in the next section
Clocks
Generated
Latency
Source latency (insertion delay)
Uncertainty
Propagated/Ideal
Gated clock checks
Multiple frequency clocks
## Run using Docker
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/).
2. Navigate to the directory where you have the input files.
3. Run OpenSTA as a binary using `docker run -it -v $(pwd):/data openroad/opensta`
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.
Delay calculation
Integrated Dartu/Menezes/Pileggi RC effective capacitance algorithm
External delay calculator API
## Standard file formats
Analysis
Report timing checks -from, -through, -to, multiple paths to endpoint
Report delay calculation
Check timing setup
* Verilog
* Liberty
* SDC
* SDF
* RSPF/DSPF/SPEF
Search Engine
Query based incremental update of delays, arrival and required times
Simulator to propagate constants from constraints and netlist tie high/low
## Exception path support
* 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
Timing engine library
Network adapter uses external netlist database without duplicating any data
## Clocks
* 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