| <html><head><title>Virtual Registers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!-- |
| if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script> |
| |
| <!-- Generated by Natural Docs, version Development Release 01-12-2008 (1.35 base) --> |
| <!-- http://www.naturaldocs.org --> |
| |
| <!-- saved from url=(0026)http://www.naturaldocs.org --> |
| |
| |
| |
| |
| |
| |
| |
| |
| <!--TOP - START OF CONTENT--> |
| <div id=Content> |
| |
| |
| <!--CONTENT index=0 --> |
| <div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Virtual_Registers" href="../../src/reg/uvm_vreg.svh">Virtual Registers</a></h1><div class=CBody><p>A virtual register is a collection of fields, overlaid on top of a memory, usually in an array. The semantics and layout of virtual registers comes from an agreement between the software and the hardware, not any physical structures in the DUT.</p> |
| |
| <!--START_ND_SUMMARY index=0--> |
| <div class=Summary><div class=STitle>Contents</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=0 --> |
| |
| <tr class="SMain"><td class=SEntry><a href="#Virtual_Registers" >Virtual Registers</a></td><td class=SDescription>A virtual register is a collection of fields, overlaid on top of a memory, usually in an array. </td></tr> |
| <!-- index=1 --> |
| |
| <tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_vreg" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_vreg</a></td><td class=SDescription>Virtual register abstraction base class</td></tr> |
| <!-- index=38 --> |
| |
| <tr class="SSMethod"><td class=SEntry><a href="#uvm_vreg_cbs" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">uvm_vreg_cbs</a></td><td class=SDescription>Pre/post read/write callback facade class</td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=1 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_vreg" href="../../src/reg/uvm_vreg.svh">uvm_vreg</a></h2><div class=CBody><p>Virtual register abstraction base class</p><p>A virtual register represents a set of fields that are logically implemented in consecutive memory locations.</p><p>All virtual register accesses eventually turn into memory accesses.</p><p>A virtual register array may be implemented on top of any memory abstraction class and possibly dynamically resized and/or relocated.</p> |
| |
| <!--START_ND_SUMMARY index=1--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=1 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_vreg" id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">uvm_vreg</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>Virtual register abstraction base class</td></tr> |
| |
| <!-- HIERARCHY --> |
| <tr class="SHierarchy SIndent1 "><td colspan=2 class="SEntry SIndent1">Class Hierarchy</td></tr> |
| <tr class="SPrototype SIndent1"><td colspan=2 class=SDescription> |
| <div class=ClassHierarchy> |
| <table border=0 cellspacing=0 cellpadding=0> |
| <tr><td><div class=CHParent><div class=CHEntry><a href="../base/uvm_misc-svh.html#uvm_void" class=LGeneric id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">uvm_void</a></div></div></td></tr> |
| <tr><td><div class=CHParent><div class=CHEntry><a href="../base/uvm_object-svh.html#uvm_object" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">uvm_object</a></div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_vreg</div></div></td></tr> |
| </table> |
| </div> |
| </td></tr> |
| |
| |
| |
| <!-- PROTOTYPE --> |
| <tr class="SPrototype SIndent1"><td colspan=2 class="SEntry SIndent1">Class Declaration</td></tr> |
| <tr class="SPrototype SIndent1"><td colspan=2 class=SDescription> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_vreg extends uvm_object |
| </td></tr></table></blockquote></td></tr> |
| |
| <!-- index=2 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_vreg.Initialization" >Initialization</a></td><td class=SDescription></td></tr> |
| <!-- index=3 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.new" id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">new</a></td><td class=SDescription>Create a new instance and type-specific configuration</td></tr> |
| <!-- index=4 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.configure" id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">configure</a></td><td class=SDescription>Instance-specific configuration</td></tr> |
| <!-- index=5 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.implement" id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">implement</a></td><td class=SDescription>Dynamically implement, resize or relocate a virtual register array</td></tr> |
| <!-- index=6 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.allocate" id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">allocate</a></td><td class=SDescription>Randomly implement, resize or relocate a virtual register array</td></tr> |
| <!-- index=7 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.get_region" id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">get_region</a></td><td class=SDescription>Get the region where the virtual register array is implemented</td></tr> |
| <!-- index=8 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.release_region" id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMouseOut="HideTip('tt10')">release_region</a></td><td class=SDescription>Dynamically un-implement a virtual register array</td></tr> |
| <!-- index=9 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_vreg.Introspection" >Introspection</a></td><td class=SDescription></td></tr> |
| <!-- index=10 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.get_name" >get_name</a></td><td class=SDescription>Get the simple name</td></tr> |
| <!-- index=11 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.get_full_name" id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">get_full_name</a></td><td class=SDescription>Get the hierarchical name</td></tr> |
| <!-- index=12 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.get_parent" id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">get_parent</a></td><td class=SDescription>Get the parent block</td></tr> |
| <!-- index=13 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.get_memory" id=link14 onMouseOver="ShowTip(event, 'tt13', 'link14')" onMouseOut="HideTip('tt13')">get_memory</a></td><td class=SDescription>Get the memory where the virtual regoster array is implemented</td></tr> |
| <!-- index=14 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.get_n_maps" id=link15 onMouseOver="ShowTip(event, 'tt14', 'link15')" onMouseOut="HideTip('tt14')">get_n_maps</a></td><td class=SDescription>Returns the number of address maps this virtual register array is mapped in</td></tr> |
| <!-- index=15 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.is_in_map" id=link16 onMouseOver="ShowTip(event, 'tt15', 'link16')" onMouseOut="HideTip('tt15')">is_in_map</a></td><td class=SDescription>Return TRUE if this virtual register array is in the specified address <i>map</i></td></tr> |
| <!-- index=16 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.get_maps" id=link17 onMouseOver="ShowTip(event, 'tt16', 'link17')" onMouseOut="HideTip('tt16')">get_maps</a></td><td class=SDescription>Returns all of the address <i>maps</i> where this virtual register array is mapped</td></tr> |
| <!-- index=17 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.get_rights" id=link18 onMouseOver="ShowTip(event, 'tt17', 'link18')" onMouseOut="HideTip('tt17')">get_rights</a></td><td class=SDescription>Returns the access rights of this virtual reigster array</td></tr> |
| <!-- index=18 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.get_access" id=link19 onMouseOver="ShowTip(event, 'tt18', 'link19')" onMouseOut="HideTip('tt18')">get_access</a></td><td class=SDescription>Returns the access policy of the virtual register array when written and read via an address map.</td></tr> |
| <!-- index=19 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.get_size" id=link20 onMouseOver="ShowTip(event, 'tt19', 'link20')" onMouseOut="HideTip('tt19')">get_size</a></td><td class=SDescription>Returns the size of the virtual register array.</td></tr> |
| <!-- index=20 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.get_n_bytes" id=link21 onMouseOver="ShowTip(event, 'tt20', 'link21')" onMouseOut="HideTip('tt20')">get_n_bytes</a></td><td class=SDescription>Returns the width, in bytes, of a virtual register.</td></tr> |
| <!-- index=21 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.get_n_memlocs" id=link22 onMouseOver="ShowTip(event, 'tt21', 'link22')" onMouseOut="HideTip('tt21')">get_n_memlocs</a></td><td class=SDescription>Returns the number of memory locations used by a single virtual register.</td></tr> |
| <!-- index=22 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.get_incr" id=link23 onMouseOver="ShowTip(event, 'tt22', 'link23')" onMouseOut="HideTip('tt22')">get_incr</a></td><td class=SDescription>Returns the number of memory locations between two individual virtual registers in the same array.</td></tr> |
| <!-- index=23 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.get_fields" id=link24 onMouseOver="ShowTip(event, 'tt23', 'link24')" onMouseOut="HideTip('tt23')">get_fields</a></td><td class=SDescription>Return the virtual fields in this virtual register</td></tr> |
| <!-- index=24 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.get_field_by_name" id=link25 onMouseOver="ShowTip(event, 'tt24', 'link25')" onMouseOut="HideTip('tt24')">get_field_by_name</a></td><td class=SDescription>Return the named virtual field in this virtual register</td></tr> |
| <!-- index=25 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.get_offset_in_memory" id=link26 onMouseOver="ShowTip(event, 'tt25', 'link26')" onMouseOut="HideTip('tt25')">get_offset_in_memory</a></td><td class=SDescription>Returns the offset of a virtual register</td></tr> |
| <!-- index=26 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.get_address" id=link27 onMouseOver="ShowTip(event, 'tt26', 'link27')" onMouseOut="HideTip('tt26')">get_address</a></td><td class=SDescription>Returns the base external physical address of a virtual register</td></tr> |
| <!-- index=27 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_vreg.HDL_Access" >HDL Access</a></td><td class=SDescription></td></tr> |
| <!-- index=28 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.write" id=link28 onMouseOver="ShowTip(event, 'tt27', 'link28')" onMouseOut="HideTip('tt27')">write</a></td><td class=SDescription>Write the specified value in a virtual register</td></tr> |
| <!-- index=29 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.read" id=link29 onMouseOver="ShowTip(event, 'tt28', 'link29')" onMouseOut="HideTip('tt28')">read</a></td><td class=SDescription>Read the current value from a virtual register</td></tr> |
| <!-- index=30 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.poke" id=link30 onMouseOver="ShowTip(event, 'tt29', 'link30')" onMouseOut="HideTip('tt29')">poke</a></td><td class=SDescription>Deposit the specified value in a virtual register</td></tr> |
| <!-- index=31 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.peek" id=link31 onMouseOver="ShowTip(event, 'tt30', 'link31')" onMouseOut="HideTip('tt30')">peek</a></td><td class=SDescription>Sample the current value in a virtual register</td></tr> |
| <!-- index=32 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.reset" id=link32 onMouseOver="ShowTip(event, 'tt31', 'link32')" onMouseOut="HideTip('tt31')">reset</a></td><td class=SDescription>Reset the access semaphore</td></tr> |
| <!-- index=33 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_vreg.Callbacks" >Callbacks</a></td><td class=SDescription></td></tr> |
| <!-- index=34 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.pre_write" id=link33 onMouseOver="ShowTip(event, 'tt32', 'link33')" onMouseOut="HideTip('tt32')">pre_write</a></td><td class=SDescription>Called before virtual register write.</td></tr> |
| <!-- index=35 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.post_write" id=link34 onMouseOver="ShowTip(event, 'tt33', 'link34')" onMouseOut="HideTip('tt33')">post_write</a></td><td class=SDescription>Called after virtual register write.</td></tr> |
| <!-- index=36 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg.pre_read" id=link35 onMouseOver="ShowTip(event, 'tt34', 'link35')" onMouseOut="HideTip('tt34')">pre_read</a></td><td class=SDescription>Called before virtual register read.</td></tr> |
| <!-- index=37 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg.post_read" id=link36 onMouseOver="ShowTip(event, 'tt35', 'link36')" onMouseOut="HideTip('tt35')">post_read</a></td><td class=SDescription>Called after virtual register read.</td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=2 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.Initialization" href="../../src/reg/uvm_vreg.svh">Initialization</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=3 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.new" href="../../src/reg/uvm_vreg.svh">new</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>function new(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>int </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>n_bits</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Create a new instance and type-specific configuration</p><p>Creates an instance of a virtual register abstraction class with the specified name.</p><p><i>n_bits</i> specifies the total number of bits in a virtual register. Not all bits need to be mapped to a virtual field. This value is usually a multiple of 8.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=4 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.configure" href="../../src/reg/uvm_vreg.svh">configure</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>function void configure(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_block </td> |
| <td class=PParameter nowrap>parent,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_mem </td> |
| <td class=PParameter nowrap>mem</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>size</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_addr_t </td> |
| <td class=PParameter nowrap>offset</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>int </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>incr</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Instance-specific configuration</p><p>Specify the <i>parent</i> block of this virtual register array. If one of the other parameters are specified, the virtual register is assumed to be dynamic and can be later (re-)implemented using the <a href="#uvm_vreg.implement" class=LMethod id=link37 onMouseOver="ShowTip(event, 'tt7', 'link37')" onMouseOut="HideTip('tt7')">uvm_vreg::implement()</a> method.</p><p>If <i>mem</i> is specified, then the virtual register array is assumed to be statically implemented in the memory corresponding to the specified memory abstraction class and <i>size</i>, <i>offset</i> and <i>incr</i> must also be specified. Static virtual register arrays cannot be re-implemented.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=5 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.implement" href="../../src/reg/uvm_vreg.svh">implement</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function bit implement(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>n,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_mem </td> |
| <td class=PParameter nowrap>mem</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_addr_t </td> |
| <td class=PParameter nowrap>offset</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>int </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>incr</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Dynamically implement, resize or relocate a virtual register array</p><p>Implement an array of virtual registers of the specified <i>size</i>, in the specified memory and <i>offset</i>. If an offset increment is specified, each virtual register is implemented at the specified offset increment from the previous one. If an offset increment of 0 is specified, virtual registers are packed as closely as possible in the memory.</p><p>If no memory is specified, the virtual register array is in the same memory, at the same base offset using the same offset increment as originally implemented. Only the number of virtual registers in the virtual register array is modified.</p><p>The initial value of the newly-implemented or relocated set of virtual registers is whatever values are currently stored in the memory now implementing them.</p><p>Returns TRUE if the memory can implement the number of virtual registers at the specified base offset and offset increment. Returns FALSE otherwise.</p><p>The memory region used to implement a virtual register array is reserved in the memory allocation manager associated with the memory to prevent it from being allocated for another purpose.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=6 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.allocate" href="../../src/reg/uvm_vreg.svh">allocate</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function uvm_mem_region allocate(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>n,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_mem_mam </td> |
| <td class=PParameter nowrap>mam</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Randomly implement, resize or relocate a virtual register array</p><p>Implement a virtual register array of the specified size in a randomly allocated region of the appropriate size in the address space managed by the specified memory allocation manager.</p><p>The initial value of the newly-implemented or relocated set of virtual registers is whatever values are currently stored in the memory region now implementing them.</p><p>Returns a reference to a <a href="uvm_mem_mam-svh.html#uvm_mem_region" class=LClass id=link38 onMouseOver="ShowTip(event, 'tt36', 'link38')" onMouseOut="HideTip('tt36')">uvm_mem_region</a> memory region descriptor if the memory allocation manager was able to allocate a region that can implement the virtual register array. Returns <i>null</i> otherwise.</p><p>A region implementing a virtual register array must not be released using the <a href="uvm_mem_mam-svh.html#uvm_mem_mam.release_region" class=LMethod id=link39 onMouseOver="ShowTip(event, 'tt37', 'link39')" onMouseOut="HideTip('tt37')">uvm_mem_mam::release_region()</a> method. It must be released using the <a href="#uvm_vreg.release_region" class=LMethod id=link40 onMouseOver="ShowTip(event, 'tt10', 'link40')" onMouseOut="HideTip('tt10')">uvm_vreg::release_region()</a> method.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=7 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_region" href="../../src/reg/uvm_vreg.svh">get_region</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_mem_region get_region() |
| </td></tr></table></blockquote><div class=CBody><p>Get the region where the virtual register array is implemented</p><p>Returns a reference to the <a href="uvm_mem_mam-svh.html#uvm_mem_region" class=LClass id=link41 onMouseOver="ShowTip(event, 'tt36', 'link41')" onMouseOut="HideTip('tt36')">uvm_mem_region</a> memory region descriptor that implements the virtual register array.</p><p>Returns <i>null</i> if the virtual registers array is not currently implemented. A region implementing a virtual register array must not be released using the <a href="uvm_mem_mam-svh.html#uvm_mem_mam.release_region" class=LMethod id=link42 onMouseOver="ShowTip(event, 'tt37', 'link42')" onMouseOut="HideTip('tt37')">uvm_mem_mam::release_region()</a> method. It must be released using the <a href="#uvm_vreg.release_region" class=LMethod id=link43 onMouseOver="ShowTip(event, 'tt10', 'link43')" onMouseOut="HideTip('tt10')">uvm_vreg::release_region()</a> method.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=8 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.release_region" href="../../src/reg/uvm_vreg.svh">release_region</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function void release_region() |
| </td></tr></table></blockquote><div class=CBody><p>Dynamically un-implement a virtual register array</p><p>Release the memory region used to implement a virtual register array and return it to the pool of available memory that can be allocated by the memory’s default allocation manager. The virtual register array is subsequently considered as unimplemented and can no longer be accessed.</p><p>Statically-implemented virtual registers cannot be released.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=9 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.Introspection" href="../../src/reg/uvm_vreg.svh">Introspection</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=10 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_name" href="../../src/reg/uvm_vreg.svh">get_name</a></h3><div class=CBody><p>Get the simple name</p><p>Return the simple object name of this register.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=11 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_full_name" href="../../src/reg/uvm_vreg.svh">get_full_name</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_full_name() |
| </td></tr></table></blockquote><div class=CBody><p>Get the hierarchical name</p><p>Return the hierarchal name of this register. The base of the hierarchical name is the root block.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=12 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_parent" href="../../src/reg/uvm_vreg.svh">get_parent</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_reg_block get_parent() |
| </td></tr></table></blockquote><div class=CBody><p>Get the parent block</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=13 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_memory" href="../../src/reg/uvm_vreg.svh">get_memory</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_mem get_memory() |
| </td></tr></table></blockquote><div class=CBody><p>Get the memory where the virtual regoster array is implemented</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=14 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_n_maps" href="../../src/reg/uvm_vreg.svh">get_n_maps</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int get_n_maps () |
| </td></tr></table></blockquote><div class=CBody><p>Returns the number of address maps this virtual register array is mapped in</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=15 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.is_in_map" href="../../src/reg/uvm_vreg.svh">is_in_map</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>function bit is_in_map (</td> <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Return TRUE if this virtual register array is in the specified address <i>map</i></p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=16 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_maps" href="../../src/reg/uvm_vreg.svh">get_maps</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function void get_maps (</td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>maps[$]</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Returns all of the address <i>maps</i> where this virtual register array is mapped</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=17 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_rights" href="../../src/reg/uvm_vreg.svh">get_rights</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function string get_rights(</td> <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Returns the access rights of this virtual reigster array</p><p>Returns “RW”, “RO” or “WO”. The access rights of a virtual register array is always “RW”, unless it is implemented in a shared memory with access restriction in a particular address map.</p><p>If no address map is specified and the memory is mapped in only one address map, that address map is used. If the memory is mapped in more than one address map, the default address map of the parent block is used.</p><p>If an address map is specified and the memory is not mapped in the specified address map, an error message is issued and “RW” is returned.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=18 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_access" href="../../src/reg/uvm_vreg.svh">get_access</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function string get_access(</td> <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Returns the access policy of the virtual register array when written and read via an address map.</p><p>If the memory implementing the virtual register array is mapped in more than one address map, an address <i>map</i> must be specified. If access restrictions are present when accessing a memory through the specified address map, the access mode returned takes the access restrictions into account. For example, a read-write memory accessed through an address map with read-only restrictions would return “RO”.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=19 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_size" href="../../src/reg/uvm_vreg.svh">get_size</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int unsigned get_size() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the size of the virtual register array.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=20 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_n_bytes" href="../../src/reg/uvm_vreg.svh">get_n_bytes</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int unsigned get_n_bytes() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the width, in bytes, of a virtual register.</p><p>The width of a virtual register is always a multiple of the width of the memory locations used to implement it. For example, a virtual register containing two 1-byte fields implemented in a memory with 4-bytes memory locations is 4-byte wide.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=21 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_n_memlocs" href="../../src/reg/uvm_vreg.svh">get_n_memlocs</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int unsigned get_n_memlocs() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the number of memory locations used by a single virtual register.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=22 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_incr" href="../../src/reg/uvm_vreg.svh">get_incr</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int unsigned get_incr() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the number of memory locations between two individual virtual registers in the same array.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=23 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_fields" href="../../src/reg/uvm_vreg.svh">get_fields</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function void get_fields(</td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_vreg_field </td> |
| <td class=PParameter nowrap>fields[$]</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Return the virtual fields in this virtual register</p><p>Fills the specified array with the abstraction class for all of the virtual fields contained in this virtual register. Fields are ordered from least-significant position to most-significant position within the register.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=24 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_field_by_name" href="../../src/reg/uvm_vreg.svh">get_field_by_name</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function uvm_vreg_field get_field_by_name(</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Return the named virtual field in this virtual register</p><p>Finds a virtual field with the specified name in this virtual register and returns its abstraction class. If no fields are found, returns null.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=25 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_offset_in_memory" href="../../src/reg/uvm_vreg.svh">get_offset_in_memory</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function uvm_reg_addr_t get_offset_in_memory(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Returns the offset of a virtual register</p><p>Returns the base offset of the specified virtual register, in the overall address space of the memory that implements the virtual register array.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=26 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.get_address" href="../../src/reg/uvm_vreg.svh">get_address</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function uvm_reg_addr_t get_address(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Returns the base external physical address of a virtual register</p><p>Returns the base external physical address of the specified virtual reigster if accessed through the specified address <i>map</i>.</p><p>If no address map is specified and the memory implementing the virtual register array is mapped in only one address map, that address map is used. If the memory is mapped in more than one address map, the default address map of the parent block is used.</p><p>If an address map is specified and the memory is not mapped in the specified address map, an error message is issued.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=27 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.HDL_Access" href="../../src/reg/uvm_vreg.svh">HDL Access</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=28 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.write" href="../../src/reg/uvm_vreg.svh">write</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task write(</td> <td class=PTypePrefix nowrap>input longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>value,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> UVM_DEFAULT_PATH,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_sequence_base </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>extension</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>fname</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> "",</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>lineno</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Write the specified value in a virtual register</p><p>Write <i>value</i> in the DUT memory location(s) that implements the virtual register array that corresponds to this abstraction class instance using the specified access <i>path</i>.</p><p>If the memory implementing the virtual register array is mapped in more than one address map, an address <i>map</i> must be specified if a physical access is used (front-door access).</p><p>The operation is eventually mapped into set of memory-write operations at the location where the virtual register specified by <i>idx</i> in the virtual register array is implemented.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=29 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.read" href="../../src/reg/uvm_vreg.svh">read</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task read(</td> <td class=PTypePrefix nowrap>input longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>value,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> UVM_DEFAULT_PATH,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_sequence_base </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>extension</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>fname</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> "",</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>lineno</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Read the current value from a virtual register</p><p>Read from the DUT memory location(s) that implements the virtual register array that corresponds to this abstraction class instance using the specified access <i>path</i> and return the readback <i>value</i>.</p><p>If the memory implementing the virtual register array is mapped in more than one address map, an address <i>map</i> must be specified if a physical access is used (front-door access).</p><p>The operation is eventually mapped into set of memory-read operations at the location where the virtual register specified by <i>idx</i> in the virtual register array is implemented.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=30 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.poke" href="../../src/reg/uvm_vreg.svh">poke</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task poke(</td> <td class=PTypePrefix nowrap>input longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>value,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_sequence_base </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>extension</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>fname</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> "",</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>lineno</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Deposit the specified value in a virtual register</p><p>Deposit <i>value</i> in the DUT memory location(s) that implements the virtual register array that corresponds to this abstraction class instance using the memory backdoor access.</p><p>The operation is eventually mapped into set of memory-poke operations at the location where the virtual register specified by <i>idx</i> in the virtual register array is implemented.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=31 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.peek" href="../../src/reg/uvm_vreg.svh">peek</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task peek(</td> <td class=PTypePrefix nowrap>input longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>value,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_sequence_base </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>extension</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>fname</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> "",</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>lineno</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Sample the current value in a virtual register</p><p>Sample the DUT memory location(s) that implements the virtual register array that corresponds to this abstraction class instance using the memory backdoor access, and return the sampled <i>value</i>.</p><p>The operation is eventually mapped into set of memory-peek operations at the location where the virtual register specified by <i>idx</i> in the virtual register array is implemented.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=32 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.reset" href="../../src/reg/uvm_vreg.svh">reset</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>function void reset(</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>kind</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> "HARD"</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Reset the access semaphore</p><p>Reset the semaphore that prevents concurrent access to the virtual register. This semaphore must be explicitly reset if a thread accessing this virtual register array was killed in before the access was completed</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=33 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.Callbacks" href="../../src/reg/uvm_vreg.svh">Callbacks</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=34 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.pre_write" href="../../src/reg/uvm_vreg.svh">pre_write</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task pre_write(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>wdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Called before virtual register write.</p><p>If the specified data value, access <i>path</i> or address <i>map</i> are modified, the updated data value, access path or address map will be used to perform the virtual register operation.</p><p>The registered callback methods are invoked after the invocation of this method. All register callbacks are executed after the corresponding field callbacks The pre-write virtual register and field callbacks are executed before the corresponding pre-write memory callbacks</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=35 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.post_write" href="../../src/reg/uvm_vreg.svh">post_write</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task post_write(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>wdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Called after virtual register write.</p><p>If the specified <i>status</i> is modified, the updated status will be returned by the virtual register operation.</p><p>The registered callback methods are invoked before the invocation of this method. All register callbacks are executed before the corresponding field callbacks The post-write virtual register and field callbacks are executed after the corresponding post-write memory callbacks</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=36 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.pre_read" href="../../src/reg/uvm_vreg.svh">pre_read</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task pre_read(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Called before virtual register read.</p><p>If the specified access <i>path</i> or address <i>map</i> are modified, the updated access path or address map will be used to perform the register operation.</p><p>The registered callback methods are invoked after the invocation of this method. All register callbacks are executed after the corresponding field callbacks The pre-read virtual register and field callbacks are executed before the corresponding pre-read memory callbacks</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=37 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg.post_read" href="../../src/reg/uvm_vreg.svh">post_read</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task post_read(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>rdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Called after virtual register read.</p><p>If the specified readback data or <i>status</i> is modified, the updated readback data or status will be returned by the register operation.</p><p>The registered callback methods are invoked before the invocation of this method. All register callbacks are executed before the corresponding field callbacks The post-read virtual register and field callbacks are executed after the corresponding post-read memory callbacks</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=38 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_vreg_cbs" href="../../src/reg/uvm_vreg.svh">uvm_vreg_cbs</a></h2><div class=CBody><p>Pre/post read/write callback facade class</p> |
| |
| <!--START_ND_SUMMARY index=38--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=38 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_vreg_cbs" id=link47 onMouseOver="ShowTip(event, 'tt2', 'link47')" onMouseOut="HideTip('tt2')">uvm_vreg_cbs</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>Pre/post read/write callback facade class</td></tr> |
| |
| <!-- HIERARCHY --> |
| <tr class="SHierarchy SIndent1 "><td colspan=2 class="SEntry SIndent1">Class Hierarchy</td></tr> |
| <tr class="SPrototype SIndent1"><td colspan=2 class=SDescription> |
| <div class=ClassHierarchy> |
| <table border=0 cellspacing=0 cellpadding=0> |
| <tr><td><div class=CHParent><div class=CHEntry><a href="../base/uvm_misc-svh.html#uvm_void" class=LGeneric id=link44 onMouseOver="ShowTip(event, 'tt3', 'link44')" onMouseOut="HideTip('tt3')">uvm_void</a></div></div></td></tr> |
| <tr><td><div class=CHParent><div class=CHEntry><a href="../base/uvm_object-svh.html#uvm_object" class=LClass id=link45 onMouseOver="ShowTip(event, 'tt4', 'link45')" onMouseOut="HideTip('tt4')">uvm_object</a></div></div></td></tr> |
| <tr><td><div class=CHParent><div class=CHEntry><a href="../base/uvm_callback-svh.html#uvm_callback" class=LClass id=link46 onMouseOver="ShowTip(event, 'tt38', 'link46')" onMouseOut="HideTip('tt38')">uvm_callback</a></div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_vreg_cbs</div></div></td></tr> |
| </table> |
| </div> |
| </td></tr> |
| |
| |
| |
| <!-- PROTOTYPE --> |
| <tr class="SPrototype SIndent1"><td colspan=2 class="SEntry SIndent1">Class Declaration</td></tr> |
| <tr class="SPrototype SIndent1"><td colspan=2 class=SDescription> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_vreg_cbs extends uvm_callback |
| </td></tr></table></blockquote></td></tr> |
| |
| <!-- index=39 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_vreg_cbs.Methods" >Methods</a></td><td class=SDescription></td></tr> |
| <!-- index=40 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg_cbs.pre_write" id=link48 onMouseOver="ShowTip(event, 'tt39', 'link48')" onMouseOut="HideTip('tt39')">pre_write</a></td><td class=SDescription>Callback called before a write operation.</td></tr> |
| <!-- index=41 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg_cbs.post_write" id=link49 onMouseOver="ShowTip(event, 'tt40', 'link49')" onMouseOut="HideTip('tt40')">post_write</a></td><td class=SDescription>Called after register write.</td></tr> |
| <!-- index=42 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_vreg_cbs.pre_read" id=link50 onMouseOver="ShowTip(event, 'tt41', 'link50')" onMouseOut="HideTip('tt41')">pre_read</a></td><td class=SDescription>Called before register read.</td></tr> |
| <!-- index=43 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg_cbs.post_read" id=link51 onMouseOver="ShowTip(event, 'tt42', 'link51')" onMouseOut="HideTip('tt42')">post_read</a></td><td class=SDescription>Called after register read.</td></tr> |
| <!-- index=44 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_vreg_cbs.Types" >Types</a></td><td class=SDescription></td></tr> |
| <!-- index=45 --> |
| |
| <tr class="SType SIndent2"><td class=SEntry><a href="#uvm_vreg_cbs.uvm_vreg_cb" >uvm_vreg_cb</a></td><td class=SDescription>Convenience callback type declaration</td></tr> |
| <!-- index=46 --> |
| |
| <tr class="SType SIndent2 SMarked"><td class=SEntry><a href="#uvm_vreg_cbs.uvm_vreg_cb_iter" >uvm_vreg_cb_iter</a></td><td class=SDescription>Convenience callback iterator type declaration</td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=39 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg_cbs.Methods" href="../../src/reg/uvm_vreg.svh">Methods</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=40 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg_cbs.pre_write" href="../../src/reg/uvm_vreg.svh">pre_write</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task pre_write(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_vreg </td> |
| <td class=PParameter nowrap>rg,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>wdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Callback called before a write operation.</p><p>The registered callback methods are invoked after the invocation of the <a href="#uvm_vreg.pre_write" class=LMethod id=link52 onMouseOver="ShowTip(event, 'tt32', 'link52')" onMouseOut="HideTip('tt32')">uvm_vreg::pre_write()</a> method. All virtual register callbacks are executed after the corresponding virtual field callbacks The pre-write virtual register and field callbacks are executed before the corresponding pre-write memory callbacks</p><p>The written value <i>wdat</i>, access <i>path</i> and address <i>map</i>, if modified, modifies the actual value, access path or address map used in the virtual register operation.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=41 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg_cbs.post_write" href="../../src/reg/uvm_vreg.svh">post_write</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task post_write(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_vreg </td> |
| <td class=PParameter nowrap>rg,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>wdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Called after register write.</p><p>The registered callback methods are invoked before the invocation of the <a href="uvm_reg-svh.html#uvm_reg.post_write" class=LMethod id=link53 onMouseOver="ShowTip(event, 'tt43', 'link53')" onMouseOut="HideTip('tt43')">uvm_reg::post_write()</a> method. All register callbacks are executed before the corresponding virtual field callbacks The post-write virtual register and field callbacks are executed after the corresponding post-write memory callbacks</p><p>The <i>status</i> of the operation, if modified, modifies the actual returned status.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=42 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg_cbs.pre_read" href="../../src/reg/uvm_vreg.svh">pre_read</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task pre_read(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_vreg </td> |
| <td class=PParameter nowrap>rg,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Called before register read.</p><p>The registered callback methods are invoked after the invocation of the <a href="uvm_reg-svh.html#uvm_reg.pre_read" class=LMethod id=link54 onMouseOver="ShowTip(event, 'tt44', 'link54')" onMouseOut="HideTip('tt44')">uvm_reg::pre_read()</a> method. All register callbacks are executed after the corresponding virtual field callbacks The pre-read virtual register and field callbacks are executed before the corresponding pre-read memory callbacks</p><p>The access <i>path</i> and address <i>map</i>, if modified, modifies the actual access path or address map used in the register operation.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=43 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg_cbs.post_read" href="../../src/reg/uvm_vreg.svh">post_read</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task post_read(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_vreg </td> |
| <td class=PParameter nowrap>rg,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>rdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Called after register read.</p><p>The registered callback methods are invoked before the invocation of the <a href="uvm_reg-svh.html#uvm_reg.post_read" class=LMethod id=link55 onMouseOver="ShowTip(event, 'tt45', 'link55')" onMouseOut="HideTip('tt45')">uvm_reg::post_read()</a> method. All register callbacks are executed before the corresponding virtual field callbacks The post-read virtual register and field callbacks are executed after the corresponding post-read memory callbacks</p><p>The readback value <i>rdat</i> and the <i>status</i> of the operation, if modified, modifies the actual returned readback value and status.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=44 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg_cbs.Types" href="../../src/reg/uvm_vreg.svh">Types</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=45 --> |
| <div class="CType"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg_cbs.uvm_vreg_cb" href="../../src/reg/uvm_vreg.svh">uvm_vreg_cb</a></h3><div class=CBody><p>Convenience callback type declaration</p><p>Use this declaration to register virtual register callbacks rather than the more verbose parameterized class</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=46 --> |
| <div class="CType"><div class=CTopic><h3 class=CTitle><a name="uvm_vreg_cbs.uvm_vreg_cb_iter" href="../../src/reg/uvm_vreg.svh">uvm_vreg_cb_iter</a></h3><div class=CBody><p>Convenience callback iterator type declaration</p><p>Use this declaration to iterate over registered virtual register callbacks rather than the more verbose parameterized class</p></div></div></div> |
| |
| </div><!--Content--> |
| |
| |
| |
| <!--START_ND_TOOLTIPS--> |
| <div class=CToolTip id="tt1"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_vreg extends uvm_object |
| </td></tr></table></blockquote>Virtual register abstraction base class</div></div><div class=CToolTip id="tt2"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_vreg_cbs extends uvm_callback |
| </td></tr></table></blockquote>Pre/post read/write callback facade class</div></div><div class=CToolTip id="tt3"><div class=CGeneric>The <i>uvm_void</i> class is the base class for all UVM classes. </div></div><div class=CToolTip id="tt4"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_object extends uvm_void |
| </td></tr></table></blockquote>The uvm_object class is the base class for all UVM data and hierarchical classes. </div></div><div class=CToolTip id="tt5"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>function new(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>int </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>n_bits</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Create a new instance and type-specific configuration</div></div><div class=CToolTip id="tt6"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>function void configure(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_block </td> |
| <td class=PParameter nowrap>parent,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_mem </td> |
| <td class=PParameter nowrap>mem</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>size</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_addr_t </td> |
| <td class=PParameter nowrap>offset</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>int </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>incr</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Instance-specific configuration</div></div><div class=CToolTip id="tt7"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function bit implement(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>n,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_mem </td> |
| <td class=PParameter nowrap>mem</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_addr_t </td> |
| <td class=PParameter nowrap>offset</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>int </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>incr</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Dynamically implement, resize or relocate a virtual register array</div></div><div class=CToolTip id="tt8"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function uvm_mem_region allocate(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>n,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_mem_mam </td> |
| <td class=PParameter nowrap>mam</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Randomly implement, resize or relocate a virtual register array</div></div><div class=CToolTip id="tt9"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_mem_region get_region() |
| </td></tr></table></blockquote>Get the region where the virtual register array is implemented</div></div><div class=CToolTip id="tt10"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function void release_region() |
| </td></tr></table></blockquote>Dynamically un-implement a virtual register array</div></div><div class=CToolTip id="tt11"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_full_name() |
| </td></tr></table></blockquote>Get the hierarchical name</div></div><div class=CToolTip id="tt12"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_reg_block get_parent() |
| </td></tr></table></blockquote>Get the parent block</div></div><div class=CToolTip id="tt13"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_mem get_memory() |
| </td></tr></table></blockquote>Get the memory where the virtual regoster array is implemented</div></div><div class=CToolTip id="tt14"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int get_n_maps () |
| </td></tr></table></blockquote>Returns the number of address maps this virtual register array is mapped in</div></div><div class=CToolTip id="tt15"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>function bit is_in_map (</td> <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Return TRUE if this virtual register array is in the specified address <i>map</i></div></div><div class=CToolTip id="tt16"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function void get_maps (</td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>maps[$]</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Returns all of the address <i>maps</i> where this virtual register array is mapped</div></div><div class=CToolTip id="tt17"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function string get_rights(</td> <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Returns the access rights of this virtual reigster array</div></div><div class=CToolTip id="tt18"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function string get_access(</td> <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Returns the access policy of the virtual register array when written and read via an address map.</div></div><div class=CToolTip id="tt19"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int unsigned get_size() |
| </td></tr></table></blockquote>Returns the size of the virtual register array.</div></div><div class=CToolTip id="tt20"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int unsigned get_n_bytes() |
| </td></tr></table></blockquote>Returns the width, in bytes, of a virtual register.</div></div><div class=CToolTip id="tt21"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int unsigned get_n_memlocs() |
| </td></tr></table></blockquote>Returns the number of memory locations used by a single virtual register.</div></div><div class=CToolTip id="tt22"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int unsigned get_incr() |
| </td></tr></table></blockquote>Returns the number of memory locations between two individual virtual registers in the same array.</div></div><div class=CToolTip id="tt23"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function void get_fields(</td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_vreg_field </td> |
| <td class=PParameter nowrap>fields[$]</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Return the virtual fields in this virtual register</div></div><div class=CToolTip id="tt24"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function uvm_vreg_field get_field_by_name(</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Return the named virtual field in this virtual register</div></div><div class=CToolTip id="tt25"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function uvm_reg_addr_t get_offset_in_memory(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Returns the offset of a virtual register</div></div><div class=CToolTip id="tt26"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual function uvm_reg_addr_t get_address(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Returns the base external physical address of a virtual register</div></div><div class=CToolTip id="tt27"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task write(</td> <td class=PTypePrefix nowrap>input longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>value,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> UVM_DEFAULT_PATH,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_sequence_base </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>extension</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>fname</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> "",</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>lineno</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Write the specified value in a virtual register</div></div><div class=CToolTip id="tt28"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task read(</td> <td class=PTypePrefix nowrap>input longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>value,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> UVM_DEFAULT_PATH,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_sequence_base </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>extension</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>fname</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> "",</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>lineno</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Read the current value from a virtual register</div></div><div class=CToolTip id="tt29"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task poke(</td> <td class=PTypePrefix nowrap>input longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>value,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_sequence_base </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>extension</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>fname</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> "",</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>lineno</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Deposit the specified value in a virtual register</div></div><div class=CToolTip id="tt30"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task peek(</td> <td class=PTypePrefix nowrap>input longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>output </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>value,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_sequence_base </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>extension</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> null,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>fname</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> "",</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>lineno</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Sample the current value in a virtual register</div></div><div class=CToolTip id="tt31"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>function void reset(</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>kind</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> "HARD"</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Reset the access semaphore</div></div><div class=CToolTip id="tt32"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task pre_write(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>wdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called before virtual register write.</div></div><div class=CToolTip id="tt33"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task post_write(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>wdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called after virtual register write.</div></div><div class=CToolTip id="tt34"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task pre_read(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called before virtual register read.</div></div><div class=CToolTip id="tt35"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task post_read(</td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>rdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called after virtual register read.</div></div><div class=CToolTip id="tt36"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_mem_region |
| </td></tr></table></blockquote>Allocated memory region descriptor</div></div><div class=CToolTip id="tt37"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>function void release_region(</td> <td class=PType nowrap>uvm_mem_region </td> |
| <td class=PParameter nowrap>region</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Release the specified region</div></div><div class=CToolTip id="tt38"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_callback extends uvm_object |
| </td></tr></table></blockquote>The <i>uvm_callback</i> class is the base class for user-defined callback classes. </div></div><div class=CToolTip id="tt39"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task pre_write(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_vreg </td> |
| <td class=PParameter nowrap>rg,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>wdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Callback called before a write operation.</div></div><div class=CToolTip id="tt40"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task post_write(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_vreg </td> |
| <td class=PParameter nowrap>rg,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>wdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called after register write.</div></div><div class=CToolTip id="tt41"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task pre_read(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_vreg </td> |
| <td class=PParameter nowrap>rg,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called before register read.</div></div><div class=CToolTip id="tt42"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task post_read(</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>uvm_vreg </td> |
| <td class=PParameter nowrap>rg,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>longint </td> |
| <td class=PType nowrap>unsigned </td> |
| <td class=PParameter nowrap>idx,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_reg_data_t </td> |
| <td class=PParameter nowrap>rdat,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_path_e </td> |
| <td class=PParameter nowrap>path,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>uvm_reg_map </td> |
| <td class=PParameter nowrap>map,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_status_e </td> |
| <td class=PParameter nowrap>status</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called after register read.</div></div><div class=CToolTip id="tt43"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task post_write(</td> <td class=PType nowrap>uvm_reg_item </td> |
| <td class=PParameter nowrap>rw</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called after register write.</div></div><div class=CToolTip id="tt44"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task pre_read(</td> <td class=PType nowrap>uvm_reg_item </td> |
| <td class=PParameter nowrap>rw</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called before register read.</div></div><div class=CToolTip id="tt45"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>virtual task post_read(</td> <td class=PType nowrap>uvm_reg_item </td> |
| <td class=PParameter nowrap>rw</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called after register read.</div></div><!--END_ND_TOOLTIPS--> |
| |
| <script language=JavaScript><!-- |
| if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html> |