# {py:mod}`pyuvm._reg.uvm_mem_mam` ```{py:module} pyuvm._reg.uvm_mem_mam ``` ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`uvm_mem_mam ` - * - {py:obj}`uvm_mem_region ` - * - {py:obj}`uvm_mem_mam_policy ` - * - {py:obj}`uvm_mem_mam_cfg ` - * - {py:obj}`alloc_mode_e ` - * - {py:obj}`locality_e ` - ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: pyuvm._reg.uvm_mem_mam.__all__ :value: > ['uvm_mem_mam_cfg', 'uvm_mem_mam', 'uvm_mem_region', 'uvm_mem_mam_policy'] ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.__all__ ``` ```` `````{py:class} uvm_mem_mam(name: str, cfg: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg, mem: pyuvm._reg.uvm_mem.uvm_mem = None) :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam Bases: {py:obj}`pyuvm._utility_classes.uvm_void` ````{py:method} reconfigure(cfg: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg = None) -> pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam.reconfigure :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam.reconfigure ``` ```` ````{py:method} reserve_region(start_offset: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t, n_bytes: int, fname: str = '', lineno: int = 0) -> pyuvm._reg.uvm_mem_mam.uvm_mem_region :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam.reserve_region :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam.reserve_region ``` ```` ````{py:method} request_region(n_bytes: int, alloc: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy = None, fname: str = '', lineno: int = 0) -> pyuvm._reg.uvm_mem_mam.uvm_mem_region :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam.request_region :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam.request_region ``` ```` ````{py:method} release_region(region: pyuvm._reg.uvm_mem_mam.uvm_mem_region) -> None :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam.release_region :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam.release_region ``` ```` ````{py:method} release_all_regions() -> None :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam.release_all_regions :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam.release_all_regions ``` ```` ````{py:method} for_each() -> pyuvm._reg.uvm_mem_mam.uvm_mem_region :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam.for_each :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam.for_each ``` ```` ````{py:method} get_memory() -> pyuvm._reg.uvm_mem.uvm_mem :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam.get_memory :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam.get_memory ``` ```` ````` `````{py:class} uvm_mem_region(start_offset: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t, end_offset: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t, len: int, n_bytes: int, parent: pyuvm._reg.uvm_mem_mam.uvm_mem_mam) :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region Bases: {py:obj}`pyuvm._utility_classes.uvm_void` ````{py:method} get_start_offset() -> pyuvm._reg.uvm_reg_model.uvm_reg_addr_t :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_start_offset :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_start_offset ``` ```` ````{py:method} get_end_offset() -> pyuvm._reg.uvm_reg_model.uvm_reg_addr_t :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_end_offset :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_end_offset ``` ```` ````{py:method} get_len() -> int :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_len :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_len ``` ```` ````{py:method} get_n_bytes() -> int :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_n_bytes :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_n_bytes ``` ```` ````{py:method} release_region() -> None :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.release_region :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.release_region ``` ```` ````{py:method} get_memory() -> pyuvm._reg.uvm_mem.uvm_mem :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_memory :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_memory ``` ```` ````{py:method} get_virtual_registers() -> pyuvm._reg.uvm_vreg.uvm_vreg :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_virtual_registers :abstractmethod: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.get_virtual_registers ``` ```` ````{py:method} write(offset: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t, value: pyuvm._reg.uvm_reg_model.uvm_reg_data_t, path: pyuvm._reg.uvm_reg_model.uvm_door_e = uvm_door_e.UVM_DEFAULT_DOOR, map: pyuvm._reg.uvm_reg_map.uvm_reg_map = None, parent: pyuvm._s14_15_python_sequences.uvm_sequence_base = None, prior: int = -1, extension: pyuvm._s05_base_classes.uvm_object = None, fname: str = '', lineno: int = 0) -> pyuvm._reg.uvm_reg_model.uvm_status_e :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.write :abstractmethod: :async: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.write ``` ```` ````{py:method} read(offset: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t, path: pyuvm._reg.uvm_reg_model.uvm_door_e = uvm_door_e.UVM_DEFAULT_DOOR, map: pyuvm._reg.uvm_reg_map.uvm_reg_map = None, parent: pyuvm._s14_15_python_sequences.uvm_sequence_base = None, prior: int = -1, extension: pyuvm._s05_base_classes.uvm_object = None, fname: str = '', lineno: int = 0) -> tuple[pyuvm._reg.uvm_reg_model.uvm_status_e, pyuvm._reg.uvm_reg_model.uvm_reg_data_t] :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.read :abstractmethod: :async: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.read ``` ```` ````{py:method} burst_write(offset: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t, value: pyuvm._reg.uvm_reg_model.uvm_reg_data_t, path: pyuvm._reg.uvm_reg_model.uvm_door_e = uvm_door_e.UVM_DEFAULT_DOOR, map: pyuvm._reg.uvm_reg_map.uvm_reg_map = None, parent: pyuvm._s14_15_python_sequences.uvm_sequence_base = None, prior: int = -1, extension: pyuvm._s05_base_classes.uvm_object = None, fname: str = '', lineno: int = 0) -> pyuvm._reg.uvm_reg_model.uvm_status_e :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.burst_write :abstractmethod: :async: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.burst_write ``` ```` ````{py:method} burst_read(offset: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t, path: pyuvm._reg.uvm_reg_model.uvm_door_e = uvm_door_e.UVM_DEFAULT_DOOR, map: pyuvm._reg.uvm_reg_map.uvm_reg_map = None, parent: pyuvm._s14_15_python_sequences.uvm_sequence_base = None, prior: int = -1, extension: pyuvm._s05_base_classes.uvm_object = None, fname: str = '', lineno: int = 0) -> tuple[pyuvm._reg.uvm_reg_model.uvm_status_e, list[pyuvm._reg.uvm_reg_model.uvm_reg_data_t]] :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.burst_read :abstractmethod: :async: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.burst_read ``` ```` ````{py:method} poke(offset: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t, value: pyuvm._reg.uvm_reg_model.uvm_reg_data_t, parent: pyuvm._s14_15_python_sequences.uvm_sequence_base = None, extension: pyuvm._s05_base_classes.uvm_object = None, fname: str = '', lineno: int = 0) -> pyuvm._reg.uvm_reg_model.uvm_status_e :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.poke :abstractmethod: :async: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.poke ``` ```` ````{py:method} peek(offset: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t, parent: pyuvm._s14_15_python_sequences.uvm_sequence_base = None, extension: pyuvm._s05_base_classes.uvm_object = None, fname: str = '', lineno: int = 0) -> tuple[pyuvm._reg.uvm_reg_model.uvm_status_e, pyuvm._reg.uvm_reg_model.uvm_reg_data_t] :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_region.peek :abstractmethod: :async: ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_region.peek ``` ```` ````` `````{py:class} uvm_mem_mam_policy :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy Bases: {py:obj}`pyuvm._utility_classes.uvm_void` ````{py:attribute} len :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy.len :type: int :value: > None ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy.len ``` ```` ````{py:attribute} start_offset :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy.start_offset :type: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t :value: > None ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy.start_offset ``` ```` ````{py:attribute} min_offset :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy.min_offset :type: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t :value: > None ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy.min_offset ``` ```` ````{py:attribute} max_offset :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy.max_offset :type: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t :value: > None ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy.max_offset ``` ```` ````{py:attribute} in_use :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy.in_use :type: list[pyuvm._reg.uvm_mem_mam.uvm_mem_region] :value: > None ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam_policy.in_use ``` ```` ````` `````{py:class} uvm_mem_mam_cfg :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg Bases: {py:obj}`pyuvm._utility_classes.uvm_void` ````{py:attribute} n_bytes :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg.n_bytes :type: int :value: > None ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg.n_bytes ``` ```` ````{py:attribute} start_offset :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg.start_offset :type: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t :value: > None ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg.start_offset ``` ```` ````{py:attribute} end_offset :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg.end_offset :type: pyuvm._reg.uvm_reg_model.uvm_reg_addr_t :value: > None ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg.end_offset ``` ```` ````{py:attribute} mode :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg.mode :type: alloc_mode_e :value: > None ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg.mode ``` ```` ````{py:attribute} locality :canonical: pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg.locality :type: locality_e :value: > None ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.uvm_mem_mam_cfg.locality ``` ```` ````` `````{py:class} alloc_mode_e(*args, **kwds) :canonical: pyuvm._reg.uvm_mem_mam.alloc_mode_e Bases: {py:obj}`enum.Enum` ````{py:attribute} GREEDY :canonical: pyuvm._reg.uvm_mem_mam.alloc_mode_e.GREEDY :value: > 0 ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.alloc_mode_e.GREEDY ``` ```` ````{py:attribute} THRIFTY :canonical: pyuvm._reg.uvm_mem_mam.alloc_mode_e.THRIFTY :value: > 1 ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.alloc_mode_e.THRIFTY ``` ```` ````` `````{py:class} locality_e(*args, **kwds) :canonical: pyuvm._reg.uvm_mem_mam.locality_e Bases: {py:obj}`enum.Enum` ````{py:attribute} BROAD :canonical: pyuvm._reg.uvm_mem_mam.locality_e.BROAD :value: > 0 ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.locality_e.BROAD ``` ```` ````{py:attribute} NEARBY :canonical: pyuvm._reg.uvm_mem_mam.locality_e.NEARBY :value: > 1 ```{autodoc2-docstring} pyuvm._reg.uvm_mem_mam.locality_e.NEARBY ``` ```` `````