| # Table of contents |
| - [Timing](#Timing) |
| - [Files structure](#files-structure) |
| - [openroad tcl scripts](#openroad-tcl-scripts) |
| - [settings](#settings-or-env) |
| - [Running](#running) |
| - [exports](#exports) |
| - [examples](#examples) |
| |
| ## Timing |
| |
| --- |
| |
| > **_NOTE:_** This document is a wip. It is not a finished documentation. The "timing" setup may not be complete and isn't free of bugs. |
| |
| |
| |
| ### Files structure |
| |
| --- |
| |
| ``` |
| scripts/openroad |
| ├── rcx.tcl |
| ├── sta.tcl |
| └── timing_top.tcl |
| env |
| ├── caravel_spef_mapping.tcl |
| ├── common.tcl |
| ├── ff.tcl |
| ├── ss.tcl |
| └── tt.tcl |
| timing.mk |
| ``` |
| |
| #### openroad tcl scripts |
| |
| - `rcx.tcl` |
| - runs openrcx (inside openroad app) performing spef extraction |
| - uses openroad binary |
| - `sta.tcl` |
| - runs opensta/openroad performing sta on a given block |
| - uses either openroad or standalone opensta binary |
| - `timing_top.tcl` |
| - runs opensta performing sta on the caravel (top) level |
| - uses openroad binary |
| |
| #### settings or env |
| |
| - `caravel_spef_mapping.tcl` |
| - sets mapping of spef files to the corresponding instance inside caravel |
| - `common.tcl` |
| - sets settings that are common between all corners (technology specific) |
| - `ff.tcl` |
| - sets FF liberty files |
| - `tt.tcl` |
| - sets TT liberty files |
| - `ss.tcl` |
| - sets SS liberty files |
| |
| > **_NOTE:_** The settings above are all in **_tcl_** syntax |
| |
| |
| ### Running |
| ___ |
| |
| #### exports |
| |
| |
| > **_WARNING:_** These are the needed exports. Adjust them to your paths |
| |
| ```bash |
| export CUP_ROOT=${HOME}/gf180/caravel/caravel # CUP = caravel user project |
| export PDK_ROOT=${HOME}/gf180/pdk |
| export PDK=gf180mcuC |
| export OPENLANE_TAG=2022.02.23_02.50.41 |
| export MCW_ROOT=${HOME}/gf180/caravel/mgmt_soc_litex # MCW = mgmt core wrapper |
| export CARAVEL_ROOT=${HOME}/gf180/caravel/caravel |
| export TIMING_ROOT=${HOME}/gf180/caravel |
| ``` |
| |
| |
| #### examples |
| |
| ```bash |
| make -f timing.mk caravel-timing-typ-nom |
| make -f timing.mk caravel-timing-fast-nom |
| ``` |
| |