bag.data.lark

Module Contents

Classes

Instance

SubCKT

Header

CktTransformer

Functions

add_mismatch_offsets(→ None)

Attributes

grammar_cdl

grammar_scs

bag.data.lark.grammar_cdl = Multiline-String[source]
Show Value
"""
    start: headers subckts+

    headers: HEADER*
    subckts.2: ".SUBCKT" CELL PORTS+ NEWLINE instances* ".ENDS"

    instances: DEV PORTS* "/"* PORTS PARAMS* NEWLINE

    HEADER: ("*." | ".") ("_" | LETTER | NUMBER)+ (("=" | " = " | WS)? ("_" | LETTER | NUMBER)+)?
    CELL: ("_" | LETTER | NUMBER)+
    PORTS: ("_" | LETTER | NUMBER)+
    DEV: ("_" | LETTER | NUMBER | "@" | "/")+
    PARAMS: ("_" | LETTER | NUMBER)+ "=" PAR_VAL

    SC_NUM: (NUMBER | ".")+ "e-" NUMBER
    PAR_VAL: (("_" | LETTER | NUMBER)+ | SC_NUM | " * " | "*")+

    %import common.ESCAPED_STRING   -> STRING
    %import common.LETTER
    %import common.SIGNED_NUMBER    -> NUMBER
    %import common.WS
    %import common.NEWLINE
    %ignore WS
"""
bag.data.lark.grammar_scs = Multiline-String[source]
Show Value
"""
    start: headers subckts+

    headers: HEADER*
    subckts: "subckt" CELL PORTS+ NEWLINE instances* "ends" CELL

    instances: DEV PORTS* PARAMS* NEWLINE

    HEADER: "include " PATH | "simulator lang=spectre"
    CELL: ("_" | LETTER | NUMBER)+
    PORTS: ("_" | LETTER | NUMBER)+
    DEV: ("_" | LETTER | NUMBER | "@" | "/")+
    PARAMS: ("_" | LETTER | NUMBER)+ "=" PAR_VAL

    SC_NUM: (NUMBER | ".")+ "e-" NUMBER
    PAR_VAL: (("_" | LETTER | NUMBER)+ | SC_NUM | " * " | "*")+
    PATH: /"[\w\.\/]+"/

    %import common.ESCAPED_STRING   -> STRING
    %import common.LETTER
    %import common.SIGNED_NUMBER    -> NUMBER
    %import common.WS
    %import common.NEWLINE
    %ignore WS
"""
class bag.data.lark.Instance(items: List[Any])[source]
inst_name: str[source]
ports: List[str][source]
params: List[str][source]
prim: Optional[str][source]
is_transistor: bool = False[source]
is_BAG_prim: bool = False[source]
netlist_str: str = ''[source]
netlist(used_names: List[str], offset_map: Dict[str, str], scs: bool, last: bool) str[source]
class bag.data.lark.SubCKT(items: List[Any])[source]
subckt_name: str[source]
ports: List[str][source]
instances: List[Instance][source]
netlist_str: str = ''[source]
last: bool = False[source]
netlist(used_names: List[str], offset_map: Dict[str, str], scs: bool) str[source]
class bag.data.lark.Header(items: List[Any])[source]
netlist_str: str[source]
netlist(used_names: List[str], offset_map: Dict[str, str], scs: bool) str[source]
class bag.data.lark.CktTransformer[source]

Bases: lark.visitors.Transformer

classmethod instances(items)[source]
classmethod subckts(items)[source]
classmethod headers(items)[source]
bag.data.lark.add_mismatch_offsets(netlist_in: Union[pathlib.Path, str], netlist_out: Optional[Union[pathlib.Path, str]] = None, debug: bool = False) None[source]