bag3_digital.layout.stdcells.memory

This module contains layout generators for various memory elements.

Module Contents

Classes

LatchCore

A tristate inverter based latch.

FlopCore

A tristate inverter based flip-flop.

RstLatchCore

A tristate inverter based latch with NAND reset.

RstLatchCore2Row

A tristate inverter based latch with NAND reset and optional scanability, 2 row layout.

FlopCore2Row

A tristate inverter based flip-flop in 2 rows.

ScanRstLatchCore

A tristate inverter based latch with reset pin and scanability, optimized.

ScanRstFlopCore

A tristate inverter based flip-flop in 2 rows with 1 row latches.

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

Bases: xbase.layout.mos.base.MOSBase

A tristate inverter based latch.

property seg_in: 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.memory.FlopCore(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A tristate inverter based flip-flop.

property seg_in[source]
property cntr_col_clk[source]
get_schematic_class_inst() 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()[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.memory.RstLatchCore(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A tristate inverter based latch with NAND reset.

property seg_in: 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.memory.RstLatchCore2Row(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A tristate inverter based latch with NAND reset and optional scanability, 2 row layout.

property seg_in: 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.memory.FlopCore2Row(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A tristate inverter based flip-flop in 2 rows.

property seg_in[source]
property cntr_col_clk[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()[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.memory.ScanRstLatchCore(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A tristate inverter based latch with reset pin and scanability, optimized.

property seg_in: 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.memory.ScanRstFlopCore(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A tristate inverter based flip-flop in 2 rows with 1 row latches.

property seg_in[source]
property cntr_col_clk[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()[source]

Draw the layout of this template.

Override this method to create the layout.

WARNING: you should never call this method yourself.