settings
All keywords under settings are optional. If a keyword is not present, CharLib uses the default value.
- Allowed keywords:
cell_defaults, debug, debug_dir, lib_name, logic_thresholds, multithreaded, named_nodes, omit_on_failure, results_dir, simulation, temperature, units
cell_defaults
Default values to use for all cells. See the cells keyword for more information. May contain any key-value pair valid for a cell entry.
- Allowed keywords:
debug
Display debug messages, and store simulation SPICE files.
- type:
boolean- default:
False
debug_dir
The directory where simulation SPICE files are stored if debug keyword is set to True
- type:
string- default:
debug
lib_name
The library name for the liberty file. If the filename is not specified on the command line with the --output option, this is also used as the filename.
- type:
string- default:
unnamed_lib
logic_thresholds
Voltage thresholds for tuning edge timing. Values are specified as percentages of VDD. See section 2.3 in the Liberty User Guide, Vol. 1 for more information.
falling
The percentage of the supply voltage at which a signal is considered falling for timing measurements. See figure 2-1 and sections 2.3.1 & 2.3.3 in the Liberty User Guide, Vol. 1.
- type:
floatorint- default:
50.0
high
The percentage of the supply voltage at which a signal is considered logic 1 for timing measurements. See figure 2-2 and sections 2.3.8-9 in the Liberty User Guide, Vol. 1.
- type:
floatorint- default:
80.0
low
The percentage of the supply voltage at which a signal is considered logic 0 for timing measurements. See figure 2-2 and sections 2.3.6-7 in the Liberty User Guide, Vol. 1.
- type:
floatorint- default:
20.0
rising
The percentage of the supply voltage at which a signal is considered rising for timing measurements. See figure 2-1 and sections 2.3.2 & 2.3.4 in the Liberty User Guide, Vol. 1.
- type:
floatorint- default:
50.0
multithreaded
Run simulations in parallel, using as many threads as possible. Using the --jobs flag on the command line overrides this value.
- type:
boolean- default:
True
named_nodes
- Allowed keywords:
nwell
Library-wide n-type biasing node name & voltage
name
- type:
string- default:
VNW
voltage
- type:
floatorint- default:
3.3
primary_ground
Library-wide primary ground node name & voltage.
name
- type:
string- default:
VSS
voltage
- type:
floatorint- default:
0
primary_power
Library-wide primary power supply node name & voltage.
name
- type:
string- default:
VDD
voltage
- type:
floatorint- default:
3.3
pwell
Library-wide p-type biasing node name & voltage
name
- type:
string- default:
VPW
voltage
- type:
floatorint- default:
0
omit_on_failure
Specifies whether to terminate if a cell fails to characterize (False), or continue with the remaining cells (True).
- type:
boolean- default:
False
results_dir
The directory where Charlib exports characterization results. If omitted, CharLib creates a results directory in the current folder.
- type:
string- default:
results
simulation
Specifies which simulation backend to use and which procedures to apply for acquiring various types of measurements.
- Allowed keywords:
backend, combinational_delay_procedure, input_capacitance_procedure
backend
Which PySpice simulator backend to use. For available options, see https://pyspice.fabrice-salvaire.fr/releases/v1.4/faq.html#how-to-set-the-simulator
- default:
ngspice-shared
Allowed values:
ngspice-shared
ngspice-subprocess
xyce-serial
xyce-parallel
combinational_delay_procedure
The name of a procedure used to measure delays associated with a combinational cell.
- type:
string- default:
combinational_worst_case
input_capacitance_procedure
The name of a procedure used to measure the capacitance of each input pin for each cell.
- type:
string- default:
ac_sweep
temperature
The temperature to use during spice simulations.
- type:
floatorint- default:
25
units
Specifies physical units to use for input and output values.
- Allowed keywords:
capacitive_load, current, energy, leakage_power, pulling_resistance, time, voltage
capacitive_load
The unit of capacitance
- type:
string- pattern:
^((yocto|y)|(zepto|z)|(atto|a)|(femto|f)|(pico|p)|(nano|n)|(micro|u)|(milli|m)|()|(kilo|k)|(mega|M)|(giga|G)|(tera|T)|(peta|P)(exa|E)|(zetta|Z)|(yotta|Y))(f|F|farads|Farads)- default:
pF
current
The unit of electrical current
- type:
string- pattern:
^((yocto|y)|(zepto|z)|(atto|a)|(femto|f)|(pico|p)|(nano|n)|(micro|u)|(milli|m)|()|(kilo|k)|(mega|M)|(giga|G)|(tera|T)|(peta|P)(exa|E)|(zetta|Z)|(yotta|Y))(a|A|amp|amps|Amp|Amps)- default:
uA
energy
The unit of energy
- type:
string- pattern:
^((yocto|y)|(zepto|z)|(atto|a)|(femto|f)|(pico|p)|(nano|n)|(micro|u)|(milli|m)|()|(kilo|k)|(mega|M)|(giga|G)|(tera|T)|(peta|P)(exa|E)|(zetta|Z)|(yotta|Y))(j|J|joules|Joules)- default:
fJ
leakage_power
The unit of power
- type:
string- pattern:
^((yocto|y)|(zepto|z)|(atto|a)|(femto|f)|(pico|p)|(nano|n)|(micro|u)|(milli|m)|()|(kilo|k)|(mega|M)|(giga|G)|(tera|T)|(peta|P)(exa|E)|(zetta|Z)|(yotta|Y))(w|W|watts|Watts)- default:
nW
pulling_resistance
The unit of resistance
- type:
string- pattern:
^((yocto|y)|(zepto|z)|(atto|a)|(femto|f)|(pico|p)|(nano|n)|(micro|u)|(milli|m)|()|(kilo|k)|(mega|M)|(giga|G)|(tera|T)|(peta|P)(exa|E)|(zetta|Z)|(yotta|Y))(Ω|ohm|ohms|Ohm|Ohms)- default:
Ohm
time
The unit of time.
- type:
string- pattern:
^((yocto|y)|(zepto|z)|(atto|a)|(femto|f)|(pico|p)|(nano|n)|(micro|u)|(milli|m)|()|(kilo|k)|(mega|M)|(giga|G)|(tera|T)|(peta|P)(exa|E)|(zetta|Z)|(yotta|Y))(s|seconds|Seconds)- default:
ns
voltage
The unit of electrical voltage.
- type:
string- pattern:
^((yocto|y)|(zepto|z)|(atto|a)|(femto|f)|(pico|p)|(nano|n)|(micro|u)|(milli|m)|()|(kilo|k)|(mega|M)|(giga|G)|(tera|T)|(peta|P)(exa|E)|(zetta|Z)|(yotta|Y))(v|V|volts|Volts)- default:
V