xbase.layout.array.base

Module Contents

Classes

ArrayPlaceInfo

ArrayBase

The base template class.

Attributes

A

T

xbase.layout.array.base.A[source]
xbase.layout.array.base.T[source]
class xbase.layout.array.base.ArrayPlaceInfo(parent_grid: bag.layout.routing.grid.RoutingGrid, wire_specs: Mapping[int, Any], tr_widths: bag.layout.routing.base.WDictType, tr_spaces: bag.layout.routing.base.SpDictType, top_layer: int, nx: int, ny: int, tech_cls: T, *, conn_layer: Optional[int] = None, tr_specs: Optional[List[bag.layout.routing.grid.TrackSpec]] = None, half_space: bool = True, ext_mode: xbase.layout.enum.ExtendMode = ExtendMode.AREA, base_orient: pybag.enum.Orientation = Orientation.R0, is_top: bool = True, **kwargs: Any)[source]
property grid: bag.layout.routing.grid.RoutingGrid[source]
property tr_manager: bag.layout.routing.base.TrackManager[source]
property blk_options: bag.util.immutable.Param[source]
property tech_cls: T[source]
property top_layer: int[source]
property conn_layer: int[source]
property width: int[source]

Width of a unit cell, in resolution units

property height: int[source]

Height of a unit cell, in resolution units

property nx: int[source]
property ny: int[source]
property is_top: bool[source]
property blk_info: xbase.layout.array.data.ArrayLayInfo[source]
commit()[source]
compute_hash()[source]
__hash__() int[source]

Return hash(self).

__eq__(other: Any) bool[source]

Return self==value.

abstract classmethod get_tech_cls(tech_info: bag.layout.tech.TechInfo, **kwargs: Any) xbase.layout.array.tech.ArrayTech[source]
classmethod get_conn_layer(tech_info: bag.layout.tech.TechInfo, **kwargs: Any) int[source]
classmethod make_place_info(grid: bag.layout.routing.grid.RoutingGrid, val: Union[ArrayPlaceInfo, Mapping[str, Any]]) A[source]
get_wire_track_info(layer: int, wire_name: str, wire_idx: int) Tuple[bag.util.math.HalfInt, int][source]
get_sub_place_info(nx: Optional[int] = None, ny: Optional[int] = None, top_layer: Optional[int] = None, row: int = 0, col: int = 0, base_orient: Optional[pybag.enum.Orientation] = None, is_top: bool = False) ArrayPlaceInfo[source]
class xbase.layout.array.base.ArrayBase(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: bag.layout.template.TemplateBase, abc.ABC

The base template class.

Parameters:
  • temp_db (TemplateDB) – the template database.

  • params (Param) – the parameter values.

  • log_file (str) – the log file path.

  • log_level (LogLevel) – the logging level.

  • **kwargs (Any) –

    dictionary of the following optional parameters:

    gridRoutingGrid

    the routing grid to use for this template.

property tech_cls: xbase.layout.array.tech.ArrayTech[source]
property place_info: Optional[ArrayPlaceInfo][source]
property conn_layer: int[source]
property tr_manager: bag.layout.routing.base.TrackManager[source]
property nx: int[source]
property ny: int[source]
draw_base(info: ArrayPlaceInfo, flip_lr: bool = False, flip_ud: bool = False, commit: bool = None) xbase.layout.array.primitives.ArrayUnit[source]
get_track_info(wire_name: str, wire_idx: int = 0, layer: Optional[int] = None) Tuple[bag.util.math.HalfInt, int][source]
get_track_id(wire_name: str, wire_idx: int = 0, layer: Optional[int] = None) bag.layout.routing.base.TrackID[source]
get_track_index(wire_name: str, wire_idx: int = 0, layer: Optional[int] = None) bag.util.math.HalfInt[source]
get_device_port(xidx: int, yidx: int, name: str) Union[bag.layout.routing.base.WireArray, pybag.core.BBox, pybag.core.BBoxArray][source]
add_tile(master: ArrayBase, row_idx: int, col_idx: int, *, flip_lr: bool = False, flip_ud: bool = False, commit: bool = True) bag.layout.core.PyLayInstance[source]
_row_check(row_idx: int, num_rows: int, flip: bool)[source]
_col_check(col_idx: int, num_cols: int, flip: bool)[source]