# uvm_reg_file

Register file abstraction base class

A register file is a collection of register files and registers used to create regular repeated structures.

Register files are usually instantiated as arrays.

Summary

uvm_reg_file
Register file abstraction base class
Class Hierarchy
uvm_void
uvm_object
uvm_reg_file
Class Declaration
> virtual class uvm_reg_file extends uvm_object
Initialization |
new | Create a new instance
configure | Configure a register file instance
Introspection |
get_name | Get the simple name
get_full_name | Get the hierarchical name
get_parent | Get the parent block
get_regfile | Get the parent register file
Backdoor |
clear_hdl_path | Delete HDL paths
add_hdl_path | Add an HDL path
has_hdl_path | Check if a HDL path is specified
get_hdl_path | Get the incremental HDL path(s)
get_full_hdl_path | Get the full hierarchical HDL path(s)
set_default_hdl_path | Set the default design abstraction
get_default_hdl_path | Get the default design abstraction

### Initialization

### new

> function new (
> | string | name | = | ""
> )

Create a new instance

Creates an instance of a register file abstraction class with the specified name.

### configure

> function void configure (
> | uvm_reg_block | blk_parent, |  |
> | uvm_reg_file | regfile_parent, |  |
> | string | hdl_path | = | ""
> )

Configure a register file instance

Specify the parent block and register file of the register file instance. If the register file is instantiated in a block, regfile_parent is specified as null. If the register file is instantiated in a register file, blk_parent must be the block parent of that register file and regfile_parent is specified as that register file.

If the register file corresponds to a hierarchical RTL structure, its contribution to the HDL path is specified as the hdl_path. Otherwise, the register file does not correspond to a hierarchical RTL structure (e.g. it is physically flattened) and does not contribute to the hierarchical HDL path of any contained registers.

### Introspection

### get_name

Get the simple name

Return the simple object name of this register file.

### get_full_name

> virtual function string get_full_name()

Get the hierarchical name

Return the hierarchal name of this register file. The base of the hierarchical name is the root block.

### get_parent

> virtual function uvm_reg_block get_parent ()

Get the parent block

### get_regfile

> virtual function uvm_reg_file get_regfile ()

Get the parent register file

Returns null if this register file is instantiated in a block.

### Backdoor

### clear_hdl_path

> function void clear_hdl_path (
> | string | kind | = | "RTL"
> )

Delete HDL paths

Remove any previously specified HDL path to the register file instance for the specified design abstraction.

### add_hdl_path

> function void add_hdl_path (
> | string | path, |  |
> | string | kind | = | "RTL"
> )

Add an HDL path

Add the specified HDL path to the register file instance for the specified design abstraction. This method may be called more than once for the same design abstraction if the register file is physically duplicated in the design abstraction

### has_hdl_path

> function bit has_hdl_path (
> | string | kind | = | ""
> )

Check if a HDL path is specified

Returns TRUE if the register file instance has a HDL path defined for the specified design abstraction. If no design abstraction is specified, uses the default design abstraction specified for the nearest enclosing register file or block

If no design abstraction is specified, the default design abstraction for this register file is used.

### get_hdl_path

> function void get_hdl_path (
> | ref | string | paths[$], |  |
> | input | string | kind | = | ""
> )

Get the incremental HDL path(s)

Returns the HDL path(s) defined for the specified design abstraction in the register file instance. If no design abstraction is specified, uses the default design abstraction specified for the nearest enclosing register file or block. Returns only the component of the HDL paths that corresponds to the register file, not a full hierarchical path

If no design abstraction is specified, the default design abstraction for this register file is used.

### get_full_hdl_path

> function void get_full_hdl_path (
> | ref | string | paths[$], |  |
> | input | string | kind | = | "",
> | input | string | separator | = | "."
> )

Get the full hierarchical HDL path(s)

Returns the full hierarchical HDL path(s) defined for the specified design abstraction in the register file instance. If no design abstraction is specified, uses the default design abstraction specified for the nearest enclosing register file or block. There may be more than one path returned even if only one path was defined for the register file instance, if any of the parent components have more than one path defined for the same design abstraction

If no design abstraction is specified, the default design abstraction for each ancestor register file or block is used to get each incremental path.

### set_default_hdl_path

> function void set_default_hdl_path (
> | string | kind
> )

Set the default design abstraction

Set the default design abstraction for this register file instance.

### get_default_hdl_path

> function string get_default_hdl_path ()

Get the default design abstraction

Returns the default design abstraction for this register file instance. If a default design abstraction has not been explicitly set for this register file instance, returns the default design abstraction for the nearest register file or block ancestor. Returns “” if no default design abstraction has been specified.

> virtual class uvm_void

The uvm_void class is the base class for all UVM classes.

> virtual class uvm_object extends uvm_void

The uvm_object class is the base class for all UVM data and hierarchical classes.

> virtual class uvm_reg_file extends uvm_object

Register file abstraction base class

> function new (
> | string | name | = | ""
> )

Create a new instance

> function void configure (
> | uvm_reg_block | blk_parent, |  |
> | uvm_reg_file | regfile_parent, |  |
> | string | hdl_path | = | ""
> )

Configure a register file instance

> virtual function string get_full_name()

Get the hierarchical name

> virtual function uvm_reg_block get_parent ()

Get the parent block

> virtual function uvm_reg_file get_regfile ()

Get the parent register file

> function void clear_hdl_path (
> | string | kind | = | "RTL"
> )

Delete HDL paths

> function void add_hdl_path (
> | string | path, |  |
> | string | kind | = | "RTL"
> )

Add an HDL path

> function bit has_hdl_path (
> | string | kind | = | ""
> )

Check if a HDL path is specified

> function void get_hdl_path (
> | ref | string | paths[$], |  |
> | input | string | kind | = | ""
> )

Get the incremental HDL path(s)

> function void get_full_hdl_path (
> | ref | string | paths[$], |  |
> | input | string | kind | = | "",
> | input | string | separator | = | "."
> )

Get the full hierarchical HDL path(s)

> function void set_default_hdl_path (
> | string | kind
> )

Set the default design abstraction

> function string get_default_hdl_path ()

Get the default design abstraction