Module

class hal_py.Module

Bases: hal_py.DataContainer

A module is a container for gates and their associated nets that enables hierarchization within the netlist. Each gate can only be in one module at a time. Nets are only loosely associated with modules.

assign_gate(self: hal_py.Module, gate: hal_py.Gate) → bool

Assign a gate to the module. The gate is removed from its previous module in the process.

Parameters:gate (hal_py.Gate) – The gate to assign.
Returns:True on success, False otherwise.
Return type:bool
assign_gates(self: hal_py.Module, gates: List[hal_py.Gate]) → bool

Assign a list of gates to the module. The gates are removed from their previous module in the process.

Parameters:gates (list[hal_py.Gate]) – The gates to assign.
Returns:True on success, False otherwise.
Return type:bool
assign_pin_to_group(self: hal_py.Module, pin_group: hal_py.ModulePinGroup, pin: hal_py.ModulePin, delete_empty_groups: bool = True) → bool

Assign a pin to a pin group.

Parameters:
  • pin_group (hal_py.ModulePinGroup) – The new pin group.
  • pin (hal_py.ModulePin) – The pin to be added.
  • delete_empty_groups (bool) – Set True to delete groups that are empty after the pin has been assigned to the new group, False to keep empty groups. Defaults to True.
Returns:

True on success, False otherwise.

Return type:

bool

contains_gate(self: hal_py.Module, gate: hal_py.Gate, recursive: bool = False) → bool

Check whether a gate is contained in the module. If recursive is True, gates in submodules are considered as well.

Parameters:
  • gate (hal_py.Gate) – The gate to check for.
  • recursive (bool) – True to also consider gates in submodules, False otherwise.
Returns:

True if the gate is contained in the module, False otherwise.

Return type:

bool

contains_module(self: hal_py.Module, other: hal_py.Module, recusive: bool = False) → bool

Checks whether another module is a submodule of this module. If recursive is set to True, all indirect submodules are also included.

Parameters:
  • other (hal_py.Module) – Other module to check for.
  • recursive (bool) – Set True to include indirect submodules as well, False otherwise.
Returns:

True if the other module is a submodule, False otherwise.

Return type:

bool

contains_net(self: hal_py.Module, net: hal_py.Net, recursive: bool = False) → bool

Check whether a net is contained in the module. If recursive is set to True, nets in submodules are considered as well.

Parameters:
  • net (hal_py.Net) – The net to check for.
  • recursive (bool) – True to also consider nets in submodules, False otherwise.
Returns:

True if the net is contained in the module, False otherwise.

Return type:

bool

create_pin(*args, **kwargs)

Overloaded function.

  1. create_pin(self: hal_py.Module, id: int, name: str, net: hal_py.Net, type: hal_py.PinType = <PinType.none: 0>, create_group: bool = True, force_name: bool = False) -> hal_py.ModulePin

    Manually assign a module pin to a net. Checks whether the given direction matches the actual properties of the net, i.e., checks whether the net actually is an input and/or output to the module. Hence, make sure to update the module nets beforehand using hal_py.Module.update_net. If create_group is set to False, the pin will not be added to a pin group.

    WARNING: can only be used when automatic net checks have been disabled using hal_py.Netlist.enable_automatic_net_checks.

    param int id:The ID of the pin.
    param str name:The name of the pin.
    param hal_py.Net net:
     The net that the pin is being assigned to.
    param hal_py.PinType type:
     The type of the pin. Defaults to hal_py.PinType.none.
    param bool create_group:
     Set True to automatically create a pin group and assign the pin, False otherwise. Defaults to True.
    param bool force_name:
     Set True to enforce the name, False otherwise. If a pin with the same name already exists, the existing pin will be renamed. Defaults to False.
    returns:The module pin on success, None otherwise.
    rtype:hal_py.ModulePin or None
  2. create_pin(self: hal_py.Module, name: str, net: hal_py.Net, type: hal_py.PinType = <PinType.none: 0>, create_group: bool = True, force_name: bool = False) -> hal_py.ModulePin

    Manually assign a module pin to a net. The ID of the pin is set automatically. Checks whether the given direction matches the actual properties of the net, i.e., checks whether the net actually is an input and/or output to the module. Hence, make sure to update the module nets beforehand using hal_py.Module.update_net. If create_group is set to False, the pin will not be added to a pin group.

    WARNING: can only be used when automatic net checks have been disabled using hal_py.Netlist.enable_automatic_net_checks.

    param str name:The name of the pin.
    param hal_py.Net net:
     The net that the pin is being assigned to.
    param hal_py.PinType type:
     The type of the pin. Defaults to hal_py.PinType.none.
    param bool create_group:
     Set True to automatically create a pin group and assign the pin, False otherwise. Defaults to True.
    param bool force_name:
     Set True to enforce the name, False otherwise. If a pin with the same name already exists, the existing pin will be renamed. Defaults to False.
    returns:The module pin on success, None otherwise.
    rtype:hal_py.ModulePin or None
create_pin_group(*args, **kwargs)

Overloaded function.

  1. create_pin_group(self: hal_py.Module, id: int, name: str, pins: List[hal_py.ModulePin], direction: hal_py.PinDirection = <PinDirection.none: 0>, type: hal_py.PinType = <PinType.none: 0>, ascending: bool = True, start_index: int = 0, delete_empty_groups: bool = True, force_name: bool = False) -> hal_py.ModulePinGroup

    Create a new pin group with the given name. All pins to be added to the pin group must have the same direction and type.

    param int id:The ID of the pin group.
    param str name:The name of the pin group.
    param list[hal_py.ModulePin] pins:
     The pins to be assigned to the pin group. Defaults to an empty list.
    param hal_py.PinDirection direction:
     The direction of the pin group, if any. Defaults to hal_py.PinDirection.none.
    param hal_py.PinType type:
     The type of the pin group, if any. Defaults to hal_py.PinType.none.
    param bool ascending:
     Set True for ascending pin order (from 0 to n-1), False otherwise (from n-1 to 0). Defaults to True.
    param int start_index:
     The start index of the pin group. Defaults to 0.
    param bool delete_empty_groups:
     Set True to delete groups that are empty after the pins have been assigned to the new group, False to keep empty groups. Defaults to True.
    param bool force_name:
     Set True to enforce the name, False otherwise. If a pin group with the same name already exists, the existing pin group will be renamed. Defaults to False.
    returns:The pin group on success, None otherwise.
    rtype:hal_py.ModulePinGroup or None
  2. create_pin_group(self: hal_py.Module, name: str, pins: List[hal_py.ModulePin], direction: hal_py.PinDirection = <PinDirection.none: 0>, type: hal_py.PinType = <PinType.none: 0>, ascending: bool = True, start_index: int = 0, delete_empty_groups: bool = True, force_name: bool = False) -> hal_py.ModulePinGroup

    Create a new pin group with the given name. All pins to be added to the pin group must have the same direction and type.

    param str name:The name of the pin group.
    param list[hal_py.ModulePin] pins:
     The pins to be assigned to the pin group. Defaults to an empty list.
    param hal_py.PinDirection direction:
     The direction of the pin group, if any. Defaults to hal_py.PinDirection.none.
    param hal_py.PinType type:
     The type of the pin group, if any. Defaults to hal_py.PinType.none.
    param bool ascending:
     Set True for ascending pin order (from 0 to n-1), False otherwise (from n-1 to 0). Defaults to True.
    param int start_index:
     The start index of the pin group. Defaults to 0.
    param bool delete_empty_groups:
     Set True` to delete groups that are empty after the pins have been assigned to the new group, False to keep empty groups. Defaults to True.
    param bool force_name:
     Set True to enforce the name, False otherwise. If a pin group with the same name already exists, the existing pin group will be renamed. Defaults to False.
    returns:The pin group on success, None otherwise.
    rtype:hal_py.ModulePinGroup or None
data

A dict from ((1) category, (2) key) to ((1) type, (2) value) containing all stored data entries.

Type:dict[tuple(str,str),tuple(str,str)]
delete_data(self: hal_py.DataContainer, category: str, key: str, log_with_info_level: bool = False) → bool

Delete a data entry.

Parameters:
  • category (str) – The data key category.
  • key (str) – The data key.
  • log_with_info_level (bool) – Force explicit logging channel ‘netlist’ with log level ‘info’ to trace GUI events.
Returns:

True on success, false otherwise.

Return type:

bool

delete_pin_group(self: hal_py.Module, pin_group: hal_py.ModulePinGroup) → bool

Delete the given pin group.

Parameters:pin_group (hal_py.ModulePinGroup) – The pin group to be deleted.
Returns:True on success, False otherwise.
Return type:bool
gates

The list of all gates contained within the module.

Type:list[hal_py.Gate]
get_data(self: hal_py.DataContainer, category: str, key: str) → Tuple[str, str]

Get the data entry specified by the given category and key.

Parameters:
  • category (str) – The data key category.
  • key (str) – The data key.
Returns:

The tuple ((1) type, (2) value).

Return type:

tuple(str,str)

get_data_map(self: hal_py.DataContainer) → Dict[Tuple[str, str], Tuple[str, str]]

Get a dict from ((1) category, (2) key) to ((1) type, (2) value) containing all stored data entries.

Returns:The stored data as a dict.
Return type:dict[tuple(str,str),tuple(str,str)]
get_gate_by_id(self: hal_py.Module, id: int, recursive: bool = False) → hal_py.Gate

Get a gate specified by the given ID. If recursive is True, gates in submodules are considered as well.

Parameters:
  • id (int) – The unique ID of the gate.
  • recursive (bool) – True to also consider gates in submodules, False otherwise.
Returns:

The gate if found, None otherwise.

Return type:

hal_py.Gate or None

get_gates(*args, **kwargs)

Overloaded function.

  1. get_gates(self: hal_py.Module) -> List[hal_py.Gate]

    Get all gates contained within the module.

    returns:A list of gates.
    rtype:list[hal_py.Gate]
  2. get_gates(self: hal_py.Module, filter: Callable[[hal_py.Gate], bool] = None, recursive: bool = False) -> List[hal_py.Gate]

    Get all gates contained within the module. The filter is evaluated on every candidate such that the result only contains those matching the specified condition. If recursive is True, gates in submodules are considered as well.

    param lambda filter:
     Filter function to be evaluated on each gate.
    param bool recursive:
     True to also consider gates in submodules, False otherwise. Defaults to False.
    returns:A list of gates.
    rtype:list[hal_py.Gate]
get_grouping(self: hal_py.Module) → hal::Grouping

Get the grouping in which this module is contained.

Returns:The grouping.
Return type:hal_py.Grouping
get_id(self: hal_py.Module) → int

Get the unique ID of the module.

Returns:The unique id.
Return type:int
get_input_nets(self: hal_py.Module) → Set[hal_py.Net]

Get all nets that are either a global input to the netlist or have at least one source outside of the module.

Returns:A set of input nets.
Return type:set[hal_py.Net]
get_input_pin_names(self: hal_py.Module) → List[str]

Get an ordered list of the names of all input pins of the module (including inout pins).

Returns:An ordered list of input pin names.
Return type:list[str]
get_input_pins(self: hal_py.Module) → List[hal_py.ModulePin]

Get an ordered list of all input pins of the module (including inout pins).

Returns:An ordered list of input pins.
Return type:list[hal_py.ModulePin]
get_internal_nets(self: hal_py.Module) → Set[hal_py.Net]

Get all nets that have at least one source and one destination within the module, including its submodules. The result may contain nets that are also regarded as input or output nets.

Returns:A set of internal nets.
Return type:set[hal_py.Net]
get_name(self: hal_py.Module) → str

Get the name of the module.

Returns:The name.
Return type:str
get_netlist(self: hal_py.Module) → hal_py.Netlist

Get the netlist this module is associated with.

Returns:The netlist.
Return type:hal_py.Netlist
get_nets(*args, **kwargs)

Overloaded function.

  1. get_nets(self: hal_py.Module) -> Set[hal_py.Net]

    Get all nets that have at least one source or one destination within the module.

    returns:An unordered set of nets.
    rtype:set[hal_py.Net]
  2. get_nets(self: hal_py.Module, filter: Callable[[hal_py.Net], bool], recursive: bool = False) -> Set[hal_py.Net]

    Get all nets that have at least one source or one destination within the module. The filter is evaluated on every candidate such that the result only contains those matching the specified condition. If recursive is True, nets in submodules are considered as well.

    param lambda filter:
     Filter function to be evaluated on each net.
    param bool recursive:
     True to also consider nets in submodules, False otherwise.
    returns:An unordered set of nets.
    rtype:set[hal_py.Net]
get_output_nets(self: hal_py.Module) → Set[hal_py.Net]

Get all nets that are either a global output to the netlist or have at least one destination outside of the module.

Returns:A set of output nets.
Return type:set[hal_py.Net]
get_output_pin_names(self: hal_py.Module) → List[str]

Get an ordered list of the names of all output pins of the module (including inout pins).

Returns:An ordered list of output pin names.
Return type:list[str]
get_output_pins(self: hal_py.Module) → List[hal_py.ModulePin]

Get an ordered list of all output pins of the module (including inout pins).

Returns:An ordered list of output pins.
Return type:list[hal_py.ModulePin]
get_parent_module(self: hal_py.Module) → hal_py.Module

Get the parent module of this module. For the top module, None is returned.

Returns:The parent module.
Return type:hal_py.Module or None
get_parent_modules(self: hal_py.Module, filter: Callable[[hal_py.Module], bool] = None, recursive: bool = True) → List[hal_py.Module]

Get all parents of this module. If recursive is set to True, all indirect parents are also included. The optional filter is evaluated on every candidate such that the result only contains those matching the specified condition.

Parameters:
  • filter (lambda) – An optional filter.
  • recursive (bool) – Set True to include indirect parents as well, False otherwise.
Returns:

A list of parent modules.

Return type:

list[hal_py.Module]

get_pin_by_id(self: hal_py.Module, id: int) → hal_py.ModulePin

Get the pin corresponding to the given ID.

Parameters:id (int) – The ID of the pin.
Returns:The pin on success, None otherwise.
Return type:hal_py.ModulePin or None
get_pin_by_name(self: hal_py.Module, name: str) → hal_py.ModulePin

Get the pin corresponding to the given name.

Parameters:name (str) – The name of the pin.
Returns:The pin on success, None otherwise.
Return type:hal_py.ModulePin or None
get_pin_by_net(self: hal_py.Module, net: hal_py.Net) → hal_py.ModulePin

Get the pin that passes through the specified net.

Parameters:net (hal_py.Net) – The net.
Returns:The pin on success, None otherwise.
Return type:hal_py.ModulePin or None
get_pin_group_by_id(self: hal_py.Module, id: int) → hal_py.ModulePinGroup

Get the pin group corresponding to the given ID.

Parameters:id (int) – The ID of the pin group.
Returns:The pin group on success, None otherwise.
Return type:hal_py.ModulePinGroup or None
get_pin_group_by_name(self: hal_py.Module, name: str) → hal_py.ModulePinGroup

Get the pin group corresponding to the given name.

Parameters:name (str) – The name of the pin group.
Returns:The pin group on success, None otherwise.
Return type:hal_py.ModulePinGroup or None
get_pin_groups(self: hal_py.Module, filter: Callable[[hal_py.ModulePinGroup], bool] = None) → List[hal_py.ModulePinGroup]

Get all pin groups of the module. The optional filter is evaluated on every candidate such that the result only contains those matching the specified condition.

Parameters:filter (lambda) – An optional filter.
Returns:A list of pin groups.
Return type:list[hal_py.ModulePinGroup]
get_pin_names(self: hal_py.Module, filter: Callable[[hal_py.ModulePin], bool] = None) → List[str]

Get an ordered list of the names of all pins of the module. The optional filter is evaluated on every candidate such that the result only contains those matching the specified condition.

Returns:A list of input pin names of the module.
Parameters:filter (lambda) – An optional filter.
Returns:An ordered list of pins.
Return type:list[str]
get_pins(self: hal_py.Module, filter: Callable[[hal_py.ModulePin], bool] = None) → List[hal_py.ModulePin]

Get the (ordered) pins of the module. The optional filter is evaluated on every candidate such that the result only contains those matching the specified condition.

Parameters:filter (lambda) – An optional filter.
Returns:A list of pins.
Return type:list[hal_py.ModulePin]
get_submodule_depth(self: hal_py.Module) → int

Get the depth of the module within the module hierarchie (0 = top module, 1 = direct child of top module, …).

Returns:The depth within the module hierarchie.
Return type:int
get_submodules(self: hal_py.Module, filter: Callable[[hal_py.Module], bool] = None, recursive: bool = False) → List[hal_py.Module]

Get all direct submodules of this module. If recursive is set to True, all indirect submodules are also included. The optional filter is evaluated on every candidate such that the result only contains those matching the specified condition.

Parameters:
  • filter (lambda) – An optional filter.
  • recursive (bool) – Set True to include indirect submodules as well, False otherwise.
Returns:

A list of submodules.

Return type:

list[hal_py.Module]

get_type(self: hal_py.Module) → str

Get the type of the module.

Returns:The type.
Return type:str
get_unique_pin_group_id(self: hal_py.Module) → int

Get a spare pin group ID. The value of 0 is reserved and represents an invalid ID.

Returns:The pin group ID.
Return type:int
get_unique_pin_id(self: hal_py.Module) → int

Get a spare pin ID. The value of 0 is reserved and represents an invalid ID.

Returns:The pin ID.
Return type:int
has_data(self: hal_py.DataContainer, category: str, key: str) → bool

Determine whether an entry of given category and key exists.

Parameters:
  • category (str) – The data key category.
  • key (str) – The data key.
Returns:

True if the entry exists, False otherwise.

Return type:

bool

id

The unique ID of the module.

Type:int
input_nets

A set of all nets that are either a global input to the netlist or have at least one source outside of the module.

Type:set[hal_py.Net]
input_pin_names

An ordered list of the names of all input pins of the module (including inout pins).

Type:list[str]
input_pins

An ordered list of all input pins of the module (including inout pins).

Type:list[hal_py.ModulePin]
internal_nets

A set of all nets that have at least one source and one destination within the module, including its submodules. The result may contain nets that are also regarded as input or output nets.

Type:set[hal_py.Net]
is_input_net(self: hal_py.Module, net: hal_py.Net) → bool

Check whether the given net is an input of the module, i.e., whether the net is a global input to the netlist or has at least one source outside of the module.

Parameters:net (hal_py.Net) – The net.
Returns:True if the net is an input net, False otherwise.
Return type:bool
is_internal_net(self: hal_py.Module, net: hal_py.Net) → bool

Check whether the given net is an internal net of the module, i.e. whether the net has at least one source and one destination within the module.

Parameters:net (hal_py.Net) – The net.
Returns:True if the net is an internal net, False otherwise.
Return type:bool
is_output_net(self: hal_py.Module, net: hal_py.Net) → bool

Check whether the given net is an output of the module, i.e., whether the net is a global output to the netlist or has at least one destination outside of the module.

Parameters:net (hal_py.Net) – The net.
Returns:True if the net is an output net, False otherwise.
Return type:bool
is_parent_module_of(self: hal_py.Module, module: hal_py.Module, recursive: bool = False) → bool

Check if the module is a parent of the specified module.

Parameters:
  • module (hal_py.Module) – The module.
  • recursive (bool) – Set True to check recursively, False otherwise.
Returns:

True if the module is a parent of the specified module, False otherwise.

Return type:

bool

is_submodule_of(self: hal_py.Module, module: hal_py.Module, recursive: bool = False) → bool

Check if the module is a submodule of the specified module.

Parameters:
  • module (hal_py.Module) – The module.
  • recursive (bool) – Set True to check recursively, False otherwise.
Returns:

True if the module is a submodule of the specified module, False otherwise.

is_top_module(self: hal_py.Module) → bool

Returns true only if the module is the top module of the netlist.

Returns:True if the module is the top module, False otherwise.
Return type:bool
move_pin_group(self: hal_py.Module, pin_group: hal_py.ModulePinGroup, new_index: int) → bool

Move a pin group to another index within the module. The indices of some other pin groups will be incremented or decremented to make room for the moved pin group to be inserted at the desired position.

Parameters:
  • pin_group (hal_py.ModulePinGroup) – The pin group to be moved.
  • new_index (int) – The index to which the pin group is moved.
Returns:

True on success, False otherwise.

Return type:

bool

move_pin_within_group(self: hal_py.Module, pin_group: hal_py.ModulePinGroup, pin: hal_py.ModulePin, new_index: int) → bool

Move a pin to another index within the given pin group. The indices of some other pins within the group will be incremented or decremented to make room for the moved pin to be inserted at the desired position.

Parameters:
Returns:

True on success, False otherwise.

Return type:

bool

name

The name of the module.

Type:str
netlist

The netlist this module is associated with.

Type:hal_py.Netlist
nets

An unordered set of all nets that have at least one source or one destination within the module.

Type:set[hal_py.Net]
output_nets

A set of all nets that are either a global output to the netlist or have at least one destination outside of the module.

Type:set[hal_py.Net]
output_pin_names

An ordered list of the names of all output pins of the module (including inout pins).

Type:list[str]
output_pins

An ordered list of all output pins of the module (including inout pins).

Type:list[hal_py.ModulePin]
parent_module

The parent module of this module. Is set to None for the top module, but cannot be set to None by the user.

Type:hal_py.Module or None
parent_modules

The parent modules of this module.

Type:list[hal_py.Module]
pin_groups

All pin_groups of the module.

Type:list[hal_py.ModulePinGroup]
pin_names

An ordered list of the names of all pins of the module.

Type:list[str]
pins

The (ordered) pins of the module.

Type:list[hal_py.ModulePin]
remove_gate(self: hal_py.Module, gate: hal_py.Gate) → bool

Remove a gate from the module. Automatically moves the gate to the top module of the netlist.

Parameters:gate (hal_py.Gate) – The gate to remove.
Returns:True on success, False otherwise.
Return type:bool
remove_gates(self: hal_py.Module, gates: List[hal_py.Gate]) → bool

Remove a list of gates from the module. Automatically moves the gates to the top module of the netlist.

Parameters:gates (list[hal_py.Gate]) – The gates to remove.
Returns:True on success, False otherwise.
Return type:bool
remove_pin_from_group(self: hal_py.Module, pin_group: hal_py.ModulePinGroup, pin: hal_py.ModulePin, delete_empty_groups: bool = True) → bool

Remove a pin from a pin group. The pin will be moved to a new group that goes by the pin’s name.

Parameters:
  • pin_group (hal_py.ModulePinGroup) – The old pin group.
  • pin (hal_py.ModulePin) – The pin to be removed.
  • delete_empty_groups (bool) – Set True to delete the group of it is empty after the pin has been removed, False to keep the empty group. Defaults to True.
Returns:

True on success, False otherwise.

Return type:

bool

set_data(self: hal_py.DataContainer, category: str, key: str, data_type: str, value: str, log_with_info_level: bool = False) → bool

Add a data entry.<br> May overwrite an existing entry.

Parameters:
  • category (str) – The data key category.
  • key (str) – The data key.
  • data_type (str) – The data type.
  • value (str) – The data value.
  • log_with_info_level (bool) – Force explicit logging channel ‘netlist’ with log level ‘info’ to trace GUI events.
Returns:

True on success, false otherwise.

Return type:

bool

set_name(self: hal_py.Module, name: str) → None

Set the name of the module.

Parameters:name (str) – The new name.
set_parent_module(self: hal_py.Module, new_parent: hal_py.Module) → bool

Set a new parent for this module. If the new parent is a submodule of this module, the new parent is added as a direct submodule to the old parent first.

Parameters:new_parent (hal_py.Module) – The new parent module.
Returns:True if the parent was changed, False otherwise.
Return type:bool
set_pin_group_direction(self: hal_py.Module, pin_group: hal_py.ModulePinGroup, new_direction: hal_py.PinDirection) → bool

Set the direction of the given pin group.

Parameters:
Returns:

True on success, False otherwise.

Return type:

bool

set_pin_group_name(self: hal_py.Module, pin_group: hal_py.ModulePinGroup, new_name: str, force_name: bool = False) → bool

Set the name of the given pin group.

Parameters:
  • pin_group (hal_py.ModulePinGroup) – The pin group.
  • new_name (str) – The name to be assigned to the pin group.
  • force_name (bool) – Set True to enforce the name, False otherwise. If a pin group with the same name already exists, the existing pin group will be renamed. Defaults to False.
Returns:

True on success, False otherwise.

Return type:

bool

set_pin_group_type(self: hal_py.Module, pin_group: hal_py.ModulePinGroup, new_type: hal_py.PinType) → bool

Set the type of the given pin group.

Parameters:
Returns:

True on success, False otherwise.

Return type:

bool

set_pin_name(self: hal_py.Module, pin: hal_py.ModulePin, new_name: str, force_name: bool = False) → bool

Set the name of the given pin.

Parameters:
  • pin (hal_py.ModulePin) – The pin.
  • new_name (str) – The name to be assigned to the pin.
  • force_name (bool) – Set True to enforce the name, False otherwise. If a pin with the same name already exists, the existing pin will be renamed. Defaults to False.
Returns:

True on success, False otherwise.

Return type:

bool

set_pin_type(self: hal_py.Module, pin: hal_py.ModulePin, new_type: hal_py.PinType) → bool

Set the type of the given pin.

Parameters:
Returns:

True on success, False otherwise.

Return type:

bool

set_type(self: hal_py.Module, type: str) → None

Set the type of the module.

Parameters:type (str) – The new type.
submodule_depth

The depth of the module within the module hierarchie (0 = top module, 1 = direct child of top module, …).

Type:int
submodules

A list of all direct submodules of this module.

Type:list[hal_py.Module]
top_module

True only if the module is the top module of the netlist.

Type:bool
type

The type of the module.

Type:str
update_nets(self: hal_py.Module) → None

Iterates over all nets connected to at least one gate of the module to update the nets, internal nets, input nets, and output nets of the module. Has no effect on module pins.

WARNING: can only be used when automatic net checks have been disabled using hal_py.Netlist.enable_automatic_net_checks.

Returns:True on success, False otherwise.
Return type:bool