sax.netlist module

Contents

sax.netlist module#

SAX netlist parsing and utilities

netlist(dic)[source]#

return a netlist from a given dictionary

Parameters:

dic (Dict) –

Return type:

RecursiveNetlist

class Component(*, component, settings=None, info=None)[source]#

Bases: _BaseModel

Parameters:
  • component (Union[str, Dict[str, Any]]) –

  • settings (Optional[Dict[str, Any]]) –

  • info (Optional[Dict[str, Any]]) –

class Config[source]#

Bases: object

extra = 'ignore'#
allow_mutation = False#
frozen = True#
json_encoders = {<class 'numpy.ndarray'>: <function Component.Config.<lambda>>}#
component: Union[str, Dict[str, Any]]#
settings: Optional[Dict[str, Any]]#
info: Optional[Dict[str, Any]]#
classmethod validate_component_name(value)[source]#
class PortEnum(value)[source]#

Bases: Enum

An enumeration.

ce = 'ce'#
cw = 'cw'#
nc = 'nc'#
ne = 'ne'#
nw = 'nw'#
sc = 'sc'#
se = 'se'#
sw = 'sw'#
center = 'center'#
cc = 'cc'#
class Placement(*, x=0, y=0, xmin=None, ymin=None, xmax=None, ymax=None, dx=0, dy=0, port=None, rotation=0, mirror=False)[source]#

Bases: _BaseModel

Parameters:
  • x (Optional[Union[str, float]]) –

  • y (Optional[Union[str, float]]) –

  • xmin (Optional[Union[str, float]]) –

  • ymin (Optional[Union[str, float]]) –

  • xmax (Optional[Union[str, float]]) –

  • ymax (Optional[Union[str, float]]) –

  • dx (Optional[float]) –

  • dy (Optional[float]) –

  • port (Optional[Union[str, PortEnum]]) –

  • rotation (Optional[int]) –

  • mirror (Optional[bool]) –

class Config[source]#

Bases: object

extra = 'ignore'#
allow_mutation = False#
frozen = True#
json_encoders = {<class 'numpy.ndarray'>: <function Placement.Config.<lambda>>}#
x: Optional[Union[str, float]]#
y: Optional[Union[str, float]]#
xmin: Optional[Union[str, float]]#
ymin: Optional[Union[str, float]]#
xmax: Optional[Union[str, float]]#
ymax: Optional[Union[str, float]]#
dx: Optional[float]#
dy: Optional[float]#
port: Optional[Union[str, PortEnum]]#
rotation: Optional[int]#
mirror: Optional[bool]#
class Route(*, links, settings=None, routing_strategy=None)[source]#

Bases: _BaseModel

Parameters:
  • links (Dict[str, str]) –

  • settings (Optional[Dict[str, Any]]) –

  • routing_strategy (Optional[str]) –

class Config[source]#

Bases: object

extra = 'ignore'#
allow_mutation = False#
frozen = True#
json_encoders = {<class 'numpy.ndarray'>: <function Route.Config.<lambda>>}#
settings: Optional[Dict[str, Any]]#
routing_strategy: Optional[str]#
class Netlist(*, instances, connections=None, ports=None, placements=None)[source]#

Bases: _BaseModel

Parameters:
  • instances (Dict[str, Component]) –

  • connections (Optional[Dict[str, str]]) –

  • ports (Optional[Dict[str, str]]) –

  • placements (Optional[Dict[str, Placement]]) –

class Config[source]#

Bases: object

extra = 'ignore'#
allow_mutation = False#
frozen = True#
json_encoders = {<class 'numpy.ndarray'>: <function Netlist.Config.<lambda>>}#
instances: Dict[str, Component]#
connections: Optional[Dict[str, str]]#
ports: Optional[Dict[str, str]]#
placements: Optional[Dict[str, Placement]]#
classmethod coerce_different_type_instance_into_component_model(instances)[source]#
static clean_instance_string(value)[source]#
classmethod validate_instance_names(instances)[source]#
classmethod validate_placement_names(placements)[source]#
classmethod clean_connection_string(value)[source]#
classmethod validate_connection_names(connections)[source]#
classmethod validate_port_names(ports)[source]#
class RecursiveNetlist(*, __root__)[source]#

Bases: _BaseModel

Parameters:

__root__ (Dict[str, Netlist]) –

class Config[source]#

Bases: object

extra = 'ignore'#
allow_mutation = False#
frozen = True#
class NetlistDict[source]#

Bases: TypedDict

instances: Dict#
connections: Dict[str, str]#
ports: Dict[str, str]#
load_netlist(pic_path)[source]#
Return type:

Netlist

load_recursive_netlist(pic_path, ext='.yml')[source]#
get_netlist_instances_by_prefix(recursive_netlist, prefix)[source]#

Returns a list of all instances with a given prefix in a recursive netlist.

Parameters:
  • recursive_netlist (RecursiveNetlist) – The recursive netlist to search.

  • prefix (str) – The prefix to search for.

Returns:

A list of all instances with the given prefix.

get_component_instances(recursive_netlist, top_level_prefix, component_name_prefix)[source]#

Returns a dictionary of all instances of a given component in a recursive netlist.

Parameters:
  • recursive_netlist (RecursiveNetlist) – The recursive netlist to search.

  • top_level_prefix (str) – The prefix of the top level instance.

  • component_name_prefix (str) – The name of the component to search for.

Returns:

A dictionary of all instances of the given component.

remove_unused_instances(recursive_netlist)[source]#
Parameters:

recursive_netlist (Dict[str, NetlistDict]) –

flatten_netlist(recnet, sep='~')[source]#