Library
- class ipkiss3.all.Library
The Library object manages components, and can be persisted (as GDSII). It is essentially a collections of PCell objects (in OpenAccess, this corresponds to SubMasters). The write_gdsii() function of PCell is just a shorthand: it creates a library and writes it to gdsii.
When creating a PCell, you assign it to a library (default is a library which is created at startup).
The Library object manages the PCells that belong together (e.g. tree dependencies). Also, when merging files together, you need to have multiple libraries open.
- Parameters:
- name: str and String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters, required
Unique name for the library
- allow_empty_pcells: ( bool, bool_ or int ), optional
Indicates whether empty cells are allowed.
- layout: ( bool, bool_ or int ), optional
Indicates whether the library contains a layout: in that case, there should be only 1 top-level structure.
- unit: float and number > 0, optional
Design unit. Extracted by default from TECH.METRICS.UNIT
- units_per_grid: optional
Ratio of grid cell and design unit
- grids_per_unit: optional
Number of grid cells per design unit
- grid: float and number > 0, optional
Design grid. Extracted by default from TECH.METRICS.GRID
- modified: datetime, optional
Timestamp at which the library was modified.
- accessed: datetime, optional
Timestamp at which the library was accessed.
- snap_value(value)
snaps a (length) value to the library design grid.
- Parameters:
- valuenumber
- Returns:
- a float
- snap_coordinate(coordinate)
snaps a 2D coordinate to the library design grid
- Parameters:
- coordinateCoord2 or tuple
- Returns:
- Coord2 object
- snap_shape(coordinates)
snaps a shape to the library design grid
- Parameters:
- coordinatesa Shape object or list of Coord2/tuples
- Returns:
- a Shape object
- add(obj)
Adds an object PCell or GlobalNet to the Library
- Parameters:
- objPCell, PCellDict or GlobalNet object
- pcell_exists(pcell)
Returns True if a PCell object with the same name exists in the Library.
- Parameters:
- pcellPCell object or string with pcell name.
- Returns:
- Boolean
- clean_up()
Removes empty PCells from the Library
- is_empty()
Returns True if the Library does not contain PCell
- size_info(layers=None)
Returns the SizeInfo object corresponding to the footprint of the top layout PCell of the Library.
- Parameters:
- layers: list, optional
The layers to be included, default is None (all layers)
- Returns:
- SizeInfo object
See also
- flat_copy(level=-1)
Returns a flattened copy of the top layout PCell in the Library. (recursive)
- Parameters:
- levelHow many levels deep should the element be flattened. -1 means all levels (default)
- Returns:
- Library object
- flatten(level=-1)
Flattens the top layout PCell in the Library. (recursive)
- Parameters:
- levelHow many levels deep should the layout be flattened. -1 means all levels (default)
- Returns:
- this Library object
- top_cell()
Returns the top PCell (i.e. the cell that is not referenced by any other cell).
If more than one top cell is present:
if the layout property is True, a warning is generated and None is returned. In that case, use the unreferenced_cells method.
otherwise, the list of top-lecel cells is returned
- Returns:
- PCell object
See also
- set_referenced(cell)
Indicates a PCell as ‘referenced’ (i.e. not a top layout)
- unreferenced_cells(usecache=False)
Returns all unreferenced cells in the Library (i.e. top layouts)
- Parameters:
- use_cache: Boolean
When True, cached values are not recalculated
- Returns:
- PCellDict object
See also
- referenced_cells(usecache=False)
Returns all referenced cells in the Library
- Parameters:
- use_cache: Boolean
When True, cached values are not recalculated
- Returns:
- PCellDict object
See also
- collect_references(pcell=None)
Walks through the Library and collects all references used in the given pcell
- Parameters:
- pcell: PCell object or None
the pcell from which all references need to be collected. When None, all pcells in the Library are used
- Returns:
- PCellDict object
- check_references()
Check if all references belong to the library (True).
- Returns:
- Boolean: True is all references are inside the Library.
- clear()
Removes all cells from the Library
- class ipkiss3.pcell.library.ViewLibrary
Builds information about views and their dependency trees.
The cells and views which are managed reside in a Library object. ViewLibrary only maintains weak references to these objects
- Parameters:
- name: str and String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters, required
Unique name for the library
- modified: datetime, optional
Timestamp at which the library was modified.
- accessed: datetime, optional
Timestamp at which the library was accessed.
- add(obj)
Add a view to the library
If the object given is not a view but a cell or a view of another type, the default view of the correct view type of the cell will be added.
- referenced_views()
build and return the list of views which are refered to by other views
- unreferenced_views()
build and return the list of views which are not refered to by other views. These are the “top level” views
- top_view()
return the top-level view. Returns None if there are no views or multiple top-level views