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.
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 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 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 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: - known_bitorders (dict[tuple(hal_py.Module,hal_py.ModulePinGroup),dict[hal_py.Net,int]]) – The known indices for the nets belonging to module pin groups.
- unknown_bitorders (set[tuple(hal_py.Module,hal_py.ModulePinGroup)]) – The module pin groups with yet unknown bit order.
- strict_consens_finding (bool) – When set to true this option only allows for complete and continous bitorders, while false would allow for bit orders to be formed that are either not complete or not continous.
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
-