polishing OpenSTA Docker image
This commit is contained in:
parent
2c928b7f51
commit
2cfbc4080b
|
|
@ -0,0 +1,4 @@
|
|||
.gitignore
|
||||
Dockerfile
|
||||
README
|
||||
INSTALL
|
||||
23
Dockerfile
23
Dockerfile
|
|
@ -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
108
README
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue