bag3_digital.layout.serdes.des_binary_tree

Module Contents

Classes

Demux1To2

A 1:2 demux unit cell used in tree structure deserializers.

DesBinaryTree

A single binary tree deserializer.

DesArrayBinaryTree

An array of binary tree deserializers, arranged in a column. Clock divider is not included.

Functions

update_subblock_sig_locs(→ bag.util.immutable.Param)

bag3_digital.layout.serdes.des_binary_tree.update_subblock_sig_locs(subblock_params: bag.util.immutable.Param, updated_sig_locs: Mapping[str, Union[bag.util.math.HalfInt, int, float]]) bag.util.immutable.Param[source]
class bag3_digital.layout.serdes.des_binary_tree.Demux1To2(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A 1:2 demux unit cell used in tree structure deserializers.

classmethod get_schematic_class() Optional[Type[bag.design.database.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.serdes.des_binary_tree.DesBinaryTree(temp_db: bag.layout.template.TemplateDB, params: bag.util.immutable.Param, **kwargs: Any)[source]

Bases: xbase.layout.mos.base.MOSBase

A single binary tree deserializer.

property num_stages: int[source]
property ratio: int[source]
classmethod get_schematic_class() Optional[Type[bag.design.database.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]

connect_sig_to_tid(warr_list: Union[bag.layout.routing.base.WireArray, Sequence[bag.layout.routing.base.WireArray]], tid: bag.layout.routing.base.TrackID, conn_tid: Optional[bag.layout.routing.base.TrackID]) bag.layout.routing.base.WireArray[source]

Helper function to connect data wire from demux to its horizontal track.

Parameters:
  • warr_list (Union[WireArray, Sequence[WireArray]]) – The demux wire(s) to connect.

  • tid (TrackID) – The track ID to connect warr_list to.

  • conn_tid (Optional[TrackID]) – The intermediate horizontal trackID to use if the demux wires are not connected to an adjacent layer.

Return type:

The connected demux data wires at the given TrackID.

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

Bases: xbase.layout.mos.base.MOSBase

An array of binary tree deserializers, arranged in a column. Clock divider is not included.

property clk_div_tidx_list[source]
classmethod get_schematic_class() Optional[Type[bag.design.database.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.