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_reg_file
Class Declaration
virtual class uvm_reg_file extends uvm_object
Initialization
newCreate a new instance
configureConfigure a register file instance
Introspection
get_nameGet the simple name
get_full_nameGet the hierarchical name
get_parentGet the parent block
get_regfileGet the parent register file
Backdoor
clear_hdl_pathDelete HDL paths
add_hdl_pathAdd an HDL path
has_hdl_pathCheck if a HDL path is specified
get_hdl_pathGet the incremental HDL path(s)
get_full_hdl_pathGet the full hierarchical HDL path(s)
set_default_hdl_pathSet the default design abstraction
get_default_hdl_pathGet the default design abstraction

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.

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.

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