- class gdsfactory.Component(*, base: TKCell)
- class gdsfactory.Component(name: str | None = None, kcl: KCLayout | None = None, kdb_cell: Cell | None = None, ports: Iterable[ProtoPort[Any]] | None = None, info: dict[str, Any] | None = None, settings: dict[str, Any] | None = None)
Canvas where you add polygons, instances and ports.
stores settings that you use to build the component
stores info that you want to use
can return ports by type (optical, electrical …)
can return netlist for circuit simulation
can write to GDS, OASIS
can show in KLayout, matplotlib or 3D
- Properties:
info: dictionary that includes derived properties, simulation_settings, settings (test_protocol, docs, …)
- __init__(name: str | None = None, kcl: KCLayout | None = None, kdb_cell: kdb.Cell | None = None, ports: Iterable[ProtoPort[Any]] | None = None, info: dict[str, Any] | None = None, settings: dict[str, Any] | None = None, *, base: TKCell | None = None)None
Constructor of KCell.
- Parameters
base– If not None, a KCell will be created from and existing KLayout Cellname– Name of the cell, if None will autogenerate name to “Unnamed_<cell_index>”.kcl– KCLayout the cell should be attached to.kdb_cell– If not None, a KCell will be created from and existing KLayout Cellports– Attach an existing [Ports][kfactory.kcell.Ports] object to the KCell, if None create an empty one.info– Info object to attach to the KCell.settings– KCellSettings object to attach to the KCell.
Methods
__init__([name, kcl, kdb_cell, ports, info, ...])Constructor of KCell.
absorb(reference)Absorbs polygons from ComponentReference into Component.
add(instances)add_label([text, position, layer])Adds Label to the Component.
add_polygon(points, layer)Adds a Polygon to the Component and returns a klayout Shape.
add_port([name, port, center, width, ...])Adds a Port to the Component.
add_ports(ports[, prefix, suffix, keep_mirror])Add a sequence of ports to the cell.
add_ref(component[, name, columns, rows, ...])Adds a component instance reference to a Component.
add_route_info(cross_section, length[, ...])Adds route information to a component.
area(layer)Returns the area of the Component in um2.
auto_rename_ports([rename_func])Rename the ports with the schema angle -> "NSWE" and sort by x and y.
bbox([layer])bbox_np()Returns the bounding box of the Component as a numpy array.
cell_index()Gets the cell index.
circuit(l2n[, port_types])Create the circuit of the KCell in the given netlist.
connectivity_check([port_types, layers, db, ...])Create a ReportDatabase for port problems.
convert_to_static([recursive])Convert the KCell to a static cell if it is pdk KCell.
copy()Copy the full cell.
copy_child_info(component)Copy and settings info from child component into parent.
copy_layers(layer_map[, recursive])Remaps a list of layers and returns the same Component.
create_inst(cell[, trans, a, b, na, nb, ...])create_port(**kwargs)Create a port in the cell.
create_vinst(cell)Insert the KCell as a VInstance into a VKCell or KCell.
dbbox([layer])dcreate_inst(cell[, trans, a, b, na, nb, ...])Add an instance of another KCell.
delete()Delete the cell.
destroyed()dmirror([p1, p2])Mirror self at a line.
dmirror_x([x])Mirror self at an y-axis at position x.
dmirror_y([y])Mirror self at an x-axis at position y.
dmove(origin[, destination])Move self in um.
dmovex(origin[, destination])Move self in x-direction in um.
dmovey(origin[, destination])Move self in y-direction in um.
draw_ports()Draw all the ports on their respective layer.
drotate(angle[, center])Rotate self by a given angle in degrees.
dup([new_name])Copy the full cell.
each_inst()Iterates over all child instances (which may actually be instance arrays).
each_overlapping_inst(b)Gets the instances overlapping the given rectangle.
each_touching_inst(b)Gets the instances overlapping the given rectangle.
extract(layers[, recursive])Extracts a list of layers and adds them to a new Component.
flatten([merge])Flatten the cell.
get_boxes(layer[, recursive])Returns a list of boxes.
get_cross_section(cross_section, ...)get_labels(layer[, recursive])Returns a list of labels from the Component.
get_meta_data([meta_format])Read metadata from the KLayout Layout object.
get_netlist([recursive])Returns a place-aware netlist for circuit simulation.
get_paths(layer[, recursive])Returns a list of paths.
get_polygons([merge, by, layers, smooth])Returns a dict of Polygons per layer.
get_polygons_points([merge, scale, by, layers])Returns a dict with list of points per layer.
get_ports_list(**kwargs)Returns list of ports.
get_region(layer[, merge, smooth])Returns a Region of the Component.
ibbox([layer])icreate_inst(cell[, trans, a, b, na, nb, ...])Add an instance of another KCell.
imirror([p1, p2])Mirror self at a line.
imirror_x([x])Mirror self at an y-axis at position x.
imirror_y([y])Mirror self at an x-axis at position y.
imove(origin[, destination])Move self in dbu.
imovex(origin[, destination])Move self in x-direction in dbu.
imovey(origin[, destination])Move self in y-direction in dbu.
insert(inst[, property_id])Inserts a cell instance given by another reference.
insert_vinsts([recursive])Insert all virtual instances and create Instances of real KCells.
irotate(angle[, center])Rotate self in increments of 90°.
l2n([port_types])Generate a LayoutToNetlist object from the port types.
layer(*args, **kwargs)Get the layer info, convenience for klayout
.db .Layout .layer. layout()library()lock()mirror([p1, p2])Mirror self at a line.
mirror_x([x])Mirror self at an y-axis at position x.
mirror_y([y])Mirror self at an x-axis at position y.
move(origin[, destination])Move self in dbu.
movex(origin[, destination])Move self in x-direction in dbu.
movey(origin[, destination])Move self in y-direction in dbu.
offset(layer, distance)Offsets a Component layer by a distance in um.
over_under(layer[, distance, remove_old_layer])Returns a Component over-under on a layer in the Component.
plot()Plots the Component using klayout.
plot_netlist([recursive, with_labels, ...])Plots a netlist graph with networkx.
plot_netlist_graphviz([recursive, ...])Plots a netlist graph with graphviz.
pprint_ports(**kwargs)Pretty prints ports.
read(filename[, options, register_cells, ...])Read a GDS file into the existing KCell.
remap_layers(layer_map[, recursive])Remaps a list of layers and returns the same Component.
remove_layers(layers[, recursive])Removes a list of layers and returns the same Component.
rotate(angle[, center])Rotate self.
set_meta_data()Set metadata of the Cell.
shapes(layer)show([lyrdb, l2n, keep_position, ...])Stream the gds to klive.
to_3d([layer_views, layer_stack, exclude_layers])Return Component 3D trimesh Scene.
to_dict([with_ports])Returns a dictionary representation of the Component.
to_dtype()Convert the kcell to a um kcell.
to_graphviz([recursive])Returns a netlist graph with graphviz.
to_itype()Convert the kcell to a dbu kcell.
transform(inst_or_trans[, trans, ...])Transforms the instance or cell with the transformation given.
trim(left, bottom, right, top[, flatten])Trims the Component to a bounding box.
write(filename[, save_options, ...])Write a KCell to a GDS.
write_gds([gdspath, gdsdir, save_options, ...])Write component to GDS and returns gdspath.
write_netlist(netlist[, filepath])Returns netlist as YAML string.
Attributes
basebasenameboundarycenterReturns the coordinate center of the bounding box.
dcenterCoordinate of the center of the bounding box in um.
dsize_infodxX coordinate of the center of the bounding box in um.
dxmaxReturns the x-coordinate of the right edge of the bounding box.
dxminReturns the x-coordinate of the left edge of the bounding box.
dxsizeReturns the width of the bounding box.
dyY coordinate of the center of the bounding box in um.
dymaxReturns the y-coordinate of the top edge of the bounding box.
dyminReturns the y-coordinate of the bottom edge of the bounding box.
dysizeReturns the height of the bounding box.
factory_nameReturn the name under which the factory was registered.
function_nameghost_cellReturns a value indicating whether the cell is a "ghost cell".
icenterReturns the coordinate center of the bounding box.
infoinstsInstances associated with the cell.
isize_infoixReturns the x-coordinate of the center of the bounding box.
ixmaxReturns the x-coordinate of the right edge of the bounding box.
ixminReturns the x-coordinate of the left edge of the bounding box.
ixsizeReturns the width of the bounding box.
iyReturns the y-coordinate of the center of the bounding box.
iymaxReturns the y-coordinate of the top edge of the bounding box.
iyminReturns the y-coordinate of the bottom edge of the bounding box.
iysizeReturns the height of the bounding box.
kclkdb_celllayerslockednameportsPorts associated with the cell.
prop_idGets the properties ID associated with the cell.
routessettingsSettings dictionary set by the [@vcell][kfactory.kcell.vcell] decorator.
settings_unitsDictionary containing the units of the settings.
size_infovinstsxReturns the x-coordinate of the center of the bounding box.
xmaxReturns the x-coordinate of the right edge of the bounding box.
xminReturns the x-coordinate of the left edge of the bounding box.
xsizeReturns the width of the bounding box.
yReturns the y-coordinate of the center of the bounding box.
yaml_tagymaxReturns the y-coordinate of the top edge of the bounding box.
yminReturns the y-coordinate of the bottom edge of the bounding box.
ysizeReturns the height of the bounding box.