PCell

class ipkiss3.pcell.cell.pcell.PCell(*args, **kwargs)

PCell primitive (Parametric Cell). This class is used to describe the different aspects of a component, including the layout, netlist, compact models, hierarchy etc.

A PCell has Views and Properties. It must have a name and is member of a Library.

Parameters:

cell_instances: _PCellInstanceDict, optional

name: optional

The unique name of the pcell

define_cell_instances(instances)
dependencies(view=None)

return the set of dependencies (child cells) of this cell, for a given view

This works recursively: the dependencies of the view will look for their dependencies, and so on.

Parameters:

view: View or string

The View or name of the view from which to deduce the dependencies The default is ‘layout’

Returns:

set of dependencies

get_instance(instance_name)

returns the cell corresponding to the given instance name

If there are instances in different views with this name, but corresponding to different cells, an exception will be thrown

Returns:PCell object
get_instances(instance_name=None, cell_view=None, reference_view_name=None, reference_view_type=None, owner_view_name=None, owner_view_type=None)

Queries the cell’s views for instances of other views.

If no parameters are supplied, retrieve all instances in all views A parameter will not be used if it is None.

Parameters:

instance_name: str

retrieve instances with the given name.

cell_view: View or PCell

retrieve instances to the given View or PCell

reference_view_name: str

retrieve instances to all views with the given name

reference_view_type: View subclass

retrieve instances to all views with a given type

owner_view_name: str

retrieve instances in the view with the given name

owner_view_type: View subclass

retrieve instances in the views of the given type

Returns:

dictionary with dictionary per view: {view_name: {instance_name: instance, …}, …}

id_string()
modified_copy(**override_kwargs)

Create a copy and override the properties given as keyword arguments.