pdkmaster.design

pdkmaster.design.circuit

pdkmaster.design.circuit.InstanceT

alias of _Instance

pdkmaster.design.circuit.InstancesT

alias of _Instances

pdkmaster.design.circuit.InstanceNetT

alias of _InstanceNet

pdkmaster.design.circuit.InstanceNetsT

alias of _InstanceNets

pdkmaster.design.circuit.PrimitiveInstanceT

alias of _PrimitiveInstance

pdkmaster.design.circuit.CellInstanceT

alias of _CellInstance

pdkmaster.design.circuit.CircuitNetT

alias of _CircuitNet

pdkmaster.design.circuit.CircuitNetsT

alias of _CircuitNets

pdkmaster.design.circuit.CircuitT

alias of _Circuit

pdkmaster.design.circuit.CircuitsT

alias of _Circuits

class pdkmaster.design.circuit.CircuitFactory(*, tech: Technology)[source]

Bases: object

The user facing class for creating circuits. This class is also a base class on which own factory classes can be built with specific extensions.

Parameters:

tech – the technology for which to create circuits. Created circuits may only contain instances from primitives from this technology.

API Notes

The contract for making subclasses has not been finaziled. Backwards

incompatible changes are still expected for subclasses of this class.

new_circuit(*, name: str) _Circuit[source]

Create a circuit.

This method is the user facing API to generate circuits. Returns a _Circuit object; see docs for that class on user facing API for that class.

pdkmaster.design.layout

The pdkmaster.design.layout module provides classes to represent layout shapes in a PDKMaster technology. These classes are designed to only allow to create layout that conform to the technology definition. In order to detect design shorts as fast as possible shapes are put on nets.

A LayoutFactory class is provided to generate layouts for a certain technology and it’s primitives.

Internally the klayout API is used to represent the shapes and perform manipulations on them.

pdkmaster.design.library

class pdkmaster.design.library.Library(*, name: str, tech: Technology)[source]

Bases: object

A Library is an object representing a collection of Cell objects. All cell in a library have be for the same technology.

Parameters:
  • name – the name of the library

  • tech – the technology for the cells in the library

property name: str
property tech: Technology
property cells: _Cells
property sorted_cells: Iterable[Cell]

Return sorted iterable of the hierarchical instantiated cells. The cells will be sorted such that a cell is in the list before a cell where it is instantiated.

If there are cells instantiated from other libraries they will be included.

class pdkmaster.design.library.RoutingGaugeLibrary(*, name: str, tech: Technology, routinggauge: RoutingGauge | Iterable[RoutingGauge])[source]

Bases: Library

A Library with an associated RoutingGauge

API Notes

API for StdCellLibrary is not fixed. Backwards incompatible changes may still be

expected.

see: https://gitlab.com/Chips4Makers/PDKMaster/-/issues/36

code likely to be moved to c4m-flexcell in the future

property routinggauge: Iterable[RoutingGauge]
property pingrid_pitch: float
property row_height: float