Blocks

class uvm.reg.uvm_reg_block.UVMRegBlock(name='', has_coverage=0)[source]

Bases: uvm.base.uvm_object.UVMObject

Block abstraction base class

A block represents a design hierarchy. It can contain registers, register files, memories and sub-blocks.

A block has one or more address maps, each corresponding to a physical interface on the block.

m_roots: Dict[uvm.reg.uvm_reg_block.UVMRegBlock, int] = {}
id = 0
configure(parent=None, hdl_path='')[source]
create_map(name: str, base_addr: int, n_bytes: int, endian: int, byte_addressing=True)Optional[uvm.reg.uvm_reg_map.UVMRegMap][source]
check_data_width(width: int)int[source]
set_default_map(_map: uvm.reg.uvm_reg_map.UVMRegMap)[source]
get_default_map()uvm.reg.uvm_reg_map.UVMRegMap[source]
set_parent(parent: uvm.reg.uvm_reg_block.UVMRegBlock)[source]
add_block(blk: uvm.reg.uvm_reg_block.UVMRegBlock)[source]
add_map(_map: uvm.reg.uvm_reg_map.UVMRegMap)[source]
add_reg(rg: uvm.reg.uvm_reg.UVMReg)[source]
add_vreg(vreg)[source]
add_mem(mem: uvm.reg.uvm_mem.UVMMem)[source]
lock_model()[source]
is_locked()[source]
get_full_name()str[source]

Objects possessing hierarchy, such as <uvm_components>, override the default implementation. Other objects might be associated with component hierarchy but are not themselves components. For example, <uvm_sequence #(REQ,RSP)> classes are typically associated with a <uvm_sequencer #(REQ,RSP)>. In this case, it is useful to override get_full_name to return the sequencer’s full name concatenated with the sequence’s name. This provides the sequence a full context, which is useful when debugging.

Returns

The full hierarchical name of this object. The default implementation is the same as <get_name>, as uvm_objects do not inherently possess hierarchy.

Return type

str

get_parent()Optional[uvm.reg.uvm_reg_block.UVMRegBlock][source]
get_root_blocks(blks)[source]
get_blocks(blks, hier=1)[source]
get_maps(maps)[source]
get_registers(regs, hier=1)[source]
get_memories(mems, hier=1)[source]
get_map_by_name(name)Optional[uvm.reg.uvm_reg_map.UVMRegMap][source]
get_reg_by_name(name)Optional[uvm.reg.uvm_reg.UVMReg][source]
build_coverage(models)[source]
add_coverage(models)[source]
has_coverage(models)[source]
set_coverage(is_on)[source]
get_coverage(is_on=- 1)[source]
sample(offset, is_read, _map)[source]
sample_values()[source]
XsampleX(addr, is_read, _map)[source]
get_default_path()[source]
reset(kind='HARD')[source]
needs_update()[source]
async update(status, path=3, parent=None, prior=- 1, extension=None, fname='', lineno=0)[source]
async mirror(status, check=0, path=3, parent=None, prior=- 1, extension=None, fname='', lineno=0)[source]
async write_reg_by_name(status, name, data, path=3, map=None, parent=None, prior=- 1, extension=None, fname='', lineno=0)[source]
get_backdoor(inherited=True)[source]
add_hdl_path(path, kind='RTL')[source]
has_hdl_path(kind='')[source]
get_full_hdl_path(paths, kind='', separator='.')[source]
set_default_hdl_path(kind: str)[source]
get_default_hdl_path()str[source]
set_hdl_path_root(path, kind='RTL')[source]
is_hdl_path_root(kind='')[source]
Xinit_address_mapsX()[source]