bag3_digital.layout.stdcells.and_complex

This module contains layout generators for complex AND gate with 2 - 9 inputs

Module Contents

Classes

AndComplexRow

A complex AND for B2T decoding. Used for passgate mux row decoder

AndComplexCol

A complex AND for B2T decoding. Used for passgate mux column decoder

AndComplexColTall

A complex AND for B2T decoding. Used for passgate mux column decoder

Functions

get_nand_in_list(→ Sequence[int])

get_in_shift(→ Sequence[int])

class bag3_digital.layout.stdcells.and_complex.AndComplexRow(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A complex AND for B2T decoding. Used for passgate mux row decoder

property nand_in_list: Sequence[int][source]
classmethod get_schematic_class() Optional[Type[bag.design.module.Module]][source]
classmethod get_params_info() Mapping[str, str][source]

Returns a dictionary from parameter names to descriptions.

Returns:

param_info – dictionary from parameter names to descriptions.

Return type:

Mapping[str, str]

classmethod get_default_param_values() Mapping[str, Any][source]

Returns a dictionary containing default parameter values.

Override this method to define default parameter values. As good practice, you should avoid defining default values for technology-dependent parameters (such as channel length, transistor width, etc.), but only define default values for technology-independent parameters (such as number of tracks).

Returns:

default_params – dictionary of default parameter values.

Return type:

Mapping[str, Any]

draw_layout() None[source]

Draw the layout of this template.

Override this method to create the layout.

WARNING: you should never call this method yourself.

class bag3_digital.layout.stdcells.and_complex.AndComplexCol(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A complex AND for B2T decoding. Used for passgate mux column decoder

property nand_in_list: Sequence[int][source]
classmethod get_schematic_class() Optional[Type[bag.design.module.Module]][source]
classmethod get_params_info() Mapping[str, str][source]

Returns a dictionary from parameter names to descriptions.

Returns:

param_info – dictionary from parameter names to descriptions.

Return type:

Mapping[str, str]

classmethod get_default_param_values() Mapping[str, Any][source]

Returns a dictionary containing default parameter values.

Override this method to define default parameter values. As good practice, you should avoid defining default values for technology-dependent parameters (such as channel length, transistor width, etc.), but only define default values for technology-independent parameters (such as number of tracks).

Returns:

default_params – dictionary of default parameter values.

Return type:

Mapping[str, Any]

draw_layout() None[source]

Draw the layout of this template.

Override this method to create the layout.

WARNING: you should never call this method yourself.

class bag3_digital.layout.stdcells.and_complex.AndComplexColTall(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A complex AND for B2T decoding. Used for passgate mux column decoder Based on AndDiffRow from BAG2

property nand_in_list: Sequence[int][source]
classmethod get_schematic_class() Optional[Type[bag.design.module.Module]][source]
classmethod get_params_info() Mapping[str, str][source]

Returns a dictionary from parameter names to descriptions.

Returns:

param_info – dictionary from parameter names to descriptions.

Return type:

Mapping[str, str]

classmethod get_default_param_values() Mapping[str, Any][source]

Returns a dictionary containing default parameter values.

Override this method to define default parameter values. As good practice, you should avoid defining default values for technology-dependent parameters (such as channel length, transistor width, etc.), but only define default values for technology-independent parameters (such as number of tracks).

Returns:

default_params – dictionary of default parameter values.

Return type:

Mapping[str, Any]

get_layout_basename() str[source]

Returns the base name for this template.

Returns:

base_name – the base name of this template.

Return type:

str

draw_layout() None[source]

Draw the layout of this template.

Override this method to create the layout.

WARNING: you should never call this method yourself.

_make_nand_row(num_in: int, sig_locs: dict, tile_idx: int, unit_inst: list, vm_locs: list, vss_warr: list, vdd_warr: list) Tuple[List[bag.layout.routing.base.WireArray], List[bag.layout.routing.base.WireArray]][source]
_make_nor_row(num_in: int, sig_locs: dict, tile_idx: int, unit_inst: list, vm_locs: list, vss_warr: list, vdd_warr: list) Tuple[List[bag.layout.routing.base.WireArray], List[bag.layout.routing.base.WireArray]][source]
_make_inv_row(sig_locs: dict, tile_idx: int, unit_inst: list, vm_locs: list, vss_warr: list, vdd_warr: list) Tuple[bag.layout.routing.base.WireArray, bag.layout.routing.base.WireArray][source]
bag3_digital.layout.stdcells.and_complex.get_nand_in_list(num_in: int) Sequence[int][source]
bag3_digital.layout.stdcells.and_complex.get_in_shift(num_in: int) Sequence[int][source]