Tool · Corners / MMC

PVT corners, managed once

Predefined PVT timing corner collections, from SS and FF to TT and more, so the same corner means the same process, voltage and temperature everywhere in your flow, instead of copy-pasted per block.

In plain words

What are PVT corners?

A corner is a combination of Process, Voltage and Temperature, e.g. slow-slow process at 0.72V and 25°C. Timing must be checked at several corners because the same design behaves differently at each. Ṛta manages those definitions as data.

PresetProcessVoltageTemperatureTypical use
SS_0P72V_25Cslow-slow0.72 V25 °Csetup / hold corner
FF_0P88V_0Cfast-fast0.88 V0 °Chold analysis
TT_0P80V_25Ctypical0.80 V25 °Cnominal analysis
SS_0P72V_125Cslow-slow0.72 V125 °Cmax temperature

Why it matters

Corners as data, not folklore

When corners live only in someone's memory, one block gets 0.72V and another gets 0.75V for the "same" SS corner. When corners are managed, every block and every template references the same definition.

  • Consistency: the same corner means the same PVT everywhere.
  • Pair with generator: --operating-condition SS_0P72V_16C flows straight into rta generate.
  • Audit trail: corners are inspectable with one command.
$ rta corners list SS_0P72V_25C · FF_0P88V_0C · TT_0P80V_25C · SS_0P72V_125C $ rta corners show ss Preset: SS_0P72V_25C process: slow-slow voltage: 0.72 V temp: 25 °C derate: early 0.98 · late 1.02

Try it

Inspect your corners

List and inspect corners
$ rta corners list
$ rta corners show ss # partial match OK
$ rta generate -d my_block -c clk=10.0:sys_clk --operating-condition SS_0P72V_25C