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
|
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
108
README
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue