xbase.layout.mos.data
Module Contents
Classes
specification for a transistor row. Includes unit transistor dimensions and wire info |
|
Information about top or bottom boundary of a transistor block. |
|
Information about top or bottom boundary of a transistor row |
|
Information about left or right boundary of a transistor row. |
|
Information about a transistor row. |
|
Information about a transistor row, placement data included. |
|
The transistor block layout information object. |
|
The extension block layout information object. |
|
- class xbase.layout.mos.data.MOSRowSpecs(mos_type: xbase.layout.enum.MOSType, width: int, threshold: str, bot_wires: xbase.layout.wires.WireData, top_wires: xbase.layout.wires.WireData, mid_wires: Optional[xbase.layout.wires.WireData] = None, options: Optional[Mapping[str, Any]] = None, flip: bool = False, sub_width: int = 0, double_gate: bool = False)[source]
specification for a transistor row. Includes unit transistor dimensions and wire info for determining track locations on conn_layer + 1
- mos_type: xbase.layout.enum.MOSType[source]
- bot_wires: xbase.layout.wires.WireData[source]
- mid_wires: xbase.layout.wires.WireData[source]
- top_wires: xbase.layout.wires.WireData[source]
- options: bag.util.immutable.ImmutableSortedDict[str, Any][source]
- classmethod make_row_specs(val: Mapping[str, Any]) MOSRowSpecs [source]
- class xbase.layout.mos.data.RowExtInfo[source]
Information about top or bottom boundary of a transistor block.
This class contains information needed to draw an extension region adjacent to the transistor row.
- row_type: xbase.layout.enum.MOSType[source]
- info: bag.util.immutable.ImmutableSortedDict[str, Any][source]
- classmethod from_dict(table: Mapping[str, Any]) RowExtInfo [source]
- copy_with(row_type: Optional[xbase.layout.enum.MOSType] = None, threshold: Optional[str] = None, **kwargs) RowExtInfo [source]
- class xbase.layout.mos.data.BlkExtInfo[source]
Information about top or bottom boundary of a transistor row
- row_type: xbase.layout.enum.MOSType[source]
- fg_dev: bag.util.immutable.ImmutableList[Tuple[int, xbase.layout.enum.MOSType]][source]
- info: bag.util.immutable.ImmutableSortedDict[str, Any][source]
- class xbase.layout.mos.data.MOSEdgeInfo(**kwargs: Any)[source]
Information about left or right boundary of a transistor row.
- info: bag.util.immutable.ImmutableSortedDict[str, Any][source]
- copy_with(**kwargs) MOSEdgeInfo [source]
- class xbase.layout.mos.data.MOSRowInfo[source]
Information about a transistor row.
- property bot_conn_types: Sequence[xbase.layout.enum.MOSWireType][source]
Return sequence of bottom wire connection types.
index 0 is the default type.
- property top_conn_types: Sequence[xbase.layout.enum.MOSWireType][source]
Return sequence of top wire connection types.
index 0 is the default type.
- property mid_conn_types: Sequence[xbase.layout.enum.MOSWireType][source]
Return sequence of top wire connection types.
index 0 is the default type.
- row_type: xbase.layout.enum.MOSType[source]
- top_ext_info: RowExtInfo[source]
- bot_ext_info: RowExtInfo[source]
- info: bag.util.immutable.ImmutableSortedDict[str, Any][source]
- classmethod from_dict(table: Mapping[str, Any]) MOSRowInfo [source]
- get_ext_info(top_edge: bool) RowExtInfo [source]
- get_conn_y(wtype: xbase.layout.enum.MOSWireType) Tuple[int, int] [source]
- get_all_conn_y(wtype: xbase.layout.enum.MOSWireType) Sequence[Tuple[int, int]] [source]
get list of all possible Y coordinates the given wire type could connect to
- class xbase.layout.mos.data.MOSPorts[source]
-
- property g0: bag.layout.routing.base.WireArray[source]
- property g1: bag.layout.routing.base.WireArray[source]
- m: Optional[bag.layout.routing.base.WireArray][source]
- g2: Optional[bag.layout.routing.base.WireArray][source]
- __getitem__(item: xbase.layout.enum.MOSPortType) bag.layout.routing.base.WireArray [source]
- class xbase.layout.mos.data.NAND2Ports[source]
- g0: Sequence[bag.layout.routing.base.WireArray][source]
- g1: Sequence[bag.layout.routing.base.WireArray][source]
- m: Optional[bag.layout.routing.base.WireArray][source]
- class xbase.layout.mos.data.RowPlaceInfo[source]
Information about a transistor row, placement data included. (yb_blk, yt_blk) describe the y dimensions of the block, i.e. the MOS row. (yb, yt) describe the y dimensions of the block plus any edge extensions.
- row_info: MOSRowInfo[source]
- bot_wires: xbase.layout.wires.WireLookup[source]
- top_wires: xbase.layout.wires.WireLookup[source]
- mid_wires: Optional[xbase.layout.wires.WireLookup][source]
- classmethod from_dict(table: Mapping[str, Any]) RowPlaceInfo [source]
- get_extend(tr_pitch, delta: int, top_edge: bool, shared: Sequence[str]) RowPlaceInfo [source]
Returns a copy of self, with either the top or bottom edge of the bound box extended delta in the y direction. Uses tr_pitch to quantize delta for shifting the tracks. shared lists tracks shared with block abut on the extending edge. When top_edge==True, the top edge is shifted by delta and the top tracks are shifted. When top_edge==False, the top edge is shifted by delta, the active area is shifted by delta,
and the tracks are shifted by delta. This maintains alignment with y=0.
- get_move(tr_pitch: int, delta: int) RowPlaceInfo [source]
Returns a copy of self, shifted delta in the y direction. Uses tr_pitch to quantize delta for shifting the tracks.
- get_abut_info(rhs: RowPlaceInfo, top_edge: bool, rhs_top_edge: bool, shared: Sequence[str], rhs_shared: Sequence[str], tr_manager: bag.layout.routing.base.TrackManager, layer: int) Tuple[int, RowExtInfo, RowExtInfo] [source]
Returns the margin needed to abut this row with the given row.
- Parameters:
rhs (RowPlaceInfo) – the other row.
top_edge (bool) – True if rhs is abutting to top edge of this row.
rhs_top_edge (bool) – True if we’re abutting to top edge of the other row.
shared (Sequence[str]) – list of edge wires shared with the other tile.
rhs_shared (Sequence[str]) – list of edge wires from the other tile shared with this tile.
tr_manager (TrackManager) – the TrackManager object
layer (int) – layer ID of the wires.
- Returns:
margin (int) – the margin in resolution units.
einfo1 (RowExtInfo) – the row extension information object of this RowPlaceInfo.
einfo2 (RowExtInfo) – the row extension information object of the other RowPlaceInfo.
- class xbase.layout.mos.data.MOSLayInfo[source]
The transistor block layout information object.
- lay_info: xbase.layout.data.LayoutInfo[source]
- left_info: MOSEdgeInfo[source]
- right_info: MOSEdgeInfo[source]
- top_info: BlkExtInfo[source]
- bottom_info: BlkExtInfo[source]
- class xbase.layout.mos.data.ExtEndLayInfo[source]
The extension block layout information object.
- lay_info: xbase.layout.data.LayoutInfo[source]
- edge_info: MOSEdgeInfo[source]
- class xbase.layout.mos.data.MOSAbutInfo[source]
-
- edgel: MOSEdgeInfo[source]
- edger: MOSEdgeInfo[source]