bag3_digital.layout.stdcells.levelshifter

Module Contents

Classes

LevelShifterCore

Core of level shifter, with differential inputs and no output buffers.

LevelShifterCoreOutBuffer

Level shifter with output buffers.

LevelShifter

Level shifter with single-ended input and output buffers.

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

Bases: xbase.layout.mos.base.MOSBase

Core of level shifter, with differential inputs and no output buffers.

property center_col: int[source]

The centerline column index.

Type:

int

property out_vertical: bool[source]

True if outputs are on vm_layer.

Type:

bool

classmethod get_schematic_class() Optional[Type[bag.design.module.Module]][source]
classmethod get_params_info() Dict[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() Dict[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()[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.levelshifter.LevelShifterCoreOutBuffer(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

Level shifter with output buffers.

property center_col: int[source]

The centerline column index.

Type:

int

property outr_inverted: bool[source]
property mid_vertical: bool[source]

True if level shifter core outputs are on vm_layer.

Type:

bool

property dual_output: bool[source]
property is_guarded: bool[source]
classmethod get_schematic_class() Optional[Type[bag.design.module.Module]][source]
classmethod get_params_info() Dict[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() Dict[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()[source]

Draw the layout of this template.

Override this method to create the layout.

WARNING: you should never call this method yourself.

_export_buf(inst: Optional[bag.layout.template.PyLayInstance], vertical_out: bool, name: str, buf_invert: bool) None[source]
_update_buf_inst(inst: bag.layout.template.PyLayInstance, vm_layer: int, sig_locs_inst: Dict[str, Any], sig_locs: Mapping[str, Any], suffix: str) None[source]
class bag3_digital.layout.stdcells.levelshifter.LevelShifter(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

Level shifter with single-ended input and output buffers.

This generator uses two tiles, with the bottom tile mirrored, to separate the two supply domains.

property ridx_p: int[source]
property ridx_n: int[source]
classmethod get_schematic_class() Optional[Type[bag.design.module.Module]][source]
classmethod get_params_info() Dict[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() Dict[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()[source]

Draw the layout of this template.

Override this method to create the layout.

WARNING: you should never call this method yourself.