get_corners

circuit_analyzer.all.get_corners(circuit_model, recurse=True)

Derives configuration corner parameters applicable to the circuit_model.

Private corner parameters override global corner parameters. By default recurses the tree to discover all possible fab corner properties.

Parameters:
circuit_modelCircuitModel

The IPKISS CircuitModel from which the corner parameters will be extracted.

recursebool, default = True

If True, the function will recursively look through all hierarchical sub-components (child cells) within the circuit model and collect all their corner parameters. If False, only the parameters defined on the top-level cell of the model will be included.

Returns:
OrderedDict[str, CornerParameter]

An ordered dictionary mapping parameter names to their definitions, including both local (from the model and its hierarchy) and global parameters defined in the model configuration.

Examples

>>> # With the following config:
>>> #
>>> # libraries:
>>> #   libA:
>>> #     cells:
>>> #       CellA:
>>> #         parameters:
>>> #               t:
>>> #                 doc: "thickness"
>>> #                 default: 0.22
>>> #                 corners: [0.21, 0.22, 0.23]
>>> # global_parameters:
>>> #   w:
>>> #     doc: "WG width"
>>> #     default: 0
>>> #     corners: [-1, 0, 1]
>>> #
>>> import circuit_analyzer.all as ca
>>> corners = ca.get_corners(circuit_model)
>>> print(corners)
OrderedDict([
      ('w', CornerParameter(name='w', doc='WG width', default=0, corners=[-1, 0, 1])
      ('t', CornerParameter(name='t', doc='thickness', default=0.22, corners=[0.21, 0.22, 0.23])
])