hwtLib.tools package

This module contains independent scripts used to control hardware components defined in this library.

Submodules

hwtLib.tools.debug_bus_monitor_ctl module

class hwtLib.tools.debug_bus_monitor_ctl.Colorizer[source]

Bases: object

A base class for objects which looks at the data and resolves color of the output text/element

get_color(name: str, data_spec: list, data: int)[source]
class hwtLib.tools.debug_bus_monitor_ctl.ColorizerHandshakeOrEnLike[source]

Bases: Colorizer

LIGHT_GREEN = '#90ee90'
LIGHT_PURPLE = '#b19cd9'
LIGHT_RED = '#ffcccb'
__annotations__ = {}
_get_HwIO_names(data_spec)[source]
_try_get_HwIO_index_by_name(hwIOs: Dict[str, Tuple[int, Tuple[int, int]]], names: List[str], data) int | None[source]
get_color(name: str, data_spec: list, data: int)[source]
class hwtLib.tools.debug_bus_monitor_ctl.DebugBusMonitorCtl(addr)[source]

Bases: object

A tool used to interact with a hwtLib.abstract.debug_bus_monitor.DebugBusMonitor

REG_DATA_MEMORY = 8
REG_NAME_MEMORY_OFFSET = 4
REG_NAME_MEMORY_SIZE = 0
__annotations__ = {'data_memory_size': 'Optional[int]', 'meta_memory': 'Optional[VisualNodeTemplate]'}
__init__(addr)[source]
_decode_meta_memory_json(data: list)[source]
_dump_dot_node_set(meta_memory: List[VisualNodeTemplate], out: StringIO, colorizer: Colorizer, data: int, indent: int) None[source]
_load_meta_and_data() int[source]
construct_id_to_node_dict(meta_memory: List[VisualNodeTemplate], res: Dict[int, VisualNodeTemplate])[source]
data_memory_size: int | None
dump_dot(out=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>, colorizer=<hwtLib.tools.debug_bus_monitor_ctl.ColorizerHandshakeOrEnLike object>) None[source]
dump_txt(out=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>) None[source]
get_data_memory_width(meta_memory: VisualNodeTemplate | list | List[int])[source]
load_meta_memory()[source]
meta_memory: VisualNodeTemplate | None
read(addr: int, size: int)[source]
read_int(addr: int, size: int) int[source]
class hwtLib.tools.debug_bus_monitor_ctl.DebugBusMonitorCtlDevmem(addr: int)[source]

Bases: DebugBusMonitorCtl

__annotations__ = {}
__init__(addr: int)[source]
read(addr, size)[source]
class hwtLib.tools.debug_bus_monitor_ctl.VisualNodeTemplate(id_: int, name: str, data_spec: list, parent: VisualNodeTemplate | None = None)[source]

Bases: object

__annotations__ = {'children': 'List[VisualNodeTemplate]', 'links': 'List[VisualNodeTemplate]'}
__init__(id_: int, name: str, data_spec: list, parent: VisualNodeTemplate | None = None)[source]
_default_dot_formatter(data: int, out: StringIO, indent: int, colorizer: Colorizer | None) str[source]

Format interface signals and values as a html like table for graphviz

classmethod _default_txt_formatter(name: str, data_spec, children: List[VisualNodeTemplate], data: int, out: StringIO, indent: int)[source]
classmethod _dump_txt_indent(out: StringIO, indent: int)[source]
classmethod _format_data(data, data_spec: Tuple[int, int])[source]
classmethod _get_HwIO_depth(data_spec: dict | Tuple[int, int]) int[source]
classmethod _visual_format_HwIO_rows(name: str, data_spec: dict | Tuple[int, int], buff: StringIO, column_cnt: int, cur_indent: int, data: int, text_indent: int, colorizer: Colorizer | None) None[source]
children: List[VisualNodeTemplate]
hwtLib.tools.debug_bus_monitor_ctl.bit_mask(w)[source]
Note:

duplication with pyMathBitPrecise in order to keep this script without non-std dependencies

hwtLib.tools.debug_bus_monitor_ctl.select_bit_range(val: int, bits_start: int, bits_len: int)[source]

Get sequence of bits from an int value

Note:

duplication with pyMathBitPrecise in order to keep this script without non-std dependencies

hwtLib.tools.debug_bus_monitor_ctl.words_to_int(words, word_size, size)[source]