Bitorder Propagation

class bitorder_propagation.BitorderPropagationPlugin
get_name(self: bitorder_propagation.BitorderPropagationPlugin) → str
get_version(self: bitorder_propagation.BitorderPropagationPlugin) → str
static propagate_bitorder(*args, **kwargs)

Overloaded function.

  1. propagate_bitorder(nl: hal_py.Netlist, src: Tuple[int, str], dst: Tuple[int, str]) -> Optional[Dict[Tuple[hal_py.Module, hal_py.ModulePinGroup], Dict[hal_py.Net, int]]]

    Propagates known bit order information to module pin groups with unknown bit order. Afterwards the algorithm tries to reconstruct valid bit orders from the propagated information. The valid bit orders are then annotated to the module pin groups.

    param hal_py.netlist nl:
     The netlist.
    param tuple(int,str) src:
     A pair of module id and pin group name representing the source.
    param tuple(int,str) dst:
     A pair of module id and pin group name representing the destination.
    returns:All wellformed bitorders on success, None otherwise.
    rtype:dict[tuple(hal_py.Module,hal_py.ModulePinGroup),dict[hal_py.Net,int]] or None
  2. propagate_bitorder(src: Tuple[hal_py.Module, hal_py.ModulePinGroup], dst: Tuple[hal_py.Module, hal_py.ModulePinGroup]) -> Optional[Dict[Tuple[hal_py.Module, hal_py.ModulePinGroup], Dict[hal_py.Net, int]]]

    Propagates known bit order information to module pin groups with unknown bit order. Afterwards the algorithm tries to reconstruct valid bit orders from the propagated information. The valid bit orders are then annotated to the module pin groups.

    param hal_py.netlist nl:
     The netlist.
    param tuple(hal_py.Module,hal_py.ModulePinGroup) src:
     A pair of module and pin group representing the source.
    param tuple(hal_py.Module,hal_py.ModulePinGroup) dst:
     A pair of module and pin group representing the destination.
    returns:All wellformed bitorders on success, None otherwise.
    rtype:dict[tuple(hal_py.Module,hal_py.ModulePinGroup),dict[hal_py.Net,int]] or None
  3. propagate_bitorder(nl: hal_py.Netlist, src: List[Tuple[int, str]], dst: List[Tuple[int, str]]) -> Optional[Dict[Tuple[hal_py.Module, hal_py.ModulePinGroup], Dict[hal_py.Net, int]]]

    Propagates known bit order information to module pin groups with unknown bit order. Afterwards the algorithm tries to reconstruct valid bit orders from the propagated information. The valid bit orders are then annotated to the module pin groups.

    param hal_py.netlist nl:
     The netlist.
    param list[tuple(int,str)] src:
     A list of pairs of module id and pin group name representing the sources.
    param list[tuple(int,str)] dst:
     A list of pairs of module id and pin group name representing the destinations.
    returns:All wellformed bitorders on success, None otherwise.
    rtype:dict[tuple(hal_py.Module,hal_py.ModulePinGroup),dict[hal_py.Net,int]] or None
  4. propagate_bitorder(src: List[Tuple[hal_py.Module, hal_py.ModulePinGroup]], dst: List[Tuple[hal_py.Module, hal_py.ModulePinGroup]]) -> Optional[Dict[Tuple[hal_py.Module, hal_py.ModulePinGroup], Dict[hal_py.Net, int]]]

    Propagates known bit order information to module pin groups with unknown bit order. Afterwards the algorithm tries to reconstruct valid bit orders from the propagated information. The valid bit orders are then annotated to the module pin groups.

    param hal_py.netlist nl:
     The netlist.
    param list[tuple(hal_py.Module,hal_py.ModulePinGroup)] src:
     A list of pairs of modules and pin groups representing the sources.
    param list[tuple(hal_py.Module,hal_py.ModulePinGroup)] dst:
     A list of pairs of modules and pin groups representing the destinations.
    returns:All wellformed bitorders on success, None otherwise.
    rtype:dict[tuple(hal_py.Module,hal_py.ModulePinGroup),dict[hal_py.Net,int]] or None
static propagate_module_pingroup_bitorder(known_bitorders: Dict[Tuple[hal_py.Module, hal_py.ModulePinGroup], Dict[hal_py.Net, int]], unknown_bitorders: Set[Tuple[hal_py.Module, hal_py.ModulePinGroup]], strict_consens_finding: bool = False) → Optional[Dict[Tuple[hal_py.Module, hal_py.ModulePinGroup], Dict[hal_py.Net, int]]]

Propagates known bit order information to module pin groups with unknown bit order. Afterwards the algorithm tries to reconstruct valid bit orders from the propagated information.

Parameters:
Returns:

A mapping of all the known bit orders consisting of the new and already known ones on success, None otherwise.

Return type:

dict[tuple(hal_py.Module,hal_py.ModulePinGroup),dict[hal_py.Net,int]] or None

static reorder_module_pin_groups(ordered_module_pin_groups: Dict[Tuple[hal_py.Module, hal_py.ModulePinGroup], Dict[hal_py.Net, int]]) → bool

This funtion tries to propagate the bit order of the src pin groups to the dst pin groups

Parameters:ordered_module_pin_groups (dict[tuple(hal_py.Module,hal_py.ModulePinGroup),dict[hal_py.Net,int]]) – A mapping from all the modules and pin groups with known bit order information to the knonw bit order information mapping every net to its corresponding index.
Returns:True on sucess, False otherwise.
Return type:bool