Jump to content

How to create the backdoor access for memory wrto IPXACT


PrashanthP

Recommended Posts

This could depend on what tooling you are using to generate your UVM RAL model from the IP-XACT, but the addressBlock accessHandles is what you want. See section 6.9.2.2 in the 1685-2014 standard, and C.1 for accessHandles specifically. As an example:

<addressBlock>
  <accessHandles>
    <accessHandle>
      <pathSegments>
        <pathSegment>
          <pathSegmentName>partialpathto</pathSegmentName>
        </pathSegment>
        <pathSegment>
          <pathSegmentName>thememory</pathSegmentName>
        </pathSegment>
      </pathSegments>
    </accessHandle>
  </accessHandles>
</addressBlock>

This is equivalent to setting an HDL Path of "partialpathto.thememory" on the uvm_mem instance.

Each node (e.g. the addressBlock) should only set its related partial path. Assuming this is right at the top of the RTL module, then there isn't much "path" to specify. It may just be a single name, such as MemoryBlock in your example. Some tools will allow use of the IP-XACT hierarchy of addressable elements if that matches the RTL implementation already.

Link to comment
Share on other sites

7 hours ago, Jason H said:
<addressblock>
  <accessHandles>
    <accessHandle>
     <pathslices>
      <pathslice>
       <pathSegments>
        <pathSegment>
          <pathSegmentName>mem</pathSegmentName>
        </pathSegment>
       </pathSegments>
      </pathslice>
     </pathslices>
    </accessHandle>
   </accessHandles>
  <!-- Added the fields like addressoffset,range,width,usage,access policy-->
</addressBlock> 

If i do not add the fields "slices" and "slice", it is throwing error saying it is expecting slices field or viewref field. So i have added slices and it got resolved. 

what is the purpose of slices and does it create any difference wrto backdoor access ?

Link to comment
Share on other sites

Sorry about that, my example was the simpleAccessHandle schema, and an addressBlock accessHandle uses the slicedAccessHandle schema.

The slicedAccessHandle allows you to specify an optional range that would correspond to a part/bit select (e.g. mem[msb:lsb]). You shouldn't need that here. So the more accurate example:
 

<addressBlock>
  <accessHandles>
    <accessHandle>
     <slices>
      <slice>
       <pathSegments>
        <pathSegment>
          <pathSegmentName>mem</pathSegmentName>
        </pathSegment>
       </pathSegments>
       <!-- this is allowed, but likely not useful
       <range>
         <left>some_msb</left>
         <right>some_lsb</left>
       </range>
       -->
      </slice>
     </slices>
    </accessHandle>
   </accessHandles>
</addressBlock>

I don't know why they chose to give the accessHandle element three different schemas depending on its parent element, but there is fundamentally no difference in the construction of the path in this scenario. Just more complex XML.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...