Added a to-do list for things that need to be done before the
first MPW tapeout.
1 file changed
tree: 8a26d66fc486d5c20b447303919cf1f34810e255
  1. caravel/
  2. env/
  3. mgmt_soc_litex/
  4. scripts/
  5. .gitignore
  6. openlane.mk
  7. README.md
  8. timing.mk
  9. TODO
README.md

Table of contents

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
    • loads top level sdc which in the case of this repo is caravel.sdc
    • 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

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

make -f timing.mk caravel-timing-typ-nom
make -f timing.mk caravel-timing-fast-nom